Está en la página 1de 21

PLCs

ESTNDAR
IEC 61131

Programa del Curso

Sistema Supervisor / SCADA

Comunicaciones
Lenguajes:
LD PLC ST
FBD SFC
IL

IEC 61131

Proyectos / Aplicaciones

1
Estndar IEC 61131
n Normativa sobre PLCs y su aplicacin a
procesos industriales de medicin y control
n Primera edicin en 1993
n Uniformiza forma de programar PLCs
n Ingeniera de software aplicado a la industria
n Tendencia a sistemas abiertos,
interoperabilidad, etc.

Sistemas Abiertos
n Adpota estndares y tcnicas
industriales actuales
n Facilita la integracin con otros
sistemas abiertos (interoperabilidad)
n Foco en comunicaciones y
programacin

2
IEC 61131
n Parte 1 Informacin General
n Parte 2 Requerimientos y pruebas de hardware
n Parte 3 Lenguajes de Programacin
n Parte 4 Guas de seleccin, instalacin y mant.
n Parte 5 Comunicacin
n Parte 6 Seguridad Funcional
n Parte 7 Lgica Borrosa
n Parte 8 Gua de implementacin de lenguaje

Deficiencias previo a IEC61131


n Programacin clsica en LADDER:
n Estructura de software dbil (soporte limitado
para bloques de funcin, encapsulamiento, etc.)
n Poco re-uso de software
n No soporta datos estructurados
n Soporte limitado para secuencias
n Control de ejecucin limitado (nico tiempo de
ciclo)
n Clculos aritmticos engorrosos

3
Calidad de Software
n Objetivo principal de IEC 61131-3:
mejorar la calidad de software
n Atributos:
n Capacidad
n Tiempo de respuesta
n Capacidad de procesamiento
n Capacidad de almacenamiento

Calidad de Software
n Atributos:
n Disponibilidad
n Confiabilidad (MTBF) tiempo entre fallas
n Mantenibilidad (MTTR) tiempo en reparar
n Integridad robustez
n Usabilidad
n Requerimientos previos para usarlo
n Esfuerzo de aprendizaje
n Productividad
n Amigabilidad

4
Calidad de Software
n Atributos:
n Adaptabilidad
n Posibilidad de mejoras en capacidad,
disponibilidad, usabilidad
n Extensibilidad nuevas funcionalidades
n Portabilidad
n Reuso
n IEC 61131-3 => mejorar estos atributos
de calidad de software

Caractersticas IEC 61131-3


1. Software estructurado (top-down/bottom-
up)
2. Chequeo de tipos de datos
3. Control de ejecucin (tareas)
4. Control secuencial
5. Datos estructurados
6. Eleccin de lenguajes
7. Software independiente del fabricante

5
Arquitectura Clsica del PLC
n Arquitectura clsica consiste en ejecucin
cclica de programa, con tres fases:
n Lectura de entradas
n Ejecucin de programa
n Actualizacin de salidas
n La ejecucin del programa puede alterarse
slo por una interrupcin

Arquitectura bajo IEC 61131


n Por avance continuo del hardware, la IEC-
61131 define una arquitectura ms avanzada
n La arquitectura se basa en la programacin
jerrquica, con 4 niveles:
n Configuracin
n Recursos
n Tareas
n Programas

6
Arquitectura

Configuracin
n Ms alto nivel del modelo
n Se corresponde con el sistema del
controlador programable
n Generalmente se corresponde con el
software necesario para un PLC
n Se comunica con otras configuraciones

7
Configuracin
n La configuracin define:
n recursos
n datos compartidos por los recursos
n datos accesibles desde exterior del PLC

Recursos
n Dentro de una configuracin existen
uno o ms recursos
n Un Recurso proporciona el soporte para
ejecutar un programa IEC (smil
mquina virtual)
n Para que un programa se ejecute, debe
ser cargado en un recurso

8
Recursos
n Pueden existir en un PLC o en un
software para PC por ejemplo
n Un PLC con mltiples procesadores =>
un recurso por procesador
n Dentro de la configuracin, cada
recurso debe poder correr en forma
independiente

Recursos
n Funcin principal: interface entre
programas y entradas/salidas fsicas del
PLC
n Recurso define:
n tareas
n datos compartidos por todos los programas
n datos de recurso accesibles desde exterior del PLC
n programas que ejecutan las tareas del recurso

9
Tareas
n Configurada para ejecutar un programa o un
bloque de funcin
n Los programas/bloques asociados a una tarea
se ejecutan cada vez que se dispara la tarea
n Condicin de disparo puede ser:
n Intervalo peridico de tiempo expresado en mseg
(tarea tiene un ciclo asociado, anlogo al del PLC)
n Evento

Tareas
n Un programa sin una tarea asociada no se
ejecuta
n Un bloque de funcin sin una tarea asociada
se ejecuta junto con el programa donde
reside
n Tarea define:
n Programas asociados a la tarea
n Condicin de disparo
n Prioridad

