Está en la página 1de 49

Curso UniTrain I

"Tecnología de automatizació n 1: PLC y


tecnología de bus"

EDITADO POR:
ING. WALTHER FRANCISCO SANTOS
UNIVERSIDAD TECNOLOGICA DE HONDURAS
Curso UniTrain I
"Tecnología de automatización 1: PLC y tecnología de bus"

Indice
Curso UniTrain I "Tecnología de automatización 1: PLC y tecnología de bus".............................................2
Indice...........................................................................................................................................................2
Metas de aprendizaje..............................................................................................................................5
Contenidos de aprendizaje......................................................................................................................5
Requisitos................................................................................................................................................5
Introducción................................................................................................................................................6
Ejemplo de un proceso............................................................................................................................6
Programas cableados y controles lógicos programables.........................................................................7
¿Qué es un control automático?.............................................................................................................8
¿Qué es un PLC?......................................................................................................................................8
Estructura de un PLC...............................................................................................................................9
Funcionamiento de un PLC......................................................................................................................9
Planificación y puesta en marcha..........................................................................................................10
Resumen................................................................................................................................................10
Direccionamiento......................................................................................................................................11
Direccionamiento de las entradas y salidas...........................................................................................11
Direcciones de bit y de byte..................................................................................................................11
Direcciones de palabra..........................................................................................................................12
Declaración de variables........................................................................................................................13
Resumen................................................................................................................................................14
Lenguajes de programación......................................................................................................................15
 Lista de instrucciones (AWL)..........................................................................................................15
 Texto estructurado (ST).................................................................................................................15
 Esquema de contactos (KOP).........................................................................................................15
 Bloques funcionales (FBS) o esquema de funciones (FUP)............................................................15
 Gráfico secuencial de funciones....................................................................................................15
Esquema de funciones (FUP).................................................................................................................15
Esquema de contactos (KOP).................................................................................................................15
Gráfico secuencial de funciones (SFC)...................................................................................................16
Unidades de organización del programa...............................................................................................16
Estructura de un POU............................................................................................................................17
Un primer programa..............................................................................................................................18
Resumen................................................................................................................................................19
Operaciones lógicas básicas......................................................................................................................20
Operación lógica AND............................................................................................................................20
Experimento: Operación lógica AND.....................................................................................................21
Operación lógica OR..............................................................................................................................22
Experimento: Operación lógica OR........................................................................................................23
Negación................................................................................................................................................24
Conexión como contacto normalmente abierto....................................................................................25
Conexión como contacto normalmente cerrado...................................................................................25
Negación en conjunción con una operación lógica AND........................................................................26
Experimento: Negación con operación lógica AND...............................................................................26
Negación en conjunción con una operación lógica OR..........................................................................28
Experimento: Negación con operación lógica OR..................................................................................28
Resumen................................................................................................................................................30
Operaciones lógicas compuestas...............................................................................................................31
Programación con el entorno de desarrollo..........................................................................................31
Ejemplo de Ejercicio..............................................................................................................................33
Operación AND antes de OR..................................................................................................................35
Operación OR antes de AND..................................................................................................................36
Tarea......................................................................................................................................................37
Experimento: Operación OR antes de AND...........................................................................................37
Operaciones lógicas compuestas...........................................................................................................38
Memoria....................................................................................................................................................41
Comandos de activación (Set) y de reposición (Reset)..........................................................................41
Respuesta de memoria con prioridad de Reset:....................................................................................42
Lista de instrucciones:.......................................................................................................................42
Texto estructurado:...........................................................................................................................42
Respuesta de la memoria con prioridad de Reset con operaciones lógicas AND y OR:.........................42
Álgebra lógica:...................................................................................................................................42
Esquema de funciones:..........................................................................................................................42
Respuesta de la memoria con prioridad de Set con operaciones lógicas AND y OR:.............................43
Lista de instrucciones:.......................................................................................................................43
Texto estructurado:...........................................................................................................................43
Álgebra lógica:...................................................................................................................................43
Esquema de funciones:......................................................................................................................44
Bloqueo de memorias............................................................................................................................44
1. Bloqueo a través del ramal de activación (Set):.............................................................................44
2. Bloqueo a través del ramal de Reset:............................................................................................45
Experimento: Funciones de memoria....................................................................................................45
Procedimiento...................................................................................................................................45
Tarea requerida.................................................................................................................................46
Tabla de asignación:..........................................................................................................................46
Resumen................................................................................................................................................47
Metas de aprendizaje

¡Bienvenidos al curso Uni Train I PLC y tecnología de bus! El personal de LUCAS-NÜLLE le desea mucho
esparcimiento durante el trabajo con los temas del curso al igual que éxito durante la ejecución de las
tareas de programación. En las siguientes páginas encontrará un resumen sinóptico acerca de los
contenidos del curso y de los materiales requeridos.

Contenidos de aprendizaje
1. Explicar el funcionamiento de un control lógico programable (PLC)
2. Diferenciar el funcionamiento de los microcontroladores en contraposición con el de los
PLCs
3. Crear programas PLC en los lenguajes de programación AWL (lista de instrucciones) y ST
(texto estructurado)
4. Comprender el funcionamiento de los contactos normalmente abiertos y normalmente
cerrados
5. Comprensión y aplicación de las operaciones lógicas básicas AND, OR, XOR
6. Creación de operaciones lógicas complejas
7. Dominar la aplicación de las funciones de memoria
8. Correcta aplicación de bloqueos
9. Conocimiento y aplicación de los bloques funcionales según la norma IEC 1131-3
10. Resolución sistemática de tareas de texto complejas
11. Comprender e implementar el principio del control secuencial
12. Llevar a cabo procesamientos analógicos con un PLC
13. Comprender el principio y la aplicación de los sistemas de bus de campo
14. Conocer el funcionamiento del Profibus
15. Montar y poner en marcha una red de Profibus
16. Control de un dispositivo terminal del Profibus por medio de un programa PLC

Requisitos
Para un exitoso aprendizaje del curso, se requieren conocimientos sobre:
Fundamentos de la electrotecnia
Fundamentos de tecnología digital
Introducción
Nuestra era está marcada por la industrialización y la automatización. Ciertos procesos que hasta hace
algún tiempo se realizaban por medio de un laborioso trabajo manual, hoy en día, se pueden llevar a
cabo con elevada eficiencia y calidad uniforme empleando máquinas e instalaciones automáticas. Al
entrar en acción, éstas llenan botellas de bebidas o imprimen diarios automáticamente, pudiendo
tratarse también de robots que realizan el montaje de automóviles.

Pero también en todas las áreas de nuestra vida cotidiana se encuentran ejemplos de la tecnología de
automatización, por ejemplo, en el hogar, en donde se usa la lavadora, en las calles en donde los
semáforos regulan el tráfico, o también en los edificios en donde se necesitan instalaciones de aire
acondicionado y sistemas automáticos de iluminación.
En todos estos sistemas intervienen controles automáticos o unidades de regulación que determinan el
desarrollo, paso por paso, de procesos predeterminados.
La meta general de los procesos tecnológicos es la transformación y el transporte de material, energía e
información, para lo cual, en la instalación técnica adecuada, se emplea y se transforma energía. Las
instalaciones técnicas de control, denominadas también controles automáticos, influyen en los
elementos que transforman la energía basándose en informaciones procesadas con el fin de cumplir el
objetivo de determinado proceso.

