You are on page 1of 37

IEC-61131-3

La Norma IEC-61131 se refiere a:

•Los autómatas programables (AP ó PLC´s) y a sus periféricos


correspondientes, tales como:

- Los equipos de programación y depuración (PADT´s)


- Los equipos de ensayo (TE´s)
- Los interfaces hombre-máquina (MMI´s)

Esta norma no trata del sistema automatizado, del cual el autómata


programable es un componente básico.

PADT: Programming And Debugging Tool


TE: Test Equipment
MMI: Man-Machine Interface
Partes de la Norma IEC 61131:

Parte 1: Información general

Parte 2: Especificaciones y ensayos de los equipos

Parte 3: Lenguajes de programación


Estándar
Parte 4: Guías de usuario internacional

Parte 5: Comunicaciones
Partes de la Norma IEC 61131:

Parte 1: Información general


Parte 2: Especificaciones y ensayos de los equipos
Parte 3: Lenguajes de programación
Parte 4: Guías de usuario
Parte 5: Comunicaciones
Parte 3: Lenguajes de programación
Objeto y campo de aplicación

• Definir los lenguajes de programación de uso más


corriente, las reglas sintácticas y semánticas, el juego de
instrucciones fundamental, los ensayos y los medios de
ampliación y adaptación de los equipos.

Es el interface entre el programador y


el sistema de control
Parte 3: Lenguajes de programación

Elementos comunes
• Tipos de datos y variables
• Modelo de software
• Modelo de comunicación de datos
• Modelo de programación
• Unidades de organización del programa
• Gráfico Funcional Secuencial (SFC)

Lenguajes de programación
• Lista de instrucciones (IL)
• Texto estructurado (ST)
• Diagrama de bloques funcionales (FBD)
• Diagrama de contactos (LD)
Parte 3: Lenguajes de programación
Elementos comunes. Tipos de datos y variables

• Tipos de datos: booleanos, enteros, reales, byte, palabra, cadenas


de caracteres, fecha, hora_del_día, canal analógico de entrada, ..., tipos
de datos derivados (creados por el usuario).
BOOL, INT, REAL, BYTE, WORD, STRING ¿Qué es esto?
DATE, TIME_OF_DAY, ... 01010101 10101010

• Variables. Asignan direcciones del hardware: E/S , memoria y datos.


Locales o globales. Hacen la programación independiente del
hardware.
Parte 3: Lenguajes de programación
Elementos comunes. Modelo de software
Configuración

Recurso Recurso

Tarea Tarea Tarea Tarea

Programa Programa Programa Programa

F
FB FB FB FB

Variables globales y representadas directamente

Vías de acceso

Función de comunicación (IEC 61131-5)


Parte 3: Lenguajes de programación
Modelo de software. PLC convencional.
Configuración

Recurso
Recurso

Tarea Tarea Tarea Tarea

Programa Programa Programa Programa

F
FB FB FB FB

Variables globales y representadas directamente

Vías de acceso

Función de comunicación (IEC 61131-5)


Parte 3: Lenguajes de programación
Modelo de comunicación de variables (II)
• Comunicación mediante variables globales

Configuración C

Programa A Programa B
VAR_EXTERNAL VAR_EXTERNAL
x: BOOL; x: BOOL;
END_VAR END_VAR

FB1 FB2
FB_X VAR_EXTERNAL FB_Y
a x: BOOL; b
x x
END_VAR
Parte 3: Lenguajes de programación
Modelo de comunicación de variables (III)
• Bloques funcionales de comunicación

Configuración C Configuración D

Programa A Programa B
send1 rcv1

FB1 RD1 FB2


SD1
FB_X FB_Y

b
a
Parte 3: Lenguajes de programación

Elementos comunes
• Tipos de datos y variables
• Modelo de software
• Modelo de comunicación de datos
• Modelo de programación
• Unidades de organización del programa
• Gráfico Funcional Secuencial (SFC)

Lenguajes de programación
• Lista de instrucciones (IL)
• Texto estructurado (ST)
• Diagrama de bloques funcionales (FBD)
• Diagrama de contactos (LD)
Parte 3: Lenguajes de programación
Unidades de organización de programas, POU´s.
Programa de aplicación

INPUT OUTPUT IN_OUT EXTERNAL

FUNCTION_BLOCK
PROGRAM
Type Local
Type Local
GLOBAL

INPUT

FUNCTION
Type Local
Parte 3: Lenguajes de programación
POU´s. Funciones.

• Funciones estándar:

ADD, SQRT, SIN, COS, MIN, MAX, AND, OR, etc…

• Funciones definidas por el usuario (ejemplo):

FUNCTION Simple: REAL Nombre


