0% encontró este documento útil (0 votos)
747 vistas294 páginas

Controladores Logicos Programables

El documento habla sobre los controladores lógicos programables (PLC). Explica que un PLC es un dispositivo electrónico digital que usa una memoria programable para controlar maquinaria y procesos industriales mediante funciones lógicas y de secuencia. Los PLC reemplazan los sistemas de control con relevadores al permitir cambiar fácilmente el programa sin re cablear. También detalla algunas aplicaciones comunes de los PLC como el control de máquinas, instalaciones e indicadores.

Cargado por

Norberto Rosas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
747 vistas294 páginas

Controladores Logicos Programables

El documento habla sobre los controladores lógicos programables (PLC). Explica que un PLC es un dispositivo electrónico digital que usa una memoria programable para controlar maquinaria y procesos industriales mediante funciones lógicas y de secuencia. Los PLC reemplazan los sistemas de control con relevadores al permitir cambiar fácilmente el programa sin re cablear. También detalla algunas aplicaciones comunes de los PLC como el control de máquinas, instalaciones e indicadores.

Cargado por

Norberto Rosas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 294

Controladores Lógicos Programables

UNIDAD I

CONTROLADORES LÓGICO PROGRAMABLES

INTRODUCCIÓN.

Se entiende por Controlador Lógico Programable (PLC), o Autómata Programable, a


toda máquina electrónica, diseñada para controlar en tiempo real y en medio industrial
procesos secuencias. Su manejo y programación puede ser realizada por personal eléctrico
o electrónico sin conocimientos informáticos. Realiza funciones lógicas: series, paralelos,
temporizaciones, contajes y otras más potentes como cálculos, regulaciones etc.

También se le puede definir como una “caja negra” en la que existen unas
terminales de entrada a los que se conectarán pulsadores, finales de carrera, fotocélulas,
detectores, unas terminales de salida a los que se conectarán bobinas de contactores,
electroválvulas, lámparas, de tal forma que la actuación de estos últimos está en función de
las señales de entrada que estén activadas en cada momento, según el programa
almacenado.

Esto quiere decir que los elementos tradicionales como relés auxiliares, relés de
enclavamiento, temporizadores, contadores.., son internos. La tarea del usuario se reduce a
realizar el “programa”, que no es más que la relación entre las señales de entrada que se
tienen que cumplir para activar cada salida.

Un Controlador Lógico Programable (PLC, por sus siglas en inglés) se define como
un dispositivo electrónico digital que usa una memoria programable para guardar
instrucciones y llevar a cabo funciones lógicas, de configuración de secuencia, de sincronía,
de conteo y aritméticas, para el control de maquinaria y procesos (figura) 1.1.

Este tipo de procesadores se denomina lógico debido a que su programación


básicamente tiene que ver con la ejecución de operaciones lógicas y de conmutación.

1
Controladores Lógicos Programables

Los dispositivos de entrada (por ejemplo, un interruptor) y los dispositivos de salida


(por ejemplo, un motor), que están bajo control se conectan al PLC; de esta manera el
controlador monitorea las entradas y salidas, de acuerdo con el programa diseñado por el
operador para el PLC y que este conserva en memoria y de esta manera se controlan
maquinas o procesos. En un principio, el propósito de estos controladores fue sustituir la
conexión física de relevadores de los sistemas de control lógicos y de sincronización. Los
PLCs tienen la gran ventaja de que permiten modificar un sistema de control sin tener que
volver a alambrar las conexiones de los dispositivos de entrada y de salida; basta con que el
operador digite en un teclado las instrucciones correspondientes. Lo anterior permite contar
con un sistema flexible mediante el cual es posible controlar sistemas muy diversos entre si,
tanto en tipo como en complejidad.

Si bien los PLCs son similares a las computadoras, tienen características específicas
que permiten su empleo como controladores.
Estas son:
1.- Son robustos y esta diseñados para resistir vibraciones, temperatura, humedad y ruido.
2.- La interfaz para las entradas y las salidas están dentro del controlador.
3.- Es muy fácil programarlos, así como entender el lenguaje de programación. La
programación básicamente consiste en operaciones de lógica y conmutación.

Programa de Control

PLC

Entradas desde Salidas hacia


Dispositivos Dispositivos

Figura 1.1 Controlador Lógico Programable (PLC)

2
Controladores Lógicos Programables

El PLC por sus especiales características de diseño tiene un campo de aplicación muy
extenso. La constante evolución de hardware y software amplía continuamente este campo
para poder satisfacer las necesidades que se detectan en el espectro de sus posibilidades
reales.

Su utilización se da fundamentalmente en aquellas instalaciones en donde es


necesario realizar procesos de maniobra, control, señalización. Etc., por tanto, su aplicación
abarca desde procesos de fabricación industrial de cualquier tipo al de transformaciones
industriales, control de instalaciones, etc.

Sus reducidas dimensiones, la extrema facilidad de su montaje, la posibilidad de


almacenar los programas para su posterior y rápida utilización, la modificación o alteración
de los mismos, etc. Hace que su eficacia se aprecie fundamentalmente en procesos en que
se produce necesidades tales como:

1.- Espacio Reducido


2.- Procesos de Producción Periódicamente Cambiantes.
3.- Procesos Secuénciales.
4.- Maquinaria de Procesos Variables.
5.- Instalaciones de Procesos Complejos y Amplios.
6.- Chequeo de Programación Centralizada de las partes del proceso.

Ejemplos de aplicaciones generales podrían ser lo siguiente:


a) Maniobra de Máquinas

1.- Maquinaria Industrial del Mueble y Madera.


2.- Maquinaria en Procesos de Grava, Arena y Cemento.
3.- Maquinaria en la Industria del Plástico.
4.- Maquinas-Herramientas Complejas.
5.- Maquinaria en Procesos Textiles y de Confección.
6.- Maquinaria de Ensamblaje.

3
Controladores Lógicos Programables

b) Maniobra de Instalaciones

1.- Instalaciones de Aire Acondicionado, Calefacción, etc.


2.- Instalaciones de Seguridad
3.- Instalaciones de Frío Industrial
4.- Instalaciones de Almacenamiento y Trasvase y Cereales.
5.- Instalaciones de Plantas Embotelladoras.
6.-Instalaciones en la Industria de Automoción.
7.- Instalaciones de Tratamientos Térmicos.
8.- Instalaciones de Plantas Depuradoras de Residuos.
9.- Instalaciones de cerámica.

c) Señalización y control

1.- Chequeo de programas.


2.- Señalización del estado de proceso.

4
Controladores Lógicos Programables

1.1 ANTECEDENTES E HISTORIA

El desafío constante que toda industria tiene planteado para ser competitiva a sido el
motor impulsor del desarrollo de nuevas tecnologías para conseguir una mayor
productividad.
Debido a que ciertas etapas en los procesos de fabricación se realizan en ambientes
nocivos para la salud, con gases tóxicos, ruidos, temperaturas extremadamente altas o bajas,
etcétera, unido a consideraciones de productividad, llevó a pensar en la posibilidad de dejar
ciertas tareas tediosas, repetitivas y peligrosas a un ente al que no pudieran afectarle las
condiciones ambientales adversas: había nacido la máquina y con ella la automatización.
Surgieron empresas dedicadas al desarrollo de los elementos que hicieran posible tal
automatización; debido a que las máquinas eran diferentes y diferentes las maniobras a
realizar, se hizo necesario crear unos elementos estándar que, mediante la combinación de
los mismos, el usuario pudiera realizar la secuencia de movimientos deseada para
solucionar su problema de aplicación particular.

Relés, temporizadores, contadores, fueron y son elementos con que se cuenta para
realizar el control de cualquier máquina. Debido a la constante mejora de la calidad de estos
elementos y la demanda del mercado, que exigía mayor y mejor calidad en la producción,
se fue incrementando el número de etapas en los procesos de fabricación controlados de
forma automática.

Comenzaron a aparecer problemas: los armarios de maniobra o cajas donde se coloca


el conjunto de relés, temporizadores, etc., constitutivos de un control, se hacían cada vez
más y más grandes, la probabilidad de avería era enorme, su localización, larga y
complicada, el stock que el usuario se veía obligado a soportar era numeroso, y el costo del
mismo se incrementa cada vez más.

El desarrollo tecnológico que trajeron los semiconductores primero y los circuitos


integrados después intentaron resolver el problema sustituyendo las funciones realizadas
mediante relés por funciones realizadas con puertas lógicas.

5
Controladores Lógicos Programables

Con estos nuevos elementos se ganó en fiabilidad y se redujo el problema del


espacio, pero no así la detección de averías ni el problema del mantenimiento de un stock.
de todas maneras subsistía un problema: la falta de flexibilidad de los sistemas.

Debido a las constantes modificaciones que las industrias se veían obligadas a


realizar en sus instalaciones para la mejora de la productividad, los armarios de maniobra
tenían que ser cambiados, con la consiguiente perdida de tiempo y el aumento del costo que
ello producía.

En 1968, Ford y General Motors impusieron a sus proveedores de automatismos


unas especificaciones para la realización de un sistema de control electrónico para
máquinas transfer. Este equipo debía ser fácilmente programable, sin recurrir a los
computadores industriales ya en servicio en la industria.

A medio camino entre estos microcomputadores y la lógica cableada aparecen los


primeros modelos de Autómatas, también llamados controladores lógicos programables
(PLC´s). Limitados originalmente a los tratamientos de lógica secuencial, los Autómatas se
desarrollaron rápidamente y actualmente extienden sus aplicaciones al conjunto de sistemas
de control de procesos y de máquinas.

6
Controladores Lógicos Programables

1.2 AUTOMATISMOS

INTRODUCCIÓN.

La automatización de una máquina o proceso productivo simple tiene como


consecuencia la liberación física y mental del hombre de dicha labor. Se denomina
“automatismo” al dispositivo físico que realiza esta función controlando su funcionamiento.
Los aparatos de conexión y los auxiliares automáticos de mando son los que
principalmente realizan esta función .

1.2.1 PRINCIPIO DE UN SISTEMA AUTOMÁTICO

Todo sistema automático por simple que este sea se basa en el concepto de bucle o
lazo, tal y como se representa en la Figura 1.2.

Figura 1.2 Bucle o lazo en un sistema automático

7
Controladores Lógicos Programables

El siguiente ejemplo de un automatismo en lógica cableada nos ayuda a su


comprensión; sea una taladradora (Figura 1.3) compuesta por:

1.- Un motor B de traslación con dos sentidos de marcha, bajada y subida, accionado por
dos contactores, K3 y K4, respectivamente.

2.- Un motor A de rotación de la broca, con dos sentidos de giro: derecha e izquierda,
accionado por dos contactores, K1 y K2, respectivamente.

3.- Dos finales de carrera: FC1 de puesta en marcha para realizar el taladro y FC2 de final
del mismo.

4.- Pulsadores de marcha y paro, protecciones, temporizadores, señalizaciones, etc.

Figura 1.3 Equipo de taladro con sus finales de carrera

8
Controladores Lógicos Programables

El funcionamiento de esta taladradora sería el que se describe a continuación:


En la posición inicial y accionado el pulsador de marcha, con FC1 cerrado, se activan K1 y
K3 iniciándose el descenso y giro a derechas de la broca y ejecutándose el taladro.
Al final del mismo se activa el FC2, deteniéndose el proceso durante un tiempo
determinado por el temporizador T1, al final del cual se activan K2 y K4, elevándose la
broca y girando en sentido contrario hasta que F1 detiene el proceso y temporiza el T2,
volviéndose a repetir el ciclo.
El posicionamiento y retirada de la pieza a taladrar es manual.
En la figura 1.4 se representa el lazo o bucle correspondiente al montaje de la taladradora
del ejemplo y en donde se observa la similitud con el lazo de la Figura 1.2.
La situación física de los actuadores no tiene importancia desde el punto de vista de
interpretación del significado, ya que en este caso estos contactores estarían situados en el
armario de automatismos, mientras que en el caso de un automatismo con electroválvulas
estas se encontrarían en la parte física de trabajo-máquina, aun cuando el mando de las
mismas se encontrase en el armario de automatismos.

Figura 1.4 Lazo o bucle de la taladradora del ejemplo

9
Controladores Lógicos Programables

1.3 FASES DE ESTUDIO EN LA ELABORACION DE UN


AUTOMATISMO.

Para el desarrollo y la elaboración correcta de un automatismo, por el técnico o equipo


encargado de ello, es necesario conocer previamente los datos siguientes:

a) Las especificaciones técnicas del sistema o proceso a automatizar y su correcta


interpretación.

b) La parte económica asignada para no caer en el error de elaborar una buena opción
desde el punto de vista técnico, pero inviable económicamente.

c) Los materiales, aparatos, etc., existentes en el mercado que se van a utilizar para
diseñar el automatismo. En este aparato es importante conocer también:
1.- Calidad de la información técnica de los equipos.
2.- Disponibilidad y rapidez en cuanto a recambios y asistencia técnica.

El organigrama de la Figura 1.5 representa el procedimiento general o fases más


utilizado para el estudio de los automatismos.
A continuación se va a estudiar cada uno de los aparatos descritos:

a) Estudio previo. Es importante antes de iniciar cualquier estudio de un


automatismo el conocer con el mayor detalle posible las características, el
funcionamiento, las distintas funciones, de la máquina o proceso a automatizar;
esto lo obtenemos de las especificaciones funcionales, esta es la base mínima a
partir de la cual podemos iniciar el siguiente paso, es decir, estudiar cuales son los
elementos más idóneos para la construcción del automatismo.

10
Controladores Lógicos Programables

Figura 1.5 Organigrama general para el estudio y elaboración de automatismos

11
Controladores Lógicos Programables

b) Estudio técnico-económico. Es la parte técnica de especificaciones del


automatismo: relación de materiales, aparatos, su adaptación al sistema y al entorno
en el que se haya inscrito, etc. También aquí se ha de valorar la parte operativa del
comportamiento del automatismo en todos sus aspectos, como mantenimiento,
fiabilidad, etcétera. Es obvio que la valoración económica, que será función directa
de las prestaciones del mismo, ha de quedar incluida en esta parte del estudio.

c) Decisión final. En el apartado anterior se estudiaron las dos posibilidades u


opciones tecnológicas generales posibles: lógica cableada y lógica programada.
Con esta información y previa elaboración de los parámetros que se consideran
necesarios tener en cuenta, se procede al análisis del problema.

Los parámetros que se deben valorar para una decisión correcta pueden ser muchos
y variados, algunos de los cuales serán específicos en función del problema concreto que se
va a resolver, pero otros serán comunes, tales como los siguientes:

▪ Ventajas e inconvenientes que se le asignan a cada opción en relación a su fiabilidad, vida


media y mantenimiento.

▪ Posibilidades de ampliación y de aprovechamiento de lo existente en cada caso.

▪ Posibilidades económicas y rentabilidad de la inversión realizada en cada opción.

Ahorro desde el punto de vista de necesidades para su manejo y mantenimiento.

Una vez realizado este análisis solo queda adoptar la solución final elegida.

12
Controladores Lógicos Programables

1.4 OPCIONES TECNOLÓGICAS

La Tabla 1.1 nos muestra las opciones tecnológicas posibles derivadas de las dos
generales: lógica cableada y lógica programada. La Figura 1.6 nos ayudara a escoger la
elección que más se acomode al caso, en función de las características del mismo.

Tabla 1.1 Opciones tecnológicas generales

1.4.1 ORGANIGRAMAS PARA DESARROLLAR EL CONTROL DE


UN PROCESO.

Los organigramas de las Figuras 1.7 y 1.8 pueden ser de gran utilidad una vez que se
haya decidido por la opción tecnológica más apropiada, lógica cableada o lógica
programada.

13
Controladores Lógicos Programables

Figura 1.6 Organigrama de elección tecnológica

14
Controladores Lógicos Programables

Figura 1.7 Organigrama para el desarrollo de un proceso con lógica cableada

15
Controladores Lógicos Programables

Figura 1.8 Organigrama para el desarrollo de un proceso con Autómata Programable

16
Controladores Lógicos Programables

RESUMEN

▪Automatismo es todo dispositivo eléctrico, que en general es: previo-estudio técnico-


Electrónico, neumática, etc., capaz por si económico-decisión final.
solo de controlar el funcionamiento de una ▪Las opciones tecnológicas generales son
máquina o proceso. dos: lógicas cableadas y lógica programada.
▪Se entiende por bucle o lazo, el circuito ▪En una decisión final, para elegir el tipo de
cerrado definido por: Automatismo-órdenes opción más eficaz hay que tener en cuenta
accionadotes-máquina-captadores-señales- factores como: ventajas e inconvenientes de
automatismo. cada opción, posibilidades de ampliación,
▪En el estudio de cualquier automatismo es rentabilidad y ahorro económico en
necesario seguir un procedimiento o método personal principalmente.

PREGUNTAS

1. Describir un automatismo conocido. 6. Razonar el significado Opciones


2. ¿Qué significa bucle o lazo? Dibujar Tecnológicas.
un ejemplo.
3. Diferenciar los conceptos siguientes: 7. Explicar la relación que existe entre una
maquina, proceso, automatismo. maquina o proceso y los captores y
4. ¿Qué se entiende por actuadotes acoplados a la misma.
especificaciones técnicas? ¿Y por
fiabilidad y rentabilidad?
5. ¿Qué diferencias fundamentales
existen. Entre lógica cableada y
programada?

UNIDAD II

17
Controladores Lógicos Programables

ARQUITECTURA INTERNA DEL AUTÓMATA

INTRODUCCIÓN

Un autómata programable industrial (API) es un equipo electrónico de control con


un cableado interno (hardware) independiente del proceso a controlar, que se adapta a dicho
proceso mediante un programa específico (software) que contiene la secuencia de
operaciones a realizar. Esta secuencia de operaciones se define sobre señales de entrada y
salida al proceso, cableadas directamente en los bornes de conexión del autómata.
Las señales de entrada pueden proceder de elementos digitales, como finales de
carrera y detectores de proximidad, o analógicos, como sensores de temperatura y
dispositivos de salida en tensión o corriente continuas.
Las señales de salida son órdenes digitales todo o nada o señales analógicas en
tensión o corriente, que se envían a los elementos indicadores y actuadores del proceso,
como lámparas, contactores, válvulas, etc.
El autómata gobierna las señales de salida según el programa de control
previamente almacenado en una memoria, a partir del estado de las señales de entrada.
Este programa se introduce en el autómata a través de la unidad de programación,
que permite además funciones adicionales como depuración de programas, simulación,
monitorización, control del autómata, etc.
Una característica diferenciadora del API frente a otros sistemas de control
programables está en la estandarización de su hardware, que permite la configuración de
sistemas de control “a medida”, según las necesidades estimadas de potencia de cálculo y
número y tipo de señales de entrada y salida.
El autómata se configura alrededor de una unidad central o de control, que, unida
por medio de buses internos a las interfaces de entrada y salida y a las memorias, define lo
que se conoce como arquitectura interna del autómata.

18
Controladores Lógicos Programables

Según las soluciones constructivas adoptadas, esta arquitectura puede tomar distintas
configuraciones, que serán objeto de estudio en un capítulo posterior. En este, se definen
los bloques constitutivos del autómata y sus características más relevantes.

2.1 BLOQUES ESENCIALES DE UN AUTOMATA.

Un autómata programable se compone esencialmente de los siguientes bloques fig. 2.1


▪Unidad central de proceso o de control, CPU.
▪Memorias internas
▪Memorias de programa
▪Interfaces de entrada y salida
▪Fuente de alimentación.

La unidad de control consulta el estado de las entradas y recoge de la memoria de


programa la secuencia de instrucciones a ejecutar, elaborando a partir de ella las señales de
salida u órdenes que se enviaran al proceso. Durante la ejecución del programa, las
instrucciones son procesadas en serie, una tras otra.
La unidad de control es también la responsable de actualizar continuamente los
temporizadores y contadores internos que hayan sido programados.
La memoria del autómata contiene todos los datos e instrucciones que necesita para
ejecutar la tarea de control.
La memoria interna es la encargada de almacenar datos intermedios de cálculo y
variables internas que no aparecen directamente sobre las salidas, así como un reflejo o
imagen de los últimos estados leídos sobre las señales de entrada o enviados a las señales
de salida.
La memoria de programa contiene la secuencia de operaciones que deben realizarse
sobre las señales de salida, así como los parámetros de configuración del autómata. Por
ello, si hay que introducir alguna variación sobre el sistema de control basta generalmente
con modificar el contenido de esta memoria.

19
Controladores Lógicos Programables

Figura 2.1 Diagrama de bloques de un autómata programable

Las interfaces de entrada y salida establecen la comunicación del autómata con la


planta. Para ello, se conectan, por una parte, con las señales de proceso a través de los
bornes previstos y, por otra parte, con el bus interno del autómata. La interfaz se encarga
de adaptar las señales que se manejan en el proceso a las utilizadas internamente por la
máquina. La fuente de alimentación proporciona, a partir de una tensión exterior, las
tensiones necesarias para el buen funcionamiento de los distintos circuitos electrónicos del
sistema. En ocasiones el autómata puede disponer de una batería conectada a esta fuente de
alimentación, lo que asegura el mantenimiento del programa y algunos datos en las
memorias en caso de interrupción de la tensión exterior.

Se conoce como bus interno al conjunto de líneas y conexiones que permiten la


unión eléctrica entre la unidad de control, las memorias y las interfaces de entrada y salida.

20
Controladores Lógicos Programables

Un bus se compone de un conjunto de hilos o pistas utilizadas para intercambiar


datos u órdenes (por ejemplo, el contenido de celdas de memoria o las instrucciones de la
unidad de control).
Para minimizar el número de conexiones y dado que la unidad de control, que
organiza el tráfico por estos hilos, solo puede comunicarse con sus periféricos de una forma
secuencial, uno tras otro, el conjunto de hilos del bus es común y compartido por todos
ellos.
Esta estructura exige que en todo momento solo pueda haber un periférico ocupado
el bus, ya que de lo contrario se mezclarían los datos enviados por varios de ellos o se
recibirían en un periférico datos que no le corresponden.

Los tres buses característicos de un sistema digital son (figura 2.2), bus de datos, por
el que tienen lugar las transferencias de datos del sistema, bus de direcciones, a través del
cual se direccional la memoria y el resto de los periféricos, y bus de control, constituido por
todas las conexiones destinadas a gobernar los intercambios de información, se reunifican
en el autómata en uno solo, que recibe el nombre de bus interno. El número de líneas de
este bus depende de cada fabricante.

Se considera también como bus del autómata cualquier conexión entre bloques o
módulos que no necesite de procesadores específicos de comunicaciones en sus extremos,
como, por ejemplo, el cable de conexión entre el autómata y una unidad externa de
expansión de E/S.

21
Controladores Lógicos Programables

Figura 2.2 Estructura de conexión mediante buses

2.2 UNIDAD CENTRAL DE PROCESO, CPU

La CPU “Central Processing Unit”, construida alrededor de un sistema


microprocesador, es la encargada de ejecutar el programa de usuario y de ordenar las
transferencias de información en el sistema de entradas/salidas.
Adicionalmente, puede también establecer comunicación con periféricos externos, como
son la unidad de programación, monitores LED/LCD o TRC, otros autómatas u
ordenadores, etc.
Para ejecutar el programa, la CPU adquiere sucesivamente las instrucciones una a
una desde la memoria, y realiza las operaciones especificadas en las mismas.
El funcionamiento es, salvo escasas excepciones, de tipo interpretado, con decodificación
de las instrucciones cada vez que son ejecutadas.

Esta descodificación puede realizarse mediante un sistema de lógica estándar con


microprocesador más memoria, o puede estar microprogramaza por hardware (cableada) en

22
Controladores Lógicos Programables

el propio procesador, según diseño propio del fabricante utilizando tecnologías “custom” o
personalizadas. La primera solución, más barata, es la más frecuente en autómatas de gama
baja, mientras que la segunda, con mayores costos de diseño y desarrollo, es propia de
autómatas de gamas medias y altas, donde el incremento de precio queda compensado por
los bajos tiempos de ejecución de instrucciones, mucho menores que en la solución
estándar (décimas de microsegundos). En cualquier caso, esta decodificación interna de
instrucciones es transparente al usuario, que no puede modificarla en ninguna forma. Al ser
además específica de cada fabricante, que elige el lenguaje de programación que soportará
su autómata (instrucciones, contactos o símbolos gráficos) y la forma en que se interpretan
sus instrucciones, la decodificación no solo limita los lenguajes disponibles de
programación, sino que es la responsable de que no todas las CPU pueden ejecutar los
mismos programas, aunque hayan sido escritos en el mismo lenguaje, impidiendo, en
definitiva, el intercambio programas entre autómatas diferentes.

En algunos casos, la decodificación se realiza con la ayuda de la memoria exterior


(interprete), de la que pueden existir distintas versiones dentro de una misma familia de
autómatas, ofreciendo una amplia gama de posibilidades como:

· Modificación del lenguaje de programación.

· Tratamiento de señales analógicas.

· Manipulación de textos.

· Algoritmos de control en lazo cerrado, etc.

Esta solución aumenta la flexibilidad del sistema, pero incrementa también los tiempos
de ejecución (los quintuplica, aproximadamente), al tener que decodificar las instrucciones
según las indicaciones de una memoria exterior conectada al bus.

23
Controladores Lógicos Programables

La figura 2.3 muestra los bloques fundamentales de una CPU, donde se reconocen los
siguientes:

- ALU, “Aritmetic Logic Unit”, encargada de realizar las operaciones aritméticas y


lógicas (combinaciones Y, O, sumas, comparaciones, etc.).

- Acumulador, que almacena el resultado de la última operación realizada por la


ALU.

- Flags, o indicadores de resultado de operación (mayor que, positivo, negativo,


resultado cero, etc.).

El estado de estos flags puede ser consultado por el programa.

Figura 2.3 Diagrama de bloques de la unidad central de proceso, CPU.

24
Controladores Lógicos Programables

- Contador de programa, PC ”Program Counter”, encargado de la lectura de las


instrucciones de usuario y, por tanto, de la secuencia de ejecución. Esta secuencia
puede ser modificada con el juego de instrucciones de salto.
- Decodificador de instrucciones y secuenciador, cableado y/o programado, donde se
almacena la secuencia de puesta en marcha las rutinas de test y de error en la
ejecución, etc.
- Opcionalmente, un cartucho de memoria ROM externa, que contendría una
ampliación del interprete incorporado, a fin de que la CPU pudiera decodificar y
ejecutar instrucciones complejas o escritas en lenguajes de programación más
potentes.

Algunos autómatas incluyen junto al acumulador los registros de pila que permiten
almacenar resultados parciales del programa (obtenidos mediante instrucciones particulares
de paréntesis o bloques) antes de operar con ellos y asignar el resultado a una salida.

La combinación de la CPU con la memoria interna, imagen de entradas/salidas, y de


programa de usuario, es conocida también con el nombre de unidad de proceso o tarjeta
central, aunque algunos fabricantes denominan por extensión al conjunto simplemente
CPU.

Dada la diversidad de funciones que debe realizar la CPU, aparece, en autómatas de


gamas media y altas, una subdivisión y reparto de tareas en la misma, a fin de optimizar su
funcionamiento. Esta subdivisión puede realizarse de dos formas:

-arquitectura de coprocesador,
-estructura de control distribuido mediante el empleo de módulos inteligentes.

25
Controladores Lógicos Programables

Para la primera solución se disponen varios microprocesadores que ejecutan el


programa de forma concurrente, trabajando en paralelo y mejorando significativamente las
prestaciones del sistema en cuanto a rapidez y potencia de cálculo.

En el control distribuido con módulos inteligentes se conectan al bus procesadores


específicos especializados en tareas como la medida y regulación de temperatura, control
de posición, conexión con otros procesadores dentro de una red local, etc., lo que permite
traspasar ciertas funciones, normalmente criticas en el tiempo, a estos periféricos
inteligentes (denominados así por que incluyen sus propios procesadores y memorias),
descargando al procesador central de unos procesos a los que no podrían atender con la
necesaria rapidez.

Ambas soluciones, estructuras de coprocesadores y conexión de módulos


inteligentes, pueden coexistir en algunos modelos de autómata, proporcionando una
superior potencia de cálculo, capacidad y rapidez en la ejecución.

2.3 MEMORIA DEL AUTÓMATA.

La memoria de trabajo es el almacén donde el autómata guarda todo cuando


necesita para ejecutar la tarea de control:

● Datos del proceso


-Señales de planta, entradas y salidas.
-Variables internas, de bit y de palabra.
-Datos alfanuméricos y constantes.
●Datos de control
-Instrucciones de usuario (programa).
-Configuración del autómata (modo de funcionamiento, número de entradas/salidas
conectadas, etc.)

26
Controladores Lógicos Programables

En general, toda esta información, incluyendo el programa de usuario, esta


contenida en memorias de semiconductor.
Una memoria de semiconductor es un dispositivo electrónico capaz de almacenar
datos binarios (señales de niveles altos y bajos, “unos” y “ceros”, denominados bits), que
pueden ser leídos de posición a posición (bit a bit), o por bloques de ocho (byte) o dieciséis
posiciones (Word).
La memoria ideal para el autómata debería ser simultáneamente rápida, pequeña,
barata y de bajo consumo de energía. Como ninguna de las memorias del mercado reúne
todas estas condiciones, los autómatas combinan distintos tipos de ellas.
Una clasificación de memorias, atendiendo a sus características de lectura y escritura,
podría ser la que aparece a continuación:

-Memorias de lectura/escritura, RAM


-Memorias de solo lectura, reprogramables, ROM
-Memorias de solo lectura, reprogramables, con borrado por ultravioletas, EPROM.
-Memorias de solamente lectura, alterables por medios eléctricos, EEPROM.

Las memorias de lectura/escritura, RAM, pueden ser leídas y modificadas cuantas


veces sea necesario a través de los buses internos, y de forma rápida. Sus inconvenientes
son :
Su relativamente baja densidad de integración (poca capacidad de almacenamiento)
y, sobre todo, su carácter volátil, que provoca la pérdida de información cada vez que cae
la tensión de alimentación. Las memorias RAM se utilizan principalmente como memorias
de datos internos, y únicamente como memorias de programa en el caso de que pueda
asegurarse el mantenimiento de los datos con una batería exterior.
Las memorias de solo lectura no reprogramables, ROM, no pueden ser modificadas
en ninguna forma. Dentro del autómata, las memorias ROM se utilizan para almacenar el
programa monitor, que contiene las siguientes rutinas, incluidas por el fabricante:

-Inicialización tras puesta en tensión o reset.


-Rutinas de test y de respuesta a error de funcionamiento.

27
Controladores Lógicos Programables

-Intercambio de información con unidades exteriores.


-Lectura y escritura en las interfaces de E/S.

Además, este monitor puede contener el intérprete del programa de usuario, si


existe. El contenido de esta memoria no es accesible desde el exterior.
Las memorias reprogramables, EPROM, son memorias de solo lectura que pueden
programarse con un circuito especial, después de borrar su contenido. Las células de
memoria son borradas con luz ultravioleta que penetra en el chip a través de una ventana de
cuarzo en su cara superior. Este proceso obliga a su extracción del autómata y, por tanto, a
la interrupción del funcionamiento. Normalmente, estas memorias se utilizan para
almacenar el programa del usuario, una vez que ha sido convenientemente depurado.
Las EEPROM o memorias reprogramables son memorias de solo lectura alterables
por medios eléctricos, es decir reprogramables sobre él propio circuito, sin necesidad de
extracción y borrado exterior. Los procesos específicos de almacenamiento y borrado de las
memorias EEPROM hacen que los tiempos de acceso para lectura, y especialmente para
escritura, sean largos en comparación con los correspondientes a las memorias
RAM/EPROM. Sin embargo, desde el punto de vista del usuario, estos inconvenientes no
lo son tanto, y para él, en definitiva, las memorias EEPROM combinan la no volatilidad de
las memorias ROM y EPROM con la reprogramabilidad de las memorias RAM, que les
permite ser modificadas directamente sobre le circuito mediante señales eléctricos.
Hay que advertir, sin embargo, que el número de operaciones de borrado/escritura
está limitado a algunos cientos de miles, por lo que estas memorias, utilizadas como área
interna de trabajo, se destruirían con rapidez bajo la acción del procesador.
Así, las memorias EEPROM se emplean principalmente para almacenar programas,
aunque en la actualidad es cada vez más frecuente el uso de combinaciones
RAM+EEPROM, utilizando estas últimas como memorias de seguridad que salvan el
contenido de las RAM en caso de interrupción del suministro eléctrico. Una vez reanudada
la alimentación, el contenido de la EEPROM se vuelca de nuevo a RAM, con lo que el
autómata puede continuar en el mismo punto del programa en que fue interrumpido por la
pérdida de tensión.

28
Controladores Lógicos Programables

Las soluciones de este tipo están sustituyendo a las clásicas RAM + batería, que,
pese a ser profundamente utilizadas, no dejan de presentar problemas de mantenimiento.
La figura 2.4 muestra una clasificación de las memorias empleadas en el autómata, con la
aplicación que se da a cada una de ellas.

Figura 2.4 Tipos de memoria y aplicaciones en un autómata programable.

Atendiendo a su conexionado, las memorias de trabajo pueden ser compactas,


incluidas en el propio autómata y conteniendo todos los datos e instrucciones de control o
lo que es más frecuente, modulares y ampliables mediante cartuchos o tarjetas externas que
contienen o amplían el programa y los datos alfanuméricos.

2.3.1 Memorias Internas

En un autómata programable, memoria interna es aquella que almacena el estado de


las variables que maneja el autómata: entradas, salidas, contadores, relés internos, señales
de estado, etc.

29
Controladores Lógicos Programables

La memoria interna, de longitud invariable para cada modelo de autómata, fija sus
características funcionales en cuanto a capacidad de direccionamiento E/S, y número y tipo
de variables internas manipuladas.

Por esta razón, la clasificación de la memoria interna no se realiza atendiendo a sus


características de lectura y escritura, sino por el tipo de variables que almacena y el numero
de bits que ocupa la variable. Así, la memoria interna del autómata queda clasificada en las
siguientes áreas:

Posiciones de 1 bit (bits internos).


-Memoria imagen de entrada/salidas.
-Relés internos.
-Relés especiales/auxiliares.

Posiciones de 8, 16 o más bits (registros internos)


-Temporizadores.
-Contadores.
-Otros registros de uso general.

Las variables contenidas en la memoria interna pueden ser consultadas y


modificadas continuamente por el programa, cualquier número de veces. Esta actualización
continua de los datos obliga a construir la memoria con dispositivos RAM.

El área de memoria imagen almacena las últimas señales leídas en la entrada y


enviadas a la salida, actualizándose tras cada ejecución completa del programa.

Después de ejecutar el programa, la CPU ordena el intercambio de señales entre las


interfaces E/S y la memoria imagen, de manera que mientras dura la ejecución, los estados

30
Controladores Lógicos Programables

de las señales de entrada considerados para el cálculo no son los actuales de planta, sino los
presentes en la memoria imagen leídos en el ciclo anterior.

De la misma manera, los resultados obtenidos en el cálculo no van directamente a la


interfaz de salidas sino a la memoria imagen, discurre así:

-Antes de comenzar la ejecución, la CPU consulta los estados de las señales en la interfaz
de entradas y carga con ellos la memoria imagen de entradas (figuras 2.5 a)
-Durante la ejecución, la CPU, y bajo control del programa de usuario, realiza los cálculos a
partir de los datos en la memoria imagen y del estado de los temporizadores, contadores y
reles internos. El resultado de estos cálculos queda depositado en la memoria imagen de
salidas (fig. 2.5 b).

-Finalizada la ejecución, la CPU trasfiere a las interfaces de salida los estados de las señales
contenidos en la memoria imagen de salidas, quedando el sistema preparado para comenzar
un nuevo ciclo (figura 2.5 c).

La secuencia real en el autómata no es exactamente la indicada, ya que para


optimizar los tiempos de acceso a las interfaces, los procesos de lectura de entradas y
escritura de salidas se efectúan consecutivamente, según muestra la figura 2.6

31
Controladores Lógicos Programables

Figura 2.5 Acceso a las memorias imagen de entradas y salidas.

32
Controladores Lógicos Programables

Figura 2.6 Secuencia de ejecución del programa

Las posiciones de la memoria imagen son denominadas puntos E/S “I/O points”, y
su número es variable dependiendo del modelo de autómata y de la configuración del
sistema. Precisamente, una clasificación frecuente de autómatas hace referencia al número
de puntos E/S que la CPU puede manejar. Así, se habla de autómatas de gama.

-Baja, con E/S < 256


-Mediana, con 256 ≤ E/S ≤ 1024
-Alta, con E/S ≥ 1024.

El resto de la memoria interna, excluyendo estas memorias imagen, se utiliza, en


general, como memoria de datos, relés internos y registro internos. Entre estos últimos se
encuentran algunos de tipo singular como los temporizadores y contadores.
Los relés internos ocupan posiciones RAM de 1 bit, y son utilizados como área de
datos temporales, como salida de resultados de operaciones intermedias, y para controlar
otros bits o registros, temporizadores y contadores. Estos relés internos no está asociados a

33
Controladores Lógicos Programables

ningún borne, por lo que no pueden controlar cargas externas si no son antes transferidos a
un punto E/S.
Algunas posiciones correspondientes a relés internos están mantenidas por batería y
protegidas contra pérdidas de tensión. Las direcciones correspondientes a estos relés
protegidos (<<holding relays>>) están claramente especificadas en los catálogos del
fabricante.

Los réles auxiliares/especíales se colocan también sobre posiciones de 1 bit y


guardan señales del sistema, como relojes (en diferentes bases de tiempo), bits de control,
flags de estados de la CPU, e información sobre el autómata (Run, Stop, Halt, errores,
etc.).
Estos relés pueden consultarse y utilizarse desde el programa de usuario, para sincronizar el
funcionamiento, responder de forma automática a las variaciones de estado en el autómata,
etc.

El área de temporizadores y contadores ocupa posiciones de 16 o más bits, capaces


de almacenar los valores de estos elementos, valores que normalmente se presentan al
usuario bajo codificación BCD entre 0000 y 9999.

El área de registros internos se utiliza para almacenar y manipular palabras de datos


y valores numéricos y es únicamente accesible en unidades de byte o de palabra, por medio
de instrucciones aritméticas y de manipulación de datos.

Esta área contiene también los valores de los registros de desplazamiento, que
pueden ser leídos como palabras, o posición a posición (bit a bit).

La mayoría de autómatas permite mantener la información de registros, incluyendo


temporizadores y contadores, protegida contra pérdidas de tensión, protegida contra
pérdidas de tensión, de forma análoga a la comentada para relés internos. Esta protección se
realiza bien de forma automática, bien programada la opción sobre algunos relés especiales.

34
Controladores Lógicos Programables

2.3.2 Memoria de Programa

La memoria de programa, normalmente externa y enchufable a la CPU, almacena el


programa escrito por el usuario para su aplicación. Adicionalmente puede contener datos
alfanuméricos y textos variables, y también información parametrizada sobre el sistema,
por ejemplo nombre o identificador del programa escrito, indicaciones sobre la
configuración de E/S o sobre la red de autómatas, si existe, etc.

