子程序不调用时 变量会不会保持 200、300这点有不同之处吗?

举例 主程序:LD I0.0
                          CALL SBR_0
          子程序:LD I0.0
                           =   Q0.0
I0.0是瞬动按钮的输入信号。第一个扫描周期为一 Q0.0为1 第二个周期为0 那这时Q0.0是多少呢?如果这种情况在300里呢?
如果将子程序换成:LD I0.0
                                    TON T37.30
                                    LD  T37
                                    =     Q0.0
第一个周期I0.0为1 第二个周期为0 那这时T37的当前值保持吗?就是说如果第三个周期I0.0为1 那这时T37是接着原来的当前值计数还是清0后计数呢?同样300在这方面和200有区别吗?

最佳答案

我刚才模拟了一下,子程序不被调用了信号就丢失了,这个和语句被跳转不一样。是不是可以这样理解,只有被处理的信号点才被写入映像区,像这样子程序直接不被调用了那么它的映像区就被收回了?请高手解答为盼!

"1 .对于线圈输出的bool 型变量,当程序不扫描时,如果没有做断电保持等特殊设置,其输出为0."楼下说的我不能同意。
请看这样的语句:
A I0.0
FP M0.0
JCN M00
AN Q0.0
= Q0.0
M00: NOP 0
这是一个按键控制起停的程序,在这个程序中跳转语句会使QO.O得不到扫描,即Q0.0的映像区得不到刷新,从而输出原来状态,所以楼下说的当程序不扫描时输出为0我不能同意。
但是,楼主整个子程序不被调用似乎和这个不是一个道理,还请高手解答。

提问者对于答案的评价:
继续提问。。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc321254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2020年11月5日

相关推荐