发布于 2013-07-30 10:21:22
7楼
这个问题粗看起来简单,但实际上却反映了西门子PLC工作的一个机制。最早的PLC,对于一般的线圈输出,一般固定维持一个周期。如需要常输出,则需要输入条件一直满足,或有自保。西门子的输出与此略有不同,是扫描时刷新,即如果在程序执行中未扫描执行相应的点,则保持不变,如:
A M0.0
jcn g
A M0.1
=M0.2
g:nop 0
在上面的程序段中,如m0.0/m0.1为“1”,则M0.2为“1”,当M0.0为“0”后,m0.2恒为”1“ ,这是因为m0.0为0后程序跳转,未扫描 A M0.1 =M0.2 指令的原因。楼主的情况与此类似。这种情况的解决办法要么重新写一次,要么冷启PLC。
好好生活,天天向上!