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模式的。

这样一旦刷新用户程序失败,就可以“很方便的”利用固件再次刷入用户程序。

猜你喜欢

转载自blog.csdn.net/unsv29/article/details/80161525
plc