estándar iec 61131.pdf
TRANSCRIPT
1
PLCs
ESTÁNDARIEC 61131
Programa del Curso
PLCLD
FBD IL SFC
ST
IEC 61131
Comunicaciones
Sistema Supervisor / SCADA
Proyectos / Aplicaciones
Lenguajes:
2
Estándar IEC 61131n Normativa sobre PLCs y su aplicación a
procesos industriales de medición y controln Primera edición en 1993n Uniformiza forma de programar PLCsn Ingeniería de software aplicado a la industrian Tendencia a sistemas abiertos,
interoperabilidad, etc.
Sistemas Abiertosn Adpota estándares y técnicas
industriales actualesn Facilita la integración con otros
sistemas abiertos (interoperabilidad)n Foco en comunicaciones y
programación
3
IEC 61131n Parte 1 – Información Generaln Parte 2 – Requerimientos y pruebas de hardwaren Parte 3 – Lenguajes de Programaciónn Parte 4 – Guías de selección, instalación y mant.n Parte 5 – Comunicaciónn Parte 6 – Seguridad Funcionaln Parte 7 – Lógica Borrosan Parte 8 – Guía de implementación de lenguaje
Deficiencias previo a IEC61131n Programación clásica en LADDER:
n Estructura de software débil (soporte limitadopara bloques de función, encapsulamiento, etc.)
n Poco re-uso de softwaren No soporta datos estructuradosn Soporte limitado para secuenciasn Control de ejecución limitado (único tiempo de
ciclo)n Cálculos aritméticos engorrosos
4
Calidad de Softwaren Objetivo principal de IEC 61131-3:
mejorar la calidad de softwaren Atributos:
n Capacidadn Tiempo de respuestan Capacidad de procesamienton Capacidad de almacenamiento
Calidad de Softwaren Atributos:
n Disponibilidadn Confiabilidad (MTBF) – tiempo entre fallasn Mantenibilidad (MTTR) – tiempo en repararn Integridad – robustez
n Usabilidadn Requerimientos previos para usarlon Esfuerzo de aprendizajen Productividadn Amigabilidad
5
Calidad de Softwaren Atributos:
n Adaptabilidadn Posibilidad de mejoras en capacidad,
disponibilidad, usabilidadn Extensibilidad – nuevas funcionalidadesn Portabilidadn Reuso
n IEC 61131-3 => mejorar estos atributosde calidad de software
Características IEC 61131-31. Software estructurado (top-down/bottom-
up)2. Chequeo de tipos de datos3. Control de ejecución (tareas)4. Control secuencial5. Datos estructurados6. Elección de lenguajes7. Software independiente del fabricante
6
Arquitectura Clásica del PLCn Arquitectura clásica consiste en ejecución
cíclica de programa, con tres fases:n Lectura de entradasn Ejecución de programan Actualización de salidas
n La ejecución del programa puede alterarsesólo por una interrupción
Arquitectura bajo IEC 61131n Por avance continuo del hardware, la IEC-
61131 define una arquitectura más avanzadan La arquitectura se basa en la programación
jerárquica, con 4 niveles:n Configuraciónn Recursosn Tareasn Programas
7
Arquitectura
Configuraciónn Más alto nivel del modelon Se corresponde con el sistema del
controlador programablen Generalmente se corresponde con el
software necesario para un PLCn Se comunica con otras configuraciones
8
Configuraciónn La configuración define:
n recursosn datos compartidos por los recursosn datos accesibles desde exterior del PLC
Recursosn Dentro de una configuración existen
uno o más recursosn Un Recurso proporciona el soporte para
ejecutar un programa IEC (símil“máquina virtual”)
n Para que un programa se ejecute, debeser cargado en un recurso
9
Recursosn Pueden existir en un PLC o en un
software para PC por ejemplon Un PLC con múltiples procesadores =>
un recurso por procesadorn Dentro de la configuración, cada
recurso debe poder correr en formaindependiente
Recursosn Función principal: interface entre
programas y entradas/salidas físicas delPLC
n Recurso define:n tareasn datos compartidos por todos los programasn datos de recurso accesibles desde exterior del PLCn programas que ejecutan las tareas del recurso
10
Tareasn Configurada para ejecutar un programa o un
bloque de funciónn Los programas/bloques asociados a una tarea
se ejecutan cada vez que se dispara la tarean Condición de disparo puede ser:
n Intervalo periódico de tiempo expresado en mseg(tarea tiene un ciclo asociado, análogo al del PLC)
n Evento
Tareasn Un programa sin una tarea asociada no se
ejecutan Un bloque de función sin una tarea asociada
se ejecuta junto con el programa dondereside
n Tarea define:n Programas asociados a la tarean Condición de disparon Prioridad
11
Tareasn Non-preemptive Scheduling (esquema
sin preferencias)n Las tareas no interrumpen a otras tareasn Se ejecutan completamente los programas
o bloques de una tareas previo a pasar a lasiguiente
n La tarea en espera de mayor prioridadcontinua la ejecución
n No recomendado para aplicaciones críticas
Tareasn Preemptive Scheduling (esquema con
preferencias)n Las tareas de mayor prioridad interrumpen
a las de menor prioridadn Para sistemas determinísticos, aplicaciones
críticas
12
TareasEjecución de 2 tareas con misma prioridad o “Non-preemptive”
Ejecución de 2 tareas con diferente prioridad (“Preemptive”)
Tareasn Ejemplo: declaración de tareas lab 2 (se
observa la simplificación de la programación):
Task Configuration:
TAREA1(PRIORITY:=1,INTERVAL:=T#100ms)
PWM
TAREA2(PRIORITY:=2,INTERVAL:=T#1sec);
CONTROL
13
Tareas en PLC de Labn Por defecto:
n Type = cyclicPriority = 10Cycle time = t#10msProgram call= PLC_PRG.
Tareas en PLC de Lab
14
Tarea en PLC de Lab
Las POUn Hay tres tipos de POU (Program
Organizational Unit):n Programasn Bloques funcionalesn Funciones
15
Programasn Conjunto de elementos de software cada uno
definido en base los lenguajes de la norman Típicamente, bloques de función
interconectados que pueden intercambiardatos
n La ejecución de diferentes partes delprograma se puede definir mediante tareas
Bloque Funcionaln Característica más importante de la norma IECn Base para diseño jerárquico de softwaren Permite descomponer un programa complejo en
partes más simplesn Se definen sobre la base de “templates” de bloquesn Para utilizar un template de bloque, la tarea declara
una instancia del templaten Bibliotecas propias de usuario (re-uso)
16
Bloque Funcionaln Se compone de:
n Datos: parámetros de entrada/salidan Código internon Variables internas que representan su
estado
n Ejemplos: contadores, PIDs, etc.
Funciónn Diferencia entre bloque funcional y
función:n Número de salidas:
n Función permite sólo una salidan Bloque funcional permite más de una
n Variables permanentes (conservan valorentre ejecuciones):n Función non Bloque funcional sí
n Ejemplos: and, sen, cos, etc.
17
Modelo vs Sistema Realn Pequeños PLCs:
n 1 configuración, 1 recurso, 1 programa
n PLCs más grandes:n Configuración = PLCn Recursos = procesadores del PLCn Cada recurso podrá tener uno o más
programas
n Finalmente dependerá de cadaimplementación
Variables locales/globalesn Variables locales: definidas solo para el
programa/bloque de función donde esdeclarada
n Variables globales:n Definidas a nivel de programa: accesible
por todos los bloques internosn Definidas a nivel de recurso/configuración:
accesible por todos los programas incluidos
18
Variables Directasn Variables representadas en forma
directa: definen su ubicación enmemoria en forma explícita
n NombreVar [AT %DirecciónVar] :TipoDeDato [::= ValorInicial];
Variables de Acceson Variables designadas para intercambio
de datos entre configuracionesn La norma no define el protocolo de
comunicación
19
Variablesn [Código letras] [Código números]
n Código de letras: distingue el tipo de daton Primer letra:
- I/E: Dirección E- Q/O: Dirección S- M: Dirección 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)
Variablesn 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 tamaño)n BOOL: Bitn BYTE, WORD, DWORD, LWORDn REAL, LREAL: punto flotante (32 bit, 64 bit)n TIME, DATE, TIME_OF_DAY, DATE_AND_TIMEn STRINGn Tipo de datos derivado (STRUCT, ARRAY)
20
Variablesn Ejemplos tipos derivados por el usuario:
TYPE my_arrayARRAY [1..3] OF INT;
END_TYPE
Variables EstructuradasTYPE motor
STRUCTestado: BOOLfalla: BOOLvelocidad: REALcorriente: REAL
END_STRUCTEND_TYPE
Uso: M1.estado, M1.falla, etc.
21
Variables EnumeradasTYPE estado_operativo
(inicio, ejecución, espera, falla);END_TYPE
Uso: estado1 := falla;