重复调用T255.zip
虽然不管是西门子的官方资料、手册,还是其大部分人的言论都说200smart重复调用的子程序里不能使用定时器。但是经过实际验证,其实还是能用的,但必须是100ms的定时器。
因为100ms的定时器的执行机制是在扫描周期扫描到指令的时候刷新,所以可以在同一个扫描周期之内,利用同一个定时器指令,对不同的当前时间进行处理和刷新。
具体做法如下,以TON通电延时为例,子程序嵌套了两层,其中内层的子程序为:
变量声明区:

程序编写:

外层子程序变量声明区:

外层子程序:

编程完毕,将子程序拖至主程序进行调用:

运行程序并监控:

不同调用的当前值和输出相互独立,互不干扰,且经过和直接调用的定时器进行时间对比,计时正确。