主程序:LD I0.0
S S0.0,1
LD S0.0
CALL SBR_0
子程序SBR_0:LD SM0.0
TON T37,30
LD T37
S Q0.0,1
R S0.0,1
如果把这个程序的主程序换成:LD I0.0
CALL SBR_0
子程序不变,那么这2个主程序对应子程序SBR_0最后出来的Q0.0的值是不是不一样。概括成一句话就是:子程序中如果有定时器时,那么是不是需要主程序在定时器尚未达到预定值时,只有在每个周期或者说不停的调用子程序才能使得子程序中这个定时器持续的计时。两个主程序一个是电动,一个是置位。还有个小问题就是子程序的嵌套调用是8层,我以前是学计算机编程的,在计算机编程里嵌套就是子程序嵌子程序,就是主程序调用子程序,子程序再调用子程序。PLC里的嵌套是不是也是这个意思。本人新手,谢谢了。补充下 这个问题我在百度知道里提问过,有个人说子程序SM0.0一直处于导通状态所以定时器一直接通,这个程序是错的。可我觉得在子程序里复位调用子程序的那个变量就可以了,是我错了还是他错了?问的有点多,总之谢谢了。
最佳答案
你若要搞清楚定时器的行为,参考下面两个内容:
1、定时器的起动;
2、定时器当前值的更新。
比如,定时器在执行了相应的ton/tof/tonr时启动,但对于1ms、10ms、100ms的定时器,其更新当前值方法是不同的,你查一下资料,或搜一下论坛,已经有人给出详细的讲解。
明白了这些,定时器不管在那里,甚至在中断程序里,使用都没有问题。因为你已经知这些定时器的是如何表现的了。
提问者对于答案的评价:
非常感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc320669.html