Ejemplo de un proceso
Existen muchos procesos tecnológicos que se ven influenciados por las unidades
de control automático. Un ejemplo típico es el proceso tecnológico de control de
un semáforo para vehículos y peatones. Éste tiene como objetivo brindar
información a los peatones y a los conductores de los vehículos, por medio de
luces de colores, necesarias para transitar por la calle sin que ocurran colisiones.
El paso libre para los peatones y el bloqueo para los vehículos constituye la excepción temporalmente
limitada que los peatones pueden solicitar al control si lo requieren.

Programas cableados y controles lógicos programables

Las unidades de control se pueden implementar de diferentes maneras.

Programas cableados
Se denominan controles de programa cableado a aquellos que presentan un cableado fijo, por ejemplo,
implementado por medio de relés o contactores. El "programa" de estos controles se encuentra en las
conexiones establecidas entre los elementos individuales de conmutación. Por medio de circuitos de
contactos en serie o en paralelo se implementan operaciones lógicas tales como AND y OR. Este tipo de
controles se emplea y domina muy bien desde hace décadas. Un control de esta naturaleza se puede
montar sin grandes gastos (sin PC y sin conocimientos de programación) y su comprensión resulta
relativamente sencilla. No obstante, requieren mucho espacio y no son flexibles. Si el funcionamiento de
un control se debe modificar o ampliar, se necesita, la mayoría de las veces, modificar los componentes
al igual que nuevos cableados.

Controles lógicos programables


En el caso de los controles lógicos programables, el cableado y la estructura del equipo de
automatización es sumamente independiente de la función de control deseada. Los sensores y equipos
de regulación incorporados a la instalación se conectan a las entradas y salidas de la unidad de control.
Las operaciones lógicas de estas señales no se encuentran como parte del cableado sino que están
contenidas en el dispositivo de automatización, en forma de programa de software. En este programa se
consultan los estados de la instalación (entradas), se ejecutan las operaciones lógicas y se excitan los
actuadores (salidas). En este caso, una modificación de lo establecido por las operaciones lógicas no
requiere un cambio en el cableado sino, únicamente, una modificación del software.
Debido a esta ventaja y gracias a las siempre crecientes prestaciones y a los bajos costes de la
electrónica, hoy en día, los controles lógicos programables han reemplazado ampliamente a los
controles cableados. Este caso se presenta, sobre todo, si las tareas de control se vuelven más
complejas. Pero también para pequeñas tareas de control, en la actualidad, los pequeños PLCs resultan
más económicos.
¿Qué es un control automático?
Según la norma DIN 19226, el control automático es un proceso de un sistema en el que una o más
variables de entrada influyen en una o más variables de salida de acuerdo con las leyes propias del
sistema en el que actúan.

Ejemplo
La lámpara piloto H1 se ilumina si los interruptores S1 y S2 se cierran.

S1
Entrada:
S2

S1 y S2 están
Procesamiento: conectados en
serie

Lámpara piloto
Salida
H1

Control de programa cableado sencillo

No obstante, también se puede conseguir el mismo fin con un


control lógico programable. También éste procesa ambas
variables de entrada S1 y S2 y entrega una variable de salida
H1. El procesamiento, no obstante, no se realiza por medio de
conexiones, sino por medio de un programa.
Aquí entra en acción lo que en la informática se conoce
también como el "principio de entrada, procesamiento y
salida".
¿Qué es un PLC?
Un control lógico programable, abreviado como CLP (o PLC por sus siglas en inglés), es un dispositivo
que ejecuta operaciones lógicas de acuerdo con lo que establece un programa, esto es, según una lista
de instrucciones. Estas instrucciones se procesan individualmente de acuerdo con el orden de sucesión
establecido. Al contrario de lo que ocurre en los programas cableados, en donde varias operaciones se
pueden procesar simultáneamente, en un PLC las instrucciones individuales sólo se pueden ejecutar en
serie, esto es, siguiendo una sucesión temporal. Aquí, para la realización de la operación lógica se
requieren a menudo varias instrucciones.
Los dispositivos PLC actuales, no obstante, pueden realizar muchas otras tareas, por ejemplo, procesar
valores analógicos y efectuar funciones aritméticas al igual que ejecutar funciones de regulación técnica
y tareas de red.
Fundamentalmente, los controles lógicos programables se caracterizan por su programación libre. El
usuario crea, en un entorno de desarrollo, y en un lenguaje de programación PLC especial, un programa
a través del cual el PLC adopta el funcionamiento de control adecuado al proceso que se desea
controlar.

Estructura de un PLC

Estructura fundamental
Las partes más importantes de un equipo PLC son la alimentación de corriente, el módulo central que
incluye la unidad CPU y la memoria de trabajo, al igual que los módulos de entrada y de salida. Los
sensores conectados comunican a la unidad de control los estados de la instalación automatizada. La
actuación sobre el proceso se realiza por medio de la excitación de los dispositivos de regulación e
indicación. La imagen siguiente muestra la estructura básica de un control lógico programable,
incluyendo los emisores de señales al igual que los dispositivos de regulación e indicación:

El núcleo de todo PLC es la unidad central de procesamiento (conocida como CPU por sus siglas en
inglés), la cual posee un sistema operativo y una memoria para el programa de aplicación, con los
correspondientes datos del usuario:
Sistema operativo
Al igual que todo PC, un control lógico programable requiere también un sistema operativo. En un
dispositivo PLC, el sistema operativo se encuentra en un componente de memoria no volátil (EPROM o
EEPROM = Erasable programmable Read-Only Memory) o es un componente fijo del microprocesador.
Programa de usuario
En este programa, el propio usuario fija el tipo de control deseado. El programa del usuario se
encuentra, la mayoría de las veces, en la memoria de escritura y lectura (RAM, FLASH), la cual se puede
sobrescribir rápidamente con un nuevo programa. De manera alternativa, el programa también se
puede almacenar en una unidad EEPROM.
Datos
Los datos del programa, la mayoría de las veces, se almacenan en una memoria RAM.

Funcionamiento de un PLC

Para que los estados de entrada y salida no se lean o se suministren con retardo de tiempo, se introduce
una secuencia cíclica de programa.
Al inicio del ciclo del programa, se depositan todas las señales de entrada disponibles en una memoria
de datos. Durante el procesamiento en serie del programa, éste sólo accede a esta reproducción de los
datos de entrada depositada en la memoria. Los estados de las señales de entrada son, por tanto,
idénticos para todas las consultas de operaciones lógicas durante un ciclo de programa. Sólo antes del
siguiente ciclo de programa se vuelven a actualizar los estados de las entradas. Durante el tiempo de
ejecución, los resultados de las operaciones lógicas del programa dado del usuario se escriben en una
memoria de salida de datos.
Al final del procesamiento en serie del programa, los datos de salida se suministran a la periferia en
paralelo.
El funcionamiento de un PLC se diferencia del de un control común, basado en contactos, debido a que,
en el procesador del PLC, el programa del usuario se procesa en serie. En un control de contactores, esto
se realiza en paralelo.

Planificación y puesta en marcha