Cada instrucción del usuario ocupa un paso o dirección del programa y necesita,
normalmente, para ser almacenada, dos posiciones de memoria de semiconductor (dos
bytes). La capacidad total del programa de usuario depende del tipo de CPU utilizada, y
puede oscilar entre los 1 k pasos de un autómata compacto hasta algún centenar de
instrucciones en un autómata de gama alta.

Las memorias de usuario son siempre de tipo permanente RAM + batería o


EPROM/EEPROM. Por lo general, todos los fabricantes de autómatas ofrecen la
posibilidad de utilizar memorias RAM con batería para la fase de desarrollo y depuración
de los programas, y de pasar estos a memorias no volátiles EPROM o EEPROM una vez
finalizada esta fase.

Estas memorias no volátiles se suministran como cartuchos enchufables al autómata


“memory packs” en el zócalo previsto sobre la CPU, o como tarjetas de memoria a conectar
en el bastidor, ocupando una posición del mismo.

La ejecución del programa en el módulo es siempre prioritaria, de forma que se da


tensión al autómata con un módulo concertado, la CPU ejecuta su programa y no el
contenido en memoria RAM interna.

35
Controladores Lógicos Programables

La transferencia del programa a los módulos de memoria (grabación) se realiza bajo


control de la unidad de programación, y puede hacerse sobre el autómata o sobre la misma
unidad de programación, según el modelo considerado.

El conjunto de direcciones correspondientes a todas las posiciones de memoria que


puede direccionar la CPU, es decir, de toda la memoria de trabajo, se denomina en el
autómata mapa de memoria.

La longitud de este mapa de memoria depende de tres factores:

-La capacidad de direccionamiento de la CPU, que determina el número de direcciones


asignadas a los dispositivos internos.

-El numero de entradas/salidas conectadas, que determina la longitud de la memoria


imagen E/S.

-La longitud de la memoria de usuario utilizada.

Dada una CPU concreta, la longitud total del mapa de memoria esta siempre
limitada a un determinado valor.

La figura 2.7 muestra la estructura típica de la memoria de trabajo de un autómata, y


los mapas de memoria resultantes para dos autómatas tomados como ejemplo: el micro
autómata compacto de bajo coste IZUMI MICRO-1 y el gran autómata modular de
procesos SIEMENS S5-155U.

36
Controladores Lógicos Programables

Figura 2.7 Estructura típica de un mapa de memoria y ejemplos

2.4 INTERFACES DE ENTRADA Y SALIDA

Las interfaces de entrada y salida establecen la comunicación entre la unidad central


y el proceso, filtrando, adaptando y codificando de forma comprensible para dicha unidad
las señales procedentes de los elementos de entrada, y decodificando y amplificando las
señales generadas durante la ejecución del programa antes de enviarlas a los elementos de
salida.

37
Controladores Lógicos Programables

Dada la enorme cantidad de variantes que pueden presentarse en las señales de


proceso, es evidente que deberá existir también un gran número de tipos de interfaces, tanto
de entradas como de salidas.

Estas interfaces pueden clasificarse de diferentes formas, según se muestra a continuación.

* Por el tipo de señales:


- Digitales de 1 bit.
- Digitales de varios bits.
- Analógicas.

* Por la tensión de alimentación:


- De corriente continua (estáticas de 24/110 Vcc)
- De corriente continua a colector abierto. (PNP o NPN).
- De corriente alterna (60/110/220 V ca).
- Salidas por relé (libres de tensión).
● Por el aislamiento:
- Con separación galvánica (opto-acopladores).
- Con acoplamiento directo.
● Por la forma de comunicación con la unidad central:
- Comunicación serie
- Comunicación paralelo.
● Por la ubicación:
- Locales
- Remotos.

En la gama de pequeños autómatas, el tipo de interfaces disponibles suele ser más


limitado, siendo las más frecuentes, clasificadas por entradas y salidas, las siguientes:

38
Controladores Lógicos Programables

Entradas:
-Corrientes continúa a 24 o 48 vcc.
-Corriente alterna a 110 o 220 Vca.
-Analógicas de 0-10 Vcc o 4-20 mA.

Salidas:
-Por relé.
Estáticas por triac a 220 Vca máximo.
-Colector abierto para 24 o 48 Vcc.
-Analógicas de 0-10 V o 4-20 mA.

En la gama de autómatas modulares, construidos generalmente sobre un rack que


permite la ampliación con distintas tarjetas de interfaz, las posibilidades son mayores,
llegando hasta la conexión directa de diversos tipos de transductores y periféricos.

2.5 FUENTE DE ALIMENTACIÓN

La fuente de alimentación proporciona las tensiones necesarias para el


funcionamiento de los distintos circuitos del sistema.
Un autómata programable está formado por bloques que requieren niveles de
tensión y de potencia diferentes y que, además, están sometidos a condiciones ambientales
de ruido electromagnético también distintas.
Por todo ello es frecuente que la alimentación se obtenga de varias fuentes
separadas, procurando independizar las siguientes partes del circuito:

-Unidad central e interfaces E/S (alimentación autómata).


-Alimentación de entradas.
Alimentación de salidas (cargas) de tipo electromagnético.
Esta división, salvo en pequeños compactos, suele mantenerse en todos los
autómatas, que necesitan al menos de dos fuentes de alimentación independientes:

39
Controladores Lógicos Programables

-Alimentación del autómata (CPU, memorias e interfaces).


-Alimentación de los emisores de señal y de los actuadotes de salida.

La alimentación a la CPU puede ser de continua a 24 vcc, tensión muy frecuente en


cuadros de distribución, o en alterna a 110/220 Vca. En cualquier caso, la propia CPU
alimenta las interfaces conectadas a través del bus interno.

La alimentación a los circuitos E/S puede realizarse, según tipos, en alterna a


48/110/220 Vca, o en continua a 12/24/48 Vcc.

La fuente de alimentación del autómata puede incorporar una batería tampón, que se
utiliza para el mantenimiento de algunas posiciones internas (relés o registros) y del
programa de usuario en memoria RAM, cuando falla la alimentación o se desconecta el
autómata. La capacidad de esta batería, normalmente a 3,5 V, oscila entre los 1500 m Ah y
1 año de vida para las más pequeñas utilizadas en los autómatas compactos, y los 5000 m
Ah y 10 años de vida en las necesarias en autómatas modulares de gama alta.

El estado de la batería está monitorizado sobre un diodo LED en la fuente de


alimentación, que parpadea o se apaga en caso de defecto o ausencia de la misma.

Los autómatas compactos suelen disponer de una salida de tensión a 24 Vcc de baja
potencia, para alimentación directa de sensores actuadores, aunque la carga que puede
soportar es muy reducida, del orden de décimas de amperio.

La figura 2.8 muestra dos alternativas extremas de alimentación a un sistema de


autómata y unidad de expansión de entradas/salidas locales (unidas por el bus interno), con
sus emisores y actuadores:

-En el primer caso, una única fuente (figura 2.8 a) incorporada en el autómata alimenta a la
CPU con sus interfaces de entrada y salida y a los sensores y actuadores del sistema.

40
Controladores Lógicos Programables

La tensión de alimentación a los circuitos internos de la unidad de expansión llega a ella a


través del bus interno.
-En el segundo ejemplo (fig. 2.8 b), el sistema utiliza varias fuentes de alimentación
diferentes:
-La propia del autómata, interna o externa a el.
-La auxiliar para alimentación de la unidad E/S.
-Fuente de alimentación CC para actuadores de salida.
-Fuente de alimentación CA para actuadores de salida.

Figura 2.8 a y b ejemplos de conexiones de alimentación.

41
Controladores Lógicos Programables

Es frecuente, en sistemas modulares como el que se presenta en la figura 4.8b, que


la propia fuente de alimentación de la CPU o del bastidor de expansión proporcione
directamente una salida auxiliar a 24 Vcc, con nivel de potencia suficiente para
alimentación de sensores: en el ejemplo, se utiliza esta fuente auxiliar para alimentación de
los interruptores de entrada.

En ambos casos, y así ocurre en general, la alimentación a la CPU proporciona


además la tensión de funcionamiento de la unidad portátil de programación, concertada a
ella directamente sobre un zócalo o a través de un cable.

La elección de uno u otro esquema de alimentación para un sistema de autómata


dependen fundamentalmente de las características de sus entradas y salidas:

Tabla 2.1 Características nominales de fuentes de alimentación

TENSION DE 100/120 AC 100/120 AC


ENTRADA (V) 100/240 AC 200/240 AC 24 DC 200/240 AC
TENSION DE
SALIDA (V) 12 DC 12 DC 12 DC 24 DC
CORRIENTE
NOMINAL 1,25 2,00 1,70 1,00
DE SALIDA (A)
FRECUENCIA 50/60 HZ 50/60 HZ -- 50/60 HZ
PROTECCION
SOBRECORRIENT SI SI SI SI
E
APLICACIONES CPU + E/S CPU + E/S CPU + E/S CPU + E/S

42
Controladores Lógicos Programables

-Niveles de potencia necesarios para la aplicación.


-Compatibilidad entre la tensión auxiliar suministrada por el autómata y las necesarias en el
sistema de E/S.
-Funcionamiento o no de sensores y cargas a igual tensión de alimentación.
-Necesidad de aislamiento galvánico en el sistema de E/S.

Los fabricantes proporcionan, sobre todo en sistemas modulares tipo rack, módulos
de alimentación con diferentes tensiones de salida y niveles de potencia suficientes, en
general, para cubrir cualquier necesidad de alimentación.

Los fabricantes proporcionan, sobre todo en sistemas modulares tipo rack, módulos
de alimentación con diferentes tensiones de salida y niveles de potencia suficientes, en
general, para cubrir cualquier necesidad de alimentación.
La tabla 2.1 muestra por ejemplo, los módulos de alimentación disponibles para la serie de
autómatas FA3S de IZUMI.

Los módulos de salida a 12 VCC están previos para alimentación de la CPU y las
interfaces E/S conectadas en el bastidor, así como para la unidad de programación, cuando
se utilice. La elección de uno u otro depende de la tensión de entrada disponible, y del
número de interfaces conectadas, que determina la carga total de corriente. Si esta carga
resulta elevada pueden conectarse varios módulos en paralelo.
Aunque, en general, cualquiera de estos módulos puede utilizarse para alimentación
de sensores y actuadores de entrada y salida, existe uno específico, con tensión de salida a
24 Vcc, para esta aplicación.

RESUMEN

43
Controladores Lógicos Programables

El autómata es una máquina industrial programable basada en un sistema de


microprocesador, con un hardware estándar y un software incorporado que permite la
ejecución de programas de usuario, escritos en algún lenguaje de programación.
Como en todo sistema microprocesador, en el autómata se identifican cuatro bloques
básicos diferenciados:

-CPU, o unidad central de proceso.


-Memoria interna de trabajo (RAM).
-Memoria de programa (RAM, EPROM, EEPROM).
-Interfaces E/S.

En particular, las interfaces E/S están especialmente diseñadas para interconectar el


autómata con procesos industriales, disponiéndose de variados tipos, habida cuenta la
diversidad de formas que pueden adoptar las señales procedentes o necesarias en aquellos:
Vcc,

-Tensiones continuas 12/24/48 Vcc


-Tensiones alternas 110/220 Vca,
-Pulsos de montaje rápido 0/5 Vcc, 0/24Vcc,
-Señales analógicas en tensión o corriente, etc.

En la mayoría de sistemas PLC el número (hasta la capacidad soportada por la


CPU), tipo y ubicación de estas interfaces es decidido por el usuario, que adapta así la
máquina, junto con las ordenes definida, en su programa, a las necesidades de su
aplicación.
2.6 MODOS DE OPERACIÓN

44
Controladores Lógicos Programables

INTRODUCCIÓN

Los autómatas programables son máquinas secuénciales que ejecutan


correlativamente las instrucciones indicadas en el programa de usuario almacenado en su
memoria, generando unas órdenes o señales de mando a partir de las señales de entrada
leídas de la planta: al detectarse cambios en las señales, el autómata reacciona según el
programa hasta obtener las órdenes de salida necesarias. Esta secuencia se ejecuta
continuamente para conseguir el control actualizado del proceso.

La secuencia de operación del autómata se puede dividir en tres fases principales:

-Lectura de señales desde la interfaz de entradas.


-Escritura de señales en la interfaz de salidas.
-Procesado del programa para obtención de las señales de control.

A fin de optimizar los tiempos de acceso a las interfaces E/S, se realiza la lectura y
escritura de señales simultáneamente para todas las entradas y salidas complicadas, de
forma que las entradas leídas se almacenan en una memoria temporal o memoria imagen de
entradas, a la que acude la CPU durante la ejecución del programa, mientras que los
resultados o señales de mando se van almacenando en otra memoria temporal, o memoria
imagen de salidas, según se van obteniendo.

Finalizada la ejecución, estos resultados se colocan en la interfaz de salida de una


sola vez.
El Autómata realiza también una serie de acciones comunes que garantizan la
seguridad en el funcionamiento, como son los chequeos de memoria y de CPU,
comprobación del “watchdog” o reloj de guarda.

45
Controladores Lógicos Programables

Además, y eventualmente, establece comunicación con periféricos exteriores, por


ejemplo para volcado de datos en impresora, comunicación con otros autómatas y
ordenadores, conexión con la unidad de programación, etc.

Todas estas acciones se van repitiendo periódicamente, definiendo un ciclo de


operación que necesita de un cierto tiempo para ser ejecutado. Este tiempo será
determinante cuando el autómata pretenda controlar procesos rápidos, con señales de muy
corta duración o alta frecuencia de conmutación.

En la presente unidad se describen el ciclo de operación del autómata y las


comprobaciones o tests que realiza durante su funcionamiento, con una valoración
cualitativa de los tiempos que emplea en realizar cada operación. Se define también el
concepto de respuesta del autómata en tiempo real y se indican las soluciones que ofrecen
los fabricantes para el control de procesos rápidos.

2.6.1 MODOS DE OPERACIÓN

Un autómata bajo tensión puede mantenerse en uno de los siguientes estados de


funcionamiento (modos de operación):

RUN: El autómata ejecuta normalmente el programa de usuario contenido en su memoria.


-Las salidas evolucionan ON/OFF según el estado de las entradas y las órdenes del
programa.
-Los temporizadores y contadores programados operan con normalidad.

STOP: La ejecución del programa se detiene por orden del usuario.


-Las salidas pasan a estado OFF.
-Las posiciones internas (relés, registros), contadores y temporizadores mantienen su estado
en memoria interna.

46
Controladores Lógicos Programables

En el paso a RUN, todas las posiciones internas, excepto las mantenidas, o


protegidas contra perdidas de tensión, pasan a estado OFF.

ERROR: El autómata detiene la ejecución por un error de funcionamiento y queda


bloqueado hasta que se corrige el error.
-Las salidas pasan a estado OFF.
-Corregido el error, el autómata sale de este modo bien por reset de puesta en tensión u
ordenado desde la CPU, bien por comando enviado desde la unidad de programación.

El modo STOP es normalmente utilizado para servicios de mantenimiento o


diagnóstico, al congelar el funcionamiento del autómata sin pérdida de la información
contenida en su interior, que puede entonces ser visualizada desde la unidad de
programación.
El modo de operación del autómata puede ser controlado desde conmutadores
situados en la misma CPU, o desde la unidad de programación, con el envío de los
comandos adecuados.

Ambas posibilidades pueden encontrarse simultáneamente en autómatas de gamas


media y alta, mientras que los modelos compactos de gama baja suelen incluir solo la
segunda.
Algunos autómatas compactos no disponen de conmutadores para el cambio de
modo, aunque pueden sustituirlos por interruptores externos que se leen a través de puntos
de la interfaz de entradas, asignados para esta función mediante los parámetros de
configuración.

47
Controladores Lógicos Programables

Figura 2.9 Modos de Operación de un Autómata

Tras la puesta en tensión, el autómata pasa a modos RUN o HALT/STOP,


dependiendo del modelo y de la configuración del mismo. En cualquier caso, las
conmutaciones RUN/STOP pueden ser forzadas por el usuario desde la unidad de
programación o desde los interruptores previstos a tal efecto sobre la CPU.

Si en el intento de puesta en marcha o paso a estado RUN el autómata detecta algún


mal funcionamiento sobre el aparato (conexiones, alimentación, etc.) o sobre el programa
(sintaxis), no se mantiene el estado RUN y la CPU cae en ERROR. Más adelante se
discutirán posibles causas de error y los procesos de depuración subsiguientes.
La figura 2.9 muestra la relación entre los distintos modos, indicando los cambios
entre ellos con los códigos:

SIS – Cambio de modo ordenado por el sistema monitor.


CPU – Cambio de modo ordenado por usuario desde conmutadores de la CPU.
PRG – Cambio de modo ordenado por usuario por comandos desde la unidad de
programación.

48
Controladores Lógicos Programables

El autómata puede disponer de una función de Reset que, activada desde la CPU o
desde la unidad de programación, borra todas las posiciones internas, incluso las
mantenidas, y deja al autómata totalmente reinicializando para comenzar a ejecutar el
programa.

Normalmente, y puesto que en el modo RUN no puede modificarse el programa de


usuario (solamente es posible en autómatas con programación On-Line), el aparato debe
estar en modo HALT/STOP cuando se desea introducir o modificar un programa de
aplicación.

La comprobación del modo de funcionamiento se realiza fácilmente sobre unos


LED incorporados en la CPU, por observación de su estado apagado, encendido o
parpadeante, facilitando las labores de mantenimiento y puesta a punto en caso de error.

La figura 2.10 muestra tres posibles disposiciones de estos indicadores LED,


correspondientes a otros tantos autómatas Izaumi FA-2j, Matsushita FP1, y Telemecanique
TSX 17-20, respectivamente.

Como se observa en la figura, algunos autómatas incluyen indicadores específicos


para monitorización del estado de las conexiones E/S, de la memoria de programa, de
funcionamiento de la CPU, etc., lo que facilita la identificación rápida de la avería, aunque
siempre puede leerse el código o identificador de error desde la unidad de programación.

49
Controladores Lógicos Programables

Figura 2.10 Indicadores LED de la CPU.

2.7 CICLO DE FUNCIONAMIENTO

El funcionamiento del autómata es, salvo el proceso inicial que sigue a un Reset, de
tipo secuencial y cíclico, es decir, las operaciones tienen lugar una tras otra, y se van
repitiendo continuamente mientras el autómata esté bajo tensión.

La figura 2.11 muestra esquemáticamente la secuencia de operaciones que ejecuta el


autómata, sobre la que se define el llamado ciclo de operación con aquellas que se repiten
indefinidamente.

Como se muestra en la figura (2.11), antes de entrar en el ciclo de operación el


autómata realiza una serie de acciones comunes (power-on sequence), que tratan
fundamentalmente de inicializar los estados del mismo y de checar el hardware.

50
Controladores Lógicos Programables

Estas rutinas de chequeo, incluidas en el monitor ROM, comprueban:

-El bus de conexión de las unidades de E/S.


-El nivel de la batería, si esta existe.
-La conexión de las memorias internas del sistema.
-El módulo de memoria exterior conectado, si existe.

Figura 2.11 Ciclo de Funcionamiento del Autómata.

51
Controladores Lógicos Programables

Si se encuentra algún error en el chequeo, se activa el LED de error y queda


registrado el código del mismo. El funcionamiento puede quedar interrumpido en ese
punto, según la gravedad del error.

Comprobadas las conexiones, se inicializan las variables internas:

-Se ponen a OFF las posiciones de memoria interna (excepto las mantenidas o protegidas
contra perdidas de tensión).

-Se borran todas las posiciones de memoria imagen E/S.

-Se borran todos los contadores y temporizadores (excepto los mantenidos o protegidos
contra pérdidas de tensión).

El tiempo total empleado en ejecutar estas rutinas de inicialización es siempre


menor que segundo.

Como ejemplo, la figura 2.12 muestra los tiempos de puesta en marcha de un


autómata Hitachi de la serie E (microautómatas) en tres circunstancias:

-Arranque simultáneo con la puesta en tensión.

-Arranque tras la puesta en tensión.

-Arranque desde el estado STOP.

52
Controladores Lógicos Programables

Figura 2.12 Tiempos de puesta en marcha de microautómatas de Hitachi.

53
Controladores Lógicos Programables

Transcurrida la secuencia de inicialización, y si no han aparecido errores, el


autómata entra en el ciclo de operación, constituido por aquellas operaciones que se
ejecutan continuamente. Este ciclo puede considerarse dividido en tres bloques (figura
2.11):

-Proceso común,
-Ejecución del programa de usuario,
-Servicio a periféricos.

En el primero de ellos se comprueba el reloj de guarda y realizan los chequeos


cíclicos de conexiones y de memoria de programa, protegiendo al sistema contra:

-Errores de hardware (conexiones I/O, ausencia de memoria de programa, etc.).


-Errores de sintaxis (programa imposible de ejecutar).

El reloj de guarda (Watchdog) es un temporizador interno no accesible por el


usuario que fija el tiempo máximo de ejecución de un ciclo de operación. Si este
temporizador alcanza el valor prefijado, entre 0,1 y 0,5 según modelos, el autómata pasa al
estado STOP y se ilumina el indicador de error.

Las posibles causas para la activación del reloj de guarda pueden ser:

-Existencia de algún error de sintaxis en el programa, de forma que nunca se alcanza la


instrucción END.

-Bloqueo de la comunicación con periféricos externos.

-Avería en el funcionamiento de la CPU, etc.

54
Controladores Lógicos Programables

El chequeo cíclico de conexiones comprueba los siguientes puntos:

-Niveles de las tensiones de alimentación,


-Estado de la batería, si existe, y
-Buses de conexión con las interfaces E/S.

En el chequeo de la memoria de programa se comprueban la integridad de la misma y los


posibles errores de sintaxis y gramática:

-Mantenimiento de los datos, comprobados con el “ checksum”.


-Existencia de la instrucción END de fin de programa.
-Estructuras de salto y anidamiento de bloques correctas.
-Códigos de instrucción correctos, etc.

Este proceso común no supera normalmente 1 o 2 milisegundos de tiempo.

En el segundo bloque de operaciones, ejecución del programa de usuario, se


consultan y actualizan los estados de las entradas y las salidas y se elaboran las órdenes de
mando a partir de ellos, por ejecución secuencial de las instrucciones del programa.

El tiempo de ejecución de este bloque de operaciones es la suma del:

-Tiempo de acceso a interfaces de E/S,


-Tiempo de escrutación del programa.

Que a su vez dependen, respectivamente, de:

-Número y ubicación de las interfaces de E/S.


-Longitud del programa y tipo de CPU que lo procesa.

55
Controladores Lógicos Programables

El tiempo de acceso a las interfaces depende de si estas están cableadas como


locales o remotas (conectadas a la CPU por el bus interno, o a través de procesadores de
comunicaciones), y del número de entradas/salidas instaladas.

En un autómata compacto o modular con interfaces locales, este tiempo es del orden
de 5 ms, aunque puede variar significamente de uno a otro modelo.

El tiempo de ejecución del programa depende del tipo de instrucciones que se


procesan, siendo mayor en caso de instrucciones aritméticas o de manipulación de datos y
del modelo de CPU que lo ejecuta, reduciéndose si el autómata utiliza procesadores a
medida o personalizados (custom) en vez de microprocesadores estándar.

La tabla 2.2 muestra los tiempos de ejecución de instrucciones, en microsegundos,


de la gama de autómatas OMRON. Los tiempos más bajos corresponden a la ejecución de
las instrucciones básicas (AND, OR, etc. ), y los más largos a los de manipulación de datos,
contadores y temporizadores.

El tercer bloque de operaciones dentro de un ciclo de ejecución, el servicio a


periféricos externos, solo es atendido si hay pendiente algún intercambio con el exterior.
Estos periféricos se comunican con el autómata bien directamente, a través de un
conector situado sobre la CPU, bien a través de procesadores de comunicaciones
específicos, que soportan los protocolos de comunicación descargando a la unidad de
control de esta tarea.

La comunicación a través del conector incorporado queda reservada casi


exclusivamente para la unidad de programación, aunque existen productos de mercado (por
ejemplo, visualizadores y terminales de operador) directamente conectables a esta línea.

56
Controladores Lógicos Programables

Tabla 2.2 Familia de autómatas OMRON y tiempos de ejecución.

TIEMPO DE
AUTOMATA NUMERO DE EJECUCION
PUNTOS E/S (US/INSTR.)
C 2000 H
ALTA C 1000 H 2048 0,4 A 2,4
GAMA DE C 200 1680 0,75 A 2,25
C 500 512 3 A 83
AUTOMATAS
MEDIA C 120 256 3 A 83
SERIE K 100 A 148 4 A 95
BAJA SERIE P 36 A 120 4 A 95
C 20 84 4 A 80

La conexión con otros periféricos se realiza normalmente a través de procesadores


de comunicaciones, que permiten el enlace con:

-Ordenadores.
-Impresoras.
-Visualizadores de plasma o siete segmentos.
-Lectores de códigos de barra.
-Otros autómatas, etc.

Una vez establecida la comunicación, la CPU dedica un tiempo limitado, de 1 a 2


ms, en atender al intercambio de datos. Si este tiempo no fuera suficiente, el servicio queda
interrumpido hasta el siguiente ciclo (fig. 2.13).

Esta suspensión del servicio puede llegar a ser apreciable en procesos de


monitorización de estados, cuando la unidad de programación u otro periférico específico
pretende visualizar la evolución de las variables en el autómata, dando como resultado la
aparición de un retardo entre el estado de los LED’S indicadores de señal en las interfaces

57
Controladores Lógicos Programables

de E/S y la información visualizada sobre la unidad externa. Para el resto de servicios,


conexión con impresora, con monitores o visualizadores industriales, etc., los retardos
resultan inapreciables.

2.7.1 CHEQUEOS DEL SISTEMA

Como se ha indicado en el apartado anterior, el autómata incorpora rutinas de autochequeo ,


en su monitor ROM, que le permiten diagnosticar el estado del programa y del hardware
conectado.
Estas rutinas pueden ser:

1.- Iniciales, que corren únicamente tras la puesta o reanudación de la tensión.


2.- Cíclicas, que se repiten continuamente mientras el autómata esta ejecutando el
programa.
Las primeras se encargan de comprobar las conexiones físicas del sistema, y de
identificar la configuración existente:

-Comprobacion de la CPU:
Microprograma.
Memoria interna.
Reloj de guarda, etc.
-Comprobación de la memoria de programa:
Control de presencia.
Identificación de tipo.
Comprobación del contenido (cheksum).
-Comprobación de interfaces E/S:
Control de presencia.
Identificación de los tipos.
Generación de la tabla de direcciones.

58
Controladores Lógicos Programables

Figura 2.13 Suspensión del servicio de atención a periféricos externos.

59
Controladores Lógicos Programables

Las rutinas cíclicas se encargan de comprobar la integridad del programa y de las


conexiones E/S utilizadas en el mismo:

-Control de memoria interna (direcciones y datos).


-Comprobación del contenido de memoria de programa (cheksum).
-Control de presencia y funcionamiento de interfaces E/S.
-Comprobaciones del bus interno y de las correctas transferencias de datos sobre él.

Si en alguno de los chequeos o comprobaciones anteriores se detecta algún


problema, el autómata acusa el error, memoriza el código identificador correspondiente y,
eventualmente, señaliza la situación iluminado el LED de error y algún otro especifico, si lo
posee.

Combinando el estado de los diferentes pilotos y/o estudiando los códigos de error,
es posible analizar los defectos y corregirlos con rapidez.

La identificación completa del error se realiza visualizando una tabla cruzada de


códigos y nombres de error.

El fabricante incluye siempre en la documentación del autómata un capítulo de


diagnóstico y corrección de errores (troubleshooting) que permite, primero, la
identificación del mismo, y proporciona, después, posibles soluciones para su corrección.

Los errores pueden clasificarse en dos categorías: fatales y no fatales. Los primeros
provocan la detención del autómata (STOP) y exigen la reiniciación de la máquina por reset
o puesta en tensión.
Los errores no fatales quedan recogidos y señalizados en el autómata, pero no
provocan la parada de la máquina.

60
Controladores Lógicos Programables

Algunos autómatas pueden disponer de un histórico de errores, que van


almacenando los errores producidos con sus códigos de identificación, e incluso la fecha y
hora en que se producen, si la CPU dispone de reloj de tiempo real.

Los contenidos de esta tabla de registros se van actualizando conforme aparecen nuevos
errores, siempre que estos no provoquen la parada del autómata.

Los errores más frecuentemente detectados son:

-Fallos de alimentación,
-Ausencia del modulo de memoria (autómatas sin RAM de programa interna),
-Desbordamiento del reloj de guarda,
-Pérdida o destrucción del programa o parte de el,
-Valores de preselección de temporizadores y contadores fuera de rango,
-Fallos de conexión con las interfaces de entrada/salida,
-fallo de conexión con la unidad de programación o con otros autómatas dentro de una red,
-Direccionamiento incorrecto de interfaces E/S o de variables internas.
-Imposibilidad de carga del programa (demasiado largo, o incorrectamente identificado),
etc.

Además de las rutinas de autochequeo incorporadas en el monitor del autómata, las


unidades de programación pueden disponer de comandos de test que se encargan de realizar
una comprobación sistemática de todo el sistema: entradas/salidas, conexiones del bus,
estado de la CPU y de las memorias, conexiones con la unidad de programación, teclados y
visualizadores de esta, etc.

Esta función de test, si existe, es siempre ordenada por el usuario, a diferencia de las
rutinas de auto chequeos anteriores, de activación automática.

61
Controladores Lógicos Programables

2.8 TIEMPO DE EJECUCIÓN Y CONTROL EN TIEMPO REAL

El tiempo total que el autómata emplea para realizar un ciclo de operación se llama
tiempo de ejecución de ciclo o más sencillamente tiempo de ciclo (Scan Time). Dicho
tiempo depende de:

-El número de entradas/salidas involucradas.


-La longitud del programa de usuario.
-El numero y tipo de periféricos conectados al autómata.

El tiempo total de ciclo es entonces la suma de los tiempos empleados en realizar las
distintas operaciones del ciclo, a saber:

-Autodiagnósticos.
-Actualización de E/S.
-Ejecución (escrutación) del programa.
-Servicio a periféricos.

Los tiempos empleados en chequeos y comprobaciones cíclicas (autodiagnósticos)


son del orden de 1 a 2 ms, al igual que los consumidos en la atención a periféricos externos.

Los tiempos de ejecución de instrucciones se miden en unidades de microsegundos


(us), resultando un tiempo de escrutación del programa variable en función del número y
tipo de instrucciones contenidas. Precisamente, el tiempo de escrutacion es uno de los
parámetros que caracterizan a un autómata, expresado normalmente en milisegundos por
cada mil instrucciones (ms/k).

62
Controladores Lógicos Programables

Tabla 2.3 Retardo de conmutación típicos de interfaces de autómatas (ms).

INTERFAZ ENTRADA (TINP DEL) SALIDA (TOUT DEL)


CONMUTACION AC DC RELE TRANSISTOR TRIAC
OFF- ON 15-30 5-10 5-15 0,5, - 2 1-10
ON- OFF 15-30 5-10 5-20 1-2 11-12

Lógicamente, el tiempo resultante dependerá del tipo de instrucciones elegidas, por


lo que el fabricante suele indicar las utilizadas como base de cálculo (boolenas, aritméticas,
de temporizacion, etc.), y las proporciones entre ellas dentro del programa muestra.

Son tiempos típicos de 5 a 15 ms/k instrucciones, aunque la aplicación de nuevas


tecnologías y diseños a la CPU están reduciendo los tiempos a valores menores de 1 ms/k
instrucciones.
Los tiempos de acceso al exterior para lectura/escritura de datos son del orden de 1 a
5 ms, dependiendo del número de E/S involucradas, de la CPU del autómata, de si este es
compacto o modular, si se utilizan o no entradas/salidas remotas, etc.

En un autómata estándar de gama media, para una aplicación que necesite


aproximadamente unas 1000 instrucciones, el tiempo de ciclo total puede, por tanto,
estimarse del orden de 20 milisegundos.

Este tiempo de ciclo será uno de los factores determinantes en el diseño del sistema
de control cuando en este aparezcan muy bajas constantes de tiempo (sistemas de respuesta
rápida), pero no el único a considerar, ya que también la electrónica de las interfaces
introduce retardos adicionales.

La lectura/escritura de señales de planta, realizada a través de las interfaces de


entrada/salida, está afectada por los retardos propios de estos circuitos que, al incluir filtros
que tratan de evitar la entrada de ruido eléctrico en el autómata, introducen también

63
Controladores Lógicos Programables

retardos en las conmutaciones de la señal, limitando la frecuencia máxima de estas a


valores inferiores a 100 hz.

La tabla 2.3 presenta los rangos de retardo máximo típicos, en milisegundos, para
distintas interfaces de entrada y salida en las conmutaciones de encendido a apagado y
viceversa.

Como se observa, las entradas en DC son más rápidas que en AC, por la mayor
necesidad de filtrado de las tensiones de red, mientras que las salidas estáticas son también
más rápidas que las salidas por relé. Nótese el largo tiempo de conmutación ON-OFF de
la salida por triac, por el retardo que introduce el apagado natural (a corriente cero) del
dispositivo.

Si el proceso utiliza además señales analógicas, será preciso considerar también los
tiempos de conversión A/D y D/A, lo que, dado el procedimiento de conversión por doble
rampa normalmente utilizado, obliga a considerar retardos aun mayores, de 15 o 20 ms.

Dada una señal de mando (salida) función de una o varias señales de planta
(entradas), se denomina tiempo de respuesta al que transcurre desde que un cambio en una
de aquellas señales de planta es acusado por la señal de mando.

Este tiempo dependerá, por tanto, de los retardo de conmutación y adaptación de


señal en las interfaces de entrada y salida, Tinput delay y Tout delay y del tiempo de ciclo
del autómata.

Aunque el tiempo de respuesta es variable dependiendo del instante en que cambia


la entrada respecto al ciclo de operación, se mueve siempre entre dos valores límite
máximo mínino, según se muestra en el esquema de la figura 2.14

64
Controladores Lógicos Programables

Estos valores límite son:

● Valor mínimo (la señal esta disponible en la interfaz justo antes de la lectura de entradas)
TRES min =TINPUT delay +TCICLO +
+TOUTPUT delay
●Valor máximo (la señal esta disponible en la interfaz justo después de la lectura de
entradas)
TRES min= TINPUT delay + 2 TCICLO +
+TOUTPUT delay

El tiempo de retardo en las interfaces de entradas y salidas depende del tipo de


conmutación, ON/OFF o bien OFF/ON, así que para el cálculo del tiempo de respuesta
máximo habrá que tomar los mayores posibles que indique el fabricante.

Los valores del tiempo de respuesta resultante, y de su inversa, la frecuencia de


operación, pueden resultar despreciables frente a las constantes de tiempo de los sistemas
electromecánicos (relés, solenoides, electro válvulas, etc.) a los que el autómata sustituía o
controlaba en sus primeras aplicaciones de mercado, pero no lo son tanto comparados con
los tiempos extremadamente cortos que intervienen en la lectura y control de elementos
electrónicos, típicos en procesos de posicionamiento de motores (lecturas de pulsos de
encoders), respuesta a alarmas, detección de móviles a alta velocidad etc.

Si se trata de controlar uno de estos procesos relativamente rápidos, puede darse el


caso de que la respuesta del autómata resulte demasiado lenta, con lo que el control no
actuará como se espera.

Se dice que el autómata es capaz de controlar en tiempo real a un proceso, si sus


tiempos de respuesta o retardo resultan muy pequeños frente a los tiempos de reacción del
mismo. Por ejemplo, utilizando un autómata con interfaz de entrada DC y salida por relé,
con un tiempo de ciclo de ejecución de 10 ms, y despreciando los tiempos de auto chequeo
y actualización E/S, se obtiene un tiempo de respuesta máximo de:

65
Controladores Lógicos Programables

Tres max= 10ms+ 2 X10 ms +


+ 10 ms= 40ms
A este tiempo le corresponde una frecuencia máxima de conmutación que el autómata
pueda leer de:
f= 1/Tres max = 1/40 ms =25 Hz

Figura 2.14 Valores limite del tiempo de respuesta a una señal.

66
Controladores Lógicos Programables

Si el proceso a controlar necesita un tiempo de respuesta en alguna variable inferior


a 40 ms, o si generan o manipulan frecuencias superiores a 25 HZ, el autómata del ejemplo
anterior no podrá controlar dicho proceso son riesgo de provocar oscilaciones, pudiendo
llegar incluso a la saturación y bloqueo del mismo.

Para mantener la potencialidad de los autómatas incluso en estas nuevas


aplicaciones que exigen mayor rapidez, los fabricantes suelen incluir en sus modelos
elementos o funciones de proceso rápido, cuyo funcionamiento y características se
describen a continuación.

2.9 ELEMENTOS DE PROCESO RÁPIDO

Hay tres tipos de actividades que exigen rápidas respuestas del autómata:

-Ejecución de subrutinas o programas a intervalos menores de los que permite el tiempo de


ciclo general del autómata (por ejemplo, para el procesado de alarmas).
-Lectura de impulsos de entrada a alta frecuencia (por ejemplo, procedentes de encoders).
-Detección de señales de muy corta duración, menor que el tiempo de ciclo (por ejemplo,
para detección de móviles a alta velocidad).

Cada una de las circunstancias anteriores plantea problemas distintos, que obligan
también a buscar distintas soluciones en el autómata.

Así, para el primer supuesto, reducción del tiempo de respuesta para una señal
determinada, puede ordenarse la ejecución del bloque de programa que la controla de forma
independiente al resto del ciclo, iniciándose esta:

-Por medio de una señal periódica (para reducir el tiempo de ciclo).


-Por medio de una señal de interrupción exterior (para obtener respuestas rápidas).

67
Controladores Lógicos Programables

En el primer caso, activación de una rutina rápida mediante una señal periódica
(normalmente, una temporizacion interna), se asegura la reducción del tiempo de ciclo para
las señales E/S manipuladas dentro de la rutina (figura 2.15), mientras que en el segundo
caso, activación mediante interrupción responder con rapidez frente a estímulos externos.

Figura 2.15 Ejecución periódica de rutinas rápidas

En el segundo supuesto, lectura de impulsos de alta frecuencia, la pérdida de


información que supone la aparición de varios impulsos dentro de un mismo ciclo de
ejecución, al ser leído solo el que coincida con el instante de lectura (figura 2.16), puede
evitarse disponiendo de un contador rápido que, aprovechando un hardware específico con
entradas débilmente filtradas y circuito propio, sea capaz de leer señales de alta frecuencia.

Figura 2.16 Pérdidas de información en la lectura de señales de alta frecuencia

68
Controladores Lógicos Programables

Por último para la detección de señales de muy corta duración podría emplearse
cualquiera de las dos soluciones anteriores, aunque algunos autómatas que no las incluyen,
sobre todo en gamas bajas, pueden tener en cambio una o varias entradas detectoras de
flancos, capaces de captar y mantener en un relé interno, y hasta su lectura por parte de la
CPU, señales individuales de tan corta duración como 1 ms (menores de un <<scan>>), de
forma que el autómata llega a tener constancia de ellas (figura 2.17).

Figura 2.17 Lectura de impulsos de entrada

69
Controladores Lógicos Programables

2.9.1 PROCESADO RÁPIDO DE PROGRAMAS.

Un programa, o bloque de programa, puede ejecutarse de las siguientes formas:

