LENGUAJES DE PROGRAMACION DE PLC´S
1. PROGRAMA Y LENGUAJE DE PROGRAMACIÓN
Se puede definir un programa como un conjunto de
instrucciones, órdenes y símbolos reconocibles por el PLC, a través de su
unidad de programación, que le permiten ejecutar una secuencia de control
deseada. El Lenguaje de Programación en cambio, permite al usuario ingresar un
programa de control en la memoria del PLC, usando una sintaxis establecida.
Al igual como los PLCs se han desarrollado y expandido, los
lenguajes de programación también se han desarrollado con ellos. Los lenguajes
de hoy en día tienen nuevas y más versátiles instrucciones y con mayor poder de
computación. Por ejemplo, los PLCs pueden transferir bloques de datos de una
localización de memoria a otra, mientras al mismo tiempo llevan cabo
operaciones lógicas y matemáticas en otro bloque. Como resultado de estas
nuevas y expandidas instrucciones, los programas de control pueden ahora
manejar datos más fácilmente.
Adicionalmente a las nuevas instrucciones de programación,
el desarrollo de nuevos módulos de entradas y salidas también ha obligado a
cambiar las instrucciones existentes.
2. PROGRAMAS DE APLICACIÓN Y DEL
SISTEMA
Los programas de aplicación que crean los
usuarios están orientados a ejecutar, a través del controlador, tareas de
automatización y control. Para ello, el usuario escribe el programa en el
lenguaje de programación que mejor se adapte a su trabajo y con el que sienta
poseer un mejor dominio. En este punto es importante señalar, que algunos
fabricantes no ofrecen todas las formas de representación de lenguajes de
programación, por lo que el usuario deberá adaptarse a la representación disponible
Por otro lado, el conjunto de programas que realizan
funciones operativas internas del controlador, incluyendo los traductores de lenguaje, reciben la denominación de programas del sistema o software del
sistema. Un elemento importante de éste, es el sistema operativo, cuyos
servicios incluyen el manejo de los dispositivos de entrada y salida del PLC,
el almacenamiento de la información durante largos períodos, el procesamiento
de los programas del usuario, etc. Estos programas ya vienen escritos y están
almacenados en una memoria No volátil dentro de la CPU, por lo tanto no se
pierden ni alteran en caso de pérdida de alimentación al equipo. El usuario No
tiene acceso a ellos.
3. TIPOS DE LENGUAJES DE PROGRAMACIÓN
DE PLCS
En
la actualidad cada fabricante diseña su propio software de programación, lo que
significa que existe una gran variedad comparable con la cantidad de PLCs que
hay en el mercado. No obstante, actualmente existen tres tipos de lenguajes de
programación de PLCs como los más difundidos a nivel mundial; estos son:
- Lenguaje de contactos o Ladder
- Lenguaje Booleano (Lista de instrucciones)
- Diagrama de funciones
Es obvio, que la gran diversidad de lenguajes de
programación da lugar a que cada fabricante tenga su propia representación,
originando cierta incomodidad al usuario cuando programa más de un PLC.
4. LA NORMA IEC 1131-3
La Comisión Electrotécnica Internacional (IEC) desarrolló el
estándar IEC 1131, en un esfuerzo para estandarizar los Controladores
Programables. Uno de los objetivos del Comité fue crear un conjunto común de
instrucciones que podría ser usado en todos los PLCs. Aunque el estándar 1131
alcanzó el estado de estándar internacional en agosto de 1992, el esfuerzo para
crear un PLC estándar global ha sido una tarea muy difícil debido a la
diversidad de fabricantes de PLCs y a los problemas de incompatibilidad de
programas entre marcas de PLCs.
El
estándar IEC 1131 para controladores programables consiste de cinco partes, una
de las cuales hace referencia a los lenguajes de programación y es referida
como la IEC
1131-3.
El
estándar IEC 1131-3 define dos lenguajes gráficos y dos lenguajes basados en
texto, para la programación de PLCs. Los lenguajes gráficos utilizan símbolos
para programar las instrucciones de control, mientras los lenguajes basados en
texto, usan cadenas de caracteres para programar las instrucciones.
·
Lenguajes Gráficos
o
Diagrama Ladder (LD)
o
Diagrama de Bloques de Funciones (FBD)
·
Lenguajes Textuales
o
Lista de Instrucciones (IL)
o
Texto Estructurado (ST)
Adicionalmente,
el estándar IEC 1131-3 incluye una forma de programación orientada a objetos
llamada Sequential Function Chart (SFC).
SFC es a menudo categorizado como un lenguaje IEC 1131-3, pero éste es realmente
una estructura organizacional que coordina los cuatro lenguajes estándares de
programación (LD, FBD, IL y ST). La estructura del SFC tuvo sus raíces en el
primer estándar francés de Grafcet
(IEC 848).
5. LENGUAJE LADDER
El LADDER, también denominado lenguaje de contactos o de
escalera, es un lenguaje de programación gráfico muy popular dentro de los Controladores Lógicos Programables (PLC), debido a que está basado en los esquemas eléctricos
de control clásicos. De este modo, con los conocimientos que todo técnico
eléctrico posee, es muy fácil adaptarse a la programación en este tipo de
lenguaje. Su
principal ventaja es que los símbolos básicos están normalizados según normas
NEMA y son empleados por todos los fabricantes.
·
Elementos de programación
Para
programar un PLC con LADDER, además de estar familiarizado con las reglas de
los circuitos de conmutación, es necesario conocer cada uno de los elementos de que
consta este lenguaje. En la siguiente tabla podemos observar los símbolos de
los elementos básicos junto con sus respectivas descripciones.
·
Programación
Una vez conocidos los elementos que
LADDER proporciona para su programación, resulta importante resaltar cómo se
estructura un programa y cuál es el orden de ejecución.
El siguiente esquema representa la
estructura general de la distribución de todo programa LADDER, contactos a la
izquierda y bobinas y otros elementos a la derecha.
En
cuanto a su equivalencia eléctrica, podemos imaginar que las líneas verticales
representan las líneas de alimentación de un circuito de control eléctrico.
El orden de ejecución es generalmente
de arriba hacia abajo y de izquierda a derecha, primero los contactos y luego
las bobinas, de manera que al llegar a éstas ya se conoce el valor de los
contactos y se activan si procede. El orden de ejecución puede variar de un controlador
a otro, pero siempre se respetará el orden de introducción del programa, de
manera que se ejecuta primero lo que primero se introduce.
·
Variables internas y bits de sistema
Las variables internas son bits
auxiliares que pueden ser usados según convenga, sin necesidad de que
representen ningún elemento del autómata. Se suele indicar mediante los
caracteres B ó M y tienen tanto bobinas como contactos asociados a las mismas.
Su número de identificación suele oscilar, en general, entre 0 y 255. Su
utilidad fundamental es la de almacenar información intermedia para simplificar
esquemas y programación.
Los
bits de sistema son contactos que el propio autómata activa cuando conviene o
cuando se dan unas circunstancias determinadas. Existe una gran variedad,
siendo los más importantes los de arranque y los de reloj, que permiten que
empiece la ejecución desde un sitio en concreto y formar una base de tiempos
respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo
de autómata y fabricante
6. LENGUAJE BOOLEANO
(Lista de Instrucciones)
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
1131-3, es una forma de lenguaje Booleano.
Ejemplo de programación Booleana:
A I 2.3
A I 4.1
O I 3.2
= Q 1.6
7. DIAGRAMA DE
FUNCIONES (FBD)
Es un
lenguaje gráfico que permite al usuario programar elementos (bloque de
funciones del PLC) en tal forma que ellos aparecen interconectados al igual que
un circuito eléctrico. Generalmente utilizan símbolos lógicos para representar
al bloque de función. Las salidas lógicas no requieren incorporar una bobina de
salida, porque la salida es representada por una variable asignada a la salida
del bloque.
El diagrama
de funciones lógicas, resulta especialmente cómodo de utilizar, a técnicos
habituados a trabajar con circuitos de puertas lógicas, ya que la simbología
usada en ambos es equivalente.
Adicionalmente
a las funciones lógicas estándares y específicas del vendedor, el lenguaje FBD
de la Norma IEC
1131-3 permite al usuario construir sus propios bloques de funciones, de
acuerdo a los requerimientos del programa de control.
Ejemplo de programación mediante
diagrama de funciones:
8. LENGUAJE DE TEXTO
ESTRUCTURADO (ST)
Texto estructurado (ST) es un lenguaje de alto nivel que
permite la programación estructurada, lo que significa que muchas tareas
complejas pueden ser divididas en unidades más pequeñas. ST se parece mucho a
los lenguajes de computadoras BASIC o PASCAL, que usa subrutinas para llevar a
cabo diferentes partes de las funciones de control y paso de parámetros y
valores entre las diferentes secciones del programa.
Al igual que LD, FBD
e IL, el lenguaje de texto estructurado utiliza la definición de variables para
identificar entradas y salidas de dispositivos de campo y cualquier otra
variable creada internamente.
Incluye estructuras de cálculo repetitivo y condicional,
tales como: FOR ... TO; REPEAT..... UNTIL X; WHILE X... ; IF ... THEN ...ELSE. Además
soporta operaciones Booleanas (AND, OR, etc.) y una variedad de datos
específicos, tales como fecha, hora.
La programación en Texto Estructurado es apropiada para
aplicaciones que involucran manipulación de datos, ordenamiento computacional y
aplicaciones matemáticas que utilizan valores de punto flotante. ST es el mejor
lenguaje para la implementación de aplicaciones de inteligencia artificial,
lógica difusa, toma de decisiones, etc.
Ejemplo:
IF Manual AND
Alarm THEN
Level =
Manual_Level;
Mixer = Start
AND NOT Reset
ELSE IF Other_Mode THEN
Level
= Max_level;
ELSE Level
= (Level_Indic X100)/Scale;
END IF;
9. SEQUENTIAL FUNCTION
CHART (SFC)
Es un “lenguaje” gráfico que provee una representación
diagramática de secuencias de control en un programa. Básicamente, SFC es
similar a un diagrama de flujo, en el que se puede organizar los subprogramas o
subrutinas (programadas en LD, FBD, IL y/o ST) que forman el programa de
control. SFC es particularmente útil para operaciones de control secuencial,
donde un programa fluye de un punto a otro una vez que una condición ha sido
satisfecha (cierta o falsa).
El marco de programación de SFC contiene tres principales
elementos que organizan el programa de control:
·
Pasos (etapas)
·
Transiciones (condiciones)
·
Acciones
El programa irá activando cada una de las etapas y
desactivando la anterior conforme se vayan cumpliendo cada una de las
condiciones. Las acciones se realizarán en función de la etapa activa a la que
están asociadas. Por ejemplo, la etapa 1 activa tras arrancar el programa, al
cumplirse la "Condición 1", se activará la etapa 2, se desactivará la
1, y se realizará la "Acción 1".
Ejemplo:
Como se mencionó anteriormente, el lenguaje SFC tiene su
origen en el estándar francés GRAFCET (GRAFica
de Control de Etapas de Transición).
El grafcet también utiliza etapas, transiciones y acciones, que operan de la
misma manera como en SFC.