El tipo de planificación y puesta en marcha de un PLC depende muy estrechamente del fabricante del
PLC. No obstante, existen ajustes básicos que siempre se deben llevar a cabo.
Un software de gestión, específico del fabricante, administra los programas, por lo general, de acuerdo
con los diferentes proyectos. Con este software se cargan, se archivan y se documentan los programas
en el dispositivo de automatización.
Por medio de un editor de configuración de hardware se agrupan los módulos de un sistema de
automatización. Adicionalmente, se deben establecer las direcciones de los módulos. De aquí se derivan
las direcciones absolutas de entrada y de salida necesarias para la programación. Parcialmente, con el
editor de configuración de hardware, también se configura un sistema de bus.
Una vez que se ha configurado el hardware, hecho al que algunos fabricantes se refieren empleando el
término topología, se debe crear el software. Una ventaja esencial del PLC radica en que la planificación
de una instalación se puede realizar paralelamente a la creación del software. Mientras en el sitio de
trabajo se realiza el cableado, esto es, se conectan los circuitos de potencia y de control, se puede
diseñar paralelamente la lógica de control automático. Sólo durante la puesta en marcha se debe
producir el "trabajo conjunto" del hardware y el software. La creación del software se realiza por medio
de un editor de programas, en diferentes lenguajes de programación. El usuario tiene la posibilidad de
elegir un lenguaje determinado.
El software de desarrollo se encarga de que el hardware y el software se adapten el uno al otro. Muchas
veces, el software de desarrollo brinda también la posibilidad de verificar en el modo "online" el
funcionamiento de un programa, esto es, observar las variables o permitir que el programa se ejecute
paso por paso.
Hoy en día, los controles automáticos complejos son impensables sin una simulación previa. Antes de
que se ponga en marcha la instalación, se prueba el funcionamiento del software por medio de sistemas
de simulación. Esto también se justifica la mayoría de las veces por el hecho de que la puesta en marcha
no debe interferir sobre el proceso de producción.

Resumen
1. Por medio de máquinas e instalaciones automatizadas, los procesos de producción se pueden
llevar a cabo con eficiencia elevada y una alta y uniforme calidad.
2. Los PLCs son dispositivos que efectúan tareas de control técnico especiales.
3. Un PLC es más flexible y tiene un rendimiento mayor que un control de programa cableado.
4. Los PLCs se pueden programar libremente.
5. En oposición a los controles de programa cableado, en un PLC, el procesamiento de las
operaciones lógicas se realiza en serie.
6. Los estados de las señales de entrada, en la reproducción que se almacena en la memoria, no se
modifican durante un ciclo de trabajo.

Direccionamiento
Direccionamiento de las entradas y salidas
Para que el programa de control pueda acceder a las entradas y salidas individuales del PLC, al igual que
a los sensores y actuadores conectados, estos se deben caracterizar por un direccionamiento
inequívoco. Según el tipo de entrada o de salida, las direcciones se especifican por medio de elementos
de bit, byte, palabras o palabras dobles.
Tipos de datos para el direccionamiento:

Direcciones de bit y de byte


Empleando una herramienta de configuración, a las entradas y salidas de la tarjeta del PLC se les puede
asignar una dirección inequívoca de inicio. Las direcciones de byte de las entradas y salidas que de ello
resulten dependerán de su posición en el módulo. Las entradas o salidas binarias individuales se
caracterizan por medio de la dirección de byte correspondiente y por la posición del bit dentro del byte.
Bit de entrada

Bit de

Las direcciones expuestas en la imagen anterior son válidas para los ajustes estándar de direcciones de
inicio mostrados a continuación:

Puede llegar a esta herramienta de configuración pulsando el botón de ajustes del entorno de
desarrollo.

Direcciones de palabra
Una dirección de palabra con una longitud de 16 bits se forma por medio de la conjunción de dos bytes
de entrada o de salida y se la caracteriza con el prefijo IW o QW. La dirección de palabra se identifica por
la dirección de byte de valor más bajo (izquierda). Por ejemplo: La dirección de palabra de entrada IW10
se compone, por tanto, de los bytes de entrada 10 y 11.
Una palabra doble, de una longitud de 32 bits, se compone, de manera analógica, de dos palabras y
cuatro bytes. También aquí la dirección de byte de menor valor sirve como identificación de la dirección
de la palabra doble. Para referirse la dirección de una palabra doble se emplea el prefijo D. Por tanto, la
dirección de palabra doble ID10 se compone de las palabras IW10 y IW12 ó bien de los bytes IB10, IB11,
IB12 e IB13.

Declaración de variables
Para dirigirse a una entrada o salida, o a una memoria intermedia del programa del usuario, ésta debe
encontrarse declarada como variable. Para ello, al inicio del programa del usuario se definen, en primer
lugar, todas las entradas y salidas empleadas, todas las memorias intermedias (marcadores) al igual que
todos los demás elementos de programa usados, tales como tiempos y contadores, en una parte de
declaración de variables.

Ejemplo:
VAR
S0 AT %IX0.0 : BOOL; (* bit de entrada 0 *)
S1 AT %IX0.1 : BOOL; (* bit de entrada 1 *)
Q0 AT %QX2.0 : BOOL; (* bit de salida 0 *)
END_VAR

La declaración viene precedida de la palabra clave VAR. En este ejemplo, se asigna entonces a las dos
direcciones de entrada IX0.0 y IX0.1 los nombres simbólicos S0 e S1. Además, la dirección de salida
QX2.0 se subordina al nombre simbólico Q0. La declaración de variables termina con la palabra clave
END_VAR.

La estructura de una declaración de variables se compone de los siguientes elementos:


S1 AT %IX0.1 : BOOL; (* Bit de entrada 1 *)

Estructura de una declaración de variables


S1 Designa la dirección simbólica (nombres) de la variable
AT Asignación a una dirección física o lógica
Indicación de que el lugar de almacenamiento es una entrada, una
%
salida o un marcador.
IX0.1 Dirección física de las variables
:BOOL Tipo de datos de las variables
; Fin de la declaración
(*...*) Comentario

Propiedades de los prefijos del lugar de almacenamiento:


Prefijo Significado
I Lugar de almacenamiento en la entrada
Q Lugar de almacenamiento en la salida
M Lugar de almacenamiento en el marcador

Propiedades de los prefijos de tamaño de datos:


Prefijo Significado Tipo de datos
X Tamaño de bit BOOL
B Tamaño de byte (8 bits) BYTE
W Tamaño de palabra (16 bits) WORD
D Tamaño de palabra doble (32 bits) DWORD

A continuación se muestra otro ejemplo de declaración de variables:


VAR CONSTANT
DACMAX : UINT := 1000;
END_VAR
VAR
ADC1 AT %IW10 : UINT; (* Entrada analógica 1 *)
ADC2 AT %IW12 : UINT; (* Entrada analógica 2 *)
B0 AT %QB2 : BYTE; (* Salida digital *)
QB2_0 AT %QX2.0 : BOOL; (* Salida digital *)
DAC1 AT %QW30 : UINT; (* Salida analógica 1 *)
DAC2 AT %QW32 : UINT; (* Salida analógica 2 *)
END_VAR
VAR
wIn : UINT;
wOut : UINT;
bOn : BOOL;
END_VAR

En este ejemplo se muestra la definición de más variables. Para más indicaciones relativas a variables,
nombres, tipos de datos, etc., consulte, por favor, la sección de ayuda del LABsoft.
Las variables sin dirección se emplean como memoria intermedia de resultados.

Resumen
1. Cada entrada y salida de un PLC se identifica por medio de una dirección inequívoca.
2. Según el tipo de entrada o de salida, la dirección se especifica como bit, byte o palabra.
3. Todas las entradas, salidas y otros elementos de memoria empleados en el programa deben
declararse como variables.
4. La declaración se realiza en la sección de declaración de variables que se encuentra al inicio del
programa
Lenguajes de programación

Para la creación de un programa PLC de usuario, según la norma IEC 61131, se dispone de cinco
lenguajes de programación:
Lenguajes textuales:
 Lista de instrucciones (AWL)
 Texto estructurado (ST)
Lenguajes gráficos:
 Esquema de contactos (KOP)
 Bloques funcionales (FBS) o esquema de funciones (FUP)
