Está en la página 1de 13

LENGUAJES DE PROGRAMACION DE PLCS 1.

PROGRAMA Y LENGUAJE DE PROGRAMACIN Se puede definir un programa como un conjunto de instrucciones, rdenes y smbolos reconocibles por el PLC, a travs de su unidad de programacin, que le permiten ejecutar una secuencia de control deseada. El Lenguaje de Programacin 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 programacin tambin se han desarrollado con ellos. Los lenguajes de hoy en da tienen nuevas y ms verstiles instrucciones y con mayor poder de computacin. Por ejemplo, los PLCs pueden transferir bloques de datos de una localizacin de memoria a otra, mientras al mismo tiempo llevan cabo operaciones lgicas y matemticas en otro bloque. Como resultado de estas nuevas y expandidas instrucciones, los programas de control pueden ahora manejar datos ms fcilmente. Adicionalmente a las nuevas instrucciones de programacin, el desarrollo de nuevos mdulos de entradas y salidas tambin ha obligado a cambiar las instrucciones existentes. 2. PROGRAMAS DE APLICACIN Y DEL SISTEMA Los programas de aplicacin que crean los usuarios estn orientados a ejecutar, a travs del controlador, tareas de automatizacin y control. Para ello, el usuario escribe el programa en el lenguaje de programacin que mejor se adapte a su trabajo y con el que sienta poseer un mejor dominio. En este punto es importante sealar, que algunos fabricantes no ofrecen todas las formas de representacin de lenguajes de programacin, por lo que el usuario deber adaptarse a la representacin disponible Por otro lado, el conjunto de programas que realizan funciones operativas internas del controlador, incluyendo los traductores de lenguaje, reciben la denominacin 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 informacin durante largos perodos, el procesamiento de los programas del usuario, etc. Estos programas ya vienen escritos y estn almacenados en una memoria No voltil dentro de la CPU, por lo tanto no se pierden ni alteran en caso de prdida de alimentacin al equipo. El usuario No tiene acceso a ellos. 3. TIPOS DE LENGUAJES DE PROGRAMACIN DE PLCS En la actualidad cada fabricante disea su propio software de programacin, 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 programacin de PLCs como los ms 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 programacin da lugar a que cada fabricante tenga su propia representacin, originando cierta incomodidad al usuario cuando programa ms de un PLC.

4. LA NORMA IEC 1131-3 La Comisin Electrotcnica Internacional (IEC) desarroll el estndar IEC 1131, en un esfuerzo para estandarizar los Controladores Programables. Uno de los objetivos del Comit fue crear un conjunto comn de instrucciones que podra ser usado en todos los PLCs. Aunque el estndar 1131 alcanz el estado de estndar internacional en agosto de 1992, el esfuerzo para crear un PLC estndar global ha sido una tarea muy difcil debido a la diversidad de fabricantes de PLCs y a los problemas de incompatibilidad de programas entre marcas de PLCs. El estndar IEC 1131 para controladores programables consiste de cinco partes, una de las cuales hace referencia a los lenguajes de programacin y es referida como la IEC 1131-3. El estndar IEC 1131-3 define dos lenguajes grficos y dos lenguajes basados en texto, para la programacin de PLCs. Los lenguajes grficos utilizan smbolos para programar las instrucciones de control, mientras los lenguajes basados en texto, usan cadenas de caracteres para programar las instrucciones. o o o o Lenguajes Grficos Diagrama Ladder (LD) Diagrama de Bloques de Funciones (FBD) Lenguajes Textuales Lista de Instrucciones (IL) Texto Estructurado (ST)

