Sie sind auf Seite 1von 90

 

Programacion de PLC 
Apuntes de la cátedra 
 
 
Control Automático – 2009-
U.T.N. F.R.G.P.
Ing. Ricardo Crivicich
2

1-AUTOMATISMOS 4
Lógica Cableada y Lógica Programada 5
Conclusiones 6
2.- SENSORES TRANSDUCTORES Y ACTUADORES 8
Transductores 8
Actuadores 11
3.- PLC 13
Estructura del PLC 13
Configuración de Hardware del PLC 13
Microprocesador 13
Memoria 16
Unidades de E/S 16
Características importantes de las Entradas y Salidas del PLC 17
Salidas Digitales 19
Manejo de valores analógicos en el PLC 20
Manejo Interno de las variables analógicas 21
Escalamiento de valores analógicos 23
Filtrado de valores analógicos 25
Interfaces 26
Configuración externa del PLC 26
4.-PROGRAMACIÓN DEL PLC 28
Estructrura de datos en el PLC 28
Representación de la información binaria 29
Constantes, Variables y Direccionamiento en los PLC’s 31
Constantes 31
Variables 32
Operandos 32
Direccionamiento 32
Formato de acceso a las zonas de operandos 34
Direccionamiento de entradas y salidas 35
Direccionamiento Fijo 36
Direccionamiento Variable 37
Direccionamiento Simbólico 38
Elaboracion propiamente dicha del programa 38
Operaciones Básicas 40
Operaciones combinacionales 41
Ejemplos de lógica combinacional 42
Combinación AND 42
Combinación OR 43
AND antes de OR 43
OR antes de AND 44
Operaciones de tiempo 44
Temporizador con retardo a la conexión 44
Temporizador con retardo a la desconexión 45
Temporizador por impulsos 45
Temporizador con retardo a la conexión memorizado 46
Temporizador de impulso memorizado 46
Exactitud del valor de un temporizador 46
Operaciones de contaje 47
Contador ascendente 47
Contador ascendente/descendente 47
Contador descendente 47
Dos ejemplos básicos 48
Ejemplos de programación 48
Marcas y Flancos 54
Temporizadores y Contadores 61
Contadores 65
5.-PROGRAMACIÓN DEL S7-200 67
Arbol de operaciones 67

Control Automático / Programación PLC Apuntes de la Cátedra


3

Area de programación 68
Barra de navegación 69
Area de información 69
Elaboración de programas en MicroWIN 69
Aclaraciones pertinentes 69
Ajustar la comunicación 69
Establecer el hardware a utilizar 71
Ajustes de la CPU 72
Puertos de comunicación 73
Elementos configurables 73
Areas remanentes 73
Contraseña 74
Configurar salidas 74
Filtrar entradas 74
Elaboración del programa 75
Ingreso del programa en la PC 75
Reglas básicas para el diseño de los segmentos 76
Ingreso de operaciones en los segmentos 77
Cargar el programa en el PLC 79
Programación simbólica 83
Seguimiento y depuración de programas 85
Observación del programa 85
Estado de ejecución 86
Estado de fin de ciclo 86
Observar y/o forzar una variable cualquiera 87
Utilidades para el seguimiento y depuración de programas 89
Plano de ocupación 89

Control Automático / Programación PLC Apuntes de la Cátedra


4

1-AUTOMATISMOS
¿Qué es un automatismo?

Para responder a esta pregunta es necesario pensar que los procesos físicos y/o
químicos involucrados en la producción de materias primas y/o productos
terminados no difieren si mi proceso productivo está automatizado o no (para tornear
una pieza se requiere de una herramienta de corte y un torno, pero este podrá ser
manual o CNC), en consecuencia podemos definir como automatismo a: “todo
dispositivo físico y/o lógico que realiza las funciones de mando y control de
una máquina o proceso”.

Mando porque el sistema de automatización será el encargado de ordenar las


acciones que deba ejecutar la máquina o proceso para obtener el resultado buscado
(que podrá ser un producto o una acción determinada)

Control porque las acciones ordenadas por el sistema de automatización no pueden


ser ejecutadas en forma anárquica, sino que deberán seguir un orden lógico y
además las variables involucradas en el proceso deben ser mantenidas dentro de
límites perfectamente establecidos, de forma que en todo momento se puedan
garantizar condiciones mínimas de calidad, eficiencia y seguridad.

En consecuencia, para que el proceso se pueda ejecutar de la forma más eficiente


posible, deberá existir necesariamente un intercambio de información entre el
dispositivo de comando y la máquina o proceso.
Así es como entonces se introduce el concepto de bucle o lazo. El automatismo no
sólo enviará órdenes para que los distintos actuadores ejecuten sus acciones, sino
que recibirá información de la máquina o proceso comandado. Estas informaciones
(que se obtendrán de los sensores y transductores presentes en el proceso)
permitirán que el equipo de control tome las decisiones necesarias para ejecutar la
lógica inherente al proceso a controlar, emitir alarmas vinculadas a valores de
proceso, verificar enclavamientos, condiciones de seguridad, etc.

En un esquema simplificado:

Panel de comando señales de proceso


(HMI, pulsadores,
interruptores, SCADA,
etc.)
Sensores y Resultado
transductores o
Producto
Sistema de Máquina o proceso
Automatización

Actuadores

Visualización

(HMI, lámparas,
display, SCADA etc.)

Control Automático / Programación PLC Apuntes de la Cátedra


5

1.1.-LOGICA CABLEADA Y LOGICA PROGRAMADA

A la hora de construir una solución para un automatismo existen básicamente 2


alternativas, lógica cableada o lógica programada, cada una de ellas con ventajas e
inconvenientes, si bien existe una tendencia creciente hacia la utilización de la lógica
programada debido a la reducción de los costos de los equipos y a una cada vez
mayor simplificación en la programación de los mismos.
Se entiende por supuesto que cuando se habla de lógica nos estamos refiriendo a
las secuencias y ordenamientos de las acciones del proceso que son necesarios
para obtener el resultado buscado, en consecuencia al referirnos a la “lógica
cableada” o a la “lógica programada” simplemente estamos tratando de significar la
forma en que se consigue el ordenamiento y secuencia antedichos ( el bloque
“sistema de automatización” de la figura anterior ), es obvio por supuesto que los
sensores, transductores, actuadores e interfaces estarán presentes en ambos casos
(eventualmente con variaciones según lo requieran los equipos utilizados )

- Lógica cableada

En la lógica cableada el automatismo se obtiene por medio de la utilización de


componentes independientes adecuadamente interconectados ( de ahí el nombre de
lógica cableada ), de forma que a través de dicha conexión quede configurada la
lógica de funcionamiento del automatismo, como elementos utilizados en este tipo
de lógica podemos citar:

► Relés auxiliares
► Temporizadores
► Controladores simples
► Plaquetas electrónicas “ad-hoc”

Ventajas de la lógica cableada

● Económica ( en automatismos simples)


● No requiere de especialistas para programarla

Inconvenientes de la lógica cableada

● Falta de flexibilidad, es decir el automatismo una vez construido es apto para una
sola tarea y cualquier modificación posterior es dificultosa ya que se requiere en
general reconexiones y/o agregados de componentes.
● Puesta en marcha complicada, pues cualquier omisión en el diseño obliga al
agregado de componentes, lo que trae aparejado tiempos de puesta en marcha
mayores y el resultado final es muchas veces desprolijo desde el punto de vista del
conexionado.
● Mayor tamaño de los armarios o tableros que contienen los equipos de
automatización.

- Lógica programada

Control Automático / Programación PLC Apuntes de la Cátedra


6

En la lógica programada el automatismo se obtiene por medio de la utilización de


controladores programables ( PLC’s ) o bien con PC’s dotadas de placas de señales
adecuadas y la lógica de funcionamiento se obtiene a través de programación dentro
del PLC o PC ( no existen conexiones o contactos físicos )

Ventajas de la lógica programada

● Fundamentalmente flexibilidad, la modificación de las condiciones del proceso no


requiere dificultosas alteraciones en la estructura de “Hardware” de la máquina sino,
en muchos casos, un simple cambio en la programación.
● Por lo anterior, menor tiempo de ejecución y puesta en marcha de los proyectos.
● Menor mantenimiento, al haber menor cantidad de piezas móviles y contactos
● Debido a lo anterior, mayor confiabilidad del sistema
● Reducción de costos ante la repetición de la máquina o proceso ( el programa
simplemente se copia.

Desventajas de la lógica programada

● Mayor costo inicial en algunos casos


● Se requiere personal mas calificado para la programación y puesta en marcha
● Se necesita equipamiento auxiliar para la programación y puesta en marcha
(Programadores, Software, etc.)

1.2.- CONCLUSIONES

En definitiva la automatización basada en soluciones de lógica programada, ya sea


de la fábrica completa o solo de algunos procesos, trae aparejada una serie de
ventajas que se pueden resumir en las siguientes consideraciones:

►Menor Mantenimiento
Los sistemas programables basan su funcionamiento en un “programa” adecuado
que representa el algoritmo o lógica de control, este algoritmo de control se
construye sobre la base de elementos virtuales (rutinas de programa, lógicas
booleanas, etc.), en los cuales no intervienen elementos físicos tales como relés
auxiliares, llaves, etc., por lo que el posible deterioro consecuencia del uso es
prácticamente inexistente, esto hace que las tareas de mantenimiento se reduzcan
sensiblemente respecto de sistemas convencionales.

►Mayor Confiabilidad y Calidad


Como consecuencia de lo antedicho el sistema se vuelve inherentemente más
confiable ya que lo que suele generar fallas en el sistema son los elementos físicos
que aquí se ven sensiblemente reducidos, por otro lado al no depender el
mantenimiento de los valores de las variables de la decisión del operador los valores
de las mismas no solo se ajustan más estrechamente a los valores especificados
sino que se mejora la repetibilidad, es decir mejora la exactitud y la precisión del
proceso productivo, conceptos importantes vinculados a la calidad de producto.

►Menor tiempo de ejecución y puesta en marcha


Al reducirse la cantidad de elementos involucrados en la automatización, los tiempos

Control Automático / Programación PLC Apuntes de la Cátedra


7

de cableado de los tableros de control se reducen notablemente y como además


gran parte de los programas de control se pueden elaborar previamente ( incluso
simulando las condiciones del proceso en una PC) el tiempo que se debe dedicar al
ajuste necesario en la puesta en marcha también disminuye, y en definitiva el tiempo
necesario desde el inicio hasta la finalización del proyecto de automatización resulta
siempre menor que con una solución tradicional.

►Flexibilidad ante los cambios


Las modificaciones de las condiciones del proceso no requiere dificultosas
alteraciones en la estructura de “Hardware” de la máquina sino, en muchos casos,
un simple cambio en la programación, por lo que se reducen los tiempos y costos
involucrados en los cambios de producto.

►Reducción de tiempos muertos


Como resulta obvio las reducciones del mantenimiento, la mayor confiabilidad y la
flexibilidad de los sistemas automatizados reducen los tiempos muertos, con lo que
se mejora la ecuación de costos de la empresa.

►Reducción del “scrap”


Como consecuencia directa del mejoramiento de las condiciones generales del
proceso se genera un mayor aprovechamiento de las materias primas con la
consecuente reducción de pérdidas innecesarias de las mismas y una sustancial
disminución de productos “no conforme”.

EN DEFINITIVA………..

►Reducción de costos

Nota:

Independientemente de cual sea el tipo de lógica utilizada es necesario resaltar que


el hecho de automatizar una máquina o proceso tiene como límites de rendimiento
y/o calidad los propios límites físicos de dicha máquina o proceso, es decir la
automatización facilitará y/o mejorará el proceso hasta dichos límites, por lo cual no
es infrecuente que al encarar un proyecto de automatización sea necesario evaluar
si es conveniente la reingeniería de la máquina o proceso en función de lograr un
mayor aprovechamiento del equipo existente, esto por supuesto de que además
será necesario en la mayoría de los casos el agregado de elementos adicionales,
como fines de carrera, sensores magnéticos, etc., que me proporcionen señales
necesarias para el control del proceso.

Control Automático / Programación PLC Apuntes de la Cátedra


8

2.- SENSORES TRANSDUCTORES Y


ACTUADORES

TRANSDUCTORES

INTRODUCCION
En todo proceso de automatización es necesario captar las magnitudes de planta,
para poder así saber el estado del proceso que estamos controlando. Para ello
empleamos los sensores o transductores, términos que se suelen emplear como
sinónimos aunque el transductor engloba algo más amplio.
Se puede definir un transductor como un dispositivo que convierte el valor de una
magnitud física en una señal eléctrica codificada, ya sea en forma analógica o
digital. No todos los transductores tienen por qué dar una salida en forma de señal
eléctrica (ej. un termómetro), pero para aplicaciones industriales como las que nos
ocupan suele ser lo más frecuente.

2.1 - ESTRUCTURA
Si nos limitamos a los transductores que se emplean para conectar a sistemas de
automatización como los que nos ocupan ( PLC, PC con placas de adquisición, etc.
), a través de las interfaces adecuadas, podemos distinguir las siguientes partes
que los componen:
► Elemento sensor o captador. Convierte las variaciones de una magnitud
física en variaciones de una magnitud eléctrica (señal).
► Tratamiento de la señal. Si existe, realiza la función de modificar la señal
obtenida para obtener una señal adecuada (filtrado, amplificación, etc).
► Etapa de salida. Comprende los circuitos necesarios para poder adaptar la
señal al nivel requerido para la carga exterior.

2.2 - CLASIFICACION

2.2..1 - Según el tipo de señal de salida


Es decir según la forma de codificar la magnitud medida, podemos realizar la
siguiente clasificación:
► Analógicos: aquellos que proporcionan un valor de tensión o corriente entre
un rango previamente fijado (normalmente 0-10 V, 0-5 v o 4-20 mA). Es decir
que ante una variación de la variable de entrada dentro de los limites de
medida del mismo, la salida entrega una señal eléctrica dentro del rango
antedicho
► Digitales: aquellos que proporcionan una señal codificada en pulsos o en
alguna codificación digital (como BCD, binario, etc).
► Todo-nada: aquellos que únicamente poseen dos estados, los cuales están
separados por un valor umbral de la variable detectada.

Control Automático / Programación PLC Apuntes de la Cátedra


9

2.2..2 - Según el tipo de magnitud física a detectar

► Posición lineal o angular.


► Desplazamiento o deformación.
► Velocidad lineal o angular.
► Aceleración.
► Fuerza y par.
► Presión.
► Caudal.
► Temperatura.
► Presencia o proximidad.
► Táctiles.
► Intensidad lumínica.
► Sistemas de visión artificial.
Otro tipo de clasificación es diferenciar entre sensores activos o pasivos. Los
sensores pasivos requieren de una alimentación para efectuar su función, mientras
que los activos generan la señal sin necesidad de alimentación externa.
2.4 – TABLA RESUMEN DE TRANSDUCTORES

Magnitud Transductor Características


detectada
Posición lineal o Potenciómetro Analógico
angular Encoders Digital
Sincro y resolver Analógico
Desplazamiento o Transformador diferencial Analógico
deformación Galga extensiométrica Analógico
Velocidad lineal o Dinamo taquimétrica Analógico
angular Encoders Digital
Detector inductivo u óptico Digital
Aceleración Acelerómetro Analógico
Sensor de velocidad + calculador Digital
Fuerza y par Medición indirecta por galgas o trafos Analógicos
diferenciales
Presión Membrana + detector Analógico
desplazamiento Analógico
Piezoeléctrico
Caudal De turbina Analógico
Magnético Analógico
Temperatura Termopar Analógico
Resistencias PT100 Analógico

Control Automático / Programación PLC Apuntes de la Cátedra


10

Resistencias NTC Analógico


Resistencias PTC Analógico
Bimetálicos Todo-nada

Presencia o Inductivo Todo-nada/analógico


proximidad Capacitivo Todo-nada
Optico Todo-nada/analógico
Ultrasónico Analógico
Táctil Matriz de contactos Todo-nada
Piel artificial Analógico
Matriz capacitiva, piezoeléctrica u Todo-nada
óptica
Sistemas de visión Cámaras CCD Cámaras de video y Procesamiento digital
artificial tratamiento de imagen por puntos o pixels

Control Automático / Programación PLC Apuntes de la Cátedra


11

ACTUADORES

INTRODUCCIÓN

Los actuadores constituyen el otro extremo de la cadena en los sistemas de


control, es decir así como los sensores y transductores convierten una
magnitud física en una señal eléctrica adecuada para ingresarla en los
sistemas de automatización, los actuadores realizan el proceso inverso
convirtiendo una señal eléctrica que llega desde el sistema de control en una
magnitud física determinada, necesaria para influir sobre las condiciones del
proceso controlado.
La magnitud física de salida puede ser básicamente:

► Mecánica ( fuerza o desplazamiento)

► Térmica ( calentamiento)

► Eléctrica ( control de potencia )

2.5 CLASIFICACION DE LOS ACTUADORES

2.5.1 Según la forma de la señal de control

► Todo-nada: aquellos que únicamente poseen dos estados, los cuales están
separados por un valor umbral de la señal aplicada.

► Analógicos: aquellos que proporcionan un valor de salida con variación


continua entre un rango previamente fijado . Es decir que ante una variación de
la señal de entrada dentro de los limites establecidos para la misma (
generalmente 0-5 v, 0-10 V, 4-20 mA ) la salida entrega un valor proporcional a
la misma dentro del rango antedicho.

► Digitales: aquellos que proporcionan una salida proporcional a una señal


codificada en pulsos o en alguna otra codificación digital (BCD, binario, PWM,
etc)

2.5.2 Según el dispositivo primario de control

► Motorizados

► Por solenoides

► Piezoeléctricos

► Por resistencias eléctricas

2.5.3 Según la fuente de poder

Control Automático / Programación PLC Apuntes de la Cátedra


12

► Neumáticos

► Eléctricos

► Hidráulicos

Algunos actuadores típicos que se encuentran en las automatizaciones de


procesos son por ej:

- Válvulas de control
- Válvulas proporcionales
- Servo-válvulas
- Contactores
- Cilindros lineales y de rotación ( hidráulicos o neumáticos)
- Variadores de velocidad

Control Automático / Programación PLC Apuntes de la Cátedra


13

3.- PLC
INTRODUCCION

Para la solución de los diferentes problemas de automatización que se


presentan en la práctica existen diferentes alternativas, de las cuales una de
las más utilizadas es la que tiene como base a los PLC’s ya sea en forma
independiente o vinculados a sistemas más complejos que podrán incluir
aplicaciones SCADA, redes de comunicación, etc.
Es por tanto necesario, si se quiere desarrollar cualquier automatismo con un
mínimo de idoneidad, tener un conocimiento más o menos claro de las
características, la forma de operar, las limitaciones, etc., de los PLC’s, de forma
tal que ante un problema dado se puedan determinar las características de los
equipos a utilizar.

3.2 ESTRUCTURA DEL PLC

3.2.1.- Configuración de Hardware del PLC

Un esquema de bloques básico de la configuración del hardware de un PLC


típico puede ser el siguiente:

Memoria
RAM/ROM
Microprocesador
Reloj Fuente de alimentacion

BUS

Registros y unidades de E/S


Expansion de E/S Expansion de bus

Acopladores
E/S serial
de E/S

Sensores RS232
Actuadores RS485

3.2.2.- Microprocesador (CPU)

Control Automático / Programación PLC Apuntes de la Cátedra


14

La CPU es el corazón del autómata programable. Es la encargada de ejecutar


el programa de usuario mediante el sistema operativo (es decir, el programa de
usuario es interpretado por el sistema operativo). Sus funciones son:
 Vigilar que el tiempo de ejecución del programa de usuario no exceda un
determinado tiempo máximo (tiempo de ciclo máximo). A esta función se
le suele denominar Watchdog (perro guardián).
 Ejecutar el programa de usuario.
 Crear una imagen de las entradas, ya que el programa de usuario no
debe acceder directamente a dichas entradas.
 Renovar el estado de las salidas en función de la imagen de las mismas
obtenida al final del ciclo de ejecución del programa de usuario.
 Chequeo del sistema.
Para ello el PLC va a poseer un ciclo de trabajo, que ejecutará de forma
continua:

Imagen de proceso
de las entradas LECTURA ENTRADAS

Ejecucion del programa


de usuario

Imagen de proceso
de las salidas ESCRITURA SALIDAS

Funciones de
comunicacion

WATCHDOG

El PLC va a ejecutar nuestro programa de usuario en un tiempo determinado,

Control Automático / Programación PLC Apuntes de la Cátedra


15

el cual va a depender sobre todo de la longitud del programa. Esto es debido a


que cada instrucción tarda un tiempo determinado en ejecutarse, por lo que en
procesos rápidos será un factor crítico a tener en cuenta.
En un sistema de control mediante PLC tendremos los siguientes tiempos:
1.Retardo de entrada.
2. Vigilancia y exploración de las entradas.
3. Ejecución del programa de usuario.
4. Transmisión de las salidas.
5. Retardo en salidas.
Los puntos 2,3 y 4 sumados dan como total el tiempo de ciclo del autómata.
Tras este ciclo es cuando se modifican las salidas, por lo que si varían durante
la ejecución del programa tomarán como valor el último que se haya asignado.
Esto es así debido a que no se manejan directamente las entradas y las
salidas, sino una imagen en memoria de las mismas que se adquiere al
comienzo del ciclo (2) y se modifica al final de éste (retardo).
El tiempo total que emplea el PLC en recorrer este ciclo se lo denomina tiempo
de ciclo o tiempo de scan, y precisamente el watchdog es quien se encarga de
verificar que el mismo no supere determinados límites, ya que si esto es así se
deba probablemente a alguna falla ( el CPU se “colgó” ).
Para evaluar la capacidad de procesamiento del PLC se suele medir el tiempo
que demora este en procesar las instrucciones, especificando entonces el
fabricante la velocidad de trabajo en μs/instrucción binaria o bien en ms/1000
instrucciones, con lo cual se puede en función del programa desarrollado
determinar aproximadamente el tiempo de ciclo del equipo.

Imagen del proceso

El PLC al ejecutar el programa de usuario, básicamente determina cual es el


estado actual de las entradas, la información que recibe a través de las
interfases de comunicación, las señales desde los módulos especiales, etc. y
en función de estos datos y de la lógica que le ha sido programada cambia los
estados de las salidas, envía información a través de las interfases de
comunicación, etc., es decir controla el proceso.
Ahora bien, todo este proceso de ejecución del programa necesita, como ha
quedado dicho, de un lapso de tiempo determinado, lo cual plantea la siguiente
pregunta, ¿qué pasa si durante dicho lapso de tiempo cambia el estado de una
entrada o salida?, y la respuesta es que dicho cambio puede generar
problemas en la lógica del programa.
Imaginemos que el estado de una entrada determinada se utiliza en mas de un
punto del programa de usuario, entonces si la entrada pasó de abierta a
cerrada en el medio de estos dos puntos, el PLC tomará primero una decisión
en función de la entrada abierta y luego en función de la entrada cerrada,
evidentemente tal situación puede generar un conflicto en la lógica del sistema,
con la consecuencia de que el proceso podría verse perjudicado.
Es por esta razón que en los PLC se utiliza el criterio de Imagen del Proceso ,
el que básicamente consiste en lo siguiente:

Control Automático / Programación PLC Apuntes de la Cátedra


16

a) Se leen los estados de las entradas