-Procesamiento cíclico, propio del programa principal, con ejecución de las instrucciones
según la numeración de sus direcciones. De este procesamiento cíclico se obtiene el ciclo
de ejecución del autómata.
-Procesamiento rápido, con ejecución de instrucciones en respuesta a una señal
independiente y asíncrona con el ciclo de ejecución del autómata.

Con el procesamiento rápido de programas se elimina la dependencia de algunas


señales con el tiempo de ciclo del programa base, mejorando la velocidad de respuesta de
estas señales frente cambios en la variable de entrada. A fin de reducir al máximo el tiempo
de respuesta, es frecuente que los autómatas con capacidad de procesamiento rápido tengan
definidas algunas entradas y salida con tiempo de conmutación más pequeños que las
ordinarias (menores filtrados), denominadas entradas rápidas.

La combinación del proceso rápido de instrucciones con el uso de estas


entradas/salidas no filtradas o con filtados muy reducidos, disminuye las respuestas entre la
aparición de las señales de planta y la ejecución de la señal de mando a valores menores de
5 ms.

La figura 2.18 muestra un ejemplo de ejecución de rutina rápida a partir del


programa principal, activado por una señal externa que puede repetirse más de una vez.
El programa se está ejecutando continuamente mientras no se active la rutina rápida.
Cuando esto ocurre, se interrumpe aquel momentáneamente y se ejecuta la rutina como
sigue:
-Adquisición de entradas.
-Ejecución de las instrucciones del programa rápido,
-Activación de las salidas.
-Retorno al programa principal.

70
Controladores Lógicos Programables

Figura 2.18 Ejecución de una rutina rápida ordenada por interrupción

La interrupción al programa puede generarse de dos formas:

-Por entrada asíncrona externa (interrupción),


-Según un ciclo de período prefijable por el usuario (temporización): 2 ms, 5ms, 10ms, 100
ms, 1s, por ejemplo.

La interrupción externa puede, a su vez, obtenerse por:

-Activación de una entrada exterior.


-Alcance del valor de preselección de un contador rápido.

71
Controladores Lógicos Programables

Si se utilizan las entradas exteriores como entradas de interrupción, el inicio de la


ejecución del programa rápido ocurre cuando varía el estado de alguna o cualquiera de
ellas, de forma asíncrona con la consulta del resto de entradas en la interfaz.

Si se utiliza un contador rápido como control de la rutina, esta se dispara cuando el


contador alcanza el valor de preselección fijado, a partir de los impulsos de alta frecuencia
leídos en el exterior.

También puede programarse el contador como temporizador rápido autocargable, de


forma que dispare la ejecución rápida según un ciclo de periodo prefijable (procesado
asíncrono).

En cualquier caso, el programa principal continúa en el punto en que fue


interrumpido tras la ejecución del bloque de tratamiento rápido. Esto significa que, si bien
se reducen los tiempos de respuesta para las entradas/salidas procesadas en la rutina, se
incrementan los correspondientes al resto de señales, en un valor igual al del tiempo de
ciclo de la rutina rápida por el número de interrupciones al programa normal.

Algunos autómatas (de gamas media y alta) permiten la programación de varios


bloques de proceso específico, cada uno de ellos con su propia retícula de tiempo:
alcanzado uno de estos tiempos se activa una interrupción, y si la tarea que se estaba
ejecutando era de un período mayor (menor prioridad), se interrumpe para ejecutar la tarea
asociada a la interrupción activada, transcurrida la cual el proceso se reanuda en el punto en
que fue interrumpido.

Esta estructura de multiprogramación o multitarea permite definir programas


diferentes, para ejecutar sobre el procesador principal o sobre los auxiliares:

72
Controladores Lógicos Programables

-Programa básico.
-Programa rápido.
-Programa lento.
-Rutinas de emergencia, etc.

Todos estos programas pueden intercambiar datos y acceder a las mismas entradas,
salidas y variables internas, resultando una mayor simplicidad y facilidad de programación
y supervisión del funcionamiento.

Una estructura como la descrita permite además la priorización absoluta de las


tareas de control, lo que significa que en la práctica el usuario puede elegir los tiempos de
respuesta que desea para cada una de las señales de su proceso.

2.10 DISPOSITIVOS PERIFÉRICOS Y DE PROGRAMACIÓN.

Como elementos auxiliares y físicamente independientes del Autómata, los equipos


periféricos realizan funciones concretas de gran importancia.

El incremento que experimenta las prestaciones de los Autómatas hace que el número de
periféricos aumente día a día para equipos de la misma gama, pero en general para un
equipo de la gama baja podría decirse que son:

 Impresora, que permite obtener en papel el listado de instrucciones o programas de


usuario, el de temporizadores, contadores.
 Unidades de cinta o memoria, por medio de las cuales se graban los programas en
cinta casete o chips de memoria EPROM o EEPROM, respectivamente.

Otros equipos que se utilizarían en la gama media o en algún caso en la gama baja serian:

73
Controladores Lógicos Programables

 Monitores de tipo TRC.


 Lectores de códigos de barras.
 Displays y teclados alfanuméricos.
 Unidad de teclado y test.

2.10.1 EQUIPOS O UNIDADES DE PROGRAMACIÓN.

La unidad de programación es el medio material del que se auxilia el programador


para grabar o introducir en la memoria de usuario las instrucciones del programa. Pero esta
unidad realiza otras tareas fundamentales.

Funciones principales:

La gama de funciones que son capaces de ejecutar los equipos de programación son
múltiples y variadas, aumentando el tipo de estas en razón directa a la complejidad del
equipo.

a) Programación.
 Introducción de instrucciones (programa).
 Búsqueda de instrucciones o posiciones de memoria
 Modificación del programa:
-Borrado de instrucciones
-Búsqueda de instrucciones
-Modificación de instrucciones.
 Detección de errores de sintaxis o formato.
 Visualización del programa de usuario o parte del mismo, contenido en la memoria
de usuario.
 Forzamiento del estado de marcas, registros, contadores, temporizadores, etc.

74
Controladores Lógicos Programables

b) Grabación de programas.
 En cinta casete
 En chip de memoria EPROM o EEPROM.
 En papel mediante impresora.
 En disquete mediante PC.
 Visualización y verificación dinámica del programa.
 Del programa o parte de él.
 De entradas y salidas.
 De temporizadores, contadores, registros, etc.

c) Modos de servicio.
 STOP (off-line), o salidas en reposo.
 RUN (on-line) o ejecutando el programa.
 Otros modos intermedios como MONITOR, etc.

Tipos:

Desde el punto de vista constructivo, podemos distinguir tres tipos principales:

a) Unidades tipo calculadora

Son las más comúnmente utilizadas en los Autómatas de la gama baja; consta del
correspondiente teclado, conmutador de modos, display de cristal líquido o siete segmentos
de dos o más líneas, así como de las entradas para la grabación del programa de usuario.
Puede ser totalmente independiente, ser enchufada directamente en la CPU, o con ambas
posibilidades.

75
Controladores Lógicos Programables

En las de pocas líneas (2,4) solo es posible escribir neumónicos, pero en las de pantalla
llamadas de programación gráfica pueden visualizarse algunas líneas de programa de
lenguajes gráficos, datos del programa, etc.
b) Consola de programación

Esta en una posición intermedia entre la unidad tipo calculadora y el PC. consta de pantalla
de plasma o tipo similar y tamaño suficiente para 20-30 líneas y 60-80 caracteres por línea,
así como teclado. Al igual que el PC que se describe a continuación, utiliza el software de
programación preciso para los lenguajes utilizados en el PLC, almacenando los programas
en disquete.

c) Unidad con PC

Esta unidad que se adapta al Autómata mediante el interfaz correspondiente lleva


incorporado un monitor de tubo de rayos catódicos (TRC) y realizan la misma función que
la unidad de programación normal, pero con mayores prestaciones, permitiendo visualizar
los esquemas o diagrama completos o partes importantes de los mismos. Este equipo
incorpora el software necesario para poder trabajar en más de un lenguaje de programación,
incluso realizar la transformación de lenguajes.

La grabación de programas se realiza en disquete o disco duro, según modelos del PC.

Funcionamiento:

Las instrucciones que se introducen en la unidad de programación no son


directamente interpretables por el procesador, que se ha de auxiliar de un circuito
intermedio llamado Compiler. Es, por tanto, el Compiler el elemento de unión entre el
Autómata y la unidad de programación.

76
Controladores Lógicos Programables

Su misión es la de traducir la información textual de la unidad de programación a


lenguaje máquina y viceversa mediante unos códigos intermedios que son interpretados por
un programa residente en el firmware.

2.10.2 INTERFACES

Son circuitos que permiten la comunicación de la CPU con el exterior llevando la


información acerca del estado de las entradas y transmitiendo las órdenes de activación de
las salidas.

Constan de enlaces del tipo RS-232 ó RS-422, y efectúan la comunicación


mediante el código ASCII.

Asimismo, permiten la introducción, verificación y depuración del programa


mediante la consola de programación, así como la grabación del programa a casete, en
memoria EPROM, comunicación con TRC (monitor), impresora, etc.

77
Controladores Lógicos Programables

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 el conjunto de variables (digitales y analógicas) que definen el estado del


mismo (señales de entrada).
-Enviar otro conjunto de variables que modifiquen dicho estado en un sentido
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. Este operador intercambia entonces información con el hardware de autómata 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 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 y a la secuencia establecida, programa leer su estado.

78
Controladores Lógicos Programables

El primero de los puntos, establecimiento de la secuencia de órdenes, se denomina


programación del autómata y a la secuencia establecida, programa de la aplicación.
Al segundo punto, intervención del operador sobre el proceso, se le conoce
comúnmente como explotación de la aplicación, y durante ella se permiten modificar
algunos parámetros (tiempo, consignas, módulos de cuenta, etc.). Pero no modifica el
programa.

La estructura de intercambios múltiples proceso-autómata-usuario esta sintetizada


en la figura 3.1 Como se observa, las intervenciones sobre la planta se efectúan a través del
autómata, aunque, en algunos casos (por ejemplo, paradas rápidas por motivos de
seguridad), el usuario puede actuar directamente sobre el proceso.

Figura 3.1 Intercambios de información en un sistema de autómata

De los intercambios mostrados en la figura, el primero de ellos, de informaciones


físicas entre autómata y proceso, está resuelto mediante el empleo de las interfaces E/S
descritas en anteriores capítulos, mientras que el segundo, la comunicación con el operador
para programación/explotación, necesita de un soporte software que haga el papel de
interprete entre el sistema real y los deseos del usuario.

79
Controladores Lógicos Programables

Así, puede definirse este software como el “conjunto de programas destinados a


permitir o facilitar la utilización del hardware para la producción y explotación de las
aplicaciones”.

Según esta definición, podemos clasificar estas herramientas de software en dos


grandes grupos:

-Sistemas operativos, residentes en el propio autómata, que se encargan de establecer las


secuencias de intercambios de información, interpretar y ejecutar las órdenes de usuario, y
vigilar por el correcto funcionamiento del equipo.
-Software de edición/depuración de programas, que permiten al usuario la introducción
del programa sobre un soporte físico (cinta, disco, memoria de semiconductor), la
modificación del mismo en la puesta a punto, la obtención de la documentación pertinente,
y la creación de copias de seguridad.
Este software de edición/depuració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.
La unidad tiene como funciones principales:

-Soportar la edición y depuración del programa.


-Proporcionar la interfaz física entre el usuario y el autómata, para trasferencias de
programas y supervisión y control del proceso.

Los intercambios de información entre los elementos que aparecen en la figura 3.1
necesitan, en todos los casos, de una codificación del mensaje 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 señales emitidas o recibidas, se consigue en el lado de usuario
mediante el empleo de los lenguajes de programación y explotación preestablecidos por el
fabricante.

80
Controladores Lógicos Programables

Se define, pues, lenguaje de programación como el conjunto de símbolos y textos


inteligibles por la unidad de programación que le sirven al usuario para codificar sobre
un cierto autómata las leyes de control deseadas, mientras que lenguaje de explotación
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 definición, el lenguaje de programación se definen entre el


usuario y la unidad de programación: la compatibilidad entre esta y el autómata está
asegurado por el fabricante del mismo, que lo es también de la unidad, o del software que
se instala sobre ella si es una máquina de aplicación general, como un PC compatible.

En definitiva, el usuario introduce su ley de mando en la unidad de programación


mediante un programa (secuencia de órdenes) codificado según un lenguaje (conjunto de
símbolos) inteligibles para ambos.

La unidad de programación compila o convierte el programa a los códigos binarios


que realmente entiende el autómata y los transfiere y deposita en la memoria del mismo.

Estos códigos binarios son después interpretados por el sistema operativo residente
(firmware) para movilizar los recursos físicos (procesador, interfaces E/S, etc) necesarios
en la ejecución del programa. La figura 3.2 muestra un resumen de los sistemas y recursos
involucrados en las transferencias de información que rodea al autómata.

Como se observa, el programa se obtiene desde un modelo del sistema,


representación simbólica del mismo que permite la aplicación de herramientas matemáticas
o gráficas de análisis y síntesis, para reducir el trabajo de diseño y asegurar la bondad del
control obtenido.

La transcripción del proceso y sus especificaciones a un modelo, que en sistemas


pequeños puede –y suele- obviarse (se obtiene el programa escribiendo directamente en el

81
Controladores Lógicos Programables

lenguaje de programación), es imprescindible en sistemas complejos, donde las relaciones


entre variables son muy difíciles de establecer únicamente con las descripciones literales
del funcionamiento.

Figura 3.2 Interrelación hardware/software en el autómata

La programación del autómata 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 descripción literal o un grafo GRAFCET).
2. Identificar los componentes (señales) de entrada y salida al autómata.
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 representación puede ser:


-Algebráica: instrucciones literales.
-Gráfica: símbolos gráficos.

82
Controladores Lógicos Programables

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


aparecen en el modelo.

5. Codificar la representación anterior en instrucciones o símbolos inteligibles por la


unidad de programación.

6. Transferir las instrucciones obtenidas a la memoria del autómata desde la unidad de


programación.

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

Los siguientes apartados desarrollan en extensión cada uno de los puntos de esta
secuencia.

3.2 EJECUCIÓN DE PROGRAMAS

3.2.1 CICLO BÁSICO DE EJECUCIÓN

El ciclo básico de trabajo en la elaboración del programa por parte de la CPU es el


siguiente: Antes de iniciar el ciclo de ejecución, el procesador, a través del bus de datos,
consulta el estado 0 o 1 de la señal 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 situación se mantiene durante todo el ciclo del programa. A continuación, el


procesador accede y elabora las sucesivas instrucciones del programa, realizando las
concatenaciones correspondientes de los operandos de estas instrucciones.

83
Controladores Lógicos Programables

Seguidamente asigna el estado de señal a los registros de las salidas de acuerdo a la


concatenación anterior, indicando si dicha salida ha o no de activarse, situandola en la zona
de salida de la tabla de datos.

Al final del ciclo, una vez concluida la elaboración del programa, asigna los estados
de las señales de entrada a los terminales de entrada y los de salida a las salidas, ejecutando

el estado 0 o 1 en estas últimas. Esta asignación 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 función de las variables de
entrada prácticamente en tiempo real.

84
Controladores Lógicos Programables

Figura 3.3 Ciclo básico de trabajo de un PLC

85
Controladores Lógicos Programables

Figura 3.4 Estructura de las instrucciones u órdenes de manejo y programación de un


Autmata Programable.

Cuando el Autómata se sitúa en ciclo de ejecución o ejecución cíclica. La CPU


realiza, entre otras funciones, el barrido del programa contenido. En la memoria de usuario,
desde la casilla, dirección o línea 0000 hasta la última posible, según la capacidad de la
misma, esto es, efectúa lo que se denomina ciclo de Scanning.

En función de cómo se efectúa la ejecución o barrido del programa, se distinguen


los siguientes sistemas, modos o estructuras de programación:

 Ejecución cíclica lineal.


 Ejecución con salto condicional.
 Ejecución con salto a subrutinas.
 Ejecución con programas paralelos.

El principio de ejecución de cada uno de los sistemas indicados se describe a continuación.

3.2.2 EJECUCIÓN LINEAL

Cuando el ciclo de barrido de la memoria de usuario se realiza línea tras línea sin
solución de continuidad, se dice que la programación es lineal, y la CPU consulta las
instrucciones contenidas en la memoria secuencialmente, una a continuación de la otra, sin
alterar este orden, tal y como se aprecia en la Figura 3.5

86
Controladores Lógicos Programables

Figura 3.5 Ejecución cíclica lineal del programa de usuario en un Autómata Programable

87
Controladores Lógicos Programables

3.2.3 SALTO CONDICIONAL

Cuando el ciclo de ejecución de un programa tiene la posibilidad, previa condición


establecida, de alterar la secuencia línea a línea del mismo y dar un salto a otras líneas de
programa, dejando x líneas sin ejecutar, se dice que se ha realizado un salto condicional.

Su funcionamiento es el siguiente:

Si al llegar en el proceso de ejecución del programa a la instrucción U, tal y como


queda descrito en la Figura 3.6, se cumple la condición 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
condición, el programa se ejecuta linealmente continuando en U+1.

Esta posibilidad que poseen muchos Autómatas permite reducir el tiempo de


ejecución 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.

88
Controladores Lógicos Programables

Figura 3.6 Salto condicional en la ejecución cíclica lineal del programa de usuario en un
Autómata Programable

3.2.4 SALTO A SUBRUTINA

´ En algunas ocasiones ocurre que en un programa hay uno o más grupos de


secuencias de instrucciones idénticas 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 autómatas de la
gama baja no suelen incorporar esta posibilidad. En la Figura 3.7 se puede observar
gráficamente este tipo de salto. La posibilidad de distintos tipos de subrutinas y de distintos
niveles de las mismas también quedan reflejados en la citada figura.

89
Controladores Lógicos Programables

Figura 3.7 Salto a subrutina en la ejecución cíclica del programa de usuario en un Autómata
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 asíncrona. En aquellos
casos en que con un único Automata se quieren controlar varios procesos totalmente
independientes, este sistema es muy útil, aunque también se utiliza controlando funciones
de un proceso único. En este tipo de ejecución es posible el uso de subrutinas en cada
programa paralelo.

90
Controladores Lógicos Programables

La ejecución de este tipo de programas se realiza de la siguiente forma:

Cada uno de los tramos en línea gruesa de la Figura 3.8 contiene solo algunas líneas
de programa, de tal forma que la secuencia consiste en el procesamiento de, por ejemplo,
diez líneas del programa M0, o lo que es lo mismo, una pequeña parte de un programa; a
continuación 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 líneas, vuelve
al programa M0 para repetir el ciclo en el siguiente grupo de diez líneas.

Para 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 y como se indica en la Figura 3.8
Los autómatas de la gama baja no suelen incorporar esta posibilidad.

91
Controladores Lógicos Programables

Figura 3.8 Ejecución de programas paralelos de usuario en un Autómata Programable

3.2.6 SISTEMAS O LENGUAJES DE PROGRAMACIÓN

Varios son los lenguajes o sistemas de programación posibles en los Autómatas


Programables, aunque su utilización no se puede dar en todos los Autómatas; es por
esto que cada fabricante indica en las características generales de su equipo el lenguaje
o los lenguajes con los que puede operar. En general, se podría decir que los lenguajes
de programación más usuales son aquellos que transfieren directamente el esquema de
contactos y las ecuaciones lógicas o los logigramas, pero estos no son los únicos.
A continuación se muestra una relación de los lenguajes y métodos gráficos más
utilizados:

92
Controladores Lógicos Programables

●Nemónico, también 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 nemónico, los demás tienen como base su representación gráfica, pero todos
ellos deben ir acompañados del correspondiente cuadro o lista de programación, esto es, la
relación de líneas de programa que configuran el mismo.

Para mejor entender estos lenguajes, a continuación se realiza una explicación de ellos.
En el caso de los tres primeros, por otra parte los más utilizados, se ha puesto un ejemplo.

3.3 DESCRIPCIONES LITERALES

La descripción del proceso y su control puede hacerse con la enumeración literal de


las acciones a desarrollar por el mismo, expuestas secuencialmente y con indicación de las
condiciones de habilitación o validación en cada caso.

La ventaja de estas descripciones, que es a la vez su principal inconveniente, es la ausencia


de rigor en la exposición: cualquier persona, a un poco calificada desde el punto de vista de
la automática, es capaz de explicar lo que debe hacer un proceso que conozca. 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.

La figura 3.9 muestra un ejemplo de descripción literal de un proceso de


mecanizado, donde se hacen patentes las limitaciones descritas.

93
Controladores Lógicos Programables

En efecto, observando la figura y la descripción podrían plantearse algunas preguntas:

1. ¿Que ocurre si la presión detectada por el manómetro no es la prescrita?


2. ¿Cuando debe empezar a girar el taladro, antes, durante o después de la bajada de la
cabeza?
3. ¿Cuando debe detenerse el taladro, al llegar a tope, durante la subida o después de haber
subido el cabezal?
4. ¿Como se afloja la pieza, por retroceso del cilindro A, por extracción manual, o por
movimiento del soporte?

Figura 3.9 Descripción literal de un proceso

Parece que con una descripción como la dada, que en principio resultaba
suficientemente clara, el diseñador necesita de una serie de preguntas adicionales antes de
empezar a trabajar en el control.
La conclusión que se obtiene es que la descripción literal o se hace exhaustiva, con
lo cual es de difícil comprensión en su conjunto, o no es totalmente unívoca con el proceso
que se quiere controlar.

94
Controladores Lógicos Programables

Afortunadamente existen otras formas de representación, de sintaxis más definida, que


permiten descripciones más concisas y claras de la tarea de control.

3.4 FUNCIONES ALGEBRAICAS

La 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 métodos de síntesis basados en el algebra de
Boole, ente matemático que regula las relaciones entre señales binarias todo-nada.

Esta representación 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, según convenio:

-Abierto: 0
-Cerrado: 1

La función booleana será:

S= (A B+AB) · C

Aunque la representación booleana está restringida a las variables que adoptan


únicamente dos estado (por convenio, 0 y 1), puede mejorarse definiendo otras operaciones
(aritméticas, comparación) que permitan las relaciones entre variables digitales de varios
bits: el modelo dejaría 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
análisis y 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

95
Controladores Lógicos Programables

de tiempo considerado (por ejemplo, condiciones de alarma, operaciones aritméticas con


variables analógicas, etc.).

3.5 ESQUEMAS DE RELÉS

El esquema de relés es la representación gráfica de la tarea de automatización


mediante símbolos de contactos abierto-cerrado.

La función de control obtenida dependerá de las conexiones entre los distintos


contactos de los relés que intervienen (figura 3.10).

Figura 3.10 Esquema eléctrico de relés.

Este modelo gráfico, de origen en las tecnologías electromecánicas de ejecución de


sistemas de mando, presenta deficiencias en cuanto a la representación de funciones
secuenciales complejas, como son los secuenciadores, registros de memoria, etc., y sobre
todo, en la manipulación de señales digitales de varios bits (por ejemplo, obtenidas de una
conversión A/D).

96
Controladores Lógicos Programables

Sin embargo, siendo muy familiar a los electricistas, se utilizan frecuentemente para
la representación de sistemas sencillos, en los que no intervienen mas que señales lógicas
binarias todo-nada, o algunos bloques secuenciales predefinidos, como temporizadores y
contadores.

3.6 DIAGRAMAS LÓGICOS

La representación del sistemas de control por diagramas lógicos se basa en el


empleo de símbolos normalizados (puertas) que representan funciones lógicas directas del
algebra de Boole (AND, OR, etc), o sistemas lógicos más complejos (biestables, registros,
contadores, etc).

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

El conjunto 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 (eléctrica, neumática, etc.).

Desgraciadamente, el logigrama es una herramienta característica del técnico de


software o del ingeniero de diseño, muy alejada 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 y documentación.

3.6.1 ORDINOGRAMAS

97
Controladores Lógicos Programables

Los tres modelos descritos, algebráico, de relés y de puertas lógicas, permiten, con
mayor o menor claridad, tanto la representación 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 evolución temporal no es de apreciación inmediata sobre


aquellos, lo que obliga a utilizar algún modelo, preferiblemente gráfico, que refleje las
secuencias de evolución y toma de decisiones del proceso.

Un primer intento de representación, de cierta utilidad en fases previas del diseño,


puede ser el diagrama de flujo u ordinograma del proceso.

Figura 3.11 Representación por diagrama lógico.

Extensamente utilizado por los diseñadores de software para ordenador, el modelo


emplea una simbología de bloques, convenientemente entrelazados, que representan la
evolución temporal o condicional de las acciones a ejecutar.

98
Controladores Lógicos Programables

En la figura 3.12 aparece un ejemplo de representación por diagrama de flujo, en el


que se pone de manifiesto la nobleza del modelo.

Figura 3.12 Ordinograma de un posicionamiento hidráulico manual

Ciertamente claro para describir el funcionamiento general, puede no serlo tanto


cuando se intenten representar las variables y señales que intervienen y las relaciones entre
ellas, a no ser que el modelo se complete con expresiones algebraicas. Esta solución, sin
embargo, afecta entonces a la claridad de la representación gráfica inicial.

3.7 REPRESENTACION GRAFCET

99
Controladores Lógicos Programables

Una evolución del diagrama de flujos, que combina las ventajas de la representación
secuencial grafica con la integración de los modelos preexistentes, es la representación por
diagramas GRAFCET.

Ahora normalizado según norma internacional EIC 848 (Comisión Internacional


Electrotécnica), el GRAFCET se reconoce como el modelo mejor adaptado a la parte
secuencial de los automatismos.

Para ello, el GRAFCET representa directamente la sucesión de las “etapas” dentro


de un ciclo de producción, 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 función de mando correspondiente a la etapa.


-Consulta las condiciones de transición para el salto a la siguiente.

Tanto la ejecució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 y transiciones de las condiciones combinatorias de ejecución.

100
Controladores Lógicos Programables

Figura 3.13 Estructura general de una representación GRAFCET.

Figura 3.14 Combinación de estructuras GRAFCET con diagramas de contactos.

101
Controladores Lógicos Programables

En la práctica es muy frecuente el empleo de esquemas de relés para representar etapas y


transiciones, resultando un modelo totalmente gráfico del sistema de control (figura 3.14)

Como se vio anteriormente en temas pasados, la posibilidad de programación directa en


GRAFECT de algunos autómatas de gama alta, permite el empleo de esta herramienta en
todas las fases del diseño:

-Especificaciones funcionales, o GRAFCET del pliego de condiciones.


-Especificaciones tecnológicas o GRAFCET de movimientos.
-Programación del autómata o GRAFCET de mando, que resulta útil también en la fase de
explotación.

La figura 3.15 muestra un ejemplo de aplicación en estas tres distintas fases, a


partir de las especificaciones literales del comportamiento de un automatismo.

Esta estandarización del modelo, una de sus principales ventajas, facilita el flujo de
información entre todos los niveles de la empresa, desde la oficina técnica hasta los equipos
de mantenimiento.

102
Controladores Lógicos Programables

Figura 3.15 El GRAFCET en diferentes fases de la automatización.

3.8 LENGUAJES DE PROGRAMACIÓN

Se ha descrito ya 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 conjunto total de estas instrucciones, órdenes y símbolos que están disponibles
para escribir un programa se le denomina lenguaje de programación del autómata.

103
Controladores Lógicos Programables

Sería deseable que la misma simbología utilizada para representar el sistema de


control pudiera emplearse para programar el autómata: el ahorro de tiempo y
documentación y la seguridad en el programa obtenido serian considerables.

Sin embargo, esta solución no es siempre posible: el lenguaje depende del autómata
empleado y de su fabricante, que decide el tipo de unidad de programación (literal, gráfica)
y el interprete (firmware) que utiliza su máquina, mientras que el modelo de representación
depende del usuario, que lo elige según sus necesidades o conocimientos.

Pese a ello, los lenguajes 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 lenguajes pueden ser:

 ALGEBRAICOS

Lenguajes boléanos.
Lista de instrucciones.
Lenguajes de alto nivel.

 GRÁFICOS

Diagrama de contactos.
Diagrama de funciones/bloques.
Interprete GRAFCET.

104
Controladores Lógicos Programables

Figura 3. 16 Direccionamiento E/S con interfaces digitales

Si la representación elegida para el sistema de control es comprensible por la unidad


de programación, no será necesario realizar ninguna codificación, al aceptar ésta los
símbolos utilizados. En caso contrario, habrá que traducirla a un programa, según 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 instrucción representa la tarea más elemental de un programa : leer una entrada,


realizar una operación AND, activar un salida, etc.
La sentencia representa el mínimo conjunto de instrucciones que definen una tarea
completa: encontrar el valor de una función lógica, combinación 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 función compleja: contadores, registros de desplazamiento, trasferencias de
información, etc.

105
Controladores Lógicos Programables

Tabla 3.1 Ejemplo de asignación de direcciones.

Todos estos elementos están relacionados entre si mediante los símbolos o


grafismos (algebraicos o gráficos) definidos en el lenguaje empleado.

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

Campo de operación Operando (s)

106
Controladores Lógicos Programables

Campo de operación (¿Qué hay que hacer?)


Tipo de operación:
 Leer una entrada,
 Formar una combinación 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 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).

Figura 3.17 Estructura de una instrucción

107
Controladores Lógicos Programables

La figura 3.17 muestra la estructura de una instrucción típica en diferentes lenguajes


de programación.

En general, las instrucciones pueden ser de distintos tipos: lógicas, aritméticas, de


transferencia, etc., que adoptan diferentes formas de representación según el lenguaje
empleado.

En algunos autómatas, el programa necesita para su correcta ejecución de una tabla


de parámetros, introducida también desde la unidad de programación, que define el entorno
de funcionamiento de la máquina:

-Uso o no de entradas de reset o stop,


-Capacidad de la memoria de usuario empleada,
-Conexión o no en red local.
-Variables internas a mantener contra perdidas de tensión, etc.

La tabla de parámetros es específica para cada programa y es grabada con el mismo cuando
se transfiere al autómata.

3.8.1 LENGUAJES BOOLEANOS Y LISTA DE INSTRUCCIONES

El lenguaje booleano está constituido por un conjunto de instrucciones que son


transcripción literal de las funciones del álgebra de Boole, a saber:

-OR función suma lógica.


-AND función producto lógico.
-NOT función negación.
Complementadas con instrucciones de inicio de sentencia y asignación de resultados:

108
Controladores Lógicos Programables

-LOD leer variable inicial.

-OUT enviar resultado a salida.


y de operaciones de bloques (paréntesis):

-OR LOD coloca bloque en paralelo.

-AND LOD coloca bloque en serie.

En operación normal, el autómata necesita algunas otras instrucciones como


ampliación del lenguaje booleano, que le permitan manejar elementos de uso común en
automatización. 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.

Además, la mayor parte de autómatas incluyen extensiones al lenguaje booleano


básico descrito, que permiten la manipulación de datos y variables digitales y la gestión del
programa.
Estas extensiones, que se tratan más adelante como bloques funcionales, pueden
clasificarse en:

● Instrucciones aritméticas

109
Controladores Lógicos Programables

-ADD sumar.
-SBB restar.
-MUL multiplicar.
-DIV dividir.
●Instrucciones de manipulación 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 códigos numéricos, etc.
●Instrucciones de gestión de programa:
-END fin de programa.
-JMP salto de bloque de programa.
-MCS habilitación de bloque de programa.
-JMPSUB salto a subrutina, etc.

Las instrucciones aritméticas y de manipulación de datos admiten múltiples


variaciones:
-Aritmética binaria o BCD.
-Instrucciones lógicas sobre palabras (8 o 16 bits).
-Transferencias entre bloques de palabras.
-Codificación a salida en 7 segmentos.
-Instrucciones de direccionamiento indirecto.
-Instrucciones trigonométricas, etc.
Al lenguaje resultante, que no puede llamarse ya booleano después de ampliarlo con
estas extensiones, se le denomina de lista de instrucciones (Instruction List).
Algunos fabricantes amplían las capacidades de programación de sus autómatas de
gama baja con estas instrucciones avanzadas, que serían de más lógica aplicación en
autómatas de prestaciones superiores.
El tiempo de ejecución resultante (tiempo de scan) sobre CPU básicas desaconseja
su empleo en la mayoría de ocasiones. Sin embargo, disponible ya el firmware capaz de

110
Controladores Lógicos Programables

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.

La tabla 3.2 siguiente muestra un listado de las instrucciones básicas disponibles


sobre un autómata de gama media, el FA-2J junior de Izumi.

Tabla 3.2 Instrucciones básicas del autómata Izumi FA-2J.

INSTRUCCIÓN DESCRIPCION
LOD Lee estado de variable binaria, E/S o interna
AND Función lógica AND
OR Función lógica OR
OUT Envia resultado sentencia a variable binaria
MCS Función relé maestro de control
SOT Detecta flanco de subida de una señal
TIM Define temporizador con retardo a conexión
CNT Define contador incremental de sucesos
SFR Define registro desplazamiento sobre n bits
END Indica final de programa
SET Fija una variable a estado <<1>>
RST Fija una variable a estado<<0>>
JMP Inicio de salto de programa
JEND Final de salto de programa
NOT Niega o complementa una variable lógica
OR LOD Conecta dos bloques de programa en paralelo
AND LOD Conecta dos bloques de programa en serie.

Estas instrucciones se complementan con otras de computación, que pueden ser:

●Basicas:

-Operandos predefinidos
-Aritmética BCD

●Avanzadas:

111
Controladores Lógicos Programables

-Operandos cualesquiera
Aritmética de 16 bits
-Direccionamiento indirecto.

Ejemplos de instrucciones de computación básica sobre este automata son:

-JCVTH Conversión BCD a binario.


-JCVTD Conversión binario a BCD
-JADC Suma del registro DR0 (acumulador) con un operando
-JSBB Substracción al registro DR0
-JCMP Comparación 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 computación avanzada:
-TADD3 Suma de cuatro dígitos entre operandos cualesquiera
-WCMP Comparación de un operando con un intervalo
-PDCMD Salida de datos ASCII a impresora
-W121M Trasferencia del operando (dato), cuya dirección (origen) esta contenida en un
registro al operando cuya dirección (destino) esta contenida en otro registro, etc.

3.8.2 DIAGRAMAS DE CONTACTOS

El lenguaje de contactos expresa las relaciones ente señales binarias como una
sucesión de contactos en serie y en paralelo, según las equivalencias que se muestran en la
tabla 3.3

Tabla 3.3 Equivalencias instrucciones-contactos

112
Controladores Lógicos Programables

Adoptando por muchos fabricantes de autómatas (norteamericanos y japoneses,


principalmente) como lenguaje base de programación, el diagrama de contactos (Ladder
Diagram) puede ser introducido directamente en la unidad de programación mediante un
editor de símbolos gráficos. Normalmente este editor incluye 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 conexiones, etc.

Siendo los contactos de relés componentes de dos estados, asignados a los valores lógicos:

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 función lógica puede ser transcrita directa e
inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando se
trata de visualizar gráficamente un programa escrito en lenguaje booleano.

Sin embargo, el diagrama de contactos, de origen norteamericano, no nació como


una posible herramienta de visualización de programas ya escritos en lista de instrucciones,

113
Controladores Lógicos Programables

sino como transcripción directa de los esquemas eléctricos de relés (circuitos de mando) de
uso común en la automatización previa a la aparición de los sistemas programables.

Por esta razón, los diagramas de contactos incluyen desde sus orígenes bloques
funcionales que ya aparecían 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 módulo de contaje y condiciones de paro y
reset en el caso de contadores, el lenguaje de contactos permite programar directamente
cualquier esquema eléctrico de relés.

Sin embargo, y al igual que ocurría en los lenguajes booleanos, también en este se
desarrollan bloques funcionales complejos que permiten la manipulación de datos y las
operaciones con variables digitales de varios bits.

La presencia de estos bloques, de ejecución dependiente de una o más condiciones


binarias, multiplica la potencia de programación sin dejar de mantener las ventajas de la
representación gráfica del programa. Así, pueden programarse situaciones de
automatización compleja que involucren variables digitales, registros, transferencias,
comparaciones, señales analógicas etc.

Por supuesto, y al igual que ocurre con las extensiones al lenguaje booleano, no
todos los autómatas, aun del mismo fabricante, pueden manejar todas las posibilidades de
programación con contactos: solo las gama más altas acceden a la totalidad de extensiones
del lenguaje, quedando las restantes limitadas al empleo de partes más o menos
significativas de él.

En la figura 3.18 aparecen algunos elementos gráficos utilizados en un cierto


lenguaje de contactos, el Sysmac Serie C de OMRON, clasificados en:

114
Controladores Lógicos Programables

-Contactos
-Bobinas
-Bloques funcionales
-Bloques operativos.

Los contactos comprueban el estado de las variables asociadas: puntos de


entrada/salida, relés 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 envían el resultado de la operación lógica 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 diagnóstico: almacena el número “n” de error definido y provoca (FALS) o no (FAL)
la parada del automata.
-Paso a paso: permiten la ejecución 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 típicas de automatismos:

115
Controladores Lógicos Programables

-Temporizadores: retardos a la conexión medidos en décimas 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 dígitos) leídos en un canal de entradas (datos exteriores).

Los bloques operativos permiten realizar tratamientos numéricos sobre variables digitales
(palabras):
-Operaciones aritmético/lógicas.
-Comparaciones.
-Conversiones de código.
-Transferencias, etc.

Ejemplos de bloques operativos pueden ser:


-WSFT: desplazamientos entre canales inicial y final.
-CMP: comparaciones entre variables o constantes de 4 dígitos. El resultado de la
comparación (igual, mayor o menor) está asociado a un relé interno especial.
-BCD: conversión de datos binarios de 16 bits en 4 dígitos 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 visualización sobre la unidad de programación o consola de explotación.

116
Controladores Lógicos Programables

Figura 3.18 Lenguaje de contactos de OMRON Sysmac Serie “C”

117
Controladores Lógicos Programables

La figura 3.19 muestra un ejemplo de programación con diagrama de contactos a


partir de un esquema eléctrico de arrancador estrella-tríangulo (obsérvese la representación
del contacto de paro, cerrado en reposo). Para mostrar la potencia de los lenguajes
extendidos, se añade una condición de alarma de valor mínimo de velocidad en el eje,
medida con un tacómetro (5000 r.p.m., 10 Vcc, 10 bits) conectada en el canal 3, con
visualización de un mensaje de error sobre la consola conectada al autómata.

Figura 3.19 Ejemplo de programación con diagrama de contactos.

118
Controladores Lógicos Programables

En muchas ocasiones, sobre todo trabajando con unidades de programación 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 presentación, y puede


pasarse de una a otra con órdenes sencillas de compilación/decompilación del programa.
Por ejemplo, el listado de instrucciones correspondiente al programa anterior sería:

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

119
Controladores Lógicos Programables

#0266
LD KLM
AND 25507
OUT 4000
LD 4000
MSG (46) _
DM00
END.

Nótese como en el listado anterior falta la asignación de direcciones a las variables del
programa.

3.8.3 PLANO DE FUNCIONES

El diagrama lógico o plano de funciones es la representación de las tareas de


automatización utilizando los símbolos contenidos en las normas DIN 40700 y DIN 40719,
cuya forma general se presenta en la figura 3.20.

Algunos de estos símbolos normalizados, correspondientes a las funciones mas


frecuentes, se dan en la figura 3.21

La programación por diagramas lógicos, que deriva de la representación por