10
Tareas
n Non-preemptive Scheduling (esquema
sin preferencias)
n Las tareas no interrumpen a otras tareas
n Se ejecutan completamente los programas
o bloques de una tareas previo a pasar a la
siguiente
n La tarea en espera de mayor prioridad
continua la ejecucin
n No recomendado para aplicaciones crticas

Tareas
n Preemptive Scheduling (esquema con
preferencias)
n Las tareas de mayor prioridad interrumpen
a las de menor prioridad
n Para sistemas determinsticos, aplicaciones
crticas

11
Tareas
Ejecucin de 2 tareas con misma prioridad o Non-preemptive

Ejecucin de 2 tareas con diferente prioridad (Preemptive)

Tareas
n Ejemplo: declaracin de tareas lab 2 (se
observa la simplificacin de la programacin):

Task Configuration:
TAREA1(PRIORITY:=1,INTERVAL:=T#100ms)
PWM
TAREA2(PRIORITY:=2,INTERVAL:=T#1sec);
CONTROL

12
Tareas en PLC de Lab
n Por defecto:
n Type = cyclic
Priority = 10
Cycle time = t#10ms
Program call= PLC_PRG.

Tareas en PLC de Lab

13
Tarea en PLC de Lab

Las POU
n Hay tres tipos de POU (Program
Organizational Unit):
n Programas
n Bloques funcionales
n Funciones

14
Programas
n Conjunto de elementos de software cada uno
definido en base los lenguajes de la norma
n Tpicamente, bloques de funcin
interconectados que pueden intercambiar
datos
n La ejecucin de diferentes partes del
programa se puede definir mediante tareas

Bloque Funcional
n Caracterstica ms importante de la norma IEC
n Base para diseo jerrquico de software
n Permite descomponer un programa complejo en
partes ms simples
n Se definen sobre la base de templates de bloques
n Para utilizar un template de bloque, la tarea declara
una instancia del template
n Bibliotecas propias de usuario (re-uso)

15
Bloque Funcional
n Se compone de:
n Datos: parmetros de entrada/salida
n Cdigo interno
n Variables internas que representan su
estado
n Ejemplos: contadores, PIDs, etc.

Funcin
n Diferencia entre bloque funcional y
funcin:
n Nmero de salidas:
n Funcin permite slo una salida
n Bloque funcional permite ms de una
n Variables permanentes (conservan valor
entre ejecuciones):
n Funcin no
n Bloque funcional s
n Ejemplos: and, sen, cos, etc.

16
Modelo vs Sistema Real
n Pequeos PLCs:
n 1 configuracin, 1 recurso, 1 programa
n PLCs ms grandes:
n Configuracin = PLC
n Recursos = procesadores del PLC
n Cada recurso podr tener uno o ms
programas
n Finalmente depender de cada
implementacin

Variables locales/globales
n Variables locales: definidas solo para el
programa/bloque de funcin donde es
declarada
n Variables globales:
n Definidas a nivel de programa: accesible
por todos los bloques internos
n Definidas a nivel de recurso/configuracin:
accesible por todos los programas incluidos

17
Variables Directas
n Variables representadas en forma
directa: definen su ubicacin en
memoria en forma explcita
n NombreVar [AT %DireccinVar] :
TipoDeDato [::= ValorInicial];

Variables de Acceso
n Variables designadas para intercambio
de datos entre configuraciones
n La norma no define el protocolo de
comunicacin

18
Variables
n [Cdigo letras] [Cdigo nmeros]
n Cdigo de letras: distingue el tipo de dato
n Primer letra:
- I/E: Direccin E
- Q/O: Direccin S
- M: Direccin dato interno
n Segunda letra:
- X: bit
- B: byte (8 bits)
- W: word (16 bits)
- D: double word (32 bits)
- L: long word (64 bits)

Variables
n Tipo de dato: uno de los tipos de dato
reconocido por IEC 61131-3:
n INT: entero con signo de 16 bits (prefijo S, D, L
cambia tamao)
n BOOL: Bit
n BYTE, WORD, DWORD, LWORD
n REAL, LREAL: punto flotante (32 bit, 64 bit)
n TIME, DATE, TIME_OF_DAY, DATE_AND_TIME
n STRING
n Tipo de datos derivado (STRUCT, ARRAY)

19
Variables
n Ejemplos tipos derivados por el usuario:

TYPE my_array
ARRAY [1..3] OF INT;
END_TYPE

Variables Estructuradas
TYPE motor
STRUCT
estado: BOOL
falla: BOOL
velocidad: REAL
corriente: REAL
END_STRUCT
END_TYPE

Uso: M1.estado, M1.falla, etc.

20
Variables Enumeradas
TYPE estado_operativo
(inicio, ejecucin, espera, falla);
END_TYPE

Uso: estado1 := falla;

21

También podría gustarte