更新实例数据中的实际值 “时间累加器”中的实例数据根据以下规则更新: • 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 定时器的实际值前,请确保定时器已计时结束。 •如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 •确保程序在传输期间不读写受影响的数据。当“Tag_Start”操作数的信号状态从“0”变为“1”时,PT参数预设的时间开始计时。只要操作数“Tag_Start”的信号状态为“1”,该时间就继续计时。当操作数“Tag_Start”的信号状态从“1”变为“0”时,计时将停止,并记录操作数 Tag_ElapsedTime 中的当前时间值。当操作数“Tag_Start”的信号状态从“0”变为“1”时,将继续从发生信号跃迁“1”到“0”时记录的时间值开始计时。达到 PT参数中指定的时间值时,“Tag_Status”操作数的信号状态将置位为“1”。当前时间值存储在“Tag_ElapsedTime”操作数中。 有关以上示例中编程代码的更多信息,请参见“Sample Library forInstructions 。
启动脉冲定时器 (S7-1200,S7-1500) 说明 使用“启动脉冲定时器”指令启动将指定周期作为脉冲的 IEC 定时器。逻辑运算结果 (RLO) 从“0”变为“1”(信号上升沿)时,启动 IEC 定时器。无论 RLO 的后续变化如何,IEC 定时器都将运行指定的一段时间。检测到新的信号上升沿也不会影响该 IEC 定时器的运行。只要 IEC定时器正在计时,对定时器状态是否为“1”的查询就会返回信号状态“1”。当 IEC 定时器计时结束之后,定时器的状态将返回信号状态“0”。 当前定时器状态将保存在 IEC 定时器的结构组件 Q中。可以通过常开触点查询定时器状态“1”, 或通过常闭触点查询定时器状态“0”。 在指令下方的 <操作数1>(持续时间)中指定脉冲的持续时间,在指令上方的 <操作数 2> (IEC 时间)中指定将要开始的 IEC 时间。执行“启动脉冲定时器”的指令可以放置在程序段的中间或者末尾。它需要一个前导逻辑运 算。 说明 可以启动和查询不同执行等级的 IEC定时器,每次查询输出 Q 或 ET 时,都会更新 IEC_TIMER 的结构。 对于 S7-1200 CPU“启动脉冲定时器”指令以数据类型为 IEC_TIMER 或 TP_TIME 的结构存储其数据。可以如下 声明此结构: •声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“MyIEC_TIMER”) • 声明为块中“Static”部分的TP_TIME 或 IEC_TIMER 类型的局部变量(例如, #MyIEC_TIMER)对于 S7-1500 CPU“启动脉冲定时器”指令以数据类型为 IEC_TIMER、IEC_LTIMER、TP_TIME 或 TP_LTIME 的结构存储其数据。可以如下声明此结构: • 声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER的数据块(例如,“MyIEC_TIMER”) • 声明为块中“Static”部分的TP_TIME、TP_LTIME、IEC_TIMER 或 IEC_LTIMER 类型的局部变 量(例如,#MyIEC_TIMER)更新实例数据中的实际值 “启动脉冲定时器”中的实例数据根据以下规则更新: • IN 输入 “启动脉冲定时器”指令将当前 RLO与保存在实例数据 IN 参数中上次查询的 RLO 进行比 较。如果指令检测到 RLO从“0”变为“1”,则说明出现了一个信号上升沿并开始进行时间测 量。在“启动脉冲定时器”指令处理完毕后,IN参数的值在实例数据中更新,并作为存 储器位用于下次查询。 请注意,边沿检测将在其他功能写入或初始化 IN 参数的实际值时中断。 • PT 输入 当边沿在 IN 输入处改变时,PT 输入处的值将写入实例数据中的 PT 参数。 • Q 和ET 输出 Q 和 ET 输出的实际值在以下情况下更新: – 当输出 ET 或 Q 互连时,调用该指令。 或 – 访问 Q 或 ET。 如果输出未互连并且还未被查询,则不更新 Q 和 ET 输出的当前时间值。在程序中跳 过该指令,也不会对输出进行更新。 “启动脉冲定时器”指令的内部参数用以计算 Q 和 ET 的时间值。请注意,时间测量将在其他功能写入或初始化指令的实际值时中断。重新初始化实际值的危险 在时间测量时,重新初始化 IEC 定时器的实际值会破坏 IEC定时器的功能。更改实际值可 能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: •通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 •确保程序在传输期间不读写受影响的数据。启动接通延时定时器 (S7-1200, S7-1500) 说明使用“启动接通延时定时器”指令启动将指定周期作为接通延时的 IEC 定时器。逻辑运算结 果 (RLO)从“0”变为“1”(信号上升沿)时,启动 IEC 定时器。IEC 定时器运行一段指定的时间。 如果该指令输入处 RLO的信号状态为“1”,则输出的信号状态将为“1”。如果 RLO 在定时器计 时结束之前变为“0”,则复位 IEC定时器。此时,查询定时器状态将返回信号状态“0”。在该 指令的输入处检测到下个信号上升沿时,将重新启动 IEC 定时器。当前定时器状态将保存在 IEC 定时器的结构组件“Q”中。可以通过常开触点查询定时器状态 “1”,或通过常闭触点查询定时器状态“0”。“启动接通延时定时器”指令只可以放置在程序段的末尾。它需要一个前导逻辑运算。 在指令下方的 <操作数1>(持续时间)中指定接通延时的持续时间,在指令上方的 <操作数 2>(IEC 时间)中指定将要开始的 IEC时间。 说明 可以启动和查询不同执行等级的 IEC 定时器,每次查询输出 Q 或 ET 时,都会更新 IEC_TIMER 的结构。对于 S7-1200 CPU “启动接通延时定时器”指令以数据类型为 IEC_TIMER 或 TON_TIME 的结构存储其数据。可以如下声明此结构: • 声明为一个系统数据类型为 IEC_TIMER 的数据块(例如,“MyIEC_TIMER”) •声明为块中“Static”部分的 TON_TIME 或 IEC_TIMER 类型的局部变量(例如, #MyIEC_TIMER)对于S7-1500 CPU “启动接通延时定时器”指令以数据类型为 IEC_TIMER、IEC_LTIMER、TON_TIME 或TON_LTIME 的结构存储其数据。可以如下声明此结构: • 声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER的数据块(例如,“MyIEC_TIMER”) • 声明为块中“Static”部分的TON_TIME、TON_LTIME、IEC_TIMER 或 IEC_LTIMER 类型的局 部变量(例如,#MyIEC_TIMER)更新实例数据中的实际值 “启动接通延时定时器”中的实例数据根据以下规则更新: • IN 输入 “启动接通延时定时器”指令将当前 RLO与保存在实例数据“IN”参数中上次查询的 RLO 进 行比较。如果指令检测到 RLO从“0”变为“1”,则说明出现了一个信号上升沿并开始计时。在 “启动接通延时定时器”指令处理完毕后,IN参数的值在实例数据中更新,并作为存储 器位用于下次查询。 请注意,边沿检测将在其他功能写入或初始化 IN 参数的实际值时中断。 • PT 输入 当边沿在 IN 输入处改变时,PT 输入处的值将写入实例数据中的 PT 参数。 • Q 和ET 输出 Q 和 ET 输出的实际值在以下情况下更新: – 当输出 ET 或 Q 互连时,调用该指令。 或 – 访问 Q 或 ET。 如果输出未互连并且还未被查询,则不更新 Q 和 ET 输出的当前时间值。在程序中跳 过该指令,也不会对输出进行更新。 “启动接通延时定时器”指令的内部参数用以计算 Q 和 ET 的时间值。请注意,时间计算将在其他功能写入或初始化指令的实际值时中断。