恭喜,你发布的帖子
发布于 2019-11-08 13:40:10
3楼
*****************************************************************************************
当由于 TP、TON、TOF 或 TONR
指令的输入上出现沿跳变而启动定时器时,连续运行的内部 CPU
定时器的值将被复制到为该定时器指令分配的 DB 结构的 START 成员中。
该起始值在定时器继续运行期间将保持不变,随后将在每次更新定时器时使用。
每次启动定时器时,都会从内部 CPU 定时器将一个新的起始值加载到定时器结构中。
更新定时器时,将从内部 CPU 定时器的当前值中减去上述起始值以确定经过的时间。
再将经过的时间与预设值进行比较以确定定时器 Q 位的状态。 然后在为该定时器分配的
DB 结构中,更新 ELAPSED 和 Q 成员。
注意,经过的时间将停留在预设值上(达到预设值后定时器便不会继续累加经过的时间)
。
当且仅当满足以下条件时才会执行定时器更新:
● 已执行定时器指令(TP、TON、TOF 或 TONR)
● 某个指令直接引用 DB 中定时器结构的“ELAPSED”成员
● 某个指令直接引用 DB 中定时器结构的“Q”成员
● 扫描期间可以不执行定时器更新。
可以在函数中启动定时器,然后在一个或多个扫描周期内不再调用该函数。
如果没有执行引用定时器结构中 ELAPSED 或 Q
成员的其它指令,则不会更新定时器。
直到再次执行定时器指令或执行将定时器结构的 ELAPSED 或 Q
用作参数的其它指令时,才会再次更新定时器。
*****************************************************************************************
M0.0没有复位
没有再次启动定时器,START值不会更新吧?
手册里的
请填写推广理由:
分享
只看
楼主