Lenguaje de orden superior:
 Gráfico secuencial de funciones

El entorno de desarrollo del curso PLC de UniTrain-I apoya los dos lenguajes textuales AWL y ST. Estos se
describen detalladamente en cursos de profundización.

Esquema de funciones (FUP)


En el lenguaje de programación de esquema de funciones (FUP) o lenguaje de bloques funcionales (FBS),
el programa del usuario se representa en forma de un esquema lógico. Esta forma de representación es
conocida gracias al álgebra lógica o de conmutación y a la tecnología digital. Las funciones individuales
se representan por medio de elementos combinados entre sí, cada uno con un símbolo específico que
indica su función. Las entradas de señales (sensores, elementos de servicio,...) se encuentran aquí al
lado izquierdo, las salidas de señales (actuadores, elementos de indicación,...) se encuentran,
correspondientemente, al lado derecho.

Esquema de contactos (KOP)


En el esquema de contactos, la forma de representación se parece al diagrama de un circuito. Los
contactos (señales de entrada del control, por ejemplo, sensores y elementos de servicio) de las
operaciones lógicas se ordenan en un circuito, en serie o paralelo, desde la izquierda hacia la derecha. Al
final de esta lógica de operaciones se ubica la variable de salida (señal de salida, por ejemplo, actuador o
elemento de indicación) que se representa en forma de bobina estilizada. La relación se describe, por
tanto, como un flujo de corriente ficticio que va de izquierda a derecha.
Gráfico secuencial de funciones (SFC)
El gráfico secuencial de funciones, de orden superior, es una mezcla de lenguaje de programación
textual y gráfico. Con este lenguaje secuencial se pueden crear programas de usuario en forma de
cadenas de pasos. El programa se estructura a través de pasos (acciones) y transiciones (condiciones de
transición). La condición para la transición hacia un nuevo paso es la de que el paso anterior se
encuentre activo y que se haya cumplido la condición de transición. En una secuencia de pasos, sólo
puede encontrarse activo un único paso.

Unidades de organización del programa


El programa de un PLC debe tener una estructura ordenada y una organización. Para ello, según la
norma IEC 61131-3, se han previsto las denominadas unidades de organización de programa (POU).
Independientemente del lenguaje de programación, el programa de un PLC consta, esencialmente, de
una o más unidades de organización de programa (POU).
Existen, en total, tres tipos de POU:

Este tipo de POU representa el nivel más alto de la organización del programa. El sistema
Programa:
operativo lo llama cíclicamente en el PLC.

Este tipo de POU es apto para el procesamiento de una o más variables de entrada para un
Función:
valor funcional. Una función no puede almacenar ningún estado interno.

Este tipo de POU es utilizable si también es necesario almacenar variables internas de estado
Bloque funcional:
en un bloque funcional.

Estructura de programa
Con estos tres tipos de elementos se obtienen las siguientes estructuras de enlace de los POUs:

La base siempre está formada por el POU del tipo programa. Un bloque funcional puede llamar una o
más funciones o componentes funcionales. Una función sólo puede llamar a otras funciones.
Estructura de un POU
Básicamente, cada unidad de organización del programa siempre consta de:
 Declaraciones e
 Instrucciones

Ejemplo
(***********************)
(* Rango de validez *)
(* Local
(* Declaraciones *)
VAR
S1 AT %IX0.0 : BOOL;
K1 AT %QX2.0 : BOOL;
END_VAR
(************************)
(* Instrucciones *)
LD S1
ST K1
El programa del ejemplo anterior está escrito en lenguaje de lista de instrucciones (AWL). En la parte
superior se reconocen las declaraciones, en la parte inferior se puede encontrar la parte
correspondiente a las instrucciones.
La instrucción que se indica en la secuencia de programa anterior es que si se acciona (Load = LD) S1 se
activará (Start = ST).

En la parte de las declaraciones se dan a conocer las variables, tal como se describió en el capítulo
pasado, dedicado al "Direccionamiento". De acuerdo con el tipo de POU se debe tomar en cuenta la
siguiente diferencia en las declaraciones:

La declaración de variables tiene un carácter local, ya que éstas sólo se pueden


VAR
emplear dentro del POU.
Declaracíón de variable suministrada desde el exterior. Dentro del POU, el parámetro
VAR_INPUT de entrada sólo puede ser consultado. Esta variable se emplea en las funciones y
bloques funcionales como parámetro de transición.
Declaración de variable suministrada hacia el exterior. El parámetro de salida se
VAR_OUTPUT escribe dentro del componente. Esta variable se emplea como salida en los bloques
funcionales.

La aplicación de los tipos de declaraciones se permite o se deniega según cuál sea la unidad de
organización del programa (POU):

Tipo PROGRAMA FUNCIÓN BLOQUE_FUNCIONAL


VAR Sí Sí Sí
VAR_INPUT No Sí Sí
VAR_OUTPUT No No Sí

La sintaxis de la declaración de variables es independiente del lenguaje de programación seleccionado.


La sintaxis de las instrucciones es diferente en cada lenguaje de programación.

Un primer programa
Cree su primer programa en lenguaje de lista de instrucciones (AWL) y compruebe su funcionamiento.
Por medio de las instrucciones que se encuentran a continuación, introduzca las líneas de programación
deseadas y pruebe el programa con la tarjeta de experimentación PLC.

Ponga en marcha el hardware. Una vez que haya insertado la tarjeta en el Experimentador y haya
conectado la tensión de alimentación se produce de inmediato la comunicación entre el PLC y el Labsoft.

Monte el siguiente arreglo experimental:

Ahora transferirá el siguiente programa al PLC y éste se ejecutará desde allí. Para ello, pulse el botón
"Ejecutar programa".
(*****************************************************
*
* Primer programa
*
*****************************************************)
VAR
I0 AT %IX0.0 : BOOL; (* Bit de entrada 0 *)
Q0 AT %QX2.0 : BOOL; (* Bit de salida 0 *)
END_VAR

Q0 := I0;

Modifique en la tarjeta del PLC la variable de entrada I0 accionando el interruptor (conmutador)


correspondiente y observe el LED de la variable de salida Q0.

¿Cuál es la respuesta de la variable de salida Q0?


a) Q0 no varía
b) Q0 es 1, si I0 es 1
c) Q0 es 1, si I0 es 0
d) Q0 es 0, si I0 es 0
Escriba en el cuadro una línea en el programa que represente una asignación en la lista de instrucciones.
Compruebe el resultado.
(*****************************************************
*
* Introduzca la instrucción lógica en el campo de
* entrada en lenguaje AWL para una asignación de
* I0 a Q0
*
*****************************************************)
VAR
I0 AT %IX0.0 : BOOL;
Q0 AT %QX2.0 : BOOL;
END_VAR

¿Cuál es la respuesta de la variable de salida Q0?


a) Q0 no varía
b) Q0 es 1, si I0 es 1
c) Q0 es 1, si I0 es 0
d) Q0 es 0, si I0 es 0

Resumen
a) Un PLC se puede programar con diferentes lenguajes de programación
b) Un programa PLC se puede componer de funciones, bloques funcionales y del programa
c) Un POU consta de una parte de declaraciones y de las instrucciones del programa
d) Las declaraciones se pueden ordenar de acuerdo con los diferentes rangos de validez
e) La sintaxis de las declaraciones es siempre igual independientemente del lenguaje de
programación elegido
f) La sintaxis de las instrucciones del programa depende del lenguaje de programación
seleccionado
Operaciones lógicas básicas
La combinación funcional de los estados de señal binarios se denomina operación lógica.
Para estas operaciones lógicas se dispone de las funciones generales del álgebra lógica o de
conmutación. Por otra parte, en la norma IEC se han definido otras funciones
Para la programación de las funciones básicas, según la norma IEC, están permitidas las siguientes
operaciones:

