zhaotingjie
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zhaotingjie的 主题 / 回贴
楼主  发表于: 2010-10-13 14:44
我是新手,想问个PLC循环扫描的问题:
比如  


扫描周期为10ms
假设:在第2个扫描周期里的第2ms,I0.0闭合,那在本周期内剩余的8ms内M0.0和Q0.0均不置1;
      在第3个扫描周期里,Network1中I0.0是“1”,所以M0.0置“1”,并写入输出映向存储区。
                   向下运行到Network2中,M0.0是读取Network1中M0.0的值,还是读第2个扫描周期中M0.0的值?
就是问,在第3个扫描周期中,Q0.0是否置“1”? 另外M的值是写入输出映向存储区吗?
wlw
级别: 略有小成
精华主题: 0
发帖数量: 285 个
工控威望: 399 点
下载积分: 1296 分
在线时间: 214(小时)
注册时间: 2009-01-10
最后登录: 2016-12-06
查看wlw的 主题 / 回贴
1楼  发表于: 2010-10-13 20:40
在当前这个扫描周期如果I0.0闭合了,M0.0就置1,在第2网络里的M0.0的常开触点当然也就在当前这个扫描周期里闭合。只要是在当前扫描周期还没被扫描到的相同原件触点,都在此次扫描周期变化。但是,在当前扫描周期里I0.0闭合,M0.0置1以前M0.0的触点,只有等到下一个扫描周期才变化。
wlw
级别: 略有小成
精华主题: 0
发帖数量: 285 个
工控威望: 399 点
下载积分: 1296 分
在线时间: 214(小时)
注册时间: 2009-01-10
最后登录: 2016-12-06
查看wlw的 主题 / 回贴
2楼  发表于: 2010-10-16 13:48
你说的对,但现在说的是扫描状态。比如M0.0的第1个触点在第一网络,M0.0线圈在第2 网络,M0.0的第2 个触点在第3网络。当扫描到M0.0的线圈,M0.0被置1,这时在这个扫描周期里M0.0的第2个触点状态被改变,也就是第3网络的触点动作。而第1 网络里的触点不动作,第1网络的触点要在下一扫描周期才动作。因为是串行扫描,M0.0的第1触点最先被扫描,而M0.0的线圈是在这后被扫描,所以只有M0.0线圈被扫描以后的触点状态才发生变化,这时第3网络M0.0的触点反而比第1 网络M0.0的触点状态先变化。如果在编程时不考虑这方面,就会出现程序状态不对的情况。而看不出来程序错在哪里。