恭喜,你发布的帖子
发布于 2021-07-17 11:06:08
13楼
Y版再请教一个问题,以前一直没注意。
cpu启动后是先RUN再建立通讯,还是先尝试建立通讯再run。
如果先RUN,那必然所有映射的IO区会经过一个OFF到ON的过程。我这边其实就是这个原因,三菱就是这个机制,必须实时判断模块通讯状态,以前都疏忽了。
西门子也是这个机制么?
你说的要分开:
一个IO系统,有IO控制器和IO设备。
对于IO控制器(PLC)来说,建立IO网络是STARTUP过程的一部分。在这过程中,控制器(PLC)会存储中断,不会响应中断;会将映像区所有IO复位,一旦建立通信,首次运行时发送给IO设备。然后与IO设备逐一尝试连接,建立IO通讯。在PN/IO系统中是通过IP,在PB系统中是通过DP模块。
这个过程实际上比较慢。仔细观察,可以看见控制器是一个、一个的与IO设备连接的。如果IO设备比较多该过程可以超过一分钟。(我的系统7个PN驱动器,建立IO连接需要20-30秒。时间很长。)
在STARTUP这个过程中,因为没有进入RUN,不会执行主循环的OB,(但启动OB除外!)也就是说,在这段时间内,所有本体上的,远程的IO变化,都不会被PLC中的程序响应、执行。
一旦进入RUN,首先会处理STARTUP过程中存储的中断!然后将复位的Q输出发送给所有IO设备,读取所有I 状态(包括已经建立通讯的 I)到输入映像区,然后开始第一次的主循环OB。在这里,读取的是当前的 I 状态。
正是因为STARTUP过程很长,要注意的是 中断信号会被存储!如何处理要想好!
另外,这个STARTUP过程中建立PN/IO连接的时间,默认是给了1分钟;但是如果IO设备过多,很可能超过这个时间,(我这才6个IO站,而1200允许最多16个。)
对于IO设备,建立了PN/IO通讯,就开始了数据更新,这个更新,在控制器STARTUP过程中仅仅是在PN的芯片级,不会被控制器使用。(因为还没有进入RUN模式。)
这些都是细节问题。但处理不好,会影响首次启动。
请填写推广理由:
分享
只看
楼主