ST触点指令
ST 语言是类似于 C 语言的语法的文本程序。可以通过语句记述条件判断及重复等控制。
例如用 ST 语句实现起保停控制程序如下:
IF X0 THEN
Y:=1;
END_IF;
常用的注释用 (* *)方式来进行注释
常用语句解析
输出指令解析
OUT(BOOL_EN, ANY_BOOL_d);
(*EN 表示使能条件,也是导通条件*)
(*BOOL表示,这个条件的数据类型是布尔变量【位变量】*)
(*d 表示目标操作数*)
(*ANY表示数据变量类型*)
点动程序实例
OUT(X0,Y0); (*X0表示的是常开触点,一般常开触点都是默认的*)
起保停实例
OUT ((X0 OR Y0) AND NOT X1,Y0); (*ST 语句中没用常闭指令,所以,只能使用 NOT 指令取反操作,来表示常闭*)
OUT ((X0 OR Y0) & NOT X1,Y0); (*效果同上*)
置位复位批量复位解析
SET(BOOL_NE,ANY_BOOL_d); (*置位*)
RST(BOOL_EN,ANY_ELEMENTARY_d); (*复位*)
ZRST(BOOL_EN,AY_ELEMENTARY_d1,,AY_ELEMENTARY_d1); (*ELEMENTARY是基本数据类型*)
程序实例 (置位复位实现正反转控制电路)
SET(X0,Y0); (*当 X0 接通,置位正转*)
RST (X0,Y1);(*当 X0 接通,复位反转*)
SET(X1,Y1);(*当 X1 接通,置位反转*)
RST(X1,Y0);(*当 X1 接通,复位正转*)
ZRST(X2,Y0,Y1);(*当 X2 接通,成批复位从 Y0 开始,到 Y1 结束,全部复位 *)
沿操作解析【上升沿和下降沿】
LDP(BOOL_EN,ANY_BOOL_s); (*EN 为上升沿导通条件,一般都为1,S 为操作条件*)
LDF(BOOL_EN,ANY_BOOL_s); (*下降沿导通条件,S 为操作条件*)
点动控制程序实例
SET(LDP(1,X0),Y0); (*上升沿置位Y0*)
RST(LDF(1,X0),Y0); (*下降沿复位Y0*)
赋值语句解析
:= 赋值语句,把右边的数值复制给左边的变量
利用沿操作实现但按钮程序控制
TOU(LDP(1,X0),M0);
OUT((M0 AND NOT Y0) OR (NOT MO AND Y0),Y0);
利用赋值语句进行书写
M0 := LDP(1,X0);
Y0 := (M0 AND NOT Y0) OR (NOT M0 AND Y0);
反转语句解析
FF(LDP(1,X0),Y0);
带上升沿的反转语句解析
ALTP(X0,Y0);