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. l Lenguaje de Programacin en cambio, permite al usuario ingresar un programa de control en la memoria del PLC, usando una sinta!is establecida. "l igual como los PLCs se #an desarrollado y e!pandido, los lenguajes de programacin tambin se #an desarrollado con ellos. Los lenguajes de #oy en da tienen nuevas y m$s vers$tiles instrucciones y con mayor poder de computacin. Por ejemplo, los PLCs pueden transferir bloques de datos de una locali%acin de memoria a otra, mientras al mismo tiempo llevan cabo operaciones lgicas y matem$ticas en otro bloque. Como resultado de estas nuevas y e!pandidas instrucciones, los programas de control pueden a#ora manejar datos m$s f$cilmente. "dicionalmente a las nuevas instrucciones de programacin, el desarrollo de nuevos mdulos de entradas y salidas tambin #a obligado a cambiar las instrucciones e!istentes. 2. PROGRAMAS DE APLICACIN Y DEL SISTEMA Los programas de aplicacin que crean los usuarios est$n orientados a ejecutar, a travs del controlador, tareas de automati%acin 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. n este punto es importante se&alar, 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 reali%an funciones operativas internas del controlador, incluyendo los traductores de lenguaje, reciben la denominacin de programas d! s"s#ma o so$#%ar d! s"s#ma. 'n 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. stos programas ya vienen escritos y est$n almacenados en una memoria (o vol$til dentro de la CP', por lo tanto no se pierden ni alteran en caso de prdida de alimentacin al equipo. l usuario (o tiene acceso a ellos. &. TIPOS DE LENGUAJES DE PROGRAMACIN DE PLCS n la actualidad cada fabricante dise&a su propio soft)are de programacin, lo que significa que e!iste una gran variedad comparable con la cantidad de PLCs que #ay en el mercado. (o obstante, actualmente e!isten tres tipos de lenguajes de programacin de PLCs como los m$s difundidos a nivel mundial* estos son+ , Lenguaje de contactos o Ladder , Lenguaje -ooleano .Lista de instrucciones/ , 0iagrama de funciones 1 s 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 m$s de un PLC. '. LA NORMA IEC 11&1(& La Comisin lectrotcnica 1nternacional .1C/ desarroll el est$ndar 1C 2232, en un esfuer%o para estandari%ar los Controladores Programables. 'no de los objetivos del Comit fue crear un conjunto com4n de instrucciones que podra ser usado en todos los PLCs. "unque el est$ndar 2232 alcan% el estado de est$ndar internacional en agosto de 2556, el esfuer%o para crear un PLC est$ndar global #a 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. l est$ndar 1C 2232 para controladores programables consiste de cinco partes, una de las cuales #ace referencia a los lenguajes de programacin y es referida como la 1C 2232,3. l est$ndar 1C 2232,3 define dos lenguajes gr$ficos y dos lenguajes basados en te!to, para la programacin de PLCs. Los lenguajes gr$ficos utili%an smbolos para programar las instrucciones de control, mientras los lenguajes basados en te!to, usan cadenas de caracteres para programar las instrucciones. L)g*a+s Gr,$"-os o 0iagrama Ladder .L0/ o 0iagrama de -loques de 7unciones .7-0/ L)g*a+s T.#*a!s o Lista de 1nstrucciones .1L/ o 8e!to structurado .S8/ "dicionalmente, el est$ndar 1C 2232,3 incluye una forma de programacin orientada a objetos llamada S/*)#"a! 0*)-#"o) C1ar# 2S0C3. S7C es a menudo categori%ado como un lenguaje 1C 2232,3, pero ste es realmente una estructura organi%acional que coordina los cuatro lenguajes est$ndares de programacin .L0, 7-0, 1L y S8/. La estructura del S7C tuvo sus races en el primer est$ndar francs de Gra$-# .1C 9:9/. 4. LENGUAJE LADDER l L"00;, tambin denominado lenguaje de contactos o de escalera, es un lenguaje de programacin gr$fico muy popular dentro de los Controladores Lgicos Programables .PLC/, debido a que est$ basado en los esquemas elctricos de control cl$sicos. 0e este modo, con los conocimientos que todo tcnico elctrico posee, es muy f$cil adaptarse a la programacin en este tipo de lenguaje. Su principal ventaja es que los smbolos b$sicos est$n normali%ados seg4n normas (<" y son empleados por todos los fabricantes. E!m)#os d programa-"5) Para programar un PLC con L"00;, adem$s de estar familiari%ado con las reglas de los circuitos de conmutacin, es necesario conocer cada uno de los elementos de que 2 consta este lenguaje. n la siguiente tabla podemos observar los smbolos de los elementos b$sicos junto con sus respectivas descripciones. Smbolo (ombre 0escripcin Contacto (" Se activa cuando #ay un uno lgico en el elemento que representa, esto es, una entrada .para captar informacin del proceso a controlar/, una variable interna o un bit de sistema. Contacto (C Su funcin es similar al contacto (" anterior, pero en este caso se activa cuando #ay un cero lgico, cosa que deber$ de tenerse muy en cuenta a la #ora de su utili%acin. -obina (" Se activa cuando la combinacin que #ay a su entrada .i%quierda/ da un uno lgico. Su activacin equivale a decir que tiene un uno lgico. Suele representar elementos de salida, aunque a veces puede #acer el papel de variable interna. -obina (C Se activa cuando la combinacin que #ay a su entrada .i%quierda/ da un cero lgico. Su activacin equivale a decir que tiene un cero lgico. Su comportamiento es complementario al de la bobina (". -obina S8 'na ve% activa .puesta a 2/ no se puede desactivar .puesta a =/ si no es por su correspondiente bobina en ;S8. Sirve para memori%ar bits y usada junto con la bina ;S8 dan una enorme potencia en la programacin. -obina S8 Permite desactivar una bobina S8 previamente activada. Programa-"5) 'na ve% conocidos los elementos que L"00; proporciona para su programacin, resulta importante resaltar cmo se estructura un programa y cu$l es el orden de ejecucin. l siguiente esquema representa la estructura general de la distribucin de todo programa L"00;, contactos a la i%quierda y bobinas y otros elementos a la derec#a. n cuanto a su equivalencia elctrica, podemos imaginar que las lneas verticales representan las lneas de alimentacin de un circuito de control elctrico. 3 l orden de ejecucin es generalmente de arriba #acia abajo y de i%quierda a derec#a, 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. l 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. 6ar"a7!s ")#r)as 8 7"#s d s"s#ma Las variables internas son bits au!iliares que pueden ser usados seg4n convenga, sin necesidad de que representen ning4n elemento del autmata. Se suele indicar mediante los caracteres - < y tienen tanto bobinas como contactos asociados a las mismas. Su n4mero de identificacin suele oscilar, en general, entre = y 6>>. 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. !iste una gran variedad, siendo los m$s 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 9. LENGUAJE :OOLEANO 2L"s#a d I)s#r*--"o)s3 l lenguaje -ooleano utili%a la sinta!is del ?lgebra de -oole para ingresar y e!plicar la lgica de control. Consiste en elaborar una lista de instrucciones o nemnicos, #aciendo uso de operadores -ooleanos ."(0, @;, (@8, etc./ y otras instrucciones nemnicas, para implementar el circuito de control. l lenguaje ALista de 1nstruccionesB .1L/ de la (orma 1C 2232,3, es una forma de lenguaje -ooleano. jemplo de programacin -ooleana+ " 1 6.3 " 1 :.2 @ 1 3.6 C D 2.E ;. DIAGRAMA DE 0UNCIONES 20:D3 s 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 elctrico. Feneralmente utili%an 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. l diagrama de funciones lgicas, resulta especialmente cmodo de utili%ar, a tcnicos #abituados a trabajar con circuitos de puertas lgicas, ya que la simbologa usada en ambos es equivalente. "dicionalmente a las funciones lgicas est$ndares y especficas del vendedor, el lenguaje 7-0 de la (orma 1C 2232,3 permite al usuario construir sus propios bloques de funciones, de acuerdo a los requerimientos del programa de control. 4 jemplo de programacin mediante diagrama de funciones+ <. LENGUAJE DE TE=TO ESTRUCTURADO 2ST3 8e!to estructurado .S8/ es un lenguaje de alto nivel que permite la programacin estructurada, lo que significa que muc#as tareas complejas pueden ser divididas en unidades m$s peque&as. S8 se parece muc#o a los lenguajes de computadoras -"S1C o P"SC"L, 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. "l igual que L0, 7-0 e 1L, el lenguaje de te!to estructurado utili%a la definicin de variables para identificar entradas y salidas de dispositivos de campo y cualquier otra variable creada internamente. 1ncluye estructuras de c$lculo repetitivo y condicional, tales como+ 7@; ... 8@* ;P"8..... '(81L G* HI1L G... * 17 ... 8I( ...LS. "dem$s soporta operaciones -ooleanas ."(0, @;, etc./ y una variedad de datos especficos, tales como fec#a, #ora. La programacin en 8e!to structurado es apropiada para aplicaciones que involucran manipulacin de datos, ordenamiento computacional y aplicaciones matem$ticas que utili%an valores de punto flotante. S8 es el mejor lenguaje para la implementacin de aplicaciones de inteligencia artificial, lgica difusa, toma de decisiones, etc.
jemplo+ 17 <anual "(0 "larm 8I( Level C <anualJLevel* <i!er C Start "(0 (@8 ;eset LS 17 @t#erJ<ode 8I( Level C <a!Jlevel* LS Level C .LevelJ1ndic G2==/KScale* (0 17* >. SE?UENTIAL 0UNCTION C@ART 2S0C3 s un AlenguajeB gr$fico que provee una representacin diagram$tica de secuencias de control en un programa. -$sicamente, S7C es similar a un diagrama de flujo, en el que se puede organi%ar los subprogramas o subrutinas .programadas en L0, 7-0, 1L yKo S8/ que forman el programa de control. S7C es particularmente 4til para operaciones de control secuencial, donde un programa fluye de un punto a otro una ve% que una condicin #a sido satisfec#a .cierta o falsa/. l marco de programacin de S7C contiene tres principales elementos que organi%an el programa de control+ & 1 I 2.3 I 4.1 I 3.2 Q 1.6 5 Pasos .etapas/ 8ransiciones .condiciones/ "cciones l programa ir$ activando cada una de las etapas y desactivando la anterior conforme se vayan cumpliendo cada una de las condiciones. Las acciones se reali%ar$n en funcin de la etapa activa a la que est$n asociadas. Por ejemplo, la etapa 2 activa tras arrancar el programa, al cumplirse la LCondicin 2L, se activar$ la etapa 6, se desactivar$ la 2, y se reali%ar$ la L"ccin 2L. jemplo+ Como se mencion anteriormente, el lenguaje S7C tiene su origen en el est$ndar francs F;"7C8 .GRA0ica de Control de Etapas de Transicin/. l grafcet tambin utili%a etapas, transiciones y acciones, que operan de la misma manera como en S7C. 6