Apuntes PLC Unidad 3

download Apuntes PLC Unidad 3

of 54

description

informacion de la unidad tres de programadores logicos programables

Transcript of Apuntes PLC Unidad 3

UNIDAD III

UNIDAD III

3.1 FORMAS DE REPRESENTAR AUTOMATISMO

INTRODUCCIN

Hasta el momento, se ha descrito al autmata como una mquina formada por elementos de hardware capaces de comunicarse fsicamente con el proceso para:

-Recoger el conjunto de variables (digitales y analgicas) que definen el estado del mismo (seales de entrada).

-Enviar otro conjunto de variables que modifiquen dicho estado en un sentido predeterminado (seales de salida).

Adems, por su atributo de programable, el autmata necesita para su completa adaptacin al proceso de un operador humano que defina como se quiere la evolucin del mismo. Este operador intercambia entonces informacin con el hardware de autmata para:

-Fijar, mediante una secuencia de ordenes, la ley general de mando, de la que se obtiene las variables de salida o de control.

-Intervenir, continuamente o no, sobre el proceso para modificar la evolucin o, simplemente, para leer su estado.

El primero de los puntos, establecimiento de la secuencia de rdenes, se denomina programacin del autmata y a la secuencia establecida, programa leer su estado.

El primero de los puntos, establecimiento de la secuencia de rdenes, se denomina programacin del autmata y a la secuencia establecida, programa de la aplicacin.

Al segundo punto, intervencin del operador sobre el proceso, se le conoce comnmente como explotacin de la aplicacin, y durante ella se permiten modificar algunos parmetros (tiempo, consignas, mdulos de cuenta, etc.). Pero no modifica el programa.

La estructura de intercambios mltiples proceso-autmata-usuario esta sintetizada en la figura 3.1 Como se observa, las intervenciones sobre la planta se efectan a travs del autmata, aunque, en algunos casos (por ejemplo, paradas rpidas por motivos de seguridad), el usuario puede actuar directamente sobre el proceso.

Figura 3.1 Intercambios de informacin en un sistema de autmata

De los intercambios mostrados en la figura, el primero de ellos, de informaciones fsicas entre autmata y proceso, est resuelto mediante el empleo de las interfaces E/S descritas en anteriores captulos, mientras que el segundo, la comunicacin con el operador para programacin/explotacin, necesita de un soporte software que haga el papel de interprete entre el sistema real y los deseos del usuario.

As, puede definirse este software como el conjunto de programas destinados a permitir o facilitar la utilizacin del hardware para la produccin y explotacin de las aplicaciones.

Segn esta definicin, podemos clasificar estas herramientas de software en dos grandes grupos:

-Sistemas operativos, residentes en el propio autmata, que se encargan de establecer las secuencias de intercambios de informacin, interpretar y ejecutar las rdenes de usuario, y vigilar por el correcto funcionamiento del equipo.

-Software de edicin/depuracin de programas, que permiten al usuario la introduccin del programa sobre un soporte fsico (cinta, disco, memoria de semiconductor), la modificacin del mismo en la puesta a punto, la obtencin de la documentacin pertinente, y la creacin de copias de seguridad.

Este software de edicin/depuracin est instalado (es residente) o es instalable sobre una terminal especial, la unidad de programacin, de funcionamiento autnomo o supeditado al del autmata.

La unidad tiene como funciones principales:

-Soportar la edicin y depuracin del programa.

-Proporcionar la interfaz fsica entre el usuario y el autmata, para trasferencias de programas y supervisin y control del proceso.

Los intercambios de informacin entre los elementos que aparecen en la figura 3.1 necesitan, en todos los casos, de una codificacin del mensaje que sea comprensible a las partes que intervienen .

Esta compatibilidad, que el autmata lograba en el lado de planta mediante interfaces adecuadas a las seales emitidas o recibidas, se consigue en el lado de usuario mediante el empleo de los lenguajes de programacin y explotacin preestablecidos por el fabricante.

Se define, pues, lenguaje de programacin como el conjunto de smbolos y textos inteligibles por la unidad de programacin que le sirven al usuario para codificar sobre un cierto autmata las leyes de control deseadas, mientras que lenguaje de explotacin ser el conjunto de rdenes y comandos que el usuario puede enviar, desde la misma unidad o desde una terminal adecuada, para recoger estados o modificar variables del proceso.Como se observa en la definicin, el lenguaje de programacin se definen entre el usuario y la unidad de programacin: la compatibilidad entre esta y el autmata est asegurado por el fabricante del mismo, que lo es tambin de la unidad, o del software que se instala sobre ella si es una mquina de aplicacin general, como un PC compatible.

En definitiva, el usuario introduce su ley de mando en la unidad de programacin mediante un programa (secuencia de rdenes) codificado segn un lenguaje (conjunto de smbolos) inteligibles para ambos.

La unidad de programacin compila o convierte el programa a los cdigos binarios que realmente entiende el autmata y los transfiere y deposita en la memoria del mismo.

Estos cdigos binarios son despus interpretados por el sistema operativo residente (firmware) para movilizar los recursos fsicos (procesador, interfaces E/S, etc) necesarios en la ejecucin del programa. La figura 3.2 muestra un resumen de los sistemas y recursos involucrados en las transferencias de informacin que rodea al autmata.

