You are on page 1of 216

B-I

Sección B – Fundamentos

Festo Didactic • TP301


B-II

Capítulo 1 Automatizando con un PLC . . . . . . . . . . . . . . . . . . . . B-1


1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-2
1.2 Campos de aplicación de un PLC . . . . . . . . . . . . . . . . . . . . . B-2
1.3 Diseño básico de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5
1.4 El nuevo estándar para PLC IEC 1131 . . . . . . . . . . . . . . . . . B-8

Capítulo 2 Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-11


2.1 El sistema de numeración decimal . . . . . . . . . . . . . . . . . . . B-12
2.2 El sistema de numeración binario . . . . . . . . . . . . . . . . . . . . B-12
2.3 El código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-14
2.4 El sistema de numeración hexadecimal . . . . . . . . . . . . . . . B-14
2.5 Números binarios con signo . . . . . . . . . . . . . . . . . . . . . . . . B-15
2.6 Números reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-15
2.7 Generación de señales binarias y digitales . . . . . . . . . . . . . B-16

Capítulo 3 Operaciones Booleanas . . . . . . . . . . . . . . . . . . . . . . B-19


3.1 Funciones lógicas básicas . . . . . . . . . . . . . . . . . . . . . . . . . . B-20
3.2 Otras operaciones lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . B-24
3.3 Establecimiento de funciones de conmutación . . . . . . . . . . B-26
3.4 Simplificación de funciones lógicas . . . . . . . . . . . . . . . . . . . B-28
3.5 Diagrama de Karnaugh-Veitch. . . . . . . . . . . . . . . . . . . . . . . B-30

Capítulo 4 Diseño y modo de funcionamiento de un PLC . . . B-33


4.1 Estructura de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-34
4.2 Unidad de procesamiento principal de un PLC . . . . . . . . . . B-36
4.3 Modo de funcionamiento de un PLC . . . . . . . . . . . . . . . . . . B-38
4.4 Memoria del programa de la aplicación . . . . . . . . . . . . . . . B-40
4.5 Módulo de Entradas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-42
4.6 Módulo de Salidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-44
4.7 Aparato programador / Ordenador personal . . . . . . . . . . . . B-46

TP301 • Festo Didactic


B-III

Capítulo 5 Programación de un PLC . . . . . . . . . . . . . . . . . . . . B-49


5.1 Búsqueda de una solución sistemática . . . . . . . . . . . . . . . . B-50
5.2 Recursos de estructuración de IEC 1131-3 . . . . . . . . . . . . B-53
5.3 Lenguajes de programación. . . . . . . . . . . . . . . . . . . . . . . . . B-56

Capítulo 6 Elementos comunes de los lenguajes . . . . . . . . . . B-61


6.1 Recursos de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-62
6.2 Tipos de datos y variables . . . . . . . . . . . . . . . . . . . . . . . . . . B-66
6.3 Unidades de organización de programas . . . . . . . . . . . . . . B-76

Capítulo 7 Diagrama de bloques de función . . . . . . . . . . . . . . B-91


7.1 Elementos del diagrama de bloques de función . . . . . . . . . B-92
7.2 Evaluación de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-93
7.3 Estructuras de bucle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-94

Capítulo 8 Diagrama de contactos . . . . . . . . . . . . . . . . . . . . . . B-95


8.1 Elementos del diagrama de contactos . . . . . . . . . . . . . . . . . B-96
8.2 Funciones y bloques de función. . . . . . . . . . . . . . . . . . . . . . B-98
8.3 Evaluación de los renglones . . . . . . . . . . . . . . . . . . . . . . . . B-99

Capítulo 9 Lista de instrucciones . . . . . . . . . . . . . . . . . . . . . . B-101


9.1 Instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-102
9.2 Operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-103
9.3 Funciones y bloques de función. . . . . . . . . . . . . . . . . . . . . B-104

Capítulo 10 Texto estructurado. . . . . . . . . . . . . . . . . . . . . . . . B-107


10.1 Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-108
10.2 Instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-110
10.3 Instrucciones de selección . . . . . . . . . . . . . . . . . . . . . . . . . B-112
10.4 Instrucciones de iteración. . . . . . . . . . . . . . . . . . . . . . . . . . B-115

Festo Didactic • TP301


B-IV

Capítulo 11 Diagrama de funciones secuencial . . . . . . . . . . B-119


11.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-120
11.2 Elementos del diagrama de funciones secuencial . . . . . . B-120
11.3 Transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-130
11.4 Pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-133
11.5 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-143

Capítulo 12 Sistemas de control lógico. . . . . . . . . . . . . . . . . . B-147


12.1 Qué es un sistema de control lógico . . . . . . . . . . . . . . . . . B-148
12.2 Sistema de control lógico sin propiedades memorizantes B-148
12.3 Sistema de control lógico con propiedades memorizantes B-154
12.4 Evaluación de flancos . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-157

Capítulo 13 Temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . B-161


13.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-162
13.2 Temporizador de pulsos. . . . . . . . . . . . . . . . . . . . . . . . . . . B-163
13.3 Señal con retado a la conexión . . . . . . . . . . . . . . . . . . . . . B-165
13.4 Señal con retado a la desconexión . . . . . . . . . . . . . . . . . . B-167
Capítulo 14 Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-171
14.1 Funciones de contador . . . . . . . . . . . . . . . . . . . . . . . . . . . B-172
14.2 Contador incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-172
14.3 Contador decremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-176
14.4 Contador incremental/decremental . . . . . . . . . . . . . . . . . . B-178

Capítulo 15 Sistemas de control secuencial. . . . . . . . . . . . . . B-179


15.1 Qué es un sistema de control secuencial . . . . . . . . . . . . . B-180
15.2 Diagrama de funciones según IEC 848 . . . . . . . . . . . . . . B-180
15.3 Diagrama desplazamiento-fase . . . . . . . . . . . . . . . . . . . . . B-186

TP301 • Festo Didactic


B-V

Capítulo 16 Puesta a punto y seguridad en el manejo


de un PLC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-187
16.1 Puesta a punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-188
16.2 Seguridad en el manejo de un PLC. . . . . . . . . . . . . . . . . . B-190

Capítulo 17 Comunicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . B-195


17.1 La necesidad de comunicación . . . . . . . . . . . . . . . . . . . . . B-196
17.2 Transmisión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-196
17.3 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-197
17.4 Comunicación a nivel de campo . . . . . . . . . . . . . . . . . . . . B-198

Festo Didactic • TP301


B-VI

Prefacio
Los Controles Lógicos Programables1) representan un factor clave en
la automatización industrial. Su utilización permite una adaptación flexi-
ble a los procesos cambiantes, así como una rápida localización de
averías y eliminación de errores.
Este libro de texto explica los principios de un control programable y su
interacción con sus periféricos.
Uno de los puntos centrales de este libro de texto trata del nuevo
estándar internacional para programación de PLCs, el IEC-1131, Parte 3.
Este estándar tiene en cuenta las ampliaciones y desarrollos, para los
cuales no existían elementos de lenguaje estandarizado hasta ahora.
El objetivo de IEC-1131-3 es estandarizar el diseño, la funcionalidad y
la programación de un PLC de tal forma que el usuario pueda manejar
con facilidad los diferentes sistemas.
En interés de la posterior mejora de este libro, se invita a los lectores a
contribuir con sus sugerencias, ideas y críticas constructivas.

Los autores

1) Nota del traductor:


La traducción más extendida de la expresión Inglesa ’Programable Lo-
gic Control’ es ’Control Lógico Programable’. A pesar de ello, su acró-
nimo castellanizado CLP no ha tenido una plena aceptación en los
medios industriales, que siguen utilizando con más frecuencia el acró-
nimo Inglés PLC.
Otras denominaciones de estos equipos son:
’Autómata Programable Industrial’ o simplemente ’Autómata Industrial’
(AI), procedente del francés y ’Mando Programable en Memoria’, pro-
cedente del alemán ’Speicherprogrammierbare Steuerungen’ (SPS).
En este libro de texto hemos utilizado la denominación Control Lógico
Programable, con su acrónimo Inglés PLC.

TP301 • Festo Didactic


B-1
Capítulo 1

Capítulo 1

El PLC en la
tecnología de automatización

Festo Didactic • TP301


B-2
Capítulo 1

1.1 Introducción El primer Control Lógico Programable (Programmable Logic Control o


PLC) fue desarrollado por un grupo de ingenieros en la General Motors
en 1968, cuando la empresa estaba buscando una alternativa para
reemplazar los complejos sistemas de control por relés.
El nuevo sistema de control tenía que cumplir con los siguientes reque-
rimientos:
Programación sencilla
Cambios de programa sin intervención en el sistema (sin tener que
rehacer el cableado interno)
Más pequeño, más económico y más fiable que los correspondien-
tes sistemas de control por relés
Sencillo y con bajo coste de mantenimiento
Los sucesivos desarrollos llevaron a un sistema que permitía la conexión
sencilla de señales binarias. Los requerimientos de cómo estaban conec-
tadas estas señales se especificaba en el programa de control. Con los
nuevos sistemas, fue posible por primera vez mostrar las señales en una
pantalla y archivar los programas en memorias electrónicas.
Desde entonces han pasado tres décadas, durante las cuales los enor-
mes progresos hechos en el desarrollo de la micro electrónica han
favorecido la proliferación de los controles lógicos programables. Por
ejemplo, a pesar de que en sus comienzos, la optimización del progra-
ma y con ello la necesidad de reducir la ocupación de memoria repre-
sentaba una tarea importante para el programador, en la actualidad
esto apenas tiene importancia.
Además, las funciones disponibles han crecido considerablemente.
Hace quince años, la visualización de procesos, el procesamiento ana-
lógico o incluso la utilización de un PLC como un regulador, eran con-
siderados una utopía. Actualmente, muchos de estos elementos son
parte integral de muchos PLCs.
En las páginas siguientes de este capítulo de introducción, describire-
mos el diseño básico de un PLC junto con las tareas y aplicaciones
más importantes actualmente.
1.2 Áreas de Todas las máquinas o sistemas automáticos tienen un control. Dependien-
aplicación do del tipo de tecnología utilizada, los controles pueden dividirse en neumá-
de un PLC ticos, hidráulicos, eléctricos y electrónicos. Con frecuencia se utiliza una
combinación de las diferentes tecnologías. Además, debe distinguirse entre
controles con programa cableado (es decir, conexionado físico de compo-
nentes electromecánicos (relés, etc) o componentes electrónicos (circuitos
integrados)) y controles lógicos programables. Los primeros se utilizan prin-
cipalmente en casos en los que la reprogramación por el usuario está fuera
de toda duda y el alcance de la tarea justifica el desarrollo de un sistema
de control especial. Las aplicaciones típicas de tales controles pueden ha-
llarse en los electrodomésticos, vídeo cámaras, vehículos, etc.

TP301 • Festo Didactic


B-3
Capítulo 1

Sin embargo, si la tarea de control no justifica el desarrollo de un control


especial, o si el usuario debe tener la posibilidad de hacer cambios senci-
llos, o de modificar tiempos o valores de contadores, entonces el uso de
un control universal, en el que el programa se escribe en una memoria
electrónica, es la opción preferida. El PLC representa un control universal.
Puede utilizarse para diferentes aplicaciones y, dado que el programa se
halla escrito en su memoria electrónica, el usuario puede modificar, am-
pliar y optimizar con cierta sencillez sus procesos de control.

Fig. B1.1:
Ejemplo de aplicación
de un PLC

La tarea original de un PLC es la interconexión de señales de entrada, de


acuerdo con un determinado programa y, si el resultado de esta interco-
nexión es "cierta", activar la correspondiente salida. El álgebra de Boole
forma la base matemática para esta operación, ya que solamente recono-
ce dos estados definidos de una variable: "0" (falso) y "1" (cierto) (véase
también el capítulo 3). Consecuentemente, una salida sólo asume estos
dos estados. Por ejemplo, una electroválvula conectada a la salida puede
estar activada o desactivada, es decir, controlada.

Festo Didactic • TP301


B-4
Capítulo 1

Esta función ha acuñado el nombre de PLC: Programmable Logic


Control o Control Lógico Programable. En él, el comportamiento de
las entradas/salidas es similar al de los controles realizados con relés
electromagnéticos o con elementos lógicos neumáticos o electrónicos;
la diferencia reside en que el programa en lugar de estar ’cableado’
está almacenado en una memoria electrónica.
Sin embargo las tareas del PLC se ampliaron rápidamente: las funcio-
nes de temporización y recuento, operaciones de cálculo matemático,
conversión de señales analógicas, etc. representan funciones que pue-
den ejecutarse en casi todos los PLCs actuales.
Las demandas que se requieren de los PLCs siguen creciendo al mis-
mo ritmo que su amplia utilización y desarrollo en la tecnología de
automatización. Por ejemplo: la visualización, es decir, la repre-
sentación de los estados de las máquinas o la supervisión de la ejecu-
ción del programa por medio de una pantalla o monitor. También el
control directo, es decir, la facilidad de intervenir en los procesos de
control o, alternativamente, impedir tal intervención a las personas no
autorizadas. También se ha visto la necesidad de interconectar y armo-
nizar sistemas individuales controlados por PLC, por medio de redes o
buses de campo. Aquí, un ordenador master permite la generación de
órdenes de mayor nivel para el procesamiento de programas en los
diversos sistemas PLC interconectados.
La conexión en red de varios PLCs, así como la de un PLC con el
ordenador master se realiza por medio de interfaces de comunicación
especiales. Para ello, la mayoría de los más recientes PLCs son com-
patibles con sistemas de bus abiertos estandarizados, tales como Pro-
fibus según DIN 19 245. Gracias al enorme aumento de la potencia y
capacidad de los PLCs avanzados, estos pueden incluso asumir direc-
tamente la función de un ordenador master.
Hacia finales de los setenta, las entradas y salidas binarias fueron fi-
nalmente ampliadas con la adición de entradas y salidas analógicas,
ya que hay muchas aplicaciones técnicas que emiten y requieren seña-
les analógicas (medición de fuerzas, velocidades, sistemas de posicio-
nado servoneumáticos, etc.). Al mismo tiempo la adquisición y emisión
de señales analógicas permite la comparación de valores reales con
los de consigna y, como consecuencia, la realización de funciones de
regulación automática; una tarea que va más allá del ámbito que su-
giere el nombre de control lógico programable.

TP301 • Festo Didactic


B-5
Capítulo 1

Los PLCs que existen actualmente el mercado han sido adaptados a los
requerimientos de los clientes hasta tal punto que ya es posible adquirir
un PLC exactamente adaptado para casi cada aplicación. Así, hay dispo-
nibles actualmente desde PLCs en miniatura con unas decenas de entra-
das/salidas hasta grandes PLCs con miles de entradas/salidas.
Muchos PLCs pueden ampliarse por medio de módulos adicionales de
entradas/salidas, módulos analógicos y de comunicación. Hay PLCs
disponibles para sistemas de seguridad, barcos o tareas de minería.
Otros PLCs son capaces de procesar varios programas al mismo tiem-
po (Multitarea). Finalmente, los PLCs pueden conectarse con otros
componentes de automatización, creando así áreas considerablemente
amplias de aplicación.

Fig. B1.2:
Ejemplo de un PLC:
AEG Modicon A120

El término ’Control Lógico Programable’ se define en IEC 1131, Parte 1, 1.3 Definición básica
como sigue: de un PLC
"Un sistema electrónico de funcionamiento digital, diseñado para ser
utilizado en un entorno industrial, que utiliza una memoria programable
para el almacenamiento interno de instrucciones orientadas al usuario,
para la realización de funciones específicas tales como enlaces lógi-
cos, secuenciación, temporización, recuento y cálculo, para controlar, a
través de entradas y salidas digitales o analógicas, diversos tipos de
máquinas o procesos. Tanto el PLC como sus periféricos asociados
están diseñados de forma que puedan integrarse fácilmente en un sis-
tema de control industrial y ser fácilmente utilizados en todas las apli-
caciones para las que están previstos."

Festo Didactic • TP301


B-6
Capítulo 1

Por lo tanto, un control lógico programable es sencillamente un ordena-


dor, adaptado específicamente para ciertas tareas de control.
La Fig. B1.3 ilustra los componentes del sistema de un PLC

Programa PLC

Módulo de entrada Unidad Central Módulo de salida

Fig. B1.3:
Componentes de un Sensores Actuadores
sistema PLC

La función de un módulo de entrada es la de convertir señales de


entrada en señales que puedan ser procesadas por el PLC y pasarlas
a la unidad de control central. La tarea inversa es realizada por el
módulo de salida. Este convierte las señales del PLC en señales ade-
cuadas para los actuadores.
El verdadero procesamiento de las señales se realiza en la unidad
central de control, de acuerdo con el programa almacenado en la me-
moria.
El programa de un PLC puede crearse de varias formas: a través de
instrucciones parecidas al lenguaje ensamblador (assembler) en ’lista
de instrucciones’, en lenguajes de alto nivel orientados al problema,
tales como el texto estructurado, o en forma de diagrama de flujo como
se representa en el diagrama de funciones secuencial. En Europa, la
utilización de los diagramas de bloques de función basados en los dia-
gramas de funciones con símbolos gráficos para puertas lógicas (logi-
gramas) es ampliamente utilizado. En América el lenguaje preferido por
los usuarios es el ’diagrama de contactos’ o ’diagrama en escalera’
(ladder diagram).
Dependiendo de cómo se halle conectada la unidad central a los mó-
dulos de entrada y salida, hay que distinguir entre PLCs compactos
(módulo de entrada, unidad central y módulo de salida en un sólo cuer-
po) o PLCs modulares.

TP301 • Festo Didactic


B-7
Capítulo 1

La Fig. B1.4 muestra el control FX0 de Mitsubishi, representando un


ejemplo de un PLC compacto.

Fig. B1.4:
PLC compacto
(Mitsubishi FX0),
PLC Modular
(Siemens S7-300),
PLC con tarjetas
(Festo FPC 405)

Los PLCs modulares pueden configurarse individualmente. Los módu-


los requeridos por la aplicación práctica – aparte de los módulos de
entradas/salidas digitales que pueden, por ejemplo, incluir módulos
analógicos , de posicionamiento y comunicación – se insertan en un
rack, en el que todos los módulos están enlazados por un sistema de
bus. Este diseño se conoce también como tecnología modular. Dos
ejemplos de PLCs modulares se muestran en la Figs. B1.2 y B1.4.
Estos representan la familia modular de PLC de AEG Modicon y el
S7-300 de Siemens.
Existe una amplia gama de variantes, particularmente en el caso de las
PLCs más recientes. Esto incluyen tanto las características compactas
como las modulares y características importantes tales como el ahorro
de espacio, flexibilidad y posibilidad de ampliación.
La tarjeta con formato PLC es un tipo especial de PLC modular desa-
rrollado durante los últimos años. Con este tipo, varios módulos reali-
zados sobre tarjetas de circuito impreso se montan en una caja estan-
darizada. El FPC 405 de Festo es representativo de este tipo de dise-
ño (Fig. B1.4).

Festo Didactic • TP301


B-8
Capítulo 1

El diseño del hardware de un control lógico programable está hecho de


forma que pueda soportar los entornos típicos industriales en cuanto a
los niveles de las señales, calor, humedad, fluctuaciones en la alimen-
tación de corriente e impactos mecánicos.

1.4 El nuevo estándar A finales de los setenta, se plantearon en Europa algunos estándares
para PLC, válidos para la programación de PLCs, enfocados principalmente al es-
IEC-1311 tado de la tecnología en aquel momento. Tenían en cuenta sistemas
de PLC no interconectados, que realizaban operaciones lógicas con
señales binarias. DIN 19 239, por ejemplo, especifica un lenguaje de
programación que posee las correspondientes instrucciones para estas
aplicaciones.
Anteriormente, no existían elementos de lenguaje estandarizados ni
equivalentes para el desarrollo de programas de PLC. Los desarrollos
aparecidos en los años ochenta, tales como el procesamiento de seña-
les analógicas, interconexión de módulos inteligentes, sistemas de PLC
en red, etc. agravaron el problema. Consecuentemente, los sistemas
PLC de diferentes fabricantes requerían técnicas de programación
completamente diferentes.
Desde 1992, existe un estándar internacional para controles lógicos
programables y dispositivos periféricos asociados (herramientas de
programación y diagnosis, equipos de verificación, interfaces hombre-
máquina, etc.). En este contexto, un dispositivo configurado por el
usuario y compuesto por los elementos citados anteriormente, se cono-
ce como un sistema PLC.
El nuevo estándar IEC 1131 consta de cinco partes:
Parte 1: Información general
Parte 2: Requerimientos y verificaciones del equipo
Parte 3: Lenguajes de programación
Parte 4: Directrices para el usuario
Parte 5: Especificación del servicio de mensajes
Las partes 1 a 3 de este estándar se adoptaron sin enmiendas como el
estándar Europeo EN 61 131, Partes 1 a 3.
La finalidad del nuevo estándar era definir y estandarizar el diseño y
funcionalidad de un PLC y los lenguajes requeridos para la programa-
ción hasta un grado en el que los usuarios pudieran hacer funcionar
sin ninguna dificultad los diferentes sistemas de PLC de los distintos
fabricantes.

TP301 • Festo Didactic


B-9
Capítulo 1

Los siguientes capítulos tratarán con detalle sobre este estándar. Por
el momento, será suficiente la siguiente información:
El nuevo estándar tiene en cuenta la mayoría de aspectos posibles
en relación con el diseño, aplicación y utilización de sistemas PLC.
Las amplias especificaciones sirven para definir sistemas de PLC
abiertos y estandarizados.
Los fabricantes deben ajustarse a las especificaciones de este es-
tándar, tanto en el aspecto puramente técnico de los requerimientos
de un PLC como en lo que se refiere a la programación de tales
controles.
Todas las variaciones deben ser completamente documentadas
para el usuario
Tras unas reticencias iniciales, se ha formado un grupo relativamente
grande de personas interesadas (PLCopen) para apoyar este estándar.
La mayoría de los principales proveedores de PLC son miembros de la
asociación, es decir, Allen Bradley, Klöcker-Moeller, Philips, para men-
cionar algunos. Otros fabricantes de PLC como Siemens o Mitsubishi
también ofrecen controles y sistemas de programación conformes con
IEC-1131.
Los sistemas de programación iniciales ya están disponibles en el mer-
cado y otros están siendo desarrollados. Sin embargo, la norma tiene
una buena oportunidad de aceptación y de éxito. Esperamos que este
libro de texto contribuirá, en cierto modo, al desarrollo de este estándar.

Festo Didactic • TP301


B-10
Capítulo 1

TP301 • Festo Didactic


B-11
Capítulo 2

Capitulo 2

Fundamentos

Festo Didactic • TP301


B-12
Capítulo 2

2.1 El sistema de La característica del sistema de numeración decimal, comunmente utili-


numeración zado, es la disposición lineal de los dígitos y su emplazamiento signifi-
decimal cativo. El número 4344, por ejemplo, puede representarse como sigue:
4344 = 4 x 1000 + 3 x 100 + 4 x 10 + 4 x 1
El número 4 que se halla en el extremo izquierdo, tiene un significado
diferente del número 4 situado en el extremo derecho.
La base del sistema de numeración decimal es la disponibilidad de 10
dígitos diferentes (decimal: originario del latín ’decem’ = 10). Estos diez
diferentes dígitos permiten contar de 0 a 9. Si la cuenta sobrepasa el
número 9, esto constituye un arrastre para el dígito de la siguiente
posición a la izquierda. El significado de esta posición en 10, y el si-
guiente arrastre se realiza cuando se alcanza el valor 99.
Utilizaremos el número 71.718.711 como ejemplo:

107 106 105 104 103 102 101 100

7 1 7 1 8 7 1 1
Ejemplo

Como puede verse arriba, el significado del "7" en el extremo izquierdo


es 70 000 000 = 70 millones, mientras que el significado del "7" en la
tercera posición desde la izquierda es de 700.
El dígito del extremo derecho se conoce como el ’dígito menos significati-
vo’ y el dígito del extremo izquierdo, como el ’dígito más significativo’.
Cualquier sistema de numeración puede ser configurado basándose en
este ejemplo, cuya estructura fundamental puede aplicarse a sistemas
de numeración de cualquier cantidad de dígitos. Consecuentemente,
cualquier operación de cálculo y método de computación que utilice el
sistema de numeración decimal puede ser utilizado con otros sistemas
de numeración.

2.2 El sistema de Fue Leibnitz quien aplicó por primera vez las estructuras del sistema
numeración de numeración decimal al cálculo con dos dígitos. Allá por el año 1679,
binario esto creó las premisas esenciales para el desarrollo de los actuales
ordenadores, ya que la tensión eléctrica o la corriente eléctrica, sólo
permite un cálculo utilizando dos valores: es decir "circula corriente" o
"no circula corriente". Estos dos valores se representan en forma de
dígitos "1" y "0".

TP301 • Festo Didactic


B-13
Capítulo 2

Si en un número estuviéramos limitados a exactamente 2 dígitos por


posición, el sistema de numeración quedaría configurado como sigue:

27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=1

1 0 1 1 0 0 0 1
Ejemplo

El principio es exactamente el mismo que el del método utilizado para


crear un número decimal. Sin embargo, sólo se dispone de dos dígitos,
razón por la cual la posición significativa no se calcula con la base 10x,
sino con al base 2x. Así, el número menos significativo en el extremo
derecho es 20 = 1, y para la siguiente posición 21 = 2, etc. Dado el uso
exclusivo de dos dígitos, este sistema de numeración se conoce como
sistema binario o sistema dual.
Con ocho posiciones, pueden representarse un máximo de:
28 – 1 = 256 – 1 = 255
valores que alcanzarían hasta el numero 1111 11112
Cada una de las posiciones de un sistema de numeración binario pue-
de adoptar uno de los dos dígitos 0 o 1. La menor unidad posible del
sistema binario es de 1 bit.
En el ejemplo citado arriba, se ha configurado un número consistente
en 8 bits, es decir, un byte (en un ordenador que utilice 8 señales
eléctricas representando "tensión disponible" o "tensión no disponible").
El número considerado, 1011 00012, corresponde al valor decimal
17710.

1 x 27 0 x 26 1 x 25 1 x 24 0 x 23 0 x 22 0 x 21 1 x 20

= 128 + 32 + 16 +1

= 177
Ejemplo

Festo Didactic • TP301


B-14
Capítulo 2

2.3 El código BCD Para las personas acostumbradas a tratar con el sistema decimal, los
números binarios son difíciles de leer. Por esta razón, se introdujo una
representación numérica de más fácil lectura, es decir, una notación
decimal codificada de un número binario: el denominado BCD (binary
coded decimal). Con este código BCD, cada dígito del sistema de nu-
meración decimal representa a su correspondiente número binario.

010 0000BCD

110 0001BCD

210 0010BCD

310 0011BCD

410 0100BCD

510 0101BCD

610 0110BCD

710 0111BCD
Tabla B2.1: 810 1000BCD
Representación de
números decimales en 910 1001BCD
código BCD

Por lo tanto, se necesitan 4 dígitos en la notación binaria para repre-


sentar el sistema decimal. A pesar de que en una notación binaria de 4
dígitos pueden representarse los valores del 0 al 15, los valores co-
rrespondientes a 10, 11, 12, 13, 14 y 15 no se usan en BCD
Así, el número decimal 7133 se representa como sigue en código BCD:
0111 0001 0011 0011BCD
Por lo tanto, se necesitan 16 bits para representar un número decimal
de cuatro dígitos en código BCD. La codificación en BCD se utiliza a
menudo para visualizadores de siete segmentos y para interruptores
rotativos de introducción de valores.

2.4 El sistema de La utilización de números binarios es difícil y la utilización del código


numeración BCD ocupa bastante espacio de memoria. Por esta razón se desarro-
hexadecimal llaron los sistemas octal y hexadecimal. En el caso del sistema octal se
utilizan grupos de tres dígitos. Esto permite contar de 0 hasta 7, es
decir, contar con "ochos".

TP301 • Festo Didactic


B-15
Capítulo 2

Alternativamente, en el sistema de numeración hexadecimal se combi-


nan 4 bits. Estos 4 bits permiten la representación de los números 0 al
15, es decir, contar en "dieciseises". Para representar estos números
se utilizan los dígitos 0 al 9, seguidos de las letras A, B, C, D, E y F,
en donde A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15. La posición
significativa de cada dígito se evalúa con las potencias de 16.

163=4096 162=256 161=16 160=1

8 7 B C
Ejemplo

Por lo tanto, el número 87BC16 dado como ejemplo se lee como sigue:
8 x 163 + 7 x 162 + 11 x 161 + 12 x 160 = 34 74810

Hasta ahora, hemos tratado solamente con números enteros y positi- 2.5 Números binarios
vos, sin tener en cuenta los números negativos. Para poder trabajar con signo
con estos números, se decidió que el bit más significativo en el extre-
mo izquierdo de un número binario se utilizaría para representar el
signo: así "0" corresponde al "+" y "1" al "–".
Así, 1111 11112 = -12710 y 0111 11112 = +12810
Cuando se utiliza el bit más significativo para el signo, se dispone de
un bit menos para la representación de un número con signo. Para la
representación de un número binario de 16 dígitos, se obtiene el si-
guiente margen de valores:

Entero Margen de valores

sin signo 0 a 65535 Tabla B2.2:


Margen de valores para
con signo -32768 a +32767 los números binarios

Aunque ahora ya es posible representar con 0 y 1 números enteros 2.6 Números reales
positivos con signo, aún hay la necesidad de poder representar los
decimales o números reales.
Para representar un número real en notación binaria de ordenador, el
número se descompone en dos grupos, una potencia de 10 y un factor
de multiplicación. Esto se conoce también como notación científica de
números.

Festo Didactic • TP301


B-16
Capítulo 2

El número 27,334 se convierte así en 273 341 x 10-4. Por lo tanto se


necesitan dos números enteros con signo para representar un número
real en un ordenador.

2.7 Generación de Como ya parece haber quedado claro en la sección anterior, todos los
señales ordenadores, y por lo tanto todos los PLCs, funcionan utilizando seña-
digitales y les digitales o binarias. Por binario, entendemos una señal que sólo
binarias reconoce dos valores definidos.

0
Fig. B2.1: t
Señal binaria

Estos valores se les llama "0" o "1", aunque también se utilizan los
términos "bajo" y "alto". Las señales pueden realizarse muy fácilmente
con componentes de contactos. Un contacto activado corresponde a
una señal de lógica 1 y uno sin activar a una de lógica 0. Cuando se
trabaja con elementos sin contacto, esto puede forzar unos ciertos
márgenes de tolerancia. Por esta razón, hay que definir ciertos márge-
nes de tensión para definirlos como lógica 0 ó lógica 1.

V
30

margen señal-1

11

5
margen señal-0
0
-3 t

Fig. B2.2:
Márgenes de tensión

TP301 • Festo Didactic


B-17
Capítulo 2

IEC 1131-2 define un margen de valores de -3 V a 5 V como señal de


lógica 0, y de 11 V a 30 V como señal de lógica 1. Esto es de obligado
cumplimiento para PLCs cuya tecnología deba seguir la norma IEC
1131-2. En la práctica existen tensiones muy parecidas para lógica 0 y
lógica 1: Ampliamente usadas son: -30 V a +5V para lógica 0 y +13 V
a +30 V para lógica 1.
A diferencia de las señales binarias, las señales digitales pueden asu-
mir cualquier valor. Se les conoce también como etapas de valor. Así,
una señal digital se define por cualquier cantidad de etapas de valor.
El cambio entre estas etapas no es secuencial. La siguiente ilustración
muestra tres posibles métodos de convertir una señal analógica en una
señal digital.

V
6 Señal digital
Señal analógica en base de 0,5 V

5
Señal digital
en base de 1 V
4

2
Señal digital
en base de 3 V
1
Fig. B2.3:
0 Conversión de una
t señal analógica en
una señal digital

Las señales digitales pueden formarse a partir de señales analógicas.


Este método se utiliza, por ejemplo, para el procesamiento analógico a
través de un PLC. Consecuentemente, una señal de entrada analógica
en el margen de 0 a 10 V se reduce a una serie de etapas de valores.
Dependiendo de la calidad del PLC y de la resolución, la señal digital
será capaz de operar en etapas de valores de 0,1 V, 0,01 V ó 0,001 V.
Naturalmente, en este caso se seleccionaría el margen más pequeño
para poder reproducir la señal analógica con la mayor precisión posible.

Festo Didactic • TP301


B-18
Capítulo 2

Un ejemplo simple de una señal analógica es la presión, que se mide y


se visualiza en un manómetro. La señal de presión puede asumir cual-
quier valor intermedio entre sus valores mínimo y máximo. A diferencia
de la señal digital, cambia continuamente. En el caso del procesamien-
to de valores analógicos a través de un PLC, como se ha descrito, las
señales analógicas de tensión se evalúan y se convierten.
Por otra parte, las señales digitales pueden formarse reuniendo un
cierto número de señales binarias. De esta forma, de nuevo como se
ha descrito en el párrafo anterior, con ocho señales binarias es posible
generar una señal digital con 256 valores.

Bit No. 7 6 5 4 3 2 1 0 Valor digital

Ejemplo 1 1 0 1 1 1 0 1 1 187

Ejemplo 2 0 0 1 1 0 0 1 1 51

Ejemplo Ejemplo 3 0 0 0 0 0 0 0 0 0

Este proceso se utiliza, por ejemplo, para la realización de temporiza-


dores o de contadores.

TP301 • Festo Didactic


B-19
Capítulo 3

Capítulo 3

Operadores Booleanos

Festo Didactic • TP301


B-20
Capítulo 3

Funciones lógicas Como se ha descrito en el capítulo anterior, cualquier ordenador e


básicas igualmente cualquier PLC, funcionan utilizando el sistema de numera-
ción de base 2. Esto se aplica también a los sistemas octal (23) y
hexadecimal (24). Por ello, las variables individuales pueden asumir
sólo dos valores, "0" o "1". Se utilizan unas matemáticas especiales
para poder enlazar las relaciones entre variables – la denominada ál-
gebra de Boole. Los enlaces entre variables también pueden repre-
sentarse claramente por medio de contactos eléctricos.
Función NOT, negación
El pulsador mostrado representa un contacto normalmente cerrado.
Cuando no está físicamente accionado, el piloto H1 luce, mientras que
en estado accionado, el piloto H1 se apaga.

24V

S1
(I)

H1
(O)
0V
Fig. B3.1:
Esquema del circuito