Adicionalmente, el estndar IEC 1131-3 incluye una forma de programacin 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 estndares de programacin (LD, FBD, IL y ST). La estructura del SFC tuvo sus races en el primer estndar francs de Grafcet (IEC 848). 5. LENGUAJE LADDER El LADDER, tambin denominado lenguaje de contactos o de escalera, es un lenguaje de programacin grfico muy popular dentro de los Controladores Lgicos Programables (PLC), debido a que est basado en los esquemas elctricos de control clsicos. De este modo, con los conocimientos que todo tcnico elctrico posee, es muy fcil adaptarse a la programacin en este tipo de lenguaje. Su principal ventaja es que los smbolos bsicos estn normalizados segn normas NEMA y son empleados por todos los fabricantes. Elementos de programacin Para programar un PLC con LADDER, adems de estar familiarizado con las reglas de los circuitos de conmutacin, es necesario conocer cada uno de los elementos de que consta este lenguaje. En la siguiente tabla podemos observar los smbolos de los elementos bsicos junto con sus respectivas descripciones. Smbolo Nombre Descripcin

Contacto Se activa cuando hay un uno lgico en el elemento que representa, esto es, una entrada (para captar informacin del NA proceso a controlar), una variable interna o un bit de sistema. Contacto Su funcin es similar al contacto NA anterior, pero en este caso se activa cuando hay un cero lgico, cosa que deber de tenerse NC muy en cuenta a la hora de su utilizacin. Se activa cuando la combinacin que hay a su entrada Bobina (izquierda) da un uno lgico. Su activacin equivale a decir que NA tiene un uno lgico. Suele representar elementos de salida, aunque a veces puede hacer el papel de variable interna. Se activa cuando la combinacin que hay a su entrada Bobina (izquierda) da un cero lgico. Su activacin equivale a decir que NC tiene un cero lgico. Su comportamiento es complementario al de la bobina NA. Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) Bobina si no es por su correspondiente bobina en RESET. Sirve para SET memorizar bits y usada junto con la bina RESET dan una enorme potencia en la programacin. Bobina SET Permite desactivar una bobina SET previamente activada.

Programacin Una vez conocidos los elementos que LADDER proporciona para su programacin, resulta importante resaltar cmo se estructura un programa y cul es el orden de ejecucin. El siguiente esquema representa la estructura general de la distribucin de todo programa LADDER, contactos a la izquierda y bobinas y otros elementos a la derecha.

En cuanto a su equivalencia elctrica, podemos imaginar que las lneas verticales representan las lneas de alimentacin de un circuito de control elctrico. El orden de ejecucin 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 ejecucin puede variar de un controlador a otro, pero siempre se respetar el orden de introduccin 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 segn convenga, sin necesidad de que representen ningn elemento del autmata. Se suele indicar mediante los caracteres B M y tienen tanto bobinas como contactos asociados a las mismas. Su nmero de identificacin suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar informacin intermedia para simplificar esquemas y programacin. Los bits de sistema son contactos que el propio autmata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los ms importantes los de arranque y los de reloj, que permiten que empiece la ejecucin desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autmata y fabricante 6. LENGUAJE BOOLEANO (Lista de Instrucciones) El lenguaje Booleano utiliza la sintaxis del lgebra de Boole para ingresar y explicar la lgica de control. Consiste en elaborar una lista de instrucciones o nemnicos, haciendo uso de operadores Booleanos (AND, OR, NOT, etc.) y otras instrucciones nemnicas, 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 programacin Booleana: A A O = 7. DIAGRAMA DE FUNCIONES (FBD) Es un lenguaje grfico que permite al usuario programar elementos (bloque de funciones del PLC) en tal forma que ellos aparecen interconectados al igual que un circuito elctrico. Generalmente utilizan smbolos lgicos para representar al bloque de funcin. Las salidas lgicas 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 lgicas, resulta especialmente cmodo de utilizar, a tcnicos habituados a trabajar con circuitos de puertas lgicas, ya que la simbologa usada en ambos es equivalente. Adicionalmente a las funciones lgicas estndares y especficas 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. I I I Q 2.3 4.1 3.2 1.6

Ejemplo de programacin mediante diagrama de funciones:

I 2.3 I 4.1 I 3.2

& 1
Q 1.6