b) Dichos estados se almacenan en una zona de memoria prefijada
(Imagen de proceso de las entradas) ,es decir se “congela” una imagen
del estado de dichas entradas.
c) Se ejecuta el programa de usuario el cual lee el estado de entradas
desde esta memoria intermedia y no directamente de las entradas, es
decir lee la imagen.
d) En función de la lógica programada se escriben los estados de las
salidas en otra zona de memoria prefijada (Imagen de proceso de las
salidas), es decir se “congela” una imagen del estado que deberán tener
las salidas.
e) Finalizado el recorrido del programa de usuario se escribe la imagen de
proceso de las salidas en las salidas físicas del PLC.

Se consigue de esta forma entonces evitar las ambigüedades que pudieran


surgir por el cambio de estado de entradas y/o salidas durante la ejecución del
programa.

3.2.3.- Memoria

Dentro del PLC y directamente vinculada a la CPU vamos a disponer de un


área de memoria, la cual emplearemos para diversas funciones:
 Memoria del programa de usuario: aquí introduciremos el programa que
el autómata va a ejecutar cíclicamente.
 Memoria de la tabla de datos: se suele subdividir en zonas según el tipo
de datos (como marcas de memoria, temporizadores, contadores,
imagen del proceso, etc.).
 Memoria del sistema: aquí se encuentra el programa en código máquina
que monitoriza el sistema (sistema operativo o firmware). Este programa
es ejecutado directamente por el microprocesador/microcontrolador que
posea el equipo.
 Memoria de almacenamiento: se trata de memoria externa que
empleamos para almacenar el programa de usuario, y en ciertos casos
parte de la memoria de la tabla de datos. Suele ser de uno de los
siguientes tipos: EPROM, EEPROM, o FLASH.
Cada autómata divide su memoria de esta forma genérica, haciendo
subdivisiones específicas según el modelo y fabricante.

3.2.4.- Unidades de E/S (Entrada y salida de datos)


Generalmente vamos a disponer de dos tipos de E/S:

- Digitales.
- Analógicas.

Control Automático / Programación PLC Apuntes de la Cátedra


17

Las E/S digitales se basan en el principio de todo o nada, es decir o no


conducen señal alguna o poseen un nivel mínimo de tensión, umbral a partir
del cual conducen (indicando en tal caso un 1 lógico). Estas E/S se manejan a
nivel de bit dentro del programa de usuario, los niveles de tensión usuales son
de 24 ó 48 V ( CC o CA) , también se utilizan frecuentemente tensiones de red
(110 o 230 V de CA) y mas raramente niveles lógicos ( 5V ).
Las E/S analógicas pueden poseer cualquier valor dentro de un rango
determinado especificado por el fabricante , los valores mas comúnmente
utilizados son 0-5V, 0-10V, 4-20 mA. , o bien en el rango de los mV para
las entradas usadas para termocuplas y/o celdas de carga. Se basan en
conversores A/D y D/A aislados de la CPU (ópticamente o por etapa de
potencia). Estas señales se manejan a nivel de byte o palabra (8/16 bits) dentro
del programa de usuario.
Las E/S son leídas y escritas dependiendo del modelo y del fabricante de dos
maneras, es decir, pueden estar incluidas sus imágenes dentro del área de
memoria correspondiente a la imagen del proceso, o ser manejadas
directamente a través de instrucciones específicas de E/S, este último criterio
se reserva en general para entradas asignadas a alarmas o a los llamados
contadores rápidos.

Características importantes de las Entradas y Salidas del PLC

Como es obvio para poder especificar las características necesarias de las E/S
del PLC se debe determinar claramente cuales serán los elementos que se
conectarán a las mismas, para de esa forma definir rangos de tensiones, tipo
de E/S, etc.

Entradas digitales

Desde el punto de vista de su utilización y conexionado las entradas digitales


de los PLC pueden ser de 2 tipos:

Entradas tipo fuente ( source )

En este tipo de entradas cuando el sensor se activa la corriente fluye desde el


borne de entrada hacia el sensor y de este al borne común. Este tipo de
entrada se utiliza cuando los sensores estarán alimentados por una fuente
común, y en el caso de usar sensores con salida a semiconductor estos son del
tipo NPN.

Control Automático / Programación PLC Apuntes de la Cátedra


18

+V

Sensor tipo NPN


I 0.0

Lógica interna del PLC (aislada)


I 0.1
+

I 0.2

LOGICA DE CONTROL
I 0.3

I 0.4

I 0.5

I 0.6

I 0.7

Esquema de entrada tipo fuente y sensor NPN


 

Entradas tipo sumidero ( sinking)

En este tipo de entradas cuando el sensor se activa la corriente fluye desde el


borne de salida del sensor hacia el borne de entrada y de este hacia el borne
común. Este tipo de entrada se utiliza cuando exista la posibilidad de que los
sensores estarán alimentados por fuentes diferentes, y en el caso de usar
sensores con salida a semiconductor estos son del tipo PNP.
Este tipo de entradas es el mas utilizado ya que es el que me da mayor
versatilidad y además la gran mayoría de los sensores disponibles
comercialmente son del tipo PNP.

Sensor tipo PNP


I 0.0
Lógica interna del PLC (aislada)

I 0.1
+

I 0.2
LOGICA DE CONTROL

I 0.3

I 0.4

I 0.5

I 0.6

I 0.7

COM

Esquema de entrada tipo sumidero y sensor PNP


En el caso de que las entradas sean de C.A. es valida la clasificación anterior
con la diferencia que el diodo del optoacoplador es doble para permitir la

Control Automático / Programación PLC Apuntes de la Cátedra


19

circulación de corriente en ambos sentidos ( o bien se dota a la entrada de un


rectificador ).
En muchos módulos de entradas estas se ordenan en grupos, por ejemplo en
un módulo de 16 entradas en 2 grupos de 8 entradas, estos grupos se
caracterizan por tener un borne de alimentación común ( Positivo o Negativo
según sea tipo fuente o sumidero ), esta agrupación me permite organizar las
entradas de forma tal que eventualmente pueda usar para cada grupo una
fuente de alimentación distinta.

Histéresis y Retardo de las entradas

Para garantizar un funcionamiento fiable del sistema de automatización se


debe tener respecto de las señales la certeza del efectivo estado de estas, y en
caso de que el valor de una entrada cambie de estado, ya sea de 0 a 1 ó bien
de 1 a 0, este cambio se deba a una variación de la señal y no a factores
ajenos como el ruido o el rebote de contactos. Para asegurar esto las entradas
digitales de los PLC’s utilizan dos estrategias bien conocidas:

● Histéresis: es decir niveles de umbral distintos para el reconocimiento


del estado “0” y el estado “1”, por ejemplo un PLC con entradas de 24V
reconocerá un cambio de 0 a 1 si la tensión en la entrada es ≥ 15 V, es
decir el equipo solo tomará como efectivamente habilitada la entrada si
se supera ese valor; el mismo PLC reconocerá un cambio de 1 a 0 si y
solo si la tensión en la entrada digital es menor de 8V. En consecuencia
y como se observa tengo umbrales diferentes según en que sentido sea
el cambio de estado.

● Retardo en las entradas: es decir la señal en la entrada debe estar


presente un tiempo mayor a un valor prefijado, por ejemplo 20 mS, de
esta manera tengo cierta certeza que el valor presente en la entrada
efectivamente responde a un cambio de estado de la señal, y no a
razones espurias como el ruido o el rebote de contactos. Para tener
mayor versatilidad en función de cual sea el tipo y la velocidad del
proceso en muchos equipos este tiempo de retardo es parametrizable.

Salidas Digitales

Desde el punto de vista constructivo las salidas digitales pueden ser de 2 tipos:

Salidas a relé ( Dry Contact)

Se utiliza un relé separado para cada salida, es decir para cada salida estarán
disponibles los dos bornes del contacto del relé respectivo, esto permite
trabajar con tensiones distintas para cada una de ellas (C.A., C.C. o ambas en
cualquier nivel de tensión ), así como garantizar el máximo nivel de separación
entre salidas ( no hay bornes comunes ). La velocidad de respuesta suele ser ≥
10 ms, por otra parte este sistema es el menos sensible a variaciones de
tensión o transitorios en las salidas.
La corriente admisible por salida puede ser tan alta como 8 ó 10 A.

Control Automático / Programación PLC Apuntes de la Cátedra


20

Salidas a semiconductor ( Transistor o Triac )

Se suministra al módulo de salida una tensión y este se encarga de conmutar


esta tensión a cada una de las salidas usando circuitos de estado sólido,
TRIACS para las salidas de corriente alterna y Transistores para las salidas de
corriente continua. Normalmente las salidas son del tipo fuente y el nivel de
corriente de salida suele ser ≤ 2 ( típico 1 A ), la velocidad de conmutación es
típicamente ≤ 1 ms. En el caso de salidas de C.A. puede existir un circuito de
detección de cruce por cero para la apertura de la misma.

 
 
 
Manejo de valores analógicos en el PLC

Entradas analógicas
Al contrario de una señal binaria o digital, la cual puede aceptar solo dos
valores ‘Con Tensión +24V‘ (nivel lógico 1) y ‘Sin Tensión 0V‘ (nivel lógico 0),
las señales analógicas pueden aceptar tantos valores como se deseen, dentro
de ciertos rangos. Un ejemplo típico de un transductor analógico es un
potenciómetro. Dependiendo de la posición del mando, se proporciona un valor
diferente de resistencia hasta un valor máximo.

Control Automático / Programación PLC Apuntes de la Cátedra


21

Ejemplos de medidas analógicas en tecnologías de sistemas de


control:

 Temperatura -50 ... +150°C


 Caudal 0 ... 200 l/min
 Revoluciones 500 ... 1500 R/min
 Etc...