El pulsador S1 actúa como una señal de entrada, el piloto constituye la


salida. El estado actual puede ser registrado en una Tabla de la verdad:

I O

0 1

1 0
Tabla de la verdad

Por lo tanto, la Ecuación Booleana es como sigue:


I = O (léase: No-I igual a O)

TP301 • Festo Didactic


B-21
Capítulo 3

El símbolo lógico es:

I 1 O

Fig. B3.2:
Función NOT

Dos negaciones consecutivas se cancelan entre sí.

I=I

I 1 I 1 I
Fig. B3.3:
Dos funciones
l’ógicas NOT

Función AND, conjunción


Si dos contactos abiertos se conectan en serie, el piloto conectado
sólo lucirá si ambos pulsadores están físicamente accionados.

24V

S1
(I1)

S2
(I2)

H1
(O)
0V
Fig. B3.4:
Esquema del circuito

Festo Didactic • TP301


B-22
Capítulo 3

I1 I2 O

0 0 0

0 1 0

1 0 0

1 1 1
Tabla de la verdad

La tabla de la verdad asigna la conjunción. La salida asume el valor 1


sólo si ambas entradas 1 y 2 se hallan con señal 1. Esto se conoce
como una operación AND (operación Y), que se representa con la si-
guiente ecuación:
I1 ∧ I2 = O

I1 &
O
I2

Fig. B3.5:
Función AND
Además, valen las siguientes ecuaciones para la conjunción
a∧0=0
a∧1=a
a∧a=0
a∧a=a

TP301 • Festo Didactic


B-23
Capítulo 3

Función OR, disyunción


Otra función lógica básica es la función OR (O). Si dos contactos nor-
malmente abiertos se conectan en paralelo, el piloto luce siempre que
por menos uno de los pulsadores se halle físicamente accionado.

24V

S1 S2
(I1) (I2)

H1
(O)
0V
Fig. B3.6:
Esquema del circuito

I1 I2 O

0 0 0

0 1 1

1 0 1

1 1 1
Tabla de la verdad

I1 >=1
O
I2
Fig. B3.7:
Función OR

La operación lógica se escribe en forma de la siguiente ecuación:


I1 ∨ I2 = O

Festo Didactic • TP301


B-24
Capítulo 3

Valen también las siguientes ecuaciones para la disyunción:


b∨0=b
b∨1=1
b∨b=b
b∨b=1

3.2 Otras operaciones En la sección B3.1 se ha descrito la realización eléctrica de las opera-
lógicas ciones NOT-/AND-/OR. Naturalmente, cada una de estas funciones
puede también realizarse con componentes neumáticos y electrónicos.
El álgebra de Boole reconoce también las siguientes operaciones lógi-
cas. La siguiente tabla proporciona un resumen de ellas.

Tabla B3.1:
Conexiones lógicas

Nombre Ecuación Tabla verd. Símbolo lógico Realización neumática Realiz. eléctrica Realiz. electrónica
+

I
I O I O
I
Identidad I=A 0 0 I 1 O O
1 1
R
O

I
I O I O R

Negación I=O 0 1 I 1 O
1 0 O
I

O
I1
I1 I2 O R

I1 0 0 0 I1
Conjunción I2 = O & O I2
>

0 1 0 I2
I1 I2 I1 O
1 0 0
1 1 1
O I2

I1 O
O
I1 I2 I2
I1 I2 O
0 0 0 I1 >=1
Disyunción I1 I2 = O O
>

0 1 1 I2
1 0 1 I1 I2
R
1 1 1
O

TP301 • Festo Didactic


B-25
Capítulo 3

Tabla B3.1:
Conexiones lógicas
(continuación)

Nombre Ecuación Tabla verd. Símbolo lógico Realización neumática Realiz. eléctrica Realiz. electrónica
O

I1 I1
I1 I2 O
I1 0 0 0 I1
Antivalencia I2 = O 1 O I1 I2
> >

0 1 1 I2 I2
( OR I1 I2 = O I2 O
1 0 1
exclusiva) 1 1 0
I1 I2 O

I1
I1 I2 O I1
0 0 1 I1
Equivalencia I1 I2 = O I1 I2 I2
> >
>

0 1 0 I2
I1 I2 = O 1 0 0 I2 O
1 1 1
I1 I2 O

O R R
I1 K1
I1 I2 O
I1 O
I1 0 0 1 I1
NAND I2 = O & O I2
>

0 1 1 I2
1 0 1 I1 I2 I2
1 1 0 K1 O

O I1 I2 K1 R
I1 I2 O
I1 O
I1 I2 = O 0 0 1 >=1 I1
NOR O
>

0 1 0 I2
1 0 0 I1 I2
I2
1 1 0 K1 O
R

Festo Didactic • TP301


B-26
Capítulo 3

3.3 Establecimiento Derivación de ecuaciones booleanas de la tabla de la verdad


de funciones de A menudo, las operaciones lógicas mostradas en la sección anterior no
conmutación son suficientes para describir adecuadamente un estado en la tecnolo-
gía de control.
A menudo, hay combinaciones de diferentes operaciones lógicas. La
conexión lógica en forma de una ecuación booleana puede establecer-
se fácilmente a partir de la tabla de la verdad.
El ejemplo inferior clarificará esto:
Tarea en una estación de clasificación
Diversas piezas para cocinas prefabricadas son mecanizadas en un
sistema de producción (máquina de taladrar y fresar). A los laterales y
a las puertas de ciertos tipos de cocina se les han hecho diferentes
disposiciones de agujeros. Los sensores B1 a B4 están previstos para
la detección de estos agujeros.

1.0
B4
B3
B1
B2

Fig. B3.8:
estación de clasificación

Las piezas con la siguiente distribución de agujeros son para el tipo de


cocina ’Estándar’. Estas piezas deben extraerse de la cinta transporta-
dora por medio del cilindro de doble efecto 1.0.

TP301 • Festo Didactic


B-27
Capítulo 3

d b d d

a c a a c

d b d b d Fig. 3.9:
Distribución de los
agujeros en las piezas

Asumiendo que un taladro realizado se lee como señal-1, se obtiene la


siguiente tabla de la verdad:

a b c d y

0 0 0 0 0

0 0 0 1 1

0 0 1 0 0

0 0 1 1 0

0 1 0 0 0

0 1 0 1 1

0 1 1 0 0

0 1 1 1 0

1 0 0 0 0

1 0 0 1 1

1 0 1 0 0

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 0

1 1 1 1 1
Tabla de la verdad

Festo Didactic • TP301


B-28
Capítulo 3

Para obtener la ecuación lógica a partir de esta tabla existen dos op-
ciones, que conducen a dos expresiones diferentes. Naturalmente am-
bas expresiones producen el mismo resultado, ya que se describen las
mismas circunstancias.
Forma estándar disyuntiva
En la forma estándar disyuntiva, se agrupan todas las conjunciones
(operaciones AND) de las variables de entrada que producen la señal
de salida 1, en una operación disyuntiva (operación OR). El estado 0
de la señal de entrada se toma como valor negado, y el estado 1 de la
señal de entrada, como no-negada (directa).
Por lo tanto, en el caso del ejemplo dado, la operación lógica es la
siguiente:
y = (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨
(a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d)

Forma estándar conjuntiva


En la forma estándar conjuntiva, se agrupan todas las disyunciones
(operaciones OR) de las variables de entrada que producen la señal
de salida 0, en una operación conjuntiva (operación AND). A diferencia
de la forma estándar disyuntiva, en este caso la variable de entrada es
negada con el estado "1" y no-negada con el estado "0"
y = (a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d) ∧
(a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d) ∧
(a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d) ∧
(a ∨ b ∨ c ∨ d) ∧ (a ∨ b ∨ c ∨ d)

3.4 Simplifiación de Ambas ecuaciones para el ejemplo dado son bastante amplias, si bien
funciones lógicas más larga aún es la que se ha dado como forma estándar conjuntiva.
Esto define el criterio para utilizar la forma estándar disyuntiva o con-
juntiva: La decisión se hace en favor de la forma más corta de la
ecuación. En este caso la forma estándar disyuntiva.
y = (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨
(a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d) ∨ (a ∧ b ∧ c ∧ d)
Esta expresión puede simplificarse con la ayuda de las propiedades
del álgebra de Boole,

TP301 • Festo Didactic


B-29
Capítulo 3

Las propiedades más importantes del álgebra de Boole se muestran a


continuación:
a ∨ 0 = a a ∧ 0 = 0
a ∨ 1 = 1 a ∧ 1 = a
a ∨ a = a a ∧ a = a
a ∨ a = 1 a ∧ a = 0

Propiedad conmutativa
a∨b=b∨a a∧b=b∧a

Propiedad asociativa
a ∨ b ∨ c = a ∨ (b ∨ c) = (a ∨ b) ∨ c
a ∧ b ∧ c = a ∧ (b ∧ c) = (a ∧ b) ∧ c

Propiedad distributiva
a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)
a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)

Ley de De Morgan
a∨b=a∧b a∧b=a∨b
Aplicadas al ejemplo citado, se obtiene el siguiente resultado:
y = abcd ∨ abcd ∨ abcd ∨ abcd ∨ abcd ∨ abcd

= abcd ∨ abcd ∨ abcd ∨ abcd ∨ abd(c ∨ c)


= acd(b ∨ b) ∨ abd(c ∨ c) ∨ abd
= acd ∨ abd ∨ abd
= acd ∨ ad(b ∨ b)
= (ac ∨ a)d
= (c ∨ a)d

= cd ∨ ad
Por razones de claridad, el símbolo de la operación AND "∧" ha sido
expresamente omitido en las ecuaciones indicadas.
El principio básico de la simplificación es sacar el factor común de las
variables y reducir las expresiones definidas. Sin embargo, este méto-
do requiere un buen conocimiento de las propiedades del álgebra de
Boole y un cierto grado de práctica. Otra opción para la simplificación
se presenta en la siguiente sección.

Festo Didactic • TP301


B-30
Capítulo 3

3.5 Diagrama de En el caso de los diagramas de Karnaugh-Veitch (KV) la tabla de la


Karnaugh-Veitch verdad de transforma en una tabla de valores.

a b c d y No.

0 0 0 0 0 1

0 0 0 1 1 2

0 0 1 0 0 3

0 0 1 1 0 4

0 1 0 0 0 5

0 1 0 1 1 6

0 1 1 0 0 7

0 1 1 1 0 8

1 0 0 0 0 9

1 0 0 1 1 10

1 0 1 0 0 11

1 0 1 1 1 12

1 1 0 0 0 13

1 1 0 1 1 14

1 1 1 0 0 15

1 1 1 1 1 16
Tabla de valores

Para el ejemplo se dispone de un total de 16 posiciones, con lo que la


tabla de valores debe tener también 16 cuadrados.

cd cd cd cd

ab 1 2 3 4

ab 5 6 7 8

ab 9 10 11 12

ab 13 14 15 16
Fig. B3.1:
Tabla de valores

TP301 • Festo Didactic


B-31
Capítulo 3

El resultado de la tabla de la verdad se transfiere al diagrama KV tal


como se indica en la figura. En principio, de nuevo es posible la repre-
sentación en la forma estándar disyuntiva o conjuntiva. Sin embargo,
en este ejemplo nos limitaremos a la forma estándar disyuntiva.

cd cd cd cd

ab 0 1 0 0

ab 0 1 0 0

ab 0 1 0 1

ab 0 1 0 1
Fig. B3.11:
Tabla de valores

El siguiente paso consiste en la combinación de los estados para los


cuales se ha introducido un "1" en la tabla de valores. Esto se hace en
bloques, observando las siguientes reglas:
La combinación de estados en el diagrama KV debe ser en forma
de rectángulo o de cuadrado
La cantidad de estados combinados debe ser el resultado de una
función 2x.

De esto resulta lo siguiente


cd cd cd cd

ab 0 1 0 0

ab 0 1 0 0

ab 0 1 0 1

ab 0 1 0 1

y1 y2 Fig. B3.12:
Tabla de valores

Festo Didactic • TP301


B-32
Capítulo 3

Los valores de las variables, se seleccionan para el bloque establecido


y estos a su vez se combinan en forma disyuntiva.
y1 = cd
y2 = acd
y = cd ∧ acd
= (c ∨ ac) ∧ d
= (c ∨ a) ∧ d
= cd ∨ ad

Naturalmente, el diagrama KV no está limitado a 16 casillas. Con 5


variables, por ejemplo, se producirían 32 casillas (25) y con 6 variables
64 casillas (26).

TP301 • Festo Didactic


B-33
Capítulo 4

Capítulo 4

Diseño y modo de funcionamiento


de un PLC

Festo Didactic • TP301


B-34
Capítulo 4

4.1 Estructura de En los ordenadores, generalmente se distingue entre hardware, firmwa-


un PLC re y software. Los mismo se aplica a los PLCs, ya que esencialmente
también están basados en un microprocesador.
El Hardware se refiere a las partes físicas del dispositivo, el decir, los
circuitos impresos, los circuitos integrados, el cableado, la batería, el
chasis, etc.
El firmware los constituyen aquellos programas (software) que se ha-
llan permanentemente instalados en el hardware del ordenador y que
son suministrados por el fabricante del PLC. Esto incluye las rutinas
fundamentales del sistema, utilizadas para poner en marcha el proce-
sador al aplicar la tensión. Adicionalmente, hay el sistema operativo
que, en el caso de los controles lógicos programables, generalmente
se halla almacenado en una memoria ROM de sólo lectura o en una
EPROM.
Finalmente, hay el software, que es el programa escrito por el usuario
del PLC. Los programas de usuario se instalan generalmente en la
memoria RAM, una memoria de acceso aleatorio, en donde pueden
ser fácilmente modificados.

Bus de datos

Micro- ROM RAM Módulos Módulos


procesador de entradas de salidas
(CPU) Sistema Programas
operativo y Datos
Bus de
direcciones

Fig. B4.1: Bus de control


Diseño fundamental de
un microordenador

La Fig. B4.1 ilustra el diseño fundamental de un microordenador. El


hardware del PLC ö como es el caso de casi todos los sistemas mi-
croordenadores actuales – está basado en un sistema de bus. Un sis-
tema de bus es un determinado número de líneas eléctricas divididas
en líneas de direcciones, de datos y de control. La línea de direcciones
se utiliza para seleccionar la dirección de un elemento conectado al
bus y la línea de datos para transmitir la información requerida. Las
líneas de control son necesarias para habilitar el dispositivo conectado
el bus como emisor o como receptor..

TP301 • Festo Didactic


B-35
Capítulo 4

Los principales elementos conectados al sistema de bus son el micro-


procesador y la memoria. La memoria puede dividirse en memoria para
el firmware y memoria para el programa y los datos del usuario.
Según la estructura del PLC, los módulos de entradas y salidas se
conectan a un simple bus común o – con la ayuda de un interface de
bus – a un bus externo de E/S. Especialmente en el caso de grandes
sistemas modulares de PLC, es más usual un bus externo de E/S.
Finalmente, se necesita una conexión para el aparato programador o
un PC, actualmente y en la mayoría de los casos en forma de un
interface serie.
La Fig. B4.2 ilustra el FPC 101 de Festo como ejemplo.

Fig. B4.2:
Control Lógico Programable
Festo FPC 101

Festo Didactic • TP301


B-36
Capítulo 4

4.2 Unidad Central En esencia, la unidad central de un PLC consiste en un microordena-


de un PLC dor. El sistema operativo del fabricante del PLC hace que el ordenador
que hay en el PLC esté optimizado específicamente para tareas de
tecnología de control.
Diseño de la unidad central
La Fig. B4.3 muestra una versión simplificada de un microprocesador,
que representa el corazón de un microordenador.

Bus de datos

ALU Registro de instrucciones


Bus de control Bus de control

Acumulador Contador de programa

Unidad aritmética Unidad de control

Bus de
Fig. B4.3: direcciones
Diseño de un
microprocesador

Un microprocesador consiste principalmente en una unidad aritmética y


lógica, una unidad de control y un pequeño número de unidades de
memoria internas, denominadas registros.
La tarea de la unidad aritmética y lógica – la ALU (arithmetic logic
unit) – es ejecutar las operaciones lógicas y aritméticas con los datos
transmitidos.
El acumulador, AC para abreviar, es un registro especial asignado
directamente a la unidad ALU. Este almacena tanto los datos a proce-
sar como los resultados de una operación.
El registro de instrucciones almacena cada orden o instrucción lla-
mada desde la memoria del programa hasta que es decodificada y
ejecutada.
Una orden o instrucción (command) tiene una parte de ejecución y una
parte de dirección. La parte de ejecución indica qué operación debe
realizarse. La parte de dirección define la dirección de los operandos
(señales de entrada, flags, etc.) con los que hay que realizar la opera-
ción indicada.

TP301 • Festo Didactic


B-37
Capítulo 4

El contador de programa es un registro, que contiene la dirección de


la siguiente orden a procesar. La sección siguiente tratará este aparta-
do con más detalle.
La unidad de control regula y controla toda la secuencia de operacio-
nes requeridas para la ejecución de una orden.

Ciclo de instrucciones en la unidad central


Los sistemas microordenadores convencionales de hoy en día funcio-
nan según el denominado "principio de von-Neumann". Según este
principio, el ordenado procesa el programa línea a línea. En términos
sencillos, podríamos decir que cada línea del programa de usuario del
PLC es procesada secuencialmente.
Esto es válido independientemente del lenguaje de programación en el
que haya sido escrito el programa de PLC, sea en forma textual (lista
de instrucciones) o en forma gráfica (diagrama de contactos, diagrama
de funciones secuencial). Dado que estas diversas formas de repre-
sentación siempre resultan en una serie de líneas de programa dentro
del ordenador, se procesan consecuentemente una tras otra.
En principio, una línea de programa, es decir, generalmente una orden
se procesa en dos etapas:
recogida de la orden desde la memoria de programa
ejecución de la orden

Bus de datos
Microprocesador Memoria

Instrucción Registro de
instrucciones

Señales de control Instrucción

Contador de
programa
+1
Direcciones

Bus de direcciones Fig. B4.4:


Secuencia de instrucciones

Festo Didactic • TP301


B-38
Capítulo 4

El contenido del contador de programa es transferido al bus de direc-


ciones. A continuación, la unidad de control hace que la instrucción en
la dirección especificada de la memoria del programa, sea depositada
en el bus de datos. Desde aquí, se lee en el registro de instrucciones.
Una vez ha sido decodificada, la unidad de control genera una secuen-
cia de señales de control para su ejecución.
Durante la ejecución de un programa, las instrucciones se van a bus-
car secuencialmente. Para ello se necesita un mecanismo que permita
esta secuencia. Esta tarea se realiza por un simple incrementador, es
decir, un elemento de habilitación de pasos en el contador de programa.

4.3 Modo de Los programas para el procesamiento convencional de datos, general-


funcionamiento mente se procesan una sola vez, de arriba a abajo y terminan. A dife-
de un PLC rencia de estos, el programa de un PLC se procesado continua y cícli-
camente.

Tabla de imagen
Entradas Entradas

Programa PLC

Tabla de imagen
Salidas Salidas

Fig. B4.5:
Procesamiento cíclico
de un programa de PLC

TP301 • Festo Didactic


B-39
Capítulo 4

Las características del procesamiento cíclico son:


Así que el programa ha sido ejecutado una vez, salta automática-
mente al principio y se va repitiendo el proceso continuamente.
Antes de que se procese la primera línea del programa, es decir, al
inicio del ciclo, el estado de las entradas es almacenado en la tabla
de imagen de entradas. La imagen del proceso es una zona de
memoria aparte a la que se accede durante un ciclo. Así, el estado
lógico de una entrada permanece constante durante un ciclo, inclu-
so aunque en este intervalo haya cambiado físicamente.
De forma similar a la entradas, las salidas no son inmediatamente
activadas o desactivadas durante un ciclo, sino que su estado es
almacenado temporalmente en la tabla imagen de salidas. Solamen-
te al final del ciclo se activan o desactivan físicamente las salidas
según el estado lógico almacenado en la memoria.
El procesamiento de una línea de programa a través de la unidad cen-
tral de un PLC ocupa un tiempo que, dependiendo del PLC y de la
instrucción que contenga puede variar desde unos pocos microsegun-
dos hasta unos pocos milisegundos.
El tiempo requerido por el PLC para una simple ejecución de un pro-
grama, incluyendo la actualización de las salidas y la imagen del pro-
ceso, se denomina tiempo de ciclo o tiempo de scan. Cuanto más
largo sea el programa y cuanto más tiempo necesite el PLC respectivo
para procesar cada línea del programa, tanto más largo será el tiempo
de ciclo. Los tiempos reales de ciclo varían aproximadamente entre 1 y
100 milisegundos.
Las consecuencias del procesamiento cíclico de un programa de PLC
que utilice una imagen del proceso son las siguientes:
Las señales de entrada de una duración inferior al tiempo de ciclo,
posiblemente no serán reconocidas.
En algunos casos, puede haber un retardo de dos ciclos entre la
presencia de una señal de entrada y la deseada reacción de una
salida ante esta señal.
Dado que las instrucciones se procesan secuencialmente, el com-
portamiento específico de la secuencia de un programa de PLC
puede ser crucial.
En algunas aplicaciones, es esencial que pueda accederse directamen-
te a entradas y salidas durante un ciclo. Por ello, este tipo de procesa-
miento de programa, saltándose la imagen del proceso, también es
posible en algunos sistemas PLC.

Festo Didactic • TP301


B-40
Capítulo 4

4.4 Memoria de Los programas específicamente desarrollados para determinadas apli-


programas de caciones requieren una memoria de programa, de la cual puedan ser
aplicación leídos por la unidad central. Los requerimientos para tal memoria de
programa son relativamente simples de formular:
Debería ser lo muy sencilla de modificar o de crear y almacenar
nuevos programas con la ayuda de un dispositivo programador o un PC.
Debe haber mecanismos que aseguren que el programa no pueda
perderse – incluso ante un fallo de tensión o por tensiones de inter-
ferencia
La memoria de programa debe ser económica
La memoria de programa debería ser suficientemente rápida para
no retardar el funcionamiento de la unidad central.
Actualmente, se utilizan tres tipos de memoria en la práctica:
RAM
EPROM
EEPROM

RAM
La memoria RAM (random acceso memory/memoria de acceso aleato-
rio) es una memoria muy rápida y económica. Dado que la memoria
principal de los ordenadores (y también de los PLCs) consiste en me-
morias RAM, se producen en grandes cantidades, lo que le permite
disponer de tales memorias a costes relativamente bajos.
Las RAMs son memorias de lectura/escritura y pueden programarse y
modificarse fácilmente.
La desventaja de una RAM es que es volátil, es decir, el programa
almacenado en la RAM se pierde en el caso de un fallo de tensión.
esta es la razón por la cual las RAMs deben estar respaldadas por una
batería, acumulador o pila. Dado que la vida útil y la capacidad de las
modernas pilas les permiten durar varios años, el respaldo de una
RAM por pila es relativamente simple. A pesar de que se utilizan pilas
o baterías de altas prestaciones, es esencial sustituirlas en las fechas
indicadas por el fabricante del PLC.

TP301 • Festo Didactic


B-41
Capítulo 4

EPROM
La EPROM (erasable programmable read-only memory /memoria de
sólo lectura, programable y borrable) también es una memoria rápida y
de bajo coste y, en comparación con la RAM tiene la ventaja añadida
de que no es volátil, es decir, es remanente. Por ello, el contenido de
la memoria permanece inalterable incluso ante un fallo de tensión.

Fig. B4.6:
Ejemplo de una EPROM

Sin embargo, a efectos de modificar un programa, debe borrarse pri-


mero toda la memoria y, tras un tiempo de enfriamiento, reprogramarse
completamente. El borrado requiere generalmente un dispositivo borra-
dor y para su programación se utiliza un dispositivo especial (grabador
de EPROMs).
A pesar de su relativamente complejo proceso de borrado, – enfriado –
reprogramación, las EPROMs se utilizan con bastante frecuencia en
los PLCs ya que poseen una gran fiabilidad y un bajo coste. En la
práctica, a menudo se utiliza una RAM durante la fase de programa-
ción y puesta a punto de la máquina. Una vez finalizada la puesta en
marcha, el programa se transfiere a una EPROM.

EEPROM
La EEPROM (electrically erasable programmable ROM / ROM progra-
mable y borrable eléctricamente ), EEROM (electrically erasable ROM /
ROM borrable eléctricamente) y la EAROM (electrically alterable ROM /
ROM alterable eléctricamente) o las flash-EPROM han sido utilizadas
desde hace algún tiempo. La EEPROM es especial, es ampliamente
utilizada como memoria de aplicación en PLCs. La EEPROM es una
memoria borrable eléctricamente, que puede reescribirse.

Festo Didactic • TP301


B-42
Capítulo 4

4.5 Módulo de El módulo de entradas de un PLC es el módulo al cual están conecta-


entradas dos los sensores del proceso. Las señales de los sensores deben pa-
sar a la unidad central. Las funciones importantes de un módulo de
entradas (para la aplicación) es como sigue:
Detección fiable de la señal
Ajuste de la tensión, desde la tensión de control a la tensión lógica
Protección de la electrónica sensible de las tensiones externas
Filtrado de las entradas

Detección Optoacoplador Señal a la


Señal de Retardo de
entrada de error de unidad de
tensión la señal control
Fig. B4.7:
Diagrama de bloques
de un módulo de entradas

El principal componente de los actuales módulos de entradas, que


cumple con estos requerimientos es el optoacoplador.
El optoacoplador transmite la información del sensor por medio de la
luz, creando así un aislamiento eléctrico entre el control y los circuitos
lógicos, protegiendo con ello a la sensible electrónica de las tensiones
espúreas externas. Actualmente, los optoacopladores avanzados ga-
rantizan protección a picos de aproximadamente 5 kV, lo que es ade-
cuado para aplicaciones industriales.
El ajuste de la tensión de control y de lógica, en el caso corriente
de una tensión de mando de 24 V, puede realizarse con la ayuda de
un circuito diodo/resistencia. En el caso de 220 V AC, se conecta un
rectificador en serie.
Dependiendo del fabricante del PLC, se asegura una detección fiable
de la señal por medio un detector de umbral adicional o los correspon-
dientes de diodos y optoacopladores. Los datos precisos en relación
con las señales a detectar se especifican en DIN 19240.

TP301 • Festo Didactic


B-43
Capítulo 4

El filtrado de la señal emitida por el sensor es crítica en automa-


tización industrial. En la industria, las líneas eléctricas están general-
mente muy cargadas debido a tensiones de interferencia inductivas,
que producen muchas interferencias en las señales. Las líneas de las
señales pueden protegerse con apantallamientos, canaletas metálicas
o, alternativamente, el módulo de entrada del PLC realiza un filtrado
por medio de un retardo de la señal de entrada.
Esto necesita que la señal de entrada sea aplicada un período de tiem-
po suficientemente largo, antes de que sea reconocida como una señal
de entrada. Dado que, debido a su naturaleza inductiva, los impulsos
de interferencia son principalmente señales transitorias, es suficiente
un retardo de la señal de entrada relativamente corto, del orden de
milisegundos, para filtrar la mayor parte de los impulsos parásitos.
El retardo de las señal de entrada se realiza principalmente por hard-
ware, es decir, a través de un circuito RC en la entrada del PLC. Sin
embargo, en casos aislados, también es posible producir un retardo de
la señal por software.
La duración de un retardo de entrada es de aproximadamente entre 1
y 20 milisegundos – dependiendo del fabricante y del tipo. Muchos
fabricantes ofrecen entradas especialmente rápidas para aquellas ta-
reas en las que el retardo de la señal de entrada es demasiado larga
para reconocer la señal requerida.
Cuando se conectan sensores a las entradas del PLC, debe distinguir-
se entre conexiones de conmutación positiva y de conmutación negati-
va. En otras palabras, hay que distinguir entre entradas que repre-
sentan un consumo de corriente o una fuente de corriente. En Alema-
nia, por ejemplo, cumpliendo con VDI 2880, se utilizan principalmente
las conexiones de conmutación positiva, ya que ello permite la utiliza-
ción de un tierra de protección. Conmutación positiva significa que la
entrada del PLC representa un drenaje de corriente. El sensor suminis-
tra la tensión de funcionamiento o tensión de control a la entrada en
forma de señal-1.
Si se utiliza tierra de protección, la tensión de salida del sensor es
cortocircuitada hacia los 0 voltios o se funde el fusible en caso de
cortocircuito en la línea de señal. Esto significa que se aplica una lógi-
ca 0 en la entrada del PLC.

Festo Didactic • TP301


B-44
Capítulo 4

En muchos países, es común utilizar sensores de conmutación negati-


va, es decir, las entradas del PLC funcionan como fuente de potencia.
En estos casos, deben utilizarse diferentes medidas de protección para
evitar que se aplique una señal 1 a la entrada del PLC en el caso de
un cortocircuito en la línea de la señal. Un posible método es la pues-
ta a tierra de la tensión de control positiva o la supervisión del aisla-
miento, es decir, tierra de protección como medida de protección.

4.6 Módulo de salida Los módulos de salida llevan las señales de la unidad central a los
elementos finales de control, que son activados según la tarea. Princi-
palmente, la función de una salida – vista desde la aplicación del PLC
incluye lo siguiente:
Ajuste de la tensión desde la tensión lógica a la de control
Protección de la electrónica sensible de tensiones espúreas hacia el
control
Amplificación de potencia suficiente para el accionamiento de ele-
mentos finales de control
Protección de cortocircuito y sobrecarga de los módulos de salida
En el caso de módulos de salida, hay disponibles dos métodos funda-
mentalmente diferentes para conseguir lo indicado: El uso de relés o
de electrónica de potencia.

Señal de Optoacoplador
Supervisión de Señal de
la unidad Amplificador cortocircuito salida
Fig. B4.8:
central
Diagrama de bloques
de un módulo de salida

El optoacoplador, forma de nuevo la base para la electrónica de poten-


cia y asegura la protección de la electrónica y posiblemente también el
ajuste de la tensión.
Un circuito de protección formado por diodos debe proteger el transis-
tor de potencia de los picos de tensión.

TP301 • Festo Didactic


B-45
Capítulo 4

Actualmente, la protección ante cortocircuito, protección ante so-


brecargas y amplificación de potencia, se ofrecen a menudo como
módulos completamente integrados. Las medidas estándar de protec-
ción ante cortocircuito miden el flujo de corriente a través de una resis-
tencia de potencia para desconectar en caso de cortocircuito; un sen-
sor de temperatura proporciona una protección ante sobrecargas; una
etapa de Darlington o una etapa de transistor de potencia proporcionan
la potencia necesaria.
La potencia admisible de salida se utiliza específicamente de forma
que permita una distinción entre la potencia admisible de una salida y
la potencia acumulada admisible de un módulo de salidas. La potencia
acumulada de un módulo de salidas es siempre considerablemente in-
ferior a la suma total de la potencia de cada salida, ya que los transis-
tores de potencia se transmiten el calor unos a otros.
Si se utilizan relés para las salidas, entonces el relé puede asumir
prácticamente todas las funciones de un módulo de salida: El contacto
del relé y la bobina del relé están eléctricamente aislados uno de otra;
el relé representa un excelente amplificador de potencia y está espe-
cialmente protegido de sobrecargas, con lo que solamente debe pre-
verse una protección ante cortocircuito con un fusible. Sin embargo, en
la práctica se conectan optoacopladores en serie con el relé, ya que
ello facilita el accionamiento del relé y pueden utilizarse relés más sen-
cillos.
Las salidas por relé, tienen la ventaja de que pueden utilizarse para
diferentes tensiones de salida. En contraste, las salidas electrónicas
tienen velocidades de conmutación considerablemente más elevadas y
una vida útil más larga que la de los relés. En muchos casos, la poten-
cia de relés muy pequeños utilizados en los PLCs, corresponde a la de
las etapas de potencia de las salidas electrónicas.
En Alemania, por ejemplo, las salidas también se conectan a conmuta-
ción positiva, según VDI 2880, es decir, la salida representa una fuente
de potencia y suministra la tensión de funcionamiento para el dispositi-
vo consumidor.
En el caso de un cortocircuito de la línea de señal de salida a tierra, la
salida se cortocircuita si se utilizan medidas normales de puesta a tie-
rra de protección. La electrónica conmuta a protección de cortocircuito
o se funde el fusible, es decir, el dispositivo consumidor no puede dre-
nar corriente por lo que se desconecta y queda en estado seguro. (De
acuerdo con DIN 0113, el estado de seguridad debe ser siempre el
estado sin energía.)

Festo Didactic • TP301


B-46
Capítulo 4

Si se utilizan salidas de conmutación negativa, es decir, la salida repre-


senta un drenaje de corriente, deben adoptarse medidas de protección
del tal forma que el dispositivo consumidor quede en un estado seguro
en el caso de cortocircuito en la línea de señal. De nuevo, un tierra de
protección con supervisión del aislamiento o la neutralización de la ten-
sión de control positiva son prácticas estándar en este caso.

4.7 Dispositivo Cada PLC tiene una herramienta de diagnosis y programación para
programador / soportar la aplicación del PLC
Ordenador
personal
Programación
Verificación
Puesta punto
Localización de averías
Documentación del programa
Almacenamiento del programa

Estas herramientas de programación y diagnosis son o bien dispositi-


vos de programación específicos del fabricante u ordenadores perso-
nales con su software correspondiente. Actualmente, estos últimos son
casi exclusivamente las variantes preferidas, ya que la enorme capaci-
dad de los modernos PCs, combinada con su comparativamente bajo
coste inicial y alta flexibilidad, representan ventajas cruciales.
También se han desarrollado los denominados programadores de
mano para pequeños sistemas de control y para tareas de manteni-
miento. Con la creciente utilización de ordenadores personales portáti-
les (LapTop), funcionando con baterías, la importancia de los progra-
madores de mano disminuye paulatinamente.

TP301 • Festo Didactic


B-47
Capítulo 4

Las funciones esenciales del sistema de software forman parte de la