Operación: Significado:
AND Operación lógica AND
OR Operación lógica OR
XOR Operación OR EXCLUSIVA
ANDN Operación lógica AND con negación del estado de la señal
ORN Operación lógica OR con negación del estado de la señal
XORN Operación lógica OR EXCLUSIVA con negación del estado de la señal
NOT Operación lógica OR EXCLUSIVA con negación del estado de la señal

Encontrará un listado completo de las funciones en lenguaje AWL y ST en la sección de ayuda del Labsoft
de tecnología de automatización.

Operación lógica AND


La variable de salida de una operación AND tiene el valor de señal "1" si todas las variables de entrada
de la operación AND poseen el valor de señal "1". Esto se puede representar por diferentes medios:

Algunas formas de representación de la operación lógica AND

Álgebra lógica:
H1= S1*S2
Esquema de funciones:

Lista de instrucciones (AWL):


LD S1
AND S2
ST H1

Texto estructurado (ST):


H1 := S1 AND S2;

Ejemplo
Una prensa ejecuta una carrera de trabajo únicamente si se ha bajado la rejilla de protección y se ha
pulsado la tecla de inicio S1.

Experimento: Operación lógica AND

Escriba las instrucciones necesarias para una operación lógica AND en los lenguajes de programación ST
y AWL. Compruebe a continuación el funcionamiento del programa por medio del hardware de
experimentación. Para ello, siga las siguientes instrucciones.
Monte el siguiente arreglo experimental:

El campo marcado con rojo muestra el área de las entradas y salidas digitales
(************************************************************
* Compruebe el funcionamiento del siguiente programa con el
* hardware de experimentación

* Operaciones lógicas AND sencillas en lenguaje ST


*************************************************************)
VAR
I0 AT %IX0.0 : BOOL; (* Bit de entrada 0 *)
I1 AT %IX0.1 : BOOL; (* Bit de entrada 1 *)
I2 AT %IX0.2 : BOOL; (* Bit de entrada 2 *)
Q0 AT %QX2.0 : BOOL; (* Bit de salida 0 *)
END_VAR
Q0 := I0 AND I1 AND I2;

(********************************************************
*
* Introduzca la instrucción lógica en el campo de entrada
* para una operación lógica AND en lenguaje AWL entre I0,
* I1 e I2
*
*********************************************************)
VAR
I0 AT %IX0.0 : BOOL;
I1 AT %IX0.1 : BOOL;
I2 AT %IX0.2 : BOOL;
Q0 AT %QX2.0 : BOOL;
END_VAR

Operación lógica OR
La variable de salida de una operación OR tiene el valor de señal "1" si, por lo menos, una de las
variables de entrada posee el valor de señal "1". Esto se puede representar con diferentes medios:

Álgebra lógica:
H1= S1+S2

Esquema de funciones:

Lista de instrucciones:
LD S1
OR S2
ST H1

Texto estructurado:
H1 := S1 OR S2

Ejemplo
El portero automático de una vivienda de dos familias se puede activar desde la planta baja o desde el
piso superior.
Experimento: Operación lógica OR
Escriba las instrucciones necesarias para una operación lógica OR en el lenguaje de programación AWL.
Compruebe a continuación el funcionamiento del programa por medio del hardware de
experimentación. Para ello, siga las siguientes instrucciones.

Monte el siguiente arreglo experimental:

El campo marcado con rojo muestra el área de las entradas y salidas digitales
(*****************************************************
*
* Introduzca la instrucción lógica en el campo de
* entrada para una operación lógica OR con tres
* variables, en lenguaje AWL
*
*****************************************************)
VAR
I0 AT %IX0.0 : BOOL;
I1 AT %IX0.1 : BOOL;
I2 AT %IX0.2 : BOOL;
Q0 AT %QX2.0 : BOOL;
END_VAR

Escriba las instrucciones necesarias para una operación lógica OR en el lenguaje de programación ST.
Negación
Negación de variables
La variable de salida de una negación tiene el valor de señal "1" si la variable de entrada presenta el
estado de señal "0" y viceversa. Esto se puede representar con diferentes medios:

Álgebra lógica:
H1= /S1
Esquema de funciones:

Lista de instrucciones:
LDN S1
ST H1
Texto estructurado:
H1 := NOT S1;

Conexión de emisores de señales al PLC


En el diagrama anterior de circuito, S1 se representa como contacto normalmente cerrado. Antes de
iniciar la programación de un PLC se debe conocer de qué manera los emisores de señales (por ejemplo,
S1) se encuentran conectados al PLC. La programación depende de este hecho. Por esta razón, entre los
emisores de señales se diferencia entre contactos normalmente cerrados o normalmente abiertos:
Contacto normalmente abierto Contacto normalmente cerrado
activado El valor de la señal en la entrada del PLC es "1" El valor de la señal en la entrada del PLC es "0"
no
El valor de la señal en la entrada del PLC es "0" El valor de la señal en la entrada del PLC es "1"
activado
Conexión como contacto normalmente abierto

Si el emisor de señales se encuentra conectado al PLC como contacto normalmente abierto y debe
mantener la función mencionada, entonces se debe negar la variable de entrada.
Lista de instrucciones:
LDN S1
ST H1

ó:

LD S1
STN H1

Nota: En la lista de instrucciones es indiferente si la negación se produce durante la carga o el


almacenamiento.
Texto estructurado:
H1 := NOT S1;

Conexión como contacto normalmente cerrado

Si el emisor de señales se encuentra conectado al PLC como contacto normalmente cerrado y debe
mantener la función mencionada, entonces no se debe negar la variable de entrada.
Lista de instrucciones:
LD S1_NC
ST H1
Texto estructurado:
H1 := S1_NC;

Dentro de un programa PLC no está claro si el emisor de señales se encuentra conectado al PLC como
contacto normalmente abierto o cerrado. Por este motivo se emplea la convención de que una variable
ligada a un contacto normalmente cerrado reciba el predicado NC (normally closed)

Negación en conjunción con una operación lógica AND


Diagrama de circuito:

Si se asume que todos los emisores de señales se encuentran conectados al PLC como contactos
normalmente abiertos, la variable S2 se debe negar en el programa.
Lista de instrucciones:
LD S1
ANDN S2
ST H1

LDN S2
AND S1
ST

En la lista de instrucciones, el orden de sucesión de la operación lógica no juega ningún papel. Sólo es
importante que la negación del operador se refiera a la siguiente variable.

Texto estructurado:
H1 := S1 AND NOT S2;

Experimento: Negación con operación lógica AND


Escriba las instrucciones necesarias para una operación lógica AND, con negación, en los lenguajes de
programación AWL y ST. A continuación, pruebe el funcionamiento del programa con el hardware de
experimentación. Para ello, siga las siguientes instrucciones.
Monte el siguiente arreglo experimental:

El campo marcado con rojo muestra el área de las entradas y salidas digitales
Tarea
La iluminación de un proyector interactivo de una sala de conferencias sólo se debe encender cuando el
interruptor principal de luz se encuentre desactivado, el recinto oscurecido y el interruptor de la
iluminación del proyector se encuentre activado.
Tabla de asignación
Símbolos Significado Dirección
S1 Interruptor de luz principal, S1 = 0 no activado %I0.0
S2 El iniciador del recinto está oscurecido, S2= 0 no activado %I0.1
S3 Interruptor del proyector interactivo, S3=1 ct activado %I0.2
H1 Iluminación del proyector interactivo %Q2.0