logigrama habitual entre los técnicos en electrónica digital, incluye como bloques
normalizados

120
Controladores Lógicos Programables

Figura 3.20 Símbolo lógico normalizado.

Algunas funciones secuenciales típicas en automatización, como temporizadores y


contadores, e incluso algunos bloques combinacionales y de tratamientos numéricos, como
Multiplexores, demultiplexores, sumadores, multiplicadores, etc., pero no alcanza la
multitud de funciones que han ido añadiéndose a las listas de instrucciones y diagramas de
contactos, como extensiones a estos lenguajes.
Por esta razón, y en sentido estricto, la programación por diagramas lógicos 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 lógico por parte del
usuario habitual del automata, explica la baja difusión de estos leguajes de programación.
La figura 3.22 muestra un ejemplo de programación con plano de funciones en
diagrama de contactos, según los lenguajes gráficos STEP 5 de SIEMENS.
Dada la inexistencia, antes comentada, de bloques normalizados 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 extensión definidos en el diagrama de contactos, aún
trabajando bajo el entorno de diagrama lógico: el lenguaje obtenido resulta un hibrido que
recoge toda la potencia de programación del autómata, y en el que cada usuario puede

121
Controladores Lógicos Programables

elegir la forma de representación que prefiera para las funciones básicas (AND, OR, NOT,
TIM, etc.)

Figura 3.21 Algunos símbolos lógicos

122
Controladores Lógicos Programables

Figura 3.22 Lenguajes gráficos STEP 5 de SIEMES

123
Controladores Lógicos Programables

Figura 3.23 Programación combinada funciones/contactos

124
Controladores Lógicos Programables

Algunas unidades de programación basadas en ordenador (específico de fabricante o


PC de uso general) permiten al usuario definir sus propios bloques lógicos 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 híbridos,
desarrollando con un software específico de programación de autómatas que corre sobre
ordenador personal.

3.8.4 LENGUAJES DE ALTO NIVEL

Con CPUs cada vez más rápidas, más potentes y de mayor capacidad de trabajo, los
autómatas 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 razón, los fabricantes han desarrollado lenguajes de programación


próximos a la informática tradicional, con sentencias literales que equivalen a secuencias
completas de programación: son los lenguajes de alto nivel.

En ellos, las instrucciones son líneas de texto que utilizan palabras o símbolos reservados
(SET, AND, FOR, etc.), las operaciones se definen por los símbolos matemáticos
habituales (+,*,<, etc.) y se dispone de funciones trigonométricas, logarítmicas y de
manipulación de variables complejas (COS, PI, REAL, IMG,…).

125
Controladores Lógicos Programables

Sin embargo, lo que distingue realmente estos lenguajes avanzados de las listas de
instrucciones ampliadas son las tres características siguientes:

-Son lenguajes estructurados, donde es posible la programación por bloques o


“procedimientos”, con definición de variables locales o globales.
-Incluyen estructuras de cálculo repetitivo y condicional (figura 3..24), tales como:

-FOR…TO

-REPEAT…UNTIL X

-WHILE X…

-IF…THEN…ELSE

-Disponen de instrucciones de manipulación de cadenas de caracteres, muy útiles en


aplicaciones de gestión, estadística, etc.

Dada su facilidad de manejo y su difusión a todos los niveles, el BASIC,


convenientemente adaptado a las aplicaciones del autómata, se configura como el lenguaje
de alto nivel más extendido. Sin embargo, también se pueden encontrar intérpretes o
compiladores de C, PASCAL, FORTRAN, etc., lo que permite resolver tareas de cálculo
científico en alta resolución, clasificaciones de datos, estadísticas, etc., con total facilidad, y
con acceso además a módulos y subrutinas específicos ya escritos en estos lenguajes y de
uso general en aplicaciones informáticas.

126
Controladores Lógicos Programables

Figura 3.24 Estructuras de programación en alto nivel.

Dado lo específico de su aplicación, un programa escrito en alto nivel necesita para


su edición de una unidad de programación avanzada, o de un software de desarrollo de
programas que corra sobre PC.

Adicionalmente, es frecuente que el empleo de estos lenguajes estructurados obligue


además a utilizar no solo una unidad de programación tipo PC, sino incluso una CPU
especial en el autómata (coprocesador), capaz de interpretar y ejecutar las nuevas
instrucciones.

127
Controladores Lógicos Programables

En cualquier caso, los lenguajes de alto nivel son posibilidades adicionales al


alcance del programador, que puede, si así lo desea, utilizar solo las formas básicas de
contactos/bloques o lista de instrucciones para escribir sus aplicaciones: en otras palabras,
los lenguajes avanzados nunca constituyen el lenguaje básico de un automata o familia de
autómatas, papel que queda reservado a la lista de instrucciones o al diagrama de contactos.
La tabla 3.4 muestra las instrucciones del interprete BASIC disponible sobre los
autómatas Festo FPC 405,

Clasificadas en:
-Operaciones generales: comandos de actuación BASIC sobre bits, palabras, o textos
directos (SET, LET,..) o condicionados (IF, FOR,…)
-Operaciones de conversión: Cambios de código, obtención de módulos, etc.
-Operaciones matemáticas: Operaciones logarítmicas, trigonométricas, aritméticas, etc.
-Operaciones de control de programa: saltos y subrutinas.

Como puede observarse en la tabla, los comando que aparecen, son en su mayoría los de
uso normal del BASIC.

La figura 3.25 muestra un ejemplo de programación con este lenguaje. Como se


observa, una ventaja adicional del programa en alto nivel es que a él se puede transcribir,
casi literalmente, el diagrama de flujos que constituye la primera aproximación a la
representación del sistema de control. Esta ventaja, que evita pasar a algún otro modelo o
transcribir este inicial a otro lenguaje, supone sin duda un importante ahorro de tiempo en
la puesta en marcha de la aplicación.

Debe indicarse que algunas de las sentencias literales de alto nivel están disponibles
en lenguaje de contactos como bloques de función extendidos y viceversa: de esta forma, el
fabricante asegura la compatibilidad entre ambos lenguajes, y aprovecha mejor el software
maquina (firmware) desarrollado (figura 3.26).

128
Controladores Lógicos Programables

Tabla 3.4 Instrucciones BASIC del automata Festo FPC 405

INSTRUCCIONES
GENERALES CONVERSION MATEMATICAS DE CONTROL
BIT CLOSE ABS COS CALL MOD
DATA DEF BYTE PI CALL FUN
DIM ELSE CHR$ SIN CALL ASS
END ENDEF BID SGN GOSUB
FILE FOR DEB SQR ON GOSUB
GET IF INT (,) ON GOTO
INP INPUT RND + RETURN
LEFT $ LEN STR$ - USR
MODE NEXT VAL /
OPEN OUT WORD <
PEEK POKE >
PRINT PTR <=
READ READ$ =>
READL REM <>
RES PS RES F =
RESTORE RUN
SPC STEP
STOP TAB
THEN TIMER
TO UNLOCK
UPD USING
PRINT RES
SET SWAP

129
Controladores Lógicos Programables

Figura 3.25 Programación en alto nivel.

130
Controladores Lógicos Programables

Figura 3.26 Compatibilidad entre los lenguajes de contactos y de alto nivel (ejemplo
telemecanique)

RESUMEN

131
Controladores Lógicos Programables

Programar un autómata consiste en introducirle una secuencia de órdenes


(instrucciones) obtenidas desde un modelo de control, según una codificación determinada
(lenguaje) que por su forma puede ser:

-Literal, o textos
-Gráfica, o de símbolos.

Cada instrucción del programa consta de dos partes: el código de operación, que
define que se debe hacer, y 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.
Los lenguajes literales están formados por secuencias de textos agrupados en
instrucciones u ordenes elementales del programa.

Según la complejidad del lenguaje, están disponibles instrucciones desde sencillas


funciones booleanas (AND, OR, etc.). Hasta estructuras complejas de programación en alto
nivel (FOR..NEXT, WHILE, etc.), pasando por instrucciones de acceso a bloques
secuenciales (TIM, CNT, etc.) y de manipulación de textos y valores numéricos (ADD,
MOV, MUL, etc.)

Los lenguajes gráficos, con origen en los esquemas eléctricos de relés y en los
diagramas de la electrónica digital, utilizan símbolos de contactos/bobinas para representar
las instrucciones básicas, y símbolos de bloques lógicos para las extensiones al lenguaje,
que extienden su potencia hasta la de los lenguajes literales de alto nivel.

De esta forma permiten estructuras de programación tan complejas como aquellos,


sin perder por ello la facilidad de comprensión y visión de conjunto que ofrece siempre la
representación gráfica.

Ninguno de los lenguajes descritos resulta, en principio, superior a los demás:


depende siempre de la aplicación a que se destina.

132
Controladores Lógicos Programables

Así, la automatizació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 lenguajes básicos para la mayoría de autómatas. De hecho, es tan frecuente el uso
de uno u otro, que muchos fabricantes ya prevén en su software de programación sobre PC
la posibilidad de transcodificación entre ellos, con operaciones sencillas de
compilación/decompilación. De esta forma, el usuario puede trabajar con el lenguaje que
prefiera y compilarlo, si fuera necesario, al que entiende su autómata.

Para mandos complejos, que necesiten realizar cálculos, manipular largas cadenas
de caracteres o utilizar subrutinas o bloques de programación manufacturados (mando de
ejes, regulación PID, etc.), puede ser necesario utilizar lenguajes literales de alto nivel, que
permiten también, no se olvide, programar sentencias booleanas sencillas o manejar
temporizadores y contadores como listas de instrucciones.

Utilizados originalmente de forma independiente unos de otros, la tendencia actual


de los fabricantes pasa por la integración de las diferentes formas en un único lenguaje
mixto, que combine la claridad de los lenguajes gráficos para las funciones
combinacionales y secuenciales, con la potencia y compacidad de los literales para el
calculo matemático y los tratamientos de textos.

Para ello, se siguen los siguientes pasos:

-Potenciar los lenguajes gráficos, permitiendo el uso de estructuras de programación el uso


de estructuras de programación avanzada (GRAFCET) y aumentando las instrucciones de
expansión disponibles.
-Permitir la utilización de lenguajes literales dentro de un programa gráfico, bien
incluyéndolos como líneas de instrucción dentro del programa, bien editándolos como
subrutinas de libre acceso desde él.

133
Controladores Lógicos Programables

-Desarrollar herramientas de edición que permiten al usuario definir sus propias


sentencias, que podrá almacenar como bloques de expansión dentro de la librería
disponible.

En general, y como conclusión, se espera una evolución de los lenguajes gráficos


haciéndolos más potentes, más abiertos y más sencillos de manejar por el usuario, que cada
vez en mayor medida, podrá desarrollar sus aplicaciones sobre terminales de uso general
tipo PC.

UNIDAD IV.

PROGRAMACIÓN DE BLOQUES FUNCIONALES

INTRODUCCIÓN

Ya se ha comentado la existencia de bloques funcionales, más o menos complejos,


que aumentan la potencia de cálculo del autómata y simplifican la programación, al añadir
al lenguaje básico sentencias preprogramadas que son de uso general en automatización
(temporizadores, transferencias, etc).

Estos bloques, que pueden ser programados dentro de un diagrama de contactos o


como sentencias literales en una lista de instrucciones o lenguaje de alto nivel, se clasifican
en dos grupos, atendiendo a su forma de operación y disponibilidad en el programa.

-Bloques secuenciales básicos, de uso general incluso en autómatas de gama baja. Son los
biestables, temporizadores, contadores y registros de desplazamientos.
-Bloques de expansión (también llamados funciones), que aumentan la potencia del
lenguaje al permitir manipular variables numéricas y registros de datos, con instrucciones
aritméticas, de comparación, transferencias, etc.

134
Controladores Lógicos Programables

Los primeros pueden considerarse como parte de los lenguajes básicos de autómata,
mientras que los segundos son extensiones de ellos.
Todos estos bloques funcionales son sentencias preprogramadas de aplicación
general, es decir, el usuario debe adaptarlos a sus necesidades indicando las condiciones de
trabajo: valores de temporización, direcciones de origen y destino de la transferencia,
nombre (direcciones internas) de los registros con los que se desea operar, etc.

En su caso más general, los bloques presentan tres tipos de variables asociadas
(figura 4.1) .

-Condiciones de operación, que definen la habilitación y control del bloque.


-Operandos de función, sobre los que actúan las sentencias preprogramadas en el bloque
funcional.
-Salidas asociadas, cuyo estado depende de la ejecución de la función del bloque.

Los operandos de función pueden a su vez ser de dos tipos:


-Parámetros iniciales, que una vez fijados por programa o transferencia desde consola
permanecen normalmente inalterados.
-Datos de operación, variables o constantes contenidas en palabras de 8 o 16 bits que
reflejan el estado de entradas / salidas, valores internos, resultados, etc.

Estos datos, numéricos o alfanuméricos, que aparecen como operandos pueden


corresponder a:

--Números o caracteres ASCII constantes definidos en el programa,


--Textos preprogramados escritos en alguna unidad de memoria o dispositivo exterior,
--Variables numéricas (el caso más frecuente), en:
-registros internos,

135
Controladores Lógicos Programables

Figura 4.1 Estructura de un bloque funcional.

-temporizadores o contadores (valores actuales),


-canales de datos de 8 o 16 bits de entrada o salida (por ejemplo, datos binarios
resultantes de la conversión A/D en una entrada analógica).

Aunque los datos internos manejados por el autómata siempre son binarios, el
usuario puede definirlos en su programa sobre distintas bases: decimal, hexadecimal, BCD,
etc., encargándose el intérprete de su conversión automática al binario para su operación.

La programación más frecuente de un bloque funcional (sobre todo en los más


complejos) lo considera como elemento de un diagrama de contactos (como muestra la
figura 4.1), aunque algunos fabricantes permiten también su empleo literal en lista de
instrucciones, con reglas de sintáxis más o menos rígidas.
Se indican a continuación las estructuras, características y aplicaciones de los
bloques de uso más frecuente sobre autómatas programables.

4.1 BLOQUES SECUENCIALES BÁSICOS

136
Controladores Lógicos Programables

Los bloques secuenciales son elementos preprogramados por el fabricante cuyas


variables ocupan posiciones reservadas en la memoria interna del autómata (áreas), por lo
que el número total disponible de ellos dentro de un programa es siempre limitado.
Los bloques secuenciales más frecuentes, incorporados en prácticamente todos los
lenguajes de autómata, son:

- Biestables,
- Temporizadores,
- Contadores,
- Registros de desplazamiento, y
- Secuenciadores paso a paso.

Los biestables, registros y secuenciadores modifican la información de sus salidas


según la secuencia que se presente a sus entradas, mientras que los temporizadores y
contadores llevan implícitamente asignadas dos informaciones numéricas distintas:

-los valores de preselección (tiempo y módulo de cuenta)


-los valores actuales, contenidos en cada momento del programa.

En las operaciones de lectura, estos elementos entregan el valor actual contenido,


mientras que en las de escritura modifican su preselección con el valor recibido.
La información contenida en los bloques secuenciales pueden ser reinicializada al
valor por defecto tras una puesta en marcha o reset, o mantenida en sus valores actuales si
se le ordena al autómata mediante sus funciones de parametrización (excepto los
temporizadores, que permiten siempre la temporización en curso).

4.1.1 Biestables

137
Controladores Lógicos Programables

Un biestable es un dispositivo capaz de mantener indefinidamente su estado a 0 o 1


mientras el autómata permanezca en RUN y no se ordene un pulso de mando que lo
modifique.

Por esta definición, el biestable es el elemento secuencial más sencillo, capaz de


mantener un mismo estado lógico para distintas combinaciones de sus entradas de mando:
como este estado depende de la secuencia de valores de entrada, y no de su combinación
actual, se dice que el elemento posee “memoria” y, en efecto, en muchos lenguajes de
autómata se denomina a esta función célula o rele de memoria (Keep Relay).

La permanencia del biestable en un estado automantenido se debe a la presencia de


una realimentación interna, definida por el usuario si se construye la función a partir de
elementos combinaciónales estándar, o transparente para el si utiliza el bloque funcional
propuesto por el fabricante.

138
Controladores Lógicos Programables

Figura 4.2 Construcción de un biestable

La figura 4.2 muestra una estructura de biestable o memoria construida según la


primera opción, con puestas lógicas y diagrama de contactos junto con el listado de
programa correspondiente.
Como se observa en la figura, cuando ambas entradas Set y Reset (puesta a “1” y puesta a
“0”) permanecen inactivas a (cero), el elemento mantiene su valor anterior, mientras que la
activación de una u otra lo hace cambiar al estado “1” ó “0”.

La combinación S=R=1, ordenes simultaneas de Set y Reset, es por definición


contradictoria y no debería ser utilizada. Sin embargo, tal como sugieren los esquemas y el
propio listado del programa, la ejecución del mismo en un autómata es secuencial y esto
deshace la supuesta contradicción, puesto que las ordenes no son simultaneas sino
sucesivas y por tanto el resultado final es como si se hubiera programado la última (Set o
Reset).

Si el usuario prefiere utilizar el bloque funcional definido por el fabricante, tiene a


su disposición las señales Set y Reset anteriores, bien sobre un bloque compacto, bien como
sentencias separadas dentro del programa, como se ve en la figura 4.3. En el primer caso, la
prioridad en las acciones puesta a uno y puesta a cero, viene dada por el fabricante
(normalmente, Reset prioritario), mientras que en el segundo depende del orden de
colocación de las sentencias.

139
Controladores Lógicos Programables

Figura 4.3 Bloques funcionales biestables.

El biestable se utiliza típicamente como unidad de memoria, capaz de recordar el


estado de una señal aunque está haya sido de muy corta duración (pulso).

El empleo de esta función compacta los programas y simplifica la programación,


pero el usuario debe recordar que, una vez activado, y a diferencia de las salidas simples de
asignación OUT, la única forma de desactivar un biestable es ordenándolo de forma
explícita, con un Reset o por reinicialización total del autómata, lo que, en programas

140
Controladores Lógicos Programables

complejos de múltiples sentencias entrelazadas, puede dificultar la depuración de errores y


puesta a punto final.

4.1.2 Temporizadores

Un temporizador es un dispositivo capaz de retardar una orden de salida (activación


o desactivación) durante un cierto tiempo, en respuesta a una señal de mando de entrada.

Existen cuatro funciones distintas de temporización, cuyas formas de onda en el


tiempo se representan en la figura 4.4. Estas son las siguientes.

- Impulso: La salida se mantiene activa mientras dure la señal de mando o condición de


marcha, hasta un cierto tiempo máximo denominado tiempo de impulso.

- Retardo de conexión: La salida se retarda hasta que transcurra el tiempo de retardo. Es la


función más frecuente.

- Retardo a desconexión: La salida conecta simultáneamente con la entrada, y se mantiene


hasta un tiempo después de caer aquella, denominado tiempo de desconexión.

-Monoestable, o conformador de impulsos: Semejante al impulso de conexión, la salida se


mantiene activa, una vez activada la señal de mando, durante un tiempo constante e
independiente de esta señal. (figura 4.4a)

141
Controladores Lógicos Programables

Figura 4.4 Funciones de temporización.

142
Controladores Lógicos Programables

Estas funciones, o algunas de ellas, están disponibles como bloques funcionales


temporizadores dentro del lenguaje de autómatas.
Para su programación, los temporizadores necesitan definir tres campos:

-Nombre de la función, que define el tipo de temporización a utilizar.


-Número de elemento, que indica su dirección en variable interna (un elemento dado sólo
puede programarse una vez por programa).
-Parámetros de preselección, que concretan el valor total de la temporización, a partir de
los valores:

-Módulo de tiempo, o número de unidades a contar.


-Base de tiempos, o frecuencia de conteo de unidades.

Así, se cumple que


Tiempo total = Módulo X Base

En muchos autómatas la base de tiempos está predefinida por el fabricante


(normalmente, en décimas de segundo), por lo que no es necesario indicarla en la
programación.
El módulo de tiempo puede ser una constante definida en el programa (preselección
inmediata), o un valor leído en un registro interno o palabra de entradas/salidas, codificado
en BCD (preselección indirecta).

Los parámetros de preselección pueden ser modificados durante la puesta a punto o


durante la explotación, incluso con el autómata en RUN. Estas modificaciones son activas
mientras el autómata se mantiene bajo tensión, recuperando los valores por defecto ( en el
programa) en cada puesta en marcha.
Además de los campos anteriores, los temporizadores utilizan dentro de un programa:

- una variable binaria de control, obtenida por consulta de una entrada o variable
interna, o por combinación entre varias.

143
Controladores Lógicos Programables

- adicionalmente, una variable de salida que responda a la función temporizada.

Si el temporizador aparece como bloque funcional dentro de un diagrama de contactos,


puede disponer de alguna otra línea adicional, como muestra la figura 4.5, un temporizador
típico del lenguaje de contactos PL 7-2 de Télémecanique.

Figura 4.5 Bloque funcional temporizador

En este bloque, la entrada de enclavamiento E mantiene el valor temporizado


mientras esté a nivel alto, incluso si la variable de control o mando C se desactiva, mientras
que reinicializa el temporizador si se pone a cero.

144
Controladores Lógicos Programables

En general, sin embargo, los bloque temporizadores son de construcción más


sencilla, como muestra el ejemplo de la figura 4.6 un temporizador con retardo a la
conexión programado simultáneamente como diagrama de contactos y lista de
instrucciones.

Figura 4.6 Programación de un temporizador con retardo a la conexión.

145
Controladores Lógicos Programables

Es muy frecuente que el lenguaje empleado disponga únicamente en su


configuración más simple de la función de retardo a la conexión, aunque todas las demás
pueden obtenerse a partir de ella. Por ejemplo, la figura 4.7 muestra los programas
correspondientes, en diagrama de contactos, para implementar las funciones de impulso de
conexión y retardo a la desconexión.

Figura 4.7 funciones de temporización construidas con retardos a la conexión

146
Controladores Lógicos Programables

Otros autómatas (por ejemplo, Siemens) disponen de funciones específicas de


temporización, lo que permite obtener listados de programa más compactos, aunque exigen
mayor especialización por parte del usuario.

La figura 4.8 muestra un ejemplo de programación de la función monoestable,


indicando el esquema eléctrico de relés (con temporizador de retardo a la conexión), el
diagrama de contactos resultantes, y los listados comparados de la solución estándar
obtenida del diagrama, y del programa con lenguaje Siemens STEP 5 utilizando la función
especial SV. Destaca la reducción de programa resultante al utilizar esta función específica.

Figura 4.8 distintos programas de la función monoestable

147
Controladores Lógicos Programables

Los valores del módulo de temporización suelen oscilar entre 0 y 9999 (cuatro
dígitos BCD, 16 bits binarios), que, para la base de tiempos de 0.1 s (muy frecuente), se
convierten en temporizaciones de 0 a 9999 segundos.
Dada la mayor facilidad con que la CPU detecta el valor 0 sobre cualquier otro, los
temporizadores resultan ser, en general, descendentes:

-Cuando la señal de mando es activa, el temporizador se decremento desde el valor de


preselección (módulo de cuenta).
-Cuando se alcanza el tiempo prefijado, el temporizador se mantiene a cero hasta que
desaparezca la señal de mando.
-Cuando la señal de mando es cero, el temporizador se carga al valor de preselección
(excepto si existen otras señales de mando; véase la figura 4.5).
Si la línea o sentencia que contiene al temporizador es saltada durante la ejecución,
no se detiene el contaje de tiempo, aunque la salida asociada no se activa hasta que el
programa pase de nuevo por ella, en el supuesto que se ha alcanzado el tiempo de
reselección.

Figura 4.9 Temporización extendida de horas, minutos y segundos.

148
Controladores Lógicos Programables

Por supuesto, el valor de temporizaciòn final puede aumentarse o escalarse


conectando dos o más temporizadores en serie, de forma que la habilitación (señal de
mando) de cada uno la constituya el alcance de tiempo del anterior.

Según este principio, la figura 4.9 propone una temporizaciòn de segundos, minutos
y horas utilizando varios elementos con base de tiempo 100 ms y valor máximo de
preselecciones de cada uno, por ejemplo para 1 hora, 5 minutos, 25 segundos, es como
sigue:

1h = 3600 s
5 min. = 300 s
25 s = 25 s
3925 s preselección

= 39.250 (decenas de segundo)

Se necesitan cuatro temporizadores, los tres con preselección 9999 (925,7 s en


total), y el cuarto con 9253 (925,3 s), dependiendo el primero de la condición de mando,
y los siguientes del alcance del tiempo anterior.

En general, los bloques temporizadores más frecuentes, retardo a la conexión e


impulsos, no son acumulativos: si desaparece la señal de mando, se pierde el tiempo
acumulado hasta el momento. Este funcionamiento, que se corresponde con el de los relés
electromecánicos o eléctricos conectados en los cuadros de mando, puede no interesar al
usuario, que preferiría mantener el tiempo aun cuando desaparezca la señal de control, por
ejemplo, en cronometrajes.

La solución más eficaz en estos casos consiste en utilizar un reloj propio del
autómata (relé interno especial) como base de tiempos, y activar con el un contador cargado
con el módulo deseado: mientras lo permita la señal de mando, el contador incrementa su
cuenta a la frecuencia del reloj, pero si se interrumpe la habilitación (o si ocurre una
pérdida de tensión) no se pierde el tiempo transcurrido, que permanece como valor

149
Controladores Lógicos Programables

contado. Una estructura de este tipo, que puede considerarse como de temporizador
acumulativo, se presenta en el apartado de descripción de contadores.

Algunas aplicaciones típicas de temporizadores son las siguientes:

-Generación de retardos o conformación de impulsos.


-Cronometrajes entre sucesos consecutivos.
-Filtrado de señales (retrasando la lectura valida hasta un tiempo después de recibida la
señal.).
-Obtención de tiempos de parada en maquinaria, para estadística, mantenimiento, etc.

4.1.3 Contadores

Un contador es un dispositivo capaz de medir (contar) el número de cambios de


nivel en una señal de entrada, activando una señal de salida cuando se alcanza un valor
prefijado.
Están definidos dos tipos de contadores:

-Contador incremental, que acumula el número de impulsos recibidos por su entrada de


pulsos.

-Contador bidireccional (UP/DOWN), que acumula la diferencia entre los pulsos recibidos
por sus entradas de cuenta ascendente y cuenta descendentes.

En estos últimos existen, a su vez, dos versiones:

-De entradas de pulsos separadas, UP (cuenta ascendente) y DOWN (cuenta descendente).


-De entrada de pulsos común (PULSE), y señal adicional de dirección de cuenta (U/D).

150
Controladores Lógicos Programables

La operación del contador reversible es cíclica (…9998, 9999, 0,1,…), mientras que
el contador incremental se detiene una vez alcanzado el modulo de cuenta.
La figura 4.10 muestra las formas de onda temporales correspondientes a estas tres
estructuras de contador descritas.
Obsérvese como en los contadores bidireccionales la salida se activa cuando el valor
contado es cero: no tiene mucho sentido detectar un valor de preselección que puede ser
forzado en cualquier momento con la orden “Pre set”.

Además, para evitar actuaciones prematuras del contador, este no actúa (no recoge
impulsos y la salida esta en OFF) hasta que la señal “Pre set” recorre al menos una vez la
secuencia ON-OFF.

Los bloques funcionales contadores definidos sobre autómatas, disponibles en todos


lo tipos anteriores, necesitan para su programación de los siguientes campos:

-Nombre de función, que distingue entre contadores incrementales o bidireccionales.


-Número de elemento, que indica su dirección en variable interna.

Puesto que los temporizadores y los contadores son conceptualmente muy


semejantes (el valor de cuenta cambia en cada impulso externo, mientras que en los
temporizadores avanza según un reloj interno), muchos autómatas disponen de un área
común para ubicarlos, y la dirección o número de elementos puede ser atribuida a uno u
otro, aunque no a ambos simultáneamente en un mismo programa.

Parámetros de preselección, que indican el valor a alcanzar por el contador antes de


activar la salida (modulo de cuenta, en los contadores incrementales), o el valor de carga
cuando se activa la señal de validación (preselección, en los contadores bidireccionales).

Además, el bloque contador necesita de algunas señales binarias asociadas, como


son las entradas de pulsos para conteo, y las señales de habilitación o reset.

151
Controladores Lógicos Programables

Figura 4.10 Formas de onda temporales de contadores

152
Controladores Lógicos Programables

Estas últimas siempre son prioritarias sobre las entradas de pulsos.

En la figura 4.11 aparece la programación, en diagramas de bloques, de los


diferentes tipos de contador, con las señales asociadas.

Figura 4.11. Bloques funcionales contadores

153
Controladores Lógicos Programables

Si la programación se hace por lista de instrucciones, el fabricante puede imponer el


orden de aparición de las sentencias, agrupando las señales correspondientes a un mismo
contador en un orden preestablecido de obligación cumplimiento (opción mas frecuente), o
dar un nombre propio a las señales involucradas, que de esta forma pueden aparecer en
cualquier parte y en cualquier orden dentro del programa.

La figura 4.12 presenta ambas opciones, correspondientes a los lenguajes de


programación (en diagrama de bloques y lista de instrucciones) de los autómatas Izumi y
Siemens.

El conteo de la señal de entrada se hace habitualmente por flanco o frente


descendente, bastaría con complementar la señal de entrada), de forma que sea cual sea la
duración del impulso, el contador solo cuenta la transición o cambio de estado.

El módulo de cuenta o la preselección suelen estar limitados, como en los


temporizadores, a un valor entre 0 y 9999 (16 dígitos binarios, en una palabra o registro
interno), y pueden venir dados, al igual que en aquellos, por una constante en el programa,
o por lectura desde una variable interna o de entrada / salida.

154
Controladores Lógicos Programables

Figura 4.12. Distintas formas de programación de un contador bidireccional.

155
Controladores Lógicos Programables

Si fueran necesarias cuentas superiores a 9999, o subdividirla según pesos


arbitrarios, pueden colocarse contadores en serie de forma que la salida de cuenta alcanzada
de cada uno actuara como impulso de entrada al siguiente, al tiempo que provoca un auto
reset en el contador. En este caso, el modulo total de cuenta será el producto de los módulos
parciales. La figura 4.13 muestra una disposición de este tipo, en la que tres contadores
alcanzan un modulo de cuenta de 1000, organizado en pesos decimales.

Aplicaciones típicas de los contadores son:

-Contaje de sucesos, para ordenar acciones de mando o disparar alarmas,


-Control de stocks,
-Divisores de frecuencia, con un factor de división igual a modulo de cuenta: frecuencia
de salida= frecuencia de entrada/modulo de cuenta,
-Estadísticas de producción (numero de piezas, paradas de maquina), etc.

Una aplicación particular consiste en utilizar los contadores como


temporizadores a base de introducir a la entrada de pulsos una variable interna de reloj.
Puesto que el valor del contador puede mantenerse con una batería en caso de pérdida de
tensión, la aplicación permite construir temporizadores que mantienen su estado incluso en
caso de perdida de alimentación.

La figura 4.14 muestra una disposición de este tipo, capaz de contar horas,
minutos y segundos en una estructura mucho mas sencilla que la lograda con
temporizadores (ver la figura 4.19), y además con la información protegida contra perdidas
de tensión, tanto por parada voluntaria como por caída de la alimentación. Este esquema,
fácilmente ampliable hasta días o meses, permitiría, por ejemplo, conocer los tiempos de
funcionamiento de una máquina, de una línea de producción, etc.

156
Controladores Lógicos Programables

Figura 4.13 Asociación de contadores en serie.

157
Controladores Lógicos Programables

Figura 4.14 Temporizador mantenido contra perdidas de tensión.

158
Controladores Lógicos Programables

4.1.4 REGISTROS DE DESPLAZAMIENTO

Un registro de desplazamiento (Shift Register, SFT) es un bloque funcional


formado por una cadena de biestables conectados en serie, de forma que permiten el paso
de bits (estados) de uno a otro, sincronizado con una señal externa de reloj.

El bit contenido en el último biestable se pierde en la transición, mientras que


el primero pasa al estado de terminado por la entrada de datos. Por supuesto, las
informaciones parciales contenidas en cada biestable pueden ser leídas o consultadas desde
cualquier punto del programa, y el contenido total del registro puede ser forzado a
cualquier valor con operaciones de transferencia de palabra o byte binarios, o puesto a
cero mediante su entrada de reset.

En aplicaciones donde sea necesario desplazar los datos tanto hacia la derecha como
hacia la izquierda, se utilizaran los registros de desplazamiento bidireccionales, cuya única
diferencia con los anteriores consiste en la inclusión de una señal de mando cuyo estado
determina el sentido de circulación de la información.
La función registro de desplazamiento necesita los siguientes tres campos para su
programación:
-Nombre de la Función, que la identifica indicando su carácter unidireccional o
bidireccional.
-Número de elemento, que indica su posición en la memoria interna.
-Señales de entrada de reset, datos y reloj.

Algunos autómatas pueden disponer de registros de longitud variable. En este caso,


el número de elemento se subdivide en dos campos, posiciones inicial y final de memoria
(en unidades de bit o de palabra) sobre las que se define la función.
La figura 4.15 muestra la programación de un registro de desplazamiento, como
bloque funcional en un diagrama de contactos.

159
Controladores Lógicos Programables

Figura 4.15. Registro de desplazamiento.

Como agrupación de biestables que es, el registro de desplazamiento puede ser


programado por el usuario mediante instrucciones set/reset, combinadas eventualmente con
un contador para definir procesos cíclicos. Esta razón puede explicar el relativo bajo uso
que de la función hacen los programadores habituales del autómata. Sin embargo, su
potencia para el tratamiento de procesos secuenciales, y su facilidad de uso, le hacen

160
Controladores Lógicos Programables

merecedor de una mayor atención. Por ello, se ha creído útil incluir aquí tres ejemplos de
programación que demuestran las posibilidades de esta función.
El primero de ellos, y tal vez el más característico, es el control de calidad en líneas
de producción.
Supóngase un producto manufacturado, por ejemplo, botellas de perfume, que es
sometido a tres comprobaciones en una cadena de supervicio: nivel correcto de producto,
presencia de etiqueta, y tapón colocado. Las comprobaciones se realizan sobre estaciones
consecutivas, como muestra la figura 4.16, que entregan un bit de salida para indicar
presencia o ausencia de defecto, niveles “1” ó “0”.

Figura 4.16 Cadena de control de calidad

Las señales de salida son enviadas a tres registros de desplazamiento, SFT1, SFT2 y
SFT3, que reciben pulsos de reloj sincronizados con el avance de las piezas. De esta forma,
cada registro tiene almacenado el estado de las piezas presentes en la cadena, desde la
estación que le corresponde, y hasta el final de la misma.

161
Controladores Lógicos Programables

Un expulsor hidráulico colocado al final de la cadena rechaza las piezas


defectuosas, identificadas por los bits correspondientes en cualquiera de los tres registros:
transcurridos 3, 2 o 1 pulsos (unidades de avance), el producto defectuoso, señalizado por
las estaciones 1,2, o 3, respectivamente, se encuentra bajo el cilindro y este actúa por
lectura del bit de estado.

El programa de control se presenta en la figura 4.17, con las señales de reset y Cloe
comunes a todos los registros.

Figura 4.17 Programación de la cadena de control de calidad

Otra aplicación típica es la de secuenciador o leva electrónica, en la que un conjunto


de ordenes o leyes de mando se ejecutan secuencialmente según la posición del bit activo
(leva) dentro del registro.

162
Controladores Lógicos Programables

El proceso se convierte en ciclo si se realimenta la salida del registro con su propia


entrada (figura 4.18). El bit o bits activos dentro del registro, que se desplazan
secuencialmente por su interior, habilitan la ejecución de cada etapa de mando.

Figura 4.18 Construcción de una leva.

El programa de la leva, definido por el estado de los bits internos del SFT, se carga
en este mediante una operación de transferencia de palabra en la puesta en marcha: a partir
de este instante, la secuencia de unos y ceros se repite indefinidamente mientras no se altere
por un reset o una nueva transferencia.

163
Controladores Lógicos Programables

Si la entrada de pulsos se obtiene se obtiene de un reloj, la leva se denomina de


avance temporizado, y las secuencias de tiempos Ton- Toff de la salida se mantienen
inalteradas. En caso contrario las secuencias de unos y ceros se repiten pero los tiempos
asociados pueden variar según la frecuencia de los pulsos de mando.

La lectura de la leva, que en el ejemplo de la figura 4.18 se realiza en el último bit


del registro, puede hacerse sobre cualquiera de los bits internos, o incluso sobre varios
simultáneamente, lo que permite obtener secuencias iguales desfasadas en el tiempo.

El ejemplo mostrado se refiere a una sola leva, de tantos pasos como posiciones
tenga el registro. Si se desean varias de ellas (árbol de levas), se utilizaran tantos SFY como
sena necesarios, cada uno con el programa o secuencia específica, pero con los impulsos de
mando comunes.

Algunos fabricantes disponen ya de esta estructura como bloque funcional


preconstruido, el programador cíclico.

Un último ejemplo de aplicaciones, más específico que los anteriores, seria el


control de pociones de montacargas o ascensores. En este caso se necesita un registro
bidireccional, que guarda en su interior un único bit activo cuya posición refleja la del
elevador dentro de su recorrido.

El programa en la figura 4.19 presenta un ejemplo sobre un ascensor de seis pisos.


Los registros de desplazamiento utilizados se definen, en sentidos de avance directo (SFR)
e inverso (SFRN), sobre las posiciones de bit 1 a 6, en el área de memoria interna reservada
a estos elementos.

164
Controladores Lógicos Programables

Figura 4.19 Control de posición de un elevador

165
Controladores Lógicos Programables

La decisión del sentido de movimiento se obtiene por comparación entre el número


de piso pulsado y la posición del bit activo dentro del registro.

Determinado el sentido e iniciado el movimiento, los cambios de piso desplazan en


el sentido adecuado este bit dentro del registro.

Para mayor seguridad, el alcance de las plantas inferior y superior fuerzan el


contenido del Registro al valor correcto, 000001 ó 100000 respectivamente, aunque al
realizarse las transferencias indicadas sobre palabras de 8 bits, es inevitable la ocupación de
R1 y R8, que quedan invalidadas para otras aplicaciones.

Obsérvese la estratagema de programación que deja permanentemente abiertas las


líneas de reset y dato.

4.1.5 SECUENCIADORES PASO A PASO

La función secuenciador paso a paso (Step by Step) hace posible el control


secuencial de procesos cuando estos pueden dividirse en diferentes pasos o etapas, de
ejecución consecutiva y condicionada al cumplimiento de condiciones de transición que
fuerzan el salto de paso.

La ejecución de la instrucción o instrucciones del bloque de programa o etapa


asociada a cada paso se hace depender de la activación del mismo, bien supeditándolo
explícitamente al bit indicador correspondiente (figura 4.20), bien limitando el programa
con instrucciones de inicio y final de bloque. El arranque inicial se logra poniendo a “1” el
primer bit de paso, por acción del operador o de forma automática por alguna condición
previa. A partir de este instante, los saltos sucesivos entre etapas quedan fijados por la
condición de fin de la anterior. Por supuesto, pueden definirse secuencias cíclicas indicando
un salto desde la última etapa a la primera.

166
Controladores Lógicos Programables

Figura 4.20 Estructura de un secuenciador

167
Controladores Lógicos Programables

