ST ST语语言概述
ST语言在图形编程中和其它图形编程语言组合使用。实现了IEC1131-3标准的一个子集。 使用方法
在工程中加入ST语言段落。
可以在梯形图和功能块图中插入文本代码模块。在模块中用ST语言编程。 可以在顺控图中的步的操作中使用 = 操作限定词,然后可以用ST语言编程。 在顺控图的转换条件中可以使用ST语言的逻辑表达式来指定条件。 在SFC编辑器中,当指定转换条件时可以使用ST语言逻辑表达式。
在操作中用 = 操作符可以使用ST的语句,双击该条操作即可弹出编辑界面。
注意:使用循环语句会明显增加编译时间,为获得更快的编译速度建议尽可能不使用WHILE语句并且少使REPEAT/FOR语句。
ST ST语语言语法
ST语言在图形编程软件中和其它图形编程语言组合使用。实现了IEC61131-3标准的一个子集。支持多种数据类型,支持函数、结构和数组,可以操作各种系统变量。 表达式
表达式为变量、操作符、常量、函数的组合,求值结果为单个值。
表达式的求值按运算符的优先级进行,优先级高的运算符先被处理。相同优先级的运算符按从左到右的顺序执行。    以下为几个合法的表达式举例:
A +
B * (C-3) + FUNC1(2,D)      B1        FUNC1() 使用方法
变量、函数等标识符的命名必须满足下列条件:        以英文字母开头;
续以英文字母、数字或下划线;
字符长度最多为24个字符。 标识符包括变量、函数、功能块、常数。
关键关键字字
运算符
按运算优先级从高到低有:
关键字
描述 CASE…OF…ELSE…END_CASE CASE 语句 BOOL WORD DWORD INT LONG UINT ULONG SFLOAT FLOAT 数据类型 EXIT 终止循环 FALSE
逻辑假 FOR…TO…BY…DO…END_FOR FOR语句 FUNCTION…END_FUNCTION 函数定义 FUNCTION_BLOCK END_FUNCTION_BLOCK
功能块定义
IF…THEN…ELSEIF…ELSE…END_IF IF语句 ON 逻辑真 OFF
逻辑假 REPEAT…UNTIL…END_REPEAT REPEAT 语句 RETURN 函数返回 TRUE
逻辑真
VAR…END_VAR VAR_INPUT…END_VAR VAR_OUTPUT…END_VAR 变量定义 WHILE…DO…END_WHILE
float()函数WHILE语句 运算符 描述 类型 优先级 () 表达式运算  9 . 取结构成员  8 [] 取数组成员  8 - 单目负  7 NOT
取反
逻辑运算
7
语句
以下为允许的语句列表。
* (MUL) 乘 算术运算    6 / (DIV) 除 算术运算    6 MOD 取余 算术运算    6 + (ADD) 加 算术运算    5 - (SUB) 减 算术运算    5 > 大于 比较运算    4 >= 大于等于 比较运算    4 <= 小于等于 比较运算    4 < 小于 比较运算    4 = 等于 比较运算    4 <> 不等于 比较运算    4 AND 与 逻辑运算    3 XOR 异或 逻辑运算    2 OR
逻辑运算
1
赋值语句
赋值语句将“=”右边表达式的值赋给左边的变量。
函数调用语句
函数和功能块的调用包括函数名或功能块名加小括号对,括号内为参数,参数间由逗号隔开。
函数的调用规则:
ELSE I = 3; END_CASE ; 6
FOR
J  = 10;
FOR I = 1 TO 100 BY 2 DO IF B1 THEN
J  = 1; EXIT ; END_IF ; END_FOR ; 7
WHILE
J  = 1;
WHILE J  <= 100 AND B1 DO J  = J  + 2; END_WHILE ; 8
REPEAT
J  = 1; REPEAT
J  = J  + 2;
UNTIL J  = 101 OR B1 END_REPEAT ; 9
EXIT
J  = 1;
WHILE J  <= 100 AND B1 DO J  = J  + 2;
IF J >= 50 THEN EXIT ;
END_IF ; END_WHILE ;
10
EMPTY
FOR I = 1 TO 100 BY 2 DO
;
END_FOR ;
ret  = F unc (in 1,in 2); (*作为表达式返回值*)  F unc (in 1,in 2);(*作为子程序处理*) 功能块的调用规则:
调用功能块时要严格按照输入输出顺序,先输入输入参数,再输入输出参数,参数顺序按照定义时的顺序。
输出参数必须是变量:  F unc B lock (in 1,in 2,out 1,out 2)。
ST ST语语言函言函数数和功能和功能块块 函数定义
只有一个输出(变量类型可以自行确定),根据输入可以唯一确定输出。 功能功能块块定义
有多个输出,或输出不但和当前输入有关还和上次内部状态有关。
除系统内部的函数和功能块外,用户可以自定义函数和功能块。自定义的函数和功能块可以在工程内LD/FBD段落中调用。 函数的调用规则
ret  = F unc (in 1,in 2); (*作为表达式返回值*)      F unc (in 1,in 2); (*作为子程序处理*) 功能功能块块的调用规则规则
调用功能块时要严格按照输入输出顺序,先输入输入参数,再输入输出参数,参数顺序按照定义时的顺序。    输出参数必须是变量。
F unc B lock (in 1,in 2,out 1,out 2);  使用限制
ST 的 FUNCTION 模块
可以调用其它 ST FUNCTION,允许嵌套
可以调用标准函数
ST 的 FUNCTION_BLOCK 模块
可以调用ST FUNCTION
可以调用其它ST FUNCTION_BLOCK,但是所调用的FUNCTION_BLOCK不允许嵌套