herramienta de programación y diagnosis
Cualquier software de programación según IEC 1131-1 deben propor-
cionar al usuario una serie de funciones. Así, el software de programa-
ción comprende módulos de software para:
Introducción de programas
Creación y modificación de programas en uno de los lenguajes de
programación del un PLC
Verificación de la sintaxis
Comprobación de la sintaxis del programa y los datos, minimizando
así la introducción de programas defectuosos.
Traductor
Traducción del programa introducido en un programa que puede ser
leido y procesado por el PLC, es decir, la generación del código
máquina del correspondiente PC.
Conexión entre PLC y PC
A través de este enlace se realiza la carga de los programas al PLC
y la ejecución de funciones de verificación
Funciones de verificación
Ayuda al usuario durante la escritura y en la eliminación de fallos y
verificación a través de:
una verificación del estado de las entradas, salidas temporizado-
res, contadores, etc.
verificación de secuencias de programa por medio de operacio-
nes de paso a paso, órdenes de STOP, etc.
simulación por medio de activación manual de entradas/salidas,
establecimiento de valores, etc.
Indicación del estado de sistemas de control
Emisión de información relacionada con la máquina, proceso y esta-
do del sistema PLC:
Indicación del estado de señales de entrada y salida
Registro/indicación de cambios de estado en señales externas y
datos internos
Supervisión de los tiempos de ejecución
Formato en tiempo real de la ejecución del programa

Festo Didactic • TP301


B-48
Capítulo 4

Documentación
Creación de una descripción del sistema PLC y el programa del
usuario. Esto consiste en:
Descripción de la configuración del hardware
Impresión del programa de usuario con los correspondientes da-
tos e identificadores para las señales y comentarios
Lista de referencias cruzadas para todos los datos procesados
tales como entradas, salidas, temporizadores, etc.
Descripción de las modificaciones
Archivado del programa de usuario
Protección del programa de usuario en memorias no volátiles tales
como EPROM, etc.

TP301 • Festo Didactic


B-49
Capítulo 5

Capítulo 5

Programación de un PLC

Festo Didactic • TP301


B-50
Capítulo 5

5.1 Búsqueda de Los programas de control representan un componente importante en


una solución un sistema de automatización.
sistemática
Los programas de control deben ser diseñados sistemáticamente, bien
estructurados y completamente documentados, para que sean:
libres de errores,
fáciles de mantener y
económicos
Modelo de fases para la generación de software para PLC
El procedimiento para el desarrollo de un programa de PLC que se
muestra en la fig. B5.1 ha sido probado y verificado. La división en
secciones definidas conduce a un funcionamiento sistemático y objeti-
vado, y proporciona una disposición de resultados clara, que puede
verificarse en relación con la tarea.
El modelo de fases consiste en las siguientes secciones:
Especificación: Descripción de la tarea
Diseño: Descripción de la solución
Realización: Puesta en práctica de la solución
Integración/puesta a punto: Incorporación en el entorno y verifica-
ción de la solución,
que básicamente pueden aplicarse a todos los proyectos técnicos. Se
producen diferencias en los métodos y herramientas utilizados en las
fases individuales.

1. Especificación - Descripción verbal de la tarea de control


- Tecnología, croquis de situación
- Macroestructura de los programas de
control

2. Diseño - Diagrama de funciones según IEC 848


- Diagrama de funciones, tal como
el Diagrama espacio-tiempo
- Tabla de funciones
- Definición de los módulos de software
- Lista de piezas y esquemas del circuito

3. Realización - Programación en LD, FBD, IL,


ST y/o SFC
- Simulación de subprogramas y del
conjunto de programas

4. Puesta a punto - Construcción del sistema


Fig. B5.1: - Verificación de los subprogramas
Modelo de fases para - Verificación del conjunto de programas
la generación de
software de PLC

TP301 • Festo Didactic


B-51
Capítulo 5

El modelo de fases puede aplicarse a programas de control de comple-


jidad diversa; para tareas de control complejas, es absolutamente
esencial la utilización de tales modelos.
Las fases individuales del modelo se describen abajo.

Fase 1: Especificación (Formulación del problema)


En esta fase, se formula una descripción detallada y precisa de la ta-
rea de control. La descripción específica de la función del sistema de
control, formalizada al máximo, revela cualquier requerimiento conflicti-
vo, especificaciones incompletas o equivocadas.
Al final de esta fase se dispone de lo siguiente:
Descripción escrita de la tarea de control
Estructura/distribución
Macroestructuración del sistema o proceso y con ello un esbozo de
la estructura de la solución.

Fase 2: Diseño (Forma concreta del concepto de la solución)


Un concepto de solución se desarrolla basándose en las definiciones
establecidas en la fase 1. El método utilizado para describir la solución
debe proporcionar un gráfico y una descripción orientada al proceso, a
la función y comportamiento del sistema de control, y debe ser inde-
pendiente de la realización técnica.
Estos requerimientos se cumplen con el diagrama de funciones (FCH)
según define DIN 40 719, Parte 6 o IEC 848. Empezando con una
representación de una visión de conjunto del control (esbozo de la es-
tructura de la solución), la solución puede refinarse paso a paso hasta
que se obtenga un nivel de descripción que contenga todos los deta-
lles de la solución (refinamiento de un esbozo de estructura).
En el caso de tareas de control complejas, la solución es estructurada,
en paralelo con esto, en módulos de software individuales. Estos mó-
dulos de software realizan las etapas de trabajo del sistema de control.
Estos pueden ser funciones especiales como la realización de un inter-
face para la visualización del proceso, o sistemas de comunicación, o
incluso etapas de trabajo recurrentes permanentemente.
El diagrama desplazamiento-fase, representa otra forma estándar para
la descripción de sistemas de control aparte del diagrama de funciones
según DIN 40 719, Parte 6.

Festo Didactic • TP301


B-52
Capítulo 5

Fase 3: Realización (Programación del concepto de la solución)


La traducción del concepto de la solución en un programa de control
se realiza a través de los lenguajes de programación definidos en IEC
1131-3. Estos son: diagrama de funciones secuencial, diagrama de
bloques de función, diagrama de contactos, lista de instrucciones y tex-
to estructurado.
Los sistemas de control que funcionan en un proceso tiempo/lógica y
están disponibles en FCH según DIN 40 719, P.6, pueden ser clara y
fácilmente programados en diagrama de funciones secuencial. Un dia-
grama de funciones secuencial, en la medida de los posible, utiliza los
mismos componentes para la programación que los utilizados para la
descripción en el diagrama de funciones según DIN 40 719, P.6.
Diagrama de contactos, diagrama de bloques de función y lista de ins-
trucciones son los lenguajes de programación adecuados para la for-
mulación de operaciones básicas y para sistemas de control que pue-
den ser descritos por simples señales lógicas combinadas por opera-
ciones booleanas.
El lenguaje de alto nivel denominado ’texto estructurado’ se utiliza prin-
cipalmente para crear módulos de software de contenido matemático,
tales como módulos para la descripción de algoritmos de regulación.
En la medida en que los sistemas de programación de PLCs lo permi-
tan, los programas de control o parte de los programas creados, debe-
rían ser simulados antes de la puesta a punto. Esto permite la detec-
ción y eliminación de errores ya en una etapa inicial.

Fase 4: Puesta a punto


(Construcción y verificación de una tarea de control)
Esta fase verifica la interacción del sistema de automatización y la
planta conectada. En casos de tareas complejas, es aconsejable poner
a punto el conjunto de forma sistemática, paso a paso. Los fallos, tanto
en el sistema como en el programa de control, pueden hallarse y elimi-
narse fácilmente utilizando este método.

TP301 • Festo Didactic


B-53
Capítulo 5

Documentación
Un componente importante y crucial de un sistema es la documenta-
ción, ya que es un requerimiento esencial para el mantenimiento y am-
pliación de un sistema. La documentación, incluyendo los programas
de control, debería estar disponible tanto en papel como en un soporte
de almacenamiento de datos. La documentación consiste en la infor-
mación sobre las fases individuales, listados del programa de control y
de cualquier información adicional posible concerniente al programa de
control. Individualmente estos son:
Descripción del problema
Croquis de situación
Esquema del circuito
Esquema técnico
Listados del programa de control en SFC, FBD, etc.
Lista de asignaciones de entradas y salidas
(esto también forma parte de los listados del programa de control)
Documentación adicional

IEC 1131-3 es un estándar para la programación, no sólo de un PLC 5.2 Recursos de


individual, sino también para sistemas de automatización complejos. estructuración
Los programas de control para grandes aplicaciones deben ser clara- IEC 1131-3
mente estructurados para ser inteligibles, fáciles de mantener y si es
posible también portátiles, es decir, transferibles a otros sistema de PLC.
Las definiciones se necesitan no sólo para las instrucciones de lengua-
je elemental, sino también para los elementos de lenguaje para estruc-
turación. Los recursos de estructuración (fig. B5.2) se refieren a pro-
gramas de control y a la configuración del sistema de automatización.

RECURSO DE Estructuración
CONFIGURACIÓN del nivel de
TAREA
– Configuración de
VAR_GLOBAL un sistema de configuración
RUTA_ACCESO automatización

Diagrama de funciones – Representación


secuencial
de la secuencia
– Refinamiento Estructuración
PROGRAMA del nivel de
BLOQUE-FUNCIÓN programa
FUNCIÓN
– Modularización
TIPO-DATOS

Fig. B5.2:
IEC 1131-3
método de estructuración

Festo Didactic • TP301


B-54
Capítulo 5

Recursos de estructuración del programa


Los recursos de estructuración – programa, bloque de funciones y fun-
ción – contienen la verdadera lógica de control (reglas) del programa
de control. Estos se conocen también como unidades de organización
del programa. Estos recursos de estructuración están disponibles para
cualquier lenguaje de programación. Se utilizan para la modularización
de programas de control y del programa de usuario – esto concierne
principalmente a programas y bloques de función – o también suminis-
trados por el fabricante – en lo que se refiere a programas y bloques
de función.
IEC 1131-3 define un amplio juego que funciones y bloques de función
estandarizados. Estos pueden ser ampliados por funciones propias del
usuario, para tareas especiales o de continua recurrencia.
Los módulos de software, que pueden utilizarse de diversas maneras,
se introducen en librerías, de las que puede disponerse en cualquier
momento.
Los programas representan la capa más exterior de la organización del
programa y pueden diferenciarse del bloque de función principalmente
por el hecho de que no pueden ser invocados por ninguna otra unidad
de organización del programa.
El diagrama de funciones secuencial representa otro recurso para la
estructuración de un programa. Los contenidos de los programas re-
ales y los bloques de función pueden de nuevo representarse clara e
inteligiblemente por medio de un diagrama de funciones secuencial.

Recursos de estructuración a nivel de configuración


Los elementos de lenguaje para configuración describen la incorpora-
ción de programas de control en el sistema de automatización y su
control en relación con el tiempo.
El sistema de automatización representa una configuración (elemento
del lenguaje CONFIGURACION). Dentro de la configuración hay las
variables globales (elemento de lenguaje VAR_GLOBAL).

TP301 • Festo Didactic


B-55
Capítulo 5

Un recurso (elemento de lenguaje RECURSO) corresponde al procesa-


dor de un sistema multiprocesador, al cual se asignan uno o varios
programas. Además, comprende elementos de control, que incluyen el
control de programas en relación con el tiempo. Este elemento de con-
trol es una tarea (elemento de lenguaje TAREA). El elemento de con-
trol Tarea define si un programa debe procesarse cíclicamente o sólo
una vez, disparado por un evento específico. Los programas que no
están específicamente enlazados a una tarea son procesados cíclica-
mente en segundo plano y con la prioridad más baja.

Configuración de la fabricación de válvulas

Recurso Recurso Recurso


montaje de válvulas control transportador control de calidad

Tarea_ Tarea_
Tarea_1 Tarea_2 cíclica unica

Programa Programa Programa


montaje transportador envasado

Programa
Programa Programa estadísticas
posición_inicial transp_vacío

Programa
Guarda_datos

Variables globales y directamente representadas Fig. B5.3:


Ejemplo gráfico de
una configuraciòn

Los recursos de estructuración para la configuración se muestran en


un resumen combinado en la fig. B5.3. A continuación se explica el
ejemplo que aplica este concepto a una tarea de automatización.
La tarea planteada es la de diseñar y automatizar una línea de produc-
ción para el montaje de válvulas neumáticas.
Se ha elegido un PLC multiprocesador con tres tarjetas de procesador
para el montaje de las válvulas. Las tarjetas de procesador están asig-
nadas al montaje de las válvulas, el control del transportador y el con-
trol de calidad.

Festo Didactic • TP301


B-56
Capítulo 5

Los programas Estadísticas y Guarda_datos está asociados con dife-


rentes tareas. Como tales, poseen diferentes características de ejecu-
ción. El programa Estadísticas evalúa y comprime los datos de calidad
a intervalos regulares. La prioridad de este programa es baja. Se pone
en marcha regularmente, p. ej. cada 20 minutos, por la tarea Tarea_cí-
clica. En el caso de un PARO DE EMERGENCIA, el programa
Guarda_datos transmite todos los datos disponibles a un ordenador de
célula de nivel superior para prevenir cualquier posible pérdida de da-
tos. El programa se pone en marcha activado por un evento de la más
alta prioridad con la señal de PARO DE EMERGENCIA.
IEC 1131-3 proporciona interfaces definidos y por lo tanto estandariza-
dos para el intercambio de datos dentro de una configuración. Si se
requiere información específica, tal como la lectura de una variable, en
diferentes unidades de organización de programas, esta variable es
designada como variable global. Entonces los datos pueden ser inter-
cambiados con una variable designada como tal. A las variables globa-
les sólo se puede acceder desde programas y bloques de función.
Lo que tiene interés para sistemas en red es la comunicación más allá
de una configuración. Para ello, están a disposición del usuario blo-
ques de funciones de comunicación estandarizados. Estos se definen
en IEC 1131-5 y se utilizan en IEC 1131-3. Otra posibilidad es la
definición de rutas de acceso (recurso de lenguaje RUTA_ACCESO)
para variables específicas. Estas también pueden ser leídas o escritas
desde otras posiciones.

5.3 Lenguajes de IEC 1131-3 define cinco lenguajes de programación. Aunque la funcio-
programación nalidad y estructura de estos lenguajes es muy diferente, son tratados
como una sola familia de lenguajes por IEC 1131-3, con elementos de
estructura solapados (declaración de variables, partes de organización
tales como funciones y bloques de función, etc.) y elementos de confi-
guración.
Los lenguajes pueden mezclarse de cualquier forma dentro de un pro-
yecto de PLC. La unificación y estandarización de estos cinco lengua-
jes representa un compromiso de requerimientos históricos, regionales
y específicos de cada sector. Se ha previsto la futura expansión (tal
como el principio de bloque de función o el lenguaje de Texto Estructu-
rado); además, se ha incorporado la información necesaria sobre deta-
lles tecnológicos (tipo de datos, etc.)

TP301 • Festo Didactic


B-57
Capítulo 5

Los elementos del lenguaje son explicados con la ayuda de un proceso


de mecanizado involucrado en la producción de válvulas. Se utilizan
dos sensores para establecer si una pieza con los talados correcta-
mente realizados está disponible en la posición de mecanizado. Si la
válvula a mecanizar es del tipo A o el tipo B – esto se establece con
dos interruptores selectores – el cilindro avanza y mete la funda en el
taladro realizado.

El Diagrama de contactos o Diagrama en escalera (Ladder diagram) LD


El Diagrama de contactos es un lenguaje de programación gráfico deri-
vado de los esquemas de circuitos de los mandos por relés directa-
mente cableados. El diagrama de contactos contiene líneas de alimen-
tación a derecha e izquierda del diagrama; a estas líneas están conec-
tados los reglones, que se componen de contactos (normalmente
abiertos y normalmente cerrados) y de elementos de bobina.

Pieza_TipoA Pieza_presente Taladro_ok Mete_funda

Pieza_TipoB

Fig. B5.4:
Ejemplo del lenguaje en
diagrama de contactos

Diagrama de bloques de función (Function block diagram) FBD


En el diagrama de bloques de función, las funciones y los bloques de
función están representados gráficamente e interconectados en redes.
El diagrama de bloques de función tiene su origen en el diagrama lógi-
co que se utiliza en el diseño de circuitos electrónicos.

Pieza_TipoA OR AND Mete_funda


Pieza_TipoB

Pieza_presente
Taladro_ok
Fig. B5.5:
Ejemplo del lenguaje en
bloques de funciones

Festo Didactic • TP301


B-58
Capítulo 5

Lista de Instrucciones (Statement list o Instruction List) IL


La lista de instrucciones es un lenguaje textual tipo assembler, caracte-
rizado por un modelo de máquina simple (procesador con un sólo re-
gistro). La lista de instrucciones se formula a partir de instrucciones de
control consistentes en un operador y un operando.

LD Pieza_TipoA
OR Pieza_TipoB
AND Pieza_presente
Fig. B5.6: AND Taladro_ok
Ejemplo de lenguaje en ST Mete_funda
lista de instrucciones

En lo que se refiere a filosofía de lenguaje, el diagrama de contactos,


el diagrama de bloques de función y la lista de instrucciones han sido
definidos en la forma en que son utilizados en la actual tecnología de
PLC. Sin embargo, están limitados a las funciones básicas en lo que
concierne a sus elementos. Esto los aparta esencialmente de los dia-
lectos que las empresas utilizan en la actualidad. La competitividad de
estos lenguajes es mantenida debido al uso de bloques y bloques de
función.
Texto estructurado (Structured text) ST
El texto estructurado es un lenguaje de alto nivel basado en Pascal,
que consiste en expresiones e instrucciones. Las instrucciones pueden
definirse principalmente como: Instrucciones de selección, tales como
IF...THEN...ELSE, etc, instrucciones de repetición tales como FOR,
WHILE etc. y llamadas a bloques de función.

Fig. B5.7: Mete_funda := (Pieza_TipoA OR Pieza_TipoB) AND Pieza_presente AND Taladro_OK;


Ejemplo de lenguaje en
texto estructurado

El texto estructurado permite la formulación de numerosas aplicacio-


nes, más allá de la pura tecnología de funciones, tales como algorit-
mos (algoritmos de regulación de nivel superior, etc.) y manejo de da-
tos (análisis de datos, procesamiento de estructuras de datos comple-
jas, etc.)

TP301 • Festo Didactic


B-59
Capítulo 5

Diagrama de funciones secuencial (Sequential function chart) SFC


El diagrama de funciones secuencial (casi idéntico al GRAFCET fran-
cés) es un recurso de lenguaje para la estructuración de los programas
de control orientados a secuencias.
Los elementos del diagrama de funciones secuencial son las etapas,
las transiciones y las derivaciones alternativas y en paralelo.
Cada etapa representa un estado del proceso de un programa de con-
trol, que se halla activo o inactivo. Una etapa consiste en acciones
que, al igual que las transiciones, están formuladas en los lenguajes
IEC 1131-3. Las propias acciones pueden contener de nuevo estructu-
ras secuenciales. Esta característica permite la estructura jerárquica de
un programa de control. Por lo tanto, el diagrama de funciones secuen-
cial es una herramienta excelente para el diseño y la estructuración de
programas de control.

Festo Didactic • TP301


B-60
Capítulo 5

TP301 • Festo Didactic


B-61
Capítulo 6

Capítulo 6

Elementos comunes de los


lenguajes de programación

Festo Didactic • TP301


B-62
Capítulo 6

6.1 Recursos de Según IEC 1131-3, sólo las entradas, las salidas y los elementos de
un PLC memoria pueden ser direccionados directamente por un programa de
control. En este caso, el direccionamiento directo significa que en el
programa, una entrada, salida o elemento de memoria del control está
afectado inmediatamente y no indirectamente a través de una variable
simbólica definida. Naturalmente, IEC 1131-3 reconoce muchos otros
recursos, p. ej. temporizadores y contadores. Sin embargo, estos están
integrados en funciones y bloques de función para asegurar el más
alto grado posible de portabilidad del programa de control entre los
diferentes sistemas.
Entradas, salidas y la memoria
Los constituyentes más importantes de un control incluyen las entra-
das, salidas y la memoria. Sólo a través de estas entradas puede un
control recibir información de los procesos conectados. De forma simi-
lar, sólo puede influir en ellos a través de sus salidas o almacenar
información para la subsecuente continuación del proceso.
Las denominaciones para los recursos entradas, salidas y elementos
de memoria, están definidos por IEC 1131-3 y son obligatorios..

Entradas I
(Inputs)

Salidas Q
(Outputs)
Fig. B6.1:
Designaciones para Memorias M
Entradas, Salidas y
(Memory)
Memoria

Sin posteriores referencias, estos designan sólo entradas y salidas bi-


narias y elementos de memoria de un sólo bit, designados como flags
(también denominado marcas).
El estándar habla generalmente de variables representadas directa-
mente. Estas son variables que están referidas directamente a las en-
tradas, salidas y elementos de memoria del control disponibles, relacio-
nadas con el hardware. La asignación de entradas, salidas y memorias
(flags), y su posición física o lógica en el sistema de control es definido
por el correspondiente fabricante del control.

TP301 • Festo Didactic


B-63
Capítulo 6

Siempre que el control lo soporte, pueden direccionarse recursos que


excedan de un bit. IEC 1311-3 emplea otra letra para decribirlos, que
sigue a la abreviación I, Q y M y, por ejemplo, designa bytes y words.
IEC 1131-3 designa los tipos de datos mostrados en la fig. B6.2 en
relación con las entradas, salidas y flags.

BOOL Secuencia de bits de longitud 1

BYTE Secuencia de bits de longitud 8

WORD Secuencia de bits de longitud16


Fig. B6.2:
Tipos de datos

Los tamaños de 1 bit, tal como describe el tipo de datos BOOL (boo-
leana) solamente pueden asumir los valores 0 ó 1. Consecuentemente,
el margen de valores para un dato del tipo BOOL consiste en dos
valores "0" y "1".
A diferencia de esto, hay que destacar que en el caso de los tipos de
datos de secuencia de bits, que consisten en más de un bit, no hay un
rango de valores relacionado inmediatamente. Todos los tipos de datos
de secuencias de bits, tales como p. ej. BYTE y WORD son meramen-
te una combinación de varios bits. Cada uno de estos bits tiene el
valor 0 ó 1, pero su combinación no tiene su propio valor.
Los métodos de designación obligatorios para entradas, salidas y flags
de diferentes longitudes de bits están representados en la fig. B6.3.

I, Q, M Bit de entrada, bit de salida, bit de memoria 1 bit


o bien
IX, QX, MX

IB, QB, MB Byte de entrada, byte de salida, byte de memoria 8 bit Fig. B6.3:
Designación para
IW, QW, MW Word de entrada, word de salida, word de memoria 16 bit Entradas, Salidas y
Memorias

Festo Didactic • TP301


B-64
Capítulo 6

Un bit individual de una entrada, salida o flag también puede ser direc-
cionado sin la abreviación adicional X para el tipo de dato.
Como sea que los controles siempre tienen un número relativamente
grande de entradas, salidas y flags disponibles, estos deben ser espe-
cialmente identificados a efectos de diferenciación. Para ello se utiliza
la numeración indicada por IEC 1131-3, como en el siguiente ejemplo:

I1 Entrada 1

IX9 Entrada 9

I15 Entrada 15

QW3 Word de salida 3

MB5 Byte de memoria 5

MX2 Memoria 2

IEC 1131-3 no especifica el margen de números que se permite para


esta numeración ni si deben empezar por 0 ó por 1. Esto lo especifica
el fabricante del control.
También deben utilizarse una cantidad jerárquica de entradas, salidas
y flags, si el control utilizado ha sido adecuadamente configurado.
Se utiliza un punto para separar los niveles individuales de la jerarquía.
El número de niveles de jerarquía no ha sido definido.
En el caso de numeración jerárquica, la posición más alta en el núme-
ro de la izquierda debe ser codificado, los números que siguen a la
derecha representan consecutivamente las posiciones más bajas.
Ejemplo I3.8.5

TP301 • Festo Didactic


B-65
Capítulo 6

La estrada especificadas I3.8.5 puede por lo tanto representar:

Entrada

en inserto No. 3

en tarjeta No. 8

como Entrada No. 5


Fig. B6.4:
I 3. 8. 5 Estructura de las
designaciones jerárquicas

IEC 1131-4 no hace ningún comentario en relación con la asignación


de bits individuales en un BYTE o WORD. Los fabricantes de los con-
troles a menudo eligen métodos de designación jerárquica para asignar
bits individuales como partes de words. Así, F6.2 podría representar,
por ejemplo, el bit número 2 de la flag word número 6. Sin embargo,
esto no tiene que ser necesariamente así, ya que el flag bit F6.2 y la
flag word FW6 no necesariamente tienen que estar conectadas de al-
guna forma. Además, no se ha hecho ninguna definición sobre si la
numeración de los bits individuales en una word deben empezar por la
derecha o por la izquierda (hasta ahora, el bit número 0 en el extremo
derecho ha sido el más frecuentemente utilizado)
Variables directamente direccionadas
Si los recursos en un programa de control deben ser direccionados
directamente, a la designación del recurso debe anteponerse el recur-
so %.
Ejemplos de variables directamente direccionables:

%IX12 Bit de entrada 12


o
%I12

%IW5 Word de Entrada 5

%QB8 Byte de Output 8

%MW27 Word de Memoria 27

El uso de variables directamente direccionadas solamente es permisi-


ble en programas, configuraciones y recursos.
Las unidades de organización de programas Función y Bloque de Fun-
ción deben operar exclusivamente con variables simbólicas, para man-
tener el programa lo más independiente posible del control y, con ello,
lo más ampliamente utilizable.

Festo Didactic • TP301


B-66
Capítulo 6

6.2 Variables y La utilización de variables representadas exclusiva y directamente (re-


tipos de datos cursos, entradas, salidas y memoria) no es suficiente para crear pro-
gramas de control. Frecuentemente, se requieren datos, que contienen
información específica, también de una naturaleza más compleja. Es-
tos datos pueden ser especificados directamente, es decir, datos de
tiempo o valores de recuento, o accesibles sólo a través de variables –
es decir, a través de una representación simbólica. Las definiciones
más importantes para tratar con datos o variables se indica abajo.

Direccionamiento simbólico
Un identificador simbólico siempre consiste en una letra mayúscula o
minúscula, dígitos y un guión de subrayado. Un identificador debe em-
pezar siempre con una letra o un guión de subrayado. El guión de
subrayado puede utilizarse para hacer más leíble un identificador. Sin
embargo, es un carácter significativo. Por ello, los dos identificadores
Marcha_motor y Marchamotor son diferentes. No se permiten varios
guiones de subrayado. Si el control permite letras mayúsculas y minús-
culas, su utilización indistinta no debe tener significación alguna. Los
dos identificadores MARCHAMOTOR y Marchamotor se interpretan
idénticamente y designan el mismo objeto.
Los siguientes identificadores no son permisibles:

123 El nombre no empieza con una letra

Button_? El último carácter no es válido ya que


no es ni una letra ni un número

Además, los identificadores simbólicos no deben ser idénticos que las


palabras clave. Como regla, las palabras clave son palabras reserva-
das para tareas específicas.
Representación de datos
En un programa de control, debe ser posible especificar valores de
tiempo, de recuento, etc.
Consecuentemente, IEC 1131-3 ha establecido las definiciones para la
representación de los datos a especificar
Valores de recuento
Valores de tiempo
Cadenas

TP301 • Festo Didactic


B-67
Capítulo 6

Descripción Ejemplos

Enteros 12, -8, 123_456*, +75

Números en coma flotante -12.0, -8.0, 0.123_4*

Números de base 2 2#1111_1111 (255 decimal)


(Números binarios) 2#1101_0011 (211 decimal)

Números de base 8 8#377 (255 decimal)


(Números octales) 8#323 (211 decimal)

Números de base 16 16#FF o 16#ff (255 decimal)


(Números hexadecimales) 16#D3 o 16#d3 (211 decimal)

Cero y Uno Booleanos 0, 1


Tabla B6.1:
* El uso de subrayados entre dígitos es permisible para mejorar la Representación de
legibilidad. Sin embargo, el subrayado no es significativo. datos numéricos

IEC 1131-3 prevé diferentes tipos de datos de tiempo:


Duración, es decir, para medición de resultados
Fecha
Hora del día, p. ej. para sincronización desde el inicio o el final de
un evento (también juntamente con la fecha)

Descripción Ejemplos

Duración de tiempo T#18ms, t#3m4s, t#3.5s


t#6h_20m_8s
TIME#18ms

Fecha D#1994-07-21
DATE#1994-07-21

Hora del día TOD#13:18:42.55


TIME_OF_DAY#13:18:42.55

Fecha y Hora DT#1994-07-21-13:18:42.55 Tabla B6.2:


DATE_AND_TIME#1994-07-21-13:18:42.55 Representación de tiempo,
fecha y hora

La especificación de la duración de un tiempo consiste en una parte


introductoria, la palabra clave T# o t#, y una secuencia de secciones
relacionadas con el tiempo – es decir, días, horas, minutos, segundos
y milisegundos.

Festo Didactic • TP301


B-68
Capítulo 6

Abreviaciones para datos de tiempo:

d Dias

h Horas

m Minutos

s Segundos

ms Milisegundos

También pueden utilizarse mayúsculas en lugar de minúsculas y guio-


nes de subrayado para mejorar la lectura del dato.
También IEC 1131-3 ha especificado un formato fijo para la indicación
de una fecha, hora del día o una combinación de ambos. Cada especi-
ficación empieza con una palabra clave; la información real se repre-
senta como se muestra en la tabla B6.2.
Otro método importante de representación de fechas es el uso de una
secuencia de caracteres también conocida como cadena, que puede
ser requerida para el intercambio de información, es decir, entre dife-
rentes controles, con otros componentes de un sistema de automati-
zación o también para la programación de textos para visualización en
el control y en dispositivos de visualización.
Una cadena consiste en ninguno o varios caracteres, que empiezan y
terminan con una coma volada.

Ejemplo Descripción

’B’ Cadena de longitud 1, conteniendo el carácter B

’Atención’ Cadena de longitud 7, conteniendo el mensaje Atención


Tabla B6.3:
’’ cadena vacía
Representación de cadenas

TP301 • Festo Didactic


B-69
Capítulo 6

Tipos de datos
IEC 1131-3 define un gran número de tipos de datos para diferentes
tareas. Uno de estos tipos de datos, BOOL, ya ha sido mencionado.
Una variable del tipo BOOL asume el valor 0 ó bien el valor 1.

Palabra clave Tipo de Dato Margen de valores

BOOL Número Booleano 0, 1

SINT Entero corto 0 a 255

INT Entero -32 768 a +32 767

DINT Entero doble -2 147 483 648 a +2 147 483 647

UINT Entero sin signo 0 a 65 535

REAL Número en coma flotante +/-2.9E-39 a +/-3.4E+38

TIME Duración de tiempo dependiendo de la implementación

STRING Cadena de longitud variable dependiendo de la implementación

BYTE Secuencia de 8 bits sin rango de valores declarable Tabla B6.4:


Un número de tipos de
WORD Secuencia de 16 bits sin rango de valores declarable
datos elementales

Otros dos importantes tipos de datos, denominados INT e UINT defi-


nen números enteros. Las variables del tipo de datos INT (integer/en-
tero) permiten valores numéricos de -32 768 hasta +32 767. El margen
de valores del tipo de dato INT cubre tanto valores negativos como
positivos. Las variables del tipo UNIT (unsigned integer/entero sin sig-
no) sólo permiten valores positivos. El margen de valores para las
UINT va desde 0 a 65 535. SINT (short integer/entero corto) y DINT
(double integer/entero doble) son tipos de datos adicionales que defi-
nen números enteros. Sin embargo, estos tiene un margen de valores
inferior o superior que el tipo de datos INT. El tipo de datos REAL
contiene números en coma flotante. Estos son números que pueden
contener lugares tras la coma, tales como el 3,24 ó -1,5. El tipo de
datos TIME se utiliza para especificar el tiempo, y puede contener una
duración de tiempo como por ejemplo: 2 minutos y 30 segundos.

Festo Didactic • TP301


B-70
Capítulo 6

Aparte de estos tipos de datos predefinidos elementales, el usuario


tiene la posibilidad de definir sus propios tipos de datos. Esto es útil en
casos en donde la definición del problema va más allá del ámbito de la
pura tecnología de control.
Los tipos de datos derivados se declaran dentro de la construcción
TYPE...END_TYPE. La declaración completa se indica abajo para la
enumeración del tipo Color en la tabla B6.5:

TYPE
Colo: (ROJO, AZUL, AMARILLO, NEGRO);
END_TYPE

Tipo de dato derivado Declaración


TYPE … END_TYPE

Tipo de enumeración Color: (ROJO, AZUL, AMARILLO, NEGRO);

Tipo de subrango Margen_referencia: INT(80..110);

Campos (array) Posicion: ARRAY[1..10] OF REAL;

Estructuras Coordenadas:
STRUCT
X:REAL;
Y:REAL;
Tabla B6.5: END_STRUCT;
Tipos de datos derivados

El significado de los tipos de datos individuales en la tabla B6.5 se


explica brevemente abajo:
Un dato del tipo Color solamente puede asumir uno de los valores
ROJO, VERDE, AMARILLO o NEGRO.
Un dato del tipo Margen_referencia sólo puede asumir valores entre
80 y 110, incluyen los límites inferior y superior 80 ó 110.
Un dato del tipo Posicion, representa una lista con 10 entradas.
Cada entrada tiene el valor de un número REAL. Con este índice
pueden indexarse las entradas individuales.
Un elemento del tipo de datos Coordenadas contiene dos números
REAL, a los que puede accederse a través de sus nombres X e Y.
No todos los controles necesitan reconocer todos estos tipos de datos.
Cada fabricante dispone un juego de tipos de datos, que pueden utili-
zarse en el correspondiente control.

TP301 • Festo Didactic


B-71
Capítulo 6

Declaración de variables
Con el uso de datos, debe definirse claramente el derecho de acceso a
estos datos. Con este fin, IEC 1131-3 utiliza una declaración de varia-
bles.
Para comprender la función de una declaración de variables, es nece-
sario establecer antes que el programa del control está construido en
unidades de organización individuales.
Estas unidades son:
Configuración
Recurso
Programas
Bloques de función
Funciones
Todas las variables tienen una posición específica. En el caso de len-
guajes de programación en forma textual (IL y ST), las declaraciones
de variables son aproximadamente las mismas que las utilizadas en el
lenguaje Pascal. Para las formas gráficas de representación sería facti-
ble una forma tabular con el contenido equivalente. Sin embargo, esto
no está especificado en IEC 1131-3.
Todas las declaraciones de variables (fig. B6.5) siempre empiezan con
una palabra clave, que designa la posición de la variable en la unidad
de organización del control, y termina con la palabra clave END_VAR.

VAR
Temp : INT; (*Temperatura *)
Manual : BOOL; (*Flag para funcionamiento manual *)
Lleno, Abierto : BOOL; (*Flag para "lleno" y "abierto" *)
END_VAR Fig. B6.5:
Declaración de variables

