EcoStruxure Machine Expert versión 1.1 no soporta los controladores M258, LMC058 y LMC078.

Expresiones

Descripción general

Una expresión es una construcción que devuelve un valor tras su evaluación. Este valor se utiliza en las instrucciones.

Las expresiones están compuestas por operadores, operandos o asignaciones. Un operando puede ser una constante, una variable, una llamada de función u otra expresión.

Ejemplos

33 

(* Constante *)

ivar 

(* Variable *)

fct(a,b,c)

(* Llamada de función*)

a AND b 

(* Expresión *)

(x*y) / z 

(* Expresión *)

real_var2 := int_var; 

(* Asignación, véase a continuación *)

Orden de las operaciones

La evaluación de una expresión se realiza procesando los operadores según unas reglas determinadas. El operador con el orden más alto de operación se procesa primero, seguido del operador con el nivel de operación siguiente y así sucesivamente hasta que se hayan procesado todos los operadores.

A continuación encontrará una tabla de los operadores ST ordenados por nivel de operación ordinal:

Operación

Símbolo

Nivel de operación

entre paréntesis

(expresión)

orden más alto

llamada de función

nombre de la función (lista de parámetros)

..............

exponenciación

EXPT

.............

negación

............

creación de complementos

NOT

...........

multiplicar

*

..........

dividir

/

.........

módulo

MOD

........

sumar

+

.......

restar

......

comparar V

<,>,<=,>=

.....

igual a

=

....

no es igual a

<>

...

AND booleano

AND

..

XOR booleano

XOR

.

OR booleano

OR

orden más bajo

Asignación como expresión

Como ampliación del estándar IEC 61131-3 (ExST), las asignaciones se pueden utilizar como una expresión.

Ejemplos:

 

 

int_var1 := int_var2 := int_var3 + 9;

(* int_var1 e int_var2 equivalen al valor de int_var3 + 9*)

real_var1 := real_var2 := int_var;

(* las asignaciones correctas, real_var1 y real_var2 obtendrán el valor de int_var *)

int_var := real_var1 := int_var;

(* se mostrará un mensaje debido al conflicto de tipos real-int *)

IF b := (i = 1) THEN
i := i + 1;
END_IF

(*Expresión empleada dentro de una instrucción de condición IF: primero se asignará a b TRUE o FALSE, en función de si i es 1 o no, tras lo cual se evaluará el valor resultante de b.*)