Estos valores son convertidos a valores de tensión, intensidades de corriente o


resistencias con la ayuda de transductores de medida. Por ejemplo, si se
desea medir un determinado número de revoluciones, el cambio de velocidad
puede convertirse en un rango de entre 500... 1500 R/min, a través de un
captador de medida, en una tensión que oscile entre 0... +10V. Cuando el
número de vueltas sea de 865 R/min, el captador de medida emitirá una
tensión de + 3.65 V.

500 865 1500 R/min

365
10V: 1000 R/min = 0,01 V/R/min
1000 R/min
365 R/min x 0,01 V/R/min = 3,65
10V

0V +10V

Manejo Interno de las variables analógicas

El PLC utiliza internamente el formato de Palabra (Word) para almacenar los


valores de las señales analógicas, es decir reserva un espacio de memoria de
16 bits por cada una de las entradas y/o salidas analógicas para manejar los
valores que se reciben o entregan en ellas.
De esta manera el rango posible de valores que internamente puede adoptar la
señal analógica es de -32768 a +32768, ya que se reserva el bit 15 para
indicar el signo del número a representar.

Ahora bien, ¿que pasa si la resolución del conversor es inferior a 16 bits?, pues
bien, si un módulo analógico tiene una resolución inferior a 16 bits, los valores
analógicos se registran en el módulo comenzando por la izquierda (justificación
a la izquierda). Los dígitos insignificantes no ocupados se rellenan con “0”, esto
significa que si por ejemplo la resolución del conversor es de 13 bits, en la
palabra donde se almacene el valor analógico los bits 0 y 1 siempre estarán en
“0”.

Control Automático / Programación PLC Apuntes de la Cátedra


22

En el ejemplo siguiente se muestra cómo están rellenadas con “0” las


posiciones libres en caso de una resolución inferior.
Resolución Valor analógico
BIT 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Modulo 16 bits 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1
Modulo 13 Bits 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0

Las celdas sombreadas indican los bits que permanecerán siempre en “0”.

Esta utilización de las posiciones de bits para representar las señales


analógicas trae como consecuencia que la variación que se observa en el valor
internamente utilizado por el PLC no sea discreta (de 1 digito por vez) sino que
sea de a “saltos”, donde la magnitud de dicho salto dependerá de la resolución
del módulo.
Es decir y para que quede mas claro aún, en el caso del ejemplo anterior el
primer bit que varia es el tercer bit (bit 2) que tiene un peso de 4, por lo tanto si
se observa el valor interno de la variable analógica esta tomará valores de 0,4,
8, 12, 16, etc.
Esta característica propia del manejo de los valores analógicos deberá ser
tenida en cuenta a la hora de diseñar el programa del PLC, sobre todo si se
utilizan estructuras de decisión en base a comparadores, ya que habrá ciertos
valores que la variable analógica nunca alcanzará (por ejemplo el valor 11 en el
caso anterior).
Esto hace que a la hora de trabajar con variables analógicas siempre sea mejor
utilizar en los comparadores los criterios de ≥ o ≤ en lugar de la comparación
por =.

Para mayor detalle se transcribe a continuación una tabla con los valores de
incremento en función de la resolución del conversor.

Adicionalmente, a lo ya indicado se debe agregar que los fabricantes de PLC


generalmente emplean el criterio de no utilizar el rango total de valores
posibles para las señales analógicas, es decir no emplean el rango completo
de ±32768 sino que “recortan” el valor máximo a un número que puede ser
32000 o algo parecido en módulos de tensión o corriente, y a valores aún
menores para el caso de las termocuplas (la temperatura máxima de la
termocupla multiplicada por 10).

Control Automático / Programación PLC Apuntes de la Cátedra


23

El objetivo de este “recorte” es utilizar los valores que superen el límite


impuesto para manejar los sobrerangos e indicar las fallas del módulo
propiamente dicho.

Por ejemplo en un módulo típico cuya tensión de entrada es de 0-10 V el


fabricante tomó como límites internos 0 a 27648, o sea 0 V es 0 en el PLC y 10
V es 27648 en el PLC. Luego desde 27648 a 32767 se reserva para tensiones
que superen los 10 V y el número 32768 indica falla del módulo.

Escalamiento de valores analógicos

Una cuestión de índole práctica en el manejo de las variables analógicas es el


referido ya no a la conversión, resolución, etc. de las variables analógicas sino
a las unidades en las que estas se representan en el programa del PLC.
Veamos si podemos aclarar mas esta cuestión a través de un ejemplo práctico:

Supongamos que se debe medir una presión cuyo rango de valores es de 2 a 6


Kg/cm2, y que dicha medición se realiza con un transductor que tiene salida de
4 a 20 mA, dicha señal se lleva a un módulo analógico adecuado y se ingresa
en el PLC.
¿Cuáles serían los valores que representarían ese rango de presiones
internamente en el PLC? Pues bien si suponemos que el límite del módulo es
de 32000, dentro del PLC 2 Kg/cm2 resultarían equivalentes a un valor de
6400 y 6 Kg/cm2 resultarían equivalentes a un valor de 32000.
Ahora bien este rango de valores resulta poco representativo del verdadero
valor de la variable física (la presión en este caso), ya que para el operador del
equipo resulta mas fácil de evaluar un valor de 2,5 que un valor de 9600, pues
si bien ambos representan el mismo estado de la variable física el primero (2,5)
es indicador de la magnitud del parámetro real que se esta evaluando.
Esto es aún mas obvio si yo quiero visualizar el estado de mi proceso en un
panel de operador o en un sistema SCADA, ya que aquí es imprescindible que
los valores indicados sean los que corresponde al rango del valor físico
medido.

Estas circunstancias apuntadas me indican que de alguna manera yo debo,


internamente al PLC, “reconvertir” los valores leídos en las entradas analógicas
a “unidades de ingeniería” (es decir valores que representen la real magnitud
física) para su posterior procesamiento en el programa de usuario.

En forma similar a lo señalado para las entradas, en las salidas analógicas el


problema es inverso, es decir que se ha trabajado internamente en “unidades
de ingeniería”, pero para escribir el valor en la salida se debe reconvertir a
valores en los rangos propios de dichas salidas (0-32000 por ejemplo).

Este manejo de las variables es lo que se conoce como “escalamiento” y


“desescalamiento” de variables, para lo cual se debe recurrir a operaciones
matemáticas adecuadas dentro del PLC.

Básicamente se trata de evaluar la ecuación de una recta tal como la que se


representa a continuación:

Control Automático / Programación PLC Apuntes de la Cátedra


24

Donde las X representan el rango de los valores de entrada (6400-32000 para


nuestro ejemplo) y las Y representan el rango de los valores de salida (2- 6
Kg/cm2 para nuestro ejemplo)

Y1

Y0

X0 X X1

Simplemente se deberá entonces aplicar la ecuación:

Y = (Y1-Y0) * (X-X0)/(X1-X0) + Y0

Para nuestro ejemplo:

Y1 = 6
Y0 = 2
X1 = 32000
X0 = 6400

Por supuesto si se trata de una salida los valores estarían invertidos ya que
tengo que hacer un “desescalamiento”, entonces:

Y1 = 32000
Y0 = 6400
X1 = 6
X0 = 2

A pesar de que la cuestión planteada es matemáticamente muy simple


corresponde hacer alguna aclaración respecto de la estrategia planteada. El
problema básico es que al realizar el escalamiento se puede perder la
resolución de la lectura de la variable (resolución propia de la entrada
analógica) en razón del tipo de número que se maneje al realizar el
escalamiento.

Control Automático / Programación PLC Apuntes de la Cátedra


25

Veamos:

Las entradas o salidas analógicas almacenan los valores leídos como números
enteros y si para el escalamiento yo mantengo el criterio de utilizar dicho
formato numérico me encontraré con que la resolución cae drásticamente en la
mayoría de los casos.
Retomando el ejemplo anterior si mi entrada tiene un conversor de 12 bits tiene
una resolución de 1/4096, es decir puede “dividir” el rango de entrada en 4096
partes, si realizo el escalamiento al rango 2 a 6 Kg/cm2 y conservo el criterio de
utilizar números enteros, mi rango de valores enteros queda restringido a solo 5
valores posibles (2,3,4,5 y 6), es decir mi resolución pasa a ser de 1/5 con lo
cual no solo “desperdicio” la capacidad de resolución de mi módulo de entrada
sino que también puedo no contar con la discriminación suficiente en los
valores de la variable como para tomar decisiones adecuadas en mi programa.

La solución para esta cuestión es relativamente simple, lo que se debe hacer


es, previo al escalamiento de la variable convertir la misma en un número real,
con lo cual dispongo de casi infinitos valores para la variable de entrada lo que
luego se trasladará al valor escalado. En consecuencia en el programa de
usuario los valores utilizados serán siempre en formato de número real.

Por supuesto cuando voy al otro extremo de la cadena, es decir las salidas
analógicas, el proceso deberá ser inverso, ya que debo convertir el valor en
número real en uno de número entero para poder “escribirlo” en la salida.

Filtrado de valores analógicos

El concepto de filtrado de valores se refiere exclusivamente al manejo de las


entradas analógicas, y tiene que ver con el hecho de que en el mundo real los
valores recibidos desde los transductores de señal no son estrictamente
estables; esta inestabilidad inherente a los valores analógicos tiene que ver
fundamentalmente con dos cuestiones:

● Oscilaciones propias de la variable originadas en la dinámica del proceso

● Ruido e interferencia en la señal recibida

En función de esto el concepto de filtrado se refiere a una estrategia que lo que


busca es estabilizar el valor leído de manera tal que represente lo mas
exactamente posible el valor probable de la variable analógica instante a
instante.

Las técnicas habitualmente utilizadas son las siguientes:

● Filtros de señal sintonizados a ciertas frecuencias.

Lo que se busca aquí es rechazar el ruido eléctrico de fondo presente en la


instalación, normalmente este filtro se sintoniza a una frecuencia de rechazo de
50 ó 60 Hz de manera de eliminar el zumbido originado en las instalaciones de
potencia. Esta frecuencia es generalmente parametrizable en el PLC en función

Control Automático / Programación PLC Apuntes de la Cátedra


26

de cual sea la frecuencia presente en la red.

● Filtros de promedio y banda muerta

En este caso lo que se emplea son dos sistemas que apuntan a lo mismo por
dos caminos diferentes: mantener el valor de salida del filtro aunque la señal
de entrada experimente oscilaciones en su valor.

El filtro de promedio como su nombre lo indica consiste en promediar varias


lecturas consecutivas de la entrada analógica y tomar dicho promedio como
valor actual de la entrada. En algunos equipos este sistema está ya
implementado y solo se debe parametrizarlo indicando cuantas lecturas
consecutivas se tomarán para realizar el promedio, en otros casos se deberá
implementar una rutina de programa que realice dicho promedio.

El filtro de banda muerta lo que utiliza como criterio es establecer un rango de


variación en la entrada analógica para el cual no cambia el valor que coloca
como salida del filtro, es decir existirá una cierta insensibilidad al cambio de la
señal en donde por ejemplo si la señal no varía mas del 1 % considero que el
último valor ha permanecido constante. Al igual que en el caso anterior en
algunos equipos este sistema está ya implementado y solo se debe
parametrizarlo indicando cual será el rango de la banda de insensibilidad y en
otros casos se deberá implementar a través de una rutina de programa que
realice dicho filtro.
 
3.2.5.- Interfaces
Todo autómata, salvo casos excepcionales, posee la virtud de poder
comunicarse con otros dispositivos (como una PC).
Lo normal es que posea una E/S serie que normalmente responde a la
especificación de hardware RS-232 / RS-485.
A través de esta línea se pueden manejar todas las características internas del
PLC, incluida la programación del mismo, y suele emplearse para
monitorización del proceso o bien para la transferencia de datos desde y hacia
otros equipos del sistema de automatización.

3.2.6.- Configuración externa del PLC

Si bien todos los PLC dispondrán en mayor o menor medida de los elementos
antedichos, existirán dos formas básicas de estructurar físicamente los mismos,
lo que da como consecuencia posibilidades distintas en los equipos utilizados,
podemos distinguir entonces:

PLC integrales o compactos

Se caracterizan por tener todos los elementos ( CPU, memoria, entradas,


salidas, etc.) en un solo bloque, en general no poseen capacidades de
ampliación o estas son muy limitadas por lo que se emplean habitualmente
para pequeñas automatizaciones, donde se obtiene una relación costo-
beneficio muy razonable.

Control Automático / Programación PLC Apuntes de la Cátedra


27

PLC modulares

Como su nombre lo indica el PLC se configura a través de módulos


interconectados, los cuales cumplen cada una de las funciones necesarias,
tendremos entonces módulos de CPU ( estos incorporan generalmente la
memoria y las interfases), módulos de entradas, módulos de salidas, módulos
de comunicación, etc.
Con este tipo de estructura se comprenderá que se optimiza la selección de los
recursos necesarios, ya que se agregan aquellos elementos que son
absolutamente necesarios.
Este tipo de PLC posee normalmente una capacidad de procesamiento y de
memoria superior a la correspondiente a los PLC’s integrales y en general se
los suele caracterizar por ello junto con la cantidad máxima de módulos que
admiten.

Control Automático / Programación PLC Apuntes de la Cátedra


28

4.-PROGRAMACIÓN DEL PLC

Introducción

Como ha quedado indicado en párrafos anteriores el PLC para cumplir con su


función de elemento de control recorre un “programa de usuario”, que es el que
contiene las instrucciones necesarias para controlar el proceso de la forma
deseada.
Obviamente este programa al igual que en cualquier PC no está incorporado al
PLC sino que debe ser elaborado de forma que cumpla con la lógica deseada
del automatismo.
Para la elaboración de los programas se deben seguir ciertas reglas y conocer
las limitaciones del tipo de equipo que se quiera programar, fundamentalmente
en cuanto a las capacidades de memoria, cantidad de entradas y salidas,
direccionamiento, etc.
Dado que el PLC internamente trabaja en el llamado “lenguaje de máquina”, es
necesario para facilitar la tarea del programador, contar con “lenguajes de
programación”, que se encargan de convertir las instrucciones de máquina en
otras mas entendibles por el usuario, que le permiten representar la lógica
interna del PLC en formato de texto o gráfico.
Estos lenguajes de programación, si bien guardaban ciertas similitudes, eran
inicialmente distintos para cada marca y/o modelo de PLC principalmente en
cuanto a la nomenclatura y las reglas de sintaxis, esto obviamente generaba
dificultades a la hora de migrar de un equipo a otro. Es así que a partir de la
década de los 90 comienza un movimiento en dirección a la normalización de
las especificaciones y características de los PLC’s, este movimiento recibió un
decidido impulso a partir de la intervención de la IEC con la serie de normas
61131, siendo un punto fundamental a los fines de este apunte el capítulo 3 de
la norma (conocido tradicionalmente como 1131-3) que es el que se refiere a
la normalización de los lenguajes de programación, por lo que en lo posible a
partir de aquí se hará referencia a dicho estándar.

4.1.- ESTRUCTURA DE DATOS EN EL PLC

Para su funcionamiento los PLC’s trabajan básicamente ejecutando las


combinaciones lógicas y los cálculos matemáticos que se la hayan programado
según una secuencia determinada, es decir toda la operatoria del PLC se basa
en el procesamiento de datos numéricos.
Si bien, y por tratarse de un sistema digital, todos los datos se almacenan como
secuencias de 0 y 1, a la hora de ingresar estos valores dentro del equipo, nos
encontraremos que no es lo mismo representar el valor de una entrada digital
(cuyo estado puede ser 0 ó 1) que el valor de una entrada analógica o el valor
de tiempo de un temporizador.
De tal manera durante la programación y aplicación del PLC, se deberán
ingresar valores en distintos formatos, adecuados para cada tipo de datos a
representar.

Control Automático / Programación PLC Apuntes de la Cátedra


29

Representación de la información binaria

Los números binarios se utilizan en los PLC de cuatro formas básicas:

BIT

Es decir se elabora el estado de un solo dígito binario, que como ya sabemos


puede ser 0 ó 1, este formato es el que se utiliza para indicar los estados de
entradas y salidas digitales, marcas, operaciones combinacionales, etc.

BYTE

Un BYTE (B) es un grupo de 8 BITS numerados de 0 a 7 como representa la


figura.

El BYTE es la unidad básica de la memoria del PLC, por lo cual la longitud de