Recordando el funcionamiento del registro de desplazamiento, resulta fácil asociar


el secuenciador a un caso particular de aquel, en el que solo uno de los bits internos puede
ser activo simultáneamente mientras la entrada de pulsos recoge las condiciones de
transición sumadas con una Or – lógica. La estructura lógica resultante, de un bit
desplazándose bajo las condiciones de paso, se corresponde muy bien con la evolución
temporal de muchos automatismos industruiales. De hecho, de los tres ejemplos descritos
en el apartado anterior, de aplicaciones del registro de desplazamiento, dos de ellos, la leva
secuencial y el control de posición de un elevador, podrían haberse resuelto mejor con esta
nueva función.
Dentro de un programa, y según el tipo de autómata, el usuario puede definir un
bloque secuenciador de alguna de las siguientes formas:

- Eligiendo uno de entre los que le propone el fabricante, de longitud fija (por ejemplo, uno
entre 32, con 16 bits cada uno).
- Definiendo el o los que necesita, de longitud variable, sobre las posiciones que el
fabricante reserva para este fin, (por ejemplo, 256 posiciones).

El secuenciador puede considerarse una macroinstrucción cuya programación


necesita al menos de dos conjuntos de sentencias:

- Selección del secuenciador, donde el usuario elige el que necesita entre los que le propone
el fabricante, o define el suyo sobre el área prevista a tal efecto (direcciones inicial y final),
activa el primer paso de la secuencia y valida el funcionamiento del bloque.
- Salto de paso (“Step”), que habilita el paso siguiente y deshabilita el actual cuando se
cumplen las condiciones de paso fijadas.

Adicionalmente, pueden existir sentencias de inhibición de paso o de salto


incondicional, que permiten el control asíncrono de la secuencia (aunque, si no existieran,
podrían programarse como condiciones adicionales en cada etapa).

168
Controladores Lógicos Programables

Una vez seleccionado el secuenciador, y establecidas las condiciones de transición


entre pasos, el usuario sólo tiene que supeditar los bloques o etapas en que haya dividido el
programa a los pasos deseados.
La función secuenciador es típica en los lenguajes de autómata de fabricantes
japoneses, prefiriendo los europeos, en general, implementarla mediante secuencias
GRAFCET o programadores cíclicos multilevas.

4.2 BLOQUES FUNCIONALES DE EXPANSIÓN

A diferencia de los bloques secuenciales básicos, los bloques funcionales de


expansión no están preprogramados sobre áreas de memoria interna, sino disponibles como
macroinstrucciones del lenguaje de programación.

Por tanto, su empleo no está limitado por ninguna cantidad dentro de un programa,
si bien los elevados tiempos de ejecución que requieren (respecto a las más simples
instrucciones lógicas O, Y, NO (OR, AND, NOT) pueden hacer desaconsejable su uso
extensivo cuando se necesiten ciclos ejecución muy cortos.

Los bloques de expansión, que reciben diferentes nombres según los fabricantes
(bloques operativos, instrucciones de computación, etc.), incluyen todas aquellas
instrucciones que aumentan y mejoran la potencia de tratamiento de la información por
parte del autómata: transferencias, operaciones aritméticas, comparaciones, etc.,
instrucciones que extienden los lenguajes de autómata mucho más allá de las sencillas
operaciones lógicas o bloques secuenciales estándar.
Una primera clasificación de estas nuevas instrucciones las divide en:

- Transferencias y
- Operaciones.

169
Controladores Lógicos Programables

Las primeras incluyen cualquier desplazamiento de información entre registros del


sistema de autómata, mientras que las segundas definen las operaciones (aritméticas,
lógicas, trigonométricas, etc.) realizadas sobre palabras de datos.

Una definición tan amplia incluye en los bloques de expansión gran número de
instrucciones y sentencias, aun cuando existan significativas diferencias entre ellas: no es
comparable, por ejemplo, una operación de división entre dos registros de 16 bits (4 dígitos
BCD) en coma fija (unidades enteras). Con una división en coma flotante sobre 32 bits (7
dígitos BCD más en coma decimal de posición variable).

De hecho, puede realizarse una diferenciación bien realista entre bloques de


expansión atendiendo a su grado de disponibilidad: mientras que algunos de ellos, como los
de comparación, aritmética simple, transferencias internas, etc., pueden considerarse como
básicos dada su frecuencia de aparición, otras operaciones avanzadas, como las aritméticas
de coma flotante, operaciones trigonométricas, comunicaciones entre autómatas y otros
sistemas, etc., están sólo disponibles sobre las máquinas de mayores prestaciones de cada
gama, de aplicación en procesos que existen la mayor potencia de cálculo y control.

Esta división entre básicas y avanzadas puede también ser alcanzada considerando
el tipo (magnitud) de operandos que utiliza la instrucción, que pueden corresponder a
(figura 4.21):

- Bits individuales (variables binarias).


- Palabras o canales de 8 (byte), 16 (Word) o 32 (long Word) bits.
- Bits dentro de una palabra.
- Tablas o cuadros de palabras.
- Bloques o áreas completas de memoria.

Por supuesto, debe entenderse la figura 4.21 en su sentido amplio, que incluye
dentro de los bits individuales tanto relés internos, especiales, auxiliares, etc., como
indicadores de paso

170
Controladores Lógicos Programables

de secuenciador, o etapa GRAFCET, por ejemplo, y dentro del área de palabras tanto los
registros de datos como los dedicados a temporizadores, contadores, registros de
desplazamiento y canales de entrada/salida.

Figura 4.21 Operandos en bloques de expansión

Los dos primeros operandos enunciados, bits y palabras simples, son propios de las
expansiones básicas (aritmética en coma fija, comparaciones, complementación, etc.),
mientras que los tres últimos aparecen en las avanzadas (aritmética en coma flotante,
comparaciones múltiples, transferencias de información, etc.)

171
Controladores Lógicos Programables

Así, por ejemplo, existen instrucciones (básicas) de rotación que giran un bit dentro
de una palabra, y otras (avanzadas) que mueven una palabra dentro de una tabla,
comparaciones (básicas) entre palabras, o (avanzadas) entre tablas, etc.

Los siguientes apartados describen algunos de estos bloques de expansión que


mejoran y completan los lenguajes de autómata.

4.2.1 FUNCIONES DE CARGA Y TRANSFERENCIA.

Además de las señales lógicas todo nada usuales en automatización, el empleo de


los bloques secuenciales descritos anteriormente obliga al autómata a manejar otro tipo de
señales, las informaciones numéricas de preselección y valor actual de temporizadores,
contadores, registros, etc.

Aunque en las máquinas más sencillas el usuario tiene sólo la posibilidad de


programar y, eventualmente, modificar estos valores de preselección desde la consola,
muchos autómatas disponen de instrucciones de manipulación de variables numéricas y
alfanuméricas, no solamente para utilizar con aquellos bloques, sino también con las nuevas
instrucciones aritméticas y de movimiento de textos que admiten los lenguajes extendidos
de programación.

Fundamentalmente, estas instrucciones de carga y transferencia permiten definir y


desplazar informaciones (constantes, variables y textos) entre registros internos, bloques
secuenciales (valores actuales y de preselección), direcciones de entrada y salida, etc., e
incluso entre el autómata y dispositivos externos: memorias masivas, salidas serie y
paralelo y visualizadores ASCII.

La información tratada puede aparecer bajo diferentes formas, advirtiendo de ello el


formato de la operación, o el del propio operando. Por ejemplo, los autómatas Siemens

172
Controladores Lógicos Programables

distinguen entre instrucciones como LKH (cargar una constante hexadecimal), LKT (cargar
un valor BCD de preselección de temporizador), LEB (leer un byte de entradas), etc.

Figura 4.22 Transferencia de datos entre canales E/S e internos

Como ejemplo de estas instrucciones, en la figura 4.22 se ve una transferencia de


datos según el lenguaje de contactos de Omrón, entre un canal de entradas (16 bits) que
comienza en la dirección 10, y dos canales internos mantenidos (direcciones 0 y 9), con
complemento a uno en la segunda transferencia.

173
Controladores Lógicos Programables

Aplicaciones típicas de las funciones de transferencia son:

- Modificación de preselecciones de temporizadores y contadores, según señales binarias de


mando.
- Lectura de informaciones digitales (8 o 16 bits) desde las entradas.
- Salidas de información digital alfanumérica.
- Apoyo a secuencias aritméticas, etc.

También es posible desplazar no sólo datos de 16 bits, sino bloques completos de


ellos, utilizando las instrucciones de transferencia de bloques en aplicaciones como:

- Inicialización de áreas de memoria, por carga de una constante en múltiples registros.


- Desplazamientos de bloques de datos, por ejemplo, tablas.
- Acceso secuencial a estructuras <<FIFO>> y <<LIFO>>, sobre áreas de memoria
específicas o definidas por el usuario, etc.

Algunas instrucciones especiales, como las rotaciones o las de transcodificación,


pueden considerarse instrucciones de transferencia con modificación del contenido, girando
la información a derecha o izquierda en el primer caso, o cambiando su código (BCD a
binario, binario a BCD, horas a minutos, etc.) en el segundo. El resultado puede quedar
depositado en el mismo registro, o ser transferido a otro nuevo.

Por último, los autómatas de gamas altas disponen de instrucciones de transferencia


capaces de mover informaciones entre la memoria interna del autómata y dispositivos
externos:

- Visualizadores (salida de mensajes).


- Unidades externas de memoria.
- Puertos serie y paralelo del autómata, etc.

174
Controladores Lógicos Programables

La presencia de estas instrucciones avanzadas permite al autómata comunicarse con


el mundo del usuario de forma tan eficaz a como lo hace con la planta, y sin coste añadido
de tiempo de desarrollo para aquél: en efecto, con ellas puede dar salida a mensajes sobre
visualizadores alfanuméricos o monitores TRC, cargar sobre el autómata nuevas tablas de
datos, parámetros o puntos de ajuste de producción, o incluso transferirle programas
completos, lo que permite diseñar aplicaciones en las que un programa se modifica así
mismo o se autosustituye completamente, en programación “ on – line” ó de tiempo real.

4.2.2 COMPARACIONES DE DATOS

Las instrucciones de comparación (CMP) comparan el contenido de dos


informaciones numéricas de 16 o 32 bits, activándose una señal específica para los
resultados:

- Igual (=)
- Menor (<)
- Mayor (>)

Según lenguajes, estas señales corresponden a direcciones:


- Predefinidas por el fabricante, sobre relés internos especiales.
- Asignadas por el usuario, desde la misma instrucción.

En el primer caso, debe tenerse en cuenta que los relés internos indicadores suelen
ser comunes para todas las instrucciones de comparación usadas en el programa, por lo que
es conveniente condicionar las salidas de cada comparación a la condición de habilitación
de la misma. Así, se evitan interferencias entre comparaciones distintas dentro del
programa.

La figura 4.23 muestra dos comparaciones sucesivas, desacopladas según la


consideración anterior.

175
Controladores Lógicos Programables

Figura 4.23 Instrucciones de comparación desacopladas.

Si es el usuario quien asigna las direcciones de salida de resultado de comparación,


debe únicamente comprobar que ésta utilizando direcciones distintas para cada operación.

En algunos lenguajes, las instrucciones de comparación permiten detectar


directamente no solamente las condiciones igual, menor o mayor, sino también las
combinaciones O (OR) entre ellas:

176
Controladores Lógicos Programables

- Menor o igual (≤)

- Mayor o igual (≥)

- Distinto (< >)

Una estructura de comparación especial es la de intervalo, en la que el usuario


indica los umbrales S1 y S2 entre los que la variable comparada activará la salida, es decir,
el umbral de comparación puede ser una constante, o una variable interna o leída desde las
entradas.

Figura 4.24 Comparación de intervalo

S1 ≥ variable ≥ S2 salida ON

177
Controladores Lógicos Programables

Una instrucción como esta permite chequear fácilmente rangos de máximo y mínimo
valor de una variable, por ejemplo, para disparar alarmas, establecer controles de calidad
etc.
La figura 4.24 muestran una comparación de intervalo en la que el usuario decide la
variable de salida asociada al resultado.

Las instrucciones de comparación multiplican la potencia de temporizadores y


contadores, al permitir detectar estados intermedios de estos elementos, y no solo los de
cuenta o tiempo alcanzado.

Así, por ejemplo, distintos estados de una cuenta que utiliza las mismas señales de
pulsos, reset y habilitación no tiene por que necesitar diferentes contadores: basta uno solo,
en el que los estados se detectan por comparación a diferentes valores.

El ejemplo de la figura 4.25 muestra el control de un deposito, en el que interesa


comprobar diferentes niveles de llenado, para estadística o reposición (supóngase un
producto cuantificable en unidades).

La entrada de “preset” permite cargar en el contador el contenido actual del depósito,


introducido desde el exterior (por ejemplo, con cuatro preselectores BCD).

Las instrucciones de comparación descritas operan sobre palabras de 16 o 32 bits,


pero, al igual que ocurre con casi todos lo bloques de expansión, algunos lenguajes
permiten otras posibilidades, referidas a operaciones sobre tablas de palabras:

-Comparaciones múltiples de tablas de datos entre si.


-Búsqueda (por comparaciones sucesivas) de una variable en una tabla.
-Determinación del máximo o mínimo de una tabla.
-Contaje del numero de veces que una cadena de bits aparece en una tabla, etc.

178
Controladores Lógicos Programables

Figura 4.25 Control de deposito.

4.2.3 INSTRUCCIONES LÓGICAS ENTRE PALABRAS

Estas instrucciones tratan los datos en la palabra como cadenas de bits, que son
entonces operados dos a dos según las funciones O, Y, O-exclusiva y NO (OR, AND, XOR
y NOT).

179
Controladores Lógicos Programables

Aunque las instrucciones se definen normalmente sobre palabras de 16 o 32 bits,


algunos lenguajes admiten cadenas variables de n bits a partir de uno dado. Por ejemplo,
Telemecanique PL7-2 permite el operando B11 (30), una cadena de 30 bits a partir del B11.
Las instrucciones lógicas entre palabras necesitan de cuatro campos para su
programación:

-Nombre de la función (OE, AND…),


-Palabra operando 1.
-Palabra operando 2.
-Palabra destino.

Si intenta enviarse a la dirección de destino un valor fuera del rango que tenga
asignado (por ejemplo, un valor mayor de 9999 a una dirección de preselección de
contadores), aparece un error durante la ejecución.

Figura 4.26 Ejemplos de aplicación de operaciones lógicas entre palabras.

180
Controladores Lógicos Programables

Estas instrucciones se utilizan en general para agilizar la programación y reducir el


tiempo de ciclo cuando las operaciones sean repetitivas sobre varios bits: ocupa menos
memoria, y se ejecuta más rápido, una instrucción lógica entre dos palabras de 16 bits, que
las 16 instrucciones correspondientes bit a bit.

En particular, OR-WORD se utiliza para acumular valores sobre un registro, por


ejemplo, de alarmas, AND-WORD para enmascarar parte de una palabra, forzando sus bits
a cero, y palabra, forzando sus bits a cero, y XOR para invertir ciertos bits, por ejemplo, de
salidas, cuando se cumple una condición.

La figura 4.26 muestra algunos de estos ejemplos, de enmascaramiento de los 8 bits


superiores del registro DR0, y conmutación de los bits b1 y b4 de la palabra de salida 200.

4.2.4 FUNCIONES ARITMÉTICAS

La capacidad de cálculo de los autómatas programables es muy variada,


dependiendo de su posicionamiento dentro de las gamas baja, media o alta. En general, las
instrucciones elementales de:

-Incrementos/decrementos.

-Suma/diferencia.

-Multiplicación/división.

Sobre palabras de 16 bits (9999 en BCD) están disponibles en todas las máquinas,
excepto tal vez en algún microautómata compacto, mientras que las más avanzadas de:

181
Controladores Lógicos Programables

-Aritmética en coma flotante.

-Operaciones trigonometricas (arc) sen, cos, tg.

-Raíz cuadrada.

-Medias, medianas y otras funciones estadísticas, etc.

Con operandos muchas veces de más de una palabra, aparecen solo en los lenguajes
previstos para autómatas de gama alta.

Los datos operándos en instrucciones aritméticas deben estar normalmente en


BCD, aunque algunas máquinas admiten aritmética alternativa en códigos binarios.
Posibles rangos numéricos para estas instrucciones se muestran en la tabla 4.1

Si el resultado de una instrucción de suma o resta desborda la capacidad del registro


destino, aparece un acarreo (carry) sobre un relé interno especial. Cuando este bit es
utilizado en una operación (operando 1 ± operando 2 ± “carry” = resultado), debe
asegurarse su estado a cero o uno antes de ordenarse esta. Para ello, existen instrucciones
especiales STC, CLC (puesta a uno o a cero, respectivamente), que permiten fijar su valor.

Aunque por defecto el bit de acarreo queda a cero tras un reset, la precaución
anterior es obligada antes de empezar a operar. En operaciones multiregistro, sin embargo,
debe respetarse el esto del acarreo para que este pueda afectar a registros posteriores de
mayor peso.

Como se observa en la tabla, las operaciones en coma flotante permiten expresar


números positivos ó negativos muy grandes (± 4294 967 2954 x 10 63) ó muy
pequeños (± 1 x 10 63) mediante el exponente y su signo.

182
Controladores Lógicos Programables

Tabla 4.1 Rangos numéricos para operandos.

NUMERO DE BITS NOMBRE REGISTROS RANGO DE VALORES


OCUPADOS
8 Bits Byte 1 0 a 255
16 bits Palabra 1 0 a 9999
BCD BCD Con carry
Suma: 0 a 131071
Resta: -65536 a 65535
16 bits Palabra binaria 1 0 a 65535 (FFFF hex)
Binarios Con carry
Suma: 0 a 131071
Resta: - 65536 a 65535
15 bits Palabra entera 1 -32768 a 32767
+ signo

2 x 16 bits Doble Palabra BCD 2 0 a 99 999 999


binarios

32 bits Doble 2 0 a 4294 967 295


Binarios Palabra
BIN

31 bits Doble 2 -2147 483 648


+ signo Palabra A
Entera 2147 483 647
A x 10 Coma 5 A (argumento): 32 bits
Flotante 0 a 4294 967 295
N (exponente): -63 a 63

Para su almacenamiento en memoria, estos valores necesitan cinco registros, tres


para el argumento (signo y módulo de 32 bits), y dos para el exponente (signo y módulo de
16 bits).

En versiones simplificadas, con codificación BDC y menores rangos, los valores en


coma flotante ocupan solo tres registros, dos para el argumento y otro para el exponente y
los signos.

183
Controladores Lógicos Programables

Aunque el empleo de instrucciones avanzadas de coma flotante eleva la capacidad


de cálculo aritmético del autómata hasta acercarlo a la de ordenadores personales y mini
ordenadores, esta máquina no ha sido diseñada en principio para ello, por lo que el precio a
pagar es un desmesurado tiempo de ejecución que puede extenderse hasta decenas de
milisegundos por instrucción.

La figura 4.27 representa una operación de división entre registros que contienen
información binaria, por ejemplo para un cambio de escala de valor leído en una entrada
analógica.

Figura 4.27 División aritmética en binario

184
Controladores Lógicos Programables

Instrucciones aritméticas especiales, que combinan varias operaciones dentro del


mismo bloque funcional, son las de conversión lineal X-Y. Con ellas, se puede definir una
función de transferencia segmentada, por indicación de las coordenadas extremas de cada
segmento, y después encontrar cualquier punto de la función por entrada sobre uno de los
ejes.

La programación de una conversión lineal consta al menos de dos partes (figura 4.28):

-Definición de la grafica, por coordenadas x, y.


-Función de conversión abscisas (x y) u ordenada (y x)

Estos bloques funcionales permiten construir una aproximación lineal de una


función de transferencia de la que se conozcan varios puntos, y encontrar entonces valores
intermedios por interpolación lineal entre ellos.

Si la correspondencia X/Y no es biunívoca (existen tramos de pendientes contraria),


tendrá prioridad el primer segmento definido.

Figura 4.28 Función de conversación lineal X/Y

185
Controladores Lógicos Programables

El ejemplo de la figura 4.29, donde también se muestran los rangos de entrada que
provocan error en la operación, aclara esta circunstancia.

Figura 4.29 Ejemplo de conversación lineal X/Y

186
Controladores Lógicos Programables

Una aplicación típica de la conversión lineal es el control de un variador de


velocidad (entrada analógica 0 a 10 Vcc) según una curva definida velocidad/tiempo, tan
compleja como se quiera según los puntos introducidos (figura 4.30). La señal de consigna
al convertidor se obtiene de una salida analógica del autómata, que recoge el valor
entregado por la conversión x, y, donde x es el valor de tiempo acumulado por un
contador.
Puesto que el contenido del contador en esta aplicación es siempre menor de 255
(modulo 28), no aparece error en la operación. Si el tiempo a contar supera en unidades
aquel valor, puede realizarse un cambio de escala sobre el reloj de tiempos, hasta que el
modulo sea menor o igual a 255.
En la práctica, esto significa que el control del convertidor pierde continuidad en el
tiempo, con actualización de salida en periodos mayores de 1 segundo (ver figura 4.30).
Con escasas variaciones, este mismo esquema podría servir para definir un proceso
térmico con un regulador de temperatura, a partir de un aparato sencillo con entrada
analógica de consigna remota (simulación de un regulador de segmentos programables).

4.2.5 FUNCIONES DE COMUNICACIÓN.

Las instrucciones de transferencia antes discutidas mueven datos entre posiciones de


memoria interna, mientras que los bloques funcionales de comunicación que se describen a
continuación lo hacen entre memoria interna y dispositivos que no pertenecen al autómata.
Estos bloques funcionales son utilizados para:

-Recoger programas desde la consola u otros dispositivos.


-Enviar mensajes a indicadores exteriores.
-Transferir informaciones de memoria interna (estados de variables) para monitorización o
control, en respuesta a demandas desde un ordenador principal con programa supervisor u
otro autómata.
-Volcar tablas de información a impresoras, etc.

187
Controladores Lógicos Programables

Estas comunicaciones pueden adoptar dos formas:

-Estándar, con la consola de programación u otros elementos específicos de fabricante o


comerciales (visualizadores, consolas de explotación etc.) a los que la CPU se une desde la
toma Terminal o boca del autómata, con protocolos de comunicación transparentes al
usuario.

-Específica, definida por usuario, con otros elementos cualesquiera y conexión casi siempre
en serie, a través de interfaces y procesadores de comunicaciones punto a punto o en red.

En ocasiones, la toma Terminal puede ser reconvertida a una vía serie RS 232/422
actuando sobre los parámetros de configuración del autómata. Esta opción es frecuente en
las gamas medias y bajas, porque les permite acceder a comunicaciones definidas por el
usuario son necesidad de utilizar procesadores específicos.

La conmutación entre las aplicaciones de usuario y la consola de programación, que


comparten la misma vía, se consigue con una instrucción especial que afecta a los
parámetros de configuración involucrados en respuesta a una señal de entrada.

Volviendo a las formas de comunicación, en la estándar el usuario no conoce nada


del protocolo lógico ni de la interfaz física: simplemente, conecta el autómata a su
periférico mediante el cable impuesto por el fabricante, y los programas monitores en
ambos elementos se encargan de la conexión lógica e intercambio de datos, según la
aplicación o los comandos enviados. Las consolas de programación y explotación, y su
enlace al autómata, se trataran posteriormente.

Las conexiones específicas de usuario incluyen todas las demás punto a punto o en
red: uniones con MODEM, con lectores magnéticos u ópticos, con otros autómatas u
ordenadores, con visualizadores o consolas de explotación no conectadas a la toma
Terminal, etc.

188
Controladores Lógicos Programables

Estas uniones se establecen usualmente mediante procesadores de comunicaciones,


unidos al bus interno por conexión en bastidor y al periférico mediante una vía serie (RS
232/422/485) o paralelo (centronics, IEEE 488).

Para operar bajo esta forma de comunicación, definida por el usuario, existen en el
autómata instrucciones especificas, tanto para inicializar el puerto utilizado (procesador o
toma Terminal en conexión no estándar) como para transferir los bloques de datos.

La inicialización del puerto de comunicación consiste en enviarle un mensaje con


la siguiente información:

-Número de puerto utilizado.

-Velocidad en baudios.

-Número de bits por la palabra.

-Paridad.

-Códigos de identificativos de inicio y final de transmisión, etc.

La instrucción de trasferencia por su parte, debe indicar:

-Tipo de transferencia, recepción o transmisión.

-Dirección de inicio de transferencia.

-Número de bytes, o dirección final de transmisión.

-Dirección del elemento receptor en conexiones en red, etc.

189
Controladores Lógicos Programables

Figura 4.30 Mando de un variador de velocidad por interpolaciones lineales.

190
Controladores Lógicos Programables

La sentencia de transmisión lleva asociados indicadores internos predefinidos


(transmisión en uso, fin de transmisión, sobrepaso de tiempo, error, etc.) que, activados por
distintas cable impuesto por el fabricante, y los programas monitores en ambos elementos
se encargan de la conexión lógica e intercambio de datos, según la aplicación o los
comandos enviados. Las consolas de programación y explotación, y su enlace al autómata,
se trataran posteriormente.

Siendo el usuario quien define aun transmisión especifica, es responsable de que la


información transmitida sea coherente con el periférico conectado: códigos BCD si se trata
de u visualizador numérico, o ASCII para otro alfanumérico, caracteres de control (LF,
CT;..) para un Terminal TRC, códigos de instrucción y operandos correctos para
transmisión y operandos correctos para transmisión de programas, etc.

Como ejemplo de transmisión, en esta caso desde la toma Terminal en


funcionamiento estándar (lo que elimina la parametrización del canal), en la figura 4.31 se
ve un bloque de comunicación Telemecanique entre el autómata y un Terminal ASCII de
visualización de mensajes.

El ejemplo mostrado es de los mas sencillos, pero aun en estos cada fabricante
mantiene diferencias significativas con los demás sin dejar de respetar la secuencia general
expuesta (parametrización + transferencia), la programación de los bloques de
comunicación es bien distinta para cada marca: cambios de nombre, estructuras,
limitaciones, flexibilidad, etc., obligan a estudiar por separado cada nuevo autómata.

191
Controladores Lógicos Programables

Figura 4.31 Transferencia de un texto a un Terminal.

Ciertamente, el entorno ideal para el usuario sería aquel en que le bastara con
indicar los inicios y finales del bloque a transmitir, la condiciones de habilitación de
transmisión, el control de errores y la dirección del interlocutor, es decir, que lo liberara de
la parametrización del procesador o canal de transmisión, que quedaría transparente para él.

En realidad, esta es la situación cuando utiliza la toma Terminal en conexión


estándar (ver el ejemplo de la figura 4.31), que, sin embargo, cambia cuando intenta
acceder al siguiente nivel de comunicaciones, entre aparatos distintos, o conexiones a redes

192
Controladores Lógicos Programables

cualesquiera. La inexistencia de un protocolo normalizado obliga a parametrizar los


procesadores o canales de comunicación para adaptarlos al periférico o a la red, en un
esfuerzo tedioso y no siempre con la documentación necesaria disponible, lo que quizás
explica la baja utilización y el rechazo que sufren estas conexiones si no son resueltas
directamente por el fabricante o distribuidor, que incluye su propia garantía de
funcionamiento (soluciones “llave en mano”).

Mientras tanto, el usuario prefiere adquirir productos comerciales que le permiten


trabajar a nivel de aplicación:

-Consolas de explotación.
-Software de supervisión y control SCADA.
-Software de programación y monitorización, etc.

Productos con conexión directa a la toma Terminal y que, por tanto, tienen resuelta la
comunicación lógica y física con el autómata. Desde ellos, el usuario tiene acceso directo a
la memoria interna para lectura/forzado de señales, cambios de estado, control desde un
programa de aplicación exterior, etc., manipulando las variables del autómata son necesidad
de conocer los protocolos de comunicación.

4.3 INSTRUCCIONES ESPECIALES

Bajo los epígrafes especiales se consideran todas aquellas instrucciones que, bien por
su especificidad dentro de un lenguaje de autómata, bien por lo particular de su aplicación,
no pueden considerarse pertenecientes a ninguno de los grupos hasta ahora estudiados,
instrucciones booleanas, bloques secuenciales o bloques de expansión.

Estas instrucciones acusan aun más que las anteriores la falta de estandarización de
los fabricantes: sus denominaciones, aun cuando sean de operación semejante, son casi
siempre diferente entre si.

193
Controladores Lógicos Programables

Por ello, la siguiente clasificación las agrupa pro su función, indicando también
algunos de los nombres por los que se pueden encontrar dentro de un lenguaje:

 Impulso de transición (Single output SOT, Differentiation UP/DOWN, Transitional


contact, pulse, etc.).

Convierte un nivel de señal en un pulso de duración 1 “scan” (figura 4.32a). El efecto


matemático es el de la derivada en la entrada de ahí su nombre en algunos lenguajes.
En ocasiones, puede seleccionarse el flanco a detectar como de subida o bajada.
Si su utilización por el usuario esta limitada a un cierto número de veces dentro de un
programa, puede simularse la función a partir de reles internos con el esquema mostrado en
la figura 4.32b.

 Paréntesis.

Cuando en una secuencia de mando aparecen instrucciones sucesivas entrelazadas


(lógicas o aritméticas), el usuario debe poder ordenarlas para su ejecución. Aunque
siempre puede conseguirlo reescribiendo el programa, el empleo de funciones de
agrupación o paréntesis hace a este mas compacto y cercano al modelo descriptivo del
proceso. Este procedimiento, idéntico al empleado en calculo numérico (paréntesis,
corchetes, llaves), consiste, por tanto, en introducir señalizadotes que fijan la prioridad de la
instrucción dentro de la sentencia.
Si el lenguaje permite el empleo de paréntesis en sus instrucciones aritméticas, este se
extiende también a las instrucciones lógicas, con iguales reglas de operación que en el
cálculo numérico. En caso contrario, las instrucciones lógicas permiten siempre la
agrupación en bloques utilizando sentencias del tipo AND-LOD (poner bloque en paralelo).
El ejemplo de la figura 4.33, que muestra dos versiones alternativas de un programa con
instrucciones de bloque, enseña también como una programación depurada reduce la
longitud del programa, ahorrando memoria y tiempo de cálculo en el autómata.

194
Controladores Lógicos Programables

Figura 4.32 Función impulso de transición

Figura 4.33 Instrucciones de conexión (paréntesis) entre bloques lógicos.

195
Controladores Lógicos Programables

● Diagnóstico

Con esta instrucción el usuario puede señalizar ciertas circunstancias según una
tabla de códigos previamente establecida, de forma que cuando se produzca la condición de
ejecución, la instrucción envía el código (mensaje alfanumérico o numérico) hacia un área
particular de memoria (área de diagnósticos), donde puede ser consultada y/o enviada al
exterior, normalmente hacia un visualizador de mensajes conectado en la toma Terminal.

 Control de tiempo del reloj de guarda (“watchdog”)

Como se sabe, los autómatas establecen una vigilancia sobre el tiempo de ejecución del
programa: si este supera un cierto valor (fijado en el reloj de guarda), se dispara una alarma
que provoca la parada del funcionamiento (paso a STOP). Este control, que puede resultar
inconveniente para programas particularmente largos (por ejemplo, con muchas
instrucciones aritméticas), puede en ocasiones aritméticas), puede en ocasiones ser ajustado
por el usuario en la aplicación, bien modificando el tiempo (incluso hasta segundos), bien
bloqueando por programa o parametrización la acción del temporizador de guarda.

 Refresco parcial de entrada/salida.

A fin de reducir el tiempo de respuesta a ciertas señales, el usuario puede incluir en su


programa ordenes ( si existen) de refresco parcial de entradas/salidas, en rangos limitados.
De esta forma, cualquier cambio en la señal es activado antes de transcurrir el tiempo de
ejecución normal del programa.

 Función de espera (Wait, soft wait, etc.)

Si esta instrucción se ejecuta, el programa espera durante un tiempo prefijado antes de


ejecutar la siguiente. La instrucción, pues, introduce un retardo en la propia ejecución del
programa, que no debe confundirse con el retardo que provoca un temporizador en la
activación de una señal.

196
Controladores Lógicos Programables

 Palabra de control (<<Password>>).

Los programas de autómata pueden estar sometidos a un espionaje tan acusado como
otras actividades industriales, sobre todo en actividades de baja complejidad y mercado
amplio, por ejemplo, control de ascensores. Para evitar la copia o manipulación indebida de
programas, algunos autómatas permiten introducir en el una palabra de control o secuencia
alfanumérica, que bloquea el acceso al programa si no es indicada desde la consola cuando
se intenta la lectura o modificación de instrucciones.

El listado de instrucciones especiales expuesto no es, por supuesto, exhaustivo: cada


marca o modelo de autómata puede incluir en su lenguaje funciones particulares bien
características. Sin embargo, lo especifico de su operación hace aconsejable no introducir
aquí su descripción, de intereses solo para los usuarios de la maquina concreta.

4.4 RESUMEN.

Las instrucciones lógicas elementales basadas en el algebra de Boole, comunes a


todos los autómatas, se complementan con otras secuenciales preprogramadas por el
fabricante y de uso general en automatización, como son los registros, temporizadores,
contadores y biestables set-reset.

Estas instrucciones, junto con otras de manipulación de bytes, como las


comparaciones y transferencias sencillas, constituyen lo que se llama lenguaje básico del
autómata, suficiente para programar la mayor parte de sus aplicaciones.

Como ampliación a las anteriores, otras instrucciones avanzadas, disponibles en


lenguajes más potentes o destinados a autómatas de gamas altas, permiten desarrollar
cálculos aritméticos complejos y comunicación más o menos transparente con el exterior,
permitiendo utilizar el autómata en aplicaciones en que se necesite manipulación
exhaustiva de variables numéricas.

197
Controladores Lógicos Programables

Por último, están las instrucciones especiales, muchas veces partículares para cada
marca o autómata: diagnósticos, restricciones de acceso al programa, control del reloj de
guarda, etc.

Aunque pueden no ser imprescindibles para la función de control, su empleo


facilita la programación y ayuda a la personalización del programa resultante.

Todas ellas, más las instrucciones de control de secuencia de programa (saltos,


subrutinas, interrupciones, etc.)

Que serán objeto de estudio más adelante, y junto con las reglas sintácticas y
ortográficas que regulan su empleo, forman el cuerpo de los lenguajes de autómata, tan
completos y potentes que en ocasiones permiten confundir a esta máquina con un pequeño
ordenador industrial.

198
Controladores Lógicos Programables

4.5 DOCUMENTACION DEL SISTEMA DE PLC

En las páginas que siguen figuran las características y datos aportados por los
fabricantes y/o distribuidores de algunos de los Autómatas Programables existentes en el
mercado. La imposibilidad de relacionar a todos hace que esta lista sea corta. Creemos de
todas formas que en ella figuran los fabricantes más significativos de estos equipos.
La relación es la siguiente:

Fabricante y/o distribuidor Designación del equipo

AEG-IBERICA DE ELECTRICIDAD, S.A. A 020 A 020 PLUS


FESTO PNEUMATIC, S.A. FPC-101, FPC-202 Y FP-404
KLOCKNER MOELLER, S.A. PS-3 AC Y PS-3 DC
LANDIS & GYR BC, S.A. PCA-14 Y PCD-4
OMRON ELECTRONIC, S.A. C-20K, C-28K Y C-40K
SIEMENS, S.A. S5-100U
SPRECHER+SCHUH, S.A. SESTEP-390 Y 290

A.1. AEG-MODICON, S.A.

Autómatas programables serie logistat. Características y datos técnicos.

Tabla 4.2
Tipos AO20 AO20 plus

Alimentación 220/11OV  (Consumo 24 V- (consumo 30W)


30 VA)
24V – (consumo 30 W)
Entradas: 20 con señalización LED 16 con señalización LED
Entradas de proceso 4 entradas especiales con
señaliz……..
LED
1 común para todas las como A020
Autoriz. De periferia entradas
Forma de acoplamiento Libre de potencia (exc. Entr.
Nivel de señal Esp.)
Señal – 1, + 12 …+30 V- 4 entradas analógicas 0….V
Señal – 2..+ 2 …+ 5 V-

199
Controladores Lógicos Programables

Cont. Tabla 4.2

Tipos AO20 AO20 plus


Salidas: 16 contactos de cierre con señaliz. LED
Salidas de proceso (versión 24V- suministrable con salidas
por semiconductor)
Libre de potencial Libre de potencial
24V-, 2ª cortocircuit. (Semicond.).
Forma de acoplam. 24 V-, 220 V /2ª permanentes
Cargabilidad 20 millones de maniobras relé
Como A020
10 millones de maniobras.
Vida mecánica
Vida eléctrica
(carga ohmica) 1 salida analógica 0..10V

Marcas 122 de libre utilización 121 de libre utilización


6 marcas de sistema 7 marcas de sistema 50
(16 bit)
Palabras digitales

Tiempos/contadores 8 func. De tiempo con cadencia basica


100 ms
8 func. De tiempo concadencia basica
25 ms
16 funciones contadoras 6553 s Como A 020
65535 impulsos
Mayor valor de tiempo
Mayor valor contador

Tipo de memoria EEPROM


Para programa del usuario (896 Como A020
instrucc.)
Interfases V.24 (RS 232 C) / linea serie Como A020

Vigilancia de Existente Como A020


Marcha del proceso Puede conectarse a salida Q1
Condiciones
ambientales:
Temp. Ambiental
Admisible en servicio 0…+50 ºC
Para almacenamiento -40…+85 ºC Como A020
Grado de humedad F según DIN 40 040
Grado de protección IP 20

200
Controladores Lógicos Programables

A.2 FESTO PNEUMATIC, S.A.

Tabla 4.3 Cuadro sinóptico de los PLC para la formación y aplicación industrial

Tipos FPC 101 FPC 202 FPC 404

Equipo programador Individual Integrado Separado


Programación off- No No Si
line
Programación con PC Próximamente Si Si, con comentario
respectivo con
listado de
direcciones
Tipo/lenguaje de -de pasos con bucles -programa -listado de
programa Exclusivamente cuando/entonces instrucciones
-programación (pasos) (AWL)
Teach/IN -lista de -diagrama de
-diagrama de instrucciones contactos (KOP)
contactos (KOP) (código -diagrama de
-Lista de nemotécnico) funciones(FUP)
instrucciones -BASIC (BAS)
(AWL) -ASSEMBLER Z80
Cantidad máxima de 79 pasos 99 pasos 256 pasos
pasos 18 pasos (puesta a
punto)
Mltitasking No Si 2 (semi-paralelo) Si , 4
Proceso paralelo de
programas
Cantidad maxima de 1 8 16
programas en
memoria
Multiprocesamiento No No Si
(tecnología de varios
procesadores)
Numero de Ninguno 56 256
recordadores
Numero de 2 (1 para control) 8 8
Temporizadores
Numero de 1 (contador de 8 16
contadores bucles)

Capacidad para 2 k byte 32 k byte 32 k byte


memoria de
programas
Numero maximo de 16 E/8 A y 5 E/5 S 48 E/48 S 256 E/S
entradas/salidas como funciones

201
Controladores Lógicos Programables

operativas fijas

Tension de servicio 24 Vc. C. 24 V c.c. 24 V c.c.

Tipos FPC 101 FPC 202 FPC 404

Corriente máxima de _ 1A 6,3 A