(*****************************************************
*
* Cree un programa en lenguaje AWL y
* compruebe su funcionamiento con el
* hardware de experimentación.
*
*****************************************************)

VAR
S1 AT %IX0.0 : Bool; (* interruptor de luz principal *)
S2 AT %IX0.1 : Bool; (* iniciador del recinto oscurecido *)
S3 AT %IX0.2 : Bool; (* interruptor de proyector interactivo *)
H1 AT %QX2.0 : Bool; (* iluminación de proyector interactivo *)
END_VAR
Negación en conjunción con una operación lógica OR
Esquema de funciones:

Si se asume que todos los emisores de señales se encuentran conectados al PLC como contactos
normalmente abiertos, la variable S2 se debe negar en el programa.

Lista de instrucciones:
LD S1
ORN S2
ST H1

LDN S2
OR S1
ST H1
En la lista de instrucciones, el orden de sucesión de la operación lógica no juega ningún papel. Sólo es
importante que la negación del operador se refiera a la siguiente variable.

Texto estructurado:
H1 := S1 OR NOT S2;

Experimento: Negación con operación lógica OR


Escriba las instrucciones necesarias para una operación lógica OR, con negación, en los lenguajes de
programación AWL y ST. A continuación, pruebe el funcionamiento del programa con el hardware de
experimentación. Para ello, siga las siguientes instrucciones.
Monte el siguiente arreglo experimental:

El campo marcado con rojo muestra el área de las entradas y salidas digitales
Tarea
El suministro de agua de una turbina se bloquea si se sobrepasa una determinada velocidad de giro, o si
la temperatura del rodamiento es demasiado elevada, o si el circuito de refrigeración ya no se encuentra
en funcionamiento. Si el suministro de agua se bloquea, se conecta simultáneamente una luz de
advertencia.

Tabla de asignación
Símbolos Significado Dirección
S1 Control de velocidad de giro, velocidad de giro muy elevada S1=0 %I0.0
S2 Temperatura del rodamiento, temperatura muy elevada S2=0 %I0.1
S3 Circuito de refrigeración, en servicio S3=1 %I0.2
H1 Luz de advertencia, ON H1=1 %Q2.0
K1 Suministro de agua, bloqueado K1=1 %Q2.1

(*******************************************************
* Cree un programa en lenguaje AWL y
* compruebe su funcionamiento
* con el hardware de experimentación.
********************************************************)
VAR
S1 AT %IX0.0 : Bool; (* control de velocidad de giro *)
S2 AT %IX0.1 : Bool; (* temperatura del rodamiento *)
S3 AT %IX0.2 : Bool; (* circuito de refrigeración *)
H1 AT %QX2.0 : Bool; (* luz de advertencia *)
K1 AT %QX2.1 : Bool; (* suministro de agua *)
END_VAR

(*******************************************************
* Cree un programa en lenguaje ST y
* compruebe su funcionamiento
* con el hardware de experimentación.
*********************************************************)
VAR
S1 AT %IX0.0 : Bool; (* control de velocidad de giro *)
S2 AT %IX0.1 : Bool; (* temperatura del rodamiento *)
S3 AT %IX0.2 : Bool; (* circuito de refrigeración *)
H1 AT %QX2.0 : Bool; (* luz de advertencia *)
K1 AT %QX2.1 : Bool; (* suministro de agua *)
END_VAR
Resumen
 Para las funciones binarias se dispone de las funciones conocidas del álgebra de conmutación.
 Las funciones AND, OR y XOR representan la base del álgebra binaria de conmutación.
 Para la programación es importante saber si los emisores de señales se encuentran conectados
al PLC como contactos normalmente abiertos o cerrados.
 La equivalencia se crea a partir de la negación de la antivalencia (XOR).
 Una tabla de asignación es útil para aclarar la lógica de entrada de una variable.
 La negación de las variables de entrada se coloca junto a la función correspondiente por medio
de la letra N.
 Los contactos normalmente cerrados, que actúen como emisores de señales, reciben,
adicionalmente, el predicado NC (normally closed).
Operaciones lógicas compuestas
En la tecnología de control automático las diferentes funciones binarias rara vez se presentan solas. Por
lo general, se forman operaciones complejas compuestas por varios elementos AND y OR.

En estas operaciones lógicas, aparecen siempre las estructuras básicas "AND antes de OR" y "OR antes
de AND", lo cual indica cuál operación lógica tiene prioridad de acuerdo con lo asignado.

Programación con el entorno de desarrollo


En los experimentos realizados hasta ahora, la programación del PLC se realizó agregando una breve
parte de instrucciones a programas, o partes de programas dados, que se cargaron y ejecutaron en el
PLC. Para ofrecerle al usuario posibilidades de programación confortables y libres, en esta parte del
curso se introducirá el entorno de desarrollo.
Dicho entorno de desarrollo es una herramienta para el desarrollo de software propia del PLC de Lucas
Nülle. Se compone de un Editor adaptado al monitor y de un Compilador para los lenguajes de
programación "Lista de instrucciones" y "Texto estructurado" en conformidad con la norma IEC1131-3.
Se puede llamar al Editor por medio del botón , que se encuentra en el vértice superior derecho de la
ventana del curso. La siguiente captura de pantalla muestra el entorno de desarrollo una vez que ha sido
activado.
En la parte izquierda del Editor se encuentra una barra en la que se han integrado los elementos de
lenguaje disponibles. Por medio de la función de arrastre del ratón puede colocar una nota en el Editor
(drag & drop). A continuación, el usuario debe llenar con comentarios los espacios libres.

Una vez que haya ingresado el texto fuente en el Editor, puede llamar al Compilador por medio del
botón respectivo y traducir el texto fuente. En la parte inferior del Editor se muestran los eventuales
avisos de error del Compilador. Por otra parte, por medio del botón , existe la posibilidad de traducir
el programa y de transferirlo de inmediato al PLC.
Por medio del botón se pueden establecer ajustes tales como, por ejemplo, las direcciones de
entrada y salida de la periferia. El procedimiento exacto se explicará en el lugar correspondiente del
curso.

Para ganar un poco de experiencia con el entorno de desarrollo, antes de ejecutar los siguientes
experimentos, es necesario que haga clic sobre el enlace "Ejemplo"que se encuentra en la parte inferior
y, a partir de las instrucciones, escriba su primer programa con el entorno de desarrollo.

Para ello, monte en primer lugar el siguiente arreglo experimental:

Ejemplo de Ejercicio
Cree su primer programa en el entorno de desarrollo, compílelo y carguelo en el PLC. Por medio de las
instrucciones que se encuentran a continuación, introduzca las líneas de programación deseadas y, a
continuación, pruebe el programa con la tarjeta de experimentación PLC.
La siguiente función sólo se debe programar y probar en el entorno de desarrollo con el lenguaje de
programación lista de instrucciones.

Procedimiento
Vaya al modo de entorno de desarrollo pulsando el botón que se encuentra en el vértice superior
derecho del curso.

Defina ahora todas las variables de entrada y de salida para la tarea planteada. Para ello, por medio de
la función arrastrar y soltar, lleve la palabra “Var” que se encuentra en el campo izquierdo del editor, en
el menú “Declaraciones de variables”, hacia el campo de edición del entorno de desarrollo.

Edite ahora las variables necesarias

