Curso: Controladores inteligentes
industriales
Módulo 1 – Controladores Lógicos
Programables (PLCs)
Tarea 1.2: PLC – Software y lenguajes de programación.
Petrov, PU – Departamento ECIT
Traducción al ingles realizada por Mariana Ilieva
Puntos principales
1.Composición del software de los PLCs
2. Sistema operativo (ОS) – funciones
3. Lenguajes de programación – tipos:
• Diagrama de funciones secuenciales (SFC) – lenguaje de bloques de
funciones secuenciales;
• Diagrama de bloques de funciones (FBD) – lenguaje de diagrama de
bloques secuenciales;
•
Diagramas de tipo escalera (LАD) – lenguaje de diagramas de escalera;
• Texto estructurado (ST) – lenguaje de tipo texto estructurado a alto nivel
(parecido a Pascal);
• Lista de instrucciones (IL/STL) – ensamblador con un tipo de lenguaje
basado en instrucciones.
4. Entorno de programación CoDeSys (Sistema de desarrollo controlado)
5. Ejemplos de diagramas de escalera
2
Composición del software para los PLCs
 El software para los PLCs se compone, principalmente, de un sistema
operativo y un entorno de programación, capaz de soportar uno o mas
lenguajes de programación, utilizados en la programación de los PLCs.
 Los componentes adicionales del software para PLCs pueden ser: programas
para diagnosticar y encontrar fallos, programas de visualización, programas de
comunicación etc. Muy a menudo, estos programas son parte del sistema
operativo.
 El sistema operativo puede ser de tipo convencional (en el caso de un PLC
basado en un PLC) tales como Windows, Linux, Mac OS etc. o de tipo
especializado por una empresa, ej. STEP 7-Micro/WIN por la empresa Siemens
para los controladores programables que fabrica Siemens.
 Los sistemas operacionales de tipo especializado tienen más a menudo
interfaces de usuario gráficas, similares a Windows.
 Los PLCs contienen a menudo librerías con módulos de programación
suplementarios en su memoria.
3
Principales funciones del sistema operativo
 Las funciones principales del sistema operativo (OS) de los PLCs son:
 Inicialización de los PLC;
 Escaneo (lectura) de las entradas digitales y actualización de las tablas PII
(ver Tarea 1 para las tablas PII y PIO);
 Escaneo de las entradas y salidas analógicas;
 Ejecución del programa del usuario;
 Mantenimiento de los temporizadores, contadores, etc.;
 Actualización de las salidas de control por medio de las tablas PIO;
 Mantenimiento de los programas en caso de que se encienda;
 Auto-diagnostico del sistema;
 Comunicación en el entorno de red;
 Gestión de las tareas cuando los PLCs se controlan por multitareas del OS en
tiempo real.
4
Ejecución del ciclo operativo de un PLC (1)
 Un programa es una secuencia de instrucciones, que terminan con una orden de
finalización del proceso, devolviendo así el control al operador o al monitor del
OS. El programa se puede ejecutar de manera asíncrona, cuando se producen
ciertos eventos, o síncrona, cuando la CPU ejecuta de forma secuencial todas
las instrucciones desde la primera hasta la ultima y vuelve de nuevo a la primera.
 El ciclo está compuesto de dos fases - una fase entrada-salida y una fase de
usuario, relacionada con el procesamiento de los datos. Sus duraciones
dependen del número de entradas y salidas, la extensión del programa y de la
velocidad de operación del PLC. La estructura del ciclo, ej., el ratio entre dos
fases, se define por la forma en la que direcciona las entradas y salidas, el
número de transferencias incondicionales y la duración de los cálculos.
5
Ejecución del ciclo de operación de un PLC (2)
 La organización del ciclo puede estar fijada de
manera rígida o elegirse entre las siguientes
opciones:
 Todas las entradas se visitan al comienzo del ciclo, y
las salidas se actualizan después de resolver todas
las ecuaciones;
 Todas las entradas se visitan al comienzo del ciclo, y
las salidas se actualizan después de resolver cada
ecuación;
 Todas las entradas se visitan cada n ms, mientras
que las salidas se actualizan cuando existen ciertas
condiciones;
 Un ciclo de escaneo típico puede observarse en
las Figuras 1 y 2
 Los principales intervalos de tiempo son:
 Tiempo de escaneo del programa - Tscan;
 Tiempo total de ciclo - Tcycle;
 Tiempo de respuesta - Tresponse – un intervalo de
tiempo entre el cambio de una señal de entrada y el
cambio de la salida, relacionado a ella. Depende de
la estructura y de la lógica del programa.
Fig.1
6
Ciclo operativo de un PLC
Fig.2
7
Ciclo de operación de un PLC S7- 300 y S7- 400
fabricados por Siemens
Fig.3. Para el PLC S7-300 y el
S7-400 y STEP 7 el proceso
cíclico de programación se
controla por OB1 (OB – Bloque
de organización – ver más
adelante). Después de encender
la fuente de alimentación y de
poner la CPU en el modo RUN,
OB 1 es llamado y se produce el
procesado de cada ciclo del
PLC hasta que la CPU se para o
se
apaga
la
fuente
de
alimentación. Mientras OB 1
este continuamente procesando,
la mayoría de los cloques tienen
que ser llamados por él.
Fig.3
8
Lenguajes de programación de los PLCs
 Los lenguajes de programación para los PLCs surgieron junto a la aparición del primer
