对于 S7-1500 CPU“时间累加器”指令以数据类型为 IEC_TIMER、IEC_LTIMER、TONR_TIME 或 TONR_LTIME 的结构存储其数据。可以如下声明此结构: • 声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER的数据块(例如,“MyIEC_TIMER”) • 声明为块中“Static”部分的TONR_TIME、TONR_LTIME、IEC_TIMER 或 IEC_LTIMER 类型的局部变量(例如,#MyIEC_TIMER) 更新实例数据中的实际值 “时间累加器”中的实例数据根据以下规则更新: • IN 输入“时间累加器”指令将当前 RLO 与保存在实例数据“IN”参数中上次查询的 RLO 进行比较。 如果指令检测到 RLO从“0”变为“1”,则说明出现了一个信号上升沿并继续进行时间测量。 如果 RLO中的指令检测到从“1”到“0”的变化,则说明出现了一个信号下降沿并且会中断时 间测量。在“时间累加器”指令处理完毕后,IN参数的值在实例数据中更新,并作为存 储器位用于下次查询。 请注意,边沿检测将在其他功能写入或初始化 IN 参数的实际值时中断。 • PT 输入 当边沿在 IN 输入处改变时,PT 输入处的值将写入实例数据中的 PT 参数。 • R输入 输入 R 处的信号“1”将复位并阻断时间测量。IN 输入处的边沿会被忽略。输入 R 处的信号“0” 将启用时间测量。 • Q和 ET 输出 Q 和 ET 输出的实际值在以下情况下更新: – 当输出 ET 或 Q 互连时,调用该指令。 或 – 访问 Q 或ET。 如果输出未互连并且还未被查询,则不更新 Q 和 ET 输出的当前时间值。在程序中跳过该指令,也不会对输出进行更新。 “时间累加器”指令的内部参数用以计算 Q 和 ET 的时间值。请注意,时间测量将在其他功能写入或初始化指令的实际值时中断。
重新初始化实际值的危险在时间测量时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 •将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: •在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 •如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。RT:复位定时器(S7-1200, S7-1500) 说明 可以使用“复位定时器”指令将 IEC 定时器复位为“0”。可以通过在该指令上方的占位符中输入包含 IED 定时器结构的数据块名称,指定待复位的 IEC 定时器。 只有当功能框输入的逻辑运算结果 (RLO)为“1”时,才会执行该指令。执行该指令时,指定 数据块中 IEC 定时器的结构组件将复位为“0”。如果功能框输入的 RLO为“0”,则不执行该指令。 该指令不会影响 RLO。功能框输入的 RLO 将直接传送到功能框输出上。必须将在程序中为“复位定时器”指令分配一个已声明的 IEC 定时器。 实际值的更新只有在调用指令时才更新指令数据,而不是每次都访问分配的 IEC 定时器。仅在指令的当前调用到下一次调用期间,数据查询的结果才相同。重新初始化实际值的危险 在定时器运行时,重新初始化 IEC 定时器的实际值会破坏 IEC定时器的功能。更改实际值 可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: •通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 •确保程序在传输期间不读写受影响的数据。PT:加载持续时间 (S7-1200, S7-1500) 说明 可以使用“加载持续时间”指令设置IEC 定时器的持续时间。如果该指令输入逻辑运算结果 (RLO)的信号状态为“1”,则每个周期都执行该指令。该指令可将指定的持续时间写入指定的 IEC 定时器结构中。 可以将在程序中声明的 IEC定时器赋给“加载持续时间”指令。 说明 如果在该指令执行期间指定的 IEC 定时器也在运行,则该指令将覆盖指定 IEC 定时器的当前持续时间。IEC 定时器的定时器状态可以发生改变。实际值的更新 只有在调用指令时才更新指令数据,每次都会访问分配的 IEC定时器。查询 Q 或 ET(例 如, "MyTimer".Q 或 "MyTimer".ET)会更新 IEC_TIMER 结构。 危险重新初始化实际值的危险 在定时器运行时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 •将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: •在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 •如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 •确保程序在传输期间不读写受影响的数据。操作数“Tag_Input_2”的信号状态为“1”时,执行“加载持续时间”指令。该指令将持续时间“Tag_PT_2”写入背景数据块“TON_DB”,覆盖数据块中操作数“Tag_PT”的值。定时器状态的信号状态可以在下一次查询时或访问“MyTimer.Q”或“MyTimer.ET”时发生改变。 说明“Tag_Input_2”将作为脉冲标志执行,以便仅在一个程序循环内加载该持续时间。传统 (S7-1500) S_PULSE:分配脉冲定时器参数并启动 (S7-1500) 说明 当输入 S 的逻辑运算结果 (RLO)的信号状态从“0”变为“1”(信号上升沿)时,指令“分配脉 冲定时器参数并启动”将启动预设的定时器。当输入 S的信号状态为“1”后,该定时器在经 过预设的持续时间 (TV) 后计时结束。如果输入 S 的信号状态在已设定的持续时间计时结束之前变为“0”,则定时器停止。这种情况下,输出 Q 的信号状态为“0”。 持续时间由定时器值和时基构成,且在参数 TV处设定。该指令启动后,预设的时间值开始 递减计数,直至为零。时基决定时间周期。当前定时器值在输出 BI 处以二进制编码格式输出,在输出 BCD 处以 BCD 编码格式输出。 如果定时器正在计时且输入端 R 的信号状态变为 “1”,则当前时间值和时间基准也将设置为0。 如果定时器未在计时,则输入 R 的信号状态为“1”不会有任何作用。指令“分配脉冲定时器参数并启动”需要前导逻辑运算进行边沿检测,并可置于程序段中间 或结尾。每次访问都更新指令数据。在循环开始和循环结束时查询数据可能会返回不同的值。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。定时器中的值比预期的时基Zui多短一个时间间隔值。S_PEXT: 分配扩展脉冲定时器参数并启动(S7-1500) 说明 当输入 S 的逻辑运算结果 (RLO) 的信号状态从“0”变为“1”(信号上升沿)时,指令“分配扩展脉冲定时器参数并启动”将启动预设的定时器。输入 S 的信号状态变为“0”,该定时 器在经过预设的持续时间 (TV)后仍会计时结束。只要定时器在运行,输出 Q 的信号状态便为 “1”。定时器计时结束时,参数 Q 将复位为“0”。如果定时器计时期间输入S 的信号状态从“0” 变为“1”,定时器将在输入 TV 中设定的持续时间处重新启动。 持续时间由定时器值和时基构成,且在参数 TV处设定。该指令启动后,预设的时间值开始 递减计数,直至为零。时基决定时间周期。当前定时器值在输出 BI 处以二进制编码格式输出,在输出 BCD 处以 BCD 编码格式输出。 如果定时器正在计时且输入端 R 的信号状态变为 “1”,则当前时间值和时间基准也将设置为0。 如果定时器未在计时,则输入 R 的信号状态为“1”不会有任何作用。指令“分配扩展脉冲定时器参数并启动”需要前导逻辑运算进行边沿检测,并可置于程序段 中间或结尾。每次访问都更新指令数据。在循环开始和循环结束时查询数据可能会返回不同的值。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。定时器中的值比预期的时基Zui多短一个时间间隔值。以下给出了如何构造时间单元的一个示例:另请参见“L:加载定时器值”。S_ODT: 分配接通延时定时器参数并启动 (S7-1500)说明 当输入 S 的逻辑运算结果 (RLO) 的信号状态从“0”变为“1”(信号上升沿)时,指令“分配接通延时定时器参数并启动”将启动预设的定时器。当输入 S 的信号状态为“1”后,该定时器 在经过预设的持续时间 (TV)后计时结束。如果定时器正常计时结束且输入 S 的信号状态仍为 “1”,则输出 Q 将返回信号状态“1”。如果定时器运行期间输入 S的信号状态从“1”变为“0”,定 时器将停止。在这种情况下,将输出 Q 的信号状态复位为“0”。持续时间由定时器值和时基构成,且在参数 TV 处设定。该指令启动后,预设的时间值开始递减计数,直至为零。时基决定时间周期。当前定时器值在输出 BI 处以二进制编码格式输出, 在输出 BCD 处以 BCD 编码格式输出。如果正在计时且输入端 R 的信号状态从“0”变为 “1”,则当前时间值和时间基准也将设置为 0。 这种情况下,输出 Q的信号状态为“0”。如果输入 R 的信号状态为“1”,定时器未计时且 输入 S 的 RLO 为“1”,定时器仍会复位。指令“分配接通延时定时器参数并启动”需要使用前导逻辑运算进行边沿检测,并可置于程 序段中间或结尾。每次访问都更新指令数据。在循环开始和循环结束时查询数据可能会返回不同的值。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。定时器中的值比预期的时基Zui多短一个时间间隔值。以下给出了如何构造时间单元的一个示例:另请参见“L:加载定时器值”。