在此手册中编程语言以 结构文本编程指令为例,其它的指令格式不作详细介绍。
结构文本编程指令(Structured Text)包括了一系列的编程语句,如条件语句 (\,循环语句(WHILE..DO)等等。下面就是一个结构文本指令格式的一段小程序
IF value < 7 THEN
WHILE value < 8 DO
value := value + 1;
END_WHILE;
END_IF;
3.1 表达式
表达式指操作数被赋值后返回一个确定值的结构。
表达式由运算符和操作数组成,操作数可以是常数、变量 、调用函数或则其它
表达式。
3.2 表达式的计算
根据各种运算符优先级别依次运算得到最后的结果。
具有最高优先权的运算符最先计算,接着计算第二优先级别的运算符... 直到得出最后结果。具有相同优先级别的运算符按照从左到右的顺序计算。下面给出结构文本的运算符:
运算符 括号 函数调用 求幂 求反
优先级别 最高
符号 (表达式) 函数名 (参数) ** - NOT
乘 除 求余 加 减 比较 等于 不等于 逻辑与 异或 逻辑或
* / MOD + - <,>,<=,>= = <> AND XOR OR
最低优先级
3.3 结构文本格式编程格式指令
指令类型 赋值 (Assignment) 调用功能块或者函数的返回值(Calling a function block and use of the FB output) 返回 (RETURN) IF (条件)
例子
A:=B; CV := CV + 1; C:=SIN(X); CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q
RETURN; D:=B*B; IF D<0.0 THEN C:=A;
ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF;
CASE(分支) CASE INT1 OF 1: 2: ELSE
BOOL1 := FALSE; BOOL2 := FALSE; BOOL1 := TRUE; BOOL2 := TRUE;
END_CASE;
FOR(循环)
J:=101;
FOR I:=1 TO 100 BY 2 DO IF ARR[I] = 70 THEN J:=I; EXIT; END_IF; END_FOR;
WHILE(循环)
J:=1;
WHILE J<= 100 AND ARR[J] <> 70 DO J:=J+2; END_WHILE;
REPEAT(重复)
J:=-1; REPEAT J:=J+2;
UNTIL J= 101 OR ARR[J] = 70 END_REPEAT;
EXIT(退出)
Empty instruction(空指令)
用结构文本编程格式编写的程序与其它格式的编程语言相比出错概率低,编写的程序具有可读性高的特点。
EXIT; ;
赋值运算 (Assignment operator)
此操作将右边表达式的结果赋给左边的操作数。
符号为 :=例:
Var1 := Var2 * 10;
调用功能块(Calling a function block
结构文本编程格式通过在功能块名后面的括号里分配参数值来调用功能块的功能
)在下面的例子中通过分配参数IN和PT的值调用一定时器功能块,它的结果变量的值被赋给变量A 。
CMD_TMR(IN := %IX5, PT := 300);A:=CMD_TMR.Q
返回指令(RETURN instruction )
返回指令用来结束函数调用,当条件满足时返回主程序
条件指令(IF instruction)
使用IF指令检验是否满足条件,当条件满足时执行相应的的指令
语法:
IF <布尔表达式_1> THEN
{ELSIF <布尔表达式_2> THEN
ELSIF <布尔表达式_n> THEN
END_IF;
{}里面的内容是可选的 。
如果<布尔表达式1>的返回值为真 (TRUE),那么只有
不执行。否则检验<布尔表达式2>的返回值是否为真,这样连续判断<布尔表达式n>的返回值,直到返回值为真时执行对应的指令。如果执行到最后表达式的返回值也没有为真,那么执行
IF temp<17ELSE END_IF;
THEN heating_on := TRUE;
heating_on := FALSE;
这段程序控制加热功能的开启和关闭,当温度高于17度时不加热,当温度低于17度时就加热。
分支指令(CASE instruction)
使用分支指令可以将一些具有相同条件变量的指令结合在一个结构中
语法:
CASE <变量1> OF<=1>: <指令 1><=2>: <指令 2> ...
<=n>: <指令 n>
ELSE
CASE指令根据下面的模式处理程序:
?????如果?变量??的值为??i?,那么执行<指令i>中的指
?令。
? ?如果没有相应的?变量??的值,那么执行?ELSE 指
相关推荐: