基本指令 (S7-1200, S7-1500) LAD (S7-1200, S7-1500) 位逻辑运算 (S7-1200, S7-1500) 常开触点 (S7-1200, S7-1500) 说明 常开触点的激活取决于相关操作数的信号状态。当操作数的信号状态为“1”时,常开触点将 关闭,同时输出的信号状态置位为输入的信号状态。 当操作数的信号状态为“0”时,不会激活常开触点,同时该指令输出的信号状态复位为“0”。两个或多个常开触点串联时,将逐位进行“与”运算。串联时,所有触点都闭合后才产生信 号流。 常开触点并联时,将逐位进行“或”运算。并联时,有一个触点闭合就会产生信号流。当满足以下任一条件时,将置位操作数 "SLI_gDB_NOContact".startOut: • 操作数 "SLI_gDB_NOContact".start1 和 "SLI_gDB_NOContact".start2 的信号状态为“1”。 • 操作数 "SLI_gDB_NOContact".start3 的信号状态为“1”。: 常闭触点 (S7-1200, S7-1500) 说明 常闭触点的激活取决于相关操作数的信号状态。当操作数的信号状态为“1”时,常闭触点将 打开,同时该指令输出的信号状态复位为“0”。 当操作数的信号状态为“0”时,不会启用常闭触点,同时将该输入的信号状态传输到输出。 两个或多个常闭触点串联时,将逐位进行“与”运算。串联时,所有触点都闭合后才产生信 号流。 常闭触点并联时,将进行“或”运算。并联时,有一个触点闭合就会产生信号流。
复位输出 (S7-1200, S7-1500) 说明 可以使用“复位输出”指令将指定操作数的信号状态复位为“0”。 仅当线圈输入的逻辑运算结果 (RLO) 为“1”时,才执行该指令。如果信号流通过线圈(RLO = “1”),则指定的操作数复位为“0”。如果线圈输入的 RLO 为“0”(没有信号流过线圈),则指 定操作数的信号状态将保持不变。置位输出 (S7-1200, S7-1500) 说明 使用“置位输出”指令,可将指定操作数的信号状态置位为“1”。 仅当线圈输入的逻辑运算结果 (RLO) 为“1”时,才执行该指令。如果信号流通过线圈(RLO = “1”),则指定的操作数置位为“1”。如果线圈输入的 RLO 为“0”(没有信号流过线圈),则指 定操作数的信号状态将保持不变。置位位域 (S7-1200, S7-1500) 说明 使用“置位位域”(Set bit field) 指令,可对从某个特定地址开始的多个位进行置位。 可使用值 <操作数 1> 指定要置位的位数。要置位位域的首位地址由 <操作数 2> 指定。<操 作数 1> 的值不能大于选定字节中的位数。如果该值大于选定字节中的位数,则将不执行该 条指令且显示错误消息“超出索引 <操作数 1> 的范围”(Range violation for index)。在通过另一条指令显式复位这些位之前,它们会保持置位。 在该指令下方的操作数占位符中,指定 <操作数 1>。在该指令上方的操作数占位符中,指定 < 操作数 2>。 仅在线圈输入端的逻辑运算结果 (RLO) 为“1”时,才执行该指令。如果线圈输入端的 RLO 为 “0”,则不会执行该指令。类型为 PLC 数据类型、STRUCT 或 ARRAY 的位域 具有 PLC 数据类型、STRUCT 或 ARRAY 结构时,结构中所包含的位数即为可复位的Zui大位数: • 例如,如果在 <操作数 1> 中指定值“20”而结构中仅包含 10 位,则仅置位这 10 个位。 • 例如,如果在 <操作数 1> 中指定值“5”而结构中包含 10 位,则仅置位 5 个位。
RESET_BF:复位位域 (S7-1200, S7-1500) 说明 可以使用“复位位域”(Reset bit field) 指令复位从某个特定地址开始的多个位。 可以使用 <操作数 1> 的值来指定要复位的位数。要复位的第一个位的地址由 <操作数 2> 定 义。<操作数 1> 的值不能大于选定字节中的位数。如果该值大于选定字节的位数,则将不 执行该条指令且显示错误消息“超出索引 <操作数 1> 的范围”(Range violation for index)。在通过另一条指令显式复位这些位之前,它们会保持置位。 在该指令下方的操作数占位符中,指定 <操作数 1>。在该指令上方的操作数占位符中,指定 < 操作数 2>。 仅当线圈输入的逻辑运算结果 (RLO) 为“1”时,才执行该指令。如果线圈输入的 RLO 为“0”,则 不会执行该指令。 类型为 PLC 数据类型、STRUCT 或 ARRAY 的位域 具有 PLC 数据类型、STRUCT 或 ARRAY 结构时,结构中所包含的位数即为可置位的Zui大位数: • 例如,如果在 <操作数 1> 中指定值“20”而结构中仅包含 10 位,则仅复位这 10 个位。 • 例如,如果在 <操作数 1> 中指定值“5”而结构中包含 10 位,则仅复位 5 个位。如果操作数“TagIn_1”和“TagIn_2”的信号状态为“1”,则将复位从操作数“MyDB”的地址开始的 5 个位。MyBoolArray[4] 有关以上示例中编程代码的更多信息,请参见“Sample Library for Instructions ”。SR:置位/复位触发器 (S7-1200, S7-1500) 说明 可以使用“置位复位触发器”指令,根据输入 S 和 R1 的信号状态,置位或复位指定操作数 的位。如果输入 S 的信号状态为“1”且输入 R1 的信号状态为“0”,则将指定的操作数置位为 “1”。如果输入 S 的信号状态为“0”且输入 R1 的信号状态为“1”,则将指定的操作数复位为“0”。 输入 R1 的优先级高于输入 S。输入 S 和 R1 的信号状态都为“1”时,指定操作数的信号状态 将复位为“0”。 如果两个输入 S 和 R1 的信号状态都为“0”,则不会执行该指令。因此操作数的信号状态保持 不变。 操作数的当前信号状态被传送到输出 Q,并可在此进行查询。 参数 下表列出了“置位复位触发器”指令的参数:RS:复位/置位触发器 (S7-1200, S7-1500) 说明 可以使用“复位置位触发器”指令,根据输入 R 和 S1 的信号状态,复位或置位指定操作数 的位。如果输入 R 的信号状态为“1”,且输入 S1 的信号状态为“0”,则指定的操作数将复位为 “0”。如果输入 R 的信号状态为“0”且输入 S1 的信号状态为“1”,则将指定的操作数置位为“1”。 输入 S1 的优先级高于输入 R。当输入 R 和 S1 的信号状态均为“1”时,将指定操作数的信号 状态置位为“1”。 如果两个输入 R 和 S1 的信号状态都为“0”,则不会执行该指令。因此操作数的信号状态保持 不变。 操作数的当前信号状态被传送到输出 Q,并可在此进行查询。满足下列条件时,将复位操作数“TagRS”和“TagOut”: • 操作数“TagIn_1”的信号状态为“1”。 • 操作数“TagIn_2”的信号状态为“0”。 满足下列条件之一时,将置位“TagRS”和“TagOut”操作数: • 操作数“TagIn_1”的信号状态为“0”,且操作数“TagIn_2”的信号状态为“1”。 • 操作数“TagIn_1”和“TagIn_2”的信号状态为“1”。 有关以上示例中编程代码的更多信息,请参见“Sample Library for Instructions (页 713)”。扫描操作数的信号上升沿 (S7-1200, S7-1500) 说明 使用“扫描操作数的信号上升沿”指令,可以确定所指定操作数(<操作数 1>)的信号状态 是否从“0”变为“1”。该指令将比较 <操作数 1> 的当前信号状态与上一次扫描的信号状态,上 一次扫描的信号状态保存在边沿存储位(<操作数 2>)中。如果该指令检测到逻辑运算结果 (RLO) 从“0”变为“1”,则说明出现了一个上升沿。 下图显示了出现信号下降沿和上升沿时,信号状态的变化:每次执行指令时,都会查询信号上升沿。检测到信号上升沿时,<操作数 1> 的信号状态将 在一个程序周期内保持置位为“1”。在其它任何情况下,操作数的信号状态均为“0”。 在该指令上方的操作数占位符中,指定要查询的操作数(<操作数 1>)。在该指令下方的操 作数占位符中,指定边沿存储位(<操作数 2>)。 说明 修改边沿存储位的地址 边沿存储器位的地址在程序中Zui多只能使用一次,否则,会覆盖该位存储器。该步骤将影响 到边沿检测,从而导致结果不再唯一。边沿存储位的存储区域必须位于 DB(FB 静态区域) 或位存储区中。满足下列条件时,将置位操作数“TagOut”: • 操作数“TagIn_1”、“TagIn_2”和“TagIn_3”的信号状态为“1”。 • 操作数“TagIn_4”为上升沿。上一次扫描的信号状态存储在边沿存储器位“Tag_M”中。 • 操作数“TagIn_5”的信号状态为“1”。扫描操作数的信号下降沿 (S7-1200, S7-1500) 说明 使用“扫描操作数的信号下降沿”指令,可以确定所指定操作数(<操作数 1>)的信号状态 是否从“1”变为“0”。该指令将比较 <操作数 1> 的当前信号状态与上一次扫描的信号状态,上 一次扫描的信号状态保存在边沿存储器位 <操作数 2> 中。如果该指令检测到逻辑运算结果 (RLO) 从“1”变为“0”,则说明出现了一个下降沿。 下图显示了出现信号下降沿和上升沿时,信号状态的变化:每次执行指令时,都会查询信号下降沿。检测到信号下降沿时,<操作数 1> 的信号状态将 在一个程序周期内保持置位为“1”。在其它任何情况下,操作数的信号状态均为“0”。 在该指令上方的操作数占位符中,指定要查询的操作数(<操作数 1>)。在该指令下方的操 作数占位符中,指定边沿存储位(<操作数 2>)。 说明 修改边沿存储位的地址 边沿存储器位的地址在程序中Zui多只能使用一次,否则,会覆盖该位存储器。该步骤将影响 到边沿检测,从而导致结果不再唯一。边沿存储位的存储区域必须位于 DB(FB 静态区域) 或位存储区中。