Como se observa, el programa se obtiene desde un modelo del sistema, representacin simblica del mismo que permite la aplicacin de herramientas matemticas o grficas de anlisis y sntesis, para reducir el trabajo de diseo y asegurar la bondad del control obtenido.

La trascripcin del proceso y sus especificaciones a un modelo, que en sistemas pequeos puede y suele- obviarse (se obtiene el programa escribiendo directamente en el lenguaje de programacin), es imprescindible en sistemas complejos, donde las relaciones entre variables son muy difciles de establecer nicamente con las descripciones literales del funcionamiento.

Figura 3.2 Interrelacin hardware/software en el autmata

La programacin del autmata pasa, pues, por los siguientes pasos:

1. Determinar que debe hacer el sistema de control y en que orden (por ejemplo, mediante un diagrama de flujo, una descripcin literal o un grafo GRAFCET).

2. Identificar los componentes (seales) de entrada y salida al autmata.

3. Representar mediante un modelo el sistema de control, indicando todas las funciones que intervienen, las relaciones entre ellas, y la secuencia que deben seguir.

Esta representacin puede ser:

-Algebraica: instrucciones literales.

-Grfica: smbolos grficos.

4.Asignar direcciones de entrada/salida o internas a cada uno de los componentes que aparecen en el modelo.

5.Codificar la representacin anterior en instrucciones o smbolos inteligibles por la unidad de programacin.

6.Transferir las instrucciones obtenidas a la memoria del autmata desde la unidad de programacin.

7. Depurar el programa y obtener una copia de seguridad.

Los siguientes apartados desarrollan en extensin cada uno de los puntos de esta secuencia.

3.2 EJECUCIN DE PROGRAMAS

3.2.1 CICLO BSICO DE EJECUCIN

El ciclo bsico de trabajo en la elaboracin del programa por parte de la CPU es el siguiente: Antes de iniciar el ciclo de ejecucin, el procesador, a travs del bus de datos, consulta el estado 0 o 1 de la seal de cada una de las entradas y las almacena en los registros de la memoria de entradas, esto es, en la zona de entradas de la memoria de la tabla de datos.

Esta situacin se mantiene durante todo el ciclo del programa. A continuacin, el procesador accede y elabora las sucesivas instrucciones del programa, realizando las concatenaciones correspondientes de los operandos de estas instrucciones.

Seguidamente asigna el estado de seal a los registros de las salidas de acuerdo a la concatenacin anterior, indicando si dicha salida ha o no de activarse, situndola en la zona de salida de la tabla de datos.

Al final del ciclo, una vez concluida la elaboracin del programa, asigna los estados de las seales de entrada a los terminales de entrada y los de salida a las salidas, ejecutando el estado 0 o 1 en estas ltimas. Esta asignacin se mantiene hasta el final del siguiente ciclo, en el que se actualizan las mismas.

Dada la velocidad con que se realiza cada ciclo, del orden de 5 a 10 ms/1 K instrucciones, se puede decir que las salidas se ejecutan en funcin de las variables de entrada prcticamente en tiempo real.

Figura 3.3 Ciclo bsico de trabajo de un PLC

Figura 3.4 Estructura de las instrucciones u rdenes de manejo y programacin de un Autmata Programable.

Cuando el Autmata se sita en ciclo de ejecucin o ejecucin cclica. La CPU realiza, entre otras funciones, el barrido del programa contenido. En la memoria de usuario, desde la casilla, direccin o lnea 0000 hasta la ltima posible, segn la capacidad de la misma, esto es, efecta lo que se denomina ciclo de Scanning.

En funcin de cmo se efecta la ejecucin o barrido del programa, se distinguen los siguientes sistemas, modos o estructuras de programacin:

Ejecucin cclica lineal.

Ejecucin con salto condicional.

Ejecucin con salto a subrutinas.

Ejecucin con programas paralelos.

El principio de ejecucin de cada uno de los sistemas indicados se describe a continuacin.

3.2.2 EJECUCIN LINEAL

Cuando el ciclo de barrido de la memoria de usuario se realiza lnea tras lnea sin solucin de continuidad, se dice que la programacin es lineal, y la CPU consulta las instrucciones contenidas en la memoria secuencialmente, una a continuacin de la otra, sin alterar este orden, tal y como se aprecia en la Figura 3.5

Figura 3.5 Ejecucin cclica lineal del programa de usuario en un Autmata Programable

3.2.3 SALTO CONDICIONAL

Cuando el ciclo de ejecucin de un programa tiene la posibilidad, previa condicin establecida, de alterar la secuencia lnea a lnea del mismo y dar un salto a otras lneas de programa, dejando x lneas sin ejecutar, se dice que se ha realizado un salto condicional.

Su funcionamiento es el siguiente:

Si al llegar en el proceso de ejecucin del programa a la instruccin U, tal y como queda descrito en la Figura 3.6, se cumple la condicin en ella indicada, se salta a V continuando el barrido en V+1 hasta n. Si por el contrario al llegar a U no se cumple la condicin, el programa se ejecuta linealmente continuando en U+1.

Esta posibilidad que poseen muchos Autmatas permite reducir el tiempo de ejecucin del ciclo y 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.

Figura 3.6 Salto condicional en la ejecucin cclica lineal del programa de usuario en un Autmata Programable

3.2.4 SALTO A SUBRUTINA