PLC en 1968, esto explica porque no fueron utilizados los lenguajes de alto nivel como
Pascal y C y, en su lugar, se emplearon otros lenguajes más simples y fáciles de
entender, como podremos ver a continuación.
 Los lenguajes para la programación de los PLCs han sido considerados en la tercera
parte del estándar IEC 61131, designado como IEC 61131-3 (solía ser designado
como IEC 1131, antes de que el sistema de numeración cambiase por la comisión
internacional electro-técnica). Se definieron los siguientes cinco lenguajes:
 Diagrama de Funciones Secuenciales (SFC) – un lenguaje de bloques de funciones
secuenciales;
 Diagrama de Bloques de Funciones (FBD) – un lenguaje de diagramas de bloques
secuenciales;
 Diagramas de Tipo Escalera (LАD) – un lenguaje de diagramas de relés (denominado de
tipo escalera);
 Texto Estructurado (ST) – un lenguaje de alto nivel como el del tipo de texto estructurado
(similar a C y, sobre todo a Pascal);
 Lista de instrucciones (IL o STL) – lenguaje de tipo ensamblador con uso de acumuladores.
 Estos lenguajes se describen brevemente en las siguientes transparencias.
9
Lenguaje de programación ST:
 Basado en texto, alto nivel. Similar a
PASCAL, BASIC y C
 No es muy popular aun (es el nuevo
lenguaje – requiere el conocimiento de la
programación)
 Ventajas en comparación con IL: incluye
la formulación de las tareas del programa,
una clara construcción de los programas en
bloques con reglas (instrucciones) y una
potente construcción para el control;
 Es el más apropiada para la ejecución
condicional y para formar ciclos (IF, WHILE,
FOR, CASE)
 En STEP 7 este lenguaje se denomina
SCL (Lenguaje de Control Estructurado).
 En la parte derecha se muestra un
extracto de programa en este lenguaje.
Q 4.0 := I 0.0 AND I 1.1 OR NOT I 0.1
IF Q 4.0 == 1 THEN GOTO M001
ELSE Q 1.0 = NOT Q 4.0;
END_IF;
M001 MW 2= 1+MW 2;
10
Lenguaje de programación IL (o STL)
 Lenguaje de texto, similar a un ensamblador
 Mucho más utilizado en Europa
 Todos los operadores trabajan con un registro
especial, denominado acumulador (LD, ST)
 Es conveniente para los programas pequeños
 En el ОS STEP 7, desarrollado por Siemens,
este lenguaje se denomina STL (Lista de
Instrucciones – una lista de reglas e instrucciones).
En la parte inferior se muestra esta estructura y en
la parte derecha puede verse un extracto de un
programa.
11
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
12
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 (S7GRAPH) – ver la figura.
Fig.5
13
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.
Fig.6
14
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:
1. Establecer todos los parámetros del PLC en cuestión.
2. 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.
3. Diagnostico/visualización de los datos recibidos en el controlador.
4. Contiene una librería de funciones integrada:
 El sistema se descarga de manera gratuita.