Las variables y su asignación a un tipo de datos, se introduce entre


estas palabras clave en las que se especifica un identificador o identifi-
cadores simbólicos de las variables, el tipo de dato se indica tras dos
puntos y la declaración se cierra con un punto y coma. Si se declaran
varias variables, se repiten correspondientemente. Normalmente, cada
declaración se escribe en una línea separada en este caso.

Festo Didactic • TP301


B-72
Capítulo 6

IEC 1131-3 distingue entre seis tipos diferentes de acceso a las varia-
bles. Cada tipo tiene una palabra clave, que introduce la declaración
de la variable.

Variables de Entrada VAR_INPUT

Variables de Salida VAR_OUTPUT

Variables de Entrada/Salida VAR_IN_OUT

Variables locales VAR

Tabla B6.6: Variables globales VAR_GLOBAL


Palabras clave para la
Variables externas VAR_EXTERN
declaración de variables

Las variables de entrada son declaradas con las palabras clave


VAR_INPUT y END_VAR.

VAR_INPUT
Fig. B6.6: Input : INT; (*Valor de entrada *)
Declaración de una END_VAR
variables de entrada

Las variables especificadas de esta forma representan variables de en-


trada, alimentadas externamente a una unidad de organización, p. ej,
un bloque de función. Estas sólo pueden leerse dentro de la unidad de
organización.
No es posible hacer modificaciones.
Análogamente a esto, las variables de salida se definen con las pala-
bras clave VAR_OUTPUT y END_VAR

VAR_OUTPUT
Fig. B6.7: Result : INT; (*Valor de realimentación *)
Declaración de una END_VAR
variable de salida

El dato que calcula una unidad de organización y devuelve de nuevo el


exterior se declara arriba.
Todos los resultados de una unidad de organización deben ser transfe-
ridos más allá de la unidad de organización a través de variables de-
claradas de esta forma. Dentro de las unidades de organización, estas
pueden ser leídas y escritas. Externamente, sólo se permite el acceso
de lectura.

TP301 • Festo Didactic


B-73
Capítulo 6

En los casos en que se permitan variables conteniendo valores de en-


trada y salida, estos deben crearse con las palabras clave
VAR_IN_OUT y END_VAR.

VAR_IN_OUT
Value : INT; Fig. B6.8:
END_VAR Declaración de una
variable de entrada/salida

Esta forma representa una tercera opción y permite la declaración de


variables, que pueden ser leídas y utilizadas dentro de una unidad de
organización.
En el caso de una variable declarada como VAR_IN_OUT, se asume
que ambos valores serán suministrados hacia y desde la unidad de
organización.
A menudo, se requieren variables para resultados intermedios, que de-
ben permanecer desconocidos externamente. La declaración de tales
variables, denominadas locales, empieza con VAR y termina con
END_VAR.

VAR
Z : INT; (*Resultado intermedio *) Fig. B6.9:
END_VAR Declaración de una
variable local

Las variables especificadas aquí son locales para una unidad de orga-
nización y solame te pueden ser utilizadas en ella. Son desconocidas
para otras unidades organizacionales y por lo tanto inaccesibles.
Una aplicación típica son las posiciones de memoria para resultados
intermedios, que no son de interés en otras zonas del programa. En el
caso de estas variables, hay que observar que también pueden existir
varias veces en diferentes unidades de organización. De esta forma,
es posible, por ejemplo, que varios bloques de función declaren la va-
riable local Z. Estas variables locales son completamente inde-
pendientes y difieren unas de otras.
Una variable también puede ser declarada globalmente, en cuyo caso
puede ser accedida universalmente. La necesaria declaración se reali-
za de una forma similar, utilizando las palabras clave VAR_GLOBAL y
VAR_EXTERNAL.

Festo Didactic • TP301


B-74
Capítulo 6

VAR_GLOBAL
Fig. B6.10: Global_value: INT;
Declaración de una END_VAR
variable global

Así es como se declaran todos los datos globales para un programa de


control. Los datos globales son accesibles universalmente. Esta decla-
ración sólo puede hallarse en unidades de organización, configuración
y recurso.

VAR_EXTERNAL
Fig. B6.11: Global_value: INT;
Declaración de acceso a END_VAR
una variable global

Para facilitar el acceso de datos global a una unidad de organización,


esta declaración debe ser registrada en la unidad de organización.
Sin la declaración mostrada arriba, el acceso a los datos globales no
sería permisible.
Esta estricta unidad de declaración para todas las variables define úni-
camente qué variables son reconocidas por una unidad de organiza-
ción y cómo pueden ser usadas. Un bloque de función puede, por
ejemplo, leer pero no cambiar sus variables de salida.
Se utiliza la palabra clave AT para asignar variables a las entradas y
salidas del control.

VAR
Fig. B6.12: Pulsador_paro AT %I2.3: BOOL;
Declaración de variables Temperatura AT %IW3: INT;
con asignación a entradas END_VAR
de un control

Las declaraciones hechas de esta forma son el mejor medio para defi-
nir el significado de todas las entradas y salidas del control. Si se pro-
duce un cambio en el sistema y su conexión al controlador, sólo debe-
rán ser cambiadas estas declaraciones. Cualquier utilización p. ej. del
Pulsador_paro, o de la Temperatura en un programa existente, no se
ve afectada por el cambio.

TP301 • Festo Didactic


B-75
Capítulo 6

Sin embargo, según IEC 1131-3 siempre es posible utilizar variables


direccionadas directamente sin tener que asignarlas a un identificador
simbólico. La declaración en este caso es como sigue:

VAR
AT %I4.2 : BOOL;
AT %MW1 : WORD;
END_VAR

Inicialización
A menudo es esencial que a una variable se le asigne un valor inicial.
Este valor puede cambiar varias veces durante el procesamiento del
programa, incluso aunque haya estado definida el principio.
Los estados iniciales como estos también son importantes para otros
datos. Tales valores iniciales se especifican conjuntamente con la de-
claración de las variables. Una variable global de este tipo denominada
p. ej. Docena se declara para que al principio del programa asuma el
valor 12.

VAR_GLOBAL Fig. B6.13:


Docena : INT := 12; Declaración de una
END_VAR variable global
con valor inicial

Como se ha mostrado en este ejemplo, el valor de inicialización se


inserta siempre entre el tipo de dato – en este caso INT – y el punto y
coma de cierre. La especificación del valor de inicialización siempre
requiere el signo :=.
De esta forma, a cada variable se le puede especificar un valor inicial.
Fundamentalmente, las variables siempre tienen un valor inicial defini-
do al inicio del programa. Esto lo facilita la característica definida en
IEC 1131-3, en donde los tipos de datos tienen un valor preestableci-
do. Cada variable es preasignada al valor inicial correspondiente al tipo
de dato – a no ser que se especifique lo contrario en el programa. Una
lista de los valores iniciales de una selección de tipos de datos elemen-
tales puede verse en la tabla B6.7.

Tipo de dato Valor inicial

BOOL, SINT, INT, DINT 0


UINT 0
BYTE, WORD 0
REAL 0.0
Tabla B6.7:
TIME T#0s
Valores iniciales
STRING ’’ (cadena vacía)
preestablecidos

Festo Didactic • TP301


B-76
Capítulo 6

6.3 Programa El programa para un control está dividido en unidades de organización


individuales, que son como sigue en el nivel de programación:
Programas
Bloques de función
Funciones
Estas unidades de organización de programa están disponibles en to-
dos los lenguajes de programación
IEC 1131-3 define una amplia gama de funciones estandarizadas y
bloques de función para tareas de control típicas. Aparte de estas fun-
ciones especificadas y bloques de función, IEC 1131-3 permite la defi-
nición de sus propias funciones y bloques de función. Los fabricantes o
los usuarios pueden así crear módulos de software hechos a su medi-
da para determinadas aplicaciones.
Funciones
Las funciones son módulos de software que, cuando se les invoca,
proporcionan exactamente un resultado (elemento de datos). Esta es la
razón por la que en un lenguaje textual, la invocación de una función
puede ser utilizada como un operando en una expresión.
Las funciones no pueden contener información de estado. Esto signifi-
ca que la invocación de una función con los mismos argumentos (pará-
metros de entrada) deben proporcionar el mismo resultado.
La suma de valores enteros INT o la función lógica OR con ejemplos
de funciones.
Las funciones y su invocación puede representarse gráficamente o en
forma de texto.

F nombre
X
Y
Z
Fig. B6.14: Entradas Salida
Representación
gráfica de una función

TP301 • Festo Didactic


B-77
Capítulo 6

Gráficamente, una función se representa en forma de rectángulo. Todos los


parámetros de entrada se relacionan en el lado izquierdo, mientras que los
parámetros de salida se muestran en el lado derecho. En el interior del
rectángulo se indica el nombre de la función. Los parámetros formales de
entrada pueden especificarse a lo largo de los lados dentro del rectángulo.
Esto es necesario con algunos grupos de funciones, tales como las funcio-
nes de desplazamientos de bits, por ejemplo (fig. B6.15b). Para funciones
con entradas idénticas, como es el caso de la función de suma ADD (fig.
B6.15a) no se requieren nombres de los parámetros formales.

VAR
AT %QW4 : INT;
AT %IW9 : INT;
AT %IW7 : INT;
AT %MW1 : INT;
END_VAR

%QW4 ADD %MW1 a) sin nombres de


%IW9 parámetros formales
%IW7

SHL
%IW2 IN %MW5 b) con nombres de
4 N parámetros formales

Fig. B6.15:
Uso de parámetros
formales con funciones

Las entradas o salidas booleanas de una función pueden ser negadas,


es decir, invertidas especificando un círculo directamente fuera del rec-
tángulo (fig. B6.16).

%Q5.3 AND %Q4.1


%M1.1

Fig. B6.16:
Representación de
negaciones Booleanas

Festo Didactic • TP301


B-78
Capítulo 6

Si se invoca una función, deben conectarse sus entradas y la salida de


la función.
La función suma ADD ilustrada en la fig. B6.16 procesa valores ente-
ros INT, por lo cual, las variables direccionadas directamente tales
como %QW4 etc. están declaradas como variables de tipo de dato
INT. De la misma forma, la función ADD podría aplicarse a valores del
tipo SINT o REAL.
Las funciones como estas, que funcionan para entrar parámetros de
tipos de datos diferentes, se denominan en IEC 1131-3 como funcio-
nes sobrecargadas, independientes del tipo. La Fig. B6.17 ilustra las
características de una función sobrecargada utilizando el ejemplo de
una función ADD.

Función ADD como ejemplo de función sobrecargada

ADD Todos los tipos de datos que definen números


son permisibles como parámetros de
entrada de resultado

a) Parámetros de Entrada del tipo INT

general ejemplo
VAR
INT ADD INT AT %IW1 : INT;
AT %IW2 : INT;
INT AT %MW3 : INT;
END_VAR

%IW1 ADD %MW3


%IW2

b) Parámetros de entrada del tipo SINT


general ejemplo
VAR
SINT ADD SINT AT %IB4 : SINT;
AT %IB5 : SINT;
SINT AT %MB6 : SINT;
END_VAR

%IB4 ADD %MB6


%IB5
Fig. B6.17:
Función sobrecargada de
tipo independiente

TP301 • Festo Didactic


B-79
Capítulo 6

Si una función sobrecargada está limitada a un determinado tipo de


datos por el control – p. ej., el tipo de datos INT como se muestra en
la fig B6.18 – esto se conoce como una función con tipo. Las funciones
con tipo son reconocibles por el nombre de su función. El tipo se indica
añadiendo un guión de subrayado, seguido del tipo deseado.

general ejemplo
VAR
AT %IW1 : INT;
INT ADD_INT INT AT %IW2 : INT;
INT AT %MW3 : INT;
END_VAR

%IW1 ADD_INT %MW3


%IW2

Fig. B6.18:
Una función con tipo

Funciones estándar
Las funciones estándar más importantes para la realización de tareas
básicas de tecnología de control se relacionan a continuación.
Dado que una gran variedad de funciones estándar pueden funcionar
utilizando parámetros de entrada de diferentes tipos de datos, los tipos
de datos se han combinado en grupos. A cada grupo se le ha dado un
tipo de datos genérico. Los tipos de datos genéricos más importantes
se muestran en la tabla B6.8.

ANY_NUM Todos los tipos de datos para números en coma flotante, tales
como REAL y para números enteros tales como INT, UINT, etc.
están contenidos en ANY_REAL y ANY_INT.

ANY_INT Todos los tipos de datos para enteros tales como INT, UINIT, etc.

ANY_REAL Todos los tipos de datos, definiendo números en coma flotante


tales como REAL e LREAL

ANY_BIT Todos los tipos de datos de secuencia de bits, tales como BOOL,
Tabla B6.8:
BYTE, WORD etc.
Tipos de datos genéricos

Festo Didactic • TP301


B-80
Capítulo 6

ANY_BIT *** ANY_BIT


ANY_BIT
...
...
ANY_BIT

* * * = nombre o símbolo

Nombre Símbolo Descripción

AND & Operación AND de todas las entradas

OR >=1 Operación OR de todas las entradas

Tabla B6.9: XOR =2k+1 Operación OR-exclusiva de todas las entradas


Funciones booleanas
NOT Entrada negada
Bit-a-bit

***
ANY_BIT IN ANY_BIT
ANY_INT N

* * * = nombre

Nombre Descripción

SHL Desplazar IN por N bits hacia la izquierda, llenar con ceros la derecha

SHR Desplazar IN por N bits hacia la derecha, llenar con ceros la izquierda

ROR Desplazar IN cíclicamente por N bits hacia la derecha


Tabla B6.10:
Funciones de
ROL Desplazar IN cíclicamente por N bits hacia la izquierda
desplazamiento de bits

TP301 • Festo Didactic


B-81
Capítulo 6

ANY_BIT or ANY_NUM *** ANY_BIT or ANY_NUM


...
...

* * * = nombre o símbolo

Nombre Símbolo Descripción

GT > Mayor que (secuencia descendiente)

GE >= Mayor o iguall (secuencia monotónica)

EQ = Igual

LE <= menor o igual (secuencia monotónica)

LT < Menor que (rsecuencia ascendente)


Tabla B6.11:
NE <> No igual, no expandible Funciones de comparación

a) Representación gráfica

ANY_BIT BCD_TO_INT INT

Descripción:
Convierte variables del tipo BYTE, WORD etc. en
variables del tipo INT.
La variable de secuencia de bits contiene datos en
formato BCD (número decimal codificado en binario)

Ejemplo:

2#0011_0110_1001 BCD_TO_INT 369

b) Representación gráfica

INT INT_TO_BCD ANY_BIT

Descripción:
Convierte variables de tipo INT en variables de tipo BYTE,
WORD etc.
La variable de secuencia de bits contiene datos en formato
BC.
Ejemplo:

25 INT_TO_BCD 2#0010_0101
Tabla B6.12:
Funciones para
conversión de tipo

Festo Didactic • TP301


B-82
Capítulo 6

ANY_NUM *** ANY_NUM


ANY_NUM
...
...
ANY_NUM

* * * = nombre o símbolo

Nombre Símbolo Descripción

ADD Suma todas las entradas

MUL * Multiplica todas las entradas

SUB – Resta la segunda entrada de la primera

DIV / Divide la primera entrada por la segunda


Tabla B6.13:
Funciones aritméticas MOVE := Asigna una entrada a una salida. no ampliable

Bloques de función
Los bloques de función son módulos de software que proporcionan uno
o varios parámetros resultantes.
Una característica importante es la posibilidad de reutilización de los
bloques de función. Si debe utilizarse un bloque de control en un pro-
grama, debe crearse una copia. Esto se realiza a través de la asigna-
ción de un nombre para cada caso. Junto con este identificador hay
una estructura de datos, que almacena los estados de esa copia del
bloque de función (valores de los parámetros de salida y variables in-
ternas). La información del estado de la copia del bloque de función
permanece inalterable entre un procesamiento y el siguiente.
Esto puede demostrarse utilizando el ejemplo del bloque de función
estándar para operaciones de recuento. El valor actual del contador
permanece de una operación de recuento a la siguiente y puede así
ser interrogada en cualquier momento. Este tipo de comportamiento no
puede realizarse a través del recurso lenguaje, como se describe arriba.

TP301 • Festo Didactic


B-83
Capítulo 6

Identificador
Tipo FB
Tipo dato X P Tipo dato
Tipo dato Y Q Tipo dato
Fig. B6.19:
Representación gráfica
Entradas Salidas de una copia de un
bloque de función

También se dispone de la representación gráfica de bloques de función


(aparte de la representación en uno de los lenguajes textuales). Estos
se representan por rectángulo de la misma forma que las funciones
(fig. B6.19). Los parámetros de entrada se introducen por la izquierda y
los parámetros de salida aparecen por la derecha. El tipo de bloque de
función se especifica dentro del rectángulo. A continuación se introdu-
cen los nombres de los parámetros formales junto a los lados derecho
e izquierdo dentro del rectángulo o caja. El identificador, bajo el cual se
direcciona el módulo, se direcciona como se ha descrito para el bloque
de función.
Si se utiliza un bloque de función, se le debe dar un identificador. Si
las entradas están asignadas – es decir, hay disponibles parámetros
de transferencia actuales – entonces se utilizan estos para el procesa-
miento. Si las entradas no están conectadas, entonces se accede de
nuevo a los valores almacenados en invocaciones anteriores o se utili-
zan los correspondientes valores iniciales.
La Fig. B6.20 muestra el uso (invocación) del bloque de función
estándar para un contador.

CTU Bloque de función – tipo CTU


BOOL CU Q BOOL (contador incremental)
BOOL R
INT PV CV INT

Count_Pack
CTU Use una copia del bloque de
%I 1.3 CU Q %Q2.5 función CTU en un programa
de control
R Fig. B6.20:
10 PV CV Uso (invocación) del
bloque de función CTU
(contador incremental)

Festo Didactic • TP301


B-84
Capítulo 6

La copia utilizada del bloque de función CTU lleva el identificador


Count_Pack. A cada flanco positivo de la entrada %I1.3 el valor actual
del contador se incrementa en 1 unidad. Cuando se alcanza el valor
preestablecido de 10, la salida Q del Count_pack, y con ello la salida
%Q2.5 asume una señal 1; en los demás casos se asume una señal 0.
También es posible crear varias copias de uno y del mismo bloque de
función dentro de un programa de control, como se muestra en la fig.
B6.21.

TP Bloque de función –
BOOL IN Q BOOL tipo TP (pulse timer)
TIME PT ET TIME

T_Colour T_Pressure
OR
TP TP
%I 1.7 IN Q IN Q
T#7s PT ET Display_1 T#3s15ms PT ET

Uso de varias copias del


Fig. B6.21:
Uso de varias copias de
bloque de funciónTP
un bloque de función

TP301 • Festo Didactic


B-85
Capítulo 6

Bloques de función estándar


La Tabla B6.14 relaciona los bloques de función más importantes es-
tandarizados por IEC 1131-3.

SR Bloque de función biestable (activación prioritaria)

RS Bloque de función biestable (desactivación prioritaria)

CTU Contador incremental

CTD Contador decremental

TP Pulso de tiempo

TON Retardo a la conexión

TOF Retardo a la desconexión

R_TRIG Detección de flanco: flanco ascendente Tabla B6.14:


Bloques de función
F_TRIG Detección de flanco: flanco descendente
estándar

Funciones definidas de usuario


Aparte de las funciones especificadas, IEC 1131-3 permite la definición
de funciones propias .
Para la declaración gráfica se aplican las siguientes reglas:
Declaración de la función dentro de la construcción FUNCTION...
END_FUNCTION.
Especificación del nombre de la función y los nombres de los pará-
metros formales y tipos de datos de entradas y salidas de la función
Especificación de los nombres y tipos de datos de variables internas
utilizadas en la función; para ello puede utilizarse una construcción
VAR... END_VAR. No pueden utilizarse copias de bloques de fun-
ción como variables internas, ya que estas necesitarían el almace-
namiento de información del estado.
Programación del cuerpo de la función en uno de los lenguajes LD,
FBD, IL, o ST.

Festo Didactic • TP301


B-86
Capítulo 6

A la función ejemplo SPEC_MUL en la fig. B6.22 se le dan dos pará-


metros del tipo INT. Los dos valores de parámetros son multiplicados y
se le añade la cifra 15. El valor así calculado es devuelto a la función
como resultado.

FUNCTION
(* Descripción del interface externo *)

SPEZ_MUL
INT F1 INT
INT F2

(* Cuerpo de la función: *)
(* Programado en lenguaje FBD *)

F1 *
F2
+ SPEZ_MUL
15

Fig. B6.22:
END_FUNCTION
Ejemplo de una
función SPEZ_MUL

El uso de la función podría ser como el que se ha mostrado en la fig.


B6.23.

VAR
AT %MW1 : INT;
AT %MW2 : INT;
AT %MW3 : INT;
AT %IW4 : INT;
AT %QW5 : INT;
END_VAR

SPEZ_MUL
%MW1 F1 + %MW3
%MW2 F2

%IW4
Fig. B6.23: %QW5
Uso de la función
SPEZ_MUL

TP301 • Festo Didactic


B-87
Capítulo 6

Bloques de función definidos por el usuario


La generación de los propios bloques de función por el usuario es una
característica importante de IEC 1131-3.
Se aplican las siguientes reglas para una declaración gráfica:
Declaración de bloques de función en una construcción FUNC-
TION_BLOCK... END_FUNCTION_BLOCK.
Especificación del nombre del bloque de función y de los nombres
de los parámetros formales y tipos de datos de las entradas y sali-
das del bloque de función.
Especificación de los nombres y tipos de datos de variables inter-
nas; puede emplearse una construcción VAR... END_VAR.
Programación del cuerpo de la función en uno de los lenguajes LD,
FBD, IL, o ST.
Aquí no se ha tenido en cuenta el acceso de datos ampliado, tal como
las variables globales.

FUNCTION_BLOCK
(* Descripción del interface externo *)

Filtro_rebotes
BOOL S_ON S_OFF BOOL
TIME E_TIME

(* Cuerpo del bloque de función: *)


(* programado en lenguaje FBD *)

EP_ON EP_S
TON SR
S_ON IN Q S1 Q1 S_OFF
PT ET R

EP_OFF
TOF
IN Q
E_TIME PT ET

Fig. B6.24 :
END_FUNCTION_BLOCK
Declaración de un
bloque de función

Festo Didactic • TP301


B-88
Capítulo 6

El bloque de función ilustrado en la fig. B6.24 representa un bloque de


función para la eliminación de rebotes en las señales, consistentes en
dos parámetros de entrada, es decir, una entrada booleana para la
señal y una entrad de tiempo para el ajuste del tiempo de rebotes. El
parámetros de salida S_OFF suministra la señal de salida sin rebotes.

Programas
Un programa consiste en cualquier cantidad de elementos de lenguaje
y construcciones, necesarios para conseguir el comportamiento desea-
do de la máquina o proceso a través del PLC.
Por ello, los programas están construidos principalmente por funciones,
bloques de función y los elementos del diagrama de funciones secuencial.
Por ello, las características de los programas son en gran parte idénti-
cos a los de los bloques de función. Lo único que nos interesa en esta
etapa son las diferencias:
Las palabras clave delimitadoras para las declaraciones de progra-
ma son PROGRAM... END_PROGRAM.
La utilización de variables directamente direccionables solamente se
permite dentro de programas.
Un ejemplo de esto se muestra en la figura B6.25.

PROGRAM luz_escalera
VAR
Interruptor_F AT %IX0.0 : BOOL; (* Interruptor en la puerta *)
Interruptor_A AT %IX0.1 : BOOL; (* Interruptor interior apartamento *)
Luz AT %QX0.0 : BOOL; (* Luz de la escalera *)
Duracion : TP; (* Tiempo de encendido *)

END_VAR

Duracion
Interruptor_F OR
TP
Interruptor_A
IN Q Luz
T#3m PT ET

END_PROGRAM
Fig. B6.25:
Ejemplo de un programa

TP301 • Festo Didactic


B-89
Capítulo 6

El nombre del programa es "Luz_escalera". Tres variables booleanas


Interruptor_F, Interruptor_A y Luz, asignadas a dos entradas y una sali-
da del PLC, han sido declaradas como variables internas. A esto se
añade la declaración de una copia del bloque de función del tipo Pulse
Timer (TP).
El programa realiza la siguiente pequeña tarea:
La luz de una escalera está encendida durante tres minutos, si se ac-
ciona uno de los dos interruptores; el de la puerta o el del apartamento.

Festo Didactic • TP301


B-90
Capítulo 6

TP301 • Festo Didactic


B-91
Capítulo 7

Capítulo 7

Diagrama de bloques de función

Festo Didactic • TP301


B-92
Capítulo 7

7.1 Elementos del dia- El diagrama de bloques de función es un lenguaje de programación


grama de bloques gráfico que es consistente, en la medida de lo posible, con la docu-
de función mentación estándar IEC 617, P.12.

a) Operación lógica de funciones

Manual_desc >=1 Puerta_cerrada

Temp >
60

b) Uso de bloques de función

T_Arranque
TON
%I 1.3 IN Q %Q2.4
Fig. B7.1:
T#7s PT ET
Diagrama de bloques
de función (FBD)
Los elementos del diagrama de bloques de función son funciones
representadas gráficamente y bloques de función. Estas están interco-
nectadas por líneas de flujo de señal, los elementos directamente enla-
zados formando una red de trabajo (Network)

La Fig. B7.1 ilustra dos simples ejemplos del diagrama de bloques de


función. En la Fig. B7.1a, la variable Manual_desc y el resultado de
una comparación ’mayor que’ están enlazados en OR. El resultado es
asignado a la variable Puerta_cerrada. La Fig. B7.1b representa el uso
de un bloque de función. El retardo de la señal T_arranque se pone en
marcha con la entrada %I1.3 con el tiempo preestablecido de 7 segun-
dos. El estado del retardo de la señal, T_arranque.Q, se asigna a la
salida %Q2.4.

TP301 • Festo Didactic


B-93
Capítulo 7

La dirección del flujo de señales es una red de izquierda a derecha. Si 7.2 Evaluación
una unidad de organización del programa consta de varias redes, es- de redes
tas son procesadas en secuencia de arriba a abajo.
La secuencia de procesamiento dentro de una unidad de programa de
organización puede ser influida por el uso de elementos para control
de la ejecución. Este grupo de elementos incluye por ejemplo los sal-
tos condicionales e incondicionales. En la fig. B7.2 se utiliza un salto
condicional para realizar una derivación en el programa.

%I 1.1 & Variante_1


%M2.5

Variante_1:

%M2.1 >=1 %Q1.0


%I 2.5
Fig. B7.2:
Uso de un salto en FBD

El salto condicional, representado por una doble flecha, se ejecuta si


se cumple la condición para el salto. Por ello, si la entrada %I1.1 y el
flag %M2.5 llevan ambos señal 1, entonces se ejecutará un salto a la
red con el identificador Variante_1 y el proceso continuará en este punto.
Si hay que ejecutar un salto a una red, la red correspondiente debe
prefijarse con un nombre simbólico, el flag del salto, terminando con
dos puntos. El flag de salto debe identificarse según las reglas para los
nombres simbólicos.

Festo Didactic • TP301


B-94
Capítulo 7

7.3 Estructuras Cuando se programa en el lenguaje FBD, hay que observar que dentro
en bucle de las redes no se permiten estructuras de bucle. Las estructuras de
este tipo sólo deben realizarse a través del uso adicional de una ruta
de realimentación. La Fig. B7.3b ilustra un ejemplo de esto.

a) estructura en bucle no permitida

%M4 &

%I 1 >=1
%I 2

b) estructura en bucle permitida

%M4 & %M2.0

%I 1 >=1
%I 2

Fig. B7.3:
FBD con
estructuras en bucle

Por medio de la utilización de rutas de realimentación, la tercera entrada


de la función OR asume un valor definido durante su procesamiento.

TP301 • Festo Didactic


B-95
Capítulo 8

Capítulo 8

Diagrama de contactos

Festo Didactic • TP301


B-96
Capítulo 8

8.1 Elementos del El lenguaje de diagrama de contactos (o diagrama en escalera), al


diagrama de igual que del diagrama de bloques de función representa un lenguaje
contactos de programación gráfico. Los elementos disponibles en un diagrama de
contactos son los contactos y las bobinas en diferentes formas. Estas
están dispuestas en renglones (rungs) entre las dos líneas verticales
de mando a derecha e izquierda.

%M1.5 %Q3.5

Fig. B8.1:
Estructuta básica
de un renglón

La Fig. B8.1 ilustra la estructura básica de un reglón. En este ejemplo,


el estado del flag %M1.5 está directamente asignado a la salida
%Q3.5. La tabla B8.1 contiene una lista de los elementos más impor-
tantes asignados a un diagrama de contactos.

Contactos

Contacto normalmente abierto

/ Contacto normalmente cerrado

P Contacto de flanco positivo

N Contacto de flanco negativo

Bobinas

Bobina

/ Bobina negada

S Activación de una bobina remanente

R Desactivación de una bobina remanente

P Bobina activada por flanco positivo

Tabla B8.1: N Bobina activada por flanco negativo


Elementos del
diagrama de contactos

TP301 • Festo Didactic


B-97
Capítulo 8

Un contacto normalmente abierto suministra el valor 1 cuando se acti-


va el accionamiento del correspondiente interruptor. Un contacto nor-
malmente cerrado reacciona correspondientemente con el valor 1,
cuando no se activa el correspondiente interruptor o pulsador.
Hay dos señales de flanco, que suministran señal 1 para la transición
de 0 a 1 (flanco positivo) y de 1 a 0 (flanco negativo).
Con una bobina normal, el resultado (resultado de la operación lógica
entre los contactos) es copiado a la variable específica; en el caso de
una bobina negada, se transfiere el inverso (negación) del resultado.
La bobina de activación remanente asume el valor 1, si el resultado es
1, y permanece inalterable aunque el resultado pase a ser 0. De forma
similar, la bobina de desactivación remanente asume el valor 0 si el
resultado es 1. Se mantiene el estado 0 de la bobina.
Los flancos de las bobinas se activan si el resultado cambia de 0 a 1
(flanco positivo) o de 1 a 0 (flanco negativo).
Las funciones básicas AND y OR pueden ser realizadas por medio de
una configuración correspondiente de contactos en el renglón actual.

a) Función AND

%I 1.3 %M3.2 %Q2.1

b) Función OR

%I 1.5 %Q2.3

%M3.4
Fig. B8.2:
Conexiones básicas
lógicas en diagrama
de contactos

La función AND es representada por medio de la conexión en serie de


dos contactos (fig. B8.2a). La salida %Q2.1 sólo se activa si ambas
entradas %I1.3 y el flag %M3.2 se hallan activados. En todos los de-
más casos, la salida %Q2.1 es desactivada.

Festo Didactic • TP301


B-98
Capítulo 8

La función OR se obtiene a través de la conexión en paralelo de con-


tactos (fig. B8.2b). La salida %Q2.3 asume el valor 1, si la entrada
%I1.5 o el flag %F3.3 asumen el valor 1, o si ambas condiciones se
cumplen simultáneamente.

8.2 Funciones y Aparte de los elementos de contacto y bobina, LD proporciona el uso


bloques de ilimitado de funciones y bloques de función siempre que esta función
función esté soportada por el control utilizado.
Un requisito previo para la incorporación de las denominadas unidades
de organización, es la disponibilidad de por lo menos una entrada boo-
leana y una salida booleana del bloque en cuestión. Si no es este el
caso, la entrada booleana con el parámetro formal EN (enable/habilita-
ción) se añada a las correspondientes funciones o módulos de función
así como una salida booleana ENO (enable OK /habilitación correcta).
Las entradas/salidas booleanas son necesarias para permitir que la po-
tencia fluya a través del bloque.

a) Incorporación de funciones

Sumar_act + Suma_ok
EN ENO
Cantidad_1
Cantidad_2 Nivel_llenado

b) Invocación de un bloque de función

T_Arranque
%I 1.3 %Q2.4
TON
IN Q
Fig. B8.3: T#7s PT ET
Funciones y
bloques de función
en diagrama de contactos

La adición mostrada en la Fig. B8.3a solamente se realiza si se aplica


una señal 1 a la entrada EN. Si es este el caso, las variables Canti-
dad_1 y Cantidad_2 se suman y el resultado de estas variables se
asigna a la variable Nivel_llenado. Al mismo tiempo, el valor de la sali-
da ENO indica si la adición ha sido ejecutada, activada y correcta
(ENO=1). Si el bloque no ha sido procesado correctamente, la salida
ENO asume el valor 0.

TP301 • Festo Didactic


B-99
Capítulo 8

Los módulos de función, tales como por ejemplo el retardo de señal


mostrado en la fig. B8.3 pueden incorporarse al diagrama de contactos
sin una entrada EN adicional ni una salida ENO. El bloque de función
es conectado con los elementos del renglón actual en la forma usual
con la entrada booleana IN y la salida booleana Q. Si la entrada %I1.3
en la fig. B8.3b asume el valor 1, la copia del bloque de función
T_Marcha es procesada con la duración de tiempo preestablecida de 7
segundos. El valor de la salida Q de T_Marcha se asigna a la salida
%Q2.4.

De forma simular al lenguaje de programación gráfico FBD, el flujo de 8.3 Evaluación de


potencia, y como tal el procesamiento de una unidad de organización los renglones
del programa, es de izquierda a derecha y de arriba a abajo. De forma actuales.
similar la secuencia de procesamiento también puede cambiar en LD
utilizando elemento para el control de la ejecución.

%I 1.1 %M2.5

Variante_1

Variante_1:

%M2.1 %Q1.0

%I 2.5

Fig. B8.4:
Salto condicional en LD

Si la condición del salto, en este caso la operación AND de la entrada


%I1.1 y el flag %M2.5 se cumple, se ejecuta un salto al renglón actual
con el identificador Variante_1. El procesamiento continua entonces a
partir de este renglón.

Festo Didactic • TP301


B-100
Capítulo 8

TP301 • Festo Didactic


B-101
Capítulo 9

Capítulo 9

Lista de instrucciones

Festo Didactic • TP301


B-102
Capítulo 9

9.1 Lista de La lista de instrucciones es un lenguaje de programación textual, tipo


