Structured Text 结构化文本
不区分大小写
1) 异或表达式:XOR
2) 与表达式:AND
3) 等于表达式: =
4) 比较表达式:< ,> ,<= ,>=
5) 加表达式:+ , -
6) 乘表达式:* ,/ , MOD
7) 一元表达式: - , NOT
8) 基本表达式,基本表达式可以是常数、枚举值、变量、(表达式)和函数调用等;类型定义
9) 赋值表达式:A:=B
表达式运算的优先级由上面各表达式类型从上到下隐含确定,基本表达式最高,异或表达式最低;
if
'IF' expression 'THEN' statement_list
{'ELSIF' expression 'THEN' statement_list}
['ELSE' statement_list]
'END_IF'
for:
'FOR' control_variable ':=' for_list 'DO' statement_list 'END_FOR'
control_variable ::= identifier
for_list ::= expression 'TO' expression ['BY' expression]
case
'CASE' expression 'OF'
case_element
{case_element}
['ELSE' statement_list]
'END_CASE'
1) 其中expression(选择符)的属性必须是ANY_INT、ANY_BIT(BOOL除外)、或者枚举类型;
while
'WHILE' expression 'DO' statement_list 'END_WHILE’
repeat
'REPEAT' statement_list 'UNTIL' expression 'END_REPEAT'
exit
EXIT
1) EXIT语句只能够使用在迭代语句中;
2) EXIT语句的作用是退出当前迭代语句,如果迭代语句中的迭代语句使用了EXIT语句,只能够退出内层迭代语句;
序号 | 左侧属性 | 右侧属性 | 处理方式d |
1 | BYTE | 常数范围0~255,类型为BYTE、SINT或USINT | 对右侧所有常量进行处理,完成后进行赋值运算;例如:a:= a + 12 + 100 * 3 ; 右边的运算结果为a + 312;其中312不在0~255之间,语法检查会报告出错误 |
2 | SINT | 常数范围-128~127,类型为BYTE、SINT或USINT | 类似 |
3 | USINT | 常数范围0~255,类型为BYTE、SINT或USINT | 类似 |
4 | WORD | 常数范围0~65535,类型为BYTE、SINT、USINT、WORD、INT或UINT | 类似 |
5 | INT | 常数范围-32768~32767,类型为BYTE、SINT、USINT、WORD、INT或UINT | 类似 |
6 | UINT | 常数范围0~65535,类型为BYTE、SINT、USINT、WORD、INT或UINT | 类似 |
7 | DWORD | 常数范围0~ 4294967295,类型为BYTE、SINT、USINT、WORD、INT、UINT、DWORD、DINT或UDINT | 类似 |
8 | DINT | 常数范围-2147483648 ~ 2147483647,类型为BYTE、SINT、USINT、WORD、INT、UINT、DWORD、DINT或UDINT | 类似 |
9 | UDINT | 常数范围0~ 4294967295,类型为BYTE、SINT、USINT、WORD、INT、UINT、DWORD、DINT或UDINT | 类似 |