(*******************************************************
* Tarea de ejercicio
* Operaciones básicas compuestas
**********************************************************)
VAR
S1 AT %IX0.0 : Bool; (* Bit de entrada 0 *)
S2 AT %IX0.1 : Bool; (* Bit de entrada 1 *)
S3 AT %IX0.2 : Bool; (* Bit de entrada 0 *)
S4 AT %IX0.3 : Bool; (* Bit de entrada 1 *)
H1 AT %QX2.0 : Bool; (* Bit de entrada 0 *)
END_VAR

Introduzca ahora las instrucciones para la función representada anteriormente

LD S1
AND S2
OR (S3 AND S4)
ST H1

Compile el programa pulsando el botón . Si en el programa no se encuentra error, se mostrará la


siguiente imagen de pantalla:

Cargue el programa en el PLC pulsando el botón : De esta manera se abrirá automáticamente el


instrumento virtual PLC.

Pulse el botón RUN para iniciar el PLC. Se mostrará el estado correspondiente del PLC.

Pulse el botón watch y accione los interruptores del modelo y verifique el resultado.

Operación AND antes de OR


En el ejemplo anterior, las salidas de la operación AND conducen a una operación OR. En el álgebra de
conmutación, esto se conoce como una operación disyuntiva.
Álgebra lógica:
H1=(S1*S2)+(S3*S4)
Esquema de funciones:

Los resultados de las operaciones AND S1, S2 al igual que S3, S4 se convierten en operaciones OR.

Lista de instrucciones:
Para convertir este esquema de funciones al lenguaje AWL, se debe trabajar con paréntesis:
LD S1
AND S2
OR (S3 AND S4)
ST H1

El paréntesis en el lenguaje AWL es imprescindible puesto que, de lo contrario, se programaría otra


operación de conmutación. Las reglas de enlace del álgebra lógica no tienen ninguna validez en el
lenguaje AWL.

Texto estructurado:
H1 := S1 AND S2 OR S3 AND S4

Las reglas de enlace del álgebra lógica tienen completa validez en el lenguaje ST.

Operación OR antes de AND


En esta estructura básica, las salidas de la operación OR conducen a una operación AND. En el álgebra
de conmutación, esto se conoce como una operación conjuntiva.

Álgebra lógica:
H1=(S1+S2)*(S2+S3)

Esquema de funciones:
Los resultados de las operaciones OR S1, S2 al igual que S3, S4 se convierten en operaciones AND. Para
convertir este esquema de funciones al lenguaje AWL, se debe trabajar con paréntesis.
Lista de instrucciones:
LD S1
OR S2
AND (S3 OR S4)
ST H1

El paréntesis en el lenguaje AWL es imprescindible puesto que, de lo contrario, se programaría otra


operación de conmutación. Las reglas de enlace del álgebra lógica no tienen ninguna validez en el
lenguaje AWL.
Texto estructurado:
H1 := (S1 OR S2) AND (S3 OR S4);
Las reglas de enlace del álgebra lógico poseen completa validez en el lenguaje ST. Por este motivo, las
operaciones OR se deben escribir en paréntesis.

Tarea
Realice ahora el siguiente experimento. Para ello, pulse el enlace "Tarea" que se encuentra abajo y, a
partir de las instrucciones del experimento, llévelo a cabo en el entorno de desarrollo.
Para ello, monte en primer lugar el siguiente arreglo experimental:
Experimento: Operación OR antes de AND
Cree un programa con el entorno de desarrollo, compílelo y cárguelo en el PLC. Compruebe a
continuación el funcionamiento del programa por medio de la tarjeta de experimento PLC.

Procedimiento:
Vaya a continuación al modo de entorno de desarrollo pulsando el botón que se encuentra en el
vértice superior derecho del curso. Cree en programa en lenguaje AWL para el código AWL dado.

Lista de instrucciones:
LD S1
OR S2
AND S3
OR S4
ST H1

Para ello, defina todas las variables de entrada y salida y, a continuación, introduzca el código AWL.
Cargue el programa en el PLC y conmute el PLC al modo de operación RUN. Compruebe el
funcionamiento del programa.

Operaciones lógicas compuestas


En el caso de las redes de gran tamaño, debido a la aplicación de niveles de paréntesis, se crean
rápidamente funciones profundamente intercaladas, que se pueden pasar por alto muy fácilmente y
que son de difícil comprensión. Por este motivo, en este tipo de redes, resulta razonable trabajar con
memorias intermedias.
Ejemplo
Para el siguiente esquema de funciones se debe elaborar una solución claramente visible y bien
estructurada. Para conseguirlo, es necesario dividir el bloque de funciones en redes parciales
razonables. Las redes marcadas con el círculo azul se deben respaldar por una memoria intermedia.
Esquema de funciones:
Procedimiento:
1a red parcial:

Lista de instrucciones:
LD S2
OR S4
AND S3
ST ZW1

El resultado de esta red parcial se almacenará en la memoria intermedia ZW1.

2da red parcial:

Lista de instrucciones:
LD S2
OR S3
AND S1
ST ZW2

El resultado de esta red parcial se almacenará en la memoria intermedia ZW2.

Otras divisiones:
De esta manera, el esquema de funciones se vuelve ya mucho más claro. El bloque de funciones
resultante se puede volver a descomponer.
Lista de instrucciones:
LD S1
AND S2
OR ZW1
ST ZW3

Resultado:
De esta manera se obtiene finalmente un esquema de funciones de clara lectura, lo que también
equivale a un programa de clara estructura.

Lista de instrucciones:
LD ZW3
AND S5
OR ZW2
ST H1

A continuación se encuentra el programa completo, inclusive la declaración de variables:

(************************************)
(* *)
(* Operaciones complejas con *)
(* memoria intermedia *)
(* *)
(************************************)
VAR
(************************************)
(* Variable de entrada *)
S1 AT %IX0.0 : BOOL;
S2 AT %IX0.1 : BOOL;
S3 AT %IX0.2 : BOOL;
S4 AT %IX0.3 : BOOL;
S5 AT %IX0.4 : BOOL;
(***********************************)
(* Variable de salida *)
H1 AT %Q2.0 : BOOL;
(***********************************)
(* Memoria intermedia *)
ZW1 : BOOL; (* Memoria intermedia de la 1a red parcial *)
ZW2 : BOOL; (* Memoria intermedia de la 2da red parcial *)
ZW3 : BOOL; (* Memoria intermedia de la 3ra red parcial *)
END_VAR
(***********************************)
(* 1a red parcial *)
LD S2
OR S4
AND S3
ST ZW1
(***********************************)
(* 2a red parcial *)
LD S2
OR S3
AND S1
ST ZW2
(***********************************)
(* 3a red parcial *)
LD S1
AND S2
OR ZW1
ST ZW3
(***********************************)
(* Red principal *)
LD ZW3
AND S5
OR ZW2
ST H1
Memoria
La mayoría de las tareas de control automático exigen que exista la posibilidad de almacenar
determinados estados de señales. Esto permite que las señales de aparición breve, como por ejemplo, la
pulsación de una tecla, se mantengan duraderamente en la memoria. Un control con capacidad de
memoria se denomina en general circuito secuencial o flip flop. El estado de las variables de salida no
sólo depende entonces de las variables de entrada, sino, adicionalmente, del estado interno del circuito
secuencial. Este "estado interno" de este elemento de memoria adopta el valor lógico 1 con un "1" en la
entrada S (Set). Por medio del valor de señal "1" en la entrada R (Reset) se vuelve al nivel lógico 0. Esta
relación se puede aclarar por medio de una tabla de verdad:

S    R    Salida
0 0 X, respuesta de la memoria, esto es:
"0", si antes el estado era "0" 
"1", si antes el estado era "1"  
0 1 0
1 0 1
1 1 0, si la desconexión tiene prioridad;
1, si la conexión tiene prioridad

¿Qué estado tiene esta prioridad? (Encierre en un circulo la viñeta para indicar su respuesta)

 Prioridad Set
 Prioridad Reset

Comandos de activación (Set) y de reposición (Reset)


La implementación de un elemento de memoria de esta naturaleza se realiza por medio de los
comandos Set y Reset.

Con el comando de activación (Set), un operando binario adopta el valor "1". Este permanece en "1"
hasta que se produzca su reposicionamiento (Reset). Por medio de un comando de reposición, el
operando binario puede volver al nivel lógico "0". Este permanece en "0" hasta que se vuelva a producir
su activación.
Respuesta de memoria con prioridad de Reset:
Lista de instrucciones:

LD    S1
S H1
LD S2
R H1

Si S1 presenta el estado de señal "1", la entrada adopta el valor "1".


Si S2 presenta el estado de señal "1", la entrada adopta el valor "0".
Si ambas entradas tienen el estado de señal "1", se impone el comando de Reset puesto que éste viene
a continuación del comando de Set. Este comportamiento se denomina prioridad asignada a Reset.

 
Texto estructurado:

IF S1 =TRUE THEN
  H1:= TRUE;
END_IF;
IF S2 =TRUE THEN
  H1:= FALSE;
END_IF;

En el lenguaje ST, la respuesta de memoria se reproduce por medio de una instrucción de selección IF.
También aquí se trata de una prioridad de Reset.
 

Respuesta de la memoria con prioridad de Reset con operaciones lógicas AND


y OR:
Álgebra lógica:
H1= (H1*S1) +  /S2

Esquema de funciones:
Aquí se implementó una función de memoria por medio de elementos de operaciones lógicas
convencionales. Sólo bajo la condición de que S2 presente el estado "0" se puede poner en "1" la salida
H1.

Si tiene el valor "1", la salida H1 se mantiene a sí misma en este estado.


 

Respuesta de la memoria con prioridad de Set con operaciones lógicas AND y


OR:
 Lista de instrucciones:

LD    S2
R H1
LD S1
S H1

Si S1 presenta el estado de señal "1", la entrada adopta el valor "1".


Si S2 presenta el estado de señal "1", la entrada adopta el valor "0".
Si ambas entradas tienen el estado de señal "1", se impone el comando de Set puesto que éste viene a
continuación del comando de Reset.

 
Texto estructurado:

IF S2 =TRUE THEN
  H1:= FALSE;
END_IF;
IF S1 =TRUE THEN
  H1:= TRUE;
END_IF; 

En el lenguaje ST, la respuesta de memoria se reproduce por medio de una instrucción de selección IF.
También aquí se trata de una prioridad de Set, la cual viene dada por el orden de sucesión de las
instrucciones.

 Álgebra lógica:

H1= (H1*/S2) + S1


Esquema de funciones:

S1 pone en 1 la entrada por medio de la operación OR, independientemente del valor de  S2. Si S2
presenta el estado de señal "0", la entrada H1 mantiene el valor 1, de lo contrario se desconecta.

Bloqueo de memorias

Los bloqueos de memorias se encuentran muy a menudo en la tecnología de control automático.


Bloquear significa que una memoria no se puede poner en 1 si no se cumplen determinadas
condiciones. El bloqueo mutuo de memorias se presenta, por ejemplo, en motores que pueden girar en
ambos sentidos. En este tipo de motores se debe evitar que ambos sentidos de giro se puedan conmutar
simultáneamente. Un bloqueo de esta naturaleza se puede implementar de dos diferentes maneras.

1. Bloqueo a través del ramal de activación (Set):

 
Si A1 se conectó, A2 ya no se puede conectar debido al bloqueo presente en el ramal de activación. A
través de la operación AND de las entradas de Set, el comando de activación sólo se hace efectivo si la
otra salida correspondiente suministra el estado de señal "0".

2. Bloqueo a través del ramal de Reset:

 Si A1 se conectó, A2 ya no se puede conectar debido al bloqueo presente en el ramal de Reset. Por
medio de la operación OR del ramal de Reset, la memoria correspondiente adopta el valor 0, aunque ya
se encontrara en el nivel lógico 1, si la otra salida correspondiente suministra un "1".

 ¡En el bloqueo del ramal de Reset se debe prestar especial atención a que el comando de Reset se
encuentre directamente después del de Set porque, de lo contrario, se pueden presentar errores lógicos
si, entretanto, se toma como referencia la memoria!

Experimento: Funciones de memoria


En este ejercicio aplicará las funciones de memoria y bloqueo y comprobará su funcionamiento. Cree un
programa con el entorno de desarrollo, compílelo y cárguelo en el PLC. Compruebe a continuación el
funcionamiento del programa por medio de la tarjeta de experimentación PLC.

Procedimiento
Vaya a continuación al modo de entorno de desarrollo pulsando el botón que se encuentra en el
vértice superior derecho del curso. Cree el programa del PLC de acuerdo con la tarea requerida.
Tarea requerida
Un motor se debe conectar con el pulsador S1 y desconectar con el pulsador S2. Por medio de los
pulsadores S3 (a la derecha) y S4 (a la izquierda) se debe determinar el sentido de giro. Si se
seleccionaron ambos sentidos de giro, el motor no debe ponerse en marcha. Una variación del sentido
de giro sólo se puede volver efectiva con el motor en reposo, de lo contrario, se verá ignorada. El
sentido de giro se debe indicar por medio de lámparas piloto.

Tabla de asignación:

Símbolo Significado Dirección


S1 Conectador S1=1, si está activado %I0.0
S2 Desconectador S2=0, si está activado %I0.1
S3 Giro a la derecha S3=1, si está activado %I0.2
S4 Giro a la izquierda S4=1, si está activado %I0.3
K1 Contactor de giro a la derecha K1=1 %Q2.0
K2 Contactor de giro a la izquierda K2=1 %Q2.1
H1 Lámpara piloto de giro a la derecha %Q2.2
H2 Lámpara piloto de giro a la izquierda %Q2.3

Realice ahora el siguiente experimento. Monte en primer lugar el siguiente arreglo experimental.
Defina todas las variables de entrada y salida y, a continuación, introduzca las instrucciones. Cargue el
programa en el PLC y conmute el PLC al modo de operación RUN. Compruebe ahora el programa con el
hardware de experimentación y familiarícese con el funcionamiento.

¿Cuál de las siguientes afirmaciones es correcta?

El interruptor está diseñado como contacto normalmente cerrado


El interruptor está diseñado como contacto normalmente abierto
Todos los otros elementos de servicio operan como pulsadores
Todos los elementos de servicio presentan un diseño de interruptores
Con el motor en marcha se puede conmutar el sentido de giro por medio de S3 y S4

Resumen
Los componentes de memoria (flip flops) sirven para el almacenamiento de estados de
señal que sólo aparecen brevemente.
Los flip flops poseen una entrada de Set (S) y una entrada de Reset (R).
De acuerdo con la respuesta de R = S = "1" se diferencia entre flip flops con prioridad
de Set o de Reset.
La respuesta de la memoria se puede implementar convencionalmente con funciones
AND y OR
En el lenguaje AWL se dispone de los comandos S y R para funciones de memoria
En lenguaje ST la respuesta de la memoria se puede implementar con una instrucción
de selección (instrucción IF-THEN).
La prioridad de la instrucción se ve influida por el orden de sucesión de las
instrucciones.
Los bloqueos se pueden llevar a cabo en el ramal de Set o en el de Reset.

También podría gustarte