la memoria disponible y la ubicación de una determinada sección de la misma
siempre se expresan en Bytes. Por la misma razón los módulos de entradas y
salidas digitales siempre prevén en la imagen de proceso una cantidad de las
mismas que es múltiplo de 8, físicamente este número podrá ser menor, por
ejemplo en el caso de las entradas y/o salidas integradas en las CPU´s.

WORD (palabra).

1 WORD (W) = 2 BYTE = 16 BITS

Ej: EW0 = 1337 dec =


10100111001 bin

Este formato se utiliza mayormente en el PLC para el manejo de los valores de


entradas y salidas analógicas y en general para representar números enteros,
en este caso, y si bien el máximo valor teórico sería de 65536, los valores
posibles que se pueden representar están en el rango de +32768 a -32768 ya
que el último bit (bit 15) se utiliza para indicar el signo, siendo 1 en caso de que
el número sea negativo.

DOBLE WORD.

Control Automático / Programación PLC Apuntes de la Cátedra


30

1 DOBLE WORD (D) = 2 WORD = 4 BYTE = 32 BITS

Este formato se utiliza mayormente para representar números reales con un


rango que va de ± 3402823 * 10 38 a ± 1175495 * 10 -38

Adicionalmente a lo indicado anteriormente la información en algunos casos se


deberá ingresar en el PLC en algún formato especial, de los cuales
mencionaremos 2 por su importancia:

-Sistema hexadecimal

El sistema de numeración hexadecimal se utiliza fundamentalmente para


representar valores o direcciones de memoria con longitudes de 16 o mas bits,
esto es así ya que la representación hexadecimal es mucho mas “compacta”
que la binaria, ya que cada cifra en hexadecimal representa 4 dígitos binarios.
Por ejemplo:

0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1

7 4 A 5

Como se observa la conversión de binario a hexadecimal y viceversa es muy


simple, solo se trata de agrupar los bits en grupos de cuatro y luego utilizar el
“peso” de cada uno (1, 2, 4, 8) para hacer la suma.

- Código BCD

BCD significa Binario Codificado Decimal, y si bien no se trata de un verdadero


sistema de numeración es un código muy empleado a la hora de ingresar
valores numéricos, a través de por ejemplo un teclado.
El código BCD utiliza 4 bits para representar un número de 0 a 9, esto significa
que un Byte (8 bits) me permiten representar un número entre 00 y 99. la forma
en que el código BCD lo hace es muy fácil de interpretar si recordamos la tabla
de conversión de binario a decimal, donde los 4 primeros bits tienen valores 1,
2, 4 y 8, así por ejemplo si en un Byte yo tuviera:

1 0 0 1 0 1 0 1
8 4 2 1 8 4 2 1

8+1=9 4+1=5

Es decir en BCD este byte se interpretaría como el número 95

Muchos PLC’s utilizan una longitud de 1 palabra (16 bits) para almacenar los
números BCD, por lo que el rango de valores estaría comprendido entre 0000 y
9999. Si bien muchos PLC’s tienen funciones que permiten efectuar cálculos
directamente en BCD, es muchas veces preferible convertirlos internamente en
enteros para ejecutar las operaciones matemáticas ( todos los PLC’s tienen
funciones adecuadas de conversión al efecto)

Control Automático / Programación PLC Apuntes de la Cátedra


31

4.2.- CONSTANTES, VARIABLES Y DIRECCIONAMIENTO EN LOS PLC’s

4.2.1.- Constantes

Como su nombre lo indica las constantes son elementos que no cambian su


valor durante la ejecución del programa de usuario, dichas constantes pueden
ser de tres tipos distintos:

■ Constantes numéricas

■ Constantes de texto (alfanuméricas)

■ Constantes de tiempo

Constantes numéricas

Hay dos clases de constantes numéricas: constantes de números enteros y


constantes de números reales. Una constante numérica se puede representar
como un número decimal o como un número en otra base. El número máximo
de dígitos para cada clase de constante numérica será suficiente para expresar
el rango y la precisión de valores de la misma de acuerdo con los tipos de
datos anteriormente indicados

Constantes alfanuméricas

Las constantes alfanuméricas podrán ser de 1 o 2 bytes de longitud de


codificación.

Constantes de tiempo

La norma IEC reconoce dos tipos de constantes de tiempo posibles:

 Duración (lapso) utilizada para medir o controlar el tiempo transcurrido


en un evento controlado.
 Hora del día (generalmente se puede incluir la fecha también), utilizado
para sincronizar el comienzo o el fin de un evento con una referencia de
tiempo absoluto.

Duración

Los tiempos de duración se indican con un Prefijo en el lado izquierdo que


puede ser alternativamente T# ó TIME#, es decir las indicaciones de tiempo
deben comenzar y se reconocen gracias a este delimitador.

Control Automático / Programación PLC Apuntes de la Cátedra


32

Fecha y Hora

Al igual que para la duración para la fecha y hora existen Prefijos


predeterminados a emplear tal como:

TIME_OF_DAY#
DATE#

4.2.2.- Variables

A diferencia de las constantes recién vistas, cuyo valor es obviamente fijo, las
variables se utilizan dentro de la estructura del programa para representar
aquellos datos que sufren variaciones a lo largo del tiempo en el proceso
controlado, como por ejemplo el estado de entradas, salidas y marcas.

Operandos

Como ya se ha dicho el PLC, al recorrer el programa de usuario que se le


incorporó, recorre un ciclo de trabajo en el cual lee determinados valores,
ejecuta ciertas operaciones y escribe los resultados obtenidos. Ahora bien
estas lecturas y escrituras obviamente no pueden ser en cualquier lado ya que
será necesario identificar si se trata de un valor interno, de una señal desde o
hacia campo, etc. Para realizar esto el Sistema Operativo del Microprocesador
identifica cada tipo de dato con una denominación particular que constituye el
llamado Operando, este operando indica de que tipo de dato se trata y en
consecuencia a que área de la memoria del PLC esta asignado, de forma que
al observar su denominación sepamos exactamente de que estamos hablando.

Las designaciones de los operandos mas comunes de acuerdo a la Norma IEC


61131 son:

Operando Zona Observaciones


%I Entradas Interfases al proceso (vía imagen)
%Q Salidas Interfases al proceso (vía imagen)
%M Marcas Memoria para resultados intermedios
%T Temporizadores Memoria para realización de temporiz.
%C Contadores Memoria para operaciones de contaje

Además de las áreas mencionadas que son comunes a todos los PLC’s
algunos fabricantes reservan áreas de memoria para los denominados datos o
variables, las que algunas veces comparten un espacio común con la memoria
de programa (memoria D o V).

4.2.3.- Direccionamiento

Si dejamos de lado por ahora la zona correspondiente al programa de usuario


propiamente dicho (que merece un tratamiento especial que se hará luego), es
razonable pensar que no es suficiente con definir zonas separadas para cada
operando sino que además, para que esta separación sea de utilidad, tengo
que ser capaz de leer o escribir en lugares perfectamente determinados de

Control Automático / Programación PLC Apuntes de la Cátedra


33

cada una de ellas.


Este es precisamente el concepto del Direccionamiento, es decir la forma de
leer o escribir en un espacio claramente definido de cada área. Si por ejemplo
analizamos la memoria de una CPU típica de un PLC, podríamos encontrarnos
con la siguiente estructura:
Direccion Kbytes
0000H I/O “inteligentes” 0

4...
1000H
Memoria de usuario
...

(RAM) 24 K instrucciones

D000H (Datos internos) 52 . . .


...

DC00H Lista de direcciones de 55 . . .


... bloques de programa

E600H (Datos internos) 57,50 .


... ..

EA00H Datos de Sistema SD 58,50 .


... ..

EC00H Timers T 59 . . .
...

ED00H Contadores C 59,25 .


... ..

EE00H Marcas M 59,50 .


... ..

EF00H Imagen de Proceso de I/O 59,75 .


... (50% I, 50% O) ..

F000H Area de I/O y registros


... internos 60 . . .

FFFFH 64

Vemos que cada área de operandos se encuentra perfectamente separada de


las otras, por lo que no existe posibilidad de entrecruzamiento de datos, no

Control Automático / Programación PLC Apuntes de la Cátedra


34

obstante si accediéramos directamente por la dirección absoluta de la memoria


(por ejemplo al bit EF03H para una de las entradas digitales) corremos el
riesgo de cometer muy fácilmente un error y “pisar” la zona de memoria
correspondiente a otro operando con la consiguiente falla del programa.
Por esta razón, a los fines prácticos no se utiliza habitualmente el
direccionamiento absoluto de la memoria, sino que el acceso a las zonas de
memoria de cada operando se realiza en forma relativa al comienzo de cada
zona, es decir todas comienzan en 0 y finalizan en la extensión asignada por la
CPU para cada una de ellas.
Por ejemplo para la CPU analizada la zona de la imagen de proceso de las I/O
estaría indicada de la siguiente forma:

Dir. Absoluta Dir. relativa


Zona de memoria Bytes
EF00H 0

Imagen de proceso de Entradas

EF7FH 127

EF80H 0
Imagen de Proceso de Salidas

EFFFH 127

En consecuencia para acceder a la entrada digital particular antes mencionada


se pondría en el programa:

I 0.3

Donde la I indica que queremos acceder a la zona de la imagen de proceso de


las entradas, el 0 indica el Byte de la zona relativo a su comienzo y el 3 indica
el bit particular al que está conectada la entrada digital en cuestión.
Además de lo señalado y particularmente en el caso de las entradas y salidas
existe en la mayoría de los casos una vinculación con la configuración del
Hardware, que me define donde estará ubicada en la zona de entradas y
salidas cada entrada y salida particular de cada uno de los módulos
componentes del PLC, para lo cual se debe consultar la información
suministrada por el fabricante para el modelo particular del equipo.

Formato de acceso a las zonas de operandos

Cada zona de operandos tendrá uno o varios formatos posibles de acceso a la


misma, en función del tipo de operando y la longitud de memoria que se quiera
leer:

I, Q, M (entradas, salidas, marcas)

Control Automático / Programación PLC Apuntes de la Cátedra


35

Las entradas, salidas y marcas, se pueden acceder en formato de BIT, BYTE,


WORD (palabra), y, en algunos casos DOBLEWORD (palabra doble), por
ejemplo:
I 0.3 indica el acceso en formato de BIT ( al Byte 0 Bit 3 de la zona de
entradas)

QB3 indica que se accede al BYTE (8 bits) número 3 de la zona de salidas

MW10 indica el acceso a la palabra (WORD) que comienza en el Byte 10 y


ocupa 16 bits consecutivos (es decir la zona de memoria comprendida por los
Bytes 10 y 11)

C, T (contadores, temporizadores)

Los temporizadores y contadores se identifican con números y no por


direcciones de memoria, así por ejemplo:

T2 indica que me estoy refiriendo al temporizador número 3 disponible


consecutivamente en la zona de memoria de los temporizadores (los
temporizadores se numeran comenzando de 0), por supuesto que la máxima
cantidad de temporizadores disponibles depende de la CPU utilizada.
Obviamente en el desarrollo del programa deberá cuidarse de no utilizar mas
de una vez el mismo temporizador.

C5 análogamente indica el sexto contador disponible, y le caben los mismos


cuidados que para los temporizadores.

Direccionamiento de entradas y salidas

Retomemos el asunto pendiente del direccionamiento de entradas y salidas en


relación a la configuración de Hardware.
Hemos visto ya que en la memoria del PLC se reserva una zona especial para
almacenar los valores que vienen de las entradas y salidas físicas (a través de
la imagen del proceso), pero para poder programar correctamente las acciones
yo necesito saber exactamente que zona de memoria le corresponde a cada
una de las entradas físicas. Puesto de otra manera y con un ejemplo:

Control Automático / Programación PLC Apuntes de la Cátedra


36

Si en mi PLC tengo este módulo de


entradas digitales conectado en el Slot Nº
5

¿En que bit particular de la zona de


Entradas tengo el valor actual de la entrada
conectada en los bornes 7 y 8?

Los fabricantes de PLC’s han resuelto el


problema según dos criterios diferentes:

● Direccionamiento Fijo

● Direccionamiento Variable

Direccionamiento Fijo

En el método de direccionamiento fijo a


cada módulo se le asigna una dirección
inicial en la zona correspondiente, en
función del Slot en el que se encuentra
ubicado, este es el criterio en el caso de algunas CPU’s de cierto fabricante,
donde el formato es el siguiente:

● Para módulos digitales de 8 canales la dirección inicial del módulo es igual a:

X.0 donde X es el Slot donde esta colocado el módulo

Entonces por ejemplo un módulo de 8 salidas digitales colocado en el Slot 7


tendría un rango de direcciones desde Q7.0 hasta Q7.7

● Para módulos combinados de entrada y salida, de 16 bits para cada una de


ellas, estos solo pueden ir colocados en los slots 0 a 7 y su rango de
direcciones sería según en que Slot este colocado, de acuerdo con la siguiente
tabla:

Slot Número 0 1 2 3 4 5 6 7

Direcc.
Canal 64.0 to 72.0 to 80.0 to 88.0 to 96.0 to 104.0 to 112.0 to 120.0 to
n.0 to n.7 64.7 72.7 80.7 88.7 96.7 104.7 112.7 120.7
E (IN)

y Canal
65.0 to 73.0 to 81.0 to 89.0 to 97.0 to 105.0 to 113.0 to 121.0 to
n+1.0 to
65.7 73.7 81.7 89.7 97.7 105.7 113.7 121.7
A(OUT) n+1.7

Control Automático / Programación PLC Apuntes de la Cátedra


37

Entonces un módulo de 16 entradas y salidas colocado en el slot 4 tendría los


siguientes rangos de direcciones:

Entradas desde I 96.0 hasta I 97.7


Salidas desde Q 96.0 hasta Q 97.7

● Para módulos de entrada ó salida analógicos, estos solo pueden ir colocados


en los slots 0 a 7 y su rango de direcciones sería según en que Slot este
colocado, el siguiente:

Slot Nro. 0 1 2 3 4 5 6 7

Canal
Nro.

De esta manera un módulo analógico colocado en el Slot 3 tendría sus cuatro


entradas en :

Entrada 1 IW 88
Entrada 2 IW 90
Entrada 3 IW 92
Entrada 4 IW 94

Direccionamiento Variable

En este caso las direcciones de cada módulo se pueden asignar libremente, ya


sea a través del Software de programación o por DIP-SWITCH ubicados en los
racks, que me permiten ajustar a voluntad la dirección inicial de cada módulo
conectado. No obstante la libertad de elección de la dirección de cada módulo
no es absoluta sino que en general se deben respetar ciertas reglas, propias de
cada equipo.

En razón de la mayor dificultad y como consecuencia de que existen mas


posibilidades de cometer errores, la mayoría de fabricantes ha abandonado en
sus modelos mas recientes la posibilidad del direccionamiento variable.

- Direccionamiento Simbólico

Si bien es bastante claro en base a todo lo visto respecto al direccionamiento,


en cuanto a como se asignan las distintas direcciones de operandos, existe aún

Control Automático / Programación PLC Apuntes de la Cátedra


38

un problema a la hora de programar el PLC.


Es evidente que cada entrada y salida estará conectada a un elemento de
campo, y que cada timer, contador o marca tendrá una función específica
dentro de mi programa, pero a la hora de programar me tendré que referir a
cada uno de ellos como I 4.5 ó Q 5.7, con lo cual puedo perder de vista cual es
el elemento conectado; peor aún, a la hora de depurar el programa me puede
resultar muy difícil interpretar secuencias de contactos o condiciones.
Es en función de lo antedicho que el software de programación me permite
asignar nombres simbólicos a cada uno de los operandos, con el criterio de que
es mas fácil de interpretar las funciones y acciones de un contacto llamado
“Marcha” que decir I 3.2.
A tal fin se implementa la llamada “Tabla de Símbolos”, donde se le asigna a
cada operando un nombre simbólico y un comentario del mismo como por
ejemplo:

Símbolo Operando Comentario


Marcha I 3.2 Pulsador de arranque cortadora

De esta forma tengo las dos opciones al momento de ingresar el operando en


mi programa, es decir puedo poner “Marcha” ó I 3.2.

4.3.- ELABORACION PROPIAMENTE DICHA DEL PROGRAMA

Para que el PLC ejecute las tareas previstas, es decir las instrucciones que
debe seguir para poder comandar la instalación, se debe escribir el programa
de usuario en un lenguaje que el PLC sea capaz de comprender y siguiendo
reglas prefijadas.
Dado que el microprocesador del PLC trabaja con instrucciones en lenguaje de
máquina, las cuales resultan muy difíciles de manejar, se desarrollaron los
“lenguajes de programación”, los que definen unas reglas de escritura y juegos
de instrucciones entendibles para el programador que luego se compilan a
lenguaje máquina antes de cargarse en el PLC.
En el caso de la norma IEC 61131-3 se reconocen cinco lenguajes de
programación, que responden a preferencias y/o niveles de complejidad de las
instrucciones.