En algunas ocasiones ocurre que en un programa hay uno o ms grupos de secuencias de instrucciones idnticas que se repiten y que habr que reescribir tantas veces como estas se repitan en dicho programa principal. En estos casos, es muy til escribir una sola vez esta secuencia o subrutina. E ir a ella cuando se requiera. Los autmatas de la gama baja no suelen incorporar esta posibilidad. En la Figura 3.7 se puede observar grficamente este tipo de salto. La posibilidad de distintos tipos de subrutinas y de distintos niveles de las mismas tambin quedan reflejados en la citada figura.

Figura 3.7 Salto a subrutina en la ejecucin cclica del programa de usuario en un Autmata Programable

3.2.5 PROGRAMAS PARALELOS

En este sistema, utilizado por algunos fabricantes y denominado de programas paralelos, el procesamiento se realiza paralelamente y de forma asncrona. En aquellos casos en que con un nico Autmata se quieren controlar varios procesos totalmente independientes, este sistema es muy til, aunque tambin se utiliza controlando funciones de un proceso nico. En este tipo de ejecucin es posible el uso de subrutinas en cada programa paralelo.

La ejecucin de este tipo de programas se realiza de la siguiente forma:

Cada uno de los tramos en lnea gruesa de la Figura 3.8 contiene solo algunas lneas de programa, de tal forma que la secuencia consiste en el procesamiento de, por ejemplo, diez lneas del programa M0, o lo que es lo mismo, una pequea parte de un programa; a continuacin el barrido salta al programa M1 para proceso, etc. Cuando ha barrido todos los programas paralelos, incluso las subrutinas, si se encuentran adscritas a esas lneas, vuelve al programa M0 para repetir el ciclo en el siguiente grupo de diez lneas.

Para que la secuencia deseada en el barrido de programas se realice, ha de indicarse mediante la elaboracin de un programa de asignacin, tal y como se indica en la Figura 3.8 Los autmatas de la gama baja no suelen incorporar esta posibilidad.

Figura 3.8 Ejecucin de programas paralelos de usuario en un Autmata Programable

3.2.6 SISTEMAS O LENGUAJES DE PROGRAMACIN

Varios son los lenguajes o sistemas de programacin posibles en los Autmatas Programables, aunque su utilizacin no se puede dar en todos los Autmatas; es por esto que cada fabricante indica en las caractersticas generales de su equipo el lenguaje o los lenguajes con los que puede operar. En general, se podra decir que los lenguajes de programacin ms usuales son aquellos que transfieren directamente el esquema de contactos y las ecuaciones lgicas o los logigramas, pero estos no son los nicos.

A continuacin se muestra una relacin de los lenguajes y mtodos grficos ms utilizados:

Nemnico, tambin conocido como lista de instrucciones, boolena, abreviaturas nemotecnicas, AWL.

Diagrama de contactos (Ladder diagram), plano de contactos, esquema de contactos, KOP.

Plano de funciones, o bloques funcionales, logigramas, FUP.

Grafcet, o diagrama funcional, diagrama de etapas o fases.

Organigrama, u ordinograma, diagrama de flujo.

Excepto el nemnico, los dems tienen como base su representacin grfica, pero todos ellos deben ir acompaados del correspondiente cuadro o lista de programacin, esto es, la relacin de lneas de programa que configuran el mismo.

Para mejor entender estos lenguajes, a continuacin se realiza una explicacin de ellos.

En el caso de los tres primeros, por otra parte los ms utilizados, se ha puesto un ejemplo.

3.3 DESCRIPCIONES LITERALES

La descripcin del proceso y su control puede hacerse con la enumeracin literal de las acciones a desarrollar por el mismo, expuestas secuencialmente y con indicacin de las condiciones de habilitacin o validacin en cada caso.

La ventaja de estas descripciones, que es a la vez su principal inconveniente, es la ausencia de rigor en la exposicin: cualquier persona, a un poco calificada desde el punto de vista de la automtica, es capaz de explicar lo que debe hacer un proceso que conozca. Esta descripcin, 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.

La figura 3.9 muestra un ejemplo de descripcin literal de un proceso de mecanizado, donde se hacen patentes las limitaciones descritas.

En efecto, observando la figura y la descripcin podran plantearse algunas preguntas:

1. Que ocurre si la presin detectada por el manmetro no es la prescrita?

2. Cuando debe empezar a girar el taladro, antes, durante o despus de la bajada de la cabeza?

3. Cuando debe detenerse el taladro, al llegar a tope, durante la subida o despus de haber subido el cabezal?

4. Como se afloja la pieza, por retroceso del cilindro A, por extraccin manual, o por movimiento del soporte?

Figura 3.9 Descripcin literal de un proceso

Parece que con una descripcin como la dada, que en principio resultaba suficientemente clara, el diseador necesita de una serie de preguntas adicionales antes de empezar a trabajar en el control.

La conclusin que se obtiene es que la descripcin literal o se hace exhaustiva, con lo cual es de difcil comprensin en su conjunto, o no es totalmente unvoca con el proceso que se quiere controlar.

Afortunadamente existen otras formas de representacin, de sintaxis ms definida, que permiten descripciones ms concisas y claras de la tarea de control.

3.4 FUNCIONES ALGEBRAICAS

