Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

CoDeSys

Enviado por   •  24 de Diciembre de 2018  •  4.374 Palabras (18 Páginas)  •  332 Visitas

Página 1 de 18

...

Programa principal PLC_PRG

El POU PLC_PRG se activa automáticamente cada 10ms una vez se energiza el controlador. Éste programa debe estar presente en cada proyecto.

Todos los demás programas, funciones y bloques de función son llamados desde

PLC_PRG.

Operadores y modificadores en IL

[pic 2]

Texto estructurado (ST)

Un programa en Texto Estructurado es una lista de instrucciones ST. Cada instrucción es terminada por punto y coma (;). Nombres de variables, constantes y palabras reservadas son separadas por un separador pasivo. Los separadores pasivos permitidos son espacios, tabulaciones o fin de línea. Los comentarios pueden ser agregados donde sea. Éstos deben comenzar con (* y terminar con *).

Cuando se escribe un programa en ST, se deben seguir las siguientes reglas básicas:

- Escribir no más de una instrucción en una línea.

- Simplificar instrucciones complejas mediante el uso de tabulaciones.

- Usar comentarios para clarificar el programa.

Ejemplo:

¡Incorrecto!

numero := max_veces; cond := X1;

IF NOT (cond) THEN RETURN; END_IF;FOR i := 1 TO max_veces DO

IF i 3 THEN reset; END_IF; END_FOR;

(* sin efecto cuando hay alarma *)

Correcto

(* numero := número de veces que se repite *)

(* i := index para la instrucción FOR *)

(* cond := input X1 del proceso *)

(* reset es otro programa *)

(* settings *)

numero := max_veces;

cond := X1;

(* si no hay señal *)

IF NOT (cond) THEN

RETURN;

END_IF

(* proceso de reset *)

FOR i := 1 TO max_veces DO

IF i 3 THEN

reset;

END_IF

END_FOR

El Segundo ejemplo es mucho más legible y por lo tanto más fácil de entender que el primer ejemplo. El tiempo invertido en esto se paga con crecer cuando se tiene que modificar el programa o cuando se trata de localizar un error.

Cuando se hace uso de instrucciones en Texto Estructurado, las variables deben de ser del mismo tipo.

Ejemplo:

boo_var1 AND boo_var2 ambas son de tipo Booleano

NOT (boo_var3) es de tipo Booleano

(SIN(30) + 0.72) ambas son de tipo REAL

(t#2s30 + 3.3) son de tipo diferente. Time y real, esto es incorrecto.

El orden de las operaciones puede ser influenciado por el uso de paréntesis. Cuando no existan paréntesis/llaves en una expresión, la operación es ejecutada basándose en la prioridad de operaciones (BNAO).

Ejemplo:

3 + 5 * 4 = 3 + 20 =23 porque la multiplicación precede a la suma

(3 + 5) * 4 = 8 * 4 = 32 porque la operación entre paréntesis tiene precedencia

Los paréntesis pueden ser anidados hasta un máximo de 8

(1 + (2 * (3 + (2 * (100 – (3 * (5 * (2 * 2)))))))) = 167

La siguiente tabla muestra las operaciones de acuerdo a su orden de precedencia:

[pic 3]

Asignación, :=

Permite asignar un valor de una variable a otra, o asignar el resultado de una operación a una variable. La asignación también define el tipo de variable, por ejemplo:

A := B; Asigna a la variable A el valor de B

B := C * D; Multiplica la variable C x D y asigna el resultado a B.

F := COS(H); Determina el coseno del ángulo H y asigna el resultado a F

A := BOOL; Variable A es de tipo Boolean

C := REAL; Variable C es de tipo Real

Uso de subprogramas

Para llamar a un subprograma, se usa el nombre de dicho subprograma, seguido por los parámetros que se le van a transferir dentro de paréntesis.

Ejemplo:

Llamado del subprograma Calc.

(* Programa principal ST *)

(* Calcula un valor análogo de tres señales binarias *)

Valor := Calc (bi0,bi1,bi2);

Subprograma Calc.

En el subprograma Calc, las variables in0, in1 e in2 están definidas como parámetros de entrada, y Temporal es una variable usada para almacenar un valor intermedio.

(* Programa Calc *)

LDin2 (* Input 2 *)

BOOL_TO_INT (* resultado := 1 o 0 de in2 *)

MUL 4 (* resultado := 4 x INT de in2 *)

STTemporal (*almacena el valor intermedio *)

LDin1 (* Input 1 *)

BOOL_TO_INT (* resultado := 1 o 0 de in1 *)

MUL 2 (* resultado :=

...

Descargar como  txt (28.1 Kb)   pdf (87.9 Kb)   docx (33.5 Kb)  
Leer 17 páginas más »
Disponible sólo en Essays.club