Estos 5 lenguajes son:

● Lista de Instrucciones ( I L - Instruction List), este es un lenguaje de texto


puro, donde el programa es una sucesión o lista de instrucciones sencillas
elaboradas en base a abreviaturas o códigos. Un ejemplo de una instrucción
podría ser:

Operación Operando

Control Automático / Programación PLC Apuntes de la Cátedra


39

A I 32.0

Identificador del operando Parámetro

Todas las instrucciones I L tienen la estructura antedicha, es decir una


Operación, que me indica que debo hacer, un Operando que es sobre quien
actúa la Operación y un Parámetro que indica la dirección del Operando.
Si bien pareciera un lenguaje muy elemental, es el mas poderoso de todos, ya
que cuenta con el juego mas completo de instrucciones y permite elaborar
programas que hacen el uso mas eficiente de la memoria.

● Esquema de Funciones (FBD - Function Block Diagram), este es un


lenguaje gráfico, donde las operaciones se representan como la combinación
de funciones lógicas.
Por ejemplo:

● Esquema de Contactos (LD - Ladder Diagram), como su nombre lo indica


en este lenguaje de programación las funciones de control se elaboran de una
forma similar a la de un esquema eléctrico funcional, con combinaciones de
contactos, bobinas de salida y cuadros de funciones, por lo que es el que mas
se asemeja a la representación utilizada en sistemas de lógica cableada.
Por ejemplo:

● Texto Estructurado (ST - Structured Text), en este lenguaje se emplea un


esquema de programación de alto nivel similar ala programación en C, BASIC
ó PASCAL.
Por ejemplo:

Control Automático / Programación PLC Apuntes de la Cátedra


40

D := B*B - 4*A*C ;
IF D < 0.0 THEN NROOTS := 0 ;
ELSIF D = 0.0 THEN
NROOTS := 1 ;
X1 := - B/(2.0*A) ;
ELSE
NROOTS := 2 ;
X1 := (- B + SQRT(D))/(2.0*A) ;
X2 := (- B - SQRT(D))/(2.0*A) ;
END_IF ;

● GRAFCET (SFC - Sequential Function Chart), este es un lenguaje gráfico


utilizado en la programación de problemas secuenciales (muy comunes en los
automatismos), en el que se programan acciones y condiciones en base a
cuadros y líneas.
Por ejemplo:

4.3.1.- Operaciones Básicas

Las operaciones básicas son todas aquellas que se pueden programar en


cualquiera de los lenguajes posibles y en general todos los PLC’s las
implementan, estas operaciones cubren los requerimientos mas comunes de

Control Automático / Programación PLC Apuntes de la Cátedra


41

automatización tales como la lógica de contactos, temporizadores, contadores,


funciones matemáticas sencillas, etc.

1.- OPERACIONES COMBINACIONALES

Las operaciones combinacionales se refieren a aquellas que representan


asociaciones serie paralelo de contactos, son por lo tanto operaciones lógicas
con bits que operan con dos dígitos, 1 y 0. En el ámbito de los contactos y
bobinas, un 1 significa activado (”conduce”) y un 0 significa desactivado (”no
conduce”). Las operaciones lógicas con bits interpretan los estados de señal 1
y 0, y los combinan de acuerdo con la lógica del Algebra de Boole. Estas
combinaciones producen un 1 ó un 0 como resultado y se denominan
”resultado lógico” (RLO). Las operaciones lógicas siempre terminan en una
bobina (que puede ser una salida física o no), que es en la que se refleja el
RLO final de la cadena de contactos, esta bobina puede también ser con
retención o no.

Ahora bien:
¿Como se representan estos elementos y como los evalúa el programa en el
PLC?

Para la representación se utilizan esquemas gráficos que indican las diferentes


señales presentes en base a contactos, en forma similar a los circuitos
eléctricos funcionales, que se utilizan para representar sistemas de comando.
No obstante existe una diferencia conceptual importante entre los esquemas
funcionales y los “circuitos” que se elaboran al desarrollar un programa de PLC:

► En los esquemas funcionales los contactos (NC y NA) representan el estado


físico de los mismos en estado de reposo y el estado de la señal (es decir si
circula o no corriente) se deberá analizar por separado en función de si el
mismo ha sido accionado o no. Cada vez que en mi circuito necesite evaluar el
estado de una señal para tomar alguna acción, deberé agregar un contacto
físico que la represente, y dicho contacto deberá ser del tipo adecuado (NA o
NC).

► En los esquemas de “circuitos” en los PLC solo se evalúa el estado de la


señal, es decir si esta está presente o no, este estado de la señal se representa
entonces en mi programa a través de contactos “virtuales” (no físicos) que solo
indican dicho estado y que se relacionaran posteriormente con el estado actual
de los contactos físicos para determinar si la corriente circula o no para de tal
manera determinar si el RLO final de la cadena es 1 o 0, es decir para
redondear el concepto: el contacto NA o NC en el PLC no representa el estado
físico del mismo en reposo sino si hay o no tensión en la entrada o salida
correspondiente.
Este concepto es muy poderoso a la hora de elaborar un programa, ya que al
no ser los contactos del programa contactos físicamente existentes, yo puedo
evaluar el estado de una señal cualquiera las veces que quiera a lo largo de mi
programa, analizando si la señal esta activada o no sin la necesidad de agregar
contactos externos físicamente existentes.

Control Automático / Programación PLC Apuntes de la Cátedra


42

Para resumir el concepto anterior:

Esquemas funcionales Consulta en PLC


Representación PLC

EJEMPLOS DE LOGICA COMBINACIONAL

Combinación AND

Control Automático / Programación PLC Apuntes de la Cátedra


43

Combinación OR

AND antes de OR

Control Automático / Programación PLC Apuntes de la Cátedra


44

OR antes de AND

2.- OPERACIONES DE TIEMPO

Las operaciones de tiempo permiten programar los temporizadores internos del


autómata. Existen diversos tipos de temporizadores y para utilizarlos se deben
ajustar una serie de parámetros:

· Arranque del temporizador: conjunto de contactos que activan el


temporizador, conectados como se desee.

· Carga del tiempo: la forma habitual es mediante una constante de tiempo,


pero pueden haber otros ajustes, p.e. leyendo las entradas, un valor de una
base de datos, etc.

· Reset del temporizador : conjunto de contactos que ponen a cero el


temporizador, conectados como se desee.

La norma IEC reconoce tres tipos básicos de temporizadores, según su


comportamiento ante la señal de disparo, los cuales serán:

● Temporizador con retardo a la conexión

La operación Temporizador con retardo al conectar (TON) cuenta el tiempo al


estar activada (ON) la entrada de habilitación.
El Temporizador con retardo al conectar (TON) cuenta intervalos de tiempo
hasta alcanzar el valor prefijado, cuando la entrada de habilitación (IN) cambia

Control Automático / Programación PLC Apuntes de la Cátedra


45

a “verdadero”. Si el tiempo transcurrido (ET) es igual al tiempo prefijado (PT),


se activará el bit de salida del temporizador (Q). El bit de salida se pone a “0”
cuando se desactiva la entrada de habilitación. Cuando se alcanza el tiempo
prefijado (PT), la temporización se detiene y el temporizador se inhibe.

● Temporizador con retardo a la desconexión

El Temporizador con retardo al desconectar (TOF) retarda la puesta a “0”


(OFF) de una salida durante un período determinado tras haberse desactivado
(OFF) una entrada. Temporiza hasta el valor prefijado cuando se desactiva la
entrada de habilitación (IN). Si el tiempo transcurrido (ET) es igual al tiempo
prefijado (PT), se desactivará el bit de salida del temporizador (Q). Una vez
alcanzado el valor prefijado, se desactiva el bit de salida del temporizador y el
tiempo transcurrido se mantiene hasta que se activa la entrada de habilitación
(IN). Si la entrada de habilitación (IN) se desactiva durante un período inferior al
tiempo prefijado, el bit de salida seguirá activado.

●Temporizador por impulsos

El Temporizador por impulsos (TP) genera impulsos de una duración


determinada.
Cuando el estado de señal de la entrada de habilitación (IN) es “1”, se activa el
bit de salida (Q). Éste último permanece activado durante el impulso indicado
en el tiempo prefijado (PT). Cuando el tiempo transcurrido (ET) alcanza el valor
prefijado (PT), se desactiva el bit de salida (Q). El tiempo transcurrido se
conserva hasta que se desactiva la entrada de habilitación. Cuando se active el
bit de salida, permanecerá en ese estado hasta que haya transcurrido el tiempo
prefijado.

Control Automático / Programación PLC Apuntes de la Cátedra


46

Adicionalmente a los temporizadores mencionados algunos modelos de PLC’s


agregan dos temporizadores mas, que son:

● Temporizador con retardo a la conexión memorizado, el cual es un


temporizador con retardo a la conexión en el que aunque desaparezca la señal
de entrada sigue contando tiempo, y una vez que alcanzó el valor preseteado
pone a 1 la salida, esta salida permanece a “1” hasta que se aplique una señal
en la entrada “Reset” del temporizador.

● Temporizador de impulso memorizado, el cual es un temporizador de


impulso en el que aunque desaparezca la señal de entrada sigue contando
tiempo, y una vez que alcanzó el valor preseteado pone a 0 la salida, esta
salida permanece a “0” hasta que se aplique nuevamente una señal en la
entrada de habilitación del temporizador.

- Exactitud del valor de un temporizador

Dado que el PLC utiliza internamente impulsos de reloj para el funcionamiento


de toda su lógica binaria, los temporizadores utilizan el mismo para determinar
el tiempo transcurrido, es decir que en realidad los temporizadores no cuentan
el tiempo en forma absoluta sino que determinan el intervalo a través de la
cuenta de una cantidad determinada de pulsos. Esta cuestión es la que trae a
colación el concepto de “Base de Tiempo” de los temporizadores. En efecto
para poder determinar los tiempos, el PLC dispone internamente de
generadores de pulsos con períodos de la onda perfectamente determinados,
así tendrá “relojes” con impulsos cada 1 ms, cada 10 ms, cada 100 ms y cada
1 s (no en todos los equipos están todas las bases de tiempo), y simplemente
si yo conté por ejemplo 100 pulsos con el reloj de 1ms sé que ha transcurrido
un tiempo de 100 ms.
El problema de este sistema de determinación de los tiempos es que mas allá
de la imprecisión posible de las frecuencias de los relojes, la cual por cierto es
muy baja, el error posible en la determinación es de un impulso de la base de
tiempo, en efecto si yo arranco un temporizador un infinitésimo de tiempo
después que el reloj realizó el flanco ascendente, el contador asociado al
temporizador va a tomar como comienzo del ciclo de cuenta el próximo flanco,
por lo que en mi medida de tiempo perdí un ciclo.
Esta simple observación me indica que es siempre conveniente utilizar para los
temporizadores la base de tiempo mas chica posible (limitado obviamente por
el valor máximo de cuenta posible en el temporizador).
Algunos equipos realizan esta operación en forma automática, es decir,
seleccionan por si mismos la base mas conveniente, pero si esto no es así
habrá que tomar los recaudos necesarios, y no elegir por ejemplo una base de

Control Automático / Programación PLC Apuntes de la Cátedra


47

tiempo de 1 s para contar un tiempo de 2 s.

3.- OPERACIONES DE CONTAJE

● Contador ascendente

La operación Contador ascendente (CTU) cuenta hacia adelante desde el valor


actual hasta el valor prefijado (PV) al producirse un flanco positivo en la entrada
de contaje adelante (CU). Si el valor actual (CV) es mayor o igual al valor
prefijado, se activa el bit de contaje (Q). El contador se inicializa al activarse la
entrada de desactivación (R). El contador ascendente se detiene al alcanzar el
valor prefijado.
● Contador descendente

La operación Contador descendente (CTD) empieza a contar atrás desde el


valor prefijado (PV) cuando se produce un flanco positivo en la entrada de
contaje atrás (CD). Si el valor actual (CV) es igual a cero, se activa el bit de
salida del contador (Q). El contador se inicializa y carga el valor actual en el
valor prefijado cuando se habilita la entrada de carga (LD). El contador
descendente se detiene al alcanzar el valor cero.

● Contador ascendente/descendente
La operación Contador ascendente/descendente (CTUD) cuenta adelante o
atrás desde el valor actual (CV) al producirse un flanco positivo en la entrada
de contaje adelante (CU) o de contaje atrás (CD), respectivamente.
La salida ascendente (QU) se activa cuando el valor actual (CV) es igual al
valor prefijado. La salida descendente (QD) se activa cuando el valor actual
(CV) es igual a cero. El contador carga el valor actual en el valor prefijado (PV)
cuando se habilita la entrada de carga (LD). De forma similar, el contador se
inicializa y carga el valor actual con 0 cuando se habilita la desactivación (R). El
contador se detiene cuando alcanza el valor prefijado, o bien 0.

Control Automático / Programación PLC Apuntes de la Cátedra


48

4.- EJEMPLOS DE PROGRAMACION

Antes de empezar con los ejemplos de programación veamos como es


físicamente un PLC típico:

4.1.- Dos ejemplos básicos

Empecemos con un ejemplo muy simple, supongamos que deseamos controlar


un arranque y parada de un motor a través del PLC.
Una primera cuestión importante es que el PLC será el equivalente del circuito
eléctrico funcional y solo manejará la parte de control, obviamente los circuitos
de potencia serán necesarios en ambos casos, pues ninguno de los dos
sistemas posee la capacidad de manejar los niveles de corriente necesarios.

En primera instancia veamos el circuito de control en su forma “clásica”:

Control Automático / Programación PLC Apuntes de la Cátedra


49

Por simplicidad se han omitido algunos elementos tal como las protecciones
necesarias (térmicos, fusibles, etc.)

¿Como se debería resolver este comando en un PLC?.


Primero que nada veamos el conexionado físico de los elementos del circuito:

Control Automático / Programación PLC Apuntes de la Cátedra


50

Un aspecto que surge inmediatamente es que no existe una entrada asignada


al contacto K1 responsable de la retención de la bobina del contactor.
Entonces: ¿Cómo se obtiene la retención?

Veamos como se vería el programa en el PLC.

Lo que se observa en la figura anterior es un típico segmento elaborado en


lenguaje LADDER, donde los contactos trabajan sobre el criterio indicado mas
arriba, es decir evaluando los estados de señal de los mismos.

Otra cosa diferente al circuito eléctrico que vemos al desarrollar nuestro


programa en LADDER es que el contacto correspondiente al pulsador de
parada se representa como NA lo que plantea el interrogante: ¿Porqué se usa
un contacto NA para evaluar el pulsador de parada si este es un pulsador NC?

Estas particularidades que diferencian el “circuito” en LADDER del circuito


cableado se deben a:

1) El contacto del pulsador de parada es un contacto NA a diferencia del


circuito cableado donde es un NC. Esto se debe precisamente a que el
contacto en LADDER no es un contacto físicamente existente sino que
lo que estoy elaborando es la pregunta de si la señal es 1 o 0. En tal
caso para que la corriente circule y se habilite la salida cuando yo
apriete el pulsador de arranque, y dado que el pulsador de parada es un
NC, y en consecuencia la señal en la entrada respectiva está en 1(I0.1),
lo que debo evaluar es si la señal es 1 o no lo que se hace en LADDER
(como ya se ha indicado mas arriba) en base a un contacto NA.

2) La retención se logra gracias a un contacto NA que lo que hace es


evaluar el estado de la salida que alimenta el contactor, por lo cual no
necesito utilizar una entrada que copie el estado físico del contactor,
sino simplemente a través del contacto NA responder la pregunta de si
hay o no tensión en la salida.

Veamos otro sencillo ejemplo donde podamos observar nuevamente las


particularidades que tiene un programa de PLC en cuanto al análisis de las
señales de los elementos físicos conectados al mismo y como aparecen y se
manejan los contactos “virtuales” dentro del mismo.

Para tal fin estudiaremos un circuito de inversión de marcha, es decir aquel

Control Automático / Programación PLC Apuntes de la Cátedra


51

donde tendré dos pulsadores de arranque (uno para cada sentido de giro), un
pulsador de parada general y dos contactores.

El circuito eléctrico simplificado sería:

Como detalle a destacar vemos que el circuito requiere ahora de 2 contactos


auxiliares para cada uno de los contactores, uno NA para la retención del
mismo y otro NC necesario para el enclavamiento que previene el ingreso
simultáneo de ambos contactores.

