表达式

表达式是一个结构,评价之后返回一个值。这个值在指令中使用。

表达式由 操作符 , 操作域和/或分配组成。一个操作域可以是一个常量,变量,功能调用或其它表达式。

例子:

33

(* Konstante *)

ivar

(* Variable *)

fct(a,b,c)

(* Funktionsaufruf *)

a AND b

(* Ausdruck *)

(x*y) / z

(* Ausdruck *)

real_var2 := int_var;

(* Zuweisung, s.u. *)

表达式的值

表达式的评价通过根据特定绑定原则的操作符处理进行。最强绑定的先执行,然后其次强的绑定,等等,直到所有操作符都处理完。

同等强度的操作符从左向右执行。

下面你会看到一个按照绑定强度的ST操作符:

操作

符号

绑定力量

放在括号里

(expression)

最强绑定

函数调用

Function name (parameter list)

 

EXPT

 

取反

补充编译

-

NOT

 

取余

*

/

MOD

 

+

-

 

比较

<,>,<=,>=

 

等于

不等于

=

<>

 

布尔 与

AND

 

 

布尔 异或

XOR

 

布尔 或

 

OR

Weakest binding

作为表达式的分配

作为IEC 61131-3 标准的扩展(ExST),CoDeSys 允许分配作为表达式使用

例子:

int_var1 := int_var2 := int_var3 + 9;

(* int_var1

real_var1 := real_var2 := int_var;   

(* correct assignments, real_var1 and real_var2 will get the value of int_var *)

int_var := real_var1 := int_var;

(* this will lead to an error message because of type mismatch real-int ! *)

IF b := (i = 1) THEN

i := i + 1;

END_IF