VAR_INPUT
A, B : REAL; Declaración de variables
C : REAL:= 1.0;
END_VAR
Simple := A*B/C; Cuerpo de la función
END_FUNCTION
Parte 3: Lenguajes de programación
POU´s. Bloques funcionales. Ejemplo.
Histeresis FUNCTION_BLOCK Histeresis
VAR_INPUT
REAL XIN1 XIN1, XIN2: REAL;
Q BOOL EPS: REAL; (* Banda de histéresis *)
REAL XIN2
END_VAR
REAL EPS VAR_OUTPUT
Q: BOOL := 0
END_VAR
IF Q THEN
Q IF XIN1<(XIN2-EPS) THEN
Q:=0 (* XIN decreciendo *)
1
END_IF;
ELSEIF XIN1>(XIN2+EPS) THEN
0 Q:=1; (* XIN creciendo *)
END_IF
EPS EPS END_FUNCTION_BLOCK
XIN2
Parte 3: Lenguajes de programación
Unidades de organización del programa (POU´s).

• Las funciones
• Los bloques funcionales
• Los programas

Los programas son “un conjunto lógico de todos los elementos y construcciones
del lenguaje de programación que son necesarios para el tratamiento de señal
previsto que se requiere para el control de una máquina o proceso mediante
el sistema de autómata programable”.
Parte 3: Lenguajes de programación
POU´s. Programas
Configuración

Recurso
Recurso

Tarea Tarea Tarea Tarea

Programa Programa Programa Programa

F
FB FB FB FB

Variables globales y representadas directamente

Vías de acceso

Función de comunicación (IEC 61131-5)


PLC convencional .
Parte 3: Lenguajes de programación

Elementos comunes
• Tipos de datos y variables
• Modelo de software
• Modelo de comunicación de datos
• Modelo de programación
• Unidades de organización del programa
• Gráfico Funcional Secuencial (SFC)
• Elementos de configuración

Lenguajes de programación
• Lista de instrucciones (IL)
• Texto estructurado (ST)
• Diagrama de bloques funcionales (FBD)
• Diagrama de contactos (LD)
Parte 3: Lenguajes de programación
Sequential Function Chart, SFC
• SFC describe el comportamiento secuencial del programa de
control. Deriva de las Redes de Petri y Grafcet (CEI 848).

IEC-61131 SFC
SFC
Grafcet
Grafcet Conjuntode
Conjunto deelementos
elementos
Documentación
Documentación decontrol
de controlde
deejecución
ejecución
deuna
de unaPOU
POU

• Permite dividir el problema en partes


• Facilita el rápido diagnóstico de problemas y las tareas
de mantenimiento
Parte 3: Lenguajes de programación
Sequential Function Chart, SFC
• SFC consiste en un conjunto de etapas (STEP´s) en los cuales se realizan una
serie de acciones (ACTION BLOCK´s) y unas transiciones (TRANSITION´s) que
permite la evolución de una etapa(s) a la(s) siguiente(s).

“a” “b” “c”


Paso 1 N Llena
“d”
Transition 1

Bloque de acción
Etapa 2 S Vacia
“a” Cualificador
Transition 2 “b” Nombre de la acción
“c” Indicador booleano
Step 3 “d” Acción en LD, FBD, ST ó IL
Parte 3: Lenguajes de programación
Sequential Function Chart, SFC
Permite secuencias alternativas y simultáneas

Etapa 1 N Llenar

Transición 1a Transición 1b

Etapa2a S Mezcla Etapa2b S Vaciar

Transición 2a Transición 2b

Ejemplo de Etapa3
secuencias alternativas
Parte 3: Lenguajes de programación

Elementos comunes
• Tipos de datos y variables
• Modelo de software
• Modelo de comunicación de datos
• Modelo de programación
• Unidades de organización del programa
• Gráfico Funcional Secuencial (SFC)
• Elementos de configuración

Lenguajes de programación
• Lista de instrucciones (IL)
• Texto estructurado (ST)
• Diagrama de bloques funcionales (FBD)
• Diagrama de contactos (LD)
CONFIGURATION CELL_1

RESOURCE STATION_1 RESOURCE STATION_2

TASK TASK TASK TASK


SLOW_1 FAST_1 PER_2 INT_2

P1 P2 P1 P4
PROGRAM F PROGRAM G PROGRAM F PROGRAM H
out1 FB1 FB2
y1 FB1 FB2 y1 C D
x1 x1
x2 A B x2 c1 d1
y1 b1 y2
y2 b2 PER_2
SLOW_1 FAST_1 HOUT1
SLOW_1 PER_2 INT_2

%IX1.1 z1 w z2 %QW5

VARIABLES GLOBALES Y REPRESENTADAS DIRECTAMENTE