Como se resolvería esto en el PLC?

Control Automático / Programación PLC Apuntes de la Cátedra


52

Analicemos las características del programa en el PLC.

a) En primer lugar las conexiones de entrada y salida del PLC serán:

● Pulsador de arranque a Izquierda (I0.0)


● Pulsador de arranque a Derecha (I0.2)
● Pulsador de Parada (I0.1)
● Salida de contactor a Izquierda (Q0.0)
● Salida de contactor a Derecha (Q0.1)

Nuevamente no tenemos entradas para los contactos de retención, ya que los


mismos se obtendrán “preguntando” los estados de las señales de las salidas
respectivas.

b) Tenemos ahora dos líneas de contactos que terminan en las bobinas de


los contactores respectivos, se observa que ambas líneas son similares a la
elaborada en el arranque/parada simple del primer ejemplo, solo se agregan
los contactos necesarios para los enclavamientos cruzados de los contactores.
Cada una de estas líneas representa en consecuencia las condiciones que
deben cumplirse para que la salida respectiva se active y alimente la bobina del
contactor correspondiente.

Respecto de este ejemplo surgen los siguientes comentarios:

1) El estado del pulsador de parada es evaluado en las dos líneas del


programa, dicha evaluación se hace en base a sendos contactos NA,
pero es necesario destacar que esto no implica la utilización de nuevas
entradas en el PLC, ya que dichos contactos son “virtuales” pues lo
único que estoy haciendo es “preguntar” cual es el estado de la señal
que proviene de la entrada I0.1.
Este criterio de múltiple utilización del estado de una variable es válido
para cualquier señal que necesite evaluar dentro de mi programa, es
decir el agregado de contactos para determinar si tal o cual entrada o
salida está en 0 ó 1 no implica modificaciones en el cableado externo del
PLC.
La limitación en la cantidad máxima de contactos que puedo agregar en
mi programa es solo una cuestión de la memoria disponible para el
mismo.

2) Al observar el circuito eléctrico veo que hay tres contactos que


físicamente son NC: uno es el pulsador de parada y los otros dos son los
enclavamientos cruzados correspondientes a los contactores. Ahora
bien cuando pasamos al programa del PLC observamos que se les da
un tratamiento distinto, ya que el pulsador de parada se evalúa como NA
(pregunto por 1) y los enclavamientos se evalúan como NC (pregunto
por 0), esta diferencia se origina en que es lo que busco analizar en
cada caso.
En el primer caso lo que estoy intentando verificar es que el pulsador de
parada no se haya accionado, es decir que no haya una orden de
parada que indique que se deba interrumpir la alimentación de los

Control Automático / Programación PLC Apuntes de la Cátedra


53

contactores, por eso pregunto por 1 (contacto NA).


En el segundo caso lo que quiero verificar es que antes de cerrar
cualquiera de los contactores el otro se encuentro sin alimentación, es
decir lo que estoy controlando es el enclavamiento cruzado, por eso
pregunto por 0 (contacto NC).

Estos ejemplos, a pesar de ser sumamente elementales en términos de las


amplias posibilidades de control de un PLC, nos plantean algunas reglas
básicas a la hora de elaborar programas que nos sirvan para controlar
operaciones o procesos:

● Si se quieren convertir o trasladar sistemas de lógica cableada a un sistema


de lógica programada, no se puede simplemente copiar el circuito eléctrico en
el programa del PLC, sino que se deberá estudiar en primer lugar cuales son
las señales externas que realmente deben ingresar al PLC y cuales se podrán
obtener “virtualmente” y luego analizar como se establecerán los
enclavamientos correspondientes ya que probablemente se puedan o deban
realizar de una manera distinta a la que se utiliza en un sistema cableado.
En todo caso si dispongo del circuito eléctrico el mismo me servirá solo como
guía respecto de las condiciones de marcha, parada, enclavamientos, etc. Y no
como algo a copiar estrictamente en mi programa.

● No existen reglas fijas o escritas sobre como debo colocar los contactos en
mi programa (NA o NC), sino que lo que se debe determinar es que resultado
final quiero que se lleve a cabo en función del estado de las señales
involucradas, es decir cual debe ser el resultado final en función del resultado
lógico (el RLO mencionado mas arriba) de los contactos, o dicho en palabras
mas sencillas: que quiero que pase en función de que las señales presentes
estén en 1 o 0.

● Recordar que en un programa de PLC no existen las limitaciones de los


circuitos eléctricos donde cada nueva condición debe ir acompañada de un
contacto físico que la represente, sino que puedo agregar condiciones de
marcha, parada y enclavamientos solo con la incorporación de nuevos
elementos virtuales.

Como consecuencia de lo antedicho quizá lo mas conveniente a la hora de


diseñar un programa sea no pensarlo como si fuera un circuito eléctrico, sino
que debiera estudiar las condiciones de funcionamiento de mi sistema y tener
en mente todas las posibles situaciones que generen potenciales conflictos en
la operación del sistema (los “¿que pasa si?”).

Control Automático / Programación PLC Apuntes de la Cátedra


54

4.2.- Marcas y Flancos

Marcas

Como se ha indicado en el punto correspondiente a Operandos y


Direccionamiento la zona de memoria correspondiente a las marcas se utiliza
para almacenar resultados intermedios del programa, pero tiene una diferencia
fundamental respecto de la memoria utilizada para almacenar el estado de las
entradas y salidas (Imagen del Proceso), ya que las marcas a diferencia de
estas que actualizan su estado al final del ciclo se activan y desactivan
inmediatamente cuando son evaluadas en el programa. Este hecho debe ser
tenido en cuenta ya que acarrea consecuencias a la hora de analizar el
comportamiento del programa como veremos.

Flancos

Los flancos son contactos especiales que se utilizan para evaluar el cambio de
estado de una señal, es decir determinan si el RLO que los precede cambió de
0 a 1 (Flanco positivo) o cambió de 1 a 0 (Flanco negativo). Estos contactos
habilitan el paso de la corriente momentáneamente: El contacto Detectar flanco
positivo permite que la corriente circule durante un ciclo cada vez que se
produce un cambio de “0” a “1” (de “off” a “on”) en el RLO. El contacto Detectar
flanco negativo permite que la corriente circule durante un ciclo cada vez que
se produce un cambio de “1” a “0” (de “on” a “off”) en el RLO.

A continuación plantearemos un problema que incorpora flancos y marcas para


poder analizar las características de los mismos.
Se trata de desarrollar un relé biestable, es decir aquel que al actuar sobre un
pulsador me active una salida y que si pulso nuevamente me desactive la
misma.
A partir de este punto prescindiremos del circuito eléctrico, ya que no es
necesario de aquí en adelante.

El programa quedaría de la siguiente manera:

Control Automático / Programación PLC Apuntes de la Cátedra


55

Si partimos de la siguiente situación inicial en un ciclo cualquiera del PLC

Donde las líneas llenas indican el estado de las señales y la circulación de la


corriente, vemos que la entrada I0.0 no está activada.

Control Automático / Programación PLC Apuntes de la Cátedra


56

Si a continuación ponemos dicha entrada en 1 en el siguiente ciclo tendríamos


la siguiente situación:

Vemos en el Segmento1 que el contacto de flanco positivo se activó ya que el


RLO previo (en este caso solo la entrada I0.0) pasó de 0 a 1 y por lo tanto la
marca M0.0 paso a estar en 1.
En el Segmento2 y dado que la salida Q0.0 estaba previamente en 0 se activa
la marca M0.1.
El Segmento3 la marca M0.2 no experimenta variación ya que no obstante
estar la marca M0.0 en 1 la salida Q0.0 sigue en 0.
Ya en el Segmento4 se cumplen las condiciones para que la salida Q0.0 se
active y que dicha salida quede retenida.

Nota:

Observar que a pesar de que la salida Q0.0 se ha activado en el segmento


correspondiente, la consulta con el contacto NA de retención permanece en “0”,
esto es debido a que dicha consulta se realiza sobre la imagen del proceso, la
cual solo se actualizará al final del ciclo del PLC, por lo cual dicho contacto se
pondrá en 1 al comenzar el siguiente ciclo.

Control Automático / Programación PLC Apuntes de la Cátedra


57

Si mantenemos la entrada I0.0 activada y pasamos al próximo ciclo veremos la


siguiente situación respecto de las señales presentes:

Se observa claramente que a pesar de que la entrada I0.0 sigue en estado


activo (señal en 1) el contacto de flanco pasó a tomar un estado 0, es decir se
desactivó. Por supuesto esto hace que la marca M0.0 caiga a 0 también, por lo
cual no afecta a las marcas M0.1 y M0.2 las que ambas tiene estado 0 con lo
cual la salida Q0.0 que estaba retenida lo sigue estando y lo seguirá estando
hasta tanto la marca M0.2 se active y haga caer dicha retención.

Control Automático / Programación PLC Apuntes de la Cátedra


58

Si ahora desactivo la entrada I0.0 la situación en el ciclo siguiente será:

Es decir nada ha cambiado puesto que el contacto de flanco solo detecta el


paso de 0 a 1 y en consecuencia las marcas M0.1 y M0.2 que son las
responsables de manejar la activación y desactivación de Q0.0 permanecen en
0.

Control Automático / Programación PLC Apuntes de la Cátedra


59

Si la entrada I0.0 vuelve a cambiar su estado de 0 a 1, veríamos en el ciclo


siguiente:

Y aquí queda claro como funciona la desactivación, ya que al pasar la señal de


I0.0 de 0 a 1 se vuelve a poner a 1 el contacto de flanco y dado que la salida
Q0.0 estaba en 1 ahora la que cambia de estado es la marca M0.2 la que pasa
a estar en 1 con lo que se desactiva el contacto NC que la representa en el
Segmento4 cayendo en consecuencia la salida Q0.0.

Control Automático / Programación PLC Apuntes de la Cátedra


60

Si pasamos al siguiente ciclo con la entrada I0.0 aun activa la situación será:

Por supuesto una vez que liberemos a la entrada I0.0 volveríamos a la


situación inicial en la que I0.0 está abierta y Q0.0 está también desactivada
quedando el sistema en condiciones de procesar un nuevo cambio de estado
para la I0.0 y repitiendo la secuencia de activación ya vista.

Lo importante es recordar que para que la activación ó desactivación de la


salida Q0.0 ocurra se debe producir necesariamente un cambio de 0 a 1 en la
señal de I0.0, ya que de lo contrario el programa no toma ninguna acción, es
decir deja el estado de Q0.0 en aquel que se encuentra (ya sea 0 ó 1)
independientemente de si I0.0 está en 0 o en 1.

Control Automático / Programación PLC Apuntes de la Cátedra


61

4.3.- Temporizadores y Contadores

Al respecto de los temporizadores corresponde hacer una primera aclaración:


Si bien la norma IEC prevé cinco tipos diferentes de temporizadores, por
razones de Hardware y Software muchos PLC’s pequeños y medianos no los
implementan a todos, razón por la cual en caso de no estar disponibles se
deberán elaborar estrategias para desarrollarlos con aquellos que si estén
presentes en el equipo en cuestión.
De los cinco tipos disponibles el que casi con absoluta certeza estará presente
en todos los PLC’s es el temporizador con retardo a la conexión (TON), por lo
que a modo de ejemplo desarrollaremos un temporizador de impulso
memorizado (TPR) en base a un TON.

Veamos el programa:

En primer lugar observamos que aparecen dos nuevas instrucciones en las


salidas: (S) y (R), estas dos instrucciones se diferencian de las bobinas
clásicas ya vistas en el sentido de que representan una salida autoretenida, es
decir aunque el RLO que la preceda cambie de estado si en la salida coloqué
una bobina (S) esta mantendrá su estado en 1 hasta que una instrucción (R) la
haga caer al estado 0.
En base a este criterio queda entonces claro cómo actúa el programa, ante la
activación de la entrada I0.0 se pone a 1 la salida Q0.0 lo que dispara el
temporizador T37, cuanto este alcanza el tiempo prefijado actúa sobre la
instrucción (R) haciendo caer la salida Q0.0, dado que luego de la I0.0 tengo un
flanco aunque la entrada I0.0 permanezca en 1 el ciclo igual se cumple.

Control Automático / Programación PLC Apuntes de la Cátedra


62

Activación de la salida Q0.0 por un pulso en I0.0

Desactivación de la salida Q0.0 por tiempo cumplido

Control Automático / Programación PLC Apuntes de la Cátedra


63

Diagrama de tiempos con impulso en I0.0

Diagrama de tiempos con I0.0 constante

Este tipo de temporizadores (TPR) posee una entrada de Reset que me


permite parar el mismo antes del tiempo prefijado, para implementar esta
característica será suficiente colocar el contacto de Reset (en este caso la I0.0)
en paralelo con el contacto del temporizador que actúa sobre la instrucción
(R).

Control Automático / Programación PLC Apuntes de la Cátedra


64

Diagrama de tiempos con reset por la I0.1

Otras cuestiones a tener en cuenta respecto de los temporizadores son:

1) Los temporizadores pueden ser evaluados no solo por su estado, es


decir evaluar el bit del mismo por 0 o 1, sino que también puedo
visualizar y/o evaluar el valor actual de tiempo.

2) El número que coloco en el temporizador como valor de tiempo a contar


no necesariamente debe ser un valor fijo, sino que puedo cargarlo desde
una variable en formato de palabra.

Aquí por ejemplo estoy cargando en el segmento 1 el valor de tiempo a contar


desde la palabra de marcas MW10 y en el segmento 2 si el tiempo es mayor o
igual a 30 segundos activo la salida Q0.0.

Control Automático / Programación PLC Apuntes de la Cátedra


65

Contadores

Aprovechando el ejemplo elaborado para el temporizador desarrollaremos


ahora un ejemplo de uso de un contador ascendente. En este ejemplo el
contador deberá contar hasta 5 y activar un temporizador TPR de 2 segundos.
Veamos como sería mi programa:

El funcionamiento es evidente, cada vez que pulso sobre la entrada I0.0 el


contador incrementa su valor y cuando llega al valor prefijado dispara el
temporizador, a su vez al activarse la salida Q0.0 la misma pone a 0 el
contador dejándolo preparado para una nueva cuenta.
Si vemos el diagrama temporal del sistema se puede observar claramente
cómo evolucionan los diferentes elementos involucrados.

Control Automático / Programación PLC Apuntes de la Cátedra


66

Otras cuestiones a tener en cuenta respecto de los contadores son:

1) Los contadores pueden ser evaluados no solo por su estado, es decir


evaluar el bit del mismo por 0 o 1, sino que también puedo visualizar y/o
evaluar el valor actual de cuenta (algo similar al caso de los
temporizadores).

2) El número que coloco en el contador como valor de cuenta a alcanzar no


necesariamente debe ser un valor fijo, sino que puedo cargarlo desde
una variable en formato de palabra.

3) Los contadores son activados por flancos, es decir para que el valor
contado se incremente se debe registrar un cambio de 0 a 1 en la
entrada del contador.

Control Automático / Programación PLC Apuntes de la Cátedra


67

5.-PROGRAMACIÓN DEL S7-200


Para la programación del S7-200 se utiliza el software MicroWin provisto por
SIEMENS fabricante del PLC.
Veremos a continuación los pasos necesarios para crear proyectos en
MicroWin, esto incluye:

● Configuración del hardware


● Creación y programación de programas
● Manejo de tablas de símbolos
● Prueba y depuración de programas

Al iniciar el software aparece la siguiente pantalla:

● Arbol de operaciones

Aquí aparecen las diferentes operaciones admitidas por el S7-200, de las listas
desplegables elegiré aquella operación que necesite programar en mi solución
de automatización.
Este árbol cambiará ligeramente según en que lenguaje esté programando, ya
que por ejemplo si estoy en AWL (IL), por ser un lenguaje de texto, solo tendré
en la lista las instrucciones en dicho formato; en cambio si trabajo en KOP
(LADDER) aparecerán los contactos y cuadros correspondientes a las
instrucciones respectivas.

Control Automático / Programación PLC Apuntes de la Cátedra


68

Un aspecto importante referido a este árbol de operaciones es que el mismo


indicará cuales operaciones estarán disponibles en función de la CPU elegida.
Por ejemplo:

Donde las operaciones marcadas con una cruz roja


no estarán habilitadas para la CPU elegida.

● Area de programación

Aquí es precisamente donde desarrollaré las instrucciones de mi programa de