La funcin algebraica de cada salida o funcin 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 sntesis basados en el algebra de Boole, ente matemtico que regula las relaciones entre seales binarias todo-nada.

Esta representacin puede ser tan compleja como sea necesario, siempre y cuando se respeten las reglas del algebra. Por ejemplo, la alarma S debe activarse cuando el contacto C este cerrado, y los contactos A y B en estados opuestos, segn convenio:

-Abierto: 0

-Cerrado: 1

La funcin booleana ser:

S= (A B+AB) C

Aunque la representacin booleana est restringida a las variables que adoptan nicamente dos estado (por convenio, 0 y 1), puede mejorarse definiendo otras operaciones (aritmticas, comparacin) que permitan las relaciones entre variables digitales de varios bits: el modelo dejara de ser booleano, aunque continua siendo algebraico.

Pese a que cualquier sistema, combinacional o secuencial, puede ser representado por un modelo algebraico de funciones, la particular complejidad que presenta en ellos el anlisis y sntesis de sistemas secuenciales limita en la practica el empleo de ecuaciones a la representacin de combinaciones entre variables, de resultado independiente al instante de tiempo considerado (por ejemplo, condiciones de alarma, operaciones aritmticas con variables analgicas, etc.).

3.5 ESQUEMAS DE RELS

El esquema de rels es la representacin grfica de la tarea de automatizacin mediante smbolos de contactos abierto-cerrado.

La funcin de control obtenida depender de las conexiones entre los distintos contactos de los rels que intervienen (figura 3.10).

Figura 3.10 Esquema elctrico de rels.

Este modelo grfico, de origen en las tecnologas electromecnicas de ejecucin de sistemas de mando, presenta deficiencias en cuanto a la representacin de funciones secuenciales complejas, como son los secuenciadores, registros de memoria, etc., y sobre todo, en la manipulacin de seales digitales de varios bits (por ejemplo, obtenidas de una conversin A/D).

Sin embargo, siendo muy familiar a los electricistas, se utilizan frecuentemente para la representacin de sistemas sencillos, en los que no intervienen mas que seales lgicas binarias todo-nada, o algunos bloques secuenciales predefinidos, como temporizadores y contadores.

3.6 DIAGRAMAS LGICOS

La representacin del sistemas de control por diagramas lgicos se basa en el empleo de smbolos normalizados (puertas) que representan funciones lgicas directas del algebra de Boole (AND, OR, etc), o sistemas lgicos ms complejos (biestables, registros, contadores, etc).

La figura 3.11 muestra el modelo de diagrama lgico del sistema de alarma descrito en el ejemplo anterior.

El conjunto de todos los smbolos con sus interrelaciones forman el logigrama del sistema de control, representacin compacta e independiente de la tecnologa de construccin del mismo (elctrica, neumtica, etc.).

Desgraciadamente, el logigrama es una herramienta caracterstica del tcnico de software o del ingeniero de diseo, muy alejada de muchos de los usuarios finales del autmata, por lo que su empleo queda en la prctica, casi circunscrito a la representacin del sistema en alto nivel, a efectos de especificaciones y documentacin.

3.6.1 ORDINOGRAMAS

Los tres modelos descritos, algebraico, de rels y de puertas lgicas, permiten, con mayor o menor claridad, tanto la representacin de sistemas combinacionales como secuenciales, como lo son, de hecho, la mayor parte de los sistemas industriales (secuencias de actividades o combinaciones de operaciones consecutivas en el tiempo).

Sin embargo, esta evolucin temporal no es de apreciacin inmediata sobre aquellos, lo que obliga a utilizar algn modelo, preferiblemente grfico, que refleje las secuencias de evolucin y toma de decisiones del proceso.

Un primer intento de representacin, de cierta utilidad en fases previas del diseo, puede ser el diagrama de flujo u ordinograma del proceso.

Figura 3.11 Representacin por diagrama lgico.

Extensamente utilizado por los diseadores de software para ordenador, el modelo emplea una simbologa de bloques, convenientemente entrelazados, que representan la evolucin temporal o condicional de las acciones a ejecutar.

En la figura 3.12 aparece un ejemplo de representacin por diagrama de flujo, en el que se pone de manifiesto la nobleza del modelo.

Figura 3.12 Ordinograma de un posicionamiento hidrulico manual

Ciertamente claro para describir el funcionamiento general, puede no serlo tanto cuando se intenten representar las variables y seales que intervienen y las relaciones entre ellas, a no ser que el modelo se complete con expresiones algebraicas. Esta solucin, sin embargo, afecta entonces a la claridad de la representacin grfica inicial.

3.7 REPRESENTACION GRAFCET

Una evolucin del diagrama de flujos, que combina las ventajas de la representacin secuencial grafica con la integracin de los modelos preexistentes, es la representacin por diagramas GRAFCET.

Ahora normalizado segn norma internacional EIC 848 (Comisin Internacional Electrotcnica), el GRAFCET se reconoce como el modelo mejor adaptado a la parte secuencial de los automatismos.

Para ello, el GRAFCET representa directamente la sucesin de las etapas dentro de un ciclo de produccin, separadas por transiciones o condiciones de salto entre unas y otras (figura 3.13)

El ciclo se desarrolla etapa por etapa desde la que se define como etapa inicial que se activa al comienzo del funcionamiento. Mientras una etapa esta activa, el control:

-Ejecuta la funcin de mando correspondiente a la etapa.

-Consulta las condiciones de transicin para el salto a la siguiente.

Tanto la ejecucin de la funcin de mando como la consulta de las condiciones de transicin pueden representarse por cualquiera de los modelos anteriores, resultando una representacin final del automatismo en la que la secuencia grfica muestra la evolucin temporal, las etapas y transiciones de las condiciones combinatorias de ejecucin.

Figura 3.13 Estructura general de una representacin GRAFCET.

Figura 3.14 Combinacin de estructuras GRAFCET con diagramas de contactos.

En la prctica es muy frecuente el empleo de esquemas de rels para representar etapas y transiciones, resultando un modelo totalmente grfico del sistema de control (figura 3.14)

Como se vio anteriormente en temas pasados, la posibilidad de programacin directa en GRAFECT de algunos autmatas de gama alta, permite el empleo de esta herramienta en todas las fases del diseo:

-Especificaciones funcionales, o GRAFCET del pliego de condiciones.

-Especificaciones tecnolgicas o GRAFCET de movimientos.

-Programacin del autmata o GRAFCET de mando, que resulta til tambin en la fase de explotacin.

La figura 3.15 muestra un ejemplo de aplicacin en estas tres distintas fases, a partir de las especificaciones literales del comportamiento de un automatismo.

Esta estandarizacin del modelo, una de sus principales ventajas, facilita el flujo de informacin entre todos los niveles de la empresa, desde la oficina tcnica hasta los equipos de mantenimiento.

Figura 3.15 El GRAFCET en diferentes fases de la automatizacin.

3.8 LENGUAJES DE PROGRAMACIN

Se ha descrito ya el programa como el conjunto de instrucciones, rdenes y smbolos reconocibles por el autmata a travs de su unidad de programacin, que le permiten ejecutar la secuencia de control deseada.

Al conjunto total de estas instrucciones, rdenes y smbolos que estn disponibles para escribir un programa se le denomina lenguaje de programacin del autmata.

Sera deseable que la misma simbologa utilizada para representar el sistema de control pudiera emplearse para programar el autmata: el ahorro de tiempo y documentacin y la seguridad en el programa obtenido serian considerables.

Sin embargo, esta solucin no es siempre posible: el lenguaje depende del autmata empleado y de su fabricante, que decide el tipo de unidad de programacin (literal, grfica) y el interprete (firmware) que utiliza su mquina, mientras que el modelo de representacin depende del usuario, que lo elige segn sus necesidades o conocimientos.

Pese a ello, los lenguajes de programacin de autmatas intentan ser lo ms parecido posibles a los modelos de representacin usuales, a fin de facilitar la transcripcin entre ambos. As los lenguajes pueden ser:

ALGEBRAICOS

Lenguajes bolanos.

Lista de instrucciones.

Lenguajes de alto nivel.

GRFICOS

Diagrama de contactos.

Diagrama de funciones/bloques.

Interprete GRAFCET.

Figura 3. 16 Direccionamiento E/S con interfaces digitales

Si la representacin elegida para el sistema de control es comprensible por la unidad de programacin, no ser necesario realizar ninguna codificacin, al aceptar sta los smbolos utilizados. En caso contrario, habr que traducirla a un programa, segn uno de los anteriores lenguajes.

El programa obtenido est formado por un conjunto de instrucciones, sentencias, bloques funcionales y grafismos que indican las operaciones a realizar sucesivamente por el PLC.

La instruccin representa la tarea ms elemental de un programa: leer una entrada, realizar una operacin AND, activar un salida, etc.

La sentencia representa el mnimo conjunto de instrucciones que definen una tarea completa: encontrar el valor de una funcin lgica, combinacin de varias variables, consultar un conjunto de condiciones y, si son ciertas, activar un temporizador.

El bloque funcional es el conjunto de instrucciones o sentencias que realizan una tarea o funcin compleja: contadores, registros de desplazamiento, trasferencias de informacin, etc.

Tabla 3.1 Ejemplo de asignacin de direcciones.

Todos estos elementos estn relacionados entre si mediante los smbolos o grafismos (algebraicos o grficos) definidos en el lenguaje empleado.

Cualquiera que sea este, las instrucciones del programa tienen la siguiente estructura:

Campo de operacin Operando (s)

Campo de operacin (Qu hay que hacer?)

Tipo de operacin:

Leer una entrada,

Formar una combinacin OR,

Asignar un resultado, etc.

Campo de operando (Con que hay que hacerlo?)

Variable que interviene:

Entrada numero 5,

Rel interno numero 400

Palabra digital WR0, etc.

En ocasiones, el campo de operando no contiene el nmero de variable, sino la direccin de un registro (normalmente, una palabra de cuatro dgitos) donde esta contenida la direccin de la variable (direccionamiento indirecto).

Figura 3.17 Estructura de una instruccin

La figura 3.17 muestra la estructura de una instruccin tpica en diferentes lenguajes de programacin.

En general, las instrucciones pueden ser de distintos tipos: lgicas, aritmticas, de transferencia, etc., que adoptan diferentes formas de representacin segn el lenguaje empleado.

En algunos autmatas, el programa necesita para su correcta ejecucin de una tabla de parmetros, introducida tambin desde la unidad de programacin, que define el entorno de funcionamiento de la mquina:

-Uso o no de entradas de reset o stop,

-Capacidad de la memoria de usuario empleada,

-Conexin o no en red local.

-Variables internas a mantener contra prdidas de tensin, etc.

La tabla de parmetros es especfica para cada programa y es grabada con el mismo cuando se transfiere al autmata.

3.8.1 LENGUAJES BOOLEANOS Y LISTA DE INSTRUCCIONES

El lenguaje booleano est constituido por un conjunto de instrucciones que son transcripcin literal de las funciones del lgebra de Boole, a saber:

-OR funcin suma lgica.

-AND funcin producto lgico.

-NOT funcin negacin.

Complementadas con instrucciones de inicio de sentencia y asignacin de resultados:

-LOD leer variable inicial.

-OUT enviar resultado a salida.

y de operaciones de bloques (parntesis):

-OR LOD coloca bloque en paralelo.

-AND LOD coloca bloque en serie.

En operacin normal, el autmata necesita algunas otras instrucciones como ampliacin del lenguaje booleano, que le permitan manejar elementos de uso comn en automatizacin. Son estas las instrucciones secuenciales predefinidas:

-TIM definir un temporizador

-CNT definir un contador

-SET activar una variable binaria (unidad de memoria)

-RST desactivar una variable binaria.

Adems, la mayor parte de autmatas incluyen extensiones al lenguaje booleano bsico descrito, que permiten la manipulacin de datos y variables digitales y la gestin del programa.

Estas extensiones, que se tratan ms adelante como bloques funcionales, pueden clasificarse en:

Instrucciones aritmticas

-ADD sumar.

-SBB restar.

-MUL multiplicar.

-DIV dividir.

Instrucciones de manipulacin de datos:

-CMP comparar variables digitales.

-SFR rotaciones de bits (variables binarias).

-SHIFT rotaciones de palabras (variables digitales).

-MOV transferencias de datos.

-BCD/BIN conversiones de cdigos numricos, etc.

Instrucciones de gestin de programa:

-END fin de programa.

-JMP salto de bloque de programa.

-MCS habilitacin de bloque de programa.

-JMPSUB salto a subrutina, etc.

Las instrucciones aritmticas y de manipulacin de datos admiten mltiples variaciones:

-Aritmtica binaria o BCD.

-Instrucciones lgicas sobre palabras (8 o 16 bits).

-Transferencias entre bloques de palabras.

-Codificacin a salida en 7 segmentos.

-Instrucciones de direccionamiento indirecto.

-Instrucciones trigonomtricas, etc.

Al lenguaje resultante, que no puede llamarse ya booleano despus de ampliarlo con estas extensiones, se le denomina de lista de instrucciones (Instruction List).

Algunos fabricantes amplan las capacidades de programacin de sus autmatas de gama baja con estas instrucciones avanzadas, que seran de ms lgica aplicacin en autmatas de prestaciones superiores.

El tiempo de ejecucin resultante (tiempo de scan) sobre CPU bsicas desaconseja su empleo en la mayora de ocasiones. Sin embargo, disponible ya el firmware capaz de interpretarlas, desarrollado para otros autmatas de la familia, cuesta bien poco introducirlo en las versiones bsicas aunque no sea ms que por motivos comerciales de competencia.

La tabla 3.2 siguiente muestra un listado de las instrucciones bsicas disponibles sobre un autmata de gama media, el FA-2J junior de Izumi.

Tabla 3.2 Instrucciones bsicas del autmata Izumi FA-2J.

INSTRUCCINDESCRIPCION

LODLee estado de variable binaria, E/S o interna

ANDFuncin lgica AND

ORFuncin lgica OR

OUTEnvia resultado sentencia a variable binaria

MCSFuncin rel maestro de control

SOTDetecta flanco de subida de una seal

TIMDefine temporizador con retardo a conexin

CNTDefine contador incremental de sucesos

SFRDefine registro desplazamiento sobre n bits

ENDIndica final de programa

SETFija una variable a estado

RSTFija una variable a estado

JMPInicio de salto de programa

JENDFinal de salto de programa

NOTNiega o complementa una variable lgica

OR LODConecta dos bloques de programa en paralelo

AND LODConecta dos bloques de programa en serie.

Estas instrucciones se complementan con otras de computacin, que pueden ser:

Basicas:

-Operandos predefinidos

-Aritmtica BCD

Avanzadas:

-Operandos cualesquiera

Aritmtica de 16 bits

-Direccionamiento indirecto.

Ejemplos de instrucciones de computacin bsica sobre este automata son:

-JCVTH Conversin BCD a binario.

-JCVTD Conversin binario a BCD

-JADC Suma del registro DR0 (acumulador) con un operando

-JSBB Substraccin al registro DR0

-JCMP Comparacin del registro DR0 con un operando

-JOLD Transferencia de operando a DR0

-JOST Transferencia de DR0 a un operando

-JINC Incrementar operando, etc.

Y en computacin avanzada:

-TADD3 Suma de cuatro dgitos entre operandos cualesquiera

-WCMP Comparacin de un operando con un intervalo

-PDCMD Salida de datos ASCII a impresora

-W121M Trasferencia del operando (dato), cuya direccin (origen) esta contenida en un registro al operando cuya direccin (destino) esta contenida en otro registro, etc.

3.8.2 DIAGRAMAS DE CONTACTOS

