Lenguaje de programación FBD:
Lenguaje gráfico
Es conveniente cuando no hay ciclos y varias ramas en el programa
Consiste en un aritmética gráficamente conectada, Booleana y otros tipos de elementos funcionales y bloques de funciones.
FBD proviene del campo del procesamiento de señal.
Es muy popular actualmente
Fig.4. Ejemplo del lenguaje FBD del STEP 7
11
Lenguaje de programación SFC:
Lenguaje gráfico
Programa bien estructurado
Consiste en pasos y transiciones
Los pasos contienen programas en cada lenguaje estándar
No tiene ningún lenguaje análogo
El primer nivel de la estructura en el SFC es la red de trabajo, compuesta por elementos llamados pasos y transiciones. Un paso puede ser bien activo o inactivo. Cuando esta activo, las instrucciones asociadas se ejecutan hasta que el paso se vuelve inactivo.
En STEP 7 este lenguaje se denomina lenguaje gráfico de programación (S7-GRAPH) – ver la figura.
12
Fig.5
Lenguaje de programación LD
Lenguaje gráfico, que pueden soportar casi todos los PLCs
LD es una conexión gráfica entre variables Booleanas, comparable a los antiguos controles de tipo relé y representa el flujo de energía en los diagramas de circuitos eléctricos. Este lenguaje de programación se utiliza para la mayoría de las señales Booleanas.
Los denominados buses o relés rodean una red LD por la izquierda y por la derecha. Para el bus de la izquierda, suministrado con la señal lógica “1”, “la energía” llega a todos los elementos conectados. Dependiendo de su condición, los elementos dejan ir la energía hasta los siguientes elementos o interrumpen el flujo.
Prácticamente no se utiliza para trabajar con variables analógicas.
En STEP 7 este lenguaje se conoce como LAD (Ladder Logic). La Fig.6 inferior muestra un ejemplo de un programa LAD, y más adelante se muestran también otros ejemplos.
13
Fig.6
Sistema de programación CoDeSys
CoDeSys (SIStema de D?sarrollo COntrolado) es un entrono de desarrollo de programas de PLC, creado por la empresa Alemana 3S GmbH (1994 ?.). Desde 2012 se ha escrito como CODESYS (http://en.wikipedia.org/wiki/CoDeSys )
CODESYS permite el funcionamiento de los PLC producidos por las empresas como IFM, OVEN y otras muchas. Se instala por medio de un PC, con la ayuda de interfaces en serie normales (RS232), interfaz CAN-PC (ej. EC2070). Soporta tres funciones básicas:
Establecer todos los parámetros del PLC en cuestión.
Programar un PLC en uno de los lenguajes estándar, definido por la IEC 61131-3: Lista de instrucciones (IL), diagrama de función secuencial (SFC), diagrama de funciones por bloques (FBD) diagrama de lógica en escalera (LD) o texto estructurado (ST); Testeando y ajustando los programas creados.
Diagnostico/visualización de los datos recibidos en el controlador.
Contiene una librería de funciones integrada:
El sistema se descarga de manera gratuita.
14
Relación entre CODESYS y un PLC
PLC
Fábrica
CODESYS
Respuesta
Pregunta
E/S s
15
Fig.7
16
Reglas para la programación en PLCs
Retorno a la función de llamada
Llamar la atención utilizando ciclos (para tener en cuenta el tiempo de ejecución)
Incrementar el interés hacia el uso de índices para los matrices y punteros
Programa
PLC
Entrada
Salida
16
Fig.8
Estructura de un programa de un PLC
Projecto
POUs
Variables globales
Estructuras
Declaraciones
Código
17
Fig. 9
18
¿Qué es POU?
En la IEC 61131-3 los bloques, que constituyen los programas y los proyectos, se denominan Unidades Organizativas de los Programas, POU.
Los tres tipos de POU, declarados por el estándar, son Función (FUN), Bloque funcional (FB) y Programa (PROG).
La función es POU, y puede tener parámetros fijados (argumentos) pero no tiene variables estáticas, ej. no tiene memoria – siempre se proporcionan los mismos valores de salida con los mismos parámetros de entrada.
El bloque funcional tiene variables estáticas (memoria). Sus salidas siempre dependen de la condición de sus variables tanto internas como externas, cuyos valores permanecen iguales entre las ejecuciones individuales del bloque funcional. Estos son también los bloques principales para generar un programa de PLC.
El programa es de tipo POU, como el programa principal. Un elevado número de programas principales puede ejecutarse simultáneamente en los PLCs multitareas.
18
Datos y direcciones
CoDeSys suporta tres métodos de declaraciones:
Validez:
local (1 POU) o global (todas POU)
texto, tabular y automática
Tipos de variables, fijadas a su dirección:
A un área de entrada, a un área de salida, a marcadores de área
19
Sintaxis de las variables, fijadas a las direcciones
Se designan con ‘%’
Prefijos para el area:
I – entrada
Q – salida
M – marcador
Tamaño:
X – un solo bit
B – un byte (8 bits)
W – una palabra (16 bits)
D – una palabra doble (32 bits)
Ejemplos:
%IW215
%QX1.1
%MD48
20
Tipos de datos estándar (1)
El estándar IEC 61131-3 define una multitud de tipos de datos estandarizados, denominados tipos de datos elementales. Se caracterizan por tener muchos bits, y un rango de valores admisible. Además, el usuario define los tipos de datos que pueden crearse y utilizarse analógicamente. Son muy similares a los lenguajes utilizados en niveles elevados como C/C++ y PASCAL:
BOOL – una variable Booleana (8 bits, valores: VERDADERO, FALSO);
SINT – ENTero CORto (8 bits, valores: -128 ÷ 127);
INT – ENTero (16 bits, valores: -32768 ÷ 32767);
DINT – ENTero DOble (32 bits, valores: -2147483648 ÷ 2147483647);
USINT – ENTero CORto Sin designar (8 bits, valores: 0 ÷ 255);
UINT – ENTero Sin designar (16 bits, valores: 0 ÷ 65535);
UDINT – ENTero Doble Sin designar (32 bits, valores: 0 ÷ 4294967295);
BYTE – un byte (8 bits, bit-direccionables, valores: 0 ÷ 255);
WORD – una palabra (16 bits, bit-direccionables, valores: 0 ÷ 65535);
DWORD – una palabra doble (32 bits, bit-direccionables, valores : 0 ÷ 4294967295);
21
22
Tipos de datos estándar(2)
REAL- numeros con punto flotante (32 bits, valores: 1.175494351e-38 ÷ 3.402823466e+38;
LREAL – REAL Largo, números con punto flotante (64 bits, valores: 2.2250738585072014e-308 ÷ 1.7976931348623158e+308);
STRING – variables de texto (sin tamaño límite);
Ejemplo: strText: STRING(35):= ‘Hola mundo!’;
TIME – variables de tiempo (tamaño y valores como para los de tipo DWORD);
Ejemplo: tTime: TIME:= t#14ms
tTime1: TIME:= t#12h34m15s
TOD – Tiempo De Día (tamaño y valores como para los de tipo DWORD);
DATE – variables de fechas (tamaño y valores como para los de tipo DWORD);
Ejemplo: dDate: DATE:= d#1972-03-29;
DT – Fecha y Tiempo (tamaño y valores como para los de tipo DWORD).
22
23
Operaciones en CoDeSys
asignación;
operaciones de tipo Booleano;
operaciones analógicas;
comparaciones;
selección;
conversión de tipo;
operaciones con números reales;
desplazamientos de bits;
operaciones especiales.
En las siguientes diapositivas se proporcionan ejemplos de algunas operaciones en ciertos lenguajes de PLC estándar.
Operación de asignación
IL: LD, LDN, ST, STN, S, R
ST: A := B;
FBD: A B
A C
A D
LD:
S
( )
(/)
SALIDA 1
SALIDA 2
(S)
SALIDA 3
(R)
SALIDA 4
IN
Operaciones Booleanas
AND, OR, XOR y NOT
Las operaciones AND, OR y XOR pueden ser ejecutadas para un número ilimitado de entradas.
Cuando se aplican a datos de tipo BOOL, el resultado puede ser o VERDADERO o FALSO.
Cuando se aplican a datos del tipo BYTE, WORD, DWORD, el resultado se obtiene tras una ejecución bit a bit de la operación correspondiente.
Ejemplo en IL:
Var1: BYTE;
LD 2#10010011
AND 2#10001010
ST Var1 (* El resultado es 2#10000010 *)
Operaciones analógicas:
IL,FBD,LD ST
ADD +
SUB –
MUL *
DIV /
MOD MOD
Estas operaciones pueden realizarse con cualquier tipo de datos, excepto los Booleanos.
27
Comparación
IL,FBD,LD ST
EQ =
NE <>
GE >=
GT >
LE <=
LT <
Estas operaciones pueden realizarse con cualquier tipo de datos, excepto los Booleanos.
28
Operaciones con números reales:
ABS – valor absoluto
SQRT – raíz cuadrada
LN – logaritmo neperiano
LOG – logaritmo decimal
EXP – función exponencial (eX)
SIN, COS, TAN, ASIN, ACOS, ATAN – funciones trigonométricas
EXPT – función exponencial de una variable, relacionada con otra variable (XY)
29
Desplazamiento de bits
SHL (DESplazamiento a la Izquierda)
SHR (DESplazamiento a la Derecha)
ROL (Rotación a la Izquierda)
ROR (Rotación a la Derecha)
a
d
c
b
e
h
g
f
b
e
d
c
f
0
h
g
a
a
d
c
b
e
h
g
f
b
e
d
c
f
a
h
g
a
d
c
b
e
h
g
f
0
c
b
a
d
g
f
e
h
a
d
c
b
e
h
g
f
h
c
b
a
d
g
f
e
30
Llamada a varios tipos de POU
Página anterior | Volver al principio del trabajo | Página siguiente |