名称:加减计数
符号:CTUD
说明:
可以使用“加减计数”指令,递增和递减输出CV的计数器值。如果输入CU的信号状态从“0”变为“1”(信号上升沿),则当前计数器值加1并存储在输出CV中。如果输入CD的信号状态从“0”变为“1”(信号上升沿),则输出CV的计数器值减1。如果在一个程序周期内,输入CU和CD都出现信号上升沿,则输出CV的当前计数器值保持不变。
计数器值可以一直递增,直到其达到输出CV处指定数据类型的上限。达到上限后,即使出现信号上升沿,计数器值也不再递增。达到指定数据类型的下限后,计数器值便不再递减。
输入LD1的信号状态变为“1”时,将输出CV的计数器值置位为参数PV的值。只要输入LD1的信号状态仍为“1”,输入CU和CD的信号状态就不会影响该指令。
当输入R1的信号状态变为“1”时,将计数器值置位为“0”。只要输入R1的信号状态仍为“1”,输入CU、CD和LD信号状态的改变就不会影响“加减计数”指令。
可以在QU输出中查询加计数器的状态。如果当前计数器值大于或等于参数PV的值,则将输出QU的信号状态置位为“1”。在其它任何情况下,输出QU的信号状态均为“0”。
可以在QD输出中查询减计数器的状态。如果当前计数器值小于或等于“0”,则QD输出的信号状态将置位为“1”。在其它任何情况下,输出QD的信号状态均为“0”。
图片:
参数:
| 参数 | 声明 | 类型 | 描述 |
|---|---|---|---|
| CU | Input | BOOL | 加计数输入 |
| CD | Input | BOOL | 减计数输入 |
| R1 | Input | BOOL | 复位输入 |
| LD1 | Input | BOOL | 装载输入 |
| PV | Input | INT | 输出QU被设置的值/LD = 1 的情况下,输出CV被设置的值。 |
| QU | Output | BOOL | 加计数器的状态 |
| QD | Output | BOOL | 减计数器的状态 |
| CV | Output | INT | 当前计数器值 |
示例:
LD:
ST:
解释:
如果输入“TagIn1”或“TagIn2”的信号状态从“0”变为“1”(信号上升沿),则执行“加减计数”指令。输入“TagIn1”出现信号上升沿时,当前计数器值加1并存储在输出“TagCV”中。输入“TagIn2”出现信号上升沿时,计数器值减1并存储在输出“TagCV”中。输入CU出现信号上升沿时,计数器值将递增,直至其达到上限值32767。输入CD出现信号上升沿时,计数器值将递减,直至其达到下限(INT=-32768)。
只要当前计数器值大于或等于“TagPV”输入的值,“TagQU”输出的信号状态就为“1”。在其它任何情况下,输出“TagQU”的信号状态均为“0”。
只要当前计数器值小于或等于0,“TagQD”输出的信号状态就为“1”。在其它任何情况下,输出“TagQD”的信号状态均为“0”。