usuario, en la medida que ingrese instrucciones tomándolas desde el árbol de
operaciones, o bien ingresando el texto si programo en AWL.
En el caso de trabajar en KOP existen en la parte superior botones de acceso
rápido que me permiten colocar los elementos mayormente utilizados como son
los contactos, bobinas y líneas de interconexión de las mismas.
También en la parte superior se encuentra un botón que me permite agregar o
eliminar fácilmente segmentos de programa.

Control Automático / Programación PLC Apuntes de la Cátedra


69

Asimismo tendré botones para transferir el bloque al PLC y observarlo mientras


corre el programa en el mismo.

● Area de información

En esta área el programa me suministra información pertinente a la hora de


programar, tal como si se ha introducido elementos o valores no validos para
determinada instrucción, el tamaño del programa que se ha elaborado, etc.

● Barra de navegación

La barra de navegación como su nombre lo indica me permite desplazarme


hacia las diferentes funciones de las que dispone el software, tales como la
configuración de la comunicación, la tabla de símbolos, referencias cruzadas,
etc. Ya veremos a lo largo del desarrollo que sigue algunas de estas
características.

5.1.- ELABORACION DE PROGRAMAS EN MicroWIN

Aclaraciones pertinentes

Las indicaciones que se desarrollan a continuación deben entenderse como


lineamientos básicos para la elaboración de programas en MicroWIN, no
obstante la secuencia de operaciones aquí indicada solo debe interpretarse
como la recomendada para dicha elaboración, quedará al criterio del
programador si sigue o no las indicaciones aquí establecidas, ya que en ciertas
circunstancias será necesario establecer otras secuencias.
Esta guía no reemplaza los manuales del fabricante, los cuales deberán estar
disponibles a la hora de programar, ya que es en ellos, en la documentación en
línea y en los archivos de ayuda contextuales donde se describen en detalle las
características, propiedades y funciones del software y los equipos de
automatización.

5.1.1.- Ajustar la comunicación

Si no se ha hecho previamente es conveniente ajustar los parámetros de


comunicación antes de empezar cualquier otra tarea de programación.
Como primera indicación digamos que el software al instalarse establece como
interface estándar de comunicación al cable PPI conectado a través de un
puerto serie RS232 a una velocidad de 9,6 kbit/s.
De todas maneras será necesario verificar que el puerto COM utilizado se
corresponda con el ajustado en el software, o bien si se utiliza otro tipo de
cable tal como el USB se deberán modificar los parámetros por defecto de la
comunicación.
Para ejecutar esta tarea los pasos a seguir son los siguientes:

1) Se abre desde la barra de navegación el cuadro Ajustar Interface PG/PC

Control Automático / Programación PLC Apuntes de la Cátedra


70

Con lo que me aparecerá el siguiente cuadro:

En este cuadro remarcamos la opción PC/PPI cable(PPI) ya que si tenemos


otros software instalados aparecerán las diferentes opciones de los mismos.
Una vez seleccionada dicha opción pulsando sobre el botón Propiedades
aparecen las diferentes características que se pueden ajustar para la
comunicación.

Control Automático / Programación PLC Apuntes de la Cátedra


71

Particularmente se deberá ajustar la velocidad de comunicación si se ha


cambiado la misma en la CPU utilizada y en la pestaña conexión local se
ajustará el puerto utilizado (COM o USB) y en el caso del puerto COM la
dirección del mismo se deberá seleccionar en función de cual de los
disponibles en el equipo de programación se esté utilizando.

Para verificar que el ajuste es correcto y estando conectada la o las CPU’s se


debe pulsar en la barra de navegación sobre el ícono Comunicación

Con lo que se abre un nuevo cuadro:

Si los ajustes han sido correctos haciendo doble click sobre el cuadro ubicado a
la derecha que precisamente indica Haga doble clic para actualizar deberían
aparecer la o las CPU’s conectadas indicando su/s dirección/es en la red, el
tipo de CPU y la versión de Firmware correspondiente.

5.1.2.- Establecer el hardware a utilizar

Como ya se ha dicho mas arriba las CPU’s dispondrán de ciertas instrucciones


habilitadas en función de cual sea su modelo, por lo tanto es de una buena
práctica establecer inicialmente con cual CPU se va a trabajar en el proyecto, lo
que haremos a través del menú CPUTipo… o bien haciendo doble click
sobre el dibujo de la CPU ubicado en el Arbol de Operaciones

Control Automático / Programación PLC Apuntes de la Cátedra


72

De cualquiera de las formas que lo hagamos se abrirá un cuadro donde


podremos elegir el tipo de CPU, lo que ajustará en el árbol de operaciones las
disponibles para la CPU seleccionada

En caso de que la CPU ya esté conectada a mi equipo de programación puedo


como opción pulsando sobre el botón Leer CPU determinar a través de la
interface de comunicación el tipo de CPU conectada.
En cualquiera de los casos al pulsar sobre el botón Aceptar el proyecto se
ajustará automáticamente a la CPU seleccionada.
Alternativamente si ajusto la comunicación como se indicó en el punto
respectivo, al hacer doble click sobre el ícono de actualización de la
comunicación la CPU se ajustará automáticamente.

5.1.3.- Ajustes de la CPU

A través de los ajustes de la CPU se puede modificar el comportamiento de la


misma frente a diferentes circunstancias. Dado que la cantidad de ajustes
posibles es importante solo se mencionarán aquí aquellos mas significativos
para una programación básica.
Para acceder a los ajustes de la CPU se debe pulsar sobre el ícono Bloque de
Sistema

Con lo que se accede al cuadro de dialogo respectivo.


Al igual que en el caso de las operaciones solo se mostrarán y/o habilitarán
aquellas disponibles para la CPU, por ejemplo si la CPU solo dispone de un
puerto de comunicación solo se habilitará el mismo o como en el cuadro de
ejemplo que se coloca a continuación se deshabilitarán las opciones no
disponibles para la configuración de la CPU.

Control Automático / Programación PLC Apuntes de la Cátedra


73

Elementos configurables

5.1.3.1.- Puertos de comunicación

Marcando esta opción podemos ajustar los parámetros de comunicación de la


interface de la CPU, obviamente los 2 mas importantes son la velocidad de
comunicación y la dirección en la red. En caso de que se trabaje con una sola
CPU y se utilice el cable estándar PPI se recomienda no cambiar los ajustes
por defecto.
En caso de trabajar con una red que tenga mas de una CPU es aconsejable
cambiar por lo menos la dirección de la CPU por otra distinta a 2, ya que esta
es la que por defecto trae la CPU de fábrica, por lo que si es necesario efectuar
un reemplazo pueden aparecer conflictos con otras CPU’s.

5.1.3.2.- Areas remanentes

En esta ficha se define cuales datos se respaldarán tras un corte de la


alimentación del PLC.
Se pueden definir hasta seis áreas remanentes para seleccionar las áreas de
memoria que se deban respaldar cuando se interrumpa la alimentación. Es
posible determinar los rangos de direcciones que serán remanentes en las
áreas de memoria V, M, C y T. En el caso de los temporizadores, sólo se
pueden respaldar los temporizadores con memoria (TONR). Además,
únicamente los valores actuales de los temporizadores y contadores se pueden
definir como remanentes, en consecuencia los bits de temporización y contaje
se ponen a 0 en cada arranque de la CPU.

Control Automático / Programación PLC Apuntes de la Cátedra


74

En caso de que los datos remanentes se pierdan por falla en la pila, o bien por
que se ha descargado el condensador de respaldo la memoria RAM se borra
completamente y se pone a 1 el bit SM0.2 para indicar dicha circunstancia.

5.1.3.3.- Contraseña

Se pueden establecer diferentes niveles (4 niveles) de permiso para acceder al


programa y los datos del PLC de manera tal de evitar el acceso y/o la
modificación no autorizada del mismo.

5.1.3.4.- Configurar salidas

La tabla de salidas digitales permite ajustar éstas últimas a estados seguros


tras un cambio de RUN a STOP, o bien conservar los estados existentes de las
salidas antes del cambio a modo STOP. Esto es, aquí puedo definir cual es la
acción que deben tomar las salidas digitales para evitar daños en los equipos o
personas en caso de que por cualquier motivo (en general una falla de
hardware o software) el PLC cambie su estado de operación. Se pueden
establecer 2 posibles acciones:

Congelar las salidas en su último estado: Al hacer clic en esta casilla de


verificación todas las salidas digitales se congelan en su último estado cuando
la CPU cambia de RUN a STOP, es decir aquellas que estaban en 1
permanecerán en 1 y las que estaban en 0 seguirán en 0.

Congelar estados: Esta tabla sirve para ajustar las salidas a un estado
conocido al producirse un cambio de RUN a STOP. Haciendo clic en la casilla
de verificación correspondiente a cada salida que se desea activar (poner a 1)
esta pasará a dicho estado cuando se pase de RUN a STOP.

El ajuste estándar de las salidas en un cambio de RUN a STOP es OFF (0), es


decir si no activo nada en esta parte del bloque de sistema al parar el PLC este
lleva todas las salidas a 0.

5.1.3.5.- Filtrar entradas

Aquí es precisamente donde se ajusta el retardo de las entradas digitales a los


fines de evitar disparos erróneos o espurios debidos a ruidos o rebotes de
contacto.
Si cambia el estado de una entrada, ésta deberá conservar su nuevo estado
durante el tiempo de retardo determinado para que sea aceptado como válido.

Nota: Para que cualquiera de los ajustes de la CPU anteriormente indicados


tenga vigencia deberán previamente ser cargados en el PLC. Esto es
particularmente importante en el caso de la velocidad y dirección de la
comunicación, ya que en una CPU nueva la carga se deberá hacer con la
comunicación configurada por defecto, es decir 9,6 kbit/s y en la dirección 2;
una vez cargada la modificación se deberá reajustar la interface de

Control Automático / Programación PLC Apuntes de la Cátedra


75

comunicación a los nuevos parámetros para que la conexión se pueda llevar a


cabo ya que de lo contrario perderé la comunicación con mi CPU.

5.1.4.- Elaboración del programa

Una vez configurados los ajustes iniciales antes indicados estamos en


condiciones de ingresar las instrucciones que conformarán mi programa de
usuario.
Para hacerlo trabajaremos sobre el área de la ventana que hemos indicado
mas arriba como Area de Programación, dicha área esta dividida en
Segmentos (los que aparecen designados como Network1, Network2, etc.), los
que en principio responden al criterio de programación en LADDER y que
intentan semejar los circuitos eléctricos funcionales (con las salvedades ya
mencionadas).
Todos los segmentos tienen diferentes partes fácilmente reconocibles:

● Zona de título: me permite asignar una designación personalizada a cada


uno de los segmentos, generalmente se utiliza para indicar la función que le he
asignado a dicho segmento en mi programa, por ejemplo: Arranque de cinta
transportadora, de manera que luego el seguimiento del programa resulte mas
simple.

● Zona de comentario: es también un área de texto, pero mas extensa, que


me permite agregar los comentarios necesarios respecto de la función del
segmento, de forma que se pueda indicar las características del mismo, los
criterios con los que se elaboró el algoritmo de control, alguna indicación sobre
las variables utilizadas, etc. En definitiva cualquier indicación que me permita
en el futuro interpretar adecuadamente los objetivos y alcances del segmento
en consideración.

● Zona de programación: esta zona por ser la mas importante desde el punto
de vista del objetivo del programa merece un mayor detalle en su análisis, lo
que haremos a continuación.

5.1.4.1.- Ingreso del programa en la PC

Obviamente el programa se elaborará primero en la PC para luego cargarlo en


el PLC.
A tal fin disponemos de las zonas de programación disponibles para cada
segmento, si bien no es tan evidente dichas zonas se encuentran divididas en
filas y columnas, las que serán mas evidentes si observamos que al picar con
el mouse en cualquier parte de la zona de programación del segmento se
establece un rectángulo que señala en que fila y columna estoy parado, lo que
se indica en la parte inferior derecha de la pantalla.

Control Automático / Programación PLC Apuntes de la Cátedra


76

En cada una de estas celdas se colocarán los diferentes elementos que


conformarán mi segmento de programa.

Reglas básicas para el diseño de los segmentos

Dado que la programación en LADDER intenta asemejarse a un circuito


eléctrico en el que se deben cumplir las condiciones para la circulación de
corriente existen ciertas reglas básicas que deben respetarse:

1) Las combinaciones de contactos siempre deben terminar en una bobina


o cuadro (temporizador, contador, etc.), es decir la corriente que se
origina en la línea izquierda debe terminar alimentando algún elemento
del lado derecho. Así por ejemplo no sería admisible:

2) Tampoco es posible dejar líneas interrumpidas en el medio de los


segmentos. Así por ejemplo no sería admisible:

3) Todos los cuadros y bobinas deben necesariamente tener contactos


previos, es decir no pueden conectarse directamente a la línea izquierda
de alimentación. En caso de que sea necesario que la bobina o cuadro
se elabore en forma incondicional existe una marca especial (SM0.0)
que permanece siempre en 1 la que puede utilizarse para este fin. No se
admite entonces:

Control Automático / Programación PLC Apuntes de la Cátedra


77

En tal caso si se desea habilitarlos sin condiciones previas se podría hacer lo


siguiente:

4) La circulación de corriente siempre es de izquierda a derecha, no se


puede hacer circular la corriente hacia el lado de la línea de alimentación
cuando se introduzcan los contactos. No se podrá por ejemplo:

Ingreso de operaciones en los segmentos

Para ingresar cualquier operación en los segmentos de un programa


simplemente debo posicionar el cursor en la fila y columna deseada (se debe
posicionar el rectángulo de referencia en dicho lugar) y luego existen diferentes
alternativas para colocar las operaciones en esa posición. Se puede:

1) Colocar el elemento de programa con un doble click en la operación


deseada en el Arbol de Operaciones.

Control Automático / Programación PLC Apuntes de la Cátedra


78

2) Arrastrar y soltar la operación a colocar.

3) Utilizar la barra de acceso rápido. Si se observan las barras de


herramientas se verá que dentro de las mismas se dispone de una en
particular que me permitirá “dibujar” los circuitos en LADDER.

Esta barra dispone de las herramientas para interconectar los elementos


del circuito: línea hacia abajo, línea hacia arriba, línea adelante y línea
atrás. Adicionalmente se agregan a la misma íconos de acceso rápido a
las operaciones en LADDER. Por ejemplo si picamos sobre el ícono de
los contactos aparecen todos los disponibles, de los cuales puedo elegir
aquel que necesite, lo mismo sucederá con las bobinas y los cuadros.

Una vez colocada la operación requerida en la posición deseada se deberán


ingresar los valores requeridos para la misma (Operando y/o parámetros de la
operación). Para indicar esto el software colocará signos de interrogación en

Control Automático / Programación PLC Apuntes de la Cátedra


79

todos aquellos puntos que requieran ingresar algún valor por parte del usuario
y que todavía no hayan sido escritos. Por ejemplo:

Aquí se observa claramente que aún no se ha establecido la dirección del


contacto NA, el número de temporizador y el ajuste de tiempo del mismo.
Para incorporar el valor deseado solo basta hacer click sobre los signos de
interrogación, lo que habilitará el ingreso o edición del dato. En caso de duda
sobre cual es el formato de los datos a ingresar posicionándose sobre el
elemento respectivo y pulsando la tecla F1 se abre la ayuda contextual que me
servirá de guía al respecto.

5.1.5.- Cargar el programa en el PLC

Una vez ingresadas las instrucciones necesarias en la PC se deberá cargar el


programa en el PLC para que el mismo se ejecute.
Para ello lo primero que se debe hacer es verificar que el programa no tenga
errores de sintaxis, direcciones inválidas en los operandos, etc., este proceso
que involucra también la conversión del programa al lenguaje nativo de la CPU
(lenguaje máquina) se denomina Compilación.

Control Automático / Programación PLC Apuntes de la Cátedra


80

Para realizar la compilación disponemos de dos comandos:

El comando Compilar todo compila tres bloques diferentes en el orden


siguiente:

1. Bloque de programa (OB1, todas las subrutinas y todas las rutinas de


interrupción)

2. Bloque de datos (DB1)

3. Bloque de sistema (SDB0)

El comando Compilar compila el bloque actual. El bloque actual es el


actualmente se está editando.

Al compilar el bloque de programa (OB1, todas las subrutinas y todas las


rutinas de interrupción), el compilador sigue las siguientes reglas:

1. Comprueba si hay llamadas a subrutinas no existentes.

2. Comprueba si hay llamadas no válidas a subrutinas.

3. Comprueba si es válida la sintaxis de los operandos de las operaciones.

4. Valida cada operando.

5. Comprueba si hay construcciones no válidas de segmentos.

