SCL R_TRIG — 上升沿检测
检测 0→1 的上升沿,Q 只在一个扫描周期为 1;需要实例。
SCL 没有 LAD 的 P/N 触点;边沿要用 R_TRIG/F_TRIG 实例,或者自己保存上一周期值。
边沿结果是单周期脉冲:Q 只在一个扫描周期为 1,不能直接当持续使能。
示例统一用 #Trig(CLK := #Signal) 调用,再读 #Trig.Q。
| 需求 | 写法 |
|---|---|
| 上升沿 | R_TRIG |
| 下降沿 | F_TRIG |
| 不想用实例 | 保存上一周期值,手动比较 |
1VAR
2 Trig : R_TRIG;
3END_VAR
4
5#Trig(CLK := #Signal);
6#Rising := #Trig.Q;
下降沿把 R_TRIG 换成 F_TRIG。每个信号用独立实例,不要共用一个。
1#Rising := #Signal AND NOT #Prev;
2#Falling := NOT #Signal AND #Prev;
3#Prev := #Signal;
必须先比较、再更新 #Prev;顺序反了就永远检测不到边沿。
边沿是单周期事件;要持续动作,用 Q 去置位/自锁或进状态机。
不能。实例只保存一个上一周期值,共用会互相覆盖。
放 FB 的 Static(VAR)并保持;放 VAR_TEMP 每次重建,边沿会失效。