3.4 边沿检测指令
STEP7中有两类、共4种边沿检测指令,一类是对RLO的上升沿及下降沿检测的指令,另一类是对触点的上升沿及下降沿直接检测的梯形图方块指令。逻辑操作结果RLO的边沿检测指令是指当前的RLO值与前一次扫描周期的RLO值做比较,判断是否有上升沿或者下降沿,如果有,则产生一个扫描周期的1信号。
3.4.1 RLO的上升沿检测指令
RLO的上升沿检测指令的格式及示例如表3-9所示。RLO边沿检测指令指定一个“位存储器”,用来记录前一周期RLO的信号状态,以便进行比较。在OB1的每一个扫描周期,RLO位的信号状态都将与前一周期获得的结果进行比较,看信号状态是否有变化。
表3-9 RLO的上升沿检测指令的格式及示例
(续)
示例1中,当I1.0出现由0到1的变化时,Q4.0变为1并维持一个扫描周期,之后Q4.0又变为0。示例2中,当I1.1常开触点和I1.2常闭触点逻辑“或”的结果如果出现由0到1的变化时,则Q4.1变为1并维持一个扫描周期,之后Q4.1又变为0。
3.4.2 RLO的下降沿检测指令
RLO的下降沿检测指令的用法与上升沿检测指令相同,RLO的下降沿检测指令的格式及示例如表3-10所示。
表3-10 RLO的下降沿检测指令的格式及示例
示例1中,当I1.0出现由1到0的变化时,Q4.2变为1并维持一个扫描周期,之后Q4.2又变为0。示例2中,在I1.3常开触点断开的情况下,如果I1.1常开触点和I1.2常闭触点逻辑“或”的结果出现由1到0的变化,则Q4.3变为1并维持一个扫描周期,之后Q4.3又变为0。如果I1.3常开触点闭合,则Q4.3为1,不受I1.1及I1.2状态的影响。
图3-6所示为RLO边沿检测指令工作时序图,说明了示例中边沿指令FP和FN指令的检测时序。对于FP指令,当A点的RLO状态由“0”变为“1”时,当前的RLO值与M1.0的记录值进行比较,表明有上升沿信号产生,M8.0输出一个扫描周期的“1”信号,同时当前的RLO值存入M1.0,为下一个扫描周期的比较做准备。对于FN指令,当B点的RLO状态由“1”变为“0”时,当前的RLO值与M1.1的记录值进行比较,表明有下降沿信号产生,M8.1输出一个扫描周期的“1”信号,同时当前的RLO值存入M1.1,为下一个扫描周期的比较做准备。
图3-6 RLO边沿检测指令工作时序图
a)梯形图 b)工作时序
3.4.3 触点信号的上升沿检测指令
触点信号上升沿检测指令的格式及示例如表3-11所示。指令中的“位地址1”为被扫描的触点信号;“位地址2”为边沿存储位,用来存储触点信号,即“位地址1”前一周期的状态;Q为输出,当“启动条件”为真且“位地址1”出现上升沿信号时,Q端可输出一个扫描周期的1信号。为了区别RLO边沿检测指令与触点边沿检测指令,在STL语句中,FP或FN后面加一条BLD100语句。
表3-11 触点信号上升沿检测指令的格式及示例
示例1中,当I1.0出现上升沿时,则Q4.0变为1,并保持一个周期,之后又变为0。示例2中,当I1.1出现上升沿,且I0.0的常开触点及I0.1的常开触点同时闭合时,则Q4.1变为1,并保持一个周期,之后又变为0。否则,Q4.1为0。
3.4.4 触点信号的下降沿检测指令
触点信号下降沿检测指令的用法与上升沿检测指令相同,触点信号的下降沿检测指令的格式及示例如表3-12所示。指令中当“启动条件”为真且“位地址1”出现下降沿信号时,Q端可输出一个扫描周期的1信号。
表3-12 触点信号下降沿检测指令的格式及示例
示例中,当I1.1出现下降沿,且I0.0的常开触点、I0.1的常闭触点及I0.2的常开触点同时闭合,或M0.4的常开触点及I0.2的常开触点同时闭合时,则Q4.3变为1,并保持一个周期,之后又变为0。否则,Q4.3为0。
图3-7中的信号状态图说明了示例中POS指令和NEG指令的检测时序。
图3-7 触点信号边沿检测指令
a)梯形图 b)工作时序