SIMATIC 计数器(S7-300, S7-400) S_CU:分配参数并加计数 (S7-300, S7-400) 说明可使用“分配参数并加计数”指令递增计数器值。当 CU 参数的信号状态从“0”变为“1”(信 号上升沿)时,当前计数器值加 1。通过参数CV 提供当前计数器值。计数器值达到上限 999 后,停止增加。如果达到限值,出现信号上升沿,计数器值也不再递增。 当 S参数的信号状态从“0”变为“1”时,计数器值将设置为 PV 参数的值。如果置位计数器且输 入 CU 处的逻辑运算结果 (RLO)为“1”,没有检测到信号边沿变化,计数器也会在下一周 期计数一次。 当 R 参数的信号状态变为“1”时,计数器值将置位为0。只要参数 R 的信号状态为“1”,参数 CU 和 S 的信号状态变化就不会影响计数值。 如果计数器值大于 0,参数 Q的信号状态就为“1”。计数器值等于 0 时,参数 Q 将返回信号状态 “0”。 说明只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。
IEC计数器作为块接口的局部变量(多重实例) 您可以按如下所示将 IEC 计数器声明为局部变量: #myLocal_Counter();参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 CU Input BOOL I、Q、M、D、L 加计数输入 CDInput BOOL I、Q、M、D、L 减计数输入 R Input BOOL I、Q、M、D、 L、P 复位输入 LD InputBOOL I、Q、M、D、 L、P 装载输入 PV Input INT I、Q、M、D、 L、P 输出 QU 被设置的值/LD = 1的情况下,输出 CV 被设 置的值。 QU Output BOOL I、Q、M、D、L 加计数器的状态 QD Output BOOLI、Q、M、D、L 减计数器的状态 CV Output INT I、Q、M、D、 L、P 当前计数器值有关有效数据类型的更多信息,请参见“另请参见”。如果“Tag_Start1”操作数的信号状态出现上升沿,当前计数器的值加 1 并存储在“Tag_CounterValue”操作数中。如果“Tag_Start2”操作数的信号状态出现信号上升沿,则计数 器值减 1并存储在“Tag_CounterValue”操作数中。在达到上限值 32767 之前,计数器值会在 参数 CU的信号上升沿处递增。在达到下限值 INT = -32768 之前,计数器值会在参数 CD 的 信号上升沿处递减。只要当前计数器值大于或等于操作数“Tag_PresetValue”的值,操作数“Tag_CU_Status”的信号状态就为“1”。在其它情况下,输出“Tag_CU_Status”的信号状态都为“0”。 只要当前计数器值小于或等于0,操作数“Tag_CD_Status”的信号状态就为“1”。在其它情况下,输出“Tag_CD_Status”的信号状态都为“0”。下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 C_NOInput COUNTER、INT C 计数器 计数器的数量取决于 CPU。 CU Input BOOL I、Q、M、D、L加计数输入 S Input BOOL I、Q、M、D、L 用于预置计数器的输入端 PV Input WORD I、Q、M、D、 L、P预置 BCD 格式的计数器值 (C#0 至 C#999) R Input BOOL I、Q、M、D、L 复位输入 Q OutputBOOL I、Q、M、D、L 计数器状态 CV Output WORD I、Q、M、D、 L、P 当前计数器值 函数值 WORDI、Q、M、D、 L、P 当前计数器值(BCD 格式)有关有效数据类型的更多信息,请参见“另请参见”。如果参数“Tag_Start”的信号状态从“0”变为“1”(信号上升沿)且当前计数器值小于“999”时,则计数器值递增 1。如果“Tag_1”输入的信号状态从“0”变为“1”,则将 BCD 格式的计数器值设置为操作数“Tag_PresetValue”的值。当“Tag_Reset”操作数的信号状态为“1”时,计数器值复位 为“0”。当前计数器值以十六进制编码的形式存储在操作数“Tag_Value”中。S_CD:分配参数并减计数 (S7-300, S7-400)说明 可使用“分配参数并减计数”指令递减计数器值。当 CD 参数的信号状态从“0”变为“1”(信 号上升沿)时,当前计数器值减1。通过参数 CV 提供当前计数器值。计数器值达到下限 0 时,将停止递减。如果达到下限值,出现信号上升沿,计数器值也不再递减。当 S 参数的信号状态从“0”变为“1”时,计数器值将设置为 PV 参数的值。如果置位计数器且参 数 CD 处的逻辑运算结果(RLO) 为“1”,没有检测到信号边沿变化,计数器也会在下一周 期计数一次。 当 R参数的信号状态变为“1”时,计数器值将置位为 0。只要参数 R 的信号状态为“1”,参数 CD 和 S的信号状态变化就不会影响计数值。 如果计数器值大于 0,参数 Q 的信号状态就为“1”。计数器值等于 0 时,参数 Q 将返回信号状态“0”。 说明 只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。 参数 下表列出了该指令的参数: 参数 声明 数据类型存储区 说明 C_NO Input COUNTER、INT C 计数器 计数器的数量取决于 CPU。 CD Input BOOLI、Q、M、D、L 减计数输入 S Input BOOL I、Q、M、D、L 用于预置计数器的输入端参数 声明 数据类型 存储区 说明PV Input WORD I、Q、M、D、 L、P 预置 BCD 格式的计数器值 (C#0 至 C#999) R InputBOOL I、Q、M、D、L 复位输入 Q Output BOOL I、Q、M、D、L 计数器状态 CV Output WORDI、Q、M、D、 L、P 当前计数器值 函数值 WORD I、Q、M、D、 L、P 当前计数器值(BCD 格式)有关有效数据类型的更多信息,请参见“另请参见”。当“Tag_Start”操作数的信号状态从“0”变为“1”(信号上升沿)且当前计数器值大于“0”时,计数器值减 1。如果“Tag_1”操作数的信号状态从“0”变为“1”,则将 BCD 格式的计数器值设置为“Tag_PresetValue”操作数的值。当“Tag_Reset”操作数的信号状态为“1”时,计数器值复位为 “0”。当前计数器值存储在“Tag_Value”操作数中。只要当前计数器值不等于“0”,“Tag_Status”操作数的信号状态便会返回“1”。当前计数器值在“Tag_Value”操作数中,并作为函数值返回。S_CUD:分配参数并进行加/减计数 (S7-300, S7-400) 说明可使用“分配参数并加/减计数”指令递增和递减计数器值。当 CU 参数的信号状态从“0”变为 “1”(信号上升沿)时,当前计数器值加1。当 CD 参数的信号状态从“0”变为“1”(信号上升 沿)时,计数器值减 1。通过参数 CV提供当前计数器值。如果在一个程序周期内参数 CU 和 CD 出现了信号上升沿,计数器值将保持不变。计数器值达到上限“999”后,停止递增。达到上限后,出现信号上升沿,计数器值也不 再递增。达到下限值“0”时,计数器值不再递减。当 S 参数的信号状态从“0”变为“1”时,计数器值将设置为 PV 参数的值。如果置位计数器且 CU 和 CD 参数的逻辑运算结果(RLO) 为“1”,没有检测到信号边沿变化,计数器也会在下一 周期计数一次。 当 R参数的信号状态变为“1”时,计数器值将置位为 0。只要 R 参数的信号状态为“1”,参数 CU,、CD 和 S信号状态的改变就不会影响该计数器值。 如果计数器值大于 0,参数 Q 的信号状态就为“1”。计数器值等于 0 时,参数 Q将返回信号状态 “0”。 说明 只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。