El lenguaje de contactos expresa las relaciones ente seales binarias como una sucesin de contactos en serie y en paralelo, segn las equivalencias que se muestran en la tabla 3.3

Tabla 3.3 Equivalencias instrucciones-contactos

Adoptando por muchos fabricantes de autmatas (norteamericanos y japoneses, principalmente) como lenguaje base de programacin, el diagrama de contactos (Ladder Diagram) puede ser introducido directamente en la unidad de programacin mediante un editor de smbolos grficos. Normalmente este editor incluye restricciones en cuanto al nmero de contactos o bobinas a representar en cada lnea, la ubicacin de los mismos, la forma de las conexiones, etc.

Siendo los contactos de rels componentes de dos estados, asignados a los valores lgicos:

0: contacto abierto

1: contacto cerrado

Las equivalencias de la tabla 3.3 permiten definir sobre ellos un lgebra de Boole, denominada usualmente lgebra de contactos.

Esto significa que cualquier funcin lgica puede ser transcrita directa e inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando se trata de visualizar grficamente un programa escrito en lenguaje booleano.

Sin embargo, el diagrama de contactos, de origen norteamericano, no naci como una posible herramienta de visualizacin de programas ya escritos en lista de instrucciones, sino como transcripcin directa de los esquemas elctricos de rels (circuitos de mando) de uso comn en la automatizacin previa a la aparicin de los sistemas programables.

Por esta razn, los diagramas de contactos incluyen desde sus orgenes bloques funcionales que ya aparecan como elementos propios en aquellos esquemas, los temporizadores y los contadores.

Utilizando estos bloques, sobre los cuales pueden definirse la base de tiempos y el tiempo final en el caso de temporizadores y el mdulo de contaje y condiciones de paro y reset en el caso de contadores, el lenguaje de contactos permite programar directamente cualquier esquema elctrico de rels.

Sin embargo, y al igual que ocurra en los lenguajes booleanos, tambin en este se desarrollan bloques funcionales complejos que permiten la manipulacin de datos y las operaciones con variables digitales de varios bits.

La presencia de estos bloques, de ejecucin dependiente de una o ms condiciones binarias, multiplica la potencia de programacin sin dejar de mantener las ventajas de la representacin grfica del programa. As, pueden programarse situaciones de automatizacin compleja que involucren variables digitales, registros, transferencias, comparaciones, seales analgicas etc.

Por supuesto, y al igual que ocurre con las extensiones al lenguaje booleano, no todos los autmatas, aun del mismo fabricante, pueden manejar todas las posibilidades de programacin con contactos: solo las gama ms altas acceden a la totalidad de extensiones del lenguaje, quedando las restantes limitadas al empleo de partes ms o menos significativas de l.

En la figura 3.18 aparecen algunos elementos grficos utilizados en un cierto lenguaje de contactos, el Sysmac Serie C de OMRON, clasificados en:

-Contactos

-Bobinas

-Bloques funcionales

-Bloques operativos.

Los contactos comprueban el estado de las variables asociadas: puntos de entrada/salida, rels internos o temporizadores y contadores. Pueden ser de dos tipos:

-Contactos de apertura: indican variable normalmente (en reposo) desactivada,

-Contactos de cierre: indican variable normalmente (en reposo) activada.

Las bobinas envan el resultado de la operacin lgica ejecutada a un rel interno o de salida. Pueden ser de varios tipos:

-Directa: asigna el resultado a una variable binaria.

-Inversa, o negada: asigna el completo del resultado a una variable binaria.

-Puesta a 1: pone a 1 con memoria una salida o rel interno (set).

-De salto: indican un salto en el programa que ignora las sentencias saltadas.

Y algunas otras especiales son las siguientes:

-Fin programa: indica el final de sentencias a ejecutar,

-De diagnstico: almacena el nmero n de error definido y provoca (FALS) o no (FAL) la parada del automata.

-Paso a paso: permiten la ejecucin de programas subdivididos en pasos o etapas,

-De flanco: activan una variable durante un scan (a en el ejemplo de la fig. 10.12), en el flanco de subida del valor de la sentencia (DIFU) o en el de bajada (DIFUN).

Los bloques funcionales realizan funciones secuenciales tpicas de automatismos:

-Temporizadores: retardos a la conexin medidos en dcimas de segundo.

-Contadores: de tipo decreciente o reversible.

-Registros de desplazamiento: rotaciones de bits entre los canales inicial y final.

Las preselecciones de temporizadores y contadores pueden ser constantes del programa o valores BCD (4 dgitos) ledos en un canal de entradas (datos exteriores).

Los bloques operativos permiten realizar tratamientos numricos sobre variables digitales (palabras):

-Operaciones aritmtico/lgicas.

-Comparaciones.

-Conversiones de cdigo.

-Transferencias, etc.

Ejemplos de bloques operativos pueden ser:

-WSFT: desplazamientos entre canales inicial y final.

-CMP: comparaciones entre variables o constantes de 4 dgitos. El resultado de la comparacin (igual, mayor o menor) est asociado a un rel interno especial.

-BCD: conversin de datos binarios de 16 bits en 4 dgitos BCD.

-SBS: llamada a una subrutina del programa.