Instrucciones ensamblador (assembler). Sus instrucciones son más cercanas a las
órdenes procesadas en un PLC.
Un programa de control formulado en lenguaje de Lista de Instruccio-
nes consiste en una serie de instrucciones, en las que cada instrucción
se empieza en una nueva línea.
En la formulación de una instrucción, se especifica un formato fijo. Una
instrucción (fig. B9.1) empieza con un operador con modificador opcio-
nal y, si es necesario para la operación en cuestión, uno o varios ope-
randos, separados por comas. Las instrucciones pueden ser precedi-
das por una etiqueta seguida de dos puntos. La etiqueta actúa como
una dirección de salto. Las etiquetas son identificadas de la misma
forma que los símbolos. Si se utiliza un comentario, este debe repre-
sentar el último elemento de la línea. Un comentario se inicia con la
cadena (*, y termina con la cadena *).

Instrucción

Operador y
Etiqueta Operando Comentario
Modificador

Inicio: LD %I1.2 (* Pieza pres. *)


AND %M3.7 (* Taladro OK *)
ST %Q2.4 (* Avance *)
Fig. B9.1: (* estampador *)
Estructura de
una instrucción
El valor de la entrada %I1.2 se carga en el acumulador y se enlaza en
AND con el valor del flag %M3.7. El resultado es asignado a la salida
%Q2.4.

TP301 • Festo Didactic


B-103
Capítulo 9

9-2 Operadores

Operador Modificador Operando Descripción/Significado

LD N Carga el operando especificado al


acumulador e iguala el resultado actual a
este operando

ST N Almacena el resultado actual en los


operandos especificados

S BOOL Activa el operando booleano al valor 1, si el


valor del resultado actual es un 1 booleano

R BOOL Desactiva el operando booleano a o, si el


valor del resultado actual es un 1 booleano

AND N, ( BOOL AND Booleano

& N, ( BOOL AND Booleano

OR N, ( BOOL OR Booleano

XOR N, ( BOOL OR Exclusivo Booleano

ADD ( Adición (Suma)

SUB ( Sustracción (Resta)

MUL ( Multiplicación

DIV ( División

GT ( Comparación: >

GE ( Comparación: >=

EQ ( Comparación: =

NE ( Comparación: < >

LE ( Comparación: <=

LT ( Comparación: <

JMP C, N Etiqueta Salto a una etiqueta

CAL C, N Nombre Invocación de bloques de función

RET C, N Retorno de bloques de función Tabla B9.1:


Operadores en
) Procesamiento de una operación
lista de instrucciones

Festo Didactic • TP301


B-104
Capítulo 9

IEC 1131-3 define los operadores para la lista de instrucciones relacio-


nadas en la tabla B9.1
Los operadores no están enlazados con ninguna prioridad. Consecuen-
temente, las operaciones se procesan en la secuencia en la cual se
introducen en la lista de instrucciones. Si se desea una secuencia dife-
rente, esta puede conseguirse con el uso de paréntesis – los denomi-
nados modificadores. La Fig. B9.2 explica el uso de algunos modifica-
dores.

LDN %I1.1 El valor de la entrada %I1.1 es cargado


en forma negada al acumulador
AND( %I1.2 Primero se evalúa el contenido del
paréntesis - en este ejemplo las
OR %I1.3 entradas %I1.2 y %I1.3
se enlazan en OR – el resultado
) de la expresión entre paréntesis
es enlazada en AND con el
contenido actual del acumulador
JMPC Marcha Se ejecuta el salto a la etiqueta Marcha
tan sólo si el valor del resultado acabado de
ejecutar es un 1 booleano.

Fig. B9.2:
Uso y significado
de los modificadores

9.3 Funciones y En lista de instrucciones, también el uso de funciones y bloques de


bloques de función es ilimitado. Las funciones para tareas típicas de tecnología de
función control, tales como la lógica booleana u operaciones aritméticas (véase
fig. B9.3.a) se realizan directamente a través de los operandos especi-
ficados en la tabla B9.1.

a) Invocación a través de un operador

LD Temp (* Temperatura medida*)


GT 60 (* Mayor de 60 *)
OR Manual_desc (* OR está activado el pulsador Manual_desc *)
ST Cerrar_puerta (* Cerrar la puerta *)

b) Invocación a través de un nombre de función

LD %IW3 (* Cargar la input word %IW3 *)


SHL 4 (* Desplazar %IW3 por 4 bits a la izquierda *)
Fig. B9.3: ST %QW2 (* Guardar el resultado en la output word %QW2 *)
Invocación de funciones

TP301 • Festo Didactic


B-105
Capítulo 9

Las funciones más complejas tales como las funciones de desplaza-


miento de bits se invocan con el nombre de la función situado en el
campo del operador. El resultado actual (en el acumulador) debe ser
utilizado como el primer argumento de la función. Si se requieren otros
argumentos, estos deben especificarse en el campo de operando se-
parados por comas. El valor devuelto por la función, representa el nue-
vo resultado actual.
Los bloques de función pueden ser invocados según diferentes meca-
nismos (fig. B9.4).

a) CAL con una lista de parámetros de entrada

CAL T_arranque(IN := %I1.3, PT := T#7s )

b) CAL con almacenamiento/carga de parámetros de entrada separados

LD T#7s (* Cargar T#7s *)


ST T_arranque.PT (* Almacenar en T_aranque.PT *)
(* parámetros de entrada tiempo preselecc. *)
LD %I1.3 (* Cargar %I1.3 *)
ST T_arranque.IN (* Almacenar T_arranque.IN *)
(* transferir parámetro para activación *) Fig. B9.4:
(* del módulo *) Invocación de
CAL T_startup (* Invoc. de una copia del bloque T_arranque *) bloques de función

Un requisito es que la variable T_arranque sea declarada como una


señal de retardo. La invocación de un bloque de función puede esta-
blecerse claramente a través del operador CAL con una lista de pará-
metros de entrada asociados.
La variable T_arranque de la Fig. B9.4a, declarada en todas partes
como una señal de retardo, representa por ello un bloque del tipo se-
ñal de retardo. Siendo un argumento actual, este se asigna al valor de
la entrada %I1.3 para la entrada de activación IN y una duración de
tiempo de t#7s para la entrada PT. Como resultado, el bloque de fun-
ción T_arranque se invoca siguiendo la actualización de parámetros.
La transferencia de parámetros para un bloque de función también
puede realizarse por separado a partir de la invocación del bloque de
función actual.

Festo Didactic • TP301


B-106
Capítulo 9

Como se muestra en la fig. B9.4b, los valores del parámetro actuales


se cargan a través de operaciones elementales IL y se asignan a las
entradas del bloque de función Solamente después de esto es invoca-
do el bloque de función T_arranque y procesado a través de una ins-
trucción CAL. La ventaja de este método reside en el hecho que el
tiempo de actualización de los argumentos y la invocación real del mó-
dulo de función pueden hacerse por separado.

TP301 • Festo Didactic


B-107
Capítulo 10

Capítulo 10

Texto estructurado

Festo Didactic • TP301


B-108
Capítulo 10

10.1 Expresiones El lenguaje Texto Estructurado (ST = Structured Text) es un lenguaje


de alto nivel tipo Pascal, que incorpora los conceptos fundamentales
de un lenguaje moderno de alto nivel, en particular los principios más
importantes para la estructuración de datos e instrucciones. La estruc-
turación de datos representa un constituyente común de los cinco len-
guajes de programación; la estructuración de instrucciones, sin embar-
go, es tan sólo una característica importante del ST.
Una expresión es un constituyente elemental para la formulación de
instrucciones. Una expresión consiste en operadores y operandos. Los
operandos que aparecen con más frecuencia son datos, variables o
invocaciones a funciones. Sin embargo, un operando también puede
ser una expresión en sí mismo. La evaluación de una expresión sumi-
nistra un valor que corresponde a uno de los tipos de datos estándar o
a un dato de un tipo definido por el usuario. Por ejemplo, si X es un
número REAL, entonces la expresión SIN(X) proporciona también un
número del tipo REAL. La tabla B10.1 contiene un resumen de los
operadores.

Operación Símbolo Prioridad

Paréntesis (expresión) la más alta

Procesamiento de función Nombre de la función


(Lista de parámetros transferidos)
Ejemplo: LOG(X), SIN(Y)

Exponenciación **

Signo –
Complemento NOT

Multiplicación *
División /
Módulo MOD

Adición +
Subtracción –

Comparación <, >, ≤, ≥

Igualdad =
Desigualdad <>

AND Booleano &, AND

Tabla B10.1: OR Exclusivo Booleano XOR


Operadores del lenguaje
OR Booleano OR la más baja
Texto Estructurado

TP301 • Festo Didactic


B-109
Capítulo 10

Lo que sigue son ejemplos de expresiones:

SIN(X)
4*COS(Y)
A≤B
A+B+C

La evaluación de una expresión consiste en aplicar los operadores a


los operandos, en donde los operadores se evalúan en una secuencia
definida por su prioridad en la tabla B10.1. Un operador con una priori-
dad mayor es evaluado antes que un operador con una prioridad infe-
rior.
A, B, y C son variables del tipo de dato INT; A sume el valor 1, B el Ejemplo
valor 2 y C el valor 3. La evaluación de la expresión A+B*C proporcio-
na el valor 7. Si se desea una secuencia diferente que la especificada
por la prioridad, ello es posible utilizando los paréntesis. Utilizando los
valores numéricos descritos antes, la expresión (A+B)*C proporciona el
valor 9.
Si un operador tiene dos operandos, el operando de más a la izquierda
debe evaluarse primero. La expresión SIN(X)*COS(Y) se evalúa por lo
tanto en la secuencia: cálculo de la expresión SIN(X), cálculo de la
expresión COS(Y), seguida por el cálculo del producto SIN(X) y
COS(Y).
Como se ha demostrado en el párrafo anterior, una función sólo puede
ser invocada dentro de una expresión. La invocación es formulada es-
pecificando el nombre de la función y la lista de argumentos entre pa-
réntesis.

Festo Didactic • TP301


B-110
Capítulo 10

10.2 Instrucciones La tabla B10.2 contiene una lista de posibles instrucciones en el len-
guaje de Texto Estructurado. Una instrucción puede sobrepasar la lon-
gitud de una línea, con lo que el salto de linea será tratado de la
misma forma que un espacio en blanco.

Instrucción Ejemplo

Asignación := A := B;
CV := CV + 1;
Y := COS(X);

Invocación de bloques RS_Zumb(S := Fallo_broca, R1 := Pulsador);


de función Zumb := RS_Zumb.Q1;

Retorno de funciones y bloque RETURN;


sde función

Instrucciones de selección

IF D:= B*B – 4*A*C;


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

CASE CASE Voltage OF


101 ... 200: Display := too_large;
20 ... 100: Display := large;
2 ... 29: Display := normal;
ELSE
Display := too_small;
END_CASE;

Instrucciones de iteración

FOR Total := 0;
FOR I := 1 TO 5 DO
Total := Total + I;
END_FOR;

REPEAT Total := 0;
I := 0;
REPEAT
I := I + 1;
Total := Total + I;
Tabla B10.2: UNTIL I = 5
Instrucciones del lenguaje END_REPEAT;
Texto Estructurado

TP301 • Festo Didactic


B-111
Capítulo 10

Instrucción Ejemplo

Instrucciones de iteración
(continuación)

WHILE Total := 0;
I := 0;
WHILE I < 5 DO
I := I + 1;
Total := Total + I;
END_WHILE; Tabla B10.2:
Instrucciones en el
Terminación de bucles EXIT; lenguaje
Texto Estructurado
Instrucción nula ;; (continuaciòn)

Asignaciones
Una asignación es la forma más simple de una instrucción. Esta reem-
plaza el valor actual de la variable a la izquierda de := con el valor de
la expresión a la derecha de :=. Cada asignación termina con un punto
y coma. Una posible asignación (tabla B10.2) es A := B en donde el
valor de la variable B es asignado a la variable A. Como resultado de
la asignación CV := CV + 1, la variable CV es incrementada en 1 como
resultado de la expresión CV+1.

Bloques de función y funciones


En IEC 1131-3 se establece un mecanismo definido para la invocación
y también para la salida anticipada de una función o de un bloque de
función.
Como se ha descrito, una función es invocada sólo como parte de la
evaluación de una expresión. La propia invocación consiste en la espe-
cificación del nombre de la función, seguida por los parámetros de en-
trada entre paréntesis.
La invocación de un bloque de función es análoga a la especificación
del nombre de instancia (copia) del bloque de función. Esta es seguida
de una lista entre paréntesis consistente en la asignación de valores a
los parámetros de entrada. La especificación del nombre del parámetro
de entrada es obligatorio, los parámetros individuales de entrada pue-
den indicarse en cualquier secuencia.

Festo Didactic • TP301


B-112
Capítulo 10

Además, no es esencial para todos los parámetros de entrada que se


les asigne un valor en cada invocación. Si a un determinado parámetro
de entrada no se le asigna un valor en la invocación, se aplica el valor
del parámetro previamente asignado o el valor inicial.
La tabla B10.2 contiene un ejemplo de una invocación a un bloque de
función. Debe sonar un zumbador su una broca está defectuosa. El
estado del zumbador se almacena por medio de un bloque de función RS.
La instrucción RETURN sirve para permitir una salida anticipada de
una función o bloque de función. Lo que sigue es un ejemplo de la
utilización de la instrucción RETURN:

IF X < 0 THEN
Valor := -1;
Error := 1;
RETURN;
END_IF
Y := LOG(X);

Si el valor de X es menor de 0, el bloque conteniendo la secuencia de


instrucciones termina inmediatamente.

10.3 Instrucciones Las instrucciones de selección – conocidas también como instrucciones


de selección de derivación del programa – están disponibles en la forma de instruc-
ciones IF y CASE. Pueden seleccionarse diferentes grupos de instruc-
ciones y ejecutarse en relación con una condición definida. La unidad
del programa de organización puede ramificarse de diferentes formas.

Instrucción IF
La forma general de una instrucción IF es:

IF expresión booleana1 THEN instrucción(es)1;


[ ELSIF expresión booleana2 THEN instrucción(es)2; ]
[ ELSE instruccion(es); ]
END_IF;

TP301 • Festo Didactic


B-113
Capítulo 10

Las partes entre paréntesis rectangulares son opcionales, es decir,


pueden producirse en una instrucción IF, pero no necesariamente.
La instrucción IF más sencilla consiste en una construcción IF-THEN
(derivación simple).
Esto se demuestra por el siguiente ejemplo

IF X < 0 THEN X := –X;


END_IF;
Y := SQRT(X);

Si la condición que sigue a la palabra clave IF es cierta, se ejecutan


las instrucciones que siguen a la palabra clave THEN. Si la condición
no se cumple, las instrucciones en la parte THEN no se ejecutan.
En el caso de un ejemplo concreto esto significa: Si la variable X es
menor de 0, es decir, es negativa, se le añade un signo menos, con lo
que representa un valor positivo; si no es este el caso, se ejecuta
inmediatamente la función raíz cuadrada.
Una derivación simple puede conseguirse por medio de una construc-
ción IF-THEN-ELSE

Error := 0;
IF Pieza_ok THEN Numero := Numero + 1;
ELSE Error := 1;
END_IF;

Las instrucciones que siguen a la palabra clave THEN se ejecutan, si


la condición que sigue a la palabra clave IF se cumple; si la condición
no se cumple, se ejecutan las instrucciones formuladas tras la palabra
clave ELSE.
El ejemplo dado, trata con piezas de producción. Si la pieza es buena
(Pieza_ok = 1) se ejecuta la parte THEN, en este caso, la cantidad
(Numero) de piezas producidas correctamente se incrementa en 1; de
lo contrario se activa un bit para la detección del error.

Festo Didactic • TP301


B-114
Capítulo 10

Si debe programarse una derivación para más de dos ramificaciones,


puede emplearse una construcción IF-THEN-ELSIF. La tabla B10.2
ilustra esto por medio de un ejemplo, en donde se establecen las solu-
ciones de la ecuación de segundo grado AX2 + BX + C = 0. Si el
discriminante – en este caso la variable B – es menor de 0, se ejecuta
la subsiguiente parte THEN: no hay solución, es decir, Num_sol := 0.
Si no se cumple la primera condición, es decir, D es mayor o igual a 0,
será evaluada la condición que sigue a ELSIF: Si se cumple, es decir,
D igual a 0, se ejecutarán las instrucciones que siguen a la palabra
clave THEN: La única solución existente es especificada como X1.
De lo contrario (siendo D mayor de 0). se ejecutan las líneas que si-
guen a la instrucción ELSE: Se especifican las dos soluciones X1 y X2.

Instrucción CASE
Si debe hacerse una selección entre varios grupos de instrucciones
posibles, puede utilizarse la instrucción CASE.
La forma estándar de una selección múltiple con CASE es:

CASE Selector OF
Valor1: instruccion(es)1;
Valor2: instruccion(es)2;
...
ValorN: instruccion(es)n;
[ ELSE
instruccion(es); ]
END_CASE;

La instrucción CASE consiste en un selector, que suministra una varia-


ble del tipo INT durante su ejecución y una lista de grupos de instruc-
ciones. A cada grupo se le asigna un valor (etiqueta). Los valores es-
tán separados por comas si un grupo de instrucciones depende de
varios valores. Los valores también pueden representar variables del
tipo INT.

TP301 • Festo Didactic


B-115
Capítulo 10

Con la evaluación de la instrucción CASE, primero se determina el


valor del selector, seguido por la ejecución del primer grupo de instruc-
ciones a los cuales se aplica el valor del selector calculado. Sin el valor
del selector no está contenido en ninguno de los grupos de instruccio-
nes, se ejecutan las instrucciones que siguen a la palabra clave ELSE.
Si no hay ELSE, no se ejecuta ninguna instrucción.
En el ejemplo dado en la tabla B10.2, el texto para una instrucción se
selecciona en relación con el valor medido disponible. Los valores para
la selección de la instrucción son el tipo INT.

A menudo es necesario ejecutar instrucciones repetidas veces (bucles 10.4 Instrucciones


de programa). Si el número de repeticiones ha sido previamente defini- de iteración
do, se utiliza el bucle FOR, de lo contrario se utiliza en bucle REPEAT
o el WHILE.

Bucle FOR
La representación estándar para el bucle FOR es:
FOR Variable := Expresion TO expresion [ expresion BY ] DO
instruccion(es);
END_FOR;

La denominada variable de control se establece a un valor inicial espe-


cífico y se incrementa a cada bucle que se ejecuta hasta que la varia-
ble de control alcanza el valor de la variable final. Por lo tanto, un
simple bucle FOR se ejecuta de acuerdo con el siguiente mecanismo:

FOR variable de recuento := valor inicial TO valor final DO


Instruccion(es);
END_FOR;

Si no se especifican incrementos, como se ha formulado arriba, la va-


riable de control aumenta automáticamente en 1 a cada bucle comple-
to. Si se necesita un incremento diferente, esto puede especificarse
por la palabra clave BY, seguida por el valor deseado. Sin embargo, la
variable de control no puede ser cambiada dentro del bucle – es decir,
las instrucciones se ejecutan repetidamente. Además, la variable de
control, el valor inicial y el valor final deben ser expresiones del mismo
tipo de dato entero (INT, SINT, DINT).

Festo Didactic • TP301


B-116
Capítulo 10

La prueba para la terminación de la condición se hace al inicio de cada


iteración, de forma que las instrucciones no son ejecutadas si el valor
inicial excede del valor final. Una característica adicional de los bucles
FOR es que estos pueden anidarse en cualquier momento.
Un ejemplo de la aplicación de un bucle FOR se da en la tabla B10.2.
En este ejemplo, se realiza una suma de los números 1 al 5 a través
de un bucle. Cuando el bucle es ejecutado por primera vez, I tiene el
valor inicial 1, el valor de la variable Total es también 1. A la segunda
ejecución del bucle, I tiene el valor 2, la variable Total alcanza el valor
1+2 = 3 etc. Tras el quinto y último bucle, el valor de Total es 15, la
variable de recuento ha alcanzado el valor final 5, y con ello se com-
pleta el procesamiento del bucle.

Bucle REPEAT
A diferencia del bucle FOR, en el bucle REPEAT el número de iteracio-
nes no está previamente definido por medio de un valor final especifi-
cado. En su lugar, se utiliza una condición, denominada la condición
de terminación.
La forma del bucle REPEAT es como sigue

REPEAT
instruccion(es);
UNTIL Expresión Booleana
END_REPEAT;

La terminación del bucle REPEAT se verifica tras la ejecución de las


instrucciones de bucle. Por lo tanto el bucle se ejecuta por lo menos
una vez. La condición de terminación debe ser cambiada en el bucle,
ya que de lo contrario el bucle se ejecutaría indefinidamente. Por lo
tanto, es importante asegurar que el bucle puede realmente completar-
se. Debe comprobarse lo siguiente:
¿Incluye realmente la condición de terminación una variable, de for-
ma que la condición pueda suministrar el valor 1 (cierto)?
¿Se alcanza alguna vez la condición de terminación?

TP301 • Festo Didactic


B-117
Capítulo 10

Un ejemplo de utilización del bucle REPEAT se demuestra en la tabla


B10.2. Aquí también, se suman los primeros cinco números enteros no
negativos.
En la primera ejecución del bucle, I tiene el valor 1, el valor de Total es
también 1. Una comprobación de la condición de terminación muestra
que esto no se cumple, por lo que el bucle se ejecuta de nuevo. El
bucle se ejecuta repetidamente hasta que la condición de terminación
es cierta. Este será el caso hasta la quinta ejecución del bucle en la
que termina. Aquí también, el valor de la variable Total es 15.

Bucle WHILE
El bucle WHILE representa una segunda opción para la formulación de
iteraciones especificando una condición de terminación. La repre-
sentación estándar de un bucle WHILE es:

WHILE Expresión Booleana DO


instruccion(es);
END_WHILE;

Si la expresión Booleana de la palabra clave WHILE se cumple, se


ejecutan las instrucciones que siguen a la palabra clave DO. la termi-
nación del bucle WHILE es por lo tanto verificada antes de la ejecución
de las instrucciones del bucle. Por lo tanto, las instrucciones del bucle
puede ser que no se ejecuten. La condición de terminación debe cam-
biar en las instrucciones que se repiten.
Es importante que las condiciones del bucle se cumplan realmente
para que el procesamiento del bucle pueda terminarse.
La tarea de sumar los números 1 al 5 también puede realizarse utili-
zando un bucle WHILE (tabla B10.2). A diferencia del bucle REPEAT,
el bucle WHILE se ejecuta repetidamente hasta que la condición de
terminación es cierta. En realidad esto significa que el bucle se ejecu-
tan mientas I sea menor que 5. Si es igual o mayor que 5, el bucle
deja de procesarse.
En principio, un bucle REPEAT puede reemplazarse por un bucle WHI-
LE y viceversa.

Festo Didactic • TP301


B-118
Capítulo 10

Instrucción EXIT para terminar un bucle


La instrucción EXIT debe utilizarse para terminar iteraciones antes del
final o de que se cumpla la condición de terminación.
El siguiente programa ilustra el ejemplo de una instrucción EXIT:

S := 0;
FOR I := 1 TO 2 DO
FOR J := 1 TO 3 DO
IF error THEN EXIT;
END_IF;
S := S + J;
END_FOR;
(* Si se ejecuta la instrucción EXIT se realiza un salto a este punto *)
S := S + I;
END_FOR;

Si la instrucción EXIT se halla dentro de un bucle anidado, la salida


será desde el bucle más profundamente anidado en el que se halla la
instrucción EXIT. La siguiente instrucción a ejecutar es la instrucción
inmediatamente después del fin de bucle (END_FOR, END_WHILE,
END_REPEAT). En el ejemplo dado en la fig, B10.1, esta es la instruc-
ción "S := S + I;".
En el caso del ejemplo citado se aplica lo siguiente: Si el valor de la
variable booleana Error es igual a 0, el algoritmo para la variable S
proporciona el valor 15. Si la variable Error tiene el valor 1, el valor
calculado por S es 3.

TP301 • Festo Didactic


B-119
Capítulo 11

Capítulo 11

Diagrama de funciones secuencial

Festo Didactic • TP301


B-120
Capítulo 11

11.1 Introducción IEC 1131-3 define el diagrama de funciones secuencial (Sequential


Function Chart / SFC) como una herramienta de programación impor-
tante para sistemas de control. Su clara estructura de distribución pro-
porciona una forma de representación del programa especialmente cla-
ra para sistemas de control y como tal es una de las partes más impor-
tantes de IEC 1131-3.
Cada programa de un sistema de control secuencial consta de Etapas
y de Transiciones (condiciones de habilitación de la etapa). Aparte de
esto contiene otras informaciones importantes concernientes a la eje-
cución del programa y el tipo de continuación del programa.
Si la ejecución del programa no es única, sino que debe elegirse un
determinado camino entre varios posibles, la representación del diagra-
ma de funciones secuencial lo indica de una forma gráfica particular.

11.2 Elementos del La tarea fundamental de un diagrama de funciones secuencial es es-


diagrama de tructurar un programa de control en etapas individuales y en transicio-
funciones nes (condiciones de habilitación de la etapa), interconectadas por enla-
secuencial ces directos.
Esto requiere una representación en forma gráfica, que hace claramen-
te reconocible la intención del programa.
El diagrama de funciones secuencial IEC 1131-3 está estructurado en
forma de un pequeño juego de elementos gráficos básicos definidos,
de sencilla construcción. Estos elementos básicos deben combinarse
para crear un programa de control. El cómo se consigue esto, está
definido por unas pocas reglas sencillas en el estándar.
El lenguaje de diagrama de funciones secuencial está basado, en la
medida de lo posible, en el lenguaje de diagrama de funciones según
DIN 40 719 Parte 6 o IEC 848. Las únicas enmiendas hechas fueron
las necesarias para poder generar órdenes ejecutables para un PLC a
partir de un elemento de documentación. Un ejemplo de esto es el
calificador S. En la documentación estándar, este calificador se utiliza
para definir el modo de acción, es decir, la activación y desactivación
de un operando. Un PLC requiere órdenes únicas. Esta es la razón por
la que el diagrama de funciones secuencial emplea dos calificadores
para realizar los dos modos de acción: el calificador S para activar
(SET) y el R para desactivar (RESET).
Dado que los diagramas de función secuenciales requieren la memori-
zación de la información del estado (las etapas activas, etc., en un
momento dado), las únicas unidades de organización del programa
que pueden estructurarse utilizando estos elementos son los Progra-
mas y los Bloques de Función.

TP301 • Festo Didactic


B-121
Capítulo 11

a) Etapa con identificador ***


***

b) Etapa inicial con identificador ***


***

c) Bloque de acción , conteniendo las


acciones asignadas a una etapa
Campo a: Calificador de la acción a b c
Campo b: Nobre de la acción
d
Campo c: Variable de realimentación
Campo d: Contenido de la acción

d) Transisicón con identificador *** ***


o condición de transición ***

e) Derivación alternativa
Etapa_3

E F
Etapa_4 Etapa_5

f) Unión de rutas alternativas


Etapa_6 Etapa_7

G H

Etapa_8 Tabla B11.1:


Elementos de un diagrama
de funciones secuencial
(representaciòn gráfica)

Festo Didactic • TP301


B-122
Capítulo 11

Etapa_3 g) Derivación paralela (simultánea)

Etapa_4 Etapa_5

h) Unión de rutas paralelas


Etapa_6 Etapa_7

Tabla B11.1: M
Elementos del diagrama
de funciones secuencial Etapa_8
(representación gráfica,
continuación)

La Etapa
Una etapa contiene varias partes de ejecución del programa de control.
Las salidas solamente pueden ser activadas o desactivadas las etapas.
Esta significa también que todas las variables de corrección que se
emiten a la planta conectada con el programa de control, sólo pueden
programarse en estas etapas.
La parte de ejecución asignada a una etapa, las denominadas accio-
nes, son formuladas dentro de los bloques de acción.
Una etapa puede estar activa, con su acción asociada siendo ejecuta-
da en aquel momento, o inactiva. De esta forma, el estado del sistema
conectado está definido en cualquier momento por el juego de etapas
activas en el programa de control.
Como se muestra en la tabla B11.1a, una etapa se representa gráfica-
mente por un bloque. Cada etapa tiene un nombre simbólico, que pue-
de ser libremente seleccionado por el usuario. El mismo juego de re-
glas se aplica para el nombre de la etapa que el mencionado para los
identificadores simbólicos: un nombre simbólico puede consistir sólo de
letras mayúsculas y minúsculas, números y el sigo de subrayado, y
debe empezar siempre con una letra o el signo de subrayado.

Fig. B11.1: Motor_3_activo Vacío_inactivo


Etapas con nombres
de etapa

TP301 • Festo Didactic


B-123
Capítulo 11

Todas las etapas de un programa o bloque de función formuladas en


un diagrama de funciones secuencial deben tener nombres diferentes.
Aunque dos etapas tengan las mismas partes de ejecución, deben ser
designadas dos veces.
La razón de esto es la siguiente:
La información se memoriza en el control para cada etapa. La asigna-
ción única de esta información a una etapa así como el acceso a estos
datos se hace a través del nombre de la etapa.
El usuario puede así obtener información en relación a:
el estado actual de una etapa (activa, inactiva),
el tiempo que una etapa ha estado activa desde el inicio.
La tabla B11.2 ilustra el acceso a los datos de la etapa.

a) Motor_3_activo.X Variable booleana indicando si la etapa Motor_3_activo


se halla activa (Motor_e_activo.X=1) o inactiva (=0)
Tabla B11.2:
b) Motor_3_activo.T Variable del tipo TIME indicando el tiempo que ha
Información relativa a una
estado activa la etapa Motor_3_activo desde el inicio.
etapa

La evaluación de los datos citados puede ser útil en relación a la su-


pervisión del sistema conectado. Pueden también surgir aplicaciones
que requieran el uso de variables en el propio programa de control.

Festo Didactic • TP301


B-124
Capítulo 11

Un caso especial dentro del elemento etapa es la denominada etapa


principal (tabla B11.1b). Esta se dibuja gráficamente por medio de una
doble línea.
Cada red en un diagrama de funciones secuencial tiene una sola etapa
inicial, que es ejecutada como primera etapa dentro de una red.
Como ya se ha mencionado, la importancia de un diagrama de funcio-
nes secuencial reside en su representación gráfica claramente estruc-
turada de un programa de control. Sin embargo, también puede ser útil
representar estructuras secuenciales textualmente. El estándar IEC
1131-3 proporciona un equivalente de representación textual de ele-
mentos SFC para ello, que es como sigue para el elemento etapa:

STEP Motor_3_activo
(* Contenido de la etapa *)
END_STEP

STEP Vacio_inactivo
Fig. B11.2: (*Contenido de la etapa*)
Representación textual END_STEP
de las etapas

La representación textual de estructuras secuenciales puede, según el


fabricante, ser parte de la documentación de un programa de control;
este tipo de distribución de las estructuras secuenciales no tiene ningu-
na restricción en cuanto al formato y juego de caracteres para la im-
presión.
Ademas, para programas de control en representación textual estanda-
rizada, puede ser posible que sean portátiles entre PLCs de diferentes
fabricantes.

La transición
Una transición o condición de habilitación de una etapa contiene las
condiciones lógicas que permiten la transición, de acuerdo con el pro-
grama, desde una etapa a la siguiente.
Como puede verse en la tabla B11.1d, la transición está representada
por una línea horizontal que cruza el enlace vertical entre etapas. Cada
transición tiene una condición de transición, que es el resultado de la
evaluación de una expresión booleana. La condición de transición pue-
de formularse en cualquiera de los lenguajes IEC 1131-3, tales como
LD, FBD, IL o ST.

TP301 • Festo Didactic


B-125
Capítulo 11

Una condición de transición o en cierta y entonces tiene el valor 1, o


es falsa y tiene el valor 0. Solamente si la condición es cierta, se prosi-
gue la ejecución del programa o el bloque de función en este punto.
Si una condición es siempre cierta, puede ser identificada simplemente
con el número 1 en la transición. Las condiciones de transición de este
tipo que son siempre ciertas pueden producirse frecuentemente en un
programa o bloque de función en un diagrama de funciones secuencial.

Condición de transición siempre cierta 1

Condición de transición siempre falsa 0


Tabla B11.3:
Transiciones especiales

Interconexión de etapas y condiciones de habilitación de etapas


En la práctica, no puede conseguirse mucho con una simple etapa o
con una transición. Por lo tanto, un programa de control representado
en diagrama de funciones secuencial estará compuesto siempre por
una sucesión de muchas transiciones y etapas.
Una secuencia de transiciones y etapas se denomina cadena de eta-
pas, secuencia o también recorrido.

Etapa_5

Etapa_6

Etapa_7

Fig. B11.3:
F
Etapas y transiciones
en secuencia

Festo Didactic • TP301


B-126
Capítulo 11

Aquí, las transiciones y etapas deben alternarse continuamente. El re-


corrido lógico a través de esta representación es siempre de arriba a
abajo. El siguiente comportamiento puede verse en el ejemplo mostra-
do en la figura B11.3:
Asumiendo que la etapa Etapa_5 está activa, la Etapa_5 permanece
activa hasta que la transición D sea cierta. El cumplimiento de las con-
diciones de transición producen la desactivación de la Etapa_5 y la
activación de la siguiente Etapa_6. En el momento en que la Etapa_6
está activa, se examina la transición E de control. Si la transición E es
cierta, termina la Etapa_6 y se procesa la Etapa_7, etc.

La derivación alternativa
A menudo es necesario programar una derivación en un programa de
control, con lo que el programa puede continuar en diferentes lugares
en este punto.
La derivación alternativa a diferentes recorridos se representa por el
correspondiente número de transiciones tras la línea horizontal. En el
ejemplo de la tabla B11.1e, se sigue la ruta hacia la Etapa_4 si la
transición E es cierta y la F falsa, o hacia la Etapa_5, si la transición F
es cierta y la E falsa.
La correspondiente contrapartida a la derivación alternativa es la unión
de rutas alternativas, en las que las transiciones deben situarse siem-
pre sobre la línea horizontal.
El flujo del programa en la tabla B11.1f pasa de la Etapa_6 a la Eta-
pa_8 si la transición G es cierta o de la Etapa_7 a la Etapa_8 si la
transición H es cierta. El factor decisivo aquí es la ruta que haya segui-
do el control para alcanzar esta unión de rutas alternativas. Si esta se
realiza a través de la Etapa_6, la condición H no tiene significado algu-
na. Análogamente si el programa de control ha seguido la ruta hacia la
Etapa_7, la condición G no se evalúa, ya que no interviene.
Hay que observar que en el caso de una derivación alternativa, el pro-
grama de control sigue solamente una de las rutas. Por ello no es
obligatorio que las transiciones de las derivaciones sean mutuamente
excluyentes.