BAKER ABLE CHARLIE DOG GAMMA ALPHA BETA


VIAS DE ACCESO

Comunicación
Ejemplo Configuración
Parte 3: Lenguajes de programación
Ejemplo de configuración...
Declaraciones de bloques funcionales y parámetros
FUNCTION_BLOCK A FUNCTION_BLOCK B FUNCTION_BLOCK C FUNCTION_BLOCK D
VAR_OUTPUT y1:UINT; VAR_INPUT b1:UINT; VAR_OUTPUT c1:BOOL; VAR_INPUT d1:BOOL; END_VAR
y2:BYTE; b2:BYTE; END_VAR VAR_OUTPUT y2:INT; END_VAR
END_VAR END_VAR
END_FUNCTION_BLOCK END_FUNCTION_BLOCK END_FUNCTION_BLOCK END_FUNCTION_BLOCK
PROGRAM F
VAR_INPUT x1: BOOL; x2: UINT; END_VAR
VAR_OUTPUT y1: BYTE; END_VAR
END_PROGRAM
PROGRAM G
VAR_OUTPUT out1: UINT; END_VAR
VAR_EXTERNAL z1: BYTE; END_VAR
VAR FB1: A; FB2: B; END_VAR
FB1(...); out1 := FB1.y1; z1 := FB1.y2;
FB2(b1 := FB1.y1) ; b2 := FB1.y2);
END_PROGRAM
PROGRAM H
VAR_OUTPUT HOUT1: INT; END_VAR
VAR FB1: C; FB2: D; END_VAR
FB1(...);
FB2(d1 := FB1.c1) ; HOUT1 := FB2.y2;
END_PROGRAM
Parte 3: Lenguajes de programación
Ejemplo de configuración... Configuraciones, recursos, variables
CONFIGURATION CELL_1
VAR_GLOBAL w : UINT; END_VAR
RESOURCE STATION_1 ON PROCESSOR TYPE_1
VAR_GLOBAL z1 : BYTE ; END_VAR
TASK SLOW_1(INTEGRAL := t#20ms, PRIORYTY := 2) ;
TASK FAST_1(INTERVAL := t#10ms, PRIORYTY := 1) ;
PROGRAM P1 WITH SLOW_1 ;
F(x1 := %IX1.1) ;
PROGRAM P2 : G(out1 => w,
FB1 WITH SLOW_1,
FB2 WITH FAST_1) ;
END_RESOURCE
RESOURCE STATION_2 ON PROCESSOR TYPE_2
VAR_GLOBAL z2 : BOOL ;
AT %QW5 : INT ;
END_VAR
TASK PER_2(INTERVAL := t#50ms, PRIORITY := 2) ;
TASK INT_2(SINGLE := z2, PRIORITY := 1) ;
PROGRAM P1 WITH PER2 :
F(x1 := z2, x2 := w) ;
PROGRAM P4 WITH INT 2 :
H(HOUT1 => %QW5,
FB1 WITH PER_2) ;
END_RESOURCE
VAR_ACCESS
ABLE : STATION_1.%IX1.1 : BOO READ_ONLY ;
BAKER : STATION_1.P1.X2 : BOO READ_ONLY ;
CHARLIE : STATION_1.z1 : BOO READ_ONLY ;
DOG : w : BOO READ_ONLY ;
ALPHA : STATION_2.P1.y1 : BOO READ_ONLY ;
BETA : STATION_2.P4.HOUT1 : BOO READ_ONLY ;
GAMMA : STATION_2.z2 : BOO READ_ONLY ;
END_VAR
END_CONFIGURATION
Parte 3: Lenguajes de programación
Elementos de configuración. Tareas.

Existen dos modos de control de la ejecución de tareas:


• Por evento: Ejecución por flanco ascendente de la entrada SINGLE
• Por tiempo: Ejecución periódica según la entrada INTERVAL..

 PRIORITY establece la Nom_task


prioridad de las tareas ( 0 - máxima)
TASK
 Varios POU´s pueden estar asociados
a la misma tarea. BOOL SINGLE
TIME INTERVAL
 No pueden existir tareas UINT PRIORITY
a la vez por evento y temporizadas..
Parte 3: Lenguajes de programación
El estándar IEC-61131

Elementos comunes

Lenguajes de programación
Parte 3: Lenguajes de programación
4 Lenguajes de programación

• Lenguajes gráficos
Diagrama de escalera (“Ladder Diagram”, LD)
Diagrama de Bloques Funcionales (”Function Block Diagram, FBD)

• Lenguajes literales
Lista de instrucciones (“Instruction List”, IL)
Texto estructurado (“Structured Text”, ST)

La selección del lenguaje de programación depende de la experiencia


del programador, de la aplicación concreta, del nivel de definición de la
aplicación, de la estructura del sistema de control y del grado de
comunicación con otros departamentos de la empresa...
S_01 S_02 Manual
( )
S_01 S_03 LD
Start
S_01
SFC
Paso_1
Programación con lenguajes LD Entrada_Manual
IL
Transición_02 conocidos de PLC OR Entrada_Automática
AND Desbloqueo
ST Funcionamiento
Paso_2 ... y lenguaje de alto nivel
LD Entrada_01
Transición_Fin

XOR
S_01
IF Data = "EOF" THEN
FOR Index:=1 TO 128 DO Tiempo_01
S_02
X:=Read_Data(Datenfeld[index]); TON
IF X > 2500 THEN Alarma:=TRUE; S_03 Lámpara
END_IF;

ST
END_FOR;
END_IF; T#12s400ms
Tiempo actual
FBD
Parte 3: Lenguajes de programación
Diagrama de escalera (“Ladder Diagram”, LD)
Características:
• Barras de alimentación.
• Elementos de enlace y estados: flujo de energía.
• Contactos, bobinas y bloques funcionales
• Orden de evaluación de las redes.

Ejemplo:
MAN S_0 Lma KMB

FCS EM
Parte 3: Lenguajes de programación
Diagrama de Bloques funcionales (FBD)
Características:
• La representación es coherente con la Norma CEI 617-12.
• Las salidas de los bloques funcionales no se conectarán entre
sí (se precisa bloque “OR”).
• La evaluación de una red estará terminada antes de la siguiente.

Ejemplo:
AND
Start
TON
EMER IN Q KM
T#4s400ms PT ET
V_temp
Parte 3: Lenguajes de programación
Lista de Instrucciones (“Instruction List”, IL)
Características:
• Instrucciones:
Etiqueta Operador Operando Comentario
START: LD Arranque (*Pulsar botón *)
ANDN %MX5 (* No inhibidor *)
ST SALIDA (* Conecta calefactor *)

• Operadores:
LD, ST, S, R, AND, OR, XOR, ADD, SUB, MUL, DIV, GT, GE, EQ,

NE, LE, LT, JMP, CAL, RET, )

• Funciones y bloques funcionales. Se coloca el nombre


en el campo del operando y los parámetros, si los lleva, en
entre paréntesis. Se emplea la operación CAL.
Parte 3: Lenguajes de programación
Texto estructurado (“Structured Text”, ST)
Características:
• Similar al Pascal. Alto nivel, estructurado en bloques.
• Expresiones:Es una construcción sintáctica que al se evaluada
proporciona un valor. Está compuesta por operadores y operandos.
La evaluación se efectúa según una tabla de prioridades.

• Sentencias:
De asignación (:=),
De control del flujo del programa:
llamada a bloque funcional, RETURN
De selección: IF, CASE
De iteración: FOR, WHILE, REPEAT, EXIT
Parte 3: Lenguajes de programación
Texto estructurado (“Structured Text”, ST)

Ejemplo:

IF Dato = “EOF” THEN


FOR indice:=1 TO 128 DO
x:= Read_dato(Canal[indice);
IF x>2500 THEN Alarma:=TRUE;
END_IF;
END_FOR;
END_IF
Parte 3: Lenguajes de programación
Entornos de programación

Muchos de ellos ofrecen:

 Pantallas de programación gráfica


 Soporte para múltiples ventanas
 Operaciones con el ratón
 Menús desplegables
 Ayuda en línea
 Verificación del software
durante el diseño
Parte 3: Lenguajes de programación
Características claves de la calidad IEC 61131-3

 Software Estructurado - a través de configuraciones,


Recursos y Unidades de Organización de Programa
(POUs).
 Tipeado de Datos - a través de lenguajes que restringen
las operaciones a los tipos de datos adecuados.
 Control de la Ejecución - a través del uso de Tareas.
 Comportamiento Secuencial Complejo - a través de
los Esquemas Funcional Secuencial.
 Encapsulación del Software - a través del uso de
POUs, estructuras y tipos de datos complejos.
Parte 3: Lenguajes de programación
Beneficios del estándar para los usuarios

 Reduce el gasto en recursos humanos:


formación, depuración, mantenimiento, ...
 Evita fuentes habituales de problemas por
su flexibilidad y reusabilidad. IEC-61131
 Técnicas de programación adecuadas a
todos los sectores.
 Combinación de elementos y modos de
representación.
Software
 Incrementa la conectividad y comunicacón Library

entre departamentos y compañias.

Function Block
"Heating"
Function
"LIMIT"
Function Block
"Feeding"
Function Function Block
"TEST" "Turning"