UNIDAD III 3.1 FORMAS DE REPRESENTAR AUTOMATISMO INTRODUCCIÓN Hasta el momento, se ha descrito al autómata como una máquina formada por elementos de hardware capaces de comunicarse físicamente con el proceso para: - Recoger Recoger el conjunto de variables variables (digitales (digitales y analógicas) que definen el estado del mismo (señales de entrada). -Enviar otro conjunto de variables que modifiquen dicho dicho estado estado en un un senti sentido do predeterminado (señales de salida).
Además, por su atributo de programable, el autómata necesita para su completa adaptación al proceso de un operador humano que defina como se quiere la evolución del mismo. mismo. Este Este ope operad rador or interc intercamb ambia ia entonc entonces es inform informac ación ión con el hardwa hardware re de autómata para: -ijar! mediante una secuencia de ordenes! la ordenes! la ley general de mando! de la que se obtiene las variables de salida o de control. -"ntervenir! continuamente o continuamente o no! sobre el proceso para modificar la evolución o! simplemente! para leer su estado.
El primero de los puntos, establecimiento de la secuencia de órdenes, se denomina programación del autómata a la secuencia establecida, programa leer su estado. El primero de los puntos, establecimiento de la secuencia de órdenes, se denomina programación del del autómata a la secuencia secuencia establecida, establecida, programa de de la aplicación. Al segundo segundo punto, punto, intervenc intervención ión del operador operador sobre el proceso, proceso, se le cono conoce ce com!nmente como e"plotación de la aplicación, durante ella se permiten modificar algunos parámetros #tiempo, consignas, módulos de cuenta, etc.$. %ero no modifica el programa.
&a estr estruc uctu tura ra de inte interc rcam ambi bios os m!lt m!ltip iple less proc proces eso' o'au autó tóma mata ta'us 'usua uario rio esta esta sinteti(ada en la figura ).* +omo se observa, las intervenciones sobre la planta se efect!an a travs del autómata, aunque, en algunos casos #por e-emplo, paradas rápidas por motivos de seguridad$, seguridad$, el usuario usuario puede actuar directamente directamente sobre el el proceso.
igura ).* /ntercambios de información en un sistema de autómata 0e los los inte interc rcaambio mbioss mostra strado doss en la figu figura ra,, el prim primeero de ellos llos,, de informaciones físicas entre autómata proceso, está resuelto mediante el empleo de las inte interfa rface cess E12 E12 desc descri rita tass en ante anteri rior ores es capí capítu tulo los, s, mien mientr tras as que que el segu segund ndo, o, la comunicación con el operador para programación1e"plotación, necesita de un soporte software que haga el papel de interprete entre el sistema real los deseos del usuario. Así, puede definirse este software como el 3 conjunto de programas destinados a permitir o facilit facilitar ar la utili#a utili#ación ción del hard$are para la producci producción ón y e%plotac e%plotación ión de las aplicaciones&.
2eg!n esta definición, podemos clasificar estas herramientas de software en dos grandes grupos:
'istemas operativos, residentes en el propio autómata, que se encargan de establecer ' 'istemas
las secuencia secuenciass de intercambio intercambioss de informaci información, ón, interpretar interpretar e-ecutar e-ecutar las órdenes de usuario, vigilar por el correcto funcionamiento del equipo.
'oft$are de edicióndepuración de programas, que permiten ' 'oft$are ten al usuario la
intr introd oduc ucci ción ón del del prog progra rama ma sobr sobree un sopo soport rtee físi físico co #cin #cinta ta,, disc disco, o, memo memoria ria de semiconductor$, la modificación del mismo en la puesta a punto, la obtención de la documentación documentación pertinente, la creación de copias de seguridad. Este software de edición1depuración está instalado #es residente$ o es instalable sobre una terminal especial, la unidad de programación, de funcionamiento autónomo o supeditado al del autómata. &a unidad tiene como funciones principales: '2oportar la edición depuración del programa. '%roporcionar la interfa( física entre el usuario el autómata, para trasferencias de programas supervisión supervisión control del del proceso. &os intercambios de información entre los elementos que aparecen en la figura ).* necesitan, en todos los casos, de una codificación del mensa-e que sea comprensible a las partes que intervienen . Esta compatibilidad, que el autómata lograba en el lado de planta mediante interfaces adecuadas a las se4ales emitidas o recibidas, se consigue en el lado de usuario mediante el empleo de los lengua-es de programación programación e"plotación preestablecidos preestablecidos por el fabricante. 2e define, pues, lenguaje de programa!"n como el conjunto de símbolos y textos text os inteligi inteligible bless por la uni unidad dad de program programaci ación ón
que le sirv sirven en al usu usuario ario para para
codific cod ificar ar sobre un cierto autómat autómata a las leyes de con contro troll des desead eadas, as, mientra mientrass
que
lenguaje de explotación será el conjunto de órdenes órdenes y comandos comandos que el usuario usuario puede enviar, desde la misma unidad o desde una terminal adecuada, para recoger estados o modificar variables del proceso.
+omo se observa en la definición, definición, el lengua-e lengua-e de programación programación se definen entre el usuario la unidad de programación: la compatibilidad entre esta el autómata está asegurado por el fabricante del mismo, mismo, que lo es tambin de la unidad, unidad, o del software que se instal instalaa sobre ella ella si es una máquin máquinaa de aplica aplicació ciónn gener general, al, como como un %+ compatible.
En defi defini niti tiva va,, el usua usuari rioo intr introd oduc ucee su le le de mand mandoo en la unid unidad ad de programación mediante un programa #secuencia de órdenes$ codificado seg!n un lengua-e #con-unto de símbolos$ inteligibles para ambos. &a unidad de programación compila o convierte el programa a los códigos binarios que realmente entiende el autómata los transfiere deposita en la memoria del mismo. Estos Estos cód código igoss binari binarios os son despu despus s interp interpret retado adoss por el sistem sistemaa ope operat rativo ivo residente #firmware$ para movili(ar los recursos físicos #procesador, #procesador, interfaces E12, etc$ necesarios en la e-ecución del programa. &a figura ).5 muestra un resumen de los sistemas recursos involucrados en las transferencias de información que rodea al autómata. +omo +o mo se obse observ rva, a, el prog progra rama ma se obti obtien enee desd desdee un mode modelo lo del del sist sistem ema, a, repres represent entac ación ión simból simbólica ica del del mismo mismo que permit permitee la aplica aplicació ciónn de herram herramien ientas tas matemáticas o gráficas de análisis síntesis, para reducir el traba-o de dise4o asegurar la bondad del control obtenido. &a trascripción del proceso sus especificaciones a un modelo, que en sistemas peque4os puede 6 suele' obviarse #se obtiene el programa escribiendo directamente en el lengua-e de programación$, es imprescindible en sistemas comple-os, donde las rela relaci cion ones es entre entre vari variab able less son son mu mu difí difíci cile less de esta establ blec ecer er !nic !nicam amen ente te con con las las descripciones literales del funcionamiento.
igura ).5 /nterrelación hardware1software en el autómata &a programación del autómata pasa, pues, por los siguientes pasos: *. 0eterminar que debe hacer el sistema de control en que orden #por e-emplo, mediante un diagrama de flu-o, una descripción literal o un grafo 78A+E9$. 5. /dentificar los componentes #se4ales$ de entrada salida al autómata. ). 8epresentar mediante un modelo el sistema de control, indicando todas las funciones que intervienen, las relaciones entre ellas, la secuencia que deben seguir. Esta representación puede ser: 'Algebraica: instrucciones literales. '7ráfica: símbolos gráficos. . Asignar Asignar direccion direcciones es de entrada1sa entrada1salida lida o internas internas a cada uno de los compon componentes entes que aparecen en el modelo. ;. +odificar +odificar la represent representació aciónn anterior anterior en instruccione instruccioness o símbolos inteligi inteligibles bles por la unidad de programación.
<. 9ransferir las instrucciones obtenidas a la memoria del autómata desde la unidad de programación. =. 0epurar el programa obtener una copia de seguridad. &os siguientes apartados desarrollan en e"tensión cada uno de los puntos de esta secuencia.
3.# E$ECUCIÓN DE PRO%RAMAS 3.#.1 CIC&O '(SICO DE E$ECUCIÓN El ciclo básico de traba-o en la elaboración del programa por parte de la +%> es el siguiente: Antes de iniciar el ciclo de e-ecución, el procesador, a travs del bus de datos, consulta el estado ? o * de la se4al de cada una de las entradas las almacena en los registros de la memoria de entradas, esto es, en la (ona de entradas de la memoria de la tabla de datos. Esta situación se mantiene durante todo el ciclo del programa. A continuación, el procesador accede elabora las sucesivas instrucciones del programa, reali(ando las concatenaciones correspondientes de los operandos de estas instrucciones. 2eguidamente asigna el estado de se4al a los registros de las salidas de acuerdo a la concatenación anterior, indicando si dicha salida ha o no de activarse, situándola en la (ona de salida de la tabla de datos. Al final del ciclo, una ve( concluida la elaboración del programa, asigna los estados de las se4ales de entrada a los terminales de entrada los de salida a las salidas, e-ecutando el estado ? o * en estas !ltimas. Esta asignación se mantiene hasta el final del siguiente ciclo, en el que se actuali(an las mismas.
0ada la velocidad con que se reali(a cada ciclo, del orden de ; a *? ms1* @ instrucciones, se puede decir que las salidas se e-ecutan en función de las variables de entrada prácticamente en tiempo real.
igura ).) +iclo básico de traba-o de un %&+
igura ). Estructura de las instrucciones u órdenes de mane-o programación de un Autómata %rogramable. +uando el Autómata se sit!a en ciclo de e-ecución o e-ecución cíclica. &a +%> reali(a, entre otras funciones, el barrido del programa contenido. En la memoria de usuario, desde la casilla, dirección o línea ???? hasta la !ltima posible, seg!n la capacidad de la misma, esto es, efect!a lo que se denomina !lo de Sann!ng .
En función de cómo se efect!a la e-ecución o barrido del programa, se distinguen los siguientes sistemas, modos o estructuras de programación:
•
E-ecución cíclica lineal.
•
E-ecución con salto condicional.
•
E-ecución con salto a subrutinas.
•
E-ecución con programas paralelos.
El principio de e-ecución de cada uno de los sistemas indicados se describe a continuación.
3.#.# E$ECUCIÓN &INEA&
+uando el ciclo de barrido de la memoria de usuario se reali(a línea tras línea sin solución de continuidad, se dice que la programación es lineal, la +%> consulta las instrucciones contenidas en la memoria secuencialmente, una a continuación de la otra, sin alterar este orden, tal como se aprecia en la igura ).;
igura ).; E-ecución cíclica lineal del programa de usuario en un Autómata %rogramable
3.#.3 SA&TO CONDICIONA& +uando el ciclo de e-ecución de un programa tiene la posibilidad, previa condición establecida, de alterar la secuencia línea a línea del mismo dar un salto a otras líneas de programa, de-ando " líneas sin e-ecutar, se dice que se ha reali(ado un salto condicional.
2u funcionamiento es el siguiente: 2i al llegar en el proceso de e-ecución del programa a la instrucción >, tal como queda descrito en la igura ).<, se cumple la condición en ella indicada, se salta a continuando el barrido en B* hasta n. 2i por el contrario al llegar a > no se cumple la condición, el programa se e-ecuta linealmente continuando en >B*. Esta posibilidad que poseen muchos Autómatas permite reducir el tiempo de e-ecución del ciclo es apreciable en aquellos casos en que las instrucciones contenidas en el salto solo son necesarias cuando se dan ciertas condiciones impuestas por el programa.
igura ).< 2alto condicional en la e-ecución cíclica lineal del programa de usuario en un Autómata %rogramable
3.#.) SA&TO A SU'RUTINA C
En algunas ocasiones ocurre que en un programa ha uno o más grupos de
secuencias de instrucciones idnticas que se repiten que habrá que reescribir tantas veces como estas se repitan en dicho programa principal. En estos casos, es mu !til escribir una sola ve( esta secuencia o subrutina. E ir a ella cuando se requiera. &os autómatas de la gama ba-a no suelen incorporar esta posibilidad. En la igura ).= se puede observar gráficamente este tipo de salto. &a posibilidad de distintos tipos de subrutinas de distintos niveles de las mismas tambin quedan refle-ados en la citada figura.
igura ).= 2alto a subrutina en la e-ecución cíclica del programa de usuario en un Autómata %rogramable
3.#.* PRO%RAMAS PARA&E&OS En este sistema, utili(ado por algunos fabricantes denominado de programas paralelos, el procesamiento se reali(a paralelamente de forma asíncrona. En aquellos casos en que con un !nico Autómata se quieren controlar varios procesos totalmente independientes, este sistema es mu !til, aunque tambin se utili(a controlando funciones de un proceso !nico. En este tipo de e-ecución es posible el uso de subrutinas en cada programa paralelo. &a e-ecución de este tipo de programas se reali(a de la siguiente forma: +ada uno de los tramos en línea gruesa de la igura ).D contiene solo algunas líneas de programa, de tal forma que la secuencia consiste en el procesamiento de, por e-emplo, die( líneas del programa ?, o lo que es lo mismo, una peque4a parte de un programaF a continuación el barrido salta al programa * para proceso, etc. +uando ha barrido todos los programas paralelos, incluso las subrutinas, si se encuentran adscritas a esas líneas, vuelve al programa ? para repetir el ciclo en el siguiente grupo de die( líneas. %ara que la secuencia deseada en el barrido de programas se realice, ha de indicarse mediante la elaboración de un programa de asignación, tal como se indica en la igura ).D &os autómatas de la gama ba-a no suelen incorporar esta posibilidad.
igura ).D E-ecución de programas paralelos de usuario en un Autómata %rogramable
3.#.+ SISTEMAS O &EN%UA$ES DE PRO%RAMACIÓN arios son los lengua-es o sistemas de programación posibles en los Autómatas %rogramables, aunque su utili(ación no se puede dar en todos los AutómatasF es por esto que cada fabricante indica en las características generales de su equipo el lengua-e o los lengua-es con los que puede operar. En general, se podría decir que los lengua-es de programación más usuales son aquellos que transfieren directamente el esquema de contactos las ecuaciones lógicas o los logigramas, pero estos no son los !nicos. A continuación se muestra una relación de los lengua-es mtodos gráficos más utili(ados: Gemónico, tambin conocido como lista de instrucciones, boolena, abreviaturas nemotecnicas, AI&.
G0iagrama de contactos #&adder diagram$, plano de contactos, esquema de contactos, @J%. G%lano de funciones, o bloques funcionales, logigramas, >%. G7rafcet, o diagrama funcional, diagrama de etapas o fases. GJrganigrama, u ordinograma, diagrama de flu-o. E"cepto el nemónico, los demás tienen como base su representación gráfica, pero todos ellos deben ir acompa4ados del correspondiente cuadro o lista de programación, esto es, la relación de líneas de programa que configuran el mismo. %ara me-or entender estos lengua-es, a continuación se reali(a una e"plicación de ellos. En el caso de los tres primeros, por otra parte los más utili(ados, se ha puesto un e-emplo.
3.3 DESCRIPCIONES &ITERA&ES &a descripción del proceso su control puede hacerse con la enumeración literal de las acciones a desarrollar por el mismo, e"puestas secuencialmente con indicación de las condiciones de habilitación o validación en cada caso. &a venta-a de estas descripciones, que es a la ve( su principal inconveniente, es la ausencia de rigor en la e"posición: cualquier persona, a un poco calificada desde el punto de vista de la automática, es capa( de e"plicar lo que debe hacer un proceso que cono(ca. Esta descripción, si bien posiblemente estará libre de errores, adolecerá casi con seguridad de falta de especificaciones en los procesos, en las variables o en las relaciones entre ellos. &a figura ).K muestra un e-emplo de descripción literal de un proceso de mecani(ado, donde se hacen patentes las limitaciones descritas. En efecto, observando la figura la descripción podrían plantearse algunas preguntas:
*. LMue ocurre si la presión detectada por el manómetro no es la prescritaN 5. L+uando debe empe(ar a girar el taladro, antes, durante o despus de la ba-ada de la cabe(aN ). L+uando debe detenerse el taladro, al llegar a tope, durante la subida o despus de haber subido el cabe(alN . L+omo se aflo-a la pie(a, por retroceso del cilindro A, por e"tracción manual, o por movimiento del soporteN
igura ).K 0escripción literal de un proceso
%arece que con una descripción como la dada, que en principio resultaba suficientemente clara, el dise4ador necesita de una serie de preguntas adicionales antes de empe(ar a traba-ar en el control. &a conclusión que se obtiene es que la descripción literal o se hace e"haustiva, con lo cual es de difícil comprensión en su con-unto, o no es totalmente unívoca con el proceso que se quiere controlar. Afortunadamente e"isten otras formas de representación, de sinta"is más definida, que permiten descripciones más concisas claras de la tarea de control.
3.) FUNCIONES A&%E'RAICAS &a función
algebraica de cada salida o función de mando puede obtenerse
directamente a partir de las especificaciones del cliente, con las limitaciones discutidas en el apartado anterior, o bien derivarse de ellas aplicando mtodos de síntesis basados en el algebra de Ooole, ente matemático que regula las relaciones entre se4ales binarias todo'nada. Esta representación puede ser tan comple-a como sea necesario, siempre cuando se respeten las reglas del algebra. %or e-emplo, la alarma 2 debe activarse cuando el contacto + este cerrado, los contactos A O en estados opuestos, seg!n convenio: 'Abierto: ? '+errado: * &a función booleana será: 2P #A OBAO$ Q + Aunque la representación booleana está restringida a las variables que adoptan !nicamente dos estado #por convenio, ? *$, puede me-orarse definiendo otras operaciones #aritmticas, comparación$ que permitan las relaciones entre variables digitales de varios bits: el modelo de-aría de ser booleano, aunque continua siendo algebraico. %ese a que cualquier sistema, combinacional o secuencial, puede ser representado por un modelo algebraico de funciones, la particular comple-idad que presenta en ellos el análisis síntesis de sistemas secuenciales limita en la practica el empleo de ecuaciones a la representación de combinaciones entre variables, de resultado independiente al instante de tiempo considerado #por e-emplo, condiciones de alarma, operaciones aritmticas con variables analógicas, etc.$.
3.* ES,UEMAS DE RE&-S El esquema de rels es la representación gráfica de la tarea de automati(ación mediante símbolos de contactos abierto'cerrado. &a función de control obtenida dependerá de las cone"iones entre los distintos contactos de los rels que intervienen #figura ).*?$.
igura ).*? Esquema elctrico de rels. Este modelo gráfico, de origen en las tecnologías electromecánicas de e-ecución de sistemas de mando, presenta deficiencias en cuanto a la representación de funciones secuenciales comple-as, como son los secuenciadores, registros de memoria, etc., sobre todo, en la manipulación de se4ales digitales de varios bits #por e-emplo, obtenidas de una conversión A10$. 2in embargo, siendo mu familiar a los electricistas, se utili(an frecuentemente para la representación de sistemas sencillos, en los que no intervienen mas que se4ales lógicas binarias todo'nada, o algunos bloques secuenciales predefinidos, como tempori(adores contadores.
3.+ DIA%RAMAS &Ó%ICOS
&a representación del sistemas de control por diagramas lógicos se basa en el empleo de símbolos normali(ados #puertas$ que representan funciones lógicas directas del algebra de Ooole #A0, J8, etc$, o sistemas lógicos más comple-os #biestables, registros, contadores, etc$. &a figura ).** muestra el modelo de diagrama lógico del sistema de alarma descrito en el e-emplo anterior. El con-unto de todos los símbolos con sus interrelaciones forman el logigrama del sistema de control, representación compacta e independiente de la tecnología de construcción del mismo #elctrica, neumática, etc.$. 0esgraciadamente, el logigrama es una herramienta característica del tcnico de software o del ingeniero de dise4o, mu ale-ada de muchos de los usuarios finales del autómata, por lo que su empleo queda en la práctica, casi circunscrito a la representación del sistema en alto nivel, a efectos de especificaciones documentación.
3.+.1 ORDINO%RAMAS &os tres modelos descritos, algebraico, de rels de puertas lógicas, permiten, con maor o menor claridad, tanto la representación de sistemas combinacionales como secuenciales, como lo son, de hecho, la maor parte de los sistemas industriales #secuencias de actividades o combinaciones de operaciones consecutivas en el tiempo$.
2in embargo, esta evolución temporal no es de apreciación inmediata sobre aquellos, lo que obliga a utili(ar alg!n modelo, preferiblemente gráfico, que refle-e las secuencias de evolución toma de decisiones del proceso.
>n primer intento de representación, de cierta utilidad en fases previas del dise4o, puede ser el diagrama de flu-o u ordinograma del proceso.
igura ).** 8epresentación por diagrama lógico. E"tensamente utili(ado por los dise4adores de software para ordenador, el modelo emplea una simbología de bloques, convenientemente entrela(ados, que representan la evolución temporal o condicional de las acciones a e-ecutar. En la figura ).*5 aparece un e-emplo de representación por diagrama de flu-o, en el que se pone de manifiesto la noble(a del modelo.
igura ).*5 Jrdinograma de un posicionamiento hidráulico manual
+iertamente claro para describir el funcionamiento general, puede no serlo tanto cuando se intenten representar las variables se4ales que intervienen las relaciones entre ellas, a no ser que el modelo se complete con e"presiones algebraicas. Esta solución, sin embargo, afecta entonces a la claridad de la representación gráfica inicial.
3. REPRESENTACION %RAFCET >na evolución del diagrama de flu-os, que combina las venta-as de la representación secuencial grafica con la integración de los modelos pree"istentes, es la representación por diagramas 78A+E9. Ahora normali(ado seg!n norma internacional E/+ DD #+omisión /nternacional Electrotcnica$, el 78A+E9 se reconoce como el modelo me-or adaptado a la parte secuencial de los automatismos.
%ara ello, el 78A+E9 representa directamente la sucesión de las 3etapasR dentro de un ciclo de producción, separadas por 3transicionesR o condiciones de salto entre unas otras #figura ).*)$ El ciclo se desarrolla etapa por etapa desde la que se define como 3etapa inicialR que se activa al comien(o del funcionamiento. ientras una etapa esta activa, el control: 'E-ecuta la función de mando correspondiente a la etapa. '+onsulta las condiciones de transición para el salto a la siguiente. 9anto la e-ecución de la función de mando como la consulta de las condiciones de transición pueden representarse por cualquiera de los modelos anteriores, resultando una representación final del automatismo en la que la secuencia gráfica muestra la evolución temporal, las etapas transiciones de las condiciones combinatorias de e-ecución.
igura ).*) Estructura general de una representación 78A+E9.
igura ).* +ombinación de estructuras 78A+E9 con diagramas de contactos. En la práctica es mu frecuente el empleo de esquemas de rels para representar etapas transiciones, resultando un modelo totalmente gráfico del sistema de control #figura ).*$ +omo se vio anteriormente en temas pasados, la posibilidad de programación directa en 78AE+9 de algunos
autómatas de gama alta, permite el empleo de esta
herramienta en todas las fases del dise4o: 'Especificaciones funcionales, o 78A+E9 del pliego de condiciones. 'Especificaciones tecnológicas o 78A+E9 de movimientos. '%rogramación del autómata o 78A+E9 de mando, que resulta !til tambin en la fase de e"plotación.
&a figura ).*; muestra un e-emplo de aplicación en estas tres distintas fases, a partir de las especificaciones literales del comportamiento de un automatismo.
Esta estandari(ación del modelo, una de sus principales venta-as, facilita el flu-o de información entre todos los niveles de la empresa, desde la oficina tcnica hasta los equipos de mantenimiento.
igura ).*; El 78A+E9 en diferentes fases de la automati(ación.
3./ &EN%UA$ES DE PRO%RAMACIÓN 2e ha descrito a el programa como el conjunto de instrucciones, órdenes y símbolos reconocibles por el autómata a través de su unidad de programación, que le permiten ejecutar la secuencia de control deseada.
Al con-unto total de estas instrucciones, órdenes símbolos que están disponibles para escribir un programa se le denomina lengua-e de programación del autómata.
2ería deseable que la misma simbología utili(ada para representar el sistema de control pudiera emplearse para programar el autómata: el ahorro de tiempo documentación la seguridad en el programa obtenido serian considerables. 2in embargo, esta solución no es siempre posible: el lengua-e depende del autómata empleado de su fabricante, que decide el tipo de unidad de programación #literal, gráfica$ el interprete #firmware$ que utili(a su máquina, mientras que el modelo de representación depende del usuario, que lo elige seg!n sus necesidades o conocimientos. %ese a ello, los lengua-es de programación de autómatas intentan ser lo más parecido posibles a los modelos de representación usuales, a fin de facilitar la transcripción entre ambos. Así los lengua-es pueden ser:
•
*+E,R"'
&engua-es bolanos. &ista de instrucciones. &engua-es de alto nivel.
•
+R/"'
0iagrama de contactos. 0iagrama de funciones1bloques. /nterprete 78A+E9.
igura ). *<
0ireccionamiento E12 con interfaces digitales
2i la representación elegida para el sistema de control es comprensible por la unidad de programación, no será necesario reali(ar ninguna codificación, al aceptar sta los símbolos utili(ados. En caso contrario, habrá que traducirla a un programa, seg!n uno de los anteriores lengua-es. El programa obtenido está formado por un con-unto de instrucciones, sentencias, bloques funcionales grafismos que indican las operaciones a reali(ar sucesivamente por el %&+. &a instrucción representa la tarea más elemental de un programa: leer una entrada, reali(ar una operación A0, activar un salida, etc.
&a sentencia representa el mínimo con-unto de instrucciones que definen una tarea completa: encontrar el valor de una función lógica, combinación de varias variables, consultar un con-unto de condiciones , si son ciertas, activar un tempori(ador. El bloque funcional es el con-unto de instrucciones o sentencias que reali(an una tarea o función comple-a: contadores, registros de despla(amiento, trasferencias de información, etc. 9abla ).* E-emplo de asignación de direcciones.
9odos estos elementos están relacionados entre si mediante los símbolos o grafismos #algebraicos o gráficos$ definidos en el lengua-e empleado. +ualquiera que sea este, las instrucciones del programa tienen la siguiente estructura: +ampo de operación
Jperando #s$
Campo de opera!"n
0,u2 a4 5ue aer67
0ipo de operación: •
&eer una entrada,
•
ormar una combinación J8,
•
Asignar un resultado, etc.
Campo de operando
0Con 5ue a4 5ue aerlo67
1ariable que interviene: •
Entrada numero ;,
•
8el interno numero ??
•
%alabra digital I8?, etc. En ocasiones, el campo de operando no contiene el n!mero de variable, sino la
dirección de un registro #normalmente, una palabra de cuatro dígitos$ donde esta contenida la dirección de la variable #direccionamiento indirecto$.
igura ).*= Estructura de una instrucción &a figura ).*= muestra la estructura de una instrucción típica en diferentes lengua-es de programación. En general, las instrucciones pueden ser de distintos tipos: lógicas, aritmticas, de transferencia, etc., que adoptan diferentes formas de representación seg!n el lengua-e empleado. En algunos autómatas, el programa necesita para su correcta e-ecución de una tabla de parámetros, introducida tambin desde la unidad de programación, que define el entorno de funcionamiento de la máquina: '>so o no de entradas de reset o stop, '+apacidad de la memoria de usuario empleada, '+one"ión o no en red local. 'ariables internas a mantener contra prdidas de tensión, etc. &a tabla de parámetros es específica para cada programa es grabada con el mismo cuando se transfiere al autómata.
3./.1 &EN%UA$ES 'OO&EANOS 8 &ISTA DE INSTRUCCIONES
El lengua-e booleano está constituido por un con-unto de instrucciones que son transcripción literal de las funciones del álgebra de Ooole, a saber: 'J8 función suma lógica. 'A0 función producto lógico. 'J9 función negación. +omplementadas con instrucciones de inicio de sentencia asignación de resultados:
'&J0 leer variable inicial. 'J>9 enviar resultado a salida. de operaciones de bloques #parntesis$: 'J8 &J0 coloca bloque en paralelo. 'A0 &J0 coloca bloque en serie.
En operación normal, el autómata necesita algunas otras instrucciones como ampliación del lengua-e booleano, que le permitan mane-ar elementos de uso com!n en automati(ación. 2on estas las instrucciones secuenciales predefinidas:
'9/ definir un tempori(ador '+9 definir un contador '2E9 activar una variable binaria #unidad de memoria$ '829 desactivar una variable binaria.
Además, la maor parte de autómatas incluen e"tensiones al lengua-e booleano básico descrito, que permiten la manipulación de datos variables digitales la gestión del programa. Estas e"tensiones, que se tratan más adelante como bloques funcionales, pueden clasificarse en:
G /nstrucciones aritmticas 'A00 sumar. '2OO restar. '>& multiplicar. '0/ dividir. G/nstrucciones de manipulación de datos: '+% comparar variables digitales. '28 rotaciones de bits #variables binarias$. '2H/9 rotaciones de palabras #variables digitales$. 'J transferencias de datos. 'O+01O/ conversiones de códigos numricos, etc. G/nstrucciones de gestión de programa: 'E0 fin de programa. 'S% salto de bloque de programa. '+2 habilitación de bloque de programa. 'S%2>O salto a subrutina, etc. &as instrucciones aritmticas de manipulación de datos admiten m!ltiples variaciones: 'Aritmtica binaria o O+0. '/nstrucciones lógicas sobre palabras #D o *< bits$. '9ransferencias entre bloques de palabras. '+odificación a salida en = segmentos. '/nstrucciones de direccionamiento indirecto. '/nstrucciones trigonomtricas, etc.
Al lengua-e resultante, que no puede llamarse a booleano despus de ampliarlo con estas e"tensiones, se le denomina de lista de instrucciones #/nstruction &ist$. Algunos fabricantes amplían las capacidades de programación de sus autómatas de gama ba-a con estas instrucciones avan(adas, que serían de más lógica aplicación en autómatas de prestaciones superiores. El tiempo de e-ecución resultante #tiempo de scan$ sobre +%> básicas desaconse-a su empleo en la maoría de ocasiones. 2in embargo, disponible a el firmware capa( de interpretarlas, desarrollado para otros autómatas de la familia, cuesta bien poco introducirlo en las versiones básicas aunque no sea más que por motivos comerciales de competencia. &a tabla ).5 siguiente muestra un listado de las instrucciones básicas disponibles sobre un autómata de gama media, el A'5S -unior de /(umi.
9abla ).5 /nstrucciones básicas del autómata /(umi A'5S. /298>++/T &J0 A0 J8 J>9 +2 2J9 9/ +9 28 E0 2E9 829 S% SE0 J9 J8 &J0 A0 &J0
0E2+8/%+/J &ee estado de variable binaria, E12 o interna unción lógica A0 unción lógica J8 Envia resultado sentencia a variable binaria unción rel maestro de control 0etecta flanco de subida de una se4al 0efine tempori(ador con retardo a cone"ión 0efine contador incremental de sucesos 0efine registro despla(amiento sobre n bits /ndica final de programa i-a una variable a estado UU*VV i-a una variable a estadoUU?VV /nicio de salto de programa inal de salto de programa iega o complementa una variable lógica +onecta dos bloques de programa en paralelo +onecta dos bloques de programa en serie.
Estas instrucciones se complementan con otras de computación, que pueden ser:
GOasicas: 'Jperandos predefinidos 'Aritmtica O+0 GAvan(adas: 'Jperandos cualesquiera Aritmtica de *< bits '0ireccionamiento indirecto. E-emplos de instrucciones de computación básica sobre este automata son: 'S+9H +onversión O+0 a binario. 'S+90 +onversión binario a O+0 'SA0+ 2uma del registro 08? #acumulador$ con un operando 'S2OO 2ubstracción al registro 08? 'S+% +omparación del registro 08? con un operando 'SJ&0 9ransferencia de operando a 08? 'SJ29 9ransferencia de 08? a un operando 'S/+ /ncrementar operando, etc. 2 en computación avan#ada:
'9A00) 2uma de cuatro dígitos entre operandos cualesquiera 'I+% +omparación de un operando con un intervalo '%0+0 2alida de datos A2+// a impresora 'I*5* 9rasferencia del operando #dato$, cua dirección #origen$ esta contenida en un registro al operando cua dirección #destino$ esta contenida en otro registro, etc.
3./.# DIA%RAMAS DE CONTACTOS
El lengua-e de contactos e"presa las relaciones ente se4ales binarias como una sucesión de contactos en serie en paralelo, seg!n las equivalencias que se muestran en la tabla ).) 9abla ).) Equivalencias instrucciones'contactos
Adoptando por muchos fabricantes de autómatas #norteamericanos -aponeses, principalmente$ como lengua-e base de programación, el d!agrama de on9a9o: #&adder 0iagram$ puede ser introducido directamente en la unidad de programación mediante un editor de símbolos gráficos. ormalmente este editor inclue restricciones en cuanto al n!mero de contactos o bobinas a representar en cada línea, la ubicación de los mismos, la forma de las cone"iones, etc. 2iendo los contactos de rels componentes de dos estados, asignados a los valores lógicos: ?: contacto abierto *: contacto cerrado &as equivalencias de la tabla ).) permiten definir sobre ellos un álgebra de Ooole, denominada usualmente álgebra de contactos.
Esto significa que cualquier función lógica puede ser transcrita directa e inmediatamente a diagrama de contactos viceversa, transcripciones de utilidad cuando se trata de visuali(ar gráficamente un programa escrito en lengua-e booleano. 2in embargo, el diagrama de contactos, de origen norteamericano, no nació como una posible herramienta de visuali(ación de programas a escritos en lista de instrucciones, sino como transcripción directa de los esquemas elctricos de rels #circuitos de mando$ de uso com!n en la automati(ación previa a la aparición de los sistemas programables. %or esta ra(ón, los diagramas de contactos incluen desde sus orígenes bloques funcionales que a aparecían como elementos propios en aquellos esquemas, los tempori(adores los contadores. >tili(ando estos bloques, sobre los cuales pueden definirse la base de tiempos el tiempo final en el caso de tempori(adores el módulo de conta-e condiciones de paro reset en el caso de contadores, el lengua-e de contactos permite programar directamente cualquier esquema elctrico de rels. 2in embargo, al igual que ocurría en los lengua-es booleanos, tambin en este se desarrollan bloques funcionales comple-os que permiten la manipulación de datos las operaciones con variables digitales de varios bits. &a presencia de estos bloques, de e-ecución dependiente de una o más condiciones binarias, multiplica la potencia de programación sin de-ar de mantener las venta-as de la representación gráfica del programa. Así, pueden programarse situaciones de automati(ación comple-a que involucren variables digitales, registros, transferencias, comparaciones, se4ales analógicas etc. %or supuesto, al igual que ocurre con las e"tensiones al lengua-e booleano, no todos los autómatas, aun del mismo fabricante, pueden mane-ar todas las posibilidades de programación con contactos: solo las gama más altas acceden a la totalidad de e"tensiones del lengua-e, quedando las restantes limitadas al empleo de partes más o menos significativas de l.
En la figura ).*D aparecen algunos elementos gráficos utili(ados en un cierto lengua-e de contactos, el 2smac 2erie + de J8J, clasificados en: '+ontactos 'Oobinas 'Oloques funcionales 'Oloques operativos. &os contactos comprueban el estado de las variables asociadas: puntos de entrada1salida, rels internos o tempori(adores contadores. %ueden ser de dos tipos: -Contactos de apertura: indican variable normalmente #en reposo$ desactivada, -Contactos de cierre: indican variable normalmente #en reposo$ activada.
&as bobinas envían el resultado de la operación lógica e-ecutada a un rel interno o de salida. %ueden ser de varios tipos: '0irecta: asigna el resultado a una variable binaria. '/nversa, o negada: asigna el completo del resultado a una variable binaria. '%uesta a 3*R: pone a 3*R con memoria una salida o rel interno #set$. '0e salto: indican un salto en el programa que ignora las sentencias saltadas. W algunas otras especiales son las siguientes:
'F!n programa: indica el final de sentencias a e-ecutar, 'De d!agn":9!o : almacena el n!mero 3nR de error definido provoca #A&2$ o no #A&$ la parada del automata.
;Pa:o a pa:o : permiten la e-ecución de programas subdivididos en 3pasosR o etapas, ;De $ o en el de ba-ada #0/>$. &os bloques funcionales reali(an funciones secuenciales típicas de automatismos:
'9empori(adores: retardos a la cone"ión medidos en dcimas de segundo. '+ontadores: de tipo decreciente o reversible. '8egistros de despla(amiento: rotaciones de bits entre los canales inicial final. &as preselecciones de tempori(adores contadores pueden ser constantes del programa o valores O+0 # dígitos$ leídos en un canal de entradas #datos e"teriores$. &os bloques operativos permiten reali(ar tratamientos numricos sobre variables digitales #palabras$: 'Jperaciones aritmtico1lógicas. '+omparaciones. '+onversiones de código. '9ransferencias, etc. E-emplos de bloques operativos pueden ser: 'I29: despla(amientos entre canales inicial final. '+%: comparaciones entre variables o constantes de dígitos. El resultado de la comparación #igual, maor o menor$ está asociado a un rel interno especial. 'O+0: conversión de datos binarios de *< bits en dígitos O+0. '2O2: llamada a una subrutina del programa. 'E22A7E: lectura de los datos A2+// contenidos sobre D canales #5 caracteres, *< bits por canal$, visuali(ación sobre la unidad de programación o consola de e"plotación.
igura ).*D
&engua-e de contactos de J8J 2smac 2erie 3+R
&a figura ).*K muestra un e-emplo de programación con diagrama de contactos a partir de un esquema elctrico de arrancador estrella'tríangulo #obsrvese la representación del contacto de paro, cerrado en reposo$. %ara mostrar la potencia de los
lengua-es e"tendidos, se a4ade una condición de alarma de valor mínimo de velocidad en el e-e, medida con un tacómetro #;??? r.p.m., *? cc, *? bits$ conectada en el canal ), con visuali(ación de un mensa-e de error sobre la consola conectada al autómata.
igura ).*K E-emplo de programación con diagrama de contactos. En muchas ocasiones, sobre todo traba-ando con unidades de programación basadas en %+, el fabricante del software a ha previsto que el usuario programe alternativamente en lista de instrucciones o diagrama de contactos:
E"iste una correspondencia directa entre ambas formas de presentación, puede pasarse de una a otra con órdenes sencillas de compilacióndecompilación del programa. %or e-emplo, el listado de instrucciones correspondiente al programa anterior sería: &0
archa
&0
@&
A0
%aro
J8'&0 J>9
@&
&0
@&
A0'J9
@9
A0'J9
9/5
J>9
@E
&0
@&
A0'J9
@E
A0
9/5
9/
* X???;
&0
9/*
J>9
@9
Y &0
@&
9/
5 X?*??
&0
@&
+% #5?$
Z ??) X?5<<
&0
@&
A0
5;;?=
J>9
???
&0
???
27 #<$
Z 0??
E0.
ótese como en el listado anterior falta la asignación de direcciones a las variables del programa.
3./.3 P&ANO DE FUNCIONES El diagrama lógico o plano de funciones es la representación de las tareas de automati(ación utili(ando los símbolos contenidos en las normas 0/ ?=?? 0/ ?=*K, cua forma general se presenta en la figura ).5?. Algunos de estos símbolos normali(ados, correspondientes a las funciones mas frecuentes, se dan en la figura ).5* &a programación por diagramas lógicos, que deriva de la representación por logigrama habitual entre los tcnicos en electrónica digital, inclue como bloques normali(ados
igura ).5?
2ímbolo lógico normali(ado.
Algunas funciones secuenciales típicas en automati(ación, como tempori(adores contadores, e incluso algunos bloques combinacionales de tratamientos numricos, como ultiple"ores, demultiple"ores, sumadores, multiplicadores, etc., pero no alcan(a la multitud de funciones que han ido a4adindose a las listas de instrucciones diagramas de contactos, como e"tensiones a estos lengua-es. %or esta ra(ón, en sentido estricto, la programación por diagramas lógicos queda reservada a aplicaciones en las que solo intervengan variables booleanas todo' nada algunos bloques secuenciales elementales: tempori(adores, contadores, registros de despla(amiento, etc. Esta circunstancia, unida al desconocimiento del diagrama lógico por parte del usuario habitual del automata, e"plica la ba-a difusión de estos legua-es de programación. &a figura ).55 muestra un e-emplo de programación con plano de funciones en diagrama de contactos, seg!n los lengua-es gráficos 29E% ; de 2/EE2. 0ada la ine"istencia, antes comentada, de bloques normali(ados para todas las posibles operaciones del autómata, los fabricantes han optado por omitir el uso, en sus consolas gráficas, de los bloques de e"tensión definidos en el diagrama de contactos, a!n traba-ando ba-o el entorno de diagrama lógico: el lengua-e obtenido resulta un hibrido que recoge toda la potencia de programación del autómata, en el que cada usuario puede elegir la forma de representación que prefiera para las funciones básicas #A0, J8, J9, 9/, etc.$
igura ).5* Algunos símbolos lógicos
igura ).55 &engua-es gráficos 29E% ; de 2/EE2
igura ).5) %rogramación combinada funciones1contactos
Algunas unidades de programación basadas en ordenador #específico de fabricante o %+ de uso general$ permiten al usuario definir sus propios bloques lógicos
a partir de los pree"istentes, creando nuevas funciones #macrobloques$ que pueden ser incorporadas al lengua-e. &a figura ).5) muestra un e-emplo de programa escrito con estos lengua-es híbridos, desarrollando con un software específico de programación de autómatas que corre sobre ordenador personal.
3./.) &EN%UA$ES DE A&TO NI=E& +on +%>s cada ve( más rápidas, más potentes de maor capacidad de traba-o, los autómatas de gamas altas invaden aplicaciones hasta hace bien poco reservadas a los miniordenadores industriales. %ara estas aplicaciones, los lengua-es tradicionales en lista de instrucciones #/&$ o diagrama de contactos #&0$ resultan a insuficientes, aun me-orados con las e"pansiones comentadas en apartados anteriores. %or esta ra(ón, los fabricantes han desarrollado lengua-es de programación pró"imos a la informática tradicional, con sentencias literales que equivalen a secuencias completas de programación: son los lengua-es de alto nivel.
En ellos, las instrucciones son líneas de te"to que utili(an palabras o símbolos reservados #2E9, A0, J8, etc.$, las operaciones se definen por los símbolos matemáticos habituales #B,[,U, etc.$ se dispone de funciones trigonomtricas, logarítmicas de manipulación de variables comple-as #+J2, %/, 8EA&, /7,Y$. 2in embargo, lo que distingue realmente estos lengua-es avan(ados de las listas de instrucciones ampliadas son las tres características siguientes:
'2on lengua-es estructurados, donde es posible la programación por bloques o 3procedimientosR, con definición de variables locales o globales. '/ncluen estructuras de cálculo repetitivo condicional #figura )..5$, tales como: 'J8Y9J '8E%EA9Y>9/& \ 'IH/&E \Y '/Y9HEYE&2E '0isponen de instrucciones de manipulación de cadenas de caracteres, mu !tiles en aplicaciones de gestión, estadística, etc. 0ada su facilidad de mane-o su difusión a todos los niveles, el OA2/+, convenientemente adaptado a las aplicaciones del autómata, se configura como el lengua-e de alto nivel más e"tendido. 2in embargo, tambin se pueden encontrar intrpretes o compiladores de +, %A2+A&, J898A, etc., lo que permite resolver tareas de cálculo científico en alta resolución, clasificaciones de datos, estadísticas, etc., con total facilidad, con acceso además a módulos subrutinas específicos a escritos en estos lengua-es de uso general en aplicaciones informáticas.
igura ).5 Estructuras de programación en alto nivel. 0ado lo específico de su aplicación, un programa escrito en alto nivel necesita para su edición de una unidad de programación avan(ada, o de un software de desarrollo de programas que corra sobre %+. Adicionalmente, es frecuente que el empleo de estos lengua-es estructurados obligue además a utili(ar no solo una unidad de programación tipo %+, sino incluso una +%> especial en el autómata #coprocesador$, capa( de interpretar e-ecutar las nuevas instrucciones. En cualquier caso, los lengua-es de alto nivel son posibilidades adicionales al alcance del programador, que puede, si así lo desea, utili(ar solo las formas básicas de contactos1bloques o lista de instrucciones para escribir sus aplicaciones: en otras palabras, los lengua-es avan(ados nunca constituen el lengua-e básico de un automata
o familia de autómatas, papel que queda reservado a la lista de instrucciones o al diagrama de contactos. &a tabla ). muestra las instrucciones del interprete OA2/+ disponible sobre los autómatas esto %+ ?;, +lasificadas en: 'Jperaciones generales: comandos de actuación OA2/+ sobre bits, palabras, o te"tos directos #2E9, &E9,..$ o condicionados #/, J8,Y$ 'Jperaciones de conversión: +ambios de código, obtención de módulos, etc. 'Jperaciones matemáticas: Jperaciones logarítmicas, trigonomtricas, aritmticas, etc. 'Jperaciones de control de programa: saltos subrutinas. +omo puede observarse en la tabla, los comando que aparecen, son en su maoría los de uso normal del OA2/+. &a figura ).5; muestra un e-emplo de programación con este lengua-e. +omo se observa, una venta-a adicional del programa en alto nivel es que a l se puede transcribir, casi literalmente, el diagrama de flu-os que constitue la primera apro"imación a la representación del sistema de control. Esta venta-a, que evita pasar a alg!n otro modelo o transcribir este inicial a otro lengua-e, supone sin duda un importante ahorro de tiempo en la puesta en marcha de la aplicación. 0ebe indicarse que algunas de las sentencias literales de alto nivel están disponibles en lengua-e de contactos como bloques de función e"tendidos viceversa: de esta forma, el fabricante asegura la compatibilidad entre ambos lengua-es, aprovecha me-or el software maquina #firmware$ desarrollado #figura ).5<$.
9abla ). /nstrucciones OA2/+ del automata esto %+ ?;
7EE8A&E2 O/9 0A9A 0/ E0 /&E 7E9 /% &E9 ] J0E J%E %EE@ %8/9 8EA0 8EA0& 8E2 %2 8E29J8E 2%+ 29J% 9HE 9J >%0 %8/9 2E9
+&J2E 0E E&2E E0E J8 / /%>9 &E E\9 J>9 %J@E %98 8EA0] 8E 8E2 8> 29E% 9AO 9/E8 >&J+@ >2/7 8E2 2IA%
/298>++/JE2 +JE82/J A9EA9/+A2 AO2 OW9E +H8] O/0 0EO /9 80 298] A& IJ80
+J2 %/ 2/ 27 2M8 #,$ B ' 1 U V UP PV UV P
0E +J98J& +A&& J0 +A&& > +A&& A22 7J2>O J 7J2>O J 7J9J 8E9>8 >28
igura ).5; %rogramación en alto nivel.
.
igura ).5< +ompatibilidad entre los lengua-es de contactos de alto nivel #e-emplo telemecanique$
RESUMEN %rogramar un autómata consiste en introducirle una secuencia de órdenes #instrucciones$ obtenidas desde un modelo de control, seg!n una codificación determinada #lengua-e$ que por su forma puede ser:
'&iteral, o te"tos '7ráfica, o de símbolos. +ada instrucción del programa consta de dos partes: el código de operación, que define que se debe hacer, el código o códigos de los operandos #generalmente identificados por su dirección$, que indican las constantes o variables con las que se deben operar. &os lengua-es literales están formados por secuencias de te"tos agrupados en instrucciones u ordenes elementales del programa. 2eg!n la comple-idad del lengua-e, están disponibles instrucciones desde sencillas funciones booleanas #A0, J8, etc.$. Hasta estructuras comple-as de programación en alto nivel #J8..E\9, IH/&E, etc.$, pasando por instrucciones de acceso a bloques secuenciales #9/, +9, etc.$ de manipulación de te"tos valores numricos #A00, J, >&, etc.$ &os lengua-es gráficos, con origen en los esquemas elctricos de rels en los diagramas de la electrónica digital, utili(an símbolos de contactos1bobinas para representar las instrucciones
básicas, símbolos de bloques lógicos para las
e"tensiones al lengua-e, que e"tienden su potencia hasta la de los lengua-es literales de alto nivel. 0e esta forma permiten estructuras de programación tan comple-as como aquellos, sin perder por ello la facilidad de comprensión visión de con-unto que ofrece siempre la representación gráfica. inguno de los lengua-es descritos resulta, en principio, superior a los demás: depende siempre de la aplicación a que se destina. Así, la automati(ació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 lengua-es básicos para la maoría de autómatas. 0e hecho, es tan frecuente el uso de uno u otro, que muchos fabricantes a prevn en su software de programación sobre %+ la posibilidad de transcodificación entre ellos, con operaciones