TP301 • Festo Didactic


B-127
Capítulo 11

Si no existen otras especificaciones, se sigue la ruta que se halla más


a la izquierda. Por lo tanto, la prioridad para el cálculo de las transicio-
nes se realiza de izquierda a derecha.
Esta es probablemente las variante más comunmente empleada por
los fabricantes de controles para la consecución de derivaciones alter-
nativas.
Por todo ello, una sección de un programa o bloque de función con
una triple derivación alternativa podría ser como sigue:

Etapa_3

D E F
Etapa_4 Etapa_5 Etapa_6

G H I
Fig. B11.4:
Derivación alternativa:
Etapa_7 Procesamiento de
transiciones de
izquierda a derecha

Sin embargo, el estándar IEC 1131-3 también ofrece la facilidad para


el usuario de definir la prioridad durante la ejecución de las transicio-
nes. La definición de la funcionalidad de las derivaciones alternativas
en IEC 848, que requiere que el usuario programe una exclusión mú-
tua de las condiciones de transición, está también soportada por IEC
1131-3 como un tercer método.

Festo Didactic • TP301


B-128
Capítulo 11

A diferencia de los ejemplos anteriores, los números en la ruta, en la fig.


B11.5 indican la prioridad definida por el usuario para la evaluación de la
transición. La ruta con el número más bajo tiene la mayor prioridad.

Etapa_7

2 1
D E
Fig. B11.5:
Derivación alternativa Etapa_8 Etapa_9
con prioridad definida
por el usuario

Así, la transición evoluciona de la Etapa_7 a la Etapa_9, si las transi-


ciones D y E son ciertas, o de la Etapa_7 a la Etapa_8 si la transición
D es cierta y la transición E es falsa.
Una estructura en bucle puede considerarse como un caso especial de
derivación alternativa, en la que uno o varias etapas regresan a una
etapa precedente.

Etapa_3

Etapa_4

D
Etapa_5

E F

Fig. B11.6: Etapa_6


Representación
de un bucle

En la fig. B11.6, el flujo del programa evoluciona desde la Etapa_5 a la


Etapa_4 si la condición F es cierta y la E es falsa. De esta forma
puede repetirse la evolución de la secuencia Etapa_4 a Etapa_5.

TP301 • Festo Didactic


B-129
Capítulo 11

La derivación paralela
Un elemento funcional completamente diferente en el diagrama de fun-
ciones secuencial es la derivación paralela.
Esta se representa por una doble línea y una transición encima de esta
línea (tabla B11.1g). Cuando se cumple la transición B, se produce una
evolución de la Etapa_3 a la Etapa_4 y Etapa_5. Estas dos etapas se
ejecutan simultáneamente.
Una derivación en paralelo determina que los caminos conectados de-
ben ser activados simultáneamente y deben evolucionar inde-
pendientemente uno de otro. En el caso opuesto, al finalizar los recorri-
dos paralelos, la transición se representa siempre bajo la doble línea
horizontal.
La unión paralela contiene un mecanismo para la sincronización. Sólo
cuando los recorridos procedentes de arriba se han ejecutado comple-
tamente, se evalúa la subsecuente transición. Si es cierta, se realiza la
transición a la siguiente etapa. En la tabla B11.1h esto significa: ambas
etapas Etapa_6 y Etapa_7 deben haber transcurrido antes de la eva-
luación de la transición F.

Etapa_4 Etapa_5 Etapa_6

G
Etapa_7

H Fig. B11.7:
Representación de una
derivación en paralelo triple

Cuando se ha cumplido la condición de habilitación F, los tres recorri-


dos con las etapas Etapa_4, Etapa_5 y Etapa_6 y Etapa_7 deben evo-
lucionar simultáneamente.
Dependiendo del contenido de la transición G entre las dos etapas
Etapa_6 y Etapa_8, el programa de control puede tener que esperar
hasta que se cumpla la transición G. Por lo tanto, la transición inferior
H sólo se examina si el recorrido de la derecha ha evolucionado com-
pletamente. Este sólo puede suceder si la transición G en este recorri-
do se ha cumplido.

Festo Didactic • TP301


B-130
Capítulo 11

11.3 Transiciones Cada transición es asignada a una condición de transición (condición


de habilitación de la etapa). Esto lo proporciona el resultado de una
ecuación Booleana.
En el caso más simple, una condición de habilitación de la etapa pue-
de ser especificada por la interrogación de una entrada del control u
otra variable booleana. Sin embargo, es también posible programar
condiciones de habilitación de la etapa considerablemente más com-
plejas.
Formulación de condiciones de transición
Las condiciones de transición pueden programarse en los siguientes
lenguajes
Diagrama de contactos
Diagrama de funciones
Lista de instrucciones
Texto estructurado
El contenido de la condición de transición o bien está especificada di-
rectamente en la transición (véase fig. B11.8) o enlazada con la transi-
ción a través de un nombre de transición (véase fig. B11.9).

a) Condición de transición Etapa_3


en lenguaje LD %IX3 %MX1

Etapa_4

b) Condición de transición Etapa_3


en lenguaje FBD
%IX3 &
%MX1
Etapa_4

c) Condición de transición Etapa_3


en lenguaje ST

%IX3 & %MX1


Fig. B11.8:
Especificación directa Etapa_4
de una condición
de transición

TP301 • Festo Didactic


B-131
Capítulo 11

Aquí, dos resultados están conectados a través de una función lógica


AND, con lo que la condición de transición no se cumplirá hasta que
ambas entradas %IX3 y el flag %MX1 asuman el valor 1.
La señal pasa de izquierda a derecha en los lenguajes gráficos LD y
FBD, la parte LD o FBD se define a la izquierda, junto al símbolo de la
transición (línea horizontal).
La expresión Booleana en el lenguaje ST se define a la derecha del
símbolo de transición.

Etapa_3

Nombre de la transición Tran_3_4

Etapa_4

a) Condición de transición TRANSITION Tran_3_4:


en lenguaje LD %IX3 %MX1 Tran_3_4

END_TRANSITION

b) Condición de transición TRANSITION Tran_3_4:


en lenguaje FBD
%IX3 & Trans_3_4
%MX1

END_TRANSITION

c) Condición de transición TRANSITION Tran_3_4:


en lenguaje IL LD %IX3
AND %MX1
END_TRANSITION

d) Condición de transición TRANSITION Tran_3_4: Fig. B11.9:


en lenguaje ST : = %IX3 & %MX1; Asignación de una
condición de transición,
END_TRANSITION especificando un nombre
para la transición

Festo Didactic • TP301


B-132
Capítulo 11

Si se utiliza un nombre de transición como mecanismo de asignación


de una condición de transición, el nombre de la transición debe referir-
se a una construcción TRANSTION...END_TRANSITION.
La condición de transición se formula dentro de esta construcción y el
resultado booleano es reproducido en el nombre de la transición.
Los nombres de transición dentro de una unidad de organización de
programa, como los nombres de las etapas, deben diferir unos de
otros. Un nombre se formula de acuerdo con las reglas IEC 1131-3
aplicables a los identificadores.
IEC 1131-3 define también una representación textual equivalente para
el elemento gráfico Transición. La verdadera condición de transición se
programa o bien en lenguaje de lista de instrucciones o en texto es-
tructurado.

a) Condición de transición formulada en lenguaje ST

STEP Etapa_3: END_STEP


TRANSITION FROM Etapa_3 TO Etapa_4
:= %IX3 & %MX1;
END_TRANSITION
STEP Etapa_4: END_STEP

b) Condición de transición formulada en lenguaje IL

STEP SEtapa_3: END_STEP


TRANSITION FROM Etapa_3 TO Etapa_4
LD %IX3
AND %MX1;
Fig. B11.10: END_TRANSITION
Representación STEP Etapa_4: END_STEP
textual de transiciones

TP301 • Festo Didactic


B-133
Capítulo 11

Una etapa representa la parte de ejecución de un diagrama de funcio- 11.4 Etapas


nes secuencial. Sólo dentro de las etapas puede un programa o un
bloque de función, dentro de un control, influir en el sistema conectado
a través de sus salidas, activando o desactivando las salidas.
Estructura de una etapa dentro de las acciones
Cada etapa puede contener varias acciones. Cada una de estas accio-
nes realiza una tarea para el sistema conectado. La estructura de una
etapa en acciones individuales inicialmente es tan sólo una función de
ordenación. Esto hace más clara la etapa, ya que crea límites clara-
mente definidos entre las etapas de las tareas individuales. Sin embar-
go, ya que cada acción tiene asignado un calificador, la estructuración
de una etapa en acciones individuales también define una funcionali-
dad adicional.
Una etapa que no contenga ninguna acción puede ser considerada
como un caso especial. Su única finalidad es separar dos condiciones
de habilitación de etapa, que van a ser evaluadas consecutivamente.
Ello permite una función de espera, en la que la primera condición de
habilitación de la etapa tiene prioridad, independientemente de si la
segunda se ha cumplido o no, y la segunda condición de habilitación
de la etapa debe cumplirse a continuación.
Bloques de acción
La programación gráfica de etapas se realiza a través de bloques de
acción individuales. cada acción es, por lo tanto, conectada con una
característica particular.
Un bloque de acción es representado en forma tabular, que contiene
posiciones fijas para la especificación del calificador de la acción, el
nombre de la acción y el contenido de la acción. Además, puede tam-
bién introducirse una variable de realimentación.

a b c
d

Campo a: Calificador de la acción:


N = no memorizante D = retardado en el tiempo
S = activar, memorizante DS = retard. en tiempo y memoriz.
R = desactivar SD = memoriz y retardado en tiempo
P = pulsó (único) SL = memoriz. y limitado en tiempo
L = limitado en el tiempo

Campo b: Nombre de la acción


Campo c: Variable de realimentación Fig. B11.11:
Campo d: Contenido de la acción Representación gráfica
de un bloque de acción

Festo Didactic • TP301


B-134
Capítulo 11

De nuevo, el nombre b de una acción representa un identificador sim-


bólico estándar, que actúa puramente como un medio de diferenciación
y no tiene más significado.
Ya que la lista de acciones a menudo forma parte de una etapa, tam-
bién puede ser representada junto con esta.

Etapa_8 L Acción_1 Var_1


T#10s
Var_1
P Acción_2
N Acción_3
Fig. B11.12:
Lista de bloques de acción

La asignación de acciones a una etapa en forma gráfica se realiza por


medio de bloques de acción.
Sin embargo, la asignación también puede formularse textualmente. En
el caso del ejemplo mostrado en la fig, B11.12, esto resulta en la si-
guiente representación:

STEP Etapa_8
Acción_1( L, T#10s, Var_1 );
Acción_2( P );
Fig. B11.13: Acción_3( N );
Representación textual de END_STEP
una etapa con acciones

El contenido de una acción, es decir, la propia acción, puede definirse


por medio de varios métodos:
Especificación de una variable booleana
Programación en lista de instrucciones
Programación en texto estructurado
Diagrama de contactos
Diagrama de funciones
Diagrama de funciones secuencial

TP301 • Festo Didactic


B-135
Capítulo 11

La utilización de una variable booleana representa una forma simple y


frecuentemente utilizada de una acción. En muchos casos, sin embar-
go, se requieren acciones más complejas conteniendo una conexión
lógica útil de información diferente.
En los ejemplos B11.14 a B11.16, la salida %QX1.2 se activa, si la
entrada %IX0.5 está activa o si están activos los flags %MX1 y %MX3.
Si no es este el caso, la salida %QX1.2 se desactiva.

Acción_2

%IX0.5 >=1 %QX1.2


%MX1 &
%MX3
Fig. B11.14:
Formulación de acciones:
declaración gráfica en FDB

Acción_2
%IX0.5 %QX1.2

%MX1 %MX3 Fig. B11.15:


Formulación de acciones:
Declaración gráfica en
lenguaje LD

Lenguaje IL Lenguaje ST

ACTION Acción_2: ACTION Acción_2:


LD %IX0.5 %QX1.2 := %IX0.5 OR (%MX1 AND %MX3);
OR ( %MX1 END_ACTION
AND %MX3
)
ST %QX1.2
Fig. B11.16:
END_ACTION
Formulaciòn de acciones:
Declaración textual

En lugar de una red individual de una secuencia de instrucciones, tam-


bién son posibles varias redes dentro de una acción en lenguajes tex-
tuales. De esta forma, es posible incorporar una gama muy amplia de
acciones en una etapa y la propia etapa puede seguir contiendo es-
tructuras secuenciales (fig. B11.17).

Festo Didactic • TP301


B-136
Capítulo 11

Acción_4

Marcha

Pieza_presente

Color L Determinar_color
T#1s
C_ok
Fig. B11.17:
Formulación de acciones:
Inclusión de elementos
SFC en una acción

Si hay campos individuales de un bloque de acción que no se necesi-


tan, tales como por ejemplo, si una variable Booleana se utiliza como
contenido de la acción, es permisible una posterior simplificación en la
representación de un bloque de acción.

Fig. B11.18: S %QX12


Representación simplificada
de un bloque de acción

Una variable de realimentación (campo c) puede introducirse en cada


bloque de acción. Las variables de realimentación son programadas
por el usuario dentro de las acciones e indican su condición de finaliza-
ción, desbordamiento de tiempo o error. La Fig, B11.19 indica una apli-
cación recurrente que se produce con frecuencia. Aquí, la secuencia de
etapas y transiciones está estructurada de forma tal que la acción de un
paso establece la subsecuente condición de habilitación de la etapa.

Etapa_2 S Cilindro_1 Pos_1

Pos_1

Etapa_3 S Cilindro_2
S Vacio_activo Vac_on
Vac_on

Etapa_4 R Cilindro_1 Pos_2

Pos_2
Fig. B11.19:
Uso de variables
de realimentación

TP301 • Festo Didactic


B-137
Capítulo 11

Modo de acción de los calificadores de acción


El tipo de ejecución de las acciones programadas por el usuario se
define por el calificador de acción asociado.
IEC 1131-3 define los siguientes calificadores de acción
N Non-stored (no memorizante)
S Set (Activación - Memorizante)
R Reset (Desactivación - Memorizante)
P Pulse (Pulso único)
L Time limited (Limitado en el tiempo)
D Time delayed (Retardado en el tiempo)
DS Time delayed and stored (Retardado en el tiempo y memorizante
SD Stored and time delayed (Memorizante y retardado en el tiempo)
SL Stored and time limited (Memorizante y limitado en el tiempo)
Cada acción es el equivalente de exactamente uno de estos calificado-
res. Además, los calificadores L, D, DS, SD, SL tienen una duración
asociada del tipo Time (Tiempo), ya que estos definen un comporta-
miento temporal de la acción.
Los calificadores tienen un significado definido con precisión. Si una
etapa está inactiva, no se ejecuta ninguna de las acciones de la etapa.
Dentro de una etapa activa, se aplican los siguientes métodos para la
ejecución de un calificador de acción.

N No memorizante
la acción se ejecuta mientras la etapa esté activa.

N %QX12

Etapa 1
activa 0
1
%QX12
0 Fig. B11.20:
Acción no memorizant

En el ejemplo citado, la salida %QX12 está activada mientras la etapa


que contiene esta acción esté activa. Al finalizar la etapa, es decir,
cuando se cumple la condición de habilitación de la etapa siguiente, la
salida se desactiva automáticamente.

Festo Didactic • TP301


B-138
Capítulo 11

S Set - Activar
la ejecución de la acción de activación se ejecuta permanentemente
(activación memorizante).

S %QX12

Etapa 1
activa 0
Fig. B11.21: 1
%QX12
Acción Set 0
(activar - memorizante)

En este ejemplo, la salida %QX12 se activa mientras la etapa conte-


niendo esta acción esté activa. La salida también permanece activa,
cuando la subsecuente condición de habilitación de la etapa se cumple
y la etapa considerada ya no sigue activa. La salida solamente puede ser
desactivada en otro paso, en otra acción, definida con el calificador R.

R Reset - Desactivar
se cancela una acción de activación previa (realizada en otra etapa)
con el calificador S, DS, SD, L o SL.

R %QX12

Etapa 1
activa 0
Fig. B11.22: 1
%QX12
Acción Reset 0
(desactivar - memorizante)

La salida %QX12 ha sido activada en otra etapa, en una acción con


uno de los calificadores S, DS, SD, L o SL y desactivada de nuevo a
través de esta acción

TP301 • Festo Didactic


B-139
Capítulo 11

P Pulso (único)
ejecución única de la acción

P %QX12

Etapa 1
activa 0
1
%QX12
0 Fig. B11.23:
Acción única

Durante la ejecución inicial de la acción, dentro del procesamiento de


la etapa, la salida %QX12 se activa exactamente un ciclo del control y
se desactiva de nuevo. La salida sólo podrá activarse de nuevo tras la
salida y una nueva entrada en la etapa.

L Limitada en el tiempo
La acción se ejecuta durante un tiempo específico.

L
%QX12
T#10s

Etapa 1
activa 0
1
%QX12
0 Fig. B11.24:
10s 10s Acción limitada
en el tiempo

La salida %QX12 se activa durante 10 segundos y a continuación se


desactiva. Esto requiere que la etapa que contenga esta acción esté
activa por un período de por lo menos 10 segundos. Si las condiciones
de habilitación de la etapa siguiente se cumplen antes de este tiempo,
el tiempo de acción de la salida también se reduce, ya que en cual-
quier caso es desactivada al final de la etapa.

Festo Didactic • TP301


B-140
Capítulo 11

D Retardada en el tiempo
La ejecución de la acción es retardada hasta el final de la etapa.

D
%QX12
T#10s

Etapa 1
activa 0
1
%QX12
Fig. B11.25: 0
Acción retardada 10s 10s
en el tiempo

Aquí, la salida %QX12 no se activa hasta que hayan expirado 10 se-


gundos y permanece activa hasta que la etapa pasa a estar inactiva.
Si el tiempo que está activada la etapa es inferior a los 10 segundos,
la salida no será activada durante el procesamiento de esta etapa.

DS Retardada en el tiempo y memorizante


La ejecución de la acción es retardada en el tiempo y mantenida
más allá del final de la etapa.

DS
%QX12
T#10s

Etapa 1
activa 0
10s 10s

1
%QX12
0

R 1
Fig. B11.26: activo 0
Acción retardada en el (en otra etapa)
tiempo y memorizante

En este ejemplo también, la salida %QX12 se activa una vez transcu-


rridos 10 segundos. Sin embargo, permanece activada hasta que se
haya completado la etapa. Debe ser explícitamente desactivada a tra-
vés de otra acción con el calificador R (en otro paso). Si la duración
de la etapa no es suficientemente larga, en este caso, menos de 10
segundos, la salida nunca será activada.

TP301 • Festo Didactic


B-141
Capítulo 11

SD Memorizante y retardada en el tiempo


la ejecución de la acción es retardada en el tiempo y se mantiene
más allá del final de la etapa

SD
%QX12
T#10s

Etapa 1
activa 0
10s 10s

1
%QX12
0

R 1
activo 0 Fig. B11.27:
(en otra etapa) Acción memorizante y
retardada en el tiempo

Aquí también, la salida %QX12 se activa transcurridos los 10 segun-


dos. Permanece activada después del final de la etapa y solamente
puede ser desactivada explícitamente a través de otra acción con el
calificador R en otra etapa. A diferencia del modo de acción del califi-
cador DS, no es necesario que la etapa permanezca activa más allá
de la duración del retardo para que la salida esté activa.

SL Memorizante y limitada en el tiempo


la acción es ejecutada continuamente por un periodo específico.

SL
%QX12
T#10s

Etapa 1
activa 0
10s 10s

1 Fig. B11.28:
%QX12
0 Acción memorizante y
limitada en el tiempo

La salida es activada durante 10 segundos y a continuación es


desactivada de nuevo. A diferencia del modo de acción del califi-
cador L, no es necesario que el paso esté activo por un mínimo
de 10 segundos.

Festo Didactic • TP301


B-142
Capítulo 11

Si la siguiente condición de habilitación del paso se cumple antes de


que expire este tiempo, es decir, si la etapa está activa menos de 10
segundos, el período activo de la salida no se ve afectado por esto. La
salida puede ser desactivada en cualquier momento a través de otra
acción con el calificador R.
El modo de acción de los calificadores individuales ha sido ilustrado en
el ejemplo de una variable booleana como acción. Si se necesitan ac-
ciones más complejas, es decir, no booleanas, el tipo de ejecución es
diferente a las variables booleanas examinadas previamente. Las re-
des son continuamente procesadas mientras la etapa esté activa. Sin
embargo, así que se cumple la siguiente condición de habilitación del
paso, se realiza una vez más la última y única ejecución de las redes.
Esta definición permite la desactivación objetiva de variables al final del
procesamiento de una acción, cuando se utiliza el calificador N para
acciones más complejas.

Etapa_5 N Acción_1

&
%IX1.0 %QX1.0
%MX12
Step_5.X

SR_1
SR
%IX1.5 S1 Q1 %QX1.5
R
Fig. B11.29:
Acción compleja en
lenguaje FBD

Si la Etapa_5 es desactivada, el último procesamiento de la red se


realiza con el valor 0 para el flag de etapa Etapa_5.X. Esto hace que
la salida %QX1.0 se desactive a 0 cuando se sale de la etapa.

TP301 • Festo Didactic


B-143
Capítulo 11

Descripción del problema 11.5 Ejemplo


Unos componentes se trasladan juntos en una cinta transportadora ha-
cia una estación de procesamiento doble. Las unidades de taladrado y
avellanado descienden cuando el componente se halla en posición. Se
utilizan dos cilindros 1.0 y 2.0 para mover las dos herramientas de
mecanizado. El dispositivo de transporte es indexado una posición de
trabajo a través de un tercer cilindro 3.0.
Dos sensores B1 y B2 están dispuestos para detectar si la pieza se
halla debajo de la broca o del avellanador. Las profundidades necesa-
rias de taladrado y avellanado se detectan a través de los sensores de
posición B6 y B7. Las posiciones iniciales del cilindro de transporte,
taladrado y avellanado pueden detectarse a través de los estados de
los sensores B3, B4 y B5. El sensor B8 indica el avance del cilindro de
transporte.
El sistema no puede garantizar siempre que habrá una pieza bajo la
broca y el avellanador en cada movimiento de transporte. Por ello,
debe interrumpirse el procesamiento en el caso de que ho hubiera pie-
za. Si faltan ambas piezas al mismo tiempo, no deberá descender nin-
guna de las herramientas.

1.0 2.0

B3 B4

B6 B7

B1 B2

3.0

B5 B8 Fig. B11.30:
Croquis de situación

Festo Didactic • TP301


B-144
Capítulo 11

Lista de asignaciones

Denominación Entrada PLC/ Tarea


del componente Salida PLC

B1 %IX0.1 Detectar la pieza bajo el taladro


B2 %IX0.2 Detectar la pieza bajo el avellanador
B3 %IX0.3 Posición inicial del taladro (arriba)
B4 %IX0.4 Posición inicial del avellanador (arriba)
B5 %IX0.5 Posición inicial del transportador
B6 %IX0.6 Taladro en posición baja
B7 %IX0.7 Avellanador en posición baja
B8 %IX0.8 Cilindro de transporte extendido
Y1 %QX0.1 Bajar taladro
Y2 %QX0.2 Bajar avellanador
Tabla B11.4: Y3 %QX0.3 Alimentar transporte
Lista de asignaciones

Problema
Debe diseñarse un programa de control para esta tarea. La solución es
conseguir una configuración por medio de un diagrama de funciones
secuencial. Las condiciones y acciones deben entonces aplicarse a las
etapas y las transiciones. El programa debe ejecutarse cíclicamente.
Para simplificar, puede asumirse que no hay necesidad de utilizar tiem-
pos para compensar las tolerancias de posicionado.

TP301 • Festo Didactic


B-145
Capítulo 11

Solución

Marcha R Y1
R Y2
B3 B4 B5 R Y3

B1 B1 B2 B2
/ /

Taladrado S A Avellanado S B
B6 B7

T_arriba R A A_arriba R B
B3 B4

Transporte S C
B8

Fig. B11.31:
Programa en lenguaje
secuencial

Festo Didactic • TP301


B-146
Capítulo 11

Todos los cilindros son llevados a su posición inicial en una primera


etapa. Al final del programa, esta etapa se utiliza también para hacer
retroceder el cilindro que ha avanzado durante la última etapa para el
dispositivo de transporte.
Cuando todos los cilindros se hallan en su posición inicial, empieza
una derivación en paralelo con dos secuencias, una para taladrar y
otra para avellanar. En este ejemplo, ambas secuencias contienen las
mismas tareas, pero utilizan diferentes herramientas. La secuencia de
la izquierda hace bajar la broca y la eleva de nuevo, y la secuencia de
la derecha hace lo mismo con el avellanador. Las secuencias difieren
meramente en la utilización que hacen de sensores y actuadores. Al
principio y al final de ambas secuencias se ha incorporado una etapa
vacía para mantener la secuencia necesaria de etapas y transiciones.
El programa para el taladrado evoluciona como se indica a continua-
ción. Detecta si hay pieza disponible a través del estado del sensor B1.
Si tiene señal 1, la pieza se halla en posición y empieza el proceso de
taladrado. De lo contrario se elude todo el proceso de taladrado a tra-
vés de una ruta alternativa. El taladrado del agujero empieza haciendo
descender la broca activando Y1. Cuando se alcanza la posición más
baja, es decir, cuando ha finalizado el taladrado del agujero, el sensor
B6 emite una señal 1. En la siguiente etapa, la broca regresa a su
posición normal en la parte superior. Esta parte de la derivación alter-
nativa termina cuando la broca alcanza la parte superior. El programa
sigue el mismo procedimiento para el avellanado.
Cuando ambas secuencias paralelas se han completado, se produce
una transición en el programa a la etapa de transporte. La necesaria
sincronización – es decir, taladrado y avellanado finalizados – está
asegurada por el diagrama de funciones secuencial y por lo tanto no
requiere ningún tratamiento especial. En este punto se inserta siempre
una condición de habilitación del paso que sea cierta para alternar las
etapas y las transiciones.
En la última etapa Transporte, el cilindro del dispositivo de transporte
avanza y se espera que se haya completado la acción en la siguiente
condición de transición. A continuación, todo el proceso empieza de
nuevo.

TP301 • Festo Didactic


B-147
Capítulo 12

Capítulo 12

Sistemas de control lógico

Festo Didactic • TP301


B-148
Capítulo 12

12.1 ¿Qué es un Los sistemas de control lógico son controladores programados a través
sistema de del uso de operaciones booleanas. Todas las operaciones lógicas son
control lógico? procesadas y ejecutadas durante un ciclo de máquina.
Las tareas de control realizadas típicamente en forma de control lógico,
se caracterizan por el hecho que no se asigna una duración de tiempo
al proceso, sino que todas o la mayor parte de las condiciones del
programa de control son examinadas simultáneamente.
Por ello pueden encontrarse ejemplos de sistemas de control lógico en
aplicaciones de PLC, en donde son importantes los aspectos de segu-
ridad. A menudo se requiere que la supervisión de ciertas tareas sea
permanente e independiente de la ejecución del proceso en relación
con el tiempo. Estos requerimientos se aplican, por ejemplo en:
Circuitos de protección: un dispositivo solamente puede cargar si
todos los dispositivos de protección están conectados.
Enclavamiento de seguridad

12.2 Sistemas de Los sistemas de control lógico sin propiedades memorizantes (combi-
control lógico natorios) pueden describirse por medio de una combinación de opera-
sin propiedades ciones booleanas, mientras que las señales de salida de un control
memorizantes están determinadas por una combinación de señales de entrada en un
determinado momento.
Las operaciones lógicas básicas AND, OR y NOT pueden utilizarse
para crear operaciones lógicas completas – y por lo tanto, también
sistemas de control.
Se utilizan diversos métodos del álgebra booleana, tales como tablas
de función, ecuaciones booleanas y la forma normal disyuntiva (DNF)
para describir el problema y hallar la solución. La importancia de estos
métodos se demuestra entre otras cosas en las aplicaciones más com-
plejas para los sistemas de control lógico. La programación real de un
sistema de control lógico es preferible hacerla en los lenguajes de dia-
grama de contactos o el diagrama de bloques de función.

TP301 • Festo Didactic


B-149
Capítulo 12

Típicas operaciones booleanas


Lo que sigue representan tareas básicas de la tecnología de control,
tales como las operaciones booleanas que se realizan por medio de un
PLC.
Las soluciones están representadas en los lenguajes LD, FBD, IL y ST.
Las secciones con la solución están precedidas por una declaración de
las entradas y salidas necesarias para el PLC. Además, se relacionan
también las opciones de descripción de una tabla de función y la ecua-
ción booleana.
Negación:
La señal de salida asume el valor 1, si la señal de entrada tiene el
valor 0 y viceversa.
El piloto H1 se ilumina mientras el interruptor S1 no está accionado; se Ejemplo
apaga si se cierra el interruptor. Por lo tanto, la finalidad de S1 es
apagar el piloto.

Tabla de funciones Ecuación Booleana

S1 H1 H1 = S1
0 1
1 0
Fig. B12.1:
Métodos de descripción

VAR
S1 AT %I2.5 : BOOL;
H1 AT %Q1.4 : BOOL;
END_VAR Fig. B12.2:
Declaración de variables

Festo Didactic • TP301


B-150
Capítulo 12

a) LD b) FBD
S1 H1

/ S1 NOT H1

c) IL d) ST

LDN S1 H1 : = NOT S1;


ST H1
Fig. B12.3:
Negación

Operación AND:
La señal de salida solamente asume el valor 1, si todas las señales de
entrada tienen el valor 1.
Ejemplo El piloto H1 debe iluminarse sólo si los dos interruptores S1 y S1 están
accionados simultáneamente.

Tabla de funciones Ecuación Booleana

S1 S2 H1 H1 = S1 S2
>

0 0 0
0 1 0
1 0 0

Fig. B12.4: 1 1 1
Métodos de descripción

VAR
S1 AT %I2.5 : BOOL;
S2 AT %I2.6 : BOOL;
H1 AT %Q1.4 : BOOL;
Fig. B12.5: END_VAR
Declaración de variables

TP301 • Festo Didactic


B-151
Capítulo 12

a) LD b) FBD
S1 S2 H1
S1 & H1
S2

c) IL d) ST

LD S1 H1 : = S1 AND S2;
AND S2
ST H1 Fig. B12.6:
Operación AND

Operación OR
La señal de salida asume el valor 1, si por menos una señal de entra-
da tiene el valor 1.
El piloto H1 debe encenderse, si por lo menos uno de los interruptores Ejemplo
S1 o S2 está activado.

Tabla de funciones Ecuación booleana

S1 S2 H1 H1 = S1 S2
>

0 0 0
0 1 1
1 0 1
1 1 1 Fig. B12.7:
Métodos de descripción

VAR
S1 AT %I2.5 : BOOL;
S2 AT %I2.6 : BOOL;
H1 AT %Q1.4 : BOOL;
END_VAR Fig. B12.8:
Declaración de variables

Festo Didactic • TP301


B-152
Capítulo 12

a) LD b) FBD
S1 H1
S1 >=1 H1
S2
S2

c) IL d) ST

LD S1 H1 : = S1 OR S2;
OR S2
Fig. B12.9: ST H1
Operación OR

Operaciones lógicas combinadas


Ejemplo El piloto H1 debe iluminarse sólo si precisamente dos de los tres inte-
rruptores S1, S2 y S3 están activados.
Los primero que hay que crear es la tabla de funciones, en la que se
seleccionan aquellas combinaciones que dan el resultado 1. Estas son
las líneas 4, 6 y 7. La ecuación booleana y por lo tanto la solución
puede crearse a partir de esta combinación. La conversión de la solu-
ción en cada uno de los lenguajes de programación se indica en la fig.
B12.12.

Tabla de funciones Ecuación booleana

S1 S2 S3 H1 H1 = (S1 S2 S3)
> > >

> > >

0 0 0 0 (S1 S2 S3)
> >

0 0 1 0 (S1 S2 S3)
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Fig. B12.10:
Métodos de descripción

TP301 • Festo Didactic


B-153
Capítulo 12

VAR
S1 AT %I2.5 : BOOL;
S2 AT %I2.6 : BOOL;
S3 AT %I2.7 : BOOL;
H1 AT %Q1.4 : BOOL;
END_VAR Fig. B12.11:
Declaración de variables

a) LD b) FBD
S1 S2 S3 H1 S1 &
/ S2
S3
S1 S2 S3
S1 & >=1 H1
/ S2
S3
S1 S2 S3
S1 &
/
S2
S3

c) IL d) ST

LD ( S3 H1 : = (NOT S1 AND S2 AND S3)


AND S2 OR (S1 AND NOT S2 AND S3)
ANDN S1 OR (S1 AND S2 AND NOT S3);
)
OR ( S1
ANDN S2
AND S3
)
OR ( S1
AND S2
ANDN S3
)
Fig. B12.12:
ST H1 Combinación de
operaciones booleanas

Festo Didactic • TP301


B-154
Capítulo 12

12.3 Sistemas de Muchas aplicaciones de PLC requieren operaciones memorizantes.


control lógico Una función memorizante consiste en la retención, es decir, el almace-
con función namiento, del estado de una señal de breve duración. En un instante
memorizante determinado, las señales de salida no sólo dependen de la combina-
ción de las señales de entrada, sino también de los "estados previos".
El ejemplo dado aquí es el de un interruptor para encender o apagar
un piloto.
IEC 1131-3 define dos bloques de función para la realización de fun-
ciones de memoria. Estos son el bloque de función SR (activación prio-
ritaria) y RS (desactivación prioritaria). A continuación se da una des-
cripción de los bloques.

Bloque de función RS

SR
BOOL S1 Q1 BOOL
BOOL R
Fig. B12.13:
Bloque de función SR, de
activación prioritaria

El bloque de función estándar SR contiene un flip-flop de activación


prioritaria (memoria biestable con estado 1 preferente). Una señal 1 en
la entrada de activación S1 activa el flip-flop, es decir, el valor Q1 pasa
a 1. El valor aplicado en la entrada de desactivación R es irrelevante.
Una señal 1 en la entrada de desactivación R, solamente pone la sali-
da Q1 al valor 0, si la entrada de activación S1 es también 0. Por lo
tanto, la entrada de activación en este flip-flop es dominante.

TP301 • Festo Didactic


B-155
Capítulo 12