8. LENGUAJE DE TEXTO ESTRUCTURADO (ST) Texto estructurado (ST) es un lenguaje de alto nivel que permite la programacin estructurada, lo que significa que muchas tareas complejas pueden ser divididas en unidades ms pequeas. 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 parmetros y valores entre las diferentes secciones del programa. Al igual que LD, FBD e IL, el lenguaje de texto estructurado utiliza la definicin de variables para identificar entradas y salidas de dispositivos de campo y cualquier otra variable creada internamente. Incluye estructuras de clculo repetitivo y condicional, tales como: FOR ... TO; REPEAT..... UNTIL X; WHILE X... ; IF ... THEN ...ELSE. Adems soporta operaciones Booleanas (AND, OR, etc.) y una variedad de datos especficos, tales como fecha, hora. La programacin en Texto Estructurado es apropiada para aplicaciones que involucran manipulacin de datos, ordenamiento computacional y aplicaciones matemticas que utilizan valores de punto flotante. ST es el mejor lenguaje para la implementacin de aplicaciones de inteligencia artificial, lgica 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 grfico que provee una representacin diagramtica de secuencias de control en un programa. Bsicamente, 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 condicin ha sido satisfecha (cierta o falsa). El marco de programacin 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 realizarn en funcin de la etapa activa a la que estn asociadas. Por ejemplo, la etapa 1 activa tras arrancar el programa, al cumplirse la "Condicin 1", se activar la etapa 2, se desactivar la 1, y se realizar la "Accin 1". Ejemplo:

Como se mencion anteriormente, el lenguaje SFC tiene su origen en el estndar francs GRAFCET (GRAFica de Control de Etapas de Transicin). El grafcet tambin utiliza etapas, transiciones y acciones, que operan de la misma manera como en SFC.

Captulo 3: Programacin de un PLC II LENGUAJES GRAFICOS Se denomina lenguaje grfico a la representacin basada en smbolos grficos, de tal forma que segn la disposicin en que se encuentran cada uno de estos smbolos Y en conformidad a su sintaxis que lo gobierna, expresa una lgica de mando y. control. Dentro de ellos tenemos Carta de Funciones Secunciales o Grafcet El Grafcet es una representacin de anlisis grfico donde se establecen las funciones de un sistema secuencial. Este lenguaje consiste en una secuencia de etapas y transiciones, asociadas respectivamente con acciones y condiciones. Las etapas representan las acciones a realizar y las transiciones las condiciones que deben cumplirse para ir desarrollando acciones. La Etapa - Transicin es un conjunto indisociable.

Plano de Funciones Es una representacin grfica orientada a las puertas lgicas AND, OR y sus combinaciones. Las funciones individuales se representan con un smbolo, donde su lado izquierdo se ubica las entradas y en el derecho las salidas. Los smbolos usados son iguales o semejantes a los que se utilizan en los esquemas de bloques en electrnica digital.

Diagrama de Contactos o Plano de Funciones Es la representacin grfica que tiene cierta analoga a los esquemas de contactos segn la norma Nema (USA). Su estructura obedece a la semejanza que existe con los circuitos de control con lgica cableada, es decir, utiliza la misma representacin de los contactos normalmente abiertos y normalmente cerrados, con la diferencia que su interpretacin es totalmente diferente. Adems de los simples contactos que dispone, existen otros elementos que permiten realizar clculos aritmticos, operaciones de comparacin, implementar algoritmos de regulacin, etc. Su gran difusin se debe por facilitar el trabajo a los usuarios

LENGUAJES TEXTUALES Este tipo de lenguaje se refiere bsicamente al conjunto de instrucciones compuesto de letras, cdigos y nmeros de acuerdo a una sintaxis establecida. Se considera un lenguaje de menor nivel que los grficos y por lo general se utilizan para programar pequeos PLCs cuyos programas no son muy complejos, o para programar instrucciones no programables en modo grfico Existen dos lenguajes diferentes en nivel y tipo de aplicacin, ellos son Lista de Instrucciones Son instrucciones del tipo Booleanas, utilizando para su representacin letras y nmeros. Dado que se usan abreviaturas nemotcnicas, no se requiere gran memoria para tareas de automatizacin. La desventaja radica en la magnitud del trabajo que es necesario para su programacin, especialmente si el programa consta de unos cientos de instrucciones. Representacin de un programa en lista de instrucciones para diferentes marcas de PLCs Siemens (Simatic) Telemecanique General Electric U E0.1 L I0.01 LD %I0001 U E0.2 O E0.3 A I0.02 O I0.03 AND %I0002 OR %I0003

