用过小型PLC梯形图编程的同学应该知道梯形图编程中的SET与RST指令。比如一个M元件,我们想让M100置位,只要写 SET M100就好了;复位当前M元件只要写RST M100就可以了。
同样的在ST文本这种高级语言中,也是有置位和复位语句的。
置位 S=
A S= B;这句语句的意思是只要B在程序的一个扫描周期内为true的话,我们的A变量就会被置位为true;
vb_启动按钮 S= hb_启动信号; “vb_启动按钮”是程序中用到的局部变量,“hb_启动信号”是触摸屏上的启动信号。当“hb_启动信号”在一个扫描周期内为true的时候,“vb_启动按钮”这个局部变量按钮就会被置位为true。
复位 R=
A R= B;当B在程序的一个扫描周期为true的时候,复位A,也就是把A设置成false。
用新学到的置位与复位语句,我们来改写一下4.5章节的项目代码:
局部变量段:
PROGRAM PLC_PRG
VAR
vR_Trig : R_TRIG;
vF_Trig : F_TRIG;
vt_Time1 : TON;
vt_Time2 : TON;
vb_StartButton : BOOL;
END_VAR
代码段:
vt_Time1(IN:= (NOT vb_StartButton), PT:= T#2S, Q=> , ET=> );
vb_StartButton S= vt_Time1.Q;
vt_Time2(IN:= vb_StartButton, PT:= T#3S, Q=> , ET=> );
vb_StartButton R= vt_Time2.Q;
vR_Trig(CLK:= vb_StartButton, Q=> );
vF_Trig(CLK:= vb_StartButton, Q=> );
其实这和使用IF语句实现的效果是一样一样的,这样反而能减少我们程序的代码量,达到简化程序的效果。