salida rele
Corriente máxima 0,3 A 2,6 A 2A
salida transistor
Corriente total 2,4 A 2,6 A 6ª
máxima por modulo

A. 3. KLOCKNER MOELLER ESPAÑA, S.A.

CARACTERISTICAS GENERALES AUTOMATS PS 3

PS 3-AC (PS 3 – DC)

Autómata programable tipo PS 3-AC, tensión de alimentación 120/230 V. AC. 50-60 HZ.,
protección IP-20, de construcción compacta, según normas:
VDE 0160, VDE 0110, VDE 0411, parte 2 200/IEC 332, DIN 19240.

Con las siguientes características:

16 Entradas digitales con fuente interna de alimentación 24 V. c.c. ejecución mediante


Opto- acoplador técnica “H” activa según DIN 19240 IEC 65, con indicación
de estado mediante LED.
8 Salidas digitales ejecución mediante rele , conexión RC con indicación de estado
mediante led y separación galvanica. Tensión 240 V. 2ª (AC11), 24 V DC. 0,5
(DC11).
(16) Salidas digitales + 24 V. 0,5 A. mediante semiconductor.
4 Entradas analógicas de tipo BYTE, tensión nominal 0…10V. c.c. /50 A. con
exactitud <1%, numero de lecturas 50/seg.
1 Salida analógica de tipo BYTE, tensión nominal 0-10 V. c.c./1 mA., con tensión
residual para valor “0” 50 mV.
1 Entrada de contador rápido, impulsos 10 Khz. (24 V. c.c./10 mA=), tensión nominal
24V. c.c., valor normal 0…65535.

202
Controladores Lógicos Programables

Módulos de SOFTWARE del sistema:

32 Temporizadores, margen del tiempo 0,1…6553,5 Sg.


32 Contadores, valor nominal 0…65.535.
32 Comparadores. Longitud de valor 1 palabra=16 bit.
32 Registros de desplazamiento: longitud del registro 16 pasos. Longitud del paso 1 bit.
- Reloj con calentamiento real.
32 Módulos horarios comparación de tiempo real. Tiempo mínimo programable 1
minuto.
4 Funciones aritméticas básicas de tipo BYTE (+,-,x, :).
576 MERKER de bit (reles internos).
Nivel de elaboración:

-Microprocesador
-Memoria Bit, BYTE, palabra.
-Memoria de programa RAM o EEPROM 3,6 KBYTE 1000 instrucciones
-Batería tampón 2 x 1,5 V Duración min. 2 años.
-Registro auxiliar para operaciones BIT (LIFO).
-Interfaces RS 485. Velocidad transmisión 187, K Baudios.
-Tiempo de ciclo 5 msg./1k= (valor típico 1…2,5 msg).

CONSOLAS DE PROGRAMACIÓN

-TIPOS:
PRG 3 forma programación lista instrucciones
PRG 3S forma programación lista instrucciones
PRG 300 forma programación lista instrucciones o esquema de contactos.
-Tensión de alimentación 9V DC, 450 mA. (max.)
-Display Display de cristal liquido de 16
caracteres.
-Teclado Teclas de corto recorrido con proyección o activación por
software
-Interfaz PRG+PS
-Mecánica 5 Terminales
-Eléctrica RS 485
-Protocolo transmisión datos SUCONET
-Velocidad transmisión datos 187,5 K Bit/s.
-Protección de programa de
Datos en memoria propia Mediante acumulador
-Tiempo de protección Aprox. 30 días
-Peso 0,5 Kg.

203
Controladores Lógicos Programables

-Dimensiones Ax A1 xP 145x215x80 mm.

Programación con ordenador personal (IBM o compatibles)

Mediante Soft tipo S30-S3-E + EPC 334.1, compuesto de tarjeta de interfaz, alojada en PC
y juego de disquetes, creación de documentación de referencias y esquema de contactos o
listado de instrucciones.

Posibilidad de utilización de operandos propios con simbología creada por el usuario.

A.4 LANDIS & GYR, S.A.

Tabla 4.4 Características técnicas.

CPU UP 8085.2
Duración de ciclo 70 seg. (medio por paso de programa)
Tiempos de reacción entrada/salida APROX. 18 mseg. (comprendido el retardo
de entrada)
Juego de instrucciones 32, mas extensiones para operaciones
aritméticas, salida de textos, transferencias
de datos y funciones paramétricas.
Funciones paramétricas -Circuitos de regulación de triple acción
(PID)
-Registros de desplazamiento
-Control por totalización (Check Sum)
-Gestión de interrupciones.

204
Controladores Lógicos Programables

Cont. Tabla 4.4

CPU µP 8085.2
Programas paralelos 16 (PP15 para el tratamiento de interrupciones)
Registros de índice 16 (1 por cada programa paralelo)
Niveles de sub-rutinas 3 por cada programa paralelo
Memoria del usuario 1k, 2k, 4k, u K pasos de programa EPROM o RAM
Memoria de texto 2K, 4K u 8K caracteres ASCII, EPROM o RAM
Numero de entradas y 32,64, 128 o 56 112 224 con B 90
salidas
Indicadores volátiles/no 477+235 =712*
volátiles
Numero de contadores mas 64* (DIR 256…287 temporizadores/contadores)
temporizadores o registros (DIR 288… 319 contadores)
aritméticos
Capacidad de contaje o de 65535 (2 -1) montaje en cascada a voluntad
calculo
Gama de tiempos 0,1 seg… 6553 seg. (0,01 …655 seg)**
Reloj fechador Semana, día de la mañana, año, mes, día, hora, minuto,
segundo
Precisión de reloj > 3 seg./día
Interfase serie de datos Bucle de corriente 20m A, activo o pasivo, para
entrada/salida de textos y de datos
Vigilancia del sistema Auto vigilancia incorporada con salida por relé (Watch-Dog)
Indicación de datos Por LED sobre los módulos de entrada y salida
Indicación del estado de Mediante el modulo de visualización PCA 1 D11, por LED,
contadores, temporizadores de 7 segmentos (4 cifras)
u operandos en el modo de
funcionamiento RUN

Duplicación de memorias Con aparato de transferencia PCA1 P15 o con el PCA 2


Documentación del Con PCA2
programa
Temperatura ambiente 0 ºC a 50 ºC
Humedad máxima del aire 95% de humedad relativa sin condensación
Protección antiparásitos Ensayo de E/S según CEI 255-4, E5, clase III (2,5 KV)
Potencia absorvida en la 30 W= max. Por caja
configuración máxima
Tensiónn de alimentación 24 V= ± 20%, rizada o rectificada doble onda.
Cont. Tabla 4.4

205
Controladores Lógicos Programables

Notas:
 La totalidad de los 712 indicadores, así como los 64 resgistros de contadores
y temporizadores, pueden hacerse no volátiles por simple conmutación de un
puente en la zona del usuario.
 La base de tiempos es de 1/100 seg. (gama de tiempos 0.01 seg.) por simple
conmutación de un puente en la zona del usuario.

Tabla 4.5 PCD4 Características técnicas

1. The capacities
Processor modules UIT 1 or 2 independent CPUs
Processing time 6 µ per logia instruction
In -/out puts 16 I/O modules or 256 in -/out puts
Flags 8 192 x 1 bit (volatile/non-volatile,
programmable by the user)
Register 4 096 x 32 bits
Index register 16 x 13 bits (1 per COB)
Counter/timer 1600 (division programmable by the user)
Counting range 31 bits without preceding sing (0… 2 147 483
647)
Time range 31 bits without preceding sing (0… 2 147 483
647 clochks)
Time base Selectable in the range 10 ms … 10s
User memory 16K program lines
64 K text characters each of 8 bits or a
combination of both
Counting range Integer:
-2 147 483 648 …+ 2147 483 647 (-2² ..+2² …-
1)
Floatong point:
-9.223 37177.10³ …-2.710 505 35.10 -²
+9.223 371 77.10³...+5.421 01 70.10-²
Types of natation
Decimal, binary, BCD, hexadecimal or floating
point
Date-time In the public memory module year to second
Accuracy Better than 15 s / month
Power reserve > 2 months
Communication interfaces 1 to 4 interfaces RS 232c, RS 422, 20mA-current
loop
2. General technical data 24 VDC + 25/-20% smoothed or 19
Suplíy voltaje VAC±15%two-way rectified
Power consumption Max. 48 W for 256 I/O
Interface immynity 4 kv in accordance with IEC 801-4 (digital I/O

206
Controladores Lógicos Programables

and power suply)


Ambient temperature In the range 0…+50 ºC
Storage temperatura -20… +85 ºC
Air humidity 95% relative humidity without condesation
Mechanical strength In accordance with IEC 65 A
Cont. Tabla 4.5

Características de la CPU

Protección de memoria Retiene el estado de los reles de retención, los valores de


los contadores y los contenidos de las memorias de datos
durante los fallos de alimentación
Vida de la batería 5 años a 25 ºC
La vida de la batería disminuye si la temperatura aumenta
por encima de los 25ºC se dispone de una semana desde
que el indicador de alarma comienza a señalizar que la
batería esta baja, para sustituirla.
Funciones de autodiagnóstico Avería en CPU (temporizador guardián)
Fallo de memoria
Fallo en el BUS de E/S
Fallo de la batería, etc…
Chequeo de programa Chequeo de programa
Falta de instrucción END
Error JMP-JME
Bobinas duplicadas
Error de circuito
Sobre uso de DIFU/DIFD
Error IL/ILC

207
Controladores Lógicos Programables

A.6. SIEMENS, S.A.

Tabla 4.6 SIMATIC S5: Automata Programable S5-100 U Características Técnicas.

Unidad Central CPU 100 CPU 102 CPU 103