6. Comprueba si hay errores debidos a funciones no existentes en la CPU


seleccionada.

En caso de que haya errores el software nos dará un mensaje de aviso en el


Area de Mensajes ubicada en la parte inferior de la pantalla. Por ejemplo:

Compilando el bloque del programa...


PRINCIPAL (OB1)
Segmento 1, fila 1, col 2: ERROR 32: (operando 1) Sintaxis no válida para el operando de la
operación.
Segmento 1, fila 1, col 3: ERROR 32: (operando 1) Sintaxis no válida para el operando de la
operación.
Segmento 1, fila 1, col 4: ERROR 32: (operando 1) Sintaxis no válida para el operando de la
operación.
SBR_0 (SBR0)
INT_0 (INT0)
Tamaño del bloque = 0 (bytes), 3 errores

Compilando el bloque de datos...


Tamaño del bloque = 0 (bytes), 0 errores

Compilando el bloque de sistema...


Bloque compilado con 0 errores, 0 advertencias

Total errores: 3

Control Automático / Programación PLC Apuntes de la Cátedra


81

En caso de que la compilación se desarrolle sin errores el software nos dará la


información al respecto y además nos brindará un dato muy importante como
es el tamaño de mi programa en Bytes de manera de poder verificar si el
mismo cabe en la CPU seleccionada. Por ejemplo:

Compilando el bloque del programa...


PRINCIPAL (OB1)
CALCULO_POSICIONES (SBR0)
INT_0 (INT0)
Tamaño del bloque = 3730 (bytes), 0 errores

Compilando el bloque de datos...


Tamaño del bloque = 704 (bytes), 0 errores

Compilando el bloque de sistema...


Bloque compilado con 0 errores, 0 advertencias

Total errores: 0

Los comandos de compilación están disponibles en el menú CPU o bien en la


barra de acceso rápido

Una vez realizada la compilación sin errores estaremos en condiciones de


cargar el programa en el PLC, para lo cual utilizaremos el comando Cargar en
CPU ubicado en el menú Archivo o bien en la barra de acceso rápido en el
botón con la flecha hacia abajo.

En cualquiera de los casos se me abrirá un cuadro tal como:

Control Automático / Programación PLC Apuntes de la Cátedra


82

Este cuadro me permitirá, como se ve, seleccionar si deseo cargar todos los
elementos del programa o solo algunos. Como regla es necesario en la primera
carga dejar seleccionados todos los elementos, ya que de esta manera se
enviará al PLC no solo el programa sino los posibles cambios que se hayan
hecho en la configuración del mismo (el Bloque de Sistema) y los datos
almacenados en el Bloque de datos que sean necesarios para la ejecución del
programa de usuario.
Una vez ejecutada esta carga inicial y si es necesario cargar modificaciones en
alguno de los bloques se podrán desmarcar las opciones no editadas de
manera de acelerar la transferencia a la CPU.

En cualquiera de los casos el sistema necesitará detener la ejecución del


programa en el PLC, por lo que nos preguntará:

Esta advertencia es necesaria ya que al pasar la CPU a STOP las salidas


cambiarán de estado o pasarán a congelarse de la manera que haya previsto
en mi Bloque de Sistema, de manera que debo estar seguro que este paso de
RUN a STOP no origine acciones imprevistas en el proceso o máquina
accionada (por el cambio en el estado de las salidas), que puedan producir
daños a las personas o elementos controlados por el PLC.

Una vez pulsado el botón Aceptar comienza la carga de los elementos en la


CPU y se observará un indicador de progreso de cada uno de ellos.
Cuando finalice la carga aparecerá un mensaje preguntando si deseo pasar la
CPU a modo RUN.

Nuevamente vale la advertencia hecha mas arriba, es decir debo asegurarme


que el cambio de estado de la CPU no genere inconvenientes.

Control Automático / Programación PLC Apuntes de la Cátedra


83

5.1.6.- Programación simbólica

Hasta ahora en los ejemplos que desarrollamos hemos llamado a cada


contacto por su nombre. Dependiendo de si es entrada, salida o marca, tienen
unos nombres predefinidos (I, Q, M,...). Veremos que lo mismo ocurre con los
temporizadores, contadores, etc.

Pero nosotros podemos, de acuerdo a lo que ya hemos visto, dar un nombre


que resulte mas significativo a todo esto.
Para ello vamos a la Barra de Navegación del MicroWIN y picamos en el ícono
Tabla de Símbolos, esta acción abrirá precisamente dicha tabla donde
podemos definir los nombres que queramos y decir a qué operando
corresponde cada nombre.
Podemos poner nombre a todo lo que queramos. Tenemos que tener en cuenta
que el programa diferencia las mayúsculas de las minúsculas. Si luego
intentamos acceder a uno de estos contactos o elementos por su nombre
simbólico, tendremos que escribir el nombre tal y como lo hemos definido
diferenciando las mayúsculas de las minúsculas.
Los nombres que definamos aquí son de ámbito global. Los podremos utilizar
en cualquier bloque del programa.

La tabla se verá tal como:

Donde se observa que disponemos de varios campos:

1) Campo solapamiento, indica que el símbolo se superpone en su


dirección con otro símbolo, esto sucede por ejemplo si defino un símbolo
para la dirección MD38 y otro para la MD40, de esta manera el software
nos advierte de la circunstancia de que a lo mejor estemos “pisando”
zonas de memoria que no deberían solaparse.

2) Campo símbolo no utilizado, indica que el símbolo está definido


pero que el operando respectivo no ha sido empleado aún en el
programa, esto me puede servir por ejemplo para verificar si todas las
señales de entrada y salida que tenía previstas han sido empleadas en
la lógica del programa, o bien falta algún enclavamiento, alguna salida,
etc.

Control Automático / Programación PLC Apuntes de la Cátedra


84

3) Campo Símbolo, aquí es donde precisamente asigno el nombre


simbólico con el que deseo identificar a cierto operando.

4) Campo Dirección, aquí asocio el operando particular al símbolo definido


en el campo anterior.

5) Campo Comentario, aquí puedo ingresar un texto que me sirva para


identificar adecuadamente la función o propósito del operando.

A la hora de ver el programa en AWL, KOP o FUP, podremos hacer estos


símbolos visibles o no, para lo cual tenemos dentro del menú Ver
Direccionamiento simbólico lo que habilitará o no la visualización de los
símbolos.
Tenemos también la posibilidad de visualizar en cada uno de los segmentos
una tabla local de símbolos que me mostrará aquellos que están siendo
utilizados en dicho segmento, para habilitar esta tabla deberá estar
seleccionada la opción del menú Ver Tabla de información de símbolos, la
que se verá en el programa tal como:

En caso de que en la tabla de símbolos se agreguen símbolos posteriormente


al ingreso de operandos en forma directa (I0.0, Q2.3, etc.) los mismos no
aparecerán automáticamente en el programa que estoy editando, para que esto
suceda se deberá pulsar sobre el botón Aplicar todos los símbolos al proyecto
con lo cual se visualizarán los mismos en los bloques respectivos.

Control Automático / Programación PLC Apuntes de la Cátedra


85

5.2.- Seguimiento y depuración de programas

5.2.1.- Observación del programa

Supongamos que deseamos ver la ejecución del programa mientras este está
corriendo en el PLC con objeto de verificar que las señales desde campo se
están recibiendo correctamente, o bien deseamos verificar que la lógica
elaborada ejecuta las acciones previstas; para ello abrimos el bloque donde
estas señales se encuentran, nos movemos hasta el segmento que queremos
observar y estando conectados al PLC vamos al menú TestIniciar estado del
programa o bien picamos en el ícono

El resultado es que se verá el estado de las señales presentes en el o los


segmentos visibles.
Por ejemplo supongamos que tenemos el siguiente programa:

Si habilitamos el modo de observación podremos observar un resultado


parecido al siguiente:

Aquí lo que veremos será como se van cumpliendo las instrucciones que
tenemos escritas, es decir aquellos contactos que estén cerrados (es decir que
su RLO sea 1) estarán remarcados en azul y los que no se verán con el color
de fondo, obviamente si la bobina de salida está “energizada” también estará
en azul, adicionalmente podré observar al lado del operando el estado de la
señal en el contacto respectivo, es decir puedo visualizar si la entrada, salida,
marca,etc. está en 0 o en 1.
En el caso de los temporizadores si este está corriendo se observará el valor
actual del mismo, de manera similar los contadores mostrarán su valor actual
de cuenta y en caso de que esta cambie dicho cambio se observará.

Control Automático / Programación PLC Apuntes de la Cátedra


86

La observación del programa se puede hacer de dos maneras diferentes:

● Estado de ejecución (estando activado el comando de menú Test Utilizar


estado de ejecución)

El estado de ejecución en KOP, FUP y AWL visualiza los valores de los


operandos e indica la circulación de corriente a medida que las operaciones se
ejecutan durante un ciclo del programa. En consecuencia, en la visualización
en estado de ejecución, se muestran los valores de datos temporales que tiene
la variable en ese punto particular del programa, valor que podría
sobrescribirse, y en consecuencia modificarse, con operaciones que se
ejecuten posteriormente. Todos los valores de datos visualizados se recogen
durante un solo ciclo del programa. Si se utiliza el estado de ejecución las
líneas de interconexión se pondrán en color azul si por ellas circula corriente, a
diferencia del estado de fin de ciclo donde solo se ven los estados de los
contactos como en el ejemplo anterior.

Visualización en estado de ejecución:

● Estado de fin de ciclo (estando desactivado el comando de menú Test


Utilizar estado de ejecución)

El estado de fin de ciclo visualiza los resultados de estado leídos al finalizar el


ciclo del programa. Corresponde aclarar, que el método de estado de fin de
ciclo muestra los valores de datos recogidos al finalizar varios ciclos, debido a
la diferencia de velocidad entre el rápido ciclo de la CPU y la comunicación de
datos de estado relativamente lenta de la PC.

Control Automático / Programación PLC Apuntes de la Cátedra


87

5.2.2.- Observar y/o forzar una variable cualquiera

Supongamos que deseo observar distintas variables al mismo tiempo, y que


estas se encuentran ubicadas en distintos segmentos del mismo bloque o peor
aún en diferentes bloques de programa, ¿Cómo es posible hacerlo?.
Para resolver el problema el software cuenta con la opción de generar una
“Tabla de Estado” la que me permite observar y/o forzar cualquiera de ellas.
Esta tabla se construye picando sobre el ícono Tabla de Estado ubicado en la
barra de navegación, con lo cual se abrirá la misma permitiéndome ingresar las
variables que deseo observar.
En la tabla de estado se utilizan siempre los datos de estado de fin de ciclo.

Podemos observar bits, bytes, palabras, etc., los cuales ingresaremos en la


columna Dirección, se pueden ingresar en el formato absoluto o simbólico, en
todo caso si se ingresa en forma absoluta el software colocará
automáticamente el símbolo asociado.
A continuación podemos decirle en qué formato queremos observar la variable,
esto es en el caso por ejemplo de una variable de palabra lo podemos ver
como: Sin signo, Con signo, Hexadecimal, Binario y ASCII; de tal manera
podemos ajustar la visualización en función de que tipo de datos estemos
manejando con dicha variable.
Para cambiar el formato de visualización pico con el mouse en la celda
correspondiente de la tabla con lo que puedo abrir un cuadro similar a:

donde podré elegir el formato de los datos que me interese.

Siguiendo en la estructura de la tabla tenemos dos columnas para los valores.


En una de ellas vemos el valor actual de las variables, y en la siguiente
podemos escribir el valor que queremos que tenga la variable. Esta última
columna es para forzar valores, es decir podemos escribir desde la PC un valor
cualquiera de la variable para poder verificar las acciones que toma el PLC en
tal caso, sin necesidad de depender de que dicha variación se produzca vía el

Control Automático / Programación PLC Apuntes de la Cátedra


88

proceso o también para escribir valores específicos de la variable con el mismo


fin.

Para poder observar y forzar estos valores, tenemos unos botones en la barra
de herramientas.

Hay un botón que representa unos anteojos solamente. Con este botón lo que
podemos hacer es una visualización instantánea, es decir observamos los
valores que tienen las variables en ese instante y se quedan fijos en la pantalla.
Si se producen cambios en las variables no los vemos reflejados en la pantalla.

Tenemos otro botón que representa unos anteojos con una tabla detrás. Con
esto podemos hacer una observación continua, es decir si se produce algún
cambio en las variables, se refleja en la pantalla.

La función Escribir todo representada por el botón con el lápiz sirve para
escribir uno o más valores en el programa, con objeto de simular una condición
o un juego de condiciones. Entonces se podrá ejecutar el programa y utilizar la
tabla de estado (y, si se lo desea, la función Estado del programa) para
observar qué sucede. A medida que se ejecuta el programa, puede ocurrir que
los valores modificados con la función "Escribir todo" se sobrescriban con otros.

La función Forzar representada por el candado cerrado a diferencia de la


función Escribir todo permite simular una condición lógica, forzando direcciones
de la memoria V (en formato de bytes, palabras o palabras dobles), de la
memoria M (en formato de bytes, palabras o palabras dobles), AI (palabras), o
AQ (palabras), o bien una condición física (forzando entradas y salidas con
direcciones de bits I y Q). Cuando esta función se utiliza en la tabla de estado
para forzar uno o más valores del programa, los valores se reajustan al valor de
forzado en cada ciclo. Aunque, en el curso de un ciclo, el programa puede
modificar los valores forzados, éstos se reaplicarán al comenzar el ciclo
siguiente. Debido a la velocidad con la que la CPU ejecuta el programa y al
tiempo necesario para transmitir la información de estado de la CPU a la
unidad de programación y visualizarla en la pantalla, es posible que no se
pueda observar ningún cambio en los valores forzados. No obstante, los
cambios son posibles en cada ciclo.

La función forzar dispone de dos botones asociados que son los de Desforzar y
Desforzar todo que permiten retornar total o parcialmente a la condición inicial
(antes del forzado), los que se describen a continuación.

Desforzar en el estado del programa y en la tabla de estado, al seleccionar


una dirección y haciendo click en el botón Desforzar permite desforzar esa
única variable. Alternativamente se puede seleccionar (hacer click en) un
parámetro y pulsar luego el botón derecho del ratón para visualizar el menú
contextual de las funciones Forzar y Desforzar.

Control Automático / Programación PLC Apuntes de la Cátedra


89

Desforzar todo (sólo en la tabla de estado) Si se elige esta función para


desforzar todas las direcciones. No es necesario que se seleccionen las
direcciones individuales antes de utilizar la función Desforzar todo.

5.2.3.- Utilidades para el seguimiento y depuración de programas


Hemos visto mas arriba que es posible observar y forzar cualquier variable que
hayamos utilizado en nuestro programa, tanto sea en el entorno de
programación de bloques como a través de una tabla especifica de variables.

¿Pero que pasa si para una variable particular, como por ejemplo una entrada
o salida determinada, queremos saber en que bloques y de que forma han sido
llamadas?
O bien queremos determinar cuales de las entradas, salidas, marcas, etc. están
siendo utilizadas en mi programa. Pues bien para este objeto el software
cuenta con un elemento denominado Referencias cruzadas.

Las referencias cruzadas me permiten individualizar todos los llamados a


variables que tengo en mi programa, indicando específicamente:
1) Bloque o bloques donde ha sido llamada la variable
2) Segmento/s del o los bloques donde se llama a cada variable
3) Entorno de llamada, es decir si se utiliza como contacto directo o
negado, como salida, etc.

Una pantalla típica de referencias cruzadas puede ser:

Si en esta planilla hacemos doble click sobre cualquiera de los operandos el


software nos llevará al bloque y segmento particular indicado en la fila
respectiva, de tal manera podemos rápidamente encontrar la llamada particular
que estemos buscando para cada operando.

Plano de ocupación

Si observamos en la parte inferior de la pantalla de referencias cruzadas vemos


una serie de pestañas, habilitando cada una de ellos podemos acceder a una
tabla de datos que nos muestra cuales de los operandos de nuestro PLC están
ocupados y cuales no, de esta manera no es necesario llevar un registro aparte

Control Automático / Programación PLC Apuntes de la Cátedra


90

de que entradas, marcas, temporizadores, contadores, etc. están siendo


llamados en nuestro programa, ya que gracias a dicha tabla puedo saber
rápidamente cuales están disponibles y cuales no. Las planillas son similares a
estas:

En ella se observa claramente cuales de las áreas de memoria de mi PLC


están ocupadas y cuales no y en que formato están utilizadas.

Control Automático / Programación PLC Apuntes de la Cátedra

Das könnte Ihnen auch gefallen