= A3.1

= O3.01

OUT %Q0031

Texto Estructurado Es un lenguaje del tipo booleano de alto nivel y estructurado, incluye las tpicas sentencias de seleccin (IF-THEN-ELSE) y de interaccin (FOR, WHILE Y REPEAT), adems de otras funciones especficas para aplicaciones de control. Su uso es ideal para aplicaciones en las que se requiere realizar clculos matemticos, comparaciones, emular protocolos, etc. Programa en texto estructurado para un PLC marca Telemecanique TSX-07 LD ST [%MW10>100] %Q0.3

AND [%MW20<%MW35] ST LD OR ST %Q0.2 %I0.2 [%MW30>=%MW40] %Q0.4

DENOMINACION DE LOS LENGUAJES DE PROGRAMACION DE DIFERENTES PLCS Cada fabricante ha nombrado mediante siglas o palabras compuestas a su lenguaje de programacin o software de programacin que lo identifica del resto de PLCs. A continuacin se presenta una tabla donde se indican estos nombres.

ESTRUCTURA DEL PROGRAMA DE APLICACION Los Programas de aplicacin se estructuran de acuerdo al modo como se procesan los programas (tareas), stas pueden ser de dos tipos: PROGRAMACION LINEAL Se emplea para aplicaciones simples de automatizacin, su procesamiento es cclico o secuencial y es suficiente programar las diferentes instrucciones en un solo bloque o seccin de programacin. Un procesamiento cclico o secuencial, consiste en la lectura, interpretacin y ejecucin de instruccin por instruccin, respetando el orden en que se han programado, salvo las instrucciones de salto. Para ejecutar las instrucciones se utilizan informaciones procedentes de la imagen de proceso de entradas (IPE), memorias internas, memorias intermedias, as como los datos actuales de los temporizadores y contadores. Los resultados se escriben en la imagen de proceso de salidas (IPS). Despus de la ejecucin del programa se corre un ciclo de datos, esto significa el proceso durante el cual los datos de la IPS se transfieren a los mdulos de salida, y simultneamente, se transfieren a la IPE los datos actuales de los mdulos de entrada. Con esta IPE actualizada, vuelve a lanzarse la ejecucin del programa, lo que significa repetir todo el proceso desde el inicio. Los PLCs que realizan solamente este tipo de procesamiento, estn diseados con microprocesadores del tipo (intel 8086/8088) que se caracterizan por su limitada capacidad para ejecutar un solo programa a la vez. Estos tipos de PLCs son denominados tambin PLCs secunciales, con capacidad adems de ejecutar tareas de regulacin, de comunicacin, etc. Sin embargo, esta forma de procesamiento dificulta notablemente el trabajo cuando se tiene que procesar diferentes funciones a la vez, y en algunos casos es casi imposible estructurar los programas debido a las siguientes desventajas: Incremento del tiempo de barrido`, que es proporcional a la complejidad del programa. En extensos programas es muy tedioso su diagnstico. Modificacin y puesta a punto.

Dificultad para la concepcin del programa resultando complejo y difcil interpretarlo y actualizarlo. En muchos casos es indispensable el cumplimiento en tiempo real defunciones avanzadas tales como: * medicin analgica y regulacin * servoposicionamiento * comunicacin para el dilogo operador y control * funciones de monitoreo, etc.

10

PROGRAMACION ESTRUCTURADA Cuando se desea programar tareas de automatizacin muy complejas donde utilizar una programacin lineal resulta demasiado laborioso, es conveniente en este caso dividir el problema en partes, de tal forma, que interpretndolo y resolvindolo en forma parcial mediante bloques y al final unir este conjunto de programas en uno solo, resulta significativamente ms fcil para el usuario. A esta filosofa de programacin se le conoce con el nombre de Programacin Estructurada, que consiste en la divisin del programa de aplicacin en bloques que se caracterizan por una independencia funcional, donde cada bloque del programa realiza una tarea especfica claramente definida. La programacin estructurada optimiza el tiempo de escaneo ya que no se ejecutan todos los bloques en cada ciclo de barrido, ejecutndose slo los que estn en actividad en el momento dado. Las ventajas que se obtienen programando en forma estructurada son La compresin, solucin, simulacin y pruebas es mucho ms fcil cuando un problema muy complejo es tratado por partes. El diagnstico de fallas y por ende su solucin es tambin ms fcil, dado que una vez identificado el bloque del programa donde se encuentra la falla, su correccin resulta ms rpido que si se afrontara el programa global. Los programas parciales pueden ejecutarse independientemente por equipos de programadores, cada grupo elaborando bloques individuales; adems se pueden usar reiteradamente durante el escaneo del programa, o formar parte de otro programa de aplicacin. Se emplea mejor la capacidad de la memoria dado que pueden llamarse los bloques de programas las veces que se requiera sin que se tenga que programar repetidas veces. Optimizacin del tiempo de barrido. Por otro lado, dependiendo del tipo de procesador que disponga el PLC la programacin estructurada puede aprovecharse con menor o mayor Eficiencia.

11

Este es el caso, como se mencion anteriormente de los PLC diseados en base a microprocesadores del tipo mono tarea, donde la programacin estructurada compuesta por una serie de bloques de programacin, se ejecuta en base al procesamiento secuencial o lineal de un bloque matriz, que viene hacer el ncleo de la estructura. A continuacin se puede ver un ejemplo de una programacin estructurada cuya distancia medida por el nmero de bloques a los que "salta ', se le conoce como Profundidad de Encadenamiento o Anidado. Con este tipo de microprocesador no se puede realizar en forma simultnea otras tareas como dilogo hombre-mquina, procesamiento analgico, etc.

OB: Mdulo de Organizacin PB Mdulo de Programa FB Mdulo Funcional DE3 Mdulo de Datos Sin embargo, hoy en da se cuenta con procesadores de mayor velocidad de procesamiento, mayor memoria y caractersticas adicionales que le permiten ejecutar a los PLCs programas ms rpidamente, estos son los procesadores multifuncin (286, 386, 486, etc.), con capacidad de ejecutar varios programas en forma simultnea tales como tareas de posicionamiento, medicin analgica, tratamiento secuencial, dilogo, etc. Los PLCs multifuncin desarrollados en base a microprocesadores multitarea se caracterizan por su mayor velocidad para atender diferentes programas a la vez y en tiempo real, adems por su mayor capacidad de memoria para ejecutar varios programas simultneamente sin originar conflictos. En la siguiente figura se muestra la estructura de la multitarea, donde el conjunto de programas o tareas son totalmente independientes, un supervisor gobierna la ejecucin de las diferentes tareas. As tambin, en estos procesadores la concepcin del tratamiento secuencial es en base a la divisin en bloques de programas, algo as como subrutinas, que es bsicamente el concepto de la programacin estructurada.

12

En conclusin, la diferencia en el procesamiento de estos dos tipos de programas estructurados radica en que el primero funcionando con microprocesadores mono tarea, ejecutan los diversos mdulos o bloques de programacin segn un procesamiento secuencial, es decir, uno a continuacin del otro, mientras que el procesador multifuncin adems del procesamiento secuencial, puede ejecutar el programa estructurado independientemente si se ejecut el bloque anterior. Esto significa, que si en algn momento durante el proceso de barrido del programa en el sistema de control se origina una contingencia, puede ejecutarse una tarea de interrupcin sin tener que esperar el barrido total del programa Programacin estructurada con procesador multifuncin (diagrama de bloques segn lenguaje de programacin PL7-3 de Telemecanique)

En la siguiente figura se muestra los bloques de programas en tratamiento secuencial y en Grafcet.

13

También podría gustarte