SIEMENS西门子 S120伺服电机 1FK7022-5AF04-1SV0
对于 S7-1500 CPU 系统数据类型 IEC_的数据块(共 享 DB) 局部变量 • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER • IEC_LCOUNTER / IEC_ULCOUNTER • CTD_SINT / CTD_USINT • CTD_INT / CTD_UINT • CTD_DINT / CTD_UDINT • CTD_LINT / CTD_ULINT • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER • IEC_LCOUNTER / IEC_ULCOUNTER 可以按如下方式声明 IEC 计数器: • 系统数据类型 IEC_的数据块声明(例如,“MyIEC_COUNTER”) • 声明为块中“Static”部分的 CTD_或 IEC_类型的局部变量(例如 #MyIEC_COUNTER) 如果在单独的数据块中设置 IEC 计数器(单背景),则将默认使用“优化的块访 问”(optimized block access) 创建背景数据块,并将各个变量定义为具有保持性。有关在背 景数据块中设置保持性的更多信息,请参见“另请参见”。 如果在函数块中使用“优化的块访问”(optimized block access) 设置 IEC 计数器作为本地变量 (多重背景),则其在块接口中定义为具有保持性。 执行“减计数”指令之前,需要事先预设一个逻辑运算。该运算可以放置在程序段的中间或 者末尾。
CTUD:加减计数 (S7-1200, S7-1500) 说明 可以使用“加减计数”指令,递增和递减输出 CV 的计数器值。如果输入 CU 的信号状态从“0” 变为“1”(信号上升沿),则当前计数器值加 1 并存储在输出 CV 中。如果输入 CD 的信号状 态从“0”变为“1”(信号上升沿),则输出 CV 的计数器值减 1。如果在一个程序周期内,输入 CU 和 CD 都出现信号上升沿,则输出 CV 的当前计数器值保持不变。 计数器值可以一直递增,直到其达到输出 CV 处指定数据类型的上限。达到上限后,即使出 现信号上升沿,计数器值也不再递增。达到指定数据类型的下限后,计数器值便不再递减。 输入 LD 的信号状态变为“1”时,将输出 CV 的计数器值置位为参数 PV 的值。只要输入 LD 的 信号状态仍为“1”,输入 CU 和 CD 的信号状态就不会影响该指令。 当输入 R 的信号状态变为“1”时,将计数器值置位为“0”。只要输入 R 的信号状态仍为“1”,输 入 CU、CD 和 LD 信号状态的改变就不会影响“加减计数”指令。 可以在 QU 输出中查询加计数器的状态。如果当前计数器值大于或等于参数 PV 的值,则将 输出 QU 的信号状态置位为“1”。在其它任何情况下,输出 QU 的信号状态均为“0”。 可以在 QD 输出中查询减计数器的状态。如果当前计数器值小于或等于“0”,则 QD 输出的信 号状态将置位为“1”。在其它任何情况下,输出 QD 的信号状态均为“0”。 说明 只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。 每次调用“加减计数”指令,都会为其分配一个 IEC 计数器用来存储指令数据。IEC 计数器 是一种具有以下某种数据类型的结构:
对于 S7-1200 CPU 系统数据类型 IEC_的数据块(共 享 DB) 局部变量 • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER • CTUD_SINT / CTUD_USINT • CTUD_INT / CTUD_UINT • CTUD_DINT / CTUD_UDINT • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER 对于 S7-1500 CPU 系统数据类型 IEC_的数据块(共 享 DB) 局部变量 • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER • IEC_LCOUNTER / IEC_ULCOUNTER • CTUD_SINT / CTUD_USINT • CTUD_INT / CTUD_UINT • CTUD_DINT / CTUD_UDINT • CTUD_LINT / CTUD_ULINT • IEC_SCOUNTER / IEC_USCOUNTER • IEC_COUNTER / IEC_UCOUNTER • IEC_DCOUNTER / IEC_UDCOUNTER • IEC_LCOUNTER / IEC_ULCOUNTER 可以按如下方式声明 IEC 计数器: • 系统数据类型 IEC_的数据块声明(例如,“MyIEC_COUNTER”) • 声明为块中“Static”部分的 CTUD_或 IEC_类型的局部变量(例如 #MyIEC_COUNTER) 如果在单独的数据块中设置 IEC 计数器(单背景),则将默认使用“优化的块访 问”(optimized block access) 创建背景数据块,并将各个变量定义为具有保持性。有关在背 景数据块中设置保持性的更多信息,请参见“另请参见”。 如果在函数块中使用“优化的块访问”(optimized block access) 设置 IEC 计数器作为本地变量 (多重背景),则其在块接口中定义为具有保持性。 执行“加减计数”指令之前,需要事先预设一个逻辑运算。该运算可以放置在程序段的中间 或者末尾。 如果输入“TagIn_1”或“TagIn_2”的信号状态从“0”变为“1”(信号上升沿),则执行“加减计 数”指令。输入“TagIn_1”出现信号上升沿时,当前计数器值加 1 并存储在输出“Tag_CV”中。 输入“TagIn_2”出现信号上升沿时,计数器值减 1 并存储在输出“Tag_CV”中。输入 CU 出现信 号上升沿时,计数器值将递增,直至其达到上限值 32767。输入 CD 出现信号上升沿时,计 数器值将递减,直至其达到下限 (INT = -32768)。 只要当前计数器值大于或等于“Tag_PV”输入的值,“TagOut”输出的信号状态就为“1”。在其它 任何情况下,输出“TagOut”的信号状态均为“0”。 只要当前计数器值小于或等于 0,“TagOut_QD”输出的信号状态就为“1”。在其它任何情况下, 输出“TagOut_QD”的信号状态均为“0”。 有关以上示例中编程代码的更多信息,传统 (S7-1500) S_CU:分配参数并加计数 (S7-1500) 说明 可使用“分配参数并加计数”指令递增计数器值。如果输入 CU 的信号状态从“0”变为“1”(信 号上升沿),则当前计数器值将加 1。当前计数器值在输出 CV 处输出十六进制值,在输出 CV_BCD 处输出 BCD 编码的值。计数器值达到上限“999”后,停止递增。达到上限后,即使 出现信号上升沿,计数器值也不再递增。 当输入 S 的信号状态从“0”变为“1”时,将计数器值设置为参数 PV 的值。如果已设置计数器, 并且输入 CU 处的 RLO 为“1”,则即使没有检测到信号沿的变化,计数器也会在下一扫描周 期相应地进行计数。 当输入 R 的信号状态变为“1”时,将计数器值置位为“0”。只要 R 输入的信号状态为“1”,输入 CU 和 S 信号状态的处理就不会影响该计数器值。 如果计数器值大于 0,输出 Q 的信号状态就为“1”。如果计数器值等于 0,则输出 Q 的信号 状态为“0”。 说明 只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。 “分配参数并加计数”指令需要对边沿评估进行前导逻辑运算,可以放在程序段中或程序段 的结尾。如果输入“TagIn_1”的信号状态从“0”变为“1”(信号上升沿)且当前计数器值小于“999”,则计 数器值加 1。当输入“TagIn_2”的信号状态从“0”变为“1”时,将该计数器的值设置为操作数 “TagPresetValue”的值。当“TagIn_3”操作数的信号状态为“1”时,计数器值复位为“0”。 当前计数器值以十六进制值的形式保存在操作数“TagValue_1”中,以 BCD 编码的形式保存在 操作数“TagValue_2”中。 只要当前计数器值不等于“0”,输出“TagOut”的信号状态便为“1”。 有关以上示例中编程代码的更多信息,请参见说明 可使用“分配参数并减计数”指令递减计数器值。如果输入 CD 的信号状态从“0”变为“1”(信 号上升沿),则计数器值减 1。当前计数值在输出 CV 处输出为十六进制值,在输出 CV_BCD 处输出为 BCD 编码的值。计数器值达到下限 0 时,将停止递减。如果达到下限值,即使出 现信号上升沿,计数器值也不再递减。 当输入 S 的信号状态从“0”变为“1”时,将计数器值设置为参数 PV 的值。如果已设置计数器, 并且输入 CD 处的 RLO 为“1”,则即使没有检测到信号沿的变化,计数器也会在下一扫描周 期相应地进行计数。 当输入 R 的信号状态变为“1”时,将计数器值置位为“0”。只要 R 输入的信号状态为“1”,输入 CD 和 S 信号状态的处理就不会影响该计数器值。 如果计数器值大于 0,输出 Q 的信号状态就为“1”。如果计数器值等于 0,则输出 Q 的信号 状态为“0”。 说明 只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。 “分配参数并减计数”指令需要对边沿评估进行前导逻辑运算,可以放在程序段中或程序段 的结尾。