首先这个标题有点吸引眼球的意思,请“0不是1”老师不要见怪!
问题是这样的,在找答案中有个网友提问如下:
“SIEMENS 200PLC写的一个大型的程序,假如在程序的中间有个M 点被置位,请问这个M 点下面的所有的触头是马上动作呢?还是等到下一个扫描周期才开始动作啊?
M 点下面的所有的触头 意思是CPU刚好执行到M点的线圈被置位这个网络,M点所有的触头都在这个网络的下面,还没有被执行到。 ”
我实在不知道该怎么回答,编写了一段小程序给了个模糊的回答如下:
“呵呵,你这个问题已经很大型了,下面的程序复制到MicroWIN里转成梯形图,当i0.0接通的时候。Q0.1不通,Q0.2接通。理解一下堆栈的概念吧。
网络1
LD I0.0
EU
S M0.0, 1
网络2
LD M0.0
LPS //入栈
A SM0.0
R M0.0, 1
LRD //读栈
A M0.0
S Q0.1, 1
LPP //出栈
A SM0.0
S Q0.2, 1
M0.0虽然是立即执行,但是在栈内执行有效。也就是Q0.2会通。”