S7-200 SMART PLC 一种自定义定时器的实现方法

对于S7-200 SMART PLC,它的定时器资源是有限的,特别是高分辨率的定时器,如分辨率为1ms的定时器只有T32、T96两个,且不能同时使用:例如,不能同时使用 TON T32 和 TOF T32。

那有没有其它方法实现简单的高分辨率定时?

这里给大家分享个方法,就是使用“最后一次扫描循环的扫描时间”系统变量Last_Scan (地址SMW22),代替TON、TOF定时器,实现简单的定时程序。

程序:
定义一个字变量如SCANTON1(相当于TON定时器的当前值,单位为ms),在用户程序的每个周期和SMW22进行累加(SCANTON1+ SMW22= SCANTON1),然后对SCANTON1的值进行判断,当大于定时设定值时及表示定时时间到,并把SCANTON1清0 ,进行下一次定时。

当然SMW22的循环扫描时间值,和用户程序的大小有关,如果你程序的最大循环扫描时间小于10ms,那用此方法,能得到分辨率高于10ms的定时器,如果你程序的最大循环扫描时间小于100ms,那用此方法,能得到分辨率高于100ms的定时器。

0%