PLC设计思考[2]
前几天写过一个《PLC设计思考》,
里面提到了西门子博途,这几天我又查了一下资料,觉得西门子的smartplc比较好,或者说比较适合我目前的情况。
smartplc里面也有查询网络上的cpu功能。
对于《PLC设计思考》提到的”对固件和对用户程序的不同处理",我我特意问了安富莱的老大,老大说直接刷用户程序没问题。
安福莱老大是很猛的,我也是偶然才在论坛发现他以前曾经开发过一款PLC,属于编译器那种级别的开发。
现在想起来,安福莱说过他以前就玩过编译器,看样子我目前是已经找到进一步的佐证了。
关于普通PLC里面的RUN和STOP模式,基本上我是无法用到的。因为我的用户包括本司底层开发人员(他们需要初始化底层驱动,根本原因还是在于板卡太多,太乱),售后人员,以及非本司“用户程序”开发人员。
这就决定了我如果采用RUN和STOP模式的话,就会极其复杂。
因为一般情况下市面上的PLC不会让用户初始化底层驱动的。
所以基本上只能这样,整个flash区域分为几个块:
1是bootloader;
2是中间件,就是一些通用函数的实现,也有一些常用的底层驱动。
3是用户程序,包括用户自己写的应用程序,调用中间件的程序,新增加的初始化底层驱动程序
4是一些参数配置以及指纹等
这样的话,每次更新中间件或者用户程序或者参数配置都需要调用bootloader。
这样做,可操作性就比较强了,也比较容易做的稳定。
另外PLC的一些流程还是要学习一下,比如在bootloader启动的时候可以考虑检查bootloader以及中间件的完整性,检查各种参数的有效性。对于驱动初始化不成功的情况如何处理,都是需要考虑的。对电源的监测。
任何软件的开发都要做到隔离。
市面上的PLC都用通过固件来刷新用户程序的,咋一看,似乎好复杂,风险好大,但是好好想想,通过STOP模式进行了“隔离”,一切就都那么清晰。
又一次我在东芝的控制器上看到了一个开关,现在想来,就是用来进入STOP模式的开关了。
即便用户程序崩溃了,只要重启后进入了STOP模式,一切就都在掌握之中了。
2018.05.03------
还是可以考虑弄RUN-STOP模式的。
这样一旦刷新用户程序失败,就可以“很方便的”利用固件再次刷入用户程序。
PLC设计思考[2]相关推荐
- 面试必备:一个秒杀系统的设计思考
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:阿哲 segmentfault.com/a/11900000 ...
- 用thinkphp进行微信开发的整体设计思考
用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09 0个评论 作者:明 ...
- 一个秒杀系统的设计思考
简介:从架构视角来看,秒杀系统本质是一个高性能.高一致.高可用的三高系统.而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题. 秒杀大家都不陌生.自2011年首次出现以来,无论是双 ...
- 【忘川风华录】雅社——公会社交系统交互设计思考
GameTube邀请忘川交互团队分享设计中的经验和感受.本次为<忘川风华录>交互设计师[丸子]分享公会系统的设计思考.此篇为忘川设计复盘系列完结篇~ 期待之后会有更多交互同学分享设计的经历 ...
- 高老师架构设计思考短句集(1)
高老师<架构&设计思考>短句集(1) << FEB 2014 >> 俗语说:「授之以渔,而非授之以鱼.」 所以,高老师教你如何思考和创新你自己的架构技术,而 ...
- 31号2场直播预告丨下一代分布式数据库设计思考、Greenplum 7新特性和进展
1.下一代分布式数据库设计思考-03.31 自从 E.F.Codd 于 1970 年提出关系模型,到今天为止,关系数据库已经有 50 多年的发展历史.通过抽象出关系模型和事务模型,以及 SQL 语言, ...
- 主流物联网平台的架构设计思考
主流物联网平台的架构设计思考 物联网平台的总体架构 物联网平台的技术架构 用户级物联网平台的解决方案: 车联网平台的主流解决方案:
- RESTful API 设计思考
RESTful API 设计思考,内容来源网络加自己的思考 1.RESTful Web API采用面向资源的架构:同一的接口,所以其成员体现为针对同一资源的操作 2.SOAP Web API采用RPC ...
- 高老师架构设计思考短句集(2)
高老师<架构&设计思考>短句集(2) << FEB 2014 >> 为什么要思考呢? 因为许多古典的架构思维视角,都已经不符合智能化&大数据时代的 ...
最新文章
- WPAD原理介绍暨故障排查:ISA2006系列之三
- 基于zeromq的高性能分布式RPC框架Zerorpc 性能测试
- [C# 基础知识梳理系列]专题四:事件揭秘
- 【转】Redis的各项功能解决了哪些问题?
- 【C语言】谭浩强C语言程序设计第五版135页例5.11译密码题的新解
- JAVA基于J2ME的手机游戏开发免费
- Dosbox安装Windows 95图文教学
- 动手学深度学习环境安装
- 向量的数量函数的导数
- ftp打开方式更改为资源管理器方法
- eclipse 换背景图片
- maven 本地仓库配置
- htonl ntohl htons ntohs
- 【项目】健康项目day6总结
- 计算机组装配件选择,组装电脑选配件时需要注意哪几方面?
- 【TSCH概述/CONTIKI】
- Arcgis栅格裁剪批处理工具
- matlab离散点范围外云图,matlab利用m_map工具包画中国地图及散点云图
- 华为8年女硕离职:多么痛的领悟...
- java计算机毕业设计昆明市人民医院血库管理系统源码+数据库+lw文档+系统
热门文章
- python客户端通过代理发送请求
- Lightoj_1422
- python pandas读取数据报错:Traceback (most recent call last):anaconda3/lib/python3.7/site-packages/pandas/i
- APP上架应用宝外显流程
- php表白情话,情人节这些表白文案都帮你准备好了,就怕你还没对象(捂脸)
- 为什么编译tiny工程出错,提示不兼容的类型
- JFrame和Frame的区别
- 203计算机毕业设计
- urlopen中文路径报错from urllib.request import urlopen from urllib.parse import quote from bs4 import Beaut
- Linux学习总结(10)——Linux查看CPU和内存使用情况