名称:加减计数

符号: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:

CTUD_inst1(CU := TagInl, CD := TagIn2, R1 :=TagIn3, LD1 := TagIn4, PV := TagPV, QU => TagQU, QD => TagQD, CV => TagCV);

解释:

        如果输入“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”。