Volumen de funciones Combinaciones binarias, instr. de paréntesis, asignación de
resultado, almacenamiento, computo, temporizaciones, carga,
transferencia, comparación, salto, llamada de módulos, funciones
especiales, concatenación de palabras, calculo.
Lenguaje de STEP 5
programación
Formas de AWL, FUP, KOP
representación
Organización de Lineal o
programas Estructurada
Organización de 1 procesador 1 procesador 1 procesador
programas Standard Standard Standard 1
coprocesador STEP
5
Tiempo de ejecución 70 ms 7 ms (con servicio 1,6 ms
(aprox.) de prueba, 70 ms
Para 1. 2² instr.
Binarias

Cont. Tabla 4.6

Unidad central CPU 100 CPU 102 CPU 103


Memoria de programa 2x2x10 bytes 4x2x10 bytes 20x 2x10 bytes
-RAM, interna para o
alternativamente 2x2x10³ bytes 4x2x10 bytes 20x x10 ³ bytes
-EPROM o EEPROM
para en el modulo de 1 instrucción ocupa por lo gral. 1 palabra = 2 bytes = 16 bits
memoria en memoria.

Tiempo tampón para 1 año


RAM min.
Marcas 1024; de ellas 512 1024; de ellas 512 2024; de ellas 512
remanentes remanentes remanentes
Temporizadores 16; de ellos 8 32; de ellos 8 128; de ellos 8
-internos remanentes 0…999 remanentes 0…999 remanentes 0…999

208
Controladores Lógicos Programables

Margen de tiempo (adelante /atrás) (adelante /atrás) (adelante /atrás)


-externos posible con posible con módulos posible con módulos
módulos

Contadores 16; de ellos 8 32; de ellos 8 128; de ellos 8


-internos remanentes 0…999 remanentes 0…999 remanentes 0…999
Margen de tiempo posible con posible con módulos posible con módulos
-externos módulos
Entradas digitales 128 256 256
Salidas digitales
Entradas analógicas
Salidas analógicas 8 16 32
Posibilidades Hasta 4 filas con max. 32 módulos periféricos; distancia entre
constructivas filas max. 10m
Disposición de Horizontal o vertical
aparatos (en este ultimo caso: disminución de la temperatura ambiente
admisible)
Posibilidad de No SINEC L1 (como SINEC L1 (como
acoplamiento a bus esclavo) esclavo)
Aparatos de PG 605 U
programación PG 615
conectables PG 635
PG 675
PG 685
PG 695

Con batería tampón en servicio

209
Controladores Lógicos Programables

A7. SPRECHER + SCHOH, Española, S. A.


Tabla 4.7 Autómatas programables SESTEP 390 y 290 Características y datos técnicos.

SESTEP 390
Unidades centrales Gate-array
Procesador
●Condiciones ambientales 160 Propia 0…55C
E/S
refrigeración
digitales -
Con
Temperatura
E/S analógicas
ambiente de 80
Marcas
servicio(bits) 256
Registros (palabras) 128
Contadores/temporizadores HARDWARE DEL
Tiempo de efrigera: 96 SESTEP 290
-por K
●Chasisde instruí. Básicas 5…11,5ms
-por K debásica
Unidad instruí. De 32 puntos de E/S
palabras
Unidad básica 10…100ms 48 puntos de E/S
●Unidad
Memorias de programas
de ampliación 32 puntos de E/S
RAM
EPROM
●Alimentación 1,92 K pasos
115/230 V c.a.
EEPROM
Mod. Alimentación en ca 1,92 k pasos 24 V c.c./ 2,2 A
●Chasis
●Unidad central
Posc.
UnidadEn central
unidad SESTEP
básica 2903,4,5,6,7128 E/S
Posc. En unidad de 3,4,5,6,7
ampliación
● Módulos digitales de entrada
●Módulos
8 entradasde refrigeración
115 V c.a 110/220 V c.a.
Tensión de entrada
8 entradas 230 V c.a. 24 V c.c.
●Módulos
8 entradasde 12/24
E/S V c.c. Opto acoplador
Logica positiva
Separación
8 entradas galvánica
12/24 V c.c. Logica negativa
● Módulos digitales de salida
●Módulos
8 salidas por
especiales
relé Convertidor
5…250
PT 100
V c.a. 5
…50 V. c.c.
8 salidas por triac
●Comunicación 15…250V
Mod. Remoto esclavoc.a.
8 salidas por transistor 10…28 V c.c.
●Tipos de interfaz RS 232C

●Cables de trasmisión Cable efrige HARDWARE DEL SESTEP


290
●Lenguajes de SESTEP+
programación
●Unidades de Manual
programación Grafica
Consola grafica
PC-IMB

210
Controladores Lógicos Programables

Modulo ciego
Maleta demostración
Unidad de prog. Manual
Unidad de prog. manual
IL/ Display 2 lineas
Modulo de memoria EEPROM

Software de programación por PC


MS-DOS
Documentación
Manual de usuario Alemán
Manual de usuario Ingles

UNIDAD V

5.0 ESTRUCTURAS DE PROGRAMACIÓN.


INTRODUCCIÓN.

En capítulos anteriores se han discutido las configuraciones de la unidad central de


proceso, CPU, y de las interfaces específicas de entrada/salida, y se ha comentado su
carácter de soporte hardware para la interpretación y ejecución de las órdenes de usuario,
codificadas e introducidas en forma de programa. Ya entonces, se comentaba la posibilidad
de escribir estos programas según estructuras mono y multitarea.
Definiendo la tarea (1) como el conjunto de instrucciones ejecutables que describen
un tratamiento limitado y completo sobre variables de proceso, una aplicación en estructura
monotarea es aquella desarrollada sobre una tarea única, que contiene el total del programa
con todas sus variables de entrada y salida y sentencias de operación, mientras que, por el
contrario, una aplicación multitarea será aquella que divide el programa en subconjuntos,
independientes o no, que forman tareas aisladas, normalmente en correspondencia con
tratamientos particulares de la aplicación (vigilancia, programa secuencia, comunicaciones,
etc).

211
Controladores Lógicos Programables

En estructuras monotarea el programa o tarea única se ejecuta periódicamente,


siguiendo un único ciclo de operación, mientras que las estructuras multitarea desarrollan
simultáneamente múltiples ciclos durante la ejecución, uno por cada tarea. Estas tareas,
además, pueden o no ejecutarse periódicamente.

Obsérvese cómo, en cualquier caso, el ciclo de operación de la tarea, sea única o una más
dentro de la aplicación, recorre la conocida secuencia de cuatro pasos:

- Adquisición de entradas.
- Escrutinio del programa (de la tarea).
- Actualización de salidas.
- Servicio a periféricos o terminales de explotación.
Así pues, la tarea constituye una entidad de programación completa, con sus propias
entradas, salidas, variables internas y sentencias de control. Esta circunstancia, que permite
optimizar la ejecución utilizando estructuras multitarea si se dispone de un hardware
multiprocesador con procesadores adaptados a los distintos tipos de tratamientos (booleano,
regulación, tratamiento de textos, etc.), obliga, sin embargo, a utilizar un gestor de recursos
en estas aplicaciones para eliminar la conflictividad en el acceso a los medios (recursos),
como muestra la figura 5.1

El gestor, un ente software que el usuario puede parametrizar para asignar las
prioridades a las tareas de su programa, puede correr sobre una CPU específica o
coordinadora (por ejemplo, la unidad 923 A de Siemens), o sobre la misma CPU principal
(por ejemplo, en el autómata TSX 87-40 de Télemecanique.

212
Controladores Lógicos Programables

Figura 5.1 Estructuras de programación mono y multitarea

Dado que los procesadores periféricos montados en bastidor se consideran como


parte de una misma unidad de control, los programas que corren sobre ellos, con lectura y
generación de señales de planta sin intervención de la CPU principal, se consideran también
como parte de un tratamiento multitarea.

La clasificación de las estructuras de programación en mono y multitarea, muy


dependientes como se ha visto de la configuración hardware de la unidad de control, no
debe confundirse con las metodologías de programación que vayan a utilizarse.

En efecto, una vez asignada a la aplicación una estructura mono o multitarea para su
programación, cada una de las tareas resultantes debe ser programada según una secuencia

213
Controladores Lógicos Programables

de instrucciones. Esta secuencia puede obtenerse mediante metodologías de programación


lineales o estructuradas, que se definen a continuación (figura 5.2).

La programación es lineal si las instrucciones de un proceso o automatismo


industrial están ordenadas una tras otra, en el mismo orden en que se van a consultar y,
eventualmente, a ejecutar.

Por el contrario, la programación es estructurada cuando la tarea de control está


dividida en subprogramas o módulos que se corresponden con distintas funciones dentro
del mando general, y cuya ejecución puede ser ordenada varias veces dentro de un mismo
ciclo de operación del autómata.

Aunque, en general, la programación estructurada de una tarea resulta más eficiente


cuando se utiliza sobre autómatas con coprocesadores en su CPU, especializados en las
funciones particulares de cada módulo, es también posible su empleo sobre autómatas de
CPU simple, que se encarga de ejecutar uno tras otro los módulos en el orden en que sean
llamados por el programa raíz.

214
Controladores Lógicos Programables

Figura 5.2 Programación lineal y estructurada.

En el presente capítulo se discuten estas diferentes estructuras y metodologías de


programación, y se comenta la particular programación, y se comenta la particular
programación de módulos pregrabados por el fabricante para ejecutar tareas concretas o
gobernar interfaces específicas, módulos que sólo necesitan del usuario la parametrización
que los adapte a su aplicación concreta.

5.1 PROGRAMACIÓN LINEAL

Se entiende por programación lineal la que considera el problema de control


(definido en la tarea) en su conjunto, con todas sus variables internas y de entrada/salida, y
lo programa escribiendo las instrucciones según una secuencia lineal, una tras otra desde la
primera a la última, definiendo el conocido ciclo de operación de cuatro pasos:

- Supervisión y chequeos.
- Entrada y salida de datos.
- Ejecución secuencial del programa.
- Servicio a periféricos externos.

La programación lineal es la más frecuente metodología empleada, y prácticamente


la única en mini y microautómatas.

Según la definición anterior, en programación lineal las sentencias se ejecutan


secuencialmente, o, con más propiedad, se consultan secuencialmente para su ejecución,
mientras están disponibles continuamente todos los recursos de la máquina (entradas,
salidas, variables internas, etc.)

215
Controladores Lógicos Programables

Ahora bien, al usuario puede interesarle la ejecución condicionada de parte del


programa (lineal), tanto buscando una cierta estructuración elemental, como para inhibirla
ejecución de algunas sentencias del algoritmo. Y en efecto, existen instrucciones de
modificación de ciclo que permiten dividir un programa lineal en partes o bloques de
ejecución condicionada o dependiente de alguna señal, de forma que si ésta no se cumple,
el bloque no es ejecutado, con distintos efectos sobre las variables según el tipo de
condición empleada.

Estas instrucciones, utilizadas para ordenar programas lineales, pueden ser de dos tipos:

- Saltos (incluyendo las sentencias de alto nivel IF… THEN… ELSE, GOTO … WHILE,
etc.)

- Habilitación de bloques (Master Control Set/Master Control Reset, Block Program Pause,
etc.).

Ambos tipos de instrucciones alteran el orden de ejecución normal, pero mientras


que las primeras se asimilan a un “salto” físico de instrucciones, con congelación de los
estados de variables en el instante del salto, las segundas implementan la función del relé
maestro de control, que en tecnología electromecánica llevaba tensión y permitía el
funcionamiento de las siguientes a él conectadas cuando estaba activado, y las dejaba sin
tensión, con todas las variables en estado de reposo, cuando se desactivaba.

Un recurso frecuente en la programación lineal es el empleo de macros, conjunto de


sentencias, normalmente agrupadas buscando una cierta funcionalidad, que se reconocen e
identifican por un nombre propio.

Algunas unidades de programación permiten que el usuario, cuando está editando


un programa en cierto lenguaje, pueda asignar un nombre a un grupo de sentencias, y
almacenarlas con él en un fichero de memoria.

216
Controladores Lógicos Programables

Más adelante, según avance la edición del programa, el usuario puede llamar a la
macro en cualquier instante, intercalando su nombre entre las sentencias que escribe. El
programa Editor, o el compilador posterior, se encarga de insertar en ese punto el conjunto
de sentencias almacenado como macro.

Obsérvese cómo el empleo de macros o reduce la longitud total del programa (a


diferencia, como veremos más adelante, de la subrutinas), sino que únicamente facilita el
trabajo del programador al evitarle reescribir sentencias que ya han sido editadas y
almacenadas en memoria.

Las macroinstrucciones no pueden importar ni exportar variables: simplemente, si el


usuario necesita modificar alguna de las que contiene, debe editarlas de nuevo una vez
insertadas la sentencias entro del programa

El trabajo con macros permite construir bibliotecas de base que pueden volverse a
explotar en ulteriores aplicaciones por el mismo u otros usuarios.
La gestión de estas bibliotecas puede hacerse desde el nivel elemental de comandos
del sistema operativo empleado (DOS, UNIX), o desde un entorno software (por ejemplo,
XTEL-MOD de Télémecanique) específicamente diseñado para:

- Creación y gestión de módulos en una biblioteca.


- Consulta de módulos.
- Edición de variables del módulo.
- Documentación de los módulos y la biblioteca.

El uso de estos entornos reduce el esfuerzo de programación, mejora la


documentación del proyecto y permite el empleo de ayudas e indicaciones en línea (on line)
durante el desarrollo de la aplicación.

5.1.1 SALTOS DE PROGRAMA.

217
Controladores Lógicos Programables

Las instrucciones de salto, que como se ha comentado alteran el orden de ejecución


normal del programa, se utilizan para acortar tiempos de ciclo si no se cumplen ciertas
condiciones, o para establecer programas alternativos dentro de una misma secuencia
lineal.
Por ejemplo, el ordinograma de la figura 5.3a muestra una estructura de programas
horizontal o alternativa (o se ejecuta A, o se ejecuta B), que por definición no puede
programarse con una secuencia lineal de instrucciones, de listado único y escritura
consecutiva.
El problema se soluciona con la inclusión en el lenguaje del autómata de las
instrucciones de salto. En efecto, la figura 5.3b muestra la programación lineal de la
estructura alternativa anterior, conseguida mediante instrucciones de salto. El ejemplo
permite además diferenciar los dos tipos de saltos:

- Incondicional, que se ejecuta siempre.

- Condicional, de ejecución dependiente de una señal.

218
Controladores Lógicos Programables

Figura 5.3 a y b Ejecución de programas alternativos con instrucciones de salto.

El salto está normalmente definido entre dos posiciones, que fijan respectivamente
su inicio y final. Esta última está indicada por una instrucción particular (JEND, JMP R,
etc.) o por una dirección dentro del programa, identificada mediante una etiqueta durante la
programación.

La figura 5.4 muestra un ejemplo de dichas dos posibilidades, según lenguajes


gráfico de Toshiba y literal de Siemens.

219
Controladores Lógicos Programables

Es imprescindible, en programación literal, que la dirección destino coincida con un


inicio de sentencia. En caso contrario, aparecerá un error de programación. El problema no
se da en programación gráfica, donde la dirección destino sólo puede ser un inicio de línea
(sentencia).

Figura 5.4 Instrucciones de salto en programación gráfica y literal.

Aunque los saltos están normalmente definidos entre instrucciones de inicio y final,
los fabricantes pueden proponer, como extensión a los lenguajes básicos, saltos relativos de
n posiciones desde la actual, donde n puede ser una variable de programa y no únicamente
una constante. Estas instrucciones, que permiten efectuar tratamientos adaptados a distintas
condiciones (por ejemplo, definiendo tantos programas alternativos como se deseen), deben
ser utilizadas con precaución: las modificaciones de programa durante puestas a punto, con
supresión o inserción de instrucciones entre el origen y el final del salto, deberán quedar
reflejadas en el índice n so pena de incurrir en un error de control, o, en el mejor de los
casos, en un error de programación con bloqueo del autómata.

220
Controladores Lógicos Programables

Durante una instrucción de salto, las variables generadas o calculadas en las


sentencias saltadas no modifican su valor:

- Las variables internas y de salida no cambian.


- Los contadores mantienen el valor contado.
- Las variables de mando o control de bloque funcional no son consultadas.

Este último punto afecta particularmente a los temporizadores programados dentro


de un salto:

 Si el temporizador está en OFF, no se activa aunque se cierre su contacto de mando.


 Si el temporizador está activado, responde de diferentes formas según modelo:
- Continúa corriendo, aunque se salte sobre él,
- Interrumpe el funcionamiento, y sólo continúa cuando no se salte su sentencia.
- Sigue funcionando, pero su contacto de salida no se activa aunque se alcance el
tiempo prefijado.

En este último caso, hay que esperar a que el programa recorra de nuevo la
sentencia del temporizador para que la salida de éste pase a nivel alto. Según autómatas o
fabricantes, pueden existir limitaciones en el empleo de las instrucciones de salto:

- Saltos únicamente hacia delante, sin posibilidad de retornos,


- Longitud de salto limitada, entre inicio y final, a 127 posiciones (página de programa),
- No se admite la programación de un salto dentro de otro,
- No puede fijarse un mismo destino para distintos orígenes de salto, etc.

El lenguaje literal está particularmente bien adaptado a la ejecución condicional de


bloques de programa, uno de los campos, como se ha visto típicos de aplicación de las
instrucciones de salto. En efecto, la existencia de literales del tipo:

IF… THEN … ELSE

221
Controladores Lógicos Programables

DO … WHILE, etc.,

Permite condicionar la ejecución de una o varias acciones al estado de una variable.


En el ejemplo de la figura 5.3, la ejecución condicional de los bloques A o B puede
implementarse con la programación literal siguiente (figura 5.5):

IF
(expresión)
THEN
(acciones del programa A)
ELSE
(acciones del programa B)

Figura 5.5 Saltos con literales de alto nivel.

Las instrucciones condicionales de los lenguajes de alto nivel adquieren diferentes


formas según el fabricante. Por ejemplo, Télémecanique utiliza los literales:

IF (expresión booleana)

222
Controladores Lógicos Programables

THEN (acción/es A)
ELSE (acción/es B)

Como frases condicionales (se ejecutan o no las acciones en función del resultado
de una expresión booleana), y los literales:

WHILE (expresión booleana)


DO (acción/es)

Como frases iterativas (se ejecutan las acciones mientras el resultado de la


expresión booleana es cierto) (1 lógico), mientras que Omron se inclina por utilizar bloques
de programa en cuyo interior se definen las ramas condicionales (Condicional Branch) del
tipo:

IF (condición) (acciones rama programa A)


ELSE (acciones rama programa B) IEND
O los lazos cerrados (Loops)
LOOP
(acciones A)
LOOP END (condición)
(acciones B)
Mientras el bloque se esté ejecutando (condición a en la figura 5.6) las acciones A o
B (según condición b) se ejecutan una vez por ciclo (rama condicional), o indefinidamente
(instrucción de lazo).

223
Controladores Lógicos Programables

Figura 5.6 Literales condicionales e iterativos.

En general, estos literales condicionales se pueden anidar, con más o menos


restricciones según el fabricante, como muestra la figura 5.7

Figura 5.7 Anidación de saltos literales.

224
Controladores Lógicos Programables

5.1.2 RELÉ MAESTRO DE CONTROL

En sistemas cableados, el relé maestro de control asegura la llegada de tensión a


ciertos circuitos de maniobra, mientras que corta dicha tensión de maniobra en caso de estar
desactivado y por tanto inhibe el funcionamiento de todo un bloque. Este tipo de relés suele
usarse para bloquear en caso de emergencia. Una función equivalente, que hace posible la
activación o desactivación de todos los elementos conectados tras ella, aparece también en
muchos lenguajes de autómata programable.

Dado que el programa consiste en una sucesión de instrucciones, la función necesita


de un principio y un final para definir el bloque de sentencias que se quieren hacer
dependientes de ella. Estos dos puntos quedan normalmente identificados por las
instrucciones:

- Master Control Set, MCS, para el inicio,


- Master Control Reset, MCR, para el final.

En lenguajes gráficos, las instrucciones vienen representadas por bobinas


MCS/MCR, y entre ambas están las líneas de programa cuya ejecución se hace dependiente
de la activación de la bobina MCS (figura 5.8).

Algunos lenguajes admiten un cierto grado de anidación entre instrucciones de relé


maestro (por ejemplo, varios MCS con un solo MCR), mientras que en otros la sintaxis
obliga a utilizar las instrucciones por pares, y respetando siempre el orden inicio-final
(MCS-MCR) de la función.

225
Controladores Lógicos Programables

Figura 5.8 Instrucciones de relé maestro de control.

Desde el punto de vista de ejecución o no de un bloque de programa, la función


MCS-MCR tiene un cierto parecido con las instrucciones de salto, pero las separan algunas
diferencias importantes:

- MCS activa: el programa entre MCS y MCR se ejecuta en su totalidad.


- JMP no activa: el programa entre JMP y JEND se ejecuta en su totalidad.
- MCS no activa: el programa entre MCS y MCR no se ejecuta
● Las salidas se caen a OFF.
● Los temporizadores se desactivan, con pérdida de valor temporizado.
● Los contadores dejan de contar, pero no pierden el valor acumulado.
- JMP activa: el programa entre JMP y JEND es saltado y no ejecutado

226
Controladores Lógicos Programables

● Las salidas se mantienen a su último valor.


● Los temporizadores se desactivan, pero mantiene el valor temporizado.
● Los contadores dejan de contar, pero no pierden el valor acumulado.

Los enunciados anteriores son únicamente orientativos, y los efectos a la


activación/desactivación de las instrucciones de salto y relé maestro pueden variar de uno a
otro autómata.
Debe advertirse que la instalación de paros de emergencia en un sistema controlado
por autómata no debe nunca pasar por el propio autómata (norma CEL 204-1/204-2), lo que
sería factible mediante el empleo de esta función MCS conectada a una de las entradas: una
avería en el autómata, o en la entrada, o en el programa, dejaría el sistema sin protección.
Si se desean conectar estos paros, deben utilizarse relés físicos que corten la
alimentación al sistema (figura 5.9) quitando tensión a las entradas/salidas del autómata,
aunque pueden mantener la alimentación a la CPU (para revisión del estado del programa o
control de errores, por ejemplo).

Figura 5.9 Instalación de autómatas con relé maestro de control.

227
Controladores Lógicos Programables

5.2 PROGRAMACIÓN ESTRUCTURADA.

Por razones de claridad, y a efectos de simplificar la programación, la depuración y


el mantenimiento, es interesante descomponer la tarea de usuario en partes elementales que,
preferiblemente, contendrán tratamientos completos sobre la variable o conjunto de
variables dentro del proceso o planta a controlar.

Se entiende entonces por programación estructurada aquella que divide la tarea a


programar en subprogramas o módulos, que corresponden a tratamientos parciales, y que
son llamados durante el escrutinio desde un programa raíz. Estos bloques o partes de
programa pueden estar incluso diferenciados por el tipo de tratamiento que realizan, es
decir, por el tipo de instrucciones que contienen (aritméticas, de comunicación, etc.). Si es
así, puede optimizarse el tiempo de ejecución si los bloques son ejecutados sobre un
sistema de coprocesadores o multiprocesadores especializados.

Se habla de programación modular cuando prácticamente toda la tarea a programar


está contenida en módulos independientes entre sí (aun cuando sea admisible la anidación
entre ellos), cuya ejecución está organizada desde un módulo raíz, que básicamente
contiene las llamadas, condicionales o no, a los módulos de programa.
Los módulos se clasifican según el tipo de instrucciones o datos que contienen, o
incluso según el tipo de lenguaje en que están escritos. Así, se habla de módulos regulación,
de datos, en lenguaje literal, de contactos, etc.
Es frecuente, en esta modalidad de programación, disponer de bibliotecas de
fabricante con módulos que resuelven problemas generales de programación: regulación
PID, tratamiento de alarmas, etc.
Otra forma de programación estructurada es la que utiliza subrutinas o bloques de
programa de uso reiterado dentro de la ejecución. En este caso, no existen un programa raíz
asociado a la idea de puntero modular, sino un programa principal, que contiene gran parte
de las sentencias de la tarea, y una serie de subprogramas o subrutinas que son llamadas
desde diferentes puntos del programa principal.

228
Controladores Lógicos Programables

La programación estructurada es particularmente útil para el desarrollo de


programas complejos, ya que la división de la tarea en partes, que pueden a su vez ser
divididas en otras más elementales, permite abordar la programación según un tratamiento
en árbol, de arriba abajo (top-down), según la siguiente evolución: Ver fig. 5.10.

- Secuencia general, en el programa raíz o principal.


- Definición de bloques modulares o subrutinas.
- División de los bloques en otros más elementales, tantas veces como sea necesario o
conveniente.
- Escritura de las sentencias particulares que afectan a cada variable, dentro de los bloques
más elementales alcanzados.

Una programación de este tipo presenta las siguientes ventajas:

- La tarea se divide en partes, que pueden ser tratadas (análisis, y síntesis de la solución)
por separado,
- Puede repartirse la programación entre diferentes programadores,
- Si el software de programación lo permite, pueden escribirse los bloques en diferentes
lenguajes (gráficos, literales), buscando el más adaptado al tratamiento de las variables que
contienen,
- Las modificaciones de puesta a punto se realizan mucho más rápidamente,
- Se generan bibliotecas de módulos o subrutinas, que pueden ser utilizadas en otras
aplicaciones,
- La documentación resultante es más abundante y fácil de leer, incluso para técnicos
ajenos a la programación.

Salvo en aplicaciones muy sencillas, el programador usará siempre un cierto grado


de estructuración en su programa, buscando aprovechar las ventajas indicadas.

229
Controladores Lógicos Programables

Figura 5.10 Programación estructurada.

5.2.1 PROGRAMACIÓN MODULAR.

Se ha definido la programación modular como la estructurada en torno a un


programa raíz, cuya misión fundamental (en general, la única) consiste en llamar para su
ejecución a los distintos bloques o módulos del programa. El mismo usuario puede
estructurar el programa dividiéndolo en distintos bloques o módulos del programa.

230
Controladores Lógicos Programables

El mismo usuario puede estructurar el programa dividiéndolo en distintos bloques,


más o menos relacionados con partes del proceso (alimentación de la cadena, manipulación
de una pieza, tratamiento de alarmas, etc.) y escribiendo un programa raíz con llamadas
(condicionadas o no) a los módulos donde programa cada uno de los bloques.

Los módulos obtenidos están identificados y localizados en memoria mediante un


código de inicio (nombre + número) y otro de final de módulo (por ejemplo, instrucción
BE, Block End), y encada ciclo de operación pueden ser llamados y ejecutados varias
veces.

Aunque esta estructuración del programa puede realizarse sobre cualquier autómata
(siempre y cuando el lenguaje empleado permita el uso de llamadas a subrutinas), será
mucho más eficiente cuando se implemente sobre aquellas máquinas o con aquellos
lenguajes específicamente preparados para soportarla.
También el fabricante puede forzar la estructuración del programa previendo una
plantilla o subdivisión en partes, que el usuario se encarga de llenar de contenidos
(instrucciones) durante la programación.

Dos ejemplos típicos, para miniautómatas de prestaciones medias, se encuentran en


las máquinas de la serie TSX de Télémecanique y SIMATIC S-100U de Siemens.
En el primer caso, el fabricante prevé estructurar un programa secuencial (escrito
con instrucciones GRAFCET) en tres partes, que denomina de:

- Tratamiento preliminar.
- Tratamiento secuencial.
- Tratamiento posterior.

El primero contiene todas las sentencias que no dependen de la evolución secuencial


del proceso y que, por tanto, no están incluidas en el diagrama GRAFCET, como
inicializaciones, conmutación manual-automático, paros de proceso o información de paros

231
Controladores Lógicos Programables

de emergencia, etc. Las sentencias de este módulo son escrutadas sólo durante el primer
ciclo después de la puesta en marcha del autómata (paso de STOP a RUN).

El segundo bloque contiene el programa de evolución secuencial GRAFCET,


introducido en forma gráfica o mediante lenguaje literal. Durante su ejecución se consultan
sólo las transiciones válidas, aquellas que siguen a etapas actualmente activas, para
activar/desactivar etapas y mantener actualizado el GRAFCET.

El tratamiento posterior contiene esencialmente las sentencias de


activación/desactivación de variables asociadas a etapas activas, aunque, al ser un módulo
de escrutinio permanente, permite incluir también en él sentencias de tratamiento continuo:
alarmas, gestión de paros, etc.

La figura 5.11 muestra el ciclo de funcionamiento del autómata TSX 17 con esta
solución, tal y como lo muestra su fabricante Télémecanique. La estructura anterior, con los
tres tratamientos separados mediante instrucciones especiales del lenguaje literal, es rígida
y no modificable por el usuario, que se limita a programar o no sentencias dentro de las
zonas definidas. A cambio, se hace innecesario el programa raíz, y la estructura,
perfectamente adaptada a aplicaciones de baja y media complejidad, simplifica la edición
del programa.
A diferencia de lo anterior, siemens propone para su gama baja de autómatas, programados
con el lenguaje literal STEP 5, una estructura modular abierta (figura 5.12) que puede
enlazar distintos tipos de módulos:

- Módulos de organización, que, llamados por el sistema operativo monitos


(automáticamente), son ejecutados bajo diferentes circunstancias, fijando el
comportamiento del autómata.
- Módulos de programa, estructurados como desee el usuario, que contienen las
instrucciones de consulta y activación de variables.
- Módulos funcionales, que contienen instrucciones especiales de tratamiento de las
variables.

232
Controladores Lógicos Programables

- Módulos de datos, que contienen informaciones (datos) constantes almacenadas bajo


diferentes códigos binarios.

Figura 5.11 Programación estructurada por plantilla del fabricante.

Los módulos de organización (OB) fijan la estructura de ejecución del programa,


llamando al restote módulos según corresponda:

- OB 1: llamado cíclicamente, contiene la secuencia y condiciones de ejecución del


programa de usuario.
- OB 21: llamado en los rearranques normales de autómata (paso de STOP a RUN).
- OB 22: llamado en los rearranques provocados por pérdida y recuperación de tensión de
alimentación.
- OB 34: llamado cuando ocurre fallo de batería de mantenimiento de memoria RAM.

233
Controladores Lógicos Programables

Cuando son programados, los módulos OB 21 y OB 22 permiten fijar la reacción


del autómata antes de pasar a la ejecución cíclica ordenada en OB: inicializaciones,
activación de señales de alarma, etc.
El módulo OB 34 es procesado antes de cada ciclo de OB 1 cuando se detecta fallo
de batería (pérdida de tensión en posiciones remanentes de memoria y posiciones de
programa en RAM). Contiene generalmente una secuencia de parada del proceso y
activación de alarmas.

Figura 5.12 Programación estructurada por el usuario

Los módulos de programa (PB), numerados entre 0 y 63, contienen las instrucciones
del programa de mando. Estos módulos son llamados desde el OB 1 con instrucciones de
salto condicional o incondicional, y permiten la anidación entre sí (figura 5.13).

234
Controladores Lógicos Programables

Los módulos funcionales (FB) contienen también instrucciones del programa de


usuario, pero admiten instrucciones especiales de ampliación del lenguaje (saltos,
rotaciones, etc.)

Figura 5.13 Anidación de módulos de programa.

Cada módulo funcional constituye una función cerrada dentro del programa de
aplicación, y pueden ser programados:

- Por el fabricante, que los oferta como productos software.


- Por el usuario, que los define para su aplicación y los almacena en biblioteca.

Los módulos de datos (DB) contienen constantes alfanuméricas que son utilizadas
por el programa.
- Códigos binarios arbitrarios.
- Constantes numéricas y operandos de cálculo.
- Valores de preselección de temporizadores y contadores.
- Caracteres ASCII para salida de textos, etc.

235
Controladores Lógicos Programables

Sólo es activo en cada momento un módulo de datos, de entre los que contenga la
memoria de programa. El módulo se activa mediante una instrucción especial (A DBn), y
permanece activo hasta que se llame a otro, o finalice el módulo de programa que lo ha
llamado.

Una programación como la comentada, que permite el anidamiento múltiple entre


módulos (en el ejemplo dado, hasta 15 niveles de saltos), y que dispone incluso de
bibliotecas con módulos pregrabados que pueden ser incorporados al programa sin más que
llamarlos por su nombre, permite una gran flexibilidad en la programación y aprovecha
todas las ventajas de la programación estructurada.

5.2.2 SUBRUTINAS

Cuando una secuencia de instrucciones es utilizada deforma repetitiva, puede


resultar más cómodo programarla una sola vez, asignándole un nombre, y utilizarla después
cualquier número de veces mediante una llamada (CALL) a dicho nombre.
La subrutina se define entonces como unidad autosuficiente (que puede ser
ejecutada sin error de inicio a final, si ningún requisito previo en la programación) que se
compila separadamente y puede ser utilizada a continuación por otros programas o
subrutinas.
Según esta definición, el programa principal de una aplicación es aquel que no es
subprograma de ningún otro.
Puesto que en última instancia las instrucciones (sus códigos binarios) se almacenan
en posiciones consecutivas de memoria, es necesario indicar el final de la subrutina (el
inicio queda identificado por su nombre) mediante un código particular (RETURN), a fin
de que la CPU pueda abandonar su ejecución y continuar con el programa demandante
desde la instrucción siguiente a la de llamada (figura 5.14)

Como se ve, una misma subrutina puede ser llamada desde diferentes puntos del
programa, resultando de su empleo una reducción de la longitud del programa de usuario.

236
Controladores Lógicos Programables

Las subrutinas que evalúan una función, y reportan un solo valor al programa
principal, se denominan funciones, y suelen aparecer con nombres propios, fijados por el
fabricante, dentro de los lenguajes evolucionados de alto nivel.
Algunos ejemplos de funciones son:

● Operaciones aritméticas en alta resolución:


- Suma, resta, multiplicación, división, ADD, SUB, MUL, DIV.
- Extracción de raíz cuadrada, SQRT.
- Cálculos logarítmicos y trigonométricos.
● Codificaciones y conversiones entre códigos.
- Conversiones entre códigos binarios.
- Conversión binario-BCD, BCD-binario.
- Conversión BCD-7 segmentos.
- Complemento a 1 y 2 de un valor binario.
● Operaciones lógicas entre palabras:
- AND/OR entre palabras de 8 o 16 bits.
- Incrementos/decrementos y rotaciones entre palabras.
- transferencias y comparaciones, etcétera.

Figura 5.14 Programación estructurada con subrutinas.

237
Controladores Lógicos Programables

Dado que las operaciones a realizar están perfectamente definidas de antemano,


cada función acepta una cierta lista de parámetros y no otra, que es específica para cada una
de ellas.

Desde este punto de vista y puesto que el usuario no interviene en la configuración,


las funciones pueden ser consideradas más como instrucciones avanzadas que como
subrutinas del programa.

En programación modular, pueden estar disponibles módulos funcionales que


resuelvan también algunas de las operaciones indicadas como propias de funciones. Sin
embargo, existe una diferencia conceptual entre estos módulos y las funciones. El programa
que resuelve la subrutina de función está contenido en el sistema operativo del autómata,
mientras que el módulo funcional debe tratarse como un producto independiente de la CPU.
En otras palabras, el usuario dispone como estándar de todas las funciones que
permita el lenguaje elegido, mientras que los módulos funcionales son adquiridos o
generados en función de sus necesidades específicas.

Obsérvese cómo las subrutinas, a diferencia de las macroinstrucciones, no


incrementan significativamente la longitud del programa cuando son llamadas: las
sentencias de la subrutina se ejecutan sobre sí misma, y no son insertadas entre las
instrucciones del programa principal cuando se utilizan.
De esta forma, el programa mejora en legibilidad y ocupación de memoria, aunque no en
tiempo de ciclo. El número de instrucciones a ejecutar no cambia, e incluso es mayor, si
recuentan las instrucciones de llamada y retorno.

Unas subrutinas pueden imbricarse con otras hasta un cierto nivel de anidamiento,
que depende del tipo de lenguaje y/o del autómata que lo soporta.
Una de las principales ventajas del empleo de las subrutinas es que, al igual que con el
empleo de las macroinstrucciones o los módulos de programa, se pueden establecer y
desarrollar bibliotecas de subrutinas, disponibles para uso posterior.

238
Controladores Lógicos Programables

5.3 PROGRAMACIÓN MULTITAREA.

En estructuras monotarea, el programa o tare única se ejecuta periódicamente de


forma cíclica. Si este programa principal es capaz de acceder a subprogramas o módulos,
con intercambio o no de variables, se dice que está estructurado. En caso contrario, el
programa será lineal.

Los autómatas con coprocesadores en la unidad central, o de unidad de control


multiprocesador, pueden admitir la especialización de las sentencias incluidas en las
subrutinas o módulos (tratamiento de textos, comunicaciones, operaciones aritméticas,
etc.), de forma que su ejecución queda reservada a alguna de las CPU disponibles,
especialmente adaptadas para obtener la máxima precisión y rapidez en el tratamiento.

Los sistemas de control más complejos, que suelen exigir operaciones entre las
variables independientes entre si en el tiempo, se programan con tratamientos multitarea,
donde cada tarea recompone de un programa principal, ejecutado de forma cíclica
periódicamente o no y, eventualmente, subprogramas locales (es decir, en programación
estructurada o lineal).
Cada tarea constituye una entidad de programación completa, con sus propias entradas,
salidas, sentencias y ciclo de operación, siendo el programa de usuario el conjunto de todas
las tareas previstas para su ejecución.

Estas tareas parciales, que funcionan de forma independiente entre sí, intentan
actuar de forma concurrente sobre los recursos del sistema, por lo que debe existir un
elemento planificador o supervisor que asigne dichos recursos.
Dependiendo de la estructura hardware de la unidad de control, mono o multiproceso, este
supervisor puede actuar de dos formas:

- Decidiendo, en cada instante, qué tarea estará activa y tendrá acceso a todos los recursos.
- Gestionando el acceso a buses de los distintos procesadores, que estará ejecutando
simultáneamente en el tiempo (en paralelo) las tareas que tienen asignadas.

239
Controladores Lógicos Programables

Sea una u otra la acción desencadenada por el supervisor, son posibles varios
métodos de planificación o decisión, aunque los más utilizados en autómatas son el
prioritario y el de gestión de tiempos.

En el primer caso, a cada tarea se le asigna una prioridad, y el supervisor activa la


tarea más prioritaria de entre todas las que lo soliciten y estén habilitadas. Este método es
típico para sistemas de tiempo real industriales, donde existen subprocesos con constantes
de tiempo distintas, e interesa fijar las prioridades de atención según la criticidad en el
tiempo de respuesta que exige cada subproceso.

El método de gestión de tiempo o tiempo compartido (time sharing) consiste en


asignar unidades de tiempo a cada tarea, unidades que constituirán el tiempo de ciclo
deseado para ella.

Una vez arrancado, el autómata irá ejecutando las tareas según esta plantilla de
tiempos, resolviendo las simultaneidades que se presenten en atención a la mayor o menor
prioridad establecida para las tareas involucradas. De esta forma, se asegura el
cumplimiento del tiempo de ciclo fijado para la tarea más prioritaria, siendo en las demás
tanto menos probables de cumplirse conforme se va descendiendo hacia las tareas definidas
como menos prioritarias.

Así, por ejemplo, los autómatas de la serie TSX 7 de Télémecanique pueden


ejecutar “en paralelo” (casi en paralelo, ya que no existe simultaneidad en el tiempo), las
siguientes tres tareas periódicas, ordenadas de mayor a menor prioridad (figura 5.15):

- 1 tarea rápida (de 15 a 20 ms).


- 1 tarea maestra que contiene el tratamiento secuencial y combinacional de la aplicación
(de 20 a 100 ms).
- 3 tareas auxiliares, que contienen las sentencias definidas como menos críticas: diálogo
con el operador, tratamiento de textos, salida a impresora, salida analógica a registradores,
etc. (de 100 a 300 ms).

240
Controladores Lógicos Programables

Además de las tareas periódicas, estos autómatas pueden ejecutar una tarea
interrupción no periódica muy rápida (< 1 ms), asíncrona y prioritaria a todas las demás,
cuya ejecución se desencadena bajo una señal que proviene de sucesos externos:
posicionamiento de ejes, conteo rápido, etc.

Figura 5.15 Tratamiento multitarea

Esta tarea se tratará de nuevo en el apartado dedicado a interrupciones, en este


mismo capítulo. La tarea maestra es una tarea periódica y obligatoria, que ejecuta los
tratamientos combinacionales y secuenciales generales de la aplicación. Se activa
sistemáticamente desde el supervisor, y permite habilitar/deshabilitar desde ella a las otras
tareas.

241
Controladores Lógicos Programables

La tarea rápida es la de mayor prioridad de entre todas las periódicas. El tratamiento


de esta tarea debe ser lo más corto posible, tanto para permitirle cortos tiempos de respuesta
y alta frecuencia de escrutinio desde el supervisor, como para no perjudicar
innecesariamente a la tareas menos prioritarias.

Las tareas auxiliares son tareas periódicas dedicadas a la atención de los


tratamientos más lentos o menos críticos, como la regulación sobre largas constantes de
tiempo, el intercambio de datos y estadísticas con un PLC maestro u ordenador, etc.

Cada una de estas tareas se procesa, si no es interrumpida por otra de mayor


prioridad, según la conocida secuencia de adquisición de estados, tratamiento del programa
y actualización de salidas, pero intercalando en la secuencia un reloj que fija el período o
tiempo de ciclo de escrutinio fijado en la plantilla de tiempos, según muestra la figura 5.16
El tratamiento de esta estructura de programación por parte de la unidad de control
es el siguiente (figura 5.17):

- Ejecución de la tarea maestra, desde que se pone el autómata en RUN, y según la


frecuencia (período) fijada.
- Ejecución completa de la tarea rápida (si no hay tarea interrupción), durante su tiempo de
ciclo y a la frecuencia fijada, siempre y cuando se haya habilitado la ejecución desde la
tarea maestra.
- Ejecución de las tareas auxiliares, a las frecuencias fijadas, siempre que se haya validado
su activación desde la tarea maestra, y si las tareas más prioritarias demandantes han
terminado su ciclo.

242
Controladores Lógicos Programables

Figura 5.16 ciclo de ejecución de una tara con plantilla de tiempo.

La estructura anterior se define sobre un autómata monoproceso, que sólo ejecuta,


en cada instante de tiempo, una de las tareas programadas, la más prioritaria de entre las
que demandan atención.

En autómatas multiproceso, un procesador coordinador asigna a cada CPU el acceso


a buses internos de la unidad de control, según una cierta ordenación, prioritaria o no.
Cuando un procesador tiene el control de los buses, intercambia información a través de

243
Controladores Lógicos Programables

ellos con los demás procesadores (por ejemplo, para actualizar alguna de sus variables de
cálculo) y con las memorias imagen de entradas/salidas, si son comunes a la unidad.
Mientras, cada procesador ejecuta, simultáneamente en el tiempo con los demás, la tarea
que tenga introducida en su memoria de programa, independiente de las otras que forman el
programa. De esta forma, y dado que un tratamiento multitarea en multiproceso no presenta
interrupciones ni interferencias entre unas tareas y otra, se obtiene la mayor velocidad de
ejecución posible para el conjunto de la aplicación del usuario.

En una aplicación multitarea, y dependiendo de la unidad de programación


utilizada, podría programarse además cada tarea en un lenguaje de programación diferente
(gráfico o literal), buscando el más adaptado al tratamiento definido en ella. De esta forma
podrían darse, para una optimización del trabajo de programación y ejecución, tratamientos
multitarea escritos en multilenguajes y corriendo sobre autómatas multiproceso.

Figura 5.17 Ejecución de tareas en tiempo compartido, según prioridades.

244
Controladores Lógicos Programables

5.3.1 TAREAS RÁPIDAS E INTERRUPCIONES

Dada la necesidad presente en los sistemas de control de reaccionar rápidamente a


ciertos sucesos exteriores (detección de móviles a alta velocidad, alarmas fatales de
proceso, posicionamiento de ejes, etc.), muchos autómatas, no estrictamente multiproceso,
se liberan de la servidumbre del tiempo de ciclo del programa principal permitiendo la
programación sobre ellos de un bloque de programa de respuesta rápida, según una
estructura bitarea formada por:

- Tarea de mando, o programa principal,

- Tarea de interrupción.

El programa contenido en la tarea de interrupción, necesariamente limitado en


longitud, interrumpe al programa principal en cualquier instante en que se produzca la
interrupción, permitiendo un tratamiento muy rápido sobre algunas variables, con una
elevada frecuencia de ejecución.

Estas tareas de interrupción admiten un número limitado de entradas/salidas, que


son leídas y actualizadas dentro de la ejecución de la tarea, sin esperar el principio o final
del ciclo de refresco de la tarea principal (figura 5.18).

La ejecución de la tarea de interrupción puede ser inhibida desde el programa


principal, habilitando o no la interrupción que la dispara mediante un relé interno especial.

De esta forma, el programa mantiene en todo momento el control de la tarea de


interrupción, permitiendo su ejecución o no según los intereses actuales de la aplicación.

245
Controladores Lógicos Programables

Figura. 5.18 Ejecución de una tarea de interrupción.

En general, el control sobre la interrupción puede resolverse en tres tiempos de


acciones.

- Inhibiéndola totalmente, de forma que se pierde la solicitud de atención si aparece la


interrupción bajo este estado.
- Memorizándola, para impedir su ejecución inmediata, pero recordando la demanda para
atenderla en cuanto sea posible.
- Permitiendo la interrupción, con lo cual se ejecuta el programa contenido en la tarea
rápida.

246
Controladores Lógicos Programables

Aunque el autómata es una máquina síncrona que ejecuta el programa de memoria


según una secuencia ordenada de acciones (lo que afecta al tiempo de respuesta), podría en
la práctica considerarse como un controlador en tiempo real si dispone de suficiente
número de interrupciones y tareas de interrupción asociadas, convenientemente priorizadas.
Existen siempre en el autómata interrupciones invisibles para el usuario, que este no
puede controlar ni inhibir, y cuyas tareas asociadas han sido definidas por el fabricante y no
son nunca interrumpidas por ninguna otra de programa: son las interrupciones de gestión
del sistema, que permiten al autómata:

- Checar periódicamente la CPU, buses y memorias.


- Mantener las bases de tiempo para los temporizadores programados.
- Actualizar el reloj de guarda, etc.

Estas interrupciones, de acción transparente al usuario, no son consideradas como


disponibles para la programación, ni permiten definir a una máquina como multitarea.
Las interrupciones de programa, disponible para usuario, pueden ser debidas a dos
tipos de sucesos:

- Exteriores, por cambios en señales de E/S


- Interiores, por cambios en variables internas.

Y es muy frecuente que el propio usuario pueda, en la programación, decidir a qué


grupo pertenecerá la que dispare su tarea de interrupción. La interrupción por disparo
exterior se utiliza para detectar eventos muy cortos (por ejemplo, móviles a alta velocidad),
o para asegurar la máxima rapidez de respuesta (por ejemplo, reacción a alarmas), y puede
activarse por:

- Flanco de una señal binaria de entrada,


- Alcance de preselección en un contador rápido.

247
Controladores Lógicos Programables

La interrupción por disparo interior se utiliza para conseguir, sobre un número


limitado de variables, tiempos de ciclo menores e independientes del tiempo de ciclo del
programa principal, es decir, para asegurar la ejecución de una tarea repetitiva a intervalos
regulares (por ejemplo, para asegurar el seguimiento en tiempo real de alguna parte del
proceso).

En este modo de interrupción resulta una aplicación realmente bitarea, en la que el


programa principal o de fondo es interrumpido periódicamente para controlar ciertas
señales del proceso que exigen una mayor atención y menor tiempo de reacción.

En algunos autómatas, es posible asignar a la tarea rápida un período de tiempo,


según una cuadrícula dada por el fabricante, transcurrido el cual se dispara una interrupción
interna que ordena la ejecución de la tarea.

Este mismo efecto se consigue en otros autómatas programando el contador rápido


de forma que sea activado mediante un temporizador interno de muy baja base de tiempos
(menor de 1 ms), pudiendo el usuario elegir cualquier período de ejecución múltiplo entero
de la base de tiempos.

La tarea de interrupción alcanza sus máximas prestaciones cuando las E/S que
utiliza son especiales, particularmente rápidas frente a las estándar. Estas entradas/salidas
rápidas se consiguen reduciendo o eliminando el filtro de la interfaz E/S, lo que permite
tiempos de conmutación ON-OFF del orden de 1 ms o incluso menos, con anchos de
impulso detectables de hasta 250 µs.

Debe preverse que la inclusión de tareas de interrupción en una aplicación


incrementa siempre el tiempo de ciclo del programa principal, incluso muy
significativamente cuando son activadas de forma reiterada. Esta circunstancia afectará a
los tiempos de respuesta de las variables incluidas en dicho programa, llegando incluso a
hacer inviable la acción de mando, por lo que deberá ser evaluada convenientemente.

248
Controladores Lógicos Programables

5.4 PARAMETRIZACIÓN DE MÓDULOS FUNCIONALES.

El aumento de complejidad de las tareas ejecutas por autómatas lleva consigo un


aumento proporcional de la dificultad en su programación.
No basta con que el fabricante defina lenguajes con un elevado número de
instrucciones, que cubran muchas operaciones elementales. En ocasiones, el usuario no
sabrá o no dispondrá de tiempo para enlazarlas convenientemente hasta obtener las
sentencias de tratamiento deseadas (por ejemplo, en la programación de una regulación
PID). Para facilitar la programación, y mantener limitados los gastos software en el
desarrollo de la aplicación, los fabricantes ofrecen la posibilidad de utilizar bloques
funcionales complejos, obtenidos bien por combinación de instrucciones elementales del
lenguaje de autómata, bien compilados directamente por el fabricante. Si se pretende que
estos bloques funcionales sean estándar, debe preverse su fácil adaptación a cada
aplicación. Esta adaptación se logra mediante la parametrización del bloque, asignándole
ciertos valores alfanuméricos (variables o direcciones de variables, constantes, textos, etc)
Existen diferentes niveles de complejidad y estandarización en estos bloques
funcionales, que se encuentran disponibles como funciones de fabricante según su mayor o
menor demanda:

- Bloques funcionales básicos, de carácter secuencial, de uso universal (temporizadores,


contadores, etc.)
- Bloques funcionales de expansión, ofrecidos como expansiones al lenguaje básico
(operaciones aritméticas, conversiones de código, etc.)
- Tratamientos de bloques o tablas de datos, que permiten la gestión de altos volúmenes de
información, para transferencias, estadística, etc. (lectura/escritura de bloques de datos,
comparaciones múltiples, aritmética multipalabra, búsquedas en tablas, etc.)
- Funciones de comunicación, para autómatas que admiten conexiones punto a punto o en
red con otros elementos (recepción, transmisión, parametrización de la unión física, etc.)
- Módulos funcionales, totalmente parametrizables, utilizados para resolver funciones muy
especificas o muy deseadas por el usuario.

249
Controladores Lógicos Programables

Excepto el último grupo (y eventualmente las funciones de comunicación), todos los


demás bloques funcionales descritos forman parte del lenguaje de autómata, básico o
expandido, y son tratados durante el escrutinio y ejecución del programa como una
instrucción más, con mayor o menor grado de parametrización.

Por ejemplo, la función SEND de Morón SYSMAC Serie C se utiliza para enviar datos a
un dispositivo conectado al autómata vía red local SYSNET del mismo fabricante.
La estructura de la función es la siguiente:

Nombre SEND
Dirección
Fuente
Inicial SB
Dirección
Destino
Inicial DB
Datos de
control C (número de palabras, dirección de envío)

La función reporta sobre relés internos especiales la siguiente información:

- Red libre u ocupada.


- Transferencia correcta o errónea.

En el ejemplo de aplicación de la figura 5.19, la función SEND se utiliza en una


forma de parametrización indirecta, donde los parámetros que necesita no se le indican
directamente, sino a través de ciertos registros de datos (DM10, DM20, DM0-DM2),
siendo el programa previo quien se encarga de actualizar la información en estos registros,
en el ejemplo, con constantes, pero también es posible con variables generadas por
programa.

250
Controladores Lógicos Programables

Figura 5.19 Transferencias de datos mediante funciones de comunicación.

251
Controladores Lógicos Programables

Esta función de comunicación sigue siendo, a pesar de su parametrización más


completa, una instrucción más dentro del lenguaje de usuario, y en este sentido no presenta
diferencias conceptuales respecto a los bloques funcionales básicos o de expansión.
Los módulos funcionales se colocan en un apartado bien distinto. Módulos software
programados por completo, contienen desarrollos funcionales complejos y cerrados, que
son necesarios con frecuencia para confeccionar el programa de aplicación.

A diferencia de los bloques anteriores, los módulos funcionales no están


incorporados al lenguaje de autómata, sino que deben ser generados por el usuario, o
adquiridos al fabricante, y tratados como extensiones no estándar del lenguaje empleado.

Durante la programación, los módulos funcionales en la biblioteca pueden ser


llamados varias veces y como son parametrizables, puede indicárseles en cada llamada los
parámetros actuales deseados.

El módulo funcional está construido de tal forma que el usuario es guiado por el
entorno de programación al ensamblar el módulo en su programa. Una vez llamado, el
módulo aparece con sus operandos formales (parámetros), identificados por nombres o
abreviaturas, para que el usuario coloque en ellos los valores deseados en ese punto del
tratamiento (figura 5.20).

La parametrización del módulo puede hacerse en forma directa o indirecta en el


primer caso, los valores finales de los parámetros se colocan directamente sobre las
correspondientes entradas del módulo, mientras que en el segundo se le indican al módulo
las direcciones donde puede encontrar esos parámetros.

Esta última forma de parametrización permite modificar “on-line” el


funcionamiento del módulo, según la evolución del programa.

252
Controladores Lógicos Programables

Figura 5.20 Parametrización de bloques funcionales.

253
Controladores Lógicos Programables

Si el módulo funcional es generado por el usuario, éste lo hace dentro de un entorno


de programación que permite, además de la edición, compilación y transferencia de
programas a la CPU, la edición y gestión de bibliotecas de módulos, escritos con las
instrucciones disponibles en el lenguaje o lenguajes usados.
En la edición de estos módulos, el usuario define en primer lugar sus conexiones
externas (número de entradas/salidas, si admite o no inversión y duplicación de señales,
etc.). a continuación, y utilizando los lenguajes de programación, que permita el entorno
software, programa las sentencia que definen el tratamiento sobre las variables de entrada.

En último lugar, identificado con un nombre propio y documentado


convenientemente, es enviado a la biblioteca en disco, para desde allí ser llamado y
parametrizado con los valores actuales cuantas veces se desee.

Por supuesto, los módulos funcionales generados pueden ser tan complejos como se
quiera, bien por su estructura intrínseca, bien porque se obtienen como combinación de
otros previos.

5.5 APLICACIONES.

Como ejemplo de estos últimos, se menciona un módulo funcional múltiple, de


Siemens, que resuelve una tarea de regulación sobre sistemas con constantes de tiempo
mayores de 100 ms. Los módulos elementales que componen el paquete realizan, por
ejemplo, regulación, ajuste al valor prescrito, generación de tramos poligonales, etc., y
pueden realizar funciones que no son posibles en muchos reguladores compactos (si bien la
regulación programada presenta una desventaja intrínseca, las relativamente elevadas
constantes de tiempo exigidas al proceso a controlar, forzadas por el tiempo de ejecución
del algoritmo).

254
Controladores Lógicos Programables

Las interfaces entre los módulos son palabras (registros) de datos cuyas direcciones
se indican como parámetros actuales al parametrizar el módulo. En estos módulos de datos
se indican, por ejemplo, los valores reconsignas, los parámetros de ajuste del regulador,
etcétera.

El módulo se introduce en memoria como un programa estructurado, con los enlaces


posibles entre módulos constituyentes predefinidos por el fabricante, e indicados al usuario
desde la unidad de programación para que seleccione la configuración deseada (regulación
proporcional, en cascada, adaptativa, por pasos, etc.)

Para desincronizar su ejecución con el tiempo de ciclo del programa principal, el


módulo se ejecuta en funcionamiento multitarea, a intervalos regulares indicados por una
plantilla tiempos. El período de escrutinio es fijado por el usuario a un valor de 1/10 veces
la menor constante de tiempo del sistema controlado, a fin de asegurar el buen
funcionamiento de la regulación, sin interferir innecesariamente en el programa de mando
principal.

255
Controladores Lógicos Programables

UNIDAD VI

INTRODUCCIÓN A LAS REDES DE COMUNICACIÓN


INDUSTRIALES

6.1 CONCEPTOS BÁSICOS DE COMUNICACIÓN DE DATOS

La automatización de las industrias ha tenido un proceso de implantación gradual y


por partes, aprovechando en cada momento los últimos desarrollos que ofrecían las nuevas
tecnologías, sobre todo los circuitos integrados digitales LSI. Esto ha dado lugar, como ya
se ha dicho, a la existencia de “islas automatizadas”, consistentes en una serie de equipos
(autómatas, variadores de velocidad, controles numéricos, ordenadores de diseño y gestión,
etc.) aislados entre si y dedicados cada uno al control de una maquina o de una parcela
cerrada de un proceso. Se dijo también que las prestaciones del conjunto de estos equipos
podían mejorarse sensiblemente si se comunican entre si y se presentaron los principios
básicos de las redes de comunicación industriales: modelo OSI, estructuras físicas y lógica,
etc. Concretamente, se hizo especial hincapié en el aspecto físico de la conexión, quizás
uno de los mejor asentados y especificados en normas internacionales y, por tanto, se
pudieron dar detalles de los distintos tipos de conexiones estándar.

La integración de las mencionadas “islas automatizadas” suele hacerse, como se ha dicho,


dividiendo las tareas entre “grupos” de procesadores jerárquicamente anidados. Esto da
lugar a una estructura de las redes industriales en la que se pueden distinguir claramente
tres niveles :

-Nivel de bus de campo. Este es el nivel de red mas próximo al proceso y se carga de la
integración de pequeños automatismos (autómatas compactos, multiplexores de E/S,
controladores PID, equipos de medida, etc.) en las llamadas “islas”, que controlan distintas
parcelas, en el nivel mas alto de estas redes se suelen encontrar uno o varios autómatas
modulares de gama alta, que pueden actuar como maestro de la red o en estructuras de
maestro flotante. El conjunto constituye lo que se suele llamar una “célula de fabricación”.

256
Controladores Lógicos Programables

-Nivel de LAN. Este es el nivel jerárquicamente por encima del anterior y se encarga
normalmente de enlazar las distintas “células de fabricación” en grupos más grandes. A este
nivel se suelen encontrar los autómatas de gama alta y los ordenadores de proceso
dedicados a las tareas de diseño, control de calidad, etc.

-Nivel LAN/WAN. Este nivel es el más próximo al área de gestión y se encarga de integrar
los niveles anteriores en una estructura de fábrica o incluso de múltiples factorías con
emplazamientos dispersos. Las maquinas que forman parte de este nivel suelen ser mini
ordenadores o redes de ordenadores compartiendo recursos e incorporando bases de datos
que permiten centralizar los servicios de compras, control de stocks, ventas, control de
costos, etc.

La estructura indicada no es, sin embargo, universal. Dependiendo del tamaño del
proceso y de la propia empresa podemos encontrar redes con grado de complejidad muy
diverso, desde el simple bus de campo hasta la que contiene todos los elementos citados.

Globalmente y para cualquiera de los niveles citados, se esta todavía lejos de tener
un estándar universalmente aceptado que cubra todos los aspectos, desde el nivel físico,
pasando por los protocolos de enlace y terminado con un software de aplicación que
permita al usuario olvidarse de las interioridades tecnológicas y aplicar el sistema de
comunicaciones como algo “transparente” que simplemente esta ahí y que se puede utilizar
a través de un software comprensible incluso para los no expertos.

La afirmación anterior es especialmente cierta a nivel de buses de campo, debido


quizás a la mayor diversidad de equipos que se deben enlazar y, por tanto, al mayor
número de fabricante implicados, que presentan cada uno una solución cerrada para la
integración de sus productos en redes de bajo nivel. En la mayor parte de dichas redes, lo
único que se adapta a ciertas normas es el nivel físico y algunas técnicas mas o menos
estándar de control de acceso al medio pero por lo demás suelen ser completamente
incompatibles entre si. Hay que pensar por otra parte, que a este nivel se trata de sistemas
basados en microcontroladores de bajas prestaciones, dedicados caso por completo a tareas

257
Controladores Lógicos Programables

de control y que no tienen capacidad sufriente para implementar sobre ellos protocolos
complejos.

A nivel de LAN existe una mayor uniformidad, puesto que los estándares han sido
implantados en muchos casos pro los grandes gigantes del mundo de la informática. A este
nivel se suele trabajar ya con CPU mas potentes o incluso se suele dedicar una CPU a la
tarea especifica de las comunicaciones. Los fabricantes de automatismos y periféricos han
optado en la mayor parte de los casos pro construir adaptadores de conexión, código y
protocolo (denominados generalmente “pasarelas”) que permiten unir su red de campo
particular con redes de alto nivel como MAP u otras.

En el nivel mas alto, WAN, no puede hablarse de ningún estándar propiamente


exclusivo para uso industrial, sino que se hace uso de redes, generalmente públicas, de
propósito general, capaces de transmitir datos, imágenes, voz, etc.

Dado, pues que no podemos hablar de un sistema único, con un entorno homogéneo
para las comunicaciones industriales, dedicaremos esta unidad a explicar en particular
algunos de los que se han hecho más populares en cada uno de los dos niveles básicos (bus
de campo y LAN), ya sea por el número de aplicaciones instaladas, ya por el potencial
técnico y económicos de las empresas que los han comercializado o implantado.
Trataremos solo de una forma muy marginal las redes a nivel de WAN, puesto que la
conexión a redes industriales, si existe, suele efectuarse a través de las mencionadas
pasarelas u ordenadores de comunicaciones, cuyo estudio escapa del ámbito de este texto.

6.2 BUSES DE CAMPO

El bus de campo constituye el nivel más simple y próximo al proceso dentro de la


estructura de comunicaciones industriales. Esta basado en procesadores simples y utiliza un
protocolo mínimo para gestionar el enlace entre ellos. Los buses propuestos más
recientemente contemplan ya la posible integración del bus a una estructura de

258
Controladores Lógicos Programables

comunicaciones jerárquicamente superior y más potente, tal como se ha explicado en la


introducción.

Debe señalar aquí que no hemos considerado propiamente como buses de campo las
uniones punto a punto entre dos autómatas de la misma marca o entre un autómata de gama
alta con uno o varios de gama baja, también del mismo fabricante. Muchas de estas uniones
carecen de protocolo y se basan simplemente en compartir ciertas áreas de memoria de los
citados autómatas a través de lo que se denominan “variables comunes”. Así pues, la
característica básica para que una red de comunicación pueda denominarse propiamente
bus de campo es que permita intercambiar órdenes y datos entre productos de un mismo o
de distintos fabricantes a través de un protocolo reconocido por cada uno de los nodos.

Hasta el momento han sido varios los intentos de crear un estándar para el nivel bus
de campo. En todos los casos se pretende básicamente conseguir un enlace multipunto, para
elementos cuya CPU esta básicamente dedicada a las tareas de control. Dichas CPU tienen
una capacidad de comunicación limitada y no permiten implementar un protocolo al estilo
de las grandes redes sin que ello suponga una perdida importante de su velocidad y un
incremento de precio y complejidad no justificables.

Las características generales más comunes de los buses de campo son las siguientes:

-Los estándares de comunicación a nivel de bus de campo cubren solo una parte del
modelo OSI, concretamente los niveles físico (1), enlace (2) y aplicación (7). El resto de
niveles no son imprescindibles par una red de tipo muy local, donde los medios de
conexión son de exclusivo y la estructura lógica es única. Solo algunas funciones que se
podrían considerar propias de los nivel “red” y “sesión” se añaden a los niveles 2 y 7 para
enlazarlos entre si.

-En general las especificaciones de un determinado bus admiten mas de un tipo de


conexión física de entre las normalizadas. Sin embargo, la mas común es un bus

259
Controladores Lógicos Programables

semiduplex, comunicación en banda base, tipo RS-485. Se encuentran también opciones


que trabajan con RS-422 y conexiones en bucle de corriente.

-Lo que realmente define el tipo de bus y le da nombre es el protocolo de acceso al medio
(MAC) y de enlace (LLC). Dicho protocolo suele incluir también un soporte rudimentario
par la capa de aplicación, que consiste en la definición de una serie de funciones y servicios
de la red mediante códigos de operación estándar.

-El nivel de aplicación, dirigido al usuario, suele ser propio de cada fabricante, apoyándose
en las funciones, estándar antes mencionadas para crear programas de gestión y
presentación casi siempre dedicados a una gama específica de productos. A lo sumo, el
software de aplicación es abierto y permite la programación en un lenguaje estándar
(actualmente el mas popular es el C) para que cada usuario pueda configurar el nivel de
presentación a su conveniencia, apoyándose en librerías estándar.

-Salvo el caso de BITBUS, todos los buses de campo suelen utilizar comunicaciones serie
asíncrona, con velocidades relativamente lentas.

-En la mayor parte de bus de campo, el protocolo esta previsto para gestionar una red con
estructura lógica de tipo maestro-esclavo, donde el control de red lo tiene siempre el
maestro. Existen, sin embargo, algunos buses de creación más reciente que proponen una
estructura con la posibilidad de maestro flotante.

El intento más serio de normalización de un bus de campo, por parte de un organismo


internacional de reconocido prestigio, ha sido el emprendido por IEC. El comité TC65C-
WG6 ha definido unas reglas marco bastante genéricas y esto ha constituido un punto de
partida importante para acercarse al tan deseado estándar.

Las condiciones fijadas como marco por IEC son las siguientes:

260
Controladores Lógicos Programables

1) Nivel físico. Bus serie controlado por un maestro, comunicación semiduplex


trabajando en banda base.
2) Velocidades. Dos alternativas: 1 mbit/s para distintas cortas, o valores inferiores,
entre 250 kbits /s a 64 kbits/s para distancias largas.
3) Longitudes. Dos alternativas: 40 m para la máxima velocidad y 350 m a
velocidades mas bajas.
4) Numero de periféricos. Máximo de 30 nodos, con posibles ramificaciones hasta un
máximo de 60 elementos.
5) Tipo de cable. Pares de cables trenzados y pantalla.
6) Conectores. Bornes de tipo industrial o conectores tipo D9 o D25
7) Conexión/desconexión “on line”. La conexión y /o desconexión de algún nodo o
derivación no debe interferir el trafico de datos.
8) Topología. Bus físico con posibles derivaciones hacia los nodos o periféricos.
9) Longitud de ramificaciones. Máxima longitud de las derivaciones de 10m.
10) Aislamientos 500 Vc.a. permanentes entre elementos de campo y bus. Tensión de
prueba 1500 Vc.a./ 1 minuto.
11) Seguridad intrínseca. Opción a conectar elementos de campo con tensiones
reducida par atmósferas explosivas.
12) Alimentación. Opción de alimentar los elementos de campo a través del bus.
13) Longitud de mensajes. Mínimo 16 bytes por mensaje.
14) Transmisión de mensajes. Posibilidad de dialogo entre cualquier par de nodos sin
repetidor. Esto no excluye, sin embargo, la posibilidad de que la comunicación se
haga a través de un maestro ni tampoco excluye el empleo de repartidores
“transparentes” para incrementar las distancias de transmisión.
15) Maestro flotante. Posibilidad de maestro flotante entre diversos nodos.
16) Implementación de protocolo. Los circuitos integrados que implementen el
protocolo deben estar disponibles comercialmente y ser de dominio público (no
protegidos por patentes de exclusividad).

Obsérvese que las especificaciones son bastantes detallistas a nivel físico, pero dejan
muy abiertos los niveles de enlace y aplicación (no se especifica la trama del mensaje ni las

261
Controladores Lógicos Programables

funciones disponibles), con lo cual y desde el punto de vista del usuario, es probable que
dos nodos que cumplan las recomendaciones marco de IEC no puedan siquiera
intercambiar caracteres entre si quiera intercambiar caracteres entre si y casi seguro que no
serán capaces de intercambiar información, a menos que la estación “maestra” ejerza las
funciones de pasarela. (Algo parecido a lo que ocurre con dos dispositivos con sendos
canales RS-232 que se intercambian bits a nivel físico, pero que son incapaces cada una de
interpretar los mensajes del otro).

Las condiciones marco propuestas por IEC admiten varios posibles candidatos a bus de
campo estándar. Hay que tener en cuenta, además, que muchos buses comerciales
disponibles en la actualidad nacieron antes de la normativa IEC y, por tanto, no cumplen
algunos de los requisitos. El resultado es que se sigue estando ante una autentica “torre de
Babel” en lo que se refiere a compatibilidad de productos a este nivel.
Atendiendo a esta última afirmación y para no quedarnos en una descripción vaga de los
buses de campo, hemos creído conveniente hacer un estudio a fondo de algunos de los que
actualmente están más extendidos, procurando que no sean exclusivos de una sola marca.
El estudio lo hemos concretado en los siguientes:

-MODBUS MODICON: Marca registrada de GOULD INC. Define básicamente un


protocolo de comunicación pensado para una topología maestro-esclavo. Su
implantación ha sido bastante amplia durante la década de los ochenta y son varias las
marcas que ofrecen y son varias las marcas que ofrecen productos compatibles o
pasarelas para enlazar la red propia con este estándar. Su principal inconveniente reside
en la falta de reconocimiento explicito por parte de alguna norma internacional.

-BITBUS. Esta designación corresponde a una marca registrada por Intel para designar
un bus de altas prestaciones en velocidad y bajo costo. Sin embargo, Intel ha cedido a
dominio publico el estándar y, por tanto, puede considerarse un estándar abierto. Se
trata de un bus asíncrono, cuyo protocolo se gestiona completamente mediante el
microcontrolador 8044, un ASIC basado en la arquitectura de la familia 8051 dotado
de una USART y con las funciones de protocolo integradas en ROM.

262
Controladores Lógicos Programables

Precisamente la ventaja de disponer de un controlador de mercado, de bajo coste, que


gestiona completamente el protocolo y de una serie de software de aplicación para su
integración en otros bus y ordenadores de uso muy común como el propio IBM-PC, bus
VME, etc. Hacen de BITBUS una alternativa muy atractiva para su utilización como bus
de campo. El mayor inconveniente para su implantación estriba quizás en que el origen es
propio de una marca y no ha existido el apoyo de una normativa reconocida
internacionalmente.

-PROFIBUS, impulsado principalmente por los fabricantes alemanes. El protocolo es un


subjuego del MINIMAP, utilizando en redes de mas altas prestaciones y esta previsto para
su integración en dichas redes de una forma simple A pesar de ser un sistema muy abierto,
es no de los pocos que concretan bastante el nivel de aplicación y esta progresando
rápidamente con el apoyo de una serie de marcas importantes y en el marco de la norma
DIN 19.245. Uno de los inconvenientes para su desarrollo es que la información detallada
del protocolo no es de dominio público

-S-BUS (Speed Bus). El S-BUS no es propiamente un bus de campo, sino un sistema


multiplexor de multiplexor que permite la conexión de E/S remotas (digitales y / o
analógicas) a través de dos pares trenzados. Fue adoptado primitivamente por algunos
fabricantes europeos de autómatas y, sobre todo, de periféricos de entrada/salida.

Existen, asimismo, otros buses que han gozado o gozan de cierta popularidad y que
han sido apoyados pro algún consorcio de fabricantes o incluso por alguna norma y que no
hemos creído conveniente detallar, tales como:

-FIP (Factory Instrumentation Bus), impulsado por algunos fabricantes franceses, con el
apoyo de algunos organismos oficiales de aquel país.
-Bus MIL-STD-1553B, adoptado por algunos fabricantes en USA.

263
Controladores Lógicos Programables

Hay que señalar que tras los nombres más o menos distintos que cada fabricante da
a su red propia de comunicaciones suele esconderse, a veces algún bus prácticamente
idéntico a otro conocido con distinto nombre. Tal es el caso, por ejemplo, de JBUS,
utilizado por la marca APRIL, este bus está basado en un protocolo prácticamente idéntico
al de MODBUS.

6.3 MULTIPLEXORES DE E/S

La gran cantidad de señales de E/S que deben cablearse hacia la unidad central
hacen que muchas veces el cableado se convierta en un problema. Dicho problema es
especialmente grave y costoso en el caso de procesos distribuidos en una planta de gran
extensión, como en el caso de la industria química, petrolífera o incluso en la propia
industria del automóvil. Para resolver este problema algunos fabricantes tradicionales de
bornes y medios de conexión (Phoenix, Weidmuller y otros) han desarrollado lo que se
podría llamar “cajas de conexión multiplexados”.

La idea básica consiste en situar cajas de conexión “inteligentes” para señales


digitales y analógicas allá donde se generan las señales de proceso, es decir, lo más
próximas posibles a los sensores y actuadores.

Estas cajas de conexión inteligentes se enlazan entre sí con un módulo de


comunicaciones y las señales de todas ellas se transmiten multiplexadas en el tiempo a
través de uno o dos pares trenzados hacia el lugar donde se encuentra ubicado el equipo de
control.

En el propio armario del equipo de control se sitúa un módulo demultiplexor con


entradas y salidas directamente conectables al API u ordenador de proceso. La figura 6.1
muestra un esquema de conexión de E/S analógicas o digitales a través de lo que aquí
llamaremos un Multiplexor de E/S.

264
Controladores Lógicos Programables

Figura 6.1 Sistema de E/S conectado a través de multiplexores y demultiplexores.

265
Controladores Lógicos Programables

Obsérvese que el concepto es bastante más simple que el de un bus de campo, ya


que lo único que se consigue es una reducción del cableado, pero las señales que entran al
API, por ejemplo, siguen siendo binarias o analógicas. Algunas veces se ofrecen la
posibilidad de sustituir el multiplexor/demultiplexor del lado del autómata por una
conexión directa a un canal de comunicaciones del mismo, pero entonces habría que hablar
ya de un verdadero bus de campo. Así pues, la verdadera diferencia entre ambos estriba en
el hecho de que el multiplexor de E/S no requiere ningún software de sopor te ni exige, por
parte del usuario, manejar ningún tipo de protocolo. Se trata de un sistema que podríamos
llamar “transparente a nivel físico”, dado que el usuario cablea en un extremo las señales
necesarias y las recupera en el otro extremo. Por tanto, a todos los efectos, incluyendo el
direccionamiento de E/S del autómata, es como si los sensores y actuadotes estuvieran
junto a los terminales de entrada de dicho autómata.

Lógicamente el empleo de esta solución requiere más hardware y resulta, en


general, más cara que el bus de campo, sobre todo para procesos pequeños. Sin embargo,
tiene la ventaja, pro parte del usuario, de que no requiere ningún conocimiento del tema de
comunicaciones.

A nivel interno, los multiplexores de E/S acostumbran a utilizar alguno de los buses
de campo normalizados que acabamos de estudiar (Phoenix utiliza, por ejemplo, BITBUS
para lo que dicho fabricante comercializa como INTERBUS – S).

El parámetro mas critico para estos sistemas es el tiempo de respuesta, es decir, el


tiempo que tarda una señal en ser transmitida desde el lugar donde se genera y se
multiplexa hasta su demultiplexion en destino. Para la mayor parte de multiplexores este
tiempo es inferior a 10 ms. Para la mayor parte de multiplexores este tiempo es inferior a 10
ms. Para la mayoría de las señales esto no es importante, pero por descontado no es valido
para las señales de algunos contadores ni para la mayoría de señales analógicas que
intervengan en algún bucle de regulación.

266
Controladores Lógicos Programables

Aparte del tiempo de respuesta, la tabla 6.1 muestra un pequeño resumen de las
características de un multiplexor típico.

Tabla 6.1 Características tipo de un multiplexor de E/S.

6.4 REDES LAN INDUSTRIALES

Siguiendo con la descripción de los sistemas de comunicación industriales y de


acuerdo con la organización jerárquica de las propias redes, indicada en la introducción de
este capitulo, vamos a describir en los apartados siguientes el nivel de LAN.
A este nivel podemos decir que los estándares mas conocidos y de uso mas
extendido son básicamente dos: MAP y ETHERNET, aunque este ultimo no ofrece en
realidad una solución completa de red, sino que especifica únicamente el medio físico y el
control de acceso al medio (MAC).

267
Controladores Lógicos Programables

El estándar MAP nació como un producto especialmente diseñado y pensado para el


entorno industrial, mientras que ETHERNET estaba inicialmente pensado para una red de
servicios de informática y fue adoptado para algunas redes de uso industrial en un periodo
en que no existía ningún otro estándar suficientemente implantado. Actualmente y a pesar
de que en el aspecto de aplicación no hay ningún estándar, se sigue ofreciendo redes
industriales basadas en ETHERNET.

Aunque siempre es arriesgado hacer pronósticos en este campo, la tendencia actual


para redes industriales parece decantarse por el MAP y podríamos decir que, a nivel de
LAN industriales, parece que va a convertirse en el principal estándar del futuro.

6.4.1 MAP

Uno de los intentos más serios de estandarización de redes industriales, desde el


nivel de red local hasta el nivel de WAN para enlazar incluso varias factorías, fue
impulsado por General Motors, que junto con IEEE crearon el protocolo MAP
(Manufacturing Automation Protocol). Las razones que impulsaron esta iniciativa fueron
que GM preveía que para la década de los noventa debía integrar en red unos 400.000
sistemas mas o menos “dedicados”, basados en microprocesador y de distintas marcas. El
coste previsto de las interfaces de protocolo para poder enlazar todos ellos era del mismo
orden de magnitud o superior al de los propios controles o “islas” que se deseaba unir. Fue
entonces cuando decidió no incorporar ningún sistema de control que no fuera 100%
compatible con el protocolo MAP.

Dado el gran poder de compra de la firma americana y la adhesión que tuvo por
parte de otras firmas del sector del automóvil, muchos fabricantes de autómatas, CNC y
robots incorporaron a sus productos de gama alta una interfaz de comunicaciones con
protocolos MAP.

268
Controladores Lógicos Programables

6.4.2 ESTRUCTURAS DE LA RED Y PROTOCOLO

Al igual que hemos visto en otros casos, el protocolo es una pieza clave de la
comunicación y, en muchos casos, da nombre a la red. Tal es el caso de MAP, en torno al
cual se ha normalizado una estructura de comunicaciones para la industria, donde se
contemplan los tres niveles jerárquicos que hemos comentado en la introducción:

-Nivel bus de campo: MAP no cubre propiamente este nivel, sino que lo considera un nivel,
sino que lo considera un nivel inferior que se integra en la red mediante autómatas o
terminales que actúan aisladamente, pero que disponen de una pasarela entre el bus de
campo y la red MAP. Estos terminales disponen, pués, de dos canales de comunicación:
uno que conecta con el bus de campo (con un protocolo propio) y otro que enlaza con la red
MAP. De esta forma MAP se muestra lo suficientemente abierto como para poder integrar
productos de gama baja trabajado con otros protocolos.

-Nivel de Red Local: El MAP es un protocolo pensado para redes de tipo WAN; por tanto,
incluyendo los niveles de red, transporte, sesión y presentación, que le permiten el
fraccionamiento de paquetes y el encaminamiento de los mismos a través incluso de redes
conmutadas publicas o privadas. No obstante, resulta excesivamente caro y complejo para
aplicaciones de pequeña y mediana envergadura y, sobre todo, para la interconexión de
pequeños controladores a nivel industrial. En vista de ello se creo un subconjunto del
protocolo, pensado para redes industriales de tipo LAN, totalmente compatible con el
MAP. Este protocolo simplificado se conoce como MINIMAP y esta previsto para
gestionar una red local con una arquitectura tipo bus con acceso por paso de testigo (EPA,
Enhanced Protocol Architecture). El protocol se simplifica a base de eliminar las capas
intermedias del modelo OSI previstas para la conexión a redes conmutadas y queda
reducido a los niveles 1 (físico), 2 (enlace) 3 (red) y 7 (aplicación). Su ventaja respecto a
otros protocolos de gestión de redes LAN estriba en el hecho de que permite la integración
de la red local en redes WAN, simplemente añadiendo a la trama las funciones de
transporte y sesión propias del MAP.

269
Controladores Lógicos Programables

-Nivel LAN/WAN: A este nivel, la red MAP propiamente dicha cubre los siete niveles del
modelo OSI. Esta basada en un bus con trasmisión en banda ancha multicanal, que permite
interconectar los sistemas de control de planta con las aplicaciones de gestión oficina CAD,
ordenadores de planta, canales de datos, voz, imágenes, etc., con emplazamientos locales o
remotos. En este último caso esta prevista la interconexión a redes WAN de uso público a
través de estaciones o nodos que actúan de pasarela entre la red local y la red WAN.

Las características básicas de la red MAP con protocolo completo se resumen en la tabla
6.2. Los puntos más destacables son los siguientes:

-Todas las señales se transmiten moduladas en frecuencia.


-La banda de frecuencias entre 5,75 y 450 MHZ se divide en dos grandes bandas, una de
transmisión y otra de recepción. Estas, a su vez, están divididas en canales con un ancho de
banda de 6 MHZ. Cada canal de transmisión y el correspondiente de recepción están
separados entre si 192, 25 MHZ.

Tabla 6.2 Características básicas de la red MAP.

270
Controladores Lógicos Programables

-El número total de nodos puede llegar a 10,000 y la distancia entre ellos puede alcanzar
unos 10 km.
En el ámbito de este texto no entraremos en detalles de los sistemas de comunicación a
través de redes conmutadas ni de protocolos de transporte propios de redes a nivel de
WAN, por lo que estudiaremos únicamente con cierto detalle el nivel de red local
MINIMAP. En realidad, todo lo que se diga para los níveles físisco y enlace de dicha red
es compatible con MAP, ya que se trata de una simplificación del protocolo.

6.4.3 NIVEL DE APLICACIÓN.

Una de las características más destacables del estándar MAP es que da


especificaciones bastante concretas para el nivel de aplicación. En la mayor parte de redes
locales existentes con anterioridad a él existía una especie de divorcio entre las capas físicas
enlace y transporte y la capa de aplicación. El estándar MAP fue el primero que contemplo
el nivel de aplicación como una parte inseparable, de forma que al definir el protocolo se
tuvo en cuenta que pudiera dar una serie de servicios estándar al usuario.
La “compatibilidad” a nivel aplicación se basa en suponer que para los servicios a dicho
nivel están disponibles los niveles OSI inferiores y, por tanto, se prescinde de los
mecanismos concretos utilizados en la transmisión, transporte, sesión y presentación.

Los servicios de aplicación de MAP para entorno industrial tienen muchas


características en común con las de otras aplicaciones en redes locales del campo de la
ofimática, en concreto con las definidas en las recomendaciones TOP (Technical Office
Protocols). Tanto es así que actualmente se consideran un estándar común denominado
MAP/TOP.

Así pués, para lograr una total independencia del nivel aplicación con los más bajos,
éste trabaja con entes abstractos, también llamados “entes virtuales” (ficheros, arrays y
variables), aunque admite una forma mas simple llamada “datagrama” (utilizada en

271
Controladores Lógicos Programables

MINIMAP), que trabaja directamente con direcciones lógicas, presuponiendo la no


existencia del nivel red.

El estándar basado en entes virtuales implementa los siguientes servicios (de más
bajo a más alto, (figura 6.2):

-CASE (Common Application Service Elements): Constituye la interfaz con los niveles
inferiores del modelo OSI.

-FTAM (File Transfer Access Management): Se encarga de la transmisión de ficheros se ha


dibujado directamente al mismo nivel de CASE porque en muchas operaciones conecta
directamente con las capas de presentación y sesión sin usar los servicios de CASE porque
en muchas operaciones conecta directamente con las capas de presentación y sesión sin
usar los servicios de CASE. En realidad asocia direcciones lógicas a objetos (paquetes de
variables arrays, ficheros, etc.)
-Sistema operativo: Se encarga de gestionar los recursos del Terminal o nodo desde el cual
opera el usuario.

-Directorio de entes virtuales: Contiene el índice de todos los “objetos” asociados a cada
uno de los procesos soportados por la red.

-MMFS (Manufacturing Message Format Standard) y otros: Contiene el software de


tratamiento de los mensajes. En el caso de gestión de nodos unidos a procesos industriales,
el MMFS es una librería de aplicaciones estándar. El bloque puede contener librerías para
otras aplicaciones. El conjunto de estas librerías están al servicio del usuario para crear sus
propios programas.

272
Controladores Lógicos Programables

6.4.4 MINIMAP.

Tal como se ha dicho, la red MINIMAP no es más que un subconjunto de la red


MAP, cuyas características básicas se resumen en la tabla 6.3..

6.4.5 ESTRUCTURA DE LA RED.

La topología y la estructura lógica de la red MINIMAP pueden resumirse en los


siguientes puntos:

-Desde un punto de vista físico, tiene una topología de bus, con un máximo de 64 nodos,
peor desde el punto de vista lógico funciona como un anillo

Figura 6.2 MAP: Servicios de la capa de aplicación.

273
Controladores Lógicos Programables

-La codificación se hace por modulación de frecuencia en banda base y la trasmisión es de


tipo asíncrono.
-Cada estación tiene asignada una dirección única e independiente de su situación física,
formada por un numero de red (0 a 127) más un número de estación (0 a 63). El número de
red toma los valores:

● 0 para las arquitecturas monosegmento.


● 1 a 127 para las multisegmento (esto prevé la posterior integración de varias MINIMAP
en una red de rango superior de tipo MAP).

Tabla 6.3 Características básicas del MINIMAP

-Al inicializar la red, el testigo se asigna a la estación con dirección más alta y el paso de
testigo se realiza por orden decreciente de direcciones.

-Cada estación, al recibir el testigo emite sus mensajes y al terminar cede dicho testigo a la
estación con dirección inmediatamente inferior, hasta llegar a la estación 1, que cede el
testigo a la de dirección mas alta.

274
Controladores Lógicos Programables

-Si una estación recibe el testigo y no tiene mensajes para transmitir lo pasa
inmediatamente a la siguiente.

-El tiempo de posesión del testigo esta limitado a unos 800 µs, después del cual la estación
que lo tenga debe cederlo aún en el caso de no haber finalizado la transmisión de sus
mensajes. De esta forma el tiempo máximo de ciclo esta acotado.

Precisamente la última afirmación permite detectar la perdida de testigo. Esto


desencadena un procedimiento especial de inicialización, que consiste en que cada estación
intenta emitir una trama de petición de testigo. La duración de la trama es proporcional a la
dirección en la red. Si en esta fase existiera colisión en el bus se resuelve de forma que cada
estación, después de emitir la trama de petición de testigo, escucha en el bus. Si detecta
señal se inhibe y si no se apropia del testigo.

6.4.6 PROTOCOLO.

La trama del protocolo MINIMAP tiene la estructura indicada en la figura 6.3 Los
significados de cada campo y los códigos empleados se detallan en la figura 6.4 y se
explican a continuación.

Inicio de trama: El inicio de trama es un carácter especial que depende de la codificación


empleada.

Tipo de trama: El tipo de trama se codifica con 1 byte. Hay dos tipos de trama (veáse la
figura 6.4) trama MAC y trama LLC.

Direcciones destino/origen MAC: cada una de estas direcciones se compone de 6


bytes e indican el tipo de mensaje (punto a punto o difundido), los nodos de destino o de
origen, el numero de red y el tipo de servicio (palabras comunes, memoria compartida, etc.)

275
Controladores Lógicos Programables

Datos/Control LLC: MINIMAP designa este campo como “datos”, aún que el
encabezamiento de dichos datos contiene los códigos de registros o áreas de memoria de
origen y destino, así como el código de control de LLC, que son ya propios de los equipos
de origen y destino del mensaje. Así pues, la interpretación de esta parte del protocolo.

Figura 6.3 MINIMAP: Trama del mensaje.

276
Controladores Lógicos Programables

Figura 6.4 MINIMAP: Descripción de los distintos campos de la trama

277
Controladores Lógicos Programables

La hacen los propios equipos terminales, puesto que designan direcciones de


memoria internas y códigos de lectura, escritura o error que dependen de la arquitectura, de
la función y del nivel de inteligencia del Terminal.

CRC (32): Se trata del campo de control de error (“checksum”) modulo 32, Lógicamente el
CRC (32) estas formado por 4 bytes (32 bits).

Fin de trama: El osesión de fin de trama contiene al menos un bit de error y un bit que
marca si es final de mensaje o se ha interrumpido por límite de tiempo en la posesión del
testigo.

6.4.7 ROCEDIMIENTOS DE INICIALIZACION.

Como se ha dicho anteriormente, el acceso a la red MINIMAP se hace por paso de


testigo. El orden de circulación del testigo esta fijado de mayor a menor dirección de las
estaciones. No obstante, en el momento de arrancar la red o en caso de pérdida del testigo,
no existe ningún tipo de asignación previa ni por hardware ni por software y, por tanto, una
estación no conoce en realidad la dirección de la que le precede ni de la que le sigue.
Son los procedimientos de inicialización y de reinicializacion los que permiten crear
y actualizar una tabla en cada estación, indicando su antecesor y su sucesor. Estos
procedimientos de inicialización y reinicializacion del anillo lógico se ejecutaran en los
siguientes casos:
-Arranque del sistema.

-Eliminación de estaciones d e la red.

-Perdida del testigo por error.

-Periódicamente para detectar la inserción de nuevas estaciones.

278
Controladores Lógicos Programables

Procedimientos de arranque: Este procedimiento asigna el testigo por primera vez


al arrancar a la estación con dirección más alta. Ésta determinará su sucesor a través de un
procedimiento denominado ¿Quién sigue?, que repite la inicialización con el resto de
estaciones de direcciones más bajas, permitiendo determinar la de dirección más alta de
entre las restantes.
Este procedimiento se repite hasta completar todas las estaciones. Si fracasa el
¿Quién sigue? el testigo vuelve a la estación de dirección más alta.
El procedimiento de operación es el siguiente: Después del arranque cada estación
emite variaos tramas de petición de testigo de duración proporcional a su dirección en la
red. Después de cada trama comprueba si hay señal en la línea procedente de alguna otra
estación que este emitiendo. Si la encuentra, se retira automáticamente, pues ello significa
que hay una estación con trama más larga (dirección mayor). Si no escucha nada en la
línea, emite la trama correspondiente a la siguiente pareja de bits y repite el procedimiento
y así hasta quedar una sola estación que después de transmitir la última pareja de bits no
encuentra ninguna ocupando la línea. Esta será la de dirección mayor y se atribuye el
testigo, con lo cúal el anillo estará inicializando.

Para determinar la duración de cada trama se toma la dirección expresada en BCD y


se agrupan los bits dos a dos.
Se emite una trama por cada pareja de bits empezando por el grupo más significativo
(cuatro tramas en total, más una al final de confirmación). La duración de cada trama
depende del valor binario de la pareja de bits.

La figura 6.5 muestra un diagrama de tiempos con unas hipotéticas direcciones (59,
54,50 y 48) para ilustrar el procedimiento de arranque. En dicha figura se observa que la
primera trama, con duración correspondiente a la pareja de bits más significativos es de 2T
para todas las estaciones del ejemplo; por tanto, ninguna de ellas queda eliminada. En la
segunda trama es eliminada. En la segunda trama se elimina la estación 48, puesto que
después de emitir detecta señales en el bus.

279
Controladores Lógicos Programables

Figura 6.5 MINIMAP Procedimiento de inicialización al arranque.

En la tercera trama se eliminan las estaciones 50 y 54. En la cuarta solo emite la


estación 59, que al no detectar señal en el bus se asigna el testigo y emite una trama de
confirmación.
Procedimiento de eliminación de una estación: Durante la circulación normal cada
estación pasa el testigo a su sucesor y espera que este deposite una trama valida en el bus.
Si no es así, emite por segunda vez el testigo y espera de nuevo una trama valida en caso de
no recibirla da de baja a la estación que le sucede y emite una trama del tipo ¿Quién sigue?
con el número del que era su sucesor. Este mensaje será contestado por la estación siguiente
en el orden decreciente, o en caso de defecto de esta se referirá el procedimiento.

280
Controladores Lógicos Programables

Tabla 6.4 Tiempos de trama en los procedimientos de inicialización.

PARES DE BITS DURACION TRAMA EXPLORACION


00 1UNIDADES DE T
01 2 UNIDADES DE T
10 4 UNIDADES DE T
11 6 UNIDADES DE T

La figura 6.5 muestra un diagrama tipo GRACET del procedimiento de eliminación


en caso de fallo de respuesta de una estación.
Procedimiento de inserción de una estación: Periódicamente cada estación
comprueba si hay nuevas estaciones añadidas cuya dirección este comprendida entre la
suya propia y la, de su sucesor dirección base de enviar una trama del tipo “solicitud de
sucesor 1”. Si hay mas de una respuesta (varias estaciones insertadas) se envía una trama
del tipo “resolver contención” que se encargara de asignar el orden por un procedimiento
parecido al de inicialización.

Fig. 6.6 MINIMAP: Procedimiento de reiniciación por eliminación de una estación.

281
Controladores Lógicos Programables

Figura 6.7 MINIMAP: Procedimiento de reinicialización por inserción de una nueva


estación.

6.5 ETHERNET.

ETHERNET es el nombre de una red diseñada a principios de los setenta por Xerox
Corporation, para poder compartir una serie de recursos en su centro de investigación. La
técnica de comunicación fue adoptada y registrada posteriormente por la propia Xerox
junto con Digital e Intel y en la década de los ochenta se convirtió en un estándar de facto
para los niveles físicos, enlace y red de numerosas redes locales en el campo de la
ofimática.

282
Controladores Lógicos Programables

El propósito inicial de la red era el de poner a disposición de múltiples usuarios una


serie de recursos costosos como memorias masivas, impresoras de calidad, plotters, etc. De
forma que pudieran ser compartidos por todos ellos como si estuvieran directamente
conectados a su terminal.

Tabla 6.5 Características básicas de las redes de ETHERNET.

.
Niveles OSI 1,2 y 3 (el ultimo a
NIVELES IMPLEMENTADOS
través de puentes)
Cable coaxial de 50 (cable
MEDIO FISICOS ETHERNET) variantes de cable y
fibra óptica en banda ancha y
“thin wire”.

TOPOLOGIA Bus o árbol


CODIFICACION Código Manchester. Modulación de
frecuencia en banda base (variante)

10 Mbits/s
VELOCIDAD
PROTOCOLO ACCESO
NUMERO MAXIMO DE ESTACIONES CSMA/CD según IEEE 802.3
SEPARACION MAX. ENTRE NODOS
1024

2,5 Km.

Las características básicas de la red se resumen en la tabla 6.5 las prestaciones más
relevantes de la red son las siguientes:

283
Controladores Lógicos Programables

-Compatibilidad con el modelo OSI:


Esta compatibilidad cubre solamente los niveles físico, enlace y red. No se propone ningún
protocolo a nivel de transporte, sesión y aplicación.

-Compatibilidad de los nodos conectables: Esta compatibilidad se refiere solo a los niveles
físicos y de enlace. Es decir, cualquier par de terminales “compatibles” con ETHERNET
son capaces de intercambiar datos, peor no necesariamente de interpretarlos.

-Simplicidad: La gestión de la red no debe aumentar la complejidad de uso por parte del
usuario.

-Bajo coste y fácil mantenimiento: Este requisito debe respetarse tanto para el medio físico
de conexión como para las interfaces de protocolo de la red que deban incorporarse a cada
terminal.

-Agilidad de direccionamiento: La red permite la comunicación punto a punto, los mensajes


de un punto a otros varios (multicast) y los mensajes de difusión, es decir, de un punto a
todos lo demás (broadcast).

-Equidad y fiabilidad: No existe ninguna prioridad entre las distintas estaciones y, además,
la avería o desconexión de cualquiera de ellas no interfiere el funcionamiento de la red.

-Alta velocidad: La velocidad prevista en la norma básica es de 10 Mbits/s. Además, la red


no introduce ningún retardo aparte del estrictamente necesario para la transmisión de datos.

En la concepción de ETHERNET se descartaron algunas prestaciones comunes en otras


redes, tales como:

-No se prevén distintas velocidades y medios de conexión en la norma básica. Se prevé una
única velocidad (10 Mbits/s) y un tipo de cable para transmisión en dada base.

284
Controladores Lógicos Programables

Posteriormente, se han desarrollado variantes para banda ancha de mejores prestaciones y


la variante “Thin Wire” para bajas prestaciones.

-La norma no contempla el funcionamiento en modo duplex bidireccional. La


comunicación es semiduplex.

-Los únicos controles de errores previstos son: el CRC y la detección de colisión en la capa
de control de acceso al medio (MAC).

-No se establecen reglas de prioridad entre estaciones, aunque si están previstos varios
niveles de prioridad entre mensajes.

-El protocolo no ofrece ningún control de inviolabilidad. Cualquier terminal conectada a la


red puede como mínimo escuchar e intentar acceder a ella. Este control debe, pues,
ejercerlo el software.

Así pues, todas estas prestaciones han ser previstas al margen del estándar y, por
consiguiente, esto puede originar problemas de incompatibilidad.

6.5.1 ESTRUCTURA DE LA RED.

a) MEDIO FÍSICO:

El medio de conexión estándar es, como se ha dicho, un cable coaxial de 50 Ω,


conocido como cable ETHERNET, previsto para la transmisión en banda base. La longitud
máxima, sin repetidores, con este tipo de conexión es de 500 m y cada nodo debe estar
separado del resto al menos 2,5 m.
Existe también una variante más económica llamada de cable delgado (Thin Wire), que
utiliza cable RG58 c/u, que permite segmentos de hasta unos 180 m.

285
Controladores Lógicos Programables

Tenemos también la posibilidad de transmisión en banda ancha multicanal a través


de cable o fibra óptica. Para ello debe utilizarse una interfaz especial (MODEM)
denominada DECOM para la red estándar y DESTA para la versión de cable delgado.
En cualquiera de estos medios, la conexión debe hacerse en ciertos puertos
concretos del cable para evitar que la carga distorsione la señal. Para ello el cable va
adecuadamente marcado. Además deben disponer de terminaciones para evitar que se
degrade la señal por reflexión.

Figura 6.8 Interfaz de un nodo ETHERNET.

b) INTERFAZ CON EL BUS:

Cada estación se conecta a la red mediante un controlador y un tranceptor. Ambos


bloques pueden estar físicamente incluidos en una tarjeta propia de la estación o constituir
bloques separados (figura 6.8) En cualquier caso sus funciones son:

286
Controladores Lógicos Programables

Tabla 6.5 Características básicas de las redes ETHERNET

Niveles OSI 1,2 y 3 (el ultimo a


NIVELES IMPLEMENTADOS
través de puentes)
Cable coaxial de 50 (cable
MEDIO FISICOS ETHERNET) variantes de cable y
fibra óptica en banda ancha y <<thin
wire>>.

TOPOLOGIA Bus o árbol


CODIFICACION Código Manchester. Modulación de
frecuencia en banda base (variante)

10 Mbits/s
VELOCIDAD
PROTOCOLO ACCESO
NUMERO MAXIMO DE ESTACIONES CSMA/CD según IEEE 802.3
SEPARACION MAX. ENTRE NODOS
1024

2,5 Km.

Transceptor. Este bloque es el más próximo a la conexión en el bus. Dispone de un


sistema de detección de portadora que proporciona el estado de ocupación del bus y se
encarga del aspecto más físico de la conexión, básicamente de la modulación y
desmodulación.

Controlador. Este bloque es el más próximo al Terminal y se encarga de controlar


el acceso al medio y de la codificación y decodificación de datos. Antes de transmitir
genera automáticamente una orden de LBT (Listen Befote Talking, escuchar antes de
hablar), que permite detectar la ocupación del bus. Durante la transmisión pone en marcha
un procedimiento denominado LWT Listen “While Talking”, escuchar mientras se habla
que, que detecta la colisión que pudiera producirse a causa de los retardos de propagación
del LBT. Si dos estaciones intentaran transmitir a la vez, el tranceptor detecta la colisión
por el nivel de señal eléctrica y el LWT interrumpe la transmisión.

287
Controladores Lógicos Programables

c) TOPOLOGIA Y ESTRUCTURA LOGICA:

La topología de la red ETHERNET se basa en una estructura en bus o en árbol. Los


nodos de partida de las ramificaciones se denominan normalmente repetidores y tienen la
misión de regenerar la señal del bus, con objeto de aumentar su alcance.
Sin embargo, desde un punto de vista lógico hay que considerar este tipo de red
como un bus único, donde los repetidores propagan también las detecciones de colisión.
El acceso al bus se detecta por el método CSMA/CD, de acuerdo a la norma IEEE
802.3. A este respecto debe advertirse que dicho método no es exclusivo de ETHERNET y
que, por tanto, no puede designarse con este nombre a una red por el simple hecho de estar
basada en la norma indicada.

Figura 6.9 ETHERNET: Topología en árbol.

288
Controladores Lógicos Programables

Entre dos nodos no puede haber más de dos repetidores para evitar excesivos
retardos en la detección de colisión. Para resolver este problema se propone otro tipo de
bloque denominado puente ETHERNET. Este dispositivo dispone de un buffer de
memoria propio donde se recibe la información y se retransmite cuando el medio esta libre.
Esto permite interconectar dos o mas redes locales en lo que se denomina una red
extendida. Puede decirse, pues, que el citado dispositivo es el encargado de gestionar el
nivel OSI 3 (red) en la ETHERNET.

Aunque no forma parte propiamente de la estructura ETHERNET, Digital previó la


conexión de dicha red a otras redes locales o incluso a redes de área amplia (WAN), tales
como DECNET, SNA, X.25, etc.

6.5.2 PROTOCOLO.

El protocolo ETHERNET esta previsto únicamente para gestionar el nivel de


enlace. El nivel red debe ser gestionado, tal como se acaba de indicar, a nivel de puentes
entre redes homónimas y/o pasarelas con otras redes, pero, en cualquier caso, no forma
parte del estándar ETHERNET.

Según lo que acabamos de decir, lo trama podrá ser relativamente simple, puesto
que se trata de direccional solo dentro de una red local con un máximo de 1024 nodos. La
figura 6.10 muestra el formato básico de dicha trama. Los significados de cada uno de los
campos se detallan a continuación:

-Preámbulo: El propósito de este campo es la sincronización de bits. Para ello el preámbulo


consiste en repetir los caracteres AAn, es decir una secuencia 10101010…, con un total de
7 caracteres.

289
Controladores Lógicos Programables

-Inicio. El octavo carácter es ABh (10101011B) e indica el inicio de mensaje.

-Dirección de destino: Este campo puede tener una longitud de 2 o 6 bytes (generalmente
6) e indica la dirección física o lógica de los nodos destino para la trama. Téngase en cuenta
que la ETHERNET básica soporta solo 1024 nodos, pero, como se ha dicho pueden
utilizarse “nodos puente” con su propia gestión de encaminamiento (routers) para enlazar
varias redes y, por tanto, no debe extrañarnos que la dirección este formado por 48 bytes.

-Si el primer bit es 0, los que siguen indican la dirección lógica de un nodo destino único
(comunicación punto a punto).

-Si el primer bit es 1, los que siguen indican un rango de direcciones de destino (conexión
multipunto).

-Si todos los bit son 1, indica que se trata de un mensaje de difusión, donde el destino son
todos los nodos.

-Dirección de origen: El campo puede estar formado por 2 o 6 bytes (generalmente 6) e


indica la dirección del nodo origen.

-Tipo de trama: En realidad la norma IEEE 802.3 utiliza este campo de 2 bytes para
indicar la longitud del campo de datos, pero ETHETNET lo emplea para codificar distintos
formatos del campo de datos.

-Campos de datos: Este campo contiene en realidad toda la información, datos, órdenes,
direcciones físicas de memoria o registros de cada nodo, etc. No obstante, todo ello es
transparente para el protocolo ETHERNET, que no separa a analizar el contenido de dicho
campo ni a interpretarlo.

290
Controladores Lógicos Programables

Figura 6.10 ETHERNET: Formato general de una trama

La longitud máxima del campo de datos es d e1500 bytes. Algunos estándares fijan
además una longitud mínimo de 46 bytes y, en caso de no existir datos suficientes, se
insertan caracteres NUL (00h).

-CRC (32): El CRC se calcula mediante un polinomio del tipo:

X32+X26+X22+X16++X12+X11+

+X10+X8+X7+X5+X4+X2+1

6.5.3 PROCEDIMIENTOS DE INICIALIZACION.

El método de acceso empleado por ETHERNET no requiere ningún procedimiento


especial para inicializar, insertar o eliminar una estación, puesto que el acceso es por
colisión. Para redes con poco trafico esto da una velocidad de respuesta aceptable; pero
cuando la cantidad de datos a intercambiar es grande, el rendimiento disminuye
drásticamente.
Para optimizar el tiempo de respuesta en redes locales y evitar intentos de acceso a
estaciones no disponibles, puede implementarse un protocolo adicional de forma que cada
estación conoce directamente las direcciones físicas de los nodos disponibles. Esta opción
suele ser ampliamente usada en las comunicaciones entre autómatas y un “host” central.

291
Controladores Lógicos Programables

RESUMEN.

En el entorno industrial nos encontramos con una serie de equipos digitales tales
como controladores, ordenadores de proceso y de gestión, etc., con grados de complejidad
muy diversos según su función. Tal como se ha dicho, la integración en red de todos ellos
comporta ventajas, pues permite situar la “inteligencia” cerca del proceso, aprovechar al
máximo los recursos y obtener el máximo de información útil, tanto desde el punto de vista
técnico y de control como desde el punto de vista de gestión de la fabricación.

Todo ello ha llevado a la concepción de una estructura optima de las redes para
obtener todas las ventajas mencionadas con un mínimo de costo y complejidad. Esta
estructura óptima contempla tres niveles jerárquicos: bus de campo, LAN y LAN/WAN.

Para cada uno de estos niveles, el mercado ofrece, una serie de productos, de
distintas fuentes, que solucionan una parcela de control y gestión. Estos productos han
nacido por separado y han sido concebidos pensando en solucionar una “parte” del proceso,
pero sin pensar en el “todo”, lo cuál dificulta actualmente su integración en red. La solución
para tales sistemas, concebidos como aislados, consiste en construir “pasarelas” que
permitan la comunicación, pero esto ocasiona un gran costo económico y técnico.

Lo deseable, vistas las premisas anteriores, serian definir un estándar de red que
permitiera la integración de productos “compatibles” de distintos fabricantes. Dado que
técnicamente existen varias soluciones validas para dicho estándar, se hace difícil que cada
fabricante renuncie a su propia filosofía y a productos ya implantados a favor de un nuevo
estándar y el resultado es que no podemos hablar de una única, sino de varias soluciones,
todas ellas validas, pero “incompatibles” entre sí.

292
Controladores Lógicos Programables

A lo largo de la unidad hemos ido repasando las soluciones que hemos creído que
tiene un mayor grado de implantación dentro de cada uno de los niveles jerárquicos antes
mencionados.

Probablemente se necesitarán todavía algunos años para que se perfile y se


consolide claramente un estándar de red industrial y el resultado puede que no sea
exactamente ninguno de los existentes actualmente. No obstante, con la perspectiva actual,
parece claro que la estructura MAP va a imponerse para grandes redes y que a nivel de
campo, seguirán existiendo dos o tres buses con máxima implantación y otra serie de
productos cuya conexión a la red deberá hacerse por medio de “pasarelas”.

293
Controladores Lógicos Programables

BIBLIOGRAFÍA

1.- Joseph Balcells/ José. L. Romeral. “AUTOMATAS PROGRAMABLES”, Edición


original. Editorial Alfaomega.

2.- Alejandro Porras Criado / Antonio P. Montanero Molina.


“AUTOMATAS PROGRAMABLES”, Editorial Mc. Graw Hill.

3.- Manual Siemens.


Simatic AG S5-100U
Edición 2.

4.- Manual Siemens.


Simatic Step 7- Micro /Dos
Cat. C7900-G7078-C206-03
Edición 3.

5.- www.siemens.com.mx

294

También podría gustarte