Este documento describe los lenguajes de programación para controladores lógicos programables (PLCs) definidos en la norma IEC 61131-3, incluyendo el lenguaje lista de instrucciones. Explica las operaciones lógicas básicas en este lenguaje como AND, OR, NOT y EXOR y su representación mediante tablas de verdad. Finalmente, discute la aplicación de los PLCs y la importancia de programarlos específicamente para cada proceso industrial.
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Ici opc-unidad v-tema 6
1. Universidad de Oriente
Núcleo de Monagas
Departamento de Ingeniería de Sistemas
Curso Especial de Grado - Área: ACPI
Instrumentación y Control Industrial
Programación de PLCs: Lenguaje Lista de
Instrucciones
Unidad V: Controladores Lógicos Programables
Profesor: Bachilleres:
Ing. Edgar Goncalves Gimón Fondacci, Nelson Eduardo
C.I 20.312.617
Mayz Bonilla, Reynaldo José
C.I 21.348.205
Equipo OPC
Maturín, noviembre de 2014
2. ÍNDICE
INTRODUCCIÓN ................................................................................................................. 1
MARCO TEÓRICO .............................................................................................................. 2
NORMAS IEC 61131-3 ....................................................................................................... 2
Elementos comunes ..................................................................................................... 2
Lenguajes de Programación ....................................................................................... 4
LENGUAJE LISTA DE INSTRUCCIONES................................................................................. 5
OPERACIONES LÓGICAS EN EL LENGUAJE LISTA DE INSTRUCCIONES .............................. 5
AND - Conjunción ......................................................................................................... 6
OR - Disyunción ............................................................................................................ 6
NOT - Inversión ............................................................................................................. 6
EXOR - OR - Exclusiva ................................................................................................ 6
DISCUSIÓN .......................................................................................................................... 7
CONCLUSIONES ................................................................................................................ 9
REFERENCIAS..................................................................................................................10
3. INTRODUCCIÓN
Los lenguajes de programación son necesarios para la comunicación entre
el usuario (sea programador u operario de la máquina o proceso donde se
encuentre el PLC) y el PLC. La interacción que tiene el usuario con el PLC la
puede realizar por medio de la utilización de un cargador de programa (Loader
Program) también reconocida como consola de programación o por medio de un
PC (computador Personal). Se debe tener en cuenta que en procesos grandes o
en ambientes industriales el PLC recibe el nombre también de API (Autómata
Programable Industrial) y utiliza como interface para el usuario pantallas de
plasma, pantallas de contacto (touchscreen) o sistemas SCADA (sistemas para la
adquisición de datos, supervisión, monitoreo y control de los procesos).
El programa de usuario está formado por la reunión de todas las
instrucciones programadas y las convencionales para el tratamiento de las
señales, que tienen que ser controladas en el proceso desde el PLC, de acuerdo a
las necesidades de los trabajos a realizar. Los lenguajes de programación para
PLC son de dos tipos, visuales o gráficos y escritos.
Los visuales o gráficos: admiten estructurar el programa por medio de
símbolos gráficos, similares a los que se han venido utilizando para
describir los sistemas de automatización, planos esquemáticos y diagramas
de bloques.
Los escritos: son listados de sentencias que describen las funciones a
ejecutar.
En la presente investigación, se hará hincapié en los lenguajes de
programación de tipo escrito (o literales), específicamente en el lenguaje lista de
instrucciones, el cual constituye una forma de lenguaje Booleano, y en donde cada
instrucción se basa en las definiciones del álgebra lógica.
4. MARCO TEÓRICO
Normas IEC 61131-3
IEC 61131-3 es la tercera parte (de 8) del estándar internacional IEC 61131
para Controladores Lógicos Programables (PLC). Fue publicada por primera vez
en diciembre de 1993 por la Comisión Electrotécnica Internacional. La edición
actual fue publicada en febrero del 2013. IEC 61131-3 es la base real para
estandarizar los lenguajes de programación en la automatización industrial,
haciendo el trabajo independiente de cualquier compañía. Hay muchas maneras
de describir el trabajo desarrollado en la tercera parte de esta norma, algunas de
ellas son:
IEC 61131-3 es el resultado del gran esfuerzo realizado por 7
multinacionales con muchos años de experiencia en el campo de la
automatización industrial.
Incluye 200 páginas de texto aproximadamente, con más de 60 tablas.
IEC 61131-3 define las especificaciones de la sintaxis y semántica de los
lenguajes de programación de PLCs, incluyendo el modelo de software y la
estructura del lenguaje.
La parte 3 del estándar presenta dos grandes bloques temáticos: elementos
comunes y lenguajes de programación.
Elementos comunes
Tipos de datos: dentro de los elementos comunes, se definen los tipos de
datos. Los tipos de datos previenen de errores en una fase inicial, como por
ejemplo la división de un dato tipo fecha por un número entero. Los tipos
comunes de datos son: variables booleanas, numero entero, número real,
byte, y palabra, pero también fechas, horas del día y cadenas (strings).
Variables: las variables permiten identificar los objetos de datos cuyos
contenidos pueden cambiar, por ejemplo, los datos asociados a entradas,
salidas o a la memoria del autómata programable. Una variable se puede
declarar como uno de los tipos de datos elementales definidos o como uno
de los tipos de datos derivados. De este modo se crea un alto nivel de
independencia con el hardware, favoreciendo la reusabilidad del software.
La extensión de las variables está normalmente limitada a la unidad de
organización en la cual han sido declaradas como locales. Esto significa
5. que sus nombres pueden ser reutilizados en otras partes sin conflictos,
eliminando una frecuente fuente de errores.
Si las variables deben tener una extensión global, han de ser declaradas
como globales utilizando la palabra reservada VAR_GLOBAL. Pueden ser
asignados parámetros y valores iniciales que se restablecen al inicio, para
obtener la configuración inicial correcta.
Configuración, recursos y tareas: al más alto nivel, el elemento software
requerido para solucionar un problema de control particular puede ser
formulado como una configuración. Una configuración es específica para un
tipo de sistema de control, incluyendo las características del hardware:
procesadores, direccionamiento de la memoria para los canales de I/O y
otras capacidades del sistema.
Dentro de una configuración, se pueden definir uno o más recursos. Se
puede entender el recurso como un procesador capaz de ejecutar
programas IEC. Con un recurso, pueden estar definidas una o más tareas.
Las tareas controlan la ejecución de un conjunto de programas y/o bloques
de función. Cada uno de ellos puede ser ejecutado periódicamente o por
una señal de disparo especificada, como el cambio de estado de una
variable.
Unidades de Organización de Programa: la norma define tres formas
distintas de “presentar” o crear programas de control para PLCs, a saber:
programas, funciones y bloques funcionales. Estas presentaciones reciben
el nombre de POUs (Unidades de Organización de Programa). Los POUs
serán diseñados a partir de un diferente número de elementos de software,
escritos en alguno de los distintos lenguajes definidos en la norma.
Típicamente, un programa es una interacción de Funciones y Bloques
Funcionales, con capacidad para intercambiar datos. Las funciones y los
bloques funcionales son las partes básicas de construcción de un
programa, que contienen una declaración de datos y variables, y un
conjunto de instrucciones.
- Programas: la norma define un programa como “el conjunto lógico
de todos los elementos y construcciones que son necesarios para
el tratamiento de señales que se requiere para el control de una
máquina o proceso mediante PLC”. Es decir, un programa puede
contener la declaración de tipos de datos, variables e instancias
de bloques funcionales junto con el conjunto de instrucciones
(código o programa propiamente dicho) necesario para llevar a
cabo el control deseado del proceso o máquina.
6. - Funciones: IEC 61131-3 especifica funciones estándar y
funciones definidas por el usuario. Las funciones estándar son
por ejemplo ADD (suma), ABS (valor absoluto), SQRT (raíz
cuadrada), SIN (seno) y COS (coseno). Las funciones definidas
por el usuario, una vez implementadas pueden ser usadas
indefinidamente en cualquier POU.
- Bloques Funcionales: los bloques funcionales son los
equivalentes de los circuitos integrados usados en electrónica,
que representan funciones de control especializadas. Los FB’s
contienen tanto datos como instrucciones, pudiendo guardar los
valores de dichas variables entre sucesivas ejecuciones (que es
una de las diferencias con las funciones). Se dice por tanto que
los FB’s tienen “memoria”, característica que les confiere un gran
potencial de uso.
Gráfico Funcional Secuencial (SFC): los gráficos funcionales
secuenciales ayudan a estructurar la organización interna de un
programa, y a descomponer un problema en partes manejables,
manteniendo simultáneamente una visión global. Los elementos de
los SFC proporcionan un medio para subdividir una Unidad de
Organización de Programa (POU) de un autómata programable en
un conjunto de etapas y transiciones interconectadas. Cada etapa
lleva asociados un conjunto de bloques de acción y cada transición
va asociada con una condición que cuando se cumple, causa la
desactivación de la etapa anterior a la transición y la activación de la
siguiente.
Lenguajes de Programación
La norma define cuatro lenguajes de programación normalizados. Esto
significa que su sintaxis y semántica ha sido definida, no permitiendo
particularidades distintivas (dialectos). Los lenguajes consisten en dos de tipo
literal y dos de tipo gráfico.
Literales: Lista de Instrucciones (a tratar en esta investigación)
Texto Estructurado
Gráficos: Diagrama de escalera
Diagrama de bloques funcionales
7. Tipos de Lenguajes de Programación de PLCs
Fuente: davidrojasticsplc.files.wordpress.com/2009/01/plc1s3.pdf
Lenguaje Lista de Instrucciones
Corresponde al nivel más fundamental de lenguajes de programación
definidos en el estándar IEC 1131. De hecho, todos los otros lenguajes de
programación de PLCs pueden ser convertidos a lista de instrucciones o
Nemónicos. Este tipo de programación consiste en elaborar un listado de
instrucciones BOOLEANAS (únicamente operaciones sobre Bits) que se asocian a
los símbolos y contactos de un diagrama eléctrico de control, y las cuales
representarán la combinación lógica que exista entre dichos contactos.
El Lenguaje Lista de Instrucciones (IL) es un lenguaje de bajo nivel basado
en operaciones Booleanas y cuya apariencia es similar al código del lenguaje
ensamblador; se podría afirmar también que este lenguaje no es más que la
representación en forma de texto del lenguaje gráfico "escalera". Es el más
antiguo de los lenguajes de programación de PLC. El Lenguaje IL se usaba
cuando los computadores aun no tenían capacidad gráfica.
En este lenguaje cada instrucción se basa en las definiciones del álgebra
lógica. Como se mencionaba, el lenguaje Booleano utiliza la sintaxis del Álgebra
de Boole para ingresar y explicar la lógica de control. Consiste en elaborar una
lista de instrucciones o nemónicos, haciendo uso de operadores Booleanos (AND,
OR, NOT, etc.) y otras instrucciones nemónicas, para implementar el circuito de
control. El lenguaje “Lista de Instrucciones” (IL) de la Norma IEC 61131-3, es una
forma de lenguaje Booleano.
Operaciones Lógicas en el Lenguaje Lista de Instrucciones
Los programadores de PLC tienen formación en múltiples disciplinas y esto
determina que exista una diversidad de lenguajes. Los programadores de
8. aplicaciones familiarizados con el área industrial prefieren lenguajes visuales, por
su parte quienes tienen formación en electrónica o informática optan inicialmente
por los lenguajes escritos. Las operaciones lógicas más utilizadas son: AND, OR,
NOT, EXOR. A continuación se presentan las tablas de verdad que las definen.
AND - Conjunción
La operación lógica AND -conjunción- entrega
como resultado V si todas las entradas son V. Esta se
aplica en situaciones en las que se requiere realizar una
acción si y sólo sí se cumplen un determinado número
de condiciones. En lenguaje de contactos se realiza
disponiendo los contactos en serie.
OR - Disyunción
La operación lógica OR -disyunción - entrega
como resultado V siempre que alguna de las entradas
sea V, lo que se logra poniendo los contactos en
paralelo.
NOT - Inversión
La operación lógica NOT – inversión- entrega
como resultado el estado contrario al presente en la
entrada, esto se logra con el uso de Contactos Normal
Cerrado.
EXOR - OR - Exclusiva
La EXOR - OR -exclusiva- es V si alguna de las
entradas, pero nunca ambas, es V también; se puede
decir que es V si y sólo si las entradas son distintas.
9. DISCUSIÓN
En la actualidad las industrias constantemente buscan controlar sus
procesos, es por ello que se han creado diversos dispositivos destinados para tal
fin. Los PLC (Controladores Lógicos Programables) poseen un campo de
aplicación es muy extenso; se utilizan fundamentalmente en procesos de
maniobras de máquinas, control, señalización, etc. La aplicación de un PLC
abarca procesos industriales de cualquier tipo y ofrecen conexión a red; esto
permite tener comunicado un PLC con una PC y otros dispositivos al mismo
tiempo, permitiendo hacer monitoreo, estadísticas y reportes.
Un PLC permite entre otras cosas detectar señales de un proceso de
diferentes tipos, recibe configuraciones y da reportes al operador de producción o
supervisores, elabora y envía acciones al sistema según el programa que tenga y
el programa que utiliza permite modificarlo, incluso por el operador, cuando se
encuentra autorizado. Por todos estos aspectos es evidente que por medio de la
implementación de un sistema de control PLC es posible hacer automático
prácticamente cualquier proceso, mejorar la eficiencia y confiabilidad de la
maquinaria, y lo más importante bajar los costos.
Antes de poder implementar un PLC es importante que este sea
programado específicamente para la aplicación o el caso particular en que se está
usando en una determinada industria, y esta se realiza mediante periféricos del
mismo PLC. Varios son los lenguajes o sistemas de programación posibles en los
controladores lógicos programables; por esto, cada fabricante indica en las
características generales de su equipo cuál es el lenguaje o los lenguajes con los
que puede operar. En general, se podría decir que los lenguajes de programación
más usuales son aquellos que transfieren directamente el esquema de contactos y
las ecuaciones lógicas. Los lenguajes consisten en dos de tipo literal como son
texto estructura y lista de instrucciones o booleano, y dos de tipo gráfico como
diagrama de escalera y diagrama de bloques funcionales.
El lenguaje lista de instrucciones o booleano es el nivel más fundamental de
lenguajes de programación definidos en el estándar IEC 1131, en donde todos los
lenguajes de un PLC pueden ser transformados a este sin ningún problema. Este
se constituye por un conjunto de instrucciones que son transcripción literal de las
funciones del álgebra de Boole.
Es de destacar que es un lenguaje de bajo nivel, similar al código del
lenguaje ensamblador, además, es uno de los lenguajes más antiguos de un PLC,
10. cuando las computadoras no tenían capacidad gráfica. Cada instrucción se basa
en las definiciones del álgebra lógica, utilizando una sintaxis del Álgebra de Boole
para ingresar y explicar la lógica de control. Consiste en elaborar una lista de
instrucciones o nemónicos, haciendo uso de operadores booleanos como: AND –
conjunción, OR – disyunción, NOT – inversión y EXOR - OR – exclusiva.
11. CONCLUSIONES
Cuando hablamos de los lenguajes de programación nos referimos a
diferentes formas en las que se puede escribir el programa del usuario.
Los softwares actuales nos permiten traducir el programa usuario de un
lenguaje a otro, pudiendo así escribir el programa en el lenguaje que más
nos convenga.
El lenguaje Booleano utiliza la sintaxis del Álgebra de Boole para ingresar
y explicar la lógica de control. Consiste en elaborar una lista de
instrucciones o nemónicos, haciendo uso de operadores Booleanos
(AND, OR, NOT, etc.) y otras instrucciones nemónicas, para implementar
el circuito de control.
Programar un autómata consiste en introducirle una secuencia de
órdenes (instrucciones) obtenidas desde un modelo de control, según
una codificación determinada (lenguaje) que por su forma puede ser:
literal o de textos, o gráfica, o de símbolos. Así, la automatización de
procesos comunes (mando de máquinas, cadenas de producción, etc.)
puede hacerse con diagramas de contactos o con listas de instrucciones,
los dos lenguajes básicos para la mayoría de autómatas.
12. REFERENCIAS
NAVARRO, D. (2001). Controlador Lógico Programable (PLC), Curso Tutorial.
[Documento en línea]. Disponible en:
https://www.scribd.com/doc/12944471/33/Lista-de-instrucciones-AWL-BOOLEANO-
Nemonicos. [2014, 04 de noviembre].
Lenguajes de Programación. [Página web en línea]. Disponible en:
http://datateca.unad.edu.co/contenidos/2150512/ContenidoLinea/leccin_163__leng
uajes_de_programacin_i.html. [2014, 04 de noviembre].
Nemónicos o lista de Instrucciones (Instruction list – IL). [Página web en línea].
Disponible en:
http://datateca.unad.edu.co/contenidos/2150512/ContenidoLinea/leccin_1634__ne
mnicos_o_lista_de_instrucciones_instruction_list__il.html. [2014, 04 de
noviembre].
PLC Controlador Lógico Programable. (2005). [Documento en línea]. Disponible
en: http://davidrojasticsplc.files.wordpress.com/2009/01/plc1s3.pdf. [2014, 04 de
noviembre].