TONR:时间累加器 (S7-1500) 说明 可以使用“时间累加器”指令来累加由参数 PT 设定的时间段内的时间值。输入 IN 的信号状 态从“0”变为“1”(信号上升沿)时,将执行时间测量,同时时间 PT 开始计时。当 PT 正在计 时时,加上在 IN 输入的信号状态为“1”时记录的时间值。累加得到的时间值将写入到输出 ET 中,并可以在此进行查询。持续时间 PT 计时结束后,输出 Q 的信号状态为“1”。即使 IN 参 数的信号状态从“1”变为“0”(信号下降沿),Q 参数仍将保持置位为“1”。 无论启动输入的信号状态如何,输入 R 都将复位输出 ET 和 Q。 “时间累加器”指令可以放置在程序段的中间或者末尾。它需要一个前导逻辑运算。 在程序代码中,通过“调用块”(CALL) 指令调用“时间累加器”指令。 每次调用“时间累加器”指令,必须为其分配一个用于存储实例数据的 IEC 定时器。IEC 定 时器是一个 IEC_TIMER、IEC_LTIMER、TONR_TIME 或 TONR_LTIME 数据类型的结构,可如 下声明: • 声明为一个系统数据类型为 IEC_TIMER 或 IEC_LTIMER 的数据块(例如,“MyIEC_TIMER”) • 声明为块中“Static”部分的 TONR_TIME 或 TONR_LTIME 类型的局部变量(例如, #MyTONR_TIMER)更新实例数据中的实际值 “关断延时”中的实例数据根据以下规则更新: • IN 输入 “启动关断延时定时器”指令将当前 RLO 与保存在实例数据“IN”参数中上次查询的 RLO 进 行比较。如果指令检测到 RLO 从“1”变为“0”,则说明出现了一个信号下降沿并开始进行时 间测量。在“启动关断延时定时器”指令处理完毕后,IN 参数的值在实例数据中更新,并 作为存储器位用于下次查询。 请注意,边沿检测将在其他功能写入或初始化“IN”参数的实际值时中断。 • PT 输入 当边沿在 IN 输入处改变时,PT 输入处的值将写入实例数据中的 PT 参数。 • Q 和 ET 输出 Q 和 ET 输出的实际值在以下情况下更新: – 当输出 ET 或 Q 互连时,调用该指令。 或 – 访问 Q 或 ET。 如果输出未互连并且还未被查询,则不更新 Q 和 ET 输出的当前时间值。即使在程序中跳 过该指令,也不会对输出进行更新。 “启动关断延时定时器”指令的内部参数用以计算 Q 和 ET 的时间值。请注意,时间测量 将在其他功能写入或初始化指令的实际值时中断。 危险 重新初始化实际值的危险 在时间测量时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值可 能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。
从下拉列表“???”中选择数据类型后,将打开“调用选项”(Call options) 对话框。 更新实例数据中的实际值 “时间累加器”中的实例数据根据以下规则更新: • 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 定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。RESET_TIMER:复位定时器 (S7-1500) 说明 使用“复位定时器”指令,可将 IEC 定时器复位为“0”。将指定数据块中定时器的结构组件复 位为“0”。 该指令不会影响 RLO。在 TIMER 参数中,将“复位定时器”指令分配给程序中所声明的 IEC 定时器。 实际值的更新 只有在调用指令时才更新指令数据,而不是每次都访问分配的 IEC 定时器。只有在指令的当 前调用到下一次调用期间,数据查询的结果才相同。 危险 重新初始化实际值的危险 在定时器运行时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值 可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。PRESET_TIMER:加载持续时间 (S7-1500) 说明 可以使用“加载持续时间”指令为 IEC 定时器设置时间。在每个周期内都执行该指令。该指 令将指定时间写入指定 IEC 定时器的结构中。 可以将在程序中声明的 IEC 定时器赋给“加载持续时间”指令。 说明 如果在指令执行时指定 IEC 定时器正在计时,指令将覆盖该指定 IEC 定时器的当前值。这将 更改 IEC 定时器的定时器状态。实际值的更新 只有在调用指令时才更新指令数据,而且每次都访问分配的 IEC 定时器。查询 Q 或 ET 时(例 如“MyTimer”.Q 或“MyTimer”.ET),将更新 IEC_TIMER 的结构。 危险 重新初始化实际值的危险 在定时器运行时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值 可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。实际值的更新 只有在调用指令时才更新指令数据,而且每次都访问分配的 IEC 定时器。查询 Q 或 ET 时(例 如“MyTimer”.Q 或“MyTimer”.ET),将更新 IEC_TIMER 的结构。 危险 重新初始化实际值的危险 在定时器运行时,重新初始化 IEC 定时器的实际值会破坏 IEC 定时器的功能。更改实际值 可能会导致程序和实际过程之间不一致。这会对财产和人身造成造成严重损害。 以下功能可导致实际值重新初始化: • 通过重新初始化加载块 • 将快照加载为实际值 • 控制或强制执行实际值 • “WRIT_DBL”指令 在执行这些功能前,请采取以下预防措施: • 在覆盖实际值之前,应确保设备始终处于安全状态。 • 在初始化 IEC 定时器的实际值前,请确保定时器已计时结束。 • 如果使用快照覆盖实际值,请确保是在系统处于安全状态时拍摄的快照。 • 确保程序在传输期间不读写受影响的数据。如果在单个背景中设置 IEC 计数器,将默认使用“优化的块访问”(optimized block access) 创 建背景数据块,并将各个变量定义为具有保持性的变量。 有关在背景数据块中设置保持性的更多信息,请参见“另请参见”。对 IEC 计数器进行声明 从下拉列表“???”中选择数据类型后,将打开“调用选项”(Call options) 对话框。然后可以按 如下方式声明 IEC 计数器: • 单个背景:声明为一个系统数据类型为 IEC_<计数器> 的背景数据块(例如, “MyIEC_COUNTER”) • 多重背景:声明为块中“Static”部分的 CTU_<数据类型> 或 IEC_<计数器> 类型的局部变量 (例如 #MyCTU_COUNTER)