-MESSAGE: lectura de los datos ASCII contenidos sobre 8 canales (2 caracteres, 16 bits por canal), y visualizacin sobre la unidad de programacin o consola de explotacin.

Figura 3.18 Lenguaje de contactos de OMRON Sysmac Serie C

La figura 3.19 muestra un ejemplo de programacin con diagrama de contactos a partir de un esquema elctrico de arrancador estrella-trangulo (obsrvese la representacin del contacto de paro, cerrado en reposo). Para mostrar la potencia de los lenguajes extendidos, se aade una condicin de alarma de valor mnimo de velocidad en el eje, medida con un tacmetro (5000 r.p.m., 10 Vcc, 10 bits) conectada en el canal 3, con visualizacin de un mensaje de error sobre la consola conectada al autmata.

Figura 3.19 Ejemplo de programacin con diagrama de contactos.

En muchas ocasiones, sobre todo trabajando con unidades de programacin basadas en PC, el fabricante del software ya ha previsto que el usuario programe alternativamente en lista de instrucciones o diagrama de contactos:

Existe una correspondencia directa entre ambas formas de presentacin, y puede pasarse de una a otra con rdenes sencillas de compilacin/decompilacin del programa. Por ejemplo, el listado de instrucciones correspondiente al programa anterior sera:

LD

Marcha

LD

KLM

AND

Paro

OR-LD

OUT

KLM

LD

KLM

AND-NOT

KMT

AMD-NOT

TIM2

OUT

KME

LD

KLM

AND-NOT

KME

AND

TIM2

TIM

1

#0005

LD

TIM1

OUT

KMT

LD

KLM

TIM

2

#0100

LD

KLM

CMP (20)

_

003

#0266

LD

KLM

AND

25507

OUT

4000

LD

4000

MSG (46)

_

DM00

END.

Ntese como en el listado anterior falta la asignacin de direcciones a las variables del programa.

3.8.3 PLANO DE FUNCIONES

El diagrama lgico o plano de funciones es la representacin de las tareas de automatizacin utilizando los smbolos contenidos en las normas DIN 40700 y DIN 40719, cuya forma general se presenta en la figura 3.20.

Algunos de estos smbolos normalizados, correspondientes a las funciones mas frecuentes, se dan en la figura 3.21

La programacin por diagramas lgicos, que deriva de la representacin por logigrama habitual entre los tcnicos en electrnica digital, incluye como bloques normalizados

Figura 3.20 Smbolo lgico normalizado.

Algunas funciones secuenciales tpicas en automatizacin, como temporizadores y contadores, e incluso algunos bloques combinacionales y de tratamientos numricos, como

Multiplexores, demultiplexores, sumadores, multiplicadores, etc., pero no alcanza la multitud de funciones que han ido aadindose a las listas de instrucciones y diagramas de contactos, como extensiones a estos lenguajes.

Por esta razn, y en sentido estricto, la programacin por diagramas lgicos queda reservada a aplicaciones en las que solo intervengan variables booleanas todo-nada y algunos bloques secuenciales elementales: temporizadores, contadores, registros de desplazamiento, etc.

Esta circunstancia, unida al desconocimiento del diagrama lgico por parte del usuario habitual del automata, explica la baja difusin de estos leguajes de programacin.

La figura 3.22 muestra un ejemplo de programacin con plano de funciones en diagrama de contactos, segn los lenguajes grficos STEP 5 de SIEMENS.

Dada la inexistencia, antes comentada, de bloques normalizados para todas las posibles operaciones del autmata, los fabricantes han optado por omitir el uso, en sus consolas grficas, de los bloques de extensin definidos en el diagrama de contactos, an trabajando bajo el entorno de diagrama lgico: el lenguaje obtenido resulta un hibrido que recoge toda la potencia de programacin del autmata, y en el que cada usuario puede elegir la forma de representacin que prefiera para las funciones bsicas (AND, OR, NOT, TIM, etc.)

Figura 3.21 Algunos smbolos lgicos

Figura 3.22 Lenguajes grficos STEP 5 de SIEMES

Figura 3.23 Programacin combinada funciones/contactos

Algunas unidades de programacin basadas en ordenador (especfico de fabricante o PC de uso general) permiten al usuario definir sus propios bloques lgicos a partir de los preexistentes, creando nuevas funciones (macrobloques) que pueden ser incorporadas al lenguaje.

La figura 3.23 muestra un ejemplo de programa escrito con estos lenguajes hbridos, desarrollando con un software especfico de programacin de autmatas que corre sobre ordenador personal.

3.8.4 LENGUAJES DE ALTO NIVEL

Con CPUs cada vez ms rpidas, ms potentes y de mayor capacidad de trabajo, los autmatas de gamas altas invaden aplicaciones hasta hace bien poco reservadas a los miniordenadores industriales.

Para estas aplicaciones, los lenguajes tradicionales en lista de instrucciones (IL) o diagrama de contactos (LD) resultan ya insuficientes, aun mejorados con las expansiones comentadas en apartados anteriores.

Por esta razn, los fabricantes han desarrollado lenguajes de programacin prximos a la informtica tradicional, con sentencias literales que equivalen a secuencias completas de programacin: son los lenguajes de alto nivel.

En ellos, las instrucciones son lneas de texto que utilizan palabras o smbolos reservados (SET, AND, FOR, etc.), las operaciones se definen por los smbolos matemticos habituales (+,*,