15
Relación entre CODESYS y un PLC
CODESYS
Respuesta
Pregunta
PLC
E/S s
Fábrica
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
Entrada
Programa
PLC
Salida
Fig.8
17
17
Estructura de un programa de un PLC
Projecto
POUs
Variables globales
Declaraciones
Código
Estructuras
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.
19
19
Datos y direcciones
Validez:
local (1 POU) o global (todas POU)
CoDeSys suporta tres métodos de declaraciones:
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
20
Sintaxis de las variables, fijadas a las direcciones
Se designan con ‘%’
Ejemplos:
Prefijos para el area:
%IW215
I – entrada
%QX1.1
Q – salida
%MD48
M – marcador
Tamaño:
X – un solo bit
B – un byte (8 bits)
W – una palabra (16 bits)
D – una palabra doble (32 bits)
21
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);
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).
23
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.
24
Operación de asignación
IL:
ST:
FBD:
LD:
LD, LDN, ST, STN, S, R
A := B;
A
B
S
A
C
A
D
IN
SALIDA 1
()
SALIDA 2
(/)
SALIDA 3
(S)
SALIDA 4
(R)
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
ADD
SUB
MUL
DIV
MOD
ST
+
*
/
MOD
Estas operaciones pueden realizarse con cualquier tipo de
datos, excepto los Booleanos.
Comparación
IL,FBD,LD
EQ
NE
GE
GT
LE
LT
ST
=
<>
>=
>
<=
<
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
ab c de f gh
a bc de f gh0
SHL (DESplazamiento a la Izquierda)
SHR (DESplazamiento a la Derecha)
ab c de f gh
0ab c de f g h
ROL (Rotación a la Izquierda)
ab c de f gh
bc de f gha
ROR (Rotación a la Derecha)
ab c de f gh
hab c de f g
30
Llamada a varios tipos de POU
Función
Bloque Funcional Programa
Ejemplo
Funcción Fun1:INT
3 Entradas (INT): A, B, C
Bloque_Funcional FunBlck1
3 Entradas (INT): A, B, C
2 Salidas (INT): D, E
Caso: Instance1
Programa Prgr1
3 Entradas (INT): A, B, C
2 Salidas (INT): D, E
IL
LD
Fun1
ST
CAL
...
LD
ST
LD
ST
CAL
...
LD
ST
LD
ST
ST
5
3,2
Resultado
Resultado:=Fun1(5,3,2);
Instance1(A:=5, B:=3, C:=2)
Instance1.D
Resultado1
Instance1.E
Resultado2
Instance1(A:=5, B:=3, C:=2);
...
Resultado1:=Instance1.D;
Resultado2:=Instance1.E;
FBD /
LD
31
Prgr1(a := 5, b := 3, c := 2)
Prgr1.D
Resultado1
Prgr1.E
Result2
Prgr1(a := 5, b := 3, c := 2);
...
Resultado1:= Prgr1.D;
Resultado1:= Prgr1.E;
Creación de un programa PLC
 El proceso de creación de
un programa PLC (fase de
modelo) consiste en las
siguientes fases (Fig.10):
 Especificación:
descripción de la tarea;
 Diseño: descripción de la
solución;
 Realización: ejecución de
la solución;
 Integración/revisión:
integración en el medio y
testeo de la solución.
Fig.10
32
Direccionamiento de los módulos del PLC
Las direcciones de las ranuras, módulos y las correspondientes entradas y
salidas se tienen en cuanta en el proceso de direcionamiento. La Fig. 11 ofrece un
ejemplo del direccionamiento de los módulos del PLC Siemens S7-300
(http://www.automatic-project.eu/Modules_bg/Module%204,%20Chapter%203.pdf )
Fig.11
33
Ejemplos de diagramas de tipo escalera (1)
“Un programa de tipo escalera" consiste en cierta secuencia lógica de
instrucciones (“contacto”), por medio de la cual el estado de cada uno de los
elementos (los contactos) de los sistemas electro-mecánicos (contacto-relé) se
utilizan para identificar el control de las máquinas (y/o un proceso) .
La condición real de los contactos del sistema electro-mecánico es reemplazado
por una secuencia lógica. Como un elemento separado del control del sistema
(contacto) pueden utilizarse todos los bits de las áreas de datos direccionables de
un determinado PLC, de acuerdo con el sistema de direccionamiento empleado.
Las siguientes diapositivas muestran ejemplos de contactos y diagramas lógicos
con sus escaleras equivalentes (peldaños)
http://www.plc-course.com/PLC-Basics/introduction-to-ladder-diograms-course.html
34
Ejemplos de diagramas de tipo escalera (2)
35
Ejemplos de diagramas de tipo escalera (3)
36
Instrucciones de salida
37
Funciones lógicas básicas (OR, AND)
38
Funciones lógicas básicas (NOR, NAND)
39
Funciones lógicas básicas (EXOR, EXNOR)
40
LD: ejemplo – representación de la expresión
Diagrama de tipo
escalera
Diagrama
equivalente LD
Equivalente en lenguaje
Booleano
41
Instrucciones para temporizadores y contadores (1)
42
Instrucciones para temporizadores y contadores (2)
43
Preguntas de control
1. Cuáles son los principales lenguajes para la programación de un PLC de
acuerdo al estándar IEC 61131-(3)? Realiza una comparación entre ellos
(ventajas y desventajas).
2. Qué opciones ofrece la el sistema de programación CODESYS?
3. Da ejemplos de diagramas de escalera, representando ciertos circuitos
eléctricos y lógicos (no utilizar aquellos que se han descrito en la teoría).
44
Referencias:
1. http://81.161.248.42/ntt/aep/readings/aep_u4.pdf
2. http://en.wikipedia.org/wiki/Programmable_logic_controller
3. http://www.idconline.com/technical_references/pdfs/instrumentation/introtoplcs.pdf
4. http://2k9meduettaxila.files.wordpress.com/2012/12/plc-lecture.pdf
5. http://www.ormec.com/portals/0/library/documents/software/smlcsoftware/tutorials
/smlc_opc_tutorial.pdf
6. http://me.emu.edu.tr/majid/IENG447/PLC%20examples.pdf
7. http://www.automatic-project.eu/Modules_bg/Module%204,%20Chapter%203.pdf
8. http://gendocs.ru/v4285/?download2=11
9. http://www.consys.ru/sites/default/files/documents/prog-rus.pdf
45
Descargar

МП системи