赋值(S7-300, S7-400) 说明 使用“赋值”指令以将 CPU 中保存的逻辑运算结果 (RLO) 的信号状态分配给指定操作数。如果 RLO 的信号状态为“1”,则置位操作数。如果信号状态为“0”,则操作数复位为“0”。“赋值”指令的执行受“主控继电器”(MCR) 影响。当 MCR 位设置为“0”时,指定操作数的信 号状态将设置为“0”。
R:复位 (S7-300, S7-400) 说明 使用“复位”指令以将指定操作数的信号状态复位为“0”。只有在当前的逻辑运算结果 (RLO) 为“1”时,才执行该指令。执行该指令后,指定操作数将 复位为“0”。如果当前 RLO为“0”,则指定操作数的信号状态保持不变。 “复位”指令的执行受“主控继电器”(MCR) 影响。如果 MCR 位置位为"0",则指定操作数的 信号状态保持不变。 参数 下表列出了“复位”指令的参数: 参数 声明 数据类型 存储区 说明<操作数> Output BOOL I、Q、M、D、L RLO 为“1”时复位的操作 数。S:置位 (S7-300,S7-400) 说明 使用“置位”指令以将指定操作数的信号状态置位为“1”。 只有在当前的逻辑运算结果 (RLO)为“1”时,才执行该指令。执行该指令后,指定操作数将 置位为“1”。如果当前 RLO 为“0”,则指定操作数的信号状态保持不变。“置位”指令的执行受“主控继电器”(MCR) 影响。如果 MCR 位置位为 "0",则指定操作数的 信号状态保持不变。 参数下表列出了“置位”指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Output BOOL I、Q、M、D、LRLO 为“1”时置位的操作 数。
NOT:取反 RLO(S7-300, S7-400) 说明 使用“取反 RLO”指令,可对逻辑运算结果 (RLO) 的信号状态进行取反。可以在任何地方使用“取反 RLO”指令,甚至是在逻辑运算中。SAVE:将 RLO 保存到 BR 位 (S7-300, S7-400) 说明 使用“将RLO 保存到 BR 位”指令,将逻辑运算的结果 (RLO) 保存到二进制结果 (BR) 中。在执行过程中,此指令会将当前逻辑运算结果的信号状态传送到状态位 BR。该指令的操作与 条件无关,不会影响其它状态位。 说明在执行指令“将 RLO 保存到 BR 位”后,可通过同一块或下级块中的指令再次修改 BR 位。 使用指令“将 RLO 保存到 BR位”,可检查块的执行状态。例如,如果在块的结尾处使用 “将 RLO 保存到 BR 位”指令,则 BR位将置位为块当前逻辑运算结果的信号状态。 BR 位有助于针对块调用实现 EN/ENO机制。有关此主题的详细信息,请参见“另请参见”。FN:扫描 RLO 的信号下降沿 (S7-300, S7-400) 说明 使用“扫描RLO 的信号下降沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“1”到“0”的 更改。该指令将比较 RLO的当前信号状态与保存在边沿存储位(<操作数>)中上一次查询 的信号状态。如果该指令检测到 RLO从“1”变为“0”,则说明出现了一个信号下降沿。 下图显示了下降沿和上升沿时,RLO的变化:每次执行指令时,都会查询信号下降沿。边沿检测后,如果检测到信号下降沿,则 RLO 的信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,RLO 的信号状态均为“0”。 说明 修改边沿存储位的地址边沿存储器位的地址在程序中Zui多只能使用一次,否则,会覆盖该位存储器。该步骤将影响到边沿检测,从而导致结果不再唯一。边沿存储位的存储区域必须位于 DB(FB 静态区域) 或位存储区中。 参数 下表列出了“扫描 RLO的信号下降沿”指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Output BOOL I、Q、M、D、L保存上一次查询的 RLO 的 边沿存储位。FP:扫描 RLO 的信号上升沿 (S7-300, S7-400) 说明 使用“扫描 RLO的信号上升沿”指令,可查询逻辑运算结果 (RLO) 的信号状态从“0”到“1”的 更改。该指令将比较 RLO的当前信号状态与保存在边沿存储位(<操作数>)中上一次查询 的信号状态。如果该指令检测到 RLO从“0”变为“1”,则说明出现了一个信号上升沿。 下图显示了下降沿和上升沿时,RLO的变化:每次执行指令时,都会查询信号上升沿。边沿检测后,如果检测到信号上升沿,则 RLO 的信号状态将在一个程序周期内保持置位为“1”。在其它任何情况下,RLO 的信号状态均为“0”。 说明 修改边沿存储位的地址边沿存储器位的地址在程序中Zui多只能使用一次,否则,会覆盖该位存储器。该步骤将影响到边沿检测,从而导致结果不再唯一。边沿存储位的存储区域必须位于 DB(FB 静态区域) 或位存储区中。 参数 下表列出了“扫描 RLO的信号上升沿”指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Output BOOL I、Q、M、D、L保存上一次查询的 RLO 的 边沿存储位。定时器操作 (S7-300, S7-400) FR:启用定时器 (S7-300,S7-400) 说明 可以使用指令“启用定时器”重新启动定时器。在上升沿时执行该指令,并通过复位内部边沿触发标志来启动定时器。当逻辑运算结果为“1”时执行该指令,在启动定时器的过程中,即使在启动指令之前没有出现信号上升沿,定时器也会重新启动。如果在启动指令前,逻辑运 算结果为"0",那么复位内部边沿触发标志不会影响定时器。 在执行“启用定时器”指令之前,如果逻辑运算结果更改为“0”,则在重新启动定时器之后该结果不受影响。即使在启动函数执行期间未启动定时器,累加器 1 中也会有 S5TIME 形式的有效定时器值。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基Zui多短一个时间间隔值。以下给出了如何构造时间单元的一个示例:另请参见“L:加载定时器值”。 参数 下表列出了“启用定时器”指令的参数: 操作数 声明数据类型 存储区 说明 <定时器> Input TIMER T 已启动的定时器有关有效数据类型的更多信息,请参见“另请参见”。L:加载定时器值 (S7-300, S7-400) 说明使用“装载定时器值”指令,将指定的定时器的定时器值装载到累加器 1 中。装载二进制码 的定时器值时,不会载入时基。此时将零写入累加器1 中,而不是时基。 加载完成后,累加器 1 中的值为 INT 数据类型的正数。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基Zui多短一个时间间隔值。下图示例说明了如何将时间值加载到累加器中:LC:加载 BCD 码定时器值 (S7-300, S7-400) 说明 使用“加载 BCD码定时器值”指令,将加载累加器 1 中双编码指定定时器的 BCD 码定时器 值。在加载过程中,时基将传送到累加器 1 中。加载完成后,累加器 1 中的值将为 S5TIME 形式的时间段。累加器 1 中剩余的字将用零填满。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基Zui多短一个时间间隔值。下图说明了如何将时间值加载到累加器中:R:复位定时器 (S7-300, S7-400) 说明使用“复位定时器”指令,将所指定的定时器复位为“0”。在当前的逻辑运算结果 (RLO) 为“1” 时,执行该指令。只有在执行指令之前RLO 为“1”,所指定的定时器才会返回值“0”。该指令 同时也将时间值和已编程时间段的时基复位为 "0"。 说明在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基Zui多短一个时间间隔值。 说明“复位定时器”指令不会复位内部边沿存储器位。要复位内部边沿存储器位,需要对“启用定时器”指令进行编程,或者执行该指令,以便在信号状态为“0”时开始计时。以下给出了如何构造时间单元的一个示例:另请参见“L:加载定时器值”。SP:启动脉冲定时器 (S7-300, S7-400) 说明使用“启动脉冲定时器”指令,将在上升沿时启动所指定的定时器。如果检测到信号上升沿,将执行该指令并启动定时器。之后,在执行指令前只要逻辑运算结果 (RLO) 保持为“1”,定 时器便会运行累加器 1指定的一段时间。如果在该时间段结束之前,RLO 更改为 "0",定时 器便会停止。只要该时间段未结束,那么查询结果为 "1"的定时器状态将返回查询结果 "1"。 在执行“启动脉冲定时器”指令之前如果有上升沿则会重新启动定时器,或者使用“启用定时器”指令重新启动该定时器。只能重新启动未复位的定时器。 累加器 1中的时间段由时间值和时基组成。如果指定的定时器通过“启动脉冲定时器”指令启动,则会根据时基对时间值进行减计数。当计数值减为零时,定时器停止运行。 即使在指令执行期间定时器未启动,累加器 1 中也会存在S5TIME 形式的有效时间段。如果 累加器 1 中的 BCD 值无效,则将执行同步错误处理(STOP 或 OB122)。状态位 OV不受影 响。 说明 在时间单元,操作系统通过时基指定的间隔,以一个时间单位缩短时间值,直到该值为“0”。递减操作与用户程序不同步执行。因此,定时器中的值比预期的时基Zui多短一个时间间隔值。以下给出了如何构造时间单元的一个示例:另请参见“L:加载定时器值”。