Bloque de función RS

RS
BOOL S Q1 BOOL
BOOL R1
Fig. B12.14:
Bloque de función RS,
desactivación prioritaria

El bloque de función estándar RS contiene un flip-flop con desactiva-


ción prioritaria (memoria biestable con estado dominante 0). Una señal
1 en la entrada de desactivación R1, desactiva el flip-flop, es decir, el
valor de Q1 pasa a 0. El valor que haya en la entrada S es irrelevante
en este momento.
El siguiente ejemplo ilustra el uso de operaciones elementales de memoria.
Si el sensor B1 tiene una señal-1, esto indica un estado de error en el Ejemplo
sistema. Debe sonar un zumbador H1. El zumbador sólo puede ser
desactivado presionando el pulsador S1. Debe ser posible desactivar el
zumbador, aún en el caso que la señal B1 siga activada.

VAR
B1 AT %IX1 : BOOL; (* El sensor detecta el estado de error *)
S1 AT %IX2 : BOOL; (* Pulsador *)
H1 AT %QX1 : BOOL; (* Zumbador *)
RS_H1 : RS; (* Flip-flop RS_H1 para el estado *)
(* del zumbador *)
END_VAR Fig. B12.15:
Declaración de variables

En los lenguajes FBD y ST, las operaciones con memoria se realizan


invocando una copia del bloque de función RS. La copia en este ejem-
plo tiene el nombre RS_H1. LA invocación en FBD se realiza gráfica-
mente enlazando los parámetros de transferencia actuales con las en-
tradas de la copia del bloque de función. Ya que el valor de la copia
del bloque de función es relevante, la salida de la copia del bloque de
función se conecta correspondientemente.

Festo Didactic • TP301


B-156
Capítulo 12

a) LD b) FBD
B1 H1 RS_H1
S RS
B1 S Q1 H1
S1 H1
S1 R1
R

c) IL d) ST

LD B1 RS_H1 (S := B1, R1 := S1);


S H1 H1 := RS_H1.Q1;
LD S1
R H1

or

CAL RS_H1 (S := B1, R1 := S1)


Fig. B12.16: LD RS_H1.Q1
Utilización de un ST H1
bloque de función RS

En el lenguaje textual ST, la invocación se realiza especificando la


copia del bloque de función. Los parámetros actuales también se rela-
cionan simultáneamente. Puede accederse al valor de la salida de la
copia del bloque de función RS_H1 a través de la variable RS_H1.Q1;
el nombre de la variable de salida es por lo tanto definido a través de
los nombres de la copia del bloque de función y los nombres de las
salidas deseadas.
Los lenguajes LD e IL tienen sus propias operaciones para la activa-
ción y desactivación de variables memorizantes, con lo que puede omi-
tirse el uso del bloque de función RS. Debería observarse que la se-
cuencia de órdenes de activación y desactivación es crucial para el
comportamiento del PLC. La orden que debe ser dominante – en este
caso la orden de desactivación – solamente debe producirse después
de la orden de activación en el programa, de forma que es la última
orden que se ejecuta y por lo tanto determina el comportamiento – en
este caso de la salida.

TP301 • Festo Didactic


B-157
Capítulo 12

Las señales que llegan a las entradas procedentes de los sensores 12.4 Evaluación
son evaluadas como señales 1 o señales 0 por la unidad central del de flancos
PLC, mientras que la duración de los estados de las señales 0 y 1 está
determinada por el propio sensor.
Por ejemplo: Mientras esté accionado el pulsador, habrá una señal-1,
de lo contrario se recibirá una señal 0.
En muchos casos, sin embargo, no es la propia señal lo que importa,
sino el momento exacto durante el cual la señal cambia de estado.
Este tipo de cambio de señal se denomina Flanco.
Para aclarar esto, imagine los interruptores (pulsadores) de un sistema Ejemplo
de iluminación, en la que la evaluación del flanco se realiza mecánica-
mente. Al accionar el pulsador, la luz se enciende (independientemente
del tiempo que se esté presionando el pulsador). Si se ha soltado el
pulsador, la luz puede apagarse presionando de nuevo el mismo pulsador.
Exactamente de la misma forma, el momento en que la señal de entra-
da cambia de 0 a 1, debe ser registrado en el PLC, ya que siempre
puede dispararse una única reacción cada vez que se acciona el pul-
sador – independientemente de cuanto tiempo esté aplicada la señal-1.
Esto evita que un proceso sea puesto en movimiento repetidamente
por el control, si se presionada durante mucho tiempo un pulsador. Los
flancos de la señal de entrada se evalúan para cada programa.
En este contexto nos referimos a la detección de flanco. Cada señal Flancos ascendentes
binaria tiene un flanco ascendente y un flanco descendente: y descendentes

flanco flanco
ascendente ascendente
1

0
flanco flanco
descendente descendente Fig. B12.17:
Flancos ascendentes
y descendentes

Los flancos ascendentes marcan el instante en que el nivel de la


señal pasa de 0 a 1.
Los flancos descendentes marcan el instante en que el nivel de la
señal pasa de 1 a 0.

Festo Didactic • TP301


B-158
Capítulo 12

Evaluar el flanco ascendente o descendente en un programa o bloque


de función, depende del tipo de sensor (normalmente abierto o normal-
mente cerrado) y de cómo deba utilizarse.
Un pulsador (normalmente abierto), por ejemplo, crea un flanco ascen-
dente en el momento en que se pulsa y un flanco descendente en el
momento en que se suelta.
IEC 1131-3 proporciona dos bloques de función estándar para la eva-
luación de los flancos.

Bloque de función R_TRIG, flanco ascendente


El bloque de función estándar R_TRIG (ascendente) se utiliza para la
detección de flancos positivos. Su salida Q tiene el valor 1 desde una
ejecución del bloque de función al siguiente, si su entrada CLK (reloj
para pulso) cambia de 0 a 1.

R_TRIG
Fig. B12.18:
Bloque de función BOOL CLK Q BOOL
R_TRIG,
flanco ascendente

Bloque de función F_TRIG, flanco descendente


Un flanco descendente o de conmutación negativa, se detecta por me-
dio del bloque de función F_TRIG (descendente). Si se ha producido
un cambio en la entrada CLK de 1 a 0, la salida Q asume el valor 1
para un ciclo de procesamiento.

F_TRIG
Fig. B12.19:
Bloque de función BOOL CLK Q BOOL
F_TRIG,
flanco descendente

TP301 • Festo Didactic


B-159
Capítulo 12

El siguiente ejemplo muestra la programación de la evaluación de un


flanco en los lenguajes FBD, LD, IL y ST, en donde se evalúan los
flancos ascendentes.
El accionamiento de un pulsador S1 hace que se abra la puerta de un Ejemplo
horno. Una nueva actuación sobre el pulsador S1 hace que la puerta
se cierre.

VAR
S1 AT %IX1 : BOOL; (* Interruptor de la puerta *)
H1 AT %QX1 : BOOL; (* Bobina para actuación del cilindro *)
(* para la puerta *)
RS_Y1 : RS; (* Flip-flop RS_Y1 para el estado *)
(* de la bobina *)
R_TRIG_S1 : R_TRIG; (* Bloque de función R_TRIG_S1 *)
(* para detección del flanco en S1 *)
END_VAR Fig. B12.20:
Declaración de variables

a) LD
S1 Y1 Y1

P / S

S1 Y1 Y1

P R

b) FBD
RS_Y1
R_TRIG_S1 Y1 & RS
R_TRIG S Q1 Y1
S1 CLK Q R1
&
Y1

c) IL

CAL R_TRIG_S1 (CLK := S1)


LD R_TRIG_S1.Q
ANDN Y1
S Y1
LD R_TRIG_S1.Q
AND Y1
R Y1

d) ST

R_TRIG_S1 (CLK := S1);


RS_Y1 ( S := R_TRIG_S1.Q & NOT Y1,
R1 := R_TRIG_S1.Q & Y1); Fig. B12.21:
Y1 := RS_Y1.Q1; Utilización del bloque
de función R_TRIG

Festo Didactic • TP301


B-160
Capítulo 12

En los lenguajes FBD, IL y ST, la detección del flanco se realiza por


medio de la invocación al bloque de función R_TRIG. El nombre del
bloque de función utilizado en el ejemplo es R_TRIG_S1; R_TRIG_S1
representa una copia del bloque de función tipo R_TRIG.
El lenguaje LD tiene contactos especiales para la evaluación de los
flancos, por lo que se omite la invocación del bloque de función
R_TRIG.

TP301 • Festo Didactic


B-161
Capítulo 13

Capítulo 13

Temporizadores

Festo Didactic • TP301


B-162
Capítulo 13

13.1 Introducción Muchas tareas de control requieren la programación de tiempos. Por


ejemplo, el cilindro 2.0 debe avanzar si el cilindro 1.0 ha retrocedido –
pero sólo tras un retardo de 5 segundos. Esto se conoce como señal
con retardo a la conexión. Los retardos a la conexión de las señales
durante la conexión de las etapas de potencia se necesitan a menudo
por razones de seguridad.
Los temporizadores en un PLC se realizan en forma de módulos de
software y están basados en la generación digital de un tiempo. Los
pulsos de reloj contados se obtienen del generador de cuarzo del mi-
croprocesador. La duración del tiempo establecida se establece en el
programa de control.
IEC 1131-3 define tres tipos de bloques de función de temporizador
TP Pulse timing - Temporizador de pulso
TON On-delay timing - Temporizador a la conexión
TOF Off-delay timing - Temporizador a la desconexión
La duración del tiempo está especificada por medio de un formato de
carácter definido. Una especificación de tiempo se introduce por los
caracteres T# o t#, seguido por los elementos del tiempo, es decir,
días, horas, minutos, segundos y milisegundos.

Los siguiente representa ejemplos de especificaciones permisibles de


tiempos:

d Día

h Hora

m Minuto

s Segundo

ms Milisegundo

Los detalles relacionados con las especificaciones de tiempo pueden


hallarse en el capítulo 6.2.

T#2h15m

t20s

T#10M25S

t#3h_40m_20s

TP301 • Festo Didactic


B-163
Capítulo 13

El bloque de función TP es un temporizador de pulso, que se pone en 13.2 Temporizador


marcha por una señal-1 larga o corta en la entrada IN. En la salida Q de pulso
aparece una señal-1 por el tiempo especificado en su entrada PT
(tiempo preestablecido). Por ello, la salida Q tiene una duración fija,
que es la especificada en PT. El temporizador no puede activarse de
nuevo mientras esté activo el tiempo de pulso. El valor actual el tempo-
rizador de pulso está disponible en la salida ET (tiempo estimado).

TP
BOOL IN Q BOOL
TIME PT ET TIME
Fig. B13.2:
Bloque de función TP,
temporizador de pulso

IN

PT

ET

Fig. B13.1:
Q Diagrama de tiempos
de un temporizador
de pulso TP

Festo Didactic • TP301


B-164
Capítulo 13

Con la ayuda de un ejemplo, se expone la utilización de un temporiza-


dor de pulso.
Ejemplo Presionando el pulsador de marcha S2 se hace avanzar el émbolo de
un cilindro. Este mecanismo se utiliza para sujetar piezas. Cuando el
émbolo ha avanzado completamente, debe permanecer en esta posi-
ción durante 20 segundos. A continuación el cilindro regresa a su posi-
ción inicial.

VAR
S2 AT %IX1 : BOOL; (* Pulsador de marcha *)
B1 AT %IX2 : BOOL; (* Cilindro retraído *)
B2 AT %IX3 : BOOL; (* Cilindro extendido *)
Y1 AT %QX1 : BOOL; (* Cilindro de avance *)
SR_Y1 : SR; (* Flip-flop denominado SR_Y1 para *)
(* inicadr el estado de Y1 *)
TP_Y1 : TP; (* Bloque de función TP, TP_Y1 *)
Fig. B13.3: END_VAR
Declaración de variables

S2 &
SR_Y1
B1
SR
TP_Y1 S1 Q1 Y1
R
TP
B2 IN Q &
T#20s PT ET

Fig. B13.4: B2
Uso de un temporizador
de pulso en FBD

Esta tarea de control ha sido programada en el lenguaje FBD como


ejemplo. Por descontado que en cualquier otro lenguaje puede utilizar-
se un bloque de función de temporización. Un ejemplo con un tempori-
zador a la desconexión se da en el capítulo 13.4 para demostrar esto
con los lenguajes FBD, LD, IL y ST.

TP301 • Festo Didactic


B-165
Capítulo 13

La válvula Y1 para el accionamiento del cilindro se activa a través de


un flip-flop SR, SR_Y1. La condición de activación para SR_Y1 se
cumple si se activa el final de carrera de la posición retraída del cilin-
dro. Una vez que el cilindro ha avanzado, se pone en marcha el tem-
porizador de pulso TP_Y1 con un tiempo de 20 segundos por el flanco
ascendente del sensor B2. La salida Q de TP_Y1 asume ahora una se-
ñal-1. Una vez que ha expirado el temporizador de pulso – transcurridos
los 20 segundos – la salida Q de TP_Y1 asume el valor 0. Se cumple la
condición de desactivación de SR_Y1: el cilindro retrocede de nuevo.
Nota: Las formulaciones con "temporizador de pulso con el nombre
TP_Y1" significan que TP_Y1 es una copia del bloque de función tipo
TP, en este caso una copia del temporizador de pulso.

El bloque de función TON (temporizador a la conexión) se utiliza para 13.2 Señal con retardo
generar señales retardadas respecto al momento de la aparición de a la conexión
una señal. Cuando se aplica una señal-1 a una entrada IN, la salida Q
no asume el valor 1 hasta que no haya transcurrido el tiempo especifi-
cado en la entrada PT, y mantiene este estado hasta que la señal de
entrada IN pase de nuevo a 0. Si la duración de la señal de entrada IN
es más corta que el tiempo especificado PT, el valor de la salida per-
manece en 0.

TON
BOOL IN Q BOOL
TIME PT ET TIME Fig. B13.5:
Bloque de función TON.
Señal con retardo
a la conexión

IN

PT

ET

Fig. B13.6:
Q Diagrama de tiempos
de una señal retardada
a la conexión TON

Festo Didactic • TP301


B-166
Capítulo 13

Ejemplo El cilindro 1.0 avanza si se activa el pulsador de marcha S1. Una vez
ha permanecido extendido durante 2 segundos, un segundo cilindro
2.0 avanza hacia su posición final delantera. Los sensores B1 y B2
indican las posiciones avanzada y retraída del cilindro 1.0.

VAR
S1 AT %IX1 : BOOL; (* Pulsador de marcha *)
B1 AT %IX2 : BOOL; (* Cilindro 1.0 extendido *)
B2 AT %IX3 : BOOL; (* Cilindro 1.0 retraído *)
Y1 AT %QX1 : BOOL; (* Avance del cilindro 1.0 *)
Y2 AT %QX2 : BOOL; (* Avance del cilindro 2-0 *)
RS_Y1 : RS; (* Flip-flop RS_Y1 para Y1 *)
TON_Y2 : TON; (* Temporizador a la conexión *)
(* TON_Y2 para Y2 *)
Fig. B13.7: END_VAR
Declaración de variables

RS_Y1

RS
S1 & S Q1 Y1
B1 R1

TON_Y2

TON
Fig. B13.8: B2 IN Q Y2
Utilización de una T#2s PT ET
señal con retardo a la
conexión en FBD

El cilindro 1.0 se controla por medio de la válvula Y1. Una vez que el
cilindro 1.0 ha avanzado y el sensor B2 tiene señal-1, empieza a fun-
cional el temporizador a la conexión TON_Y2. Transcurridos los 2 se-
gundos, se obtiene una señal-1 en la salida Q de TON_Y2 y el cilindro
2.0 avanza. El cilindro 2.0 permanece extendido mientras haya aplica-
da una señal-1 en la entrada IN de TON_Y2, es decir, mientras el
cilindro 1.0 permanezca extendido.

TP301 • Festo Didactic


B-167
Capítulo 13

Como se muestra en este ejemplo, no todas las entradas y salidas de


un bloque de función deben conectarse o alimentarse.
Si una entrada de un bloque de función no está conectada – en este
caso la entrada R1 de RS_Y1 – se utilizan los valores de la invocación
previa. En este caso, el valor de inicialización de la variable R1, que
representa una variable booleana, está preasignada con el valor 0, es
decir, el bloque de función RS_Y1 opera con el valor 0 para el paráme-
tro R1 durante esta invocación.

TOF (temporizador a la desconexión) es el nombre del bloque de fun- 13.4 Señal con retardo
ción para generar señales retardadas respecto al momento de la au- a la desconexión
sencia de una señal. El temporizador se pone en marcha al aplicar una
señal-1 en la entrada IN. Al mismo tiempo, la señal de salida Q asume
el valor 1. Una vez que la señal de entrada IN ha vuelto a pasar al
valor 0, la salida permanece en 1 durante un tiempo especificado por
PT y no pasa a 0 hasta que no haya expirado este tiempo.

TOF
BOOL IN Q BOOL
Fig. B13.9:
TIME PT ET TIME
Bloque de función TOF,
señal con retardo
a la desconexiòn

IN

PT

ET

Fig. B13.10:
Q Diagrama de tiempos
de una señal con retardo
a la desconexión TOF

Festo Didactic • TP301


B-168
Capítulo 13

El siguiente ejemplo ilustra el uso de un temporizador a la desconexión


en los lenguajes FBD, LD, IL y ST.
Ejemplo Tras accionar un pulsador, el cilindro de un dispositivo de estampación
debe avanzar inmediatamente. Cuando se suelta el pulsador, el cilindro
sólo debe retroceder transcurrido un periodo de estampación de 30
segundos.

VAR
S1 AT %IX1 : BOOL; (* Pulsador *)
Y1 AT %QX1 : BOOL; (* Avance del cilindro *)
TOF_Y1 : TOF; (* Temporizador a la desconexión *)
Fig. B13.11: (* TOF_Y1 para Y1 *)
Declaración END_VAR
de variables

a) LD b) FBD
TOF_Y1 TOF__Y1
S1 Y1
TOF TOF
IN Q S1 IN Q Y1
T#30s PT ET T#30s PT ET

c) IL

CAL TOF_Y1 (IN := S1, PT := T#30s)


LD TOF_Y1.Q
ST Y1

d) ST
Fig. B13.12:
Uso de una señal TOF_Y1 (IN :=S1, PT := T#30s);
con retardo a la Y1 := TOF_Y1.Q;
desconexión en FBD

En todos los lenguajes, se invoca una copia del bloque de función


TOF_Y1 para realizar el temporizador a la desconexión del cilindro de
estampación.

TP301 • Festo Didactic


B-169
Capítulo 13

En el lenguaje LD, el bloque de función se adjunta al renglón a través


de la entrada booleana de marcha IN y la salida booleana Q. Si el
contacto normalmente abierto S1 suministra una señal-1, se obtiene
también una señal-1 en la salida Q de TOF_Y1. El valor Q se copia a
la variable Y1. Cuando la señal-1 de S1 regresa a 0, la señal 1 de la
salida Q de TOF_Y1 sigue teniendo señal-1 durante un período de 30
segundos. Transcurrido este tiempo la señal pasa también a 0.
En los lenguajes textuales IL y ST, el temporizador con retardo a la
desconexión se invoca especificando el nombre TOF_Y1 de la copia
declarada y relacionando los correspondientes parámetros de transfe-
rencia. El estado del retardo de la señal puede obtenerse a través de
la salida Q. En el ejemplo dado aquí, el estado de la señal retardada
TOF_Y1 se guarda en la variable TOF_Y1.Q.

Festo Didactic • TP301


B-170
Capítulo 13

TP301 • Festo Didactic


B-171
Capítulo 14

Capítulo 14

Contadores

Festo Didactic • TP301


B-172
Capítulo 14

14.1 Funciones Los contadores se utilizan para detectar cantidades y eventos. En la


de conteo práctica, los controles necesitan a menudo utilizar contadores. Se ne-
cesita un contador si, por ejemplo, deben contarse exactamente 10
piezas para que sean dirigidas a una cinta transportadora por un dispo-
sitivo de clasificación.
IEC 1131-3 distingue entre tres diferentes módulos de contador:
CTU: Incremental counter - Contador incremental
CTD: Decremental counter - Contador decremental
CTUD: Incremental/Decremental counter - Contador incremental/de-
cremental
Estos módulos de función estándar se utilizan para detectar conteos
estándar, no críticos en el tiempo.
Sin embargo, en muchas tareas de control es necesario utilizar los
denominados contadores de alta velocidad. La "alta velocidad", en este
caso, se refiere generalmente a una frecuencia de conteo superior a
50 Hz., es decir, contar más de 50 eventos por segundo. Las tareas de
este tipo no pueden resolverse con los módulos de función contadores
estándar de un PLC.
Las limitaciones de la frecuencia de conteo en los bloques de función
contadores se deben en primer lugar a los retardos de las señales de
entrada. Cada señal de entrada – es decir, también las señales de
conteo – es retardada por hardware un cierto tiempo, antes de que sea
entregada al PLC para su procesamiento. Esto evita interferencias.
Otra limitación es el tiempo de ciclo del PLC.
Por esta razón, en los PLC se dispone generalmente de módulos con-
tadores adicionales para conteo a alta velocidad. Los contadores de
alta velocidad se utilizan, p. ej. para los sistemas de posicionado.

14.2 Contador El contador incremental se conoce como CTU (count up - conteo hacia
incremental arriba). El contador se establece al valor inicial 0 por una señal de
reset en la entrada R.

CTU
BOOL CU Q BOOL
BOOL R
Fig. B14.1: INT PV CV INT
Bloque de función CTU,
Contador incremental

TP301 • Festo Didactic


B-173
Capítulo 14

El estado actual del contador está disponible en la salida CV (current


value - valor actual). El valor del contador se incrementa en una unidad
a cada flanco positivo en la entrada CU del contador. Al mismo tiempo,
el valor actual se compara en el bloque de función con el valor prese-
leccionado PV. En el momento en que el valor actual CV es igual o
mayor que el valor preseleccionado, la señal de salida asume el valor
1. Antes de alcanzar este valor, la salida Q tiene señal-0.
El siguiente ejemplo muestra el uso de un contador incremental en los
lenguajes FBD, LD, IL y ST.
Deben extraerse piezas de un almacén por gravedad por medio de un Ejemplo
cilindro. Si se presiona el pulsador S1, el cilindro debe avanzar, extraer
una pieza y retroceder de nuevo. De esta forma deben extraerse 15
piezas. Una vez extraídas las 15 piezas, ya no debe ser posible activar
el movimiento del cilindro por medio del pulsador S1. Primero debe
desactivarse el contador accionando el pulsador S2.

VAR
S1 AT %IX1 : BOOL; (* Pulsador para mover el cilindro *)
S2 AT %IX2 : BOOL; (* Pulsador de reset contador CTU_Y1 *)
B1 AT %IX3 : BOOL; (* Cilindro retraído *)
B2 AT %IX4 : BOOL; (* Cilindro extendido *)
Y1 AT %QX1 : BOOL; (* Avance del cilindro *)
Y1_advance
AT %MX1 : BOOL; (* Memorización avance cilindro *)
CTU_Y1_M
AT %MX2 : BOOL; (* Memorizar estado contador CTU_Y1 *)
RS_Y1 : RS; (* Flip-flop RS_Y1 para Y1 *)
CTU_Y1 : CTU; (* Contador incremental CTU_Y1 para *)
(* los movimientos del cilindro *)
END_VAR Fig. B14.2:
Declaración de variables

Festo Didactic • TP301


B-174
Capítulo 14

S1 B1 CTU_Y1.Q Y1
a) LD
/ S

B2 Y1

R
CTU_Y1
B2 CTU_Y1_M
CTU
CU Q

S2

15 PV CV
RS_Y1

b) FBD S1 & RS
B1 S Q1 Y1
CTU_Y1.Q B2 R1

CTU_Y1
CTU
B2 CU Q
S2 R
15 PV CV

c) IL LD S1
AND B1
ANDN CTU_Y1.Q
ST Y1_advance
CAL RS_Y1 (S := Y1_advance, R1 := B2)
LD RS_Y1.Q1
ST Y1
CAL CTU_Y1 (CU := B2, R := S2, PU := 15)

d) ST RS_Y1 ( S := S1 & B1 & NOT CTU_Y1.Q, R1 := B2);


Y1 := RS_Y1.Q1;
Fig. B14.3:
CTU (CU := B2, R := S2, PU := 15);
Uso del contador
incremental

TP301 • Festo Didactic


B-175
Capítulo 14

Un bloque de función CTU (contador incremental) se utiliza en todos


los lenguajes para realizar la función de conteo; en el ejemplo actual,
el nombre de la copia declarado es CTU_Y1.
El cilindro es accionado por medio de la válvula Y1. La propia válvula
es conmutada a través de un flip-flop RS denominado RS_Y1. El cilin-
dro solamente avanza si se presiona el pulsador S1 y el cilindro ha
retrocedido (B1=1) y si no ha vencido el contador (CTU_Y1.Q = 0).
Cuando el cilindro ha alcanzado su posición final delantera (B2=1), el
valor de Y1 vuelve a 0 y el cilindro retrocede de nuevo.
Los recorridos del cilindro se cuentan a través del contador denomina-
do CTU_Y1. El contador tiene un estado definido al principio del proce-
samiento, ya que todas las variables están preasignadas. Esto significa
que, si el cilindro se halla en posición inicial y no se acciona ninguno
de los pulsadores, hay señal-0 en B2 y S2 y con ello en las entradas
CU y R; el valor preseleccionado PV es 15, el valor actual CV del
contador es 0. Por lo tanto, el contador aún no ha vencido y la salida
Q tiene el valor 0.
El accionamiento del pulsador S1 hace que el cilindro avance. EL flan-
co ascendente de B2 genera un pulso de conteo y el valor actual CV
del CTU_Y1 se incrementa en 1. Cuando se han realizado 15 movi-
mientos del cilindro, el valor actual del CV es igual al valor preseleccio-
nado PV; el contador ha vencido y ello se indica por el valor 1 en la
salida Q. El cilindro no se moverá hasta que el contador sea repuesto,
es decir, se ponga en marcha de nuevo. Esto se realiza accionando el
pulsador S2; la señal-1 en la entrada R establece el valor actual CV
del contador a 0, con lo que inmediatamente aparece una señal-0 en la
salida Q.
En este punto, debe hacerse una especial mención a una característi-
ca particular del lenguaje IL. En la lista de instrucciones, los paráme-
tros de transferencia para un bloque de función deben ser sólo varia-
bles individuales. No se permiten expresiones. Esta es la razón por la
que la operación AND de las variables S1, B1 y CTU_Y1.Q se copia a
la variable Y1_advance y ésta se utiliza entonces como parámetro de
transferencia.

Festo Didactic • TP301


B-176
Capítulo 14

14.3 Contador El bloque de función CTD (count down - conteo hacia abajo) es el
decremental contador decremental de IEC 1131-3 y representa lo opuesto del con-
tador incremental.
El contador decremental con valor de preselección PV se activa con
una señal-1 en la entrada LD (load - carga). Durante el funcionamiento
normal, cada flanco positivo en la entrada CD reduce el valor del con-
tador. El valor actual del contador está también disponible en la salida
CV en este caso. La salida Q del bloque de función CTD es 0, hasta
que el valor CV del contador es igual o menor que 0.

CTD
BOOL CD Q BOOL
BOOL LD
Fig. B14.4: INT PV CV INT
Bloque de función CTD,
contador decremental

El uso de contadores decrementales se demuestra también por medio


de un pequeño ejemplo.
Ejemplo Un cilindro se mueve a través de una válvula Y1. La posición del cilin-
dro se detecta por los sensores B1 (retraído) y B2 (extendido). El cilin-
dro debe avanzar si se presiona el pulsador S1. Una vez se han reali-
zado 10 recorridos de esta forma, el contador ha vencido y el piloto H1
se enciende. El contador debe ser cargado de nuevo con el valor prese-
leccionado, antes de que puedan seguir ejecutándose movimientos del
cilindro. Esto se realiza por medio del accionamiento del pulsador S2.

VAR
S1 AT %IX1 : BOOL; (* Pulsador para mover el cilindro *)
S2 AT %IX2 : BOOL; (* Pulsador de reset contador CTD_Y1 *)
B1 AT %IX3 : BOOL; (* Cilindro retraído *)
B2 AT %IX4 : BOOL; (* Cilindro extendido *)
Y1 AT %QX1 : BOOL; (* Avance del cilindro *)
H1 AT %QX2 : BOOL; (* Piloto *)
RS_Y1 : RS; (* Flip-flop RS_Y1 para Y1 *)
CTD_Y1 : CTD; (* Contador decremental CTD_Y1 para *)
(* los recorridos del cilindro *)
Fig. B14.5: END_VAR
Declaración de variables

TP301 • Festo Didactic


B-177
Capítulo 14

RS_Y1

S1 & RS
B1 S Q1 Y1
CTD_Y1.Q R1

B2

CTD
B2 CD Q H1 Fig. B14.6:
S2 LD Uso de un contador
10 PV CV decremental en
lenguaje FBD

La válvula Y1 se activa a través de un bloque de función RS denomi-


nado RS_Y1. La condición de activación se cumple cuando el cilindro
se halla retraído, el contador aún no ha vencido y se presiona el pulsa-
dor S1. Cuando el cilindro ha avanzado completamente, aparece de
nuevo una señal 0 en la salida Q1 de RS_Y1.
Los recorridos del cilindro se detectan por medio de un contador decre-
mental denominado CTD_Y1. Si el cilindro se halla en posición inicial y
ninguno de los pulsadores está activado, hay aplicados los siguientes
valores en las entradas y salidas al principio del procesamiento del
contador decremental: las entradas CD y LD tiene señal-0, la entrada
PV tiene aplicado el valor 10; el valor actual CV del contador es 0, por
lo tanto, se cumple la condición CV <=0 y hay una señal-1 en la salida
Q. El valor 1 en la salida Q indica que el contador decremental ha
vencido. El piloto H1 se halla al mismo tiempo iluminado.
El valor preseleccionado 10 no está cargado como valor actual del
contador hasta que no se presione el pulsador S2. Ahora CV es mayor
de 0, la salida Q es también 0 y el piloto está apagado. Los movimien-
tos del cilindro pueden ahora activarse accionando el pulsador S1.
Cada movimiento produce un pulso de conteo por medio del flanco
ascendente de B2, que reduce el valor actual del contador en 1 unidad
cada vez. Tras completar 10 recorridos, el valor actual del contador es
0; el contador ha vencido. Esto se indica por el valor 1 en la salida Q.
Una vez que el contador ha sido cargado de nuevo con el valor de
partida 10, pueden repetirse las operaciones de conteo.

Festo Didactic • TP301


B-178
Capítulo 14

14.4 Contador El bloque de función CTUD, contador incremental/decremental, combi-


incremental na el contador incremental y el decremental.
/decremental

CTUD
BOOL CU QU BOOL
BOOL CD QD BOOL
BOOL R
Fig. B14.7: BOOL LD
Bloque de función INT PV CV INT
CTUD, contador
incremental /decremental

El valor de la salida QU se calcula de acuerdo con la ecuación:


CV ≥ PV, y el valor de la salida QD de acuerdo con la ecuación CV ≤ 0.
Observar que la función del contador decremental solamente debe utili-
zarse una vez cargado el valor de partida al contador a través de la
orden LD.

TP301 • Festo Didactic


B-179
Capítulo 15

Capítulo 15

Sistemas de control secuencial

Festo Didactic • TP301


B-180
Capítulo 15

15.1 ¿Qué es un Los sistemas de control secuencial son procesos que se realizan en
sistema de varias etapas claramente separadas. El paso de una etapa a otra de-
control pende de las condiciones de habilitación del paso. Una característica
secuencial? importante es que, en una determinada secuencia, sólo puede estar
activa una etapa, a no ser que se hayan programado explícitamente
secuencias paralelas cuyas etapas deban ejecutarse simultáneamente.
Comparado con un sistema de control lógico (combinatorio), ofrece las
siguientes ventajas:
el programa se divide en etapas y por lo tanto es más claro de
seguir, modificar y ampliar.
los sistemas de control secuencial pueden programarse gráficamen-
te en forma de diagrama de funciones secuencial (también denomi-
nado GRAFCET - Gráfico de Etapas y Transiciones).
la detección de errores en una secuencia de control representada
gráficamente, es en general más fácil de seguir que en los sistemas
de control con lógica combinatoria.
Ejemplos típicos de controles secuenciales son los controles de máqui-
nas en el campo de la tecnología de producción o controles receptivos
en la tecnología de procesos.

15.2 Diagrama de fun- La necesidad de configurar un control secuencial no se manifiesta in-


ciones secuencial mediatamente en el caso de pequeños controles orientados a secuen-
según IEC 848 cias, pero la necesidad de mejorar las descripciones funcionales au-
o DIN 40 719, menta con la complejidad de las tareas. El diagrama de contactos y la
P.6 lista de instrucciones no son muy adecuados para una descripción es-
tructurada. Los diagramas de función (o también los diagramas de flu-
jo) se introdujeron como medios auxiliares para el análisis de arriba
hacia abajo y para la representación de diagramas de proceso. Los
elementos utilizados para este tipo de descripción y su uso, ha sido
estandarizado internacionalmente por IEC 1131-3. El estándar IEC 848
con la adición de definiciones nacionales ha sido publicado en DIN 40
719, P.6.
El diagrama de funciones secuencial describe principalmente dos as-
pectos de un control, de acuerdo con unas reglas definidas:
las acciones a ejecutar (órdenes)
la secuencia de la ejecución

TP301 • Festo Didactic


B-181
Capítulo 15

Por lo tanto, un diagrama de funciones secuencial se divide en dos


partes (fig. B15.1). La parte secuencial representa la ejecución del pro-
ceso en relación con el tiempo.
La parte secuencial no describe las acciones a ejecutar individualmen-
te. Estas están contenidas en la parte de acción del diagrama de fun-
ciones secuencial, que para el ejemplo en cuestión, consta de bloques
en el lado derecho de las etapas.

0 N Posición inicial

Pieza en zona de elevación

1 L Detección del material y color; t = 0,5 s

Tiempo transcurrido

2 S Elevación del cilindro elevador

Cilindro elevador arriba

3 L Definición del grosor; t = 1 s

Tiempo transcurrido

4 N Avance del cilindro expulsor

Cilindro expulsor delante

5 N Retroceso del cilindro expulsor

Cilindro expulsor detrás

6 S Descenso del cilindro elevador

Cilindro elevador abajo Fig. B15.1:


Diagrama de funciones
secuencial para un
proceso de verificación

Festo Didactic • TP301


B-182
Capítulo 15

Los que sigue proporciona una breve explicación de los elementos indivi-
duales utilizados para describir un diagrama de funciones secuencial.

Etapas
Un diagrama de funciones secuencial se estructura por medio de eta-
pas. Estas están representadas por bloques y se identifican con el co-
rrespondiente número de etapa.
El estado de las salidas del control se identifica en la etapa inicial.
Cada paso tiene asignadas acciones (órdenes) que contienen la verda-
dera parte de ejecución del control.

Etapa
1
inicial
Transición conexiones directas

Etapa 2

Fig. B15.2:
Elementos de un diagrama Acción
de funciones secuencial

Transiciones
Una transición es un enlace desde una etapa a la siguiente. La condi-
ción lógica asociada con la transición se representa junto a la línea
horizontal de la transición. Si la condición se cumple, se realiza la tran-
sición a la siguiente etapa, que es procesada por el control.

TP301 • Festo Didactic


B-183
Capítulo 15

Estructuras secuenciales
Pueden crearse tres formas básicas de estructura secuencial por me-
dio de la combinación de elementos de etapa y de transición:
Secuencia lineal
Derivación alternativa
Derivación en paralelo
Las etapas y las transiciones deben estar siempre alternadas, inde-
pendientemente de la forma de la estructura secuencial. Las estructu-
ras secuenciales se procesan desde arriba hacia abajo.
En una secuencia lineal, a cada etapa le sigue una sola transición y a
cada transición una sola etapa. La fig B15.1 ilustra un ejemplo de una
secuencia lineal.

En la derivación alternativa mostrada en la fig. B15.3, dos o más tran-


siciones siguen a una etapa. La secuencia parcial, cuyas condiciones
de transición se cumplen primero, se activa y se procesa. Ya que sola-
mente una secuencia parcial puede ser elegida en una derivación alter-
nativa, las condiciones de transición – d y g en la fig. B15.3 – deberían
excluirse mutuamente.

d g
3 5

e h
4

i
Fig. B15.3:
Derivación alternativa

Festo Didactic • TP301


B-184
Capítulo 15

3 5

e f
4 6

g
7
Fig. B15.4:
Derivación en paralelo

En el caso de la derivación en paralelo, si se cumple la condición de


transición, se realiza la activación simultánea de varias secuencias par-
ciales. Las secuencias parciales evolucionan simultáneamente, pero
completamente independientes unas de otras. La convergencia de las
secuencias parciales está sincronizada. Solamente cuando han finali-
zado todas las secuencias parciales se produce la transición a la si-
guiente etapa bajo la doble línea – en este ejemplo a la etapa 7.

Acción
Cada etapa contiene acciones, la verdadera parte de ejecución del con-
trol. La propia acción (fig, B15.5) se divide en tres campos, en donde los
campos a y c solamente deberían representarse si fuera necesario.

a b c

a: Caracterización de las acciones a ejecutar


b: Descripción de la acción
Fig. B15.5: c: Referencia a las respuestas asociadas con la orden
Acción

La tabla B15.1 contiene los símbolos definidos en DIN 40 719, P.6 o


IEC 848 utilizados para describir la orden de ejecución de las acciones.

TP301 • Festo Didactic


B-185
Capítulo 15

S stored - memorizante

N non-stored - no memorizante

D delayed - retardada

F enabling - habilitación

L limited - limitada

P pulse - pulso
Tabla B15.1:
C conditional - condicional
Modo de las acciones

Si una acción debe ser descrita con más detalle, deberá elegirse una
combinación de letras y símbolos en la orden de esta ejecución.
DCSF Ejemplo
acción de memorización condicional tras un retardo, sujeta a una con-
dición de habilitación adicional tras la memorización.

Refinamiento de las etapas


Como se muestra en la fig. B15.6, cada etapa puede contener a su
vez estructuras secuenciales. Esta característica es soportada por el
refinamiento paso a paso de una solución en el sentido del diseño de
arriba hacia abajo.

2.1 N Llenado del almacén

Pieza en almacén y pinza en


posición 1 y cilindro expulsor retraído

2.2 S Avance cilindro expulsor


Marcha

2 Pieza expulsada

Pieza liberada
2.3 S Pinzar pieza
S Pinza a posición 2

Pieza aceptada y requerimiento


de liberar pieza

2.4 S Liberar pieza


S Retroceso cil. expulsor

Cilindro expulsor detrás

2.5 S Pinza en posición 1 Fig. B15.6:


Refinamiento de las etapas

Festo Didactic • TP301


B-186
Capítulo 15

15.3 Diagrama El diagrama de desplazamiento-paso (o desplazamiento-fase) repre-


desplazamiento senta gráficamente una secuencia de control. La estructura de un dia-
-paso grama de este tipo se describe en VDI 3260.
Cada uno de los sensores y actuadores están dispuestos verticalmente
en el diagrama, y cada una de los pasos del control se halla repre-
sentado horizontalmente. Una línea de función indica el estado de la
señal del correspondiente elemento de señalización en cada paso. Las
líneas de señal enlazan las líneas de función individuales e indican qué
elemento de señalización en el proceso dispara cada acción. Una fle-
cha indica el sentido de la acción. El diagrama se clarifica posterior-
mente con símbolos.
El diagrama de desplazamiento-paso lo dibuja generalmente el diseña-
dor de la máquina o sistema. Cuando se resuelve una tarea de control,
es útil trazar el diagrama de desplazamiento-paso como etapa previa a
la programación del PLC.

Fig. B15.7:
Estructura de un diagrama
desplazamiento-paso

TP301 • Festo Didactic


B-187
Capítulo 16

Capítulo 16

Puesta a punto y
seguridad funcional de un PLC

Festo Didactic • TP301


B-188
Capítulo 16

16.1 Puesta a punto Los programas de PLC nunca se terminan, en el sentido de que siem-
pre es posible hacer correcciones y las consiguientes adaptaciones a
los nuevos requerimientos del sistema.
Incluso durante la puesta a punto, a menudo son necesarios los cam-
bios en el programa. La puesta a punto de un sistema puede dividirse
básicamente en cuatro etapas:
Verificación del hardware
Transferencia y verificación del software
Optimización del software
Puesta en marcha del sistema

Verificación del hardware


Cada sensor se conecta a una entrada específica y cada actuador a
una salida; las direcciones no deben mezclarse.
Esta el la razón por la que el primer paso en la verificación del hardwa-
re siempre debe hacerse tras la lista de asignaciones. ¿Están todos los
sensores y actuadores asignados a las direcciones de entrada y salida
correctas? ¿Se identifica inequívocamente la función – señal-0 y señal-1?
La lista de asignaciones debe corregirse y completarse ya que forma
parte de la documentación antes de la puesta a punto de un programa.
Durante la verificación, las salidas se activan para comprobarlas. Los
actuadores deben cumplir con las funciones especificadas.

Transferencia y pruebas del software


Incluso antes de la puesta a punto, todas las facilidades de verificación
del programa sin conexión con el control, deberían utilizarse intensiva-
mente. Una de estas funciones de prueba muy práctica es, por ejem-
plo, la simulación del programa.
A continuación, el programa es transferido a la unidad central de con-
trol el PLC. Un pequeño número de PLCs ofrecen actualmente facilida-
des para la simulación: Todo el programa se ejecuta sin que haya
entradas ni salidas conectadas. De forma similar, sólo la conexión de
las salidas puede omitirse. Así, el procesamiento de las salidas del
PLC se realiza solamente en la tabla de imagen, cuyos estados no son
traspasados físicamente a las salidas disponibles. Esto, por lo tanto,
elimina el riesgo de dañar partes de la máquina o del sistema, lo cual
es de mucha importancia en el caso de procesos críticos o peligrosos.

TP301 • Festo Didactic


B-189
Capítulo 16

Tras esto, las partes individuales del programa y las funciones del sis-
tema se verifican: Funcionamiento manual, ajuste, programas de su-
pervisión individuales, etc., y finalmente la interacción de las partes del
programa con la ayuda de todo el conjunto.
Con ello, el programa es puesto a punto paso a paso. Aspectos impor-
tantes de la puesta a punto y la detección de errores son las funciones
de test de los sistemas de programación, tales como el funcionamiento
en paso a paso o el establecimiento de puntos de parada. El modo de
paso a paso tiene una particular importancia, ya que con ello el progra-
ma se ejecuta en la memoria del PLC línea a línea o paso a paso. De
esta forma, cualquier error que pudiera haber en el programa puede
ser localizado inmediatamente.

Optimización del software


Casi siempre, los programas largos pueden mejorarse tras la primera
prueba de funcionamiento. Es importante que cualquier modificación o
corrección se haga no tan sólo en el programa del PLC, sino que tam-
bién se tenga en cuenta en la documentación. Además de la documen-
tación, debe guardarse cada vez el nuevo estado del software.

Puesta en marcha del sistema


Esto ya se produce en parte durante la fase de optimización y verifica-
ción. Una vez que el estado final del programa PLC y la documentación
han sido establecidos, hay que ejecutar de nuevo todas las funciones del
control (de acuerdo con la tarea). Entonces el sistema está listo para ser
aceptado por el cliente o el correspondiente departamento.

Festo Didactic • TP301


B-190
Capítulo 16

16.2 Seguridad Alimentación de tensión al PLC


funcional Debe distinguirse entre la tensión de control (tensión de las señales
de un PLC entre la máquina controlada y el PLC) y la tensión de la lógica (ten-
sión de alimentación interna de la unidad central de control).
El nivel de tensión de funcionamiento de un PLC está especificado en
DIN IEC 1131-/Parte 2. Se halla entre 24 VDC y 48 VDC o 48 VAC y
220 VAC respectivamente. Para el mercado americano también puede
utilizarse 120 VAC.
Tensión de control
La tensión de control alimenta a los sensores y actuadores. Para ello
el usuario debe conectar una fuente de alimentación al control. La ten-
sión de control de un PLC es generalmente de 24 VDC o 230 VAC.
(Principalmente se utiliza corriente continua (DC)). En algunos países,
se utilizan también diferentes tensiones, p. ej., 48 VDC o 120 VAC. La
potencia de la fuente de alimentación depende el control utilizado y de
las entradas/salidas conectadas.

El valor de la tensión de control permite una cierta tolerancia. En gene-


ral, los módulos del PLC están protegidos contra sobretensiones, de-
pendiendo del módulo a través del cual se realiza la unidad central de
control.
Tensión de la lógica
Además, un PLC requiere una alimentación para la lógica interna: La
tensión de la lógica, que forma las señales en la unidad central. Dado
que la tensión de la lógica debe cumplir con exigencias muy estrictas,
debe estar estabilizada. Se utilizan o bien 5 V (nivel TTL) o 10 V (nivel
CMOS), dependiendo del módulo a través del cual se realiza la unidad
central de control.
Hay tres posibilidades de tensión de alimentación:
1. La tensión de control y la tensión de la lógica se generan
completamente separadas de la tensión principal.
2. Dos fuentes de alimentación combinadas en una caja para la
generación de ambas tensiones.
3. La tensión de la lógica es generada a partir de la tensión de
control (no de la tensión principal).

TP301 • Festo Didactic


B-191
Capítulo 16

Supresión de interferencias
Todos los PLCs son extremadamente sensibles a las interferencias
eléctricas. Debe distinguirse entre dos versiones diferentes:
Interferencias que alcanzan la tensión de la lógica desde la alimen-
tación de tensión a través de la fuente de alimentación;
Interferencias que afectan a las líneas desde y hacia los sensores y
actuadores.

1. Interferencias en la tensión de la lógica


Un filtro principal de supresión de interferencias y un condensa-
dor protegen contra interferencias de este tipo. El filtro principal
de supresión de interferencias protege contra sobretensiones y
señales de interferencia de la alimentación de tensión. Un con-
densador almacena energía eléctrica, con lo que la tensión de
alimentación del control está protegida en el caso de breves fa-
llos de tensión.
Si este tipo de supresión de interferencias no ha sido incorporado
por el fabricante del PLC, deberá ser el usuario quien instale
consecuentemente un filtro principal de supresión de interferen-
cias y un condensador.

2. Interferencias en la línea desde y hacia sensores y actuadores


Los pulsos de interferencia en las líneas eléctricas pueden pro-
ducir falsas señales 1 ó 0 en las entradas de los PLCs, que no
corresponden a las emitidas por los sensores. Estas señales
pueden generarse por efecto de otros cables.
Este tipo de interferencias es peligrosa: Por ello, como norma, los
módulos de entrada de un PLC están protegidos por medio de
optoacopladores conectados en serie y por un retardo de las se-
ñales. El optoacoplador protege contra tensiones de hasta
5000 V aproximadamente. El retardo de la señal evita señales
espúreas, ya que estas generalmente son muy breves. El retar-
do puede oscilar entre 1 y 20 ms, según el tipo de PLC. Los
módulos de entrada de "Alta velocidad" (sin señal de retardo)
deben apantallarse, por ejemplo por medio de cables blindados.

Festo Didactic • TP301


B-192
Capítulo 16

Los módulos de salida contiene también un optoacoplador para protec-


ción contra sobretensiones. Además, las salidas está protegidas ante
cortocircuitos, aunque normalmente no ante cortocircuitos muy prolon-
gados.

Tensión inducida
Cuando se corta la tensión que alimenta a una carga inductiva (p. ej.
una bobina de una electroválvula), se crea un tensión inducida en la
bobina.
Esta tensión inducida, que puede alcanzar valores muy altos, debe eli-
minarse para proteger el módulo de salida. Para ello se utiliza un diodo
supresor. Los módulos de salida de muchos PLCs ya está provistos de
diodos supresores de este tipo. Sin embargo, en este caso, la tensión
residual se convierte en un factor de interferencia en los cables de
interconexión. Por ello deben tomarse medidas protectoras directamen-
te en el punto de origen, es decir, en la bobina: por medio de un diodo
supresor (sólo para corriente continua) o por medio de un varistor
(resistencia que depende de la tensión). También pueden utilizarse en
paralelo con la bobina dos diodos Zener polarizados inversamente.
Sin embargo, para tensiones que sobrepasen los 150 V, deben conec-
tarse en serie varios diodos.

PARO DE EMERGENCIA
Si se acciona el PARO DE EMERGENCIA, es esencial llegar a la si-
tuación que sea menos peligrosa, tanto para las personas como para
el sistema. Los elementos finales de control y los actuadores que pu-
dieran provocar situaciones peligrosas, deben desconectarse inmedia-
tamente (p. ej. husillos). Por el contrario, los elementos de control fina-
les y los actuadores que podrían provocar situaciones peligrosas a las
personas o al sistema cuando se desactivan, deberán seguir activados
incluso en un caso de emergencia (p. ej. dispositivos de sujeción). En
un sistema automatizado, en cualquier momento debe disponerse de la
posibilidad de accionar el PARO DE EMERGENCIA.
Esta es la razón por la que los controles electrónicos no deben asumir
la función de PARO DE EMERGENCIA. El circuito de PARO DE
EMERGENCIA debe ser establecido independientemente del PLC por
medio de la técnica de relés (contactos físicos). DIN 57 113 también lo
especifica, ya que sería imposible activar un PARO DE EMERGENCIA
con un control averiado o simplemente detenido.
Una vez que el PARO DE EMERGENCIA ha sido desenclavado, no debe
ser posible que la máquina se ponga en marcha automáticamente.

TP301 • Festo Didactic


B-193
Capítulo 16

Se ha cruzado un transistor de salida de un PLC. En la salida hay Ejemplo


aplicados 24 V permanentemente (correspondientes a una señal-1). La
bobina de la electroválvula está activada; el cilindro avanza, aunque la
salida no haya sido activada por el sistema. Si el PARO DE EMER-
GENCIA tuviera que ser ejecutado por el programa del PLC, permane-
cería inactivo, ya que el error se produce "fuera" del programa. Por
ello, la acción del PARO DE EMERGENCIA debe realizarse por hard-
ware directamente sobre los elementos de potencia.
Un método es conectar la función de PARO DE EMERGENCIA con la
tensión de alimentación de los módulos de salida. La conexión debe
ser a prueba de fallos. En el caso de un PARO DE EMERGENCIA,
todas las salidas deben asumir la señal-0. No importa si una determi-
nada salida haya sido activada o desactivada por el PLC.
Si se utiliza este método, los actuadores conectados o no deben mo-
verse o deben hacerlo hacia una posición de seguridad en el caso
pérdida de tensión! En lo posible, deberán utilizarse este tipo de válvu-
las y actuadores:
Válvulas neumáticas/hidráulicas:
Se utilizan válvulas de 5/4 ó 5/3 vías con posición central normalmente
cerrada (posición con bloqueo de las conexiones al cilindro). Estas vál-
vulas bloquean el cilindro entre dos cámaras de aceite o de aire. En el
caso de cilindros neumáticos deben elegirse tubos cortos entre cilindro
y válvula y restricciones en el aire de escape de la válvula.
Motores eléctricos
Se utilizan motores con freno. En el caso de un fallo de tensión, el
freno actúa inmediatamente como resultado de la fuerza de un muelle.

El circuito de PARO DE EMERGENCIA por Hardware realiza la verda-


dera función de seguridad. Adicionalmente, también puede enviarse al
PLC una señal de PARO DE EMERGENCIA. Independientemente de
la acción que se haya realizado por hardware, los programas del PLC
deben reaccionar en consecuencia; en este caso, desactivando todas
las salidas. Esto se define en un programa paralelo. Una vez que se
ha repuesto el PARO DE EMERGENCIA, el sistema no debería poder
arrancar de nuevo por sí solo. Debe accionarse un pulsador inde-
pendiente para volver a poner en marcha el sistema.

Festo Didactic • TP301


B-194
Capítulo 16

El nuevo arranque del sistema debe ser controlado por medio de un


programa del PLC. Hay dos posibilidades para el arranque después de
una emergencia:
Continuar a partir del mismo punto;
Situar el sistema en posición de partida y volver a poner en marcha
el sistema desde el origen.
En el segundo caso, es necesario pasar al modo manual o modo de
ajuste.
Si se requieren medidas de seguridad adicionales para el PARO DE
EMERGENCIA, deben utilizarse relés o controles neumáticos adicio-
nales por parte del usuario. También pueden utilizarse PLCs especia-
les de seguridad, que funcionan por medio de dos unidades centrales
separadas, con dos etapas conectadas en serie para cada salida (sis-
temas redundantes).

Conexión segura ante un fallo


La mayoría de las máquinas se ponen en marcha por medio de un
pulsador y se desconectan por medio de otro pulsador. El pulsador de
desconexión asume adicionalmente una función de seguridad: El pro-
ceso de trabajo puede ser interrumpido en cualquier momento y la má-
quina puede detenerse. Sin embargo, con el PARO DE EMERGENCIA,
todo el sistema se desconecta. A diferencia del PARO DE EMERGEN-
CIA, la función de DESCONEXIÓN (OFF) se controla a través del PLC.
Sin embargo hay que observar que la función de DESCONEXIÓN
debe mantenerse aunque el cableado del pulsador de desconexión sea
defectuoso. La conexión debe ser a prueba de fallos (fail-safe); es
decir, el pulsador DESCONEXIÓN debe conectarse y programarse en
forma de un contacto normalmente cerrado. La lista de asignaciones
facilita información relacionada con los estados físicos del elemento y
sus estados lógicos (señal-1 ó señal-0).

Ejemplo Un generador de señal supervisa la temperatura del aceite de una caja


de cambios. Por razones de seguridad, la conexión del generador de
señal debe ser a prueba de fallos: La señal-1 identifica la temperatura
correcta, la señal.0 la temperatura incorrecta. Si la conexión es defec-
tuosa, el generador de señal asume también una señal-0 (incluso en el
caso de que la causa no sea una temperatura incorrecta).
Esto elimina la situación en la que una condición crítica del sistema no
es indicada por el generador de señal por un cableado defectuoso.

TP301 • Festo Didactic


B-195
Capítulo 17

Capítulo 17

Comunicaciones con PLC

Festo Didactic • TP301


B-196
Capítulo 17

17.1 La necesidad de Por comunicaciones con PLC, entendemos la transferencia de informa-


comunicación ción, es decir, de datos, entre el control lógico programable y otros
dispositivos de procesamiento, en donde estos dispositivos se utilizan
como un medio auxiliar para tareas de control específicas, p. ej., entra-
da de datos a través de un ordenador o emisión de datos hacia una
impresora.
La automatización aumenta la necesidad de comunicación. Los datos
deben fluir continuamente desde la producción a otras áreas operati-
vas. Esto proporciona una visión de conjunto de los estados de la pro-
ducción y de las tareas individuales (adquisición de datos de produc-
ción).
Actualmente, los sistemas automatizados están equipados con comple-
jos sistemas de detección de errores y de fallos. Las indicaciones de
fallos y advertencias deben generarse, centralizarse y ser comunicadas
automáticamente al operador. Para ello se conecta al control una im-
presora – para seguimiento histórico – o un display electrónico para
indicación instantánea.
En algunos casos, los datos se transfieren al PLC por un ordenador en
un proceso activo, o se combinan varios dispositivos de control en una
red de sistemas.

17.2 Transmisión ¿Cómo puede comunicarse el PLC con otros dispositivos de procesa-
de datos miento de datos? Los bit individuales, que se combinan en una palabra
de datos (data word), deben transmitirse desde un terminal de datos a
otro.
Aquí debe hacerse una distinción básica entre dos métodos de trans-
misión de datos: serie o paralelo.
La transmisión de datos en paralelo significa que debe utilizarse una
línea independiente para cada señal binaria individual. Cuando los ge-
neradores de señal están, por ejemplo, conectados a un control lógico
programable, se instala un cable para cada pulsador, final de carrera y
sensor hasta un terminal de bornes y de ahí a la entrada del PLC.
Toda la información (“pulsador accionado ”, “cilindro extendido”) puede
así transmitirse simultáneamente (en paralelo) al PLC. Ya que en el
caso de transmisión paralela de señales de entrada y salida, se nece-
sita una línea para cada generador de señal, se necesitan kilómetros
de mazos de cables en aquellas instalaciones y máquinas que por su
complejidad ocupan muchas entradas/salidas.
Por ello, para la transmisión en paralelo de una palabra de datos (data
word) debe disponerse del suficiente número de líneas para transmitir
todos los bits de esta data word simultáneamente.
Con la transmisión de todos en serie se transmite una sola señal bina-
ria cada vez.

TP301 • Festo Didactic


B-197
Capítulo 17

Consecuentemente, se necesita una sola línea de datos para la trans-


misión en serie de palabras de datos, independientemente del número
de bits, para transmitir señales binarias consecutivamente. Para poder
identificar las diferentes señales en forma de palabra de datos, es ne-
cesario que el emisor y el receptor estén ajustados a la misma veloci-
dad de transmisión (frecuencia en Baudios), longitud de palabra, bit de
inicio y de parada y paridad.

Los diferentes procedimientos de codificación, transmisión y métodos 17.3 Interfaces


de funcionamiento, así como los diferentes métodos de protección de
datos hacen que sea esencial definir como estándares las característi-
cas eléctricas, funcionales y mecánicas de los interfaces.

Un interface paralelo muy extendido es el interface Centronics. Dispo-


ne de 8 líneas de datos para la transmisión, es decir, pueden transmi-
tirse 8 bits simultáneamente. El interface Centronics se utiliza muy a
menudo – en distancias cortas – para la conexión con impresoras.

Interfaces por tensión Interfaces por


corriente

Denominación V.24 Centronics 20 mA

Modo de serie paralelo serie


transmisión asíncrona asíncrona

Modo de full duplex simplex full duplex


funcionamiento

Estándard V.24 Centronics TTY


RS-232-C TTL

Distancia de
transmisión, hasta 30 m hasta 2 m hasta 1000 m
velocidad de 20 000 bit/s 106 bit/s 20 000 bit/s
transmisión
Tabla B17.1:
Interfaces

Festo Didactic • TP301


B-198
Capítulo 17

El interface más frecuentemente utilizado para la transmisión de datos


en serie es el V.24.
El interface paralelo Centronics y el serie V.24, ambos son interfaces
de tensión. Los bits están representados por ’0’ ó ’1’ a través de un
determinado nivel de tensión. Para crear este nivel de señal, debe in-
corporarse una línea de masa al interface V.24.
En ambos interfaces, se han definido líneas adicionales para el control de
los datos y la masa (tierra), aparte de las líneas para los datos en sí.
Algo más sencillo que el interface V.24 es una conexión configurada a
través de un interface serie de 20 mA. Todo lo que necesita este inter-
face en bucle de corriente en un bucle transmisor y uno receptor para
la transmisión de datos. Una corriente constante de 20 mA señala el
nivel ’0’ (lógica 0), "ausencia de corriente" señala el nivel ’1’ (lógica 1)
en la línea de datos. Este interface se utiliza bastante en la tecnología
de control debido a su inmunidad a interferencias.

17.4 Comunicación En los sistemas y máquinas automáticas debe transportarse una gran
en la zona de cantidad de información. Desde las simples señales de sensores bina-
campo rios, señales analógicas de sensores de medición de válvulas propor-
cionales, así como datos registrados y parámetros para el control de
procesos, deben ser intercambiados de forma fiable entre los compo-
nentes de la tecnología de control en un sistema automatizado.
El intercambio de datos de campo debe realizarse dentro de unos
tiempos de reacción especificados ya que de lo contrario partes del
sistema podrían seguir funcionando incontroladamente.
Un bus de campo es un sistema de transmisión serie digital de seña-
les y datos. Todas las estaciones en un bus de campo deben estar en
situación de recibir la comunicación de otras estaciones del bus e inter-
cambiar datos según un protocolo acordado. La estación del bus que
toma la iniciativa para el intercambio de datos se denomina master.
Las estaciones del bus que reciben o suministran datos puramente
bajo la iniciativa del master se denominan slaves.
Para la transmisión de datos en los sistemas de bus se utilizan cables
bifilares consistente en pares trenzados o cables coaxiales. Por ello, el
cableado de los sistemas conectados en forma de bus es mínimo.

TP301 • Festo Didactic


B-199
Capítulo 17

En sl mercado existen una gran cantidad de diferentes sistemas de


bus, que pueden dividirse en dos grandes grupos: sistemas de bus
abiertos y sistemas de bus cerrados.
Por sistemas de bus cerrados entendemos sistemas que son:
específicos de un fabricante
no hay especificaciones disponibles sobre el protocolo de transmi-
sión
no son compatibles. Además, no permiten la conexión con dispositi-
vos de otros fabricantes y la adaptación supone costes muy eleva-
dos.
Sistemas cerrados son, p. ej. SINEC L1 de Siemens, SUCOnet K de
Klöckner-Moeller, Data Highway de Allen Bradley, Festo Fielbus, Mode-
net de AEG/MODICON.
Contrariamente, los sistemas de bus abiertos tienen
protocolos e interfaces estandarizados,
protocolos declarados y
una gran cantidad de dispositivos de diferentes fabricantes que pue-
den conectarse al bus.
Son sistemas abiertos, p. ej. Profibus, Interbus-S, CAN bus, SINEC L2,
AS-i.
Las ventajas de utilizar un sistema abierto de bus son las siguientes:
Descentralización de las funciones de control
Coordinación de procesos en áreas separadas
Realización del flujo de datos de producción y control de forma pa-
ralela al flujo de materiales.
Simplificación de la instalación y reducción de los costes de cablea-
do (bus bifilar)
Simplificación de la puesta a punto de un sistema (mayor claridad,
subsistemas previamente verificados)
Reducción en los costes de servicio (diagnosis del sistema centrali-
zada)
Utilización de equipos de diferentes fabricantes en la misma red
Transmisión de datos del proceso hasta el nivel de planificación.

Festo Didactic • TP301


B-200
Capítulo 17

TP301 • Festo Didactic


B-201
Apéndice

Apéndice

Festo Didactic • TP301


B-202
Apéndice

Referencia de Fig. B1.2: Ejemplo de un PLC: AEG Modicon A120


las ilustraciones AEG Schneider Automation GmbH,
Steinheimer Straße 117, 63500 Seligenstadt

Fig. B1.4: PLC Compacto (Mitsubishi FX0)


Mitsubishi Electric Europe GmbH,
Gothaer Straße 8, 40880 Ratingen

Fig. B1.4: PLC Modular (Siemens S7-300)


Siemens AG,
AUT 111, Postfach 4848, 90475 Nürnberg

Bibliografía Kostka, Winfried Diccionario de la técnica de mando y automatización


Alemán/Español - Español/Alemán
Festo Didactic KG, Esslingen, 1988

Léxico de la tecnología de control (En Inglés)


Festo Didactic KG, Esslingen, 1988

Directivas DIN VDE 0113/ Equipamiento eléctrico de maquinaria industrial;


y estándares EN 60204 Definiciones generales

IEC 1131/ Controles lógicos programables;


DIN EN 61131 Parte 1: Información general
Parte 2: Equipos, requerimientos y ensayos
Parte 3: Lenguajes de programación
Parte 4: Directivas de usuario (en preparación con ICE)
Parte 5: Especificación del servicio de mensajes
(en preparación con ICE)

DIN IEC 113 Documentaciòn sobre circuitos;


Parte 7: Utilización de símbolos para elementos binarios
en esquemas de circuitos

IEC 848 Preparación de diagramas de funciones para sistemas


de control

TP301 • Festo Didactic


B-203
Índice

Índice

Festo Didactic • TP301


B-204
Índice

A
Acciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-133
Acumulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
Ajuste de la tensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
Algebra de Boole
reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-29
Amplificación de potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Áreas de aplicación de un PLC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-111

B
Bloque de función F_TRIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-158
Bloque de función R_TRIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-158
Bloque de función RS . . . . . . . . . . . . . . . . . . . . . . . . . . 12-154 - 12-155
Bloques de acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-133
Bloques de función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-81
Bucle FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-115
Bucle REPEAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-116
Bucle WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-117
Bus de campo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-198

C
Calificadores de acción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-137
Comunicación en la zona de campo . . . . . . . . . . . . . . . . . . . . . . . 17-198
Condiciones de transición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-130
Contador de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-37
Contador incremental/decremental . . . . . . . . . . . . . . . . . . . . . . . . 14-178

TP301 • Festo Didactic


B-205
Índice

D
Declaración de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-71
Definición básica de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
Derivación alternativa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-126
Derivación paralela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-129
Detección de la señal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Diagrama de bloques de función. . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57
elementos de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-92
Diagrama de contactos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57
elementos del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-96
Diagrama de desplazamiento-etapa . . . . . . . . . . . . . . . . . . . . . . 15-186
Diagrama de funciones secuencial . . . . . . . . . . . . . . . . . . . 5-59, 15-180
ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-143
Diagrama de Karnaugh-Veitch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30
Diagrama en escalera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57
Direccionamiento simbólico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66
Dispositivo programador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Documentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53

E
Ecuación Booleana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20
EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-41
El código BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
El sistema de numeración binario . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
El sistema de numeración decimal . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-41
Estándares
IEC 1131. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Etapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-122
Etapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-120
Etiqueta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-102
Evaluación de flancos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-157
Expresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-108

Festo Didactic • TP301


B-206
Índice

F
Fallo de tensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-194
Filtrado de las señales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43
Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Forma estándar
disyuntiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28
Forma estándar conjuntiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28
Función AND, conjunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21
Función NOT, negación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20
Función OR, disyunción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23
Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-76
definidas por el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-85
Funciones de conmutación
simplificación de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26
Funciones de conteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-172
Funciones estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-79
Funciones lógicas básicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20

H
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Herramienta de programación y diagnosis . . . . . . . . . . . . . . . . . . . . 4-47

I
Imagen del proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Inicialización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-75
Instrucción CASE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-114
Instrucción EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-118
Instrucción IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-112
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-102
Instrucciones de iteración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-115
Instrucciones de selección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-112
Instruction List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58
Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-197

L
Ladder diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-57
Lenguajes de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-56
Línea de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Línea de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Línea de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Lista de Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58

TP301 • Festo Didactic


B-207
Índice

M
Memoria de programas de aplicación . . . . . . . . . . . . . . . . . . . . . . . 4-40
Microordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Modelo de fases
generación de software de PLC. . . . . . . . . . . . . . . . . . . . . . 5-50
Módulo de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Módulo de entradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
módulo de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6, 4-44
potencia admisible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Multitarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5

N
Numeración hexadecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
Números reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15

O
Operador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-102
Operandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-102
Optoacoplador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
Orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
Ordenador personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46

P
PARO DE EMERGENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-192
PLC
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-50
Prioridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-109
Programa de PLC
procesamiento cíclico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
tiempo de ciclo/scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-88
Protección ante cortocircuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Protección ante sobrecargas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Puesta a punto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-188
Pulse timer
Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-163

Festo Didactic • TP301


B-208
Índice

R
RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
Recursos de estructuración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-53
configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-54
programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-54
Recursos de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-62
denominaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-62
Red de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-92
Registro de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
Relés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
Renglones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-96
Representación de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66
Retardo de la señal de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43

S
Seguridad funcional de un PLC . . . . . . . . . . . . . . . . . . . . . . . . . . 16-190
Señal
binaria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Señales
generación de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Sequential function chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-59
Simplifiación de funciones lógicas. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28
Sistemas de bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-199
Sistemas de control lógico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-148
Sistemas de control secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-180
Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Statement list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58
Structured text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58
Supresión de interferencias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-191

TP301 • Festo Didactic


B-209
Índice

T
Tabla de la verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-20
Tabla de operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-103
Temporizador a la conexión . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-165
Temporizador a la desconexión. . . . . . . . . . . . . . . . . . . . . . . . . . 13-167
Temporizador de pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-163
Temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-162
Tensión de alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-190
Tensión de la lógica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-190
Tensión inducida mútua. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-192
Texto estructurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-58
Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-69
Transición. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-124
Transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-120
Transmisión de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-196
Transmisión de datos en paralelo . . . . . . . . . . . . . . . . . . . . . . . . 17-196
Transmisión de todos en serie. . . . . . . . . . . . . . . . . . . . . . . . . . . 17-196

U
Unidad aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
Unidad Central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
Unidad central de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6
Unidad de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-37
Unidades de organización de programa . . . . . . . . . . . . . . . . . . . . . 6-76

V
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-65
directamente direccionadas . . . . . . . . . . . . . . . . . . . . . . . . . 6-65
von-Neuman, principio de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-37

Festo Didactic • TP301


B-210
Índice

TP301 • Festo Didactic

You might also like