Académique Documents
Professionnel Documents
Culture Documents
Sección B – Fundamentos
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
Capítulo 1
El PLC en la
tecnología de automatización
Fig. B1.1:
Ejemplo de aplicación
de un PLC
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."
Programa PLC
Fig. B1.3:
Componentes de un Sensores Actuadores
sistema PLC
Fig. B1.4:
PLC compacto
(Mitsubishi FX0),
PLC Modular
(Siemens S7-300),
PLC con tarjetas
(Festo FPC 405)
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.
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.
Capitulo 2
Fundamentos
7 1 7 1 8 7 1 1
Ejemplo
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".
1 0 1 1 0 0 0 1
Ejemplo
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
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
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:
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.
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
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
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
Capítulo 3
Operadores Booleanos
24V
S1
(I)
H1
(O)
0V
Fig. B3.1:
Esquema del circuito
I O
0 1
1 0
Tabla de la verdad
I 1 O
Fig. B3.2:
Función NOT
I=I
I 1 I 1 I
Fig. B3.3:
Dos funciones
l’ógicas NOT
24V
S1
(I1)
S2
(I2)
H1
(O)
0V
Fig. B3.4:
Esquema del circuito
I1 I2 O
0 0 0
0 1 0
1 0 0
1 1 1
Tabla de la verdad
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
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
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
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
1.0
B4
B3
B1
B2
Fig. B3.8:
estación de clasificación
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
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
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)
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,
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
= 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.
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
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
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
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
Capítulo 4
Bus de datos
Fig. B4.2:
Control Lógico Programable
Festo FPC 101
Bus de datos
Bus de
Fig. B4.3: direcciones
Diseño de un
microprocesador
Bus de datos
Microprocesador Memoria
Instrucción Registro de
instrucciones
Contador de
programa
+1
Direcciones
Tabla de imagen
Entradas Entradas
Programa PLC
Tabla de imagen
Salidas Salidas
Fig. B4.5:
Procesamiento cíclico
de un programa de PLC
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.
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
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.
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
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
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.
Capítulo 5
Programación de un PLC
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
RECURSO DE Estructuración
CONFIGURACIÓN del nivel de
TAREA
Configuración de
VAR_GLOBAL un sistema de configuración
RUTA_ACCESO automatización
Fig. B5.2:
IEC 1131-3
método de estructuración
Tarea_ Tarea_
Tarea_1 Tarea_2 cíclica unica
Programa
Programa Programa estadísticas
posición_inicial transp_vacío
Programa
Guarda_datos
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.)
Pieza_TipoB
Fig. B5.4:
Ejemplo del lenguaje en
diagrama de contactos
Pieza_presente
Taladro_ok
Fig. B5.5:
Ejemplo del lenguaje en
bloques de funciones
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
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
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.
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
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
MX2 Memoria 2
Entrada
en inserto No. 3
en tarjeta No. 8
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:
Descripción Ejemplos
Descripción Ejemplos
Fecha D#1994-07-21
DATE#1994-07-21
d Dias
h Horas
m Minutos
s Segundos
ms Milisegundos
Ejemplo Descripción
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.
TYPE
Colo: (ROJO, AZUL, AMARILLO, NEGRO);
END_TYPE
Estructuras Coordenadas:
STRUCT
X:REAL;
Y:REAL;
Tabla B6.5: END_STRUCT;
Tipos de datos derivados
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
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.
VAR_INPUT
Fig. B6.6: Input : INT; (*Valor de entrada *)
Declaración de una END_VAR
variables de entrada
VAR_OUTPUT
Fig. B6.7: Result : INT; (*Valor de realimentación *)
Declaración de una END_VAR
variable de salida
VAR_IN_OUT
Value : INT; Fig. B6.8:
END_VAR Declaración de una
variable de entrada/salida
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.
VAR_GLOBAL
Fig. B6.10: Global_value: INT;
Declaración de una END_VAR
variable global
VAR_EXTERNAL
Fig. B6.11: Global_value: INT;
Declaración de acceso a END_VAR
una variable global
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.
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.
F nombre
X
Y
Z
Fig. B6.14: Entradas Salida
Representación
gráfica de una función
VAR
AT %QW4 : INT;
AT %IW9 : INT;
AT %IW7 : INT;
AT %MW1 : INT;
END_VAR
SHL
%IW2 IN %MW5 b) con nombres de
4 N parámetros formales
Fig. B6.15:
Uso de parámetros
formales con funciones
Fig. B6.16:
Representación de
negaciones Booleanas
general ejemplo
VAR
INT ADD INT AT %IW1 : INT;
AT %IW2 : INT;
INT AT %MW3 : INT;
END_VAR
general ejemplo
VAR
AT %IW1 : INT;
INT ADD_INT INT AT %IW2 : INT;
INT AT %MW3 : INT;
END_VAR
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_BIT Todos los tipos de datos de secuencia de bits, tales como BOOL,
Tabla B6.8:
BYTE, WORD etc.
Tipos de datos genéricos
* * * = nombre o símbolo
***
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
* * * = nombre o símbolo
EQ = Igual
a) Representación gráfica
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:
b) Representación gráfica
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
* * * = nombre o símbolo
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.
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
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)
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
TP Pulso de tiempo
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
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
FUNCTION_BLOCK
(* Descripción del interface externo *)
Filtro_rebotes
BOOL S_ON S_OFF BOOL
TIME E_TIME
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
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
Capítulo 7
Temp >
60
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 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.
Variante_1:
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.
%M4 &
%I 1 >=1
%I 2
%I 1 >=1
%I 2
Fig. B7.3:
FBD con
estructuras en bucle
Capítulo 8
Diagrama de contactos
%M1.5 %Q3.5
Fig. B8.1:
Estructuta básica
de un renglón
Contactos
Bobinas
Bobina
/ Bobina negada
a) Función AND
b) Función OR
%I 1.5 %Q2.3
%M3.4
Fig. B8.2:
Conexiones básicas
lógicas en diagrama
de contactos
a) Incorporación de funciones
Sumar_act + Suma_ok
EN ENO
Cantidad_1
Cantidad_2 Nivel_llenado
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
%I 1.1 %M2.5
Variante_1
Variante_1:
%M2.1 %Q1.0
%I 2.5
Fig. B8.4:
Salto condicional en LD
Capítulo 9
Lista de instrucciones
Instrucción
Operador y
Etiqueta Operando Comentario
Modificador
9-2 Operadores
OR N, ( BOOL OR Booleano
MUL ( Multiplicación
DIV ( División
GT ( Comparación: >
GE ( Comparación: >=
EQ ( Comparación: =
LE ( Comparación: <=
LT ( Comparación: <
Fig. B9.2:
Uso y significado
de los modificadores
Capítulo 10
Texto estructurado
Exponenciación **
Signo –
Complemento NOT
Multiplicación *
División /
Módulo MOD
Adición +
Subtracción –
Igualdad =
Desigualdad <>
SIN(X)
4*COS(Y)
A≤B
A+B+C
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);
Instrucciones de selección
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
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.
IF X < 0 THEN
Valor := -1;
Error := 1;
RETURN;
END_IF
Y := LOG(X);
Instrucción IF
La forma general de una instrucción IF es:
Error := 0;
IF Pieza_ok THEN Numero := Numero + 1;
ELSE Error := 1;
END_IF;
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;
Bucle FOR
La representación estándar para el bucle FOR es:
FOR Variable := Expresion TO expresion [ expresion BY ] DO
instruccion(es);
END_FOR;
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;
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:
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;
Capítulo 11
e) Derivación alternativa
Etapa_3
E F
Etapa_4 Etapa_5
G H
Etapa_4 Etapa_5
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.
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 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.
Etapa_5
Etapa_6
Etapa_7
Fig. B11.3:
F
Etapas y transiciones
en secuencia
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.
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
Etapa_7
2 1
D E
Fig. B11.5:
Derivación alternativa Etapa_8 Etapa_9
con prioridad definida
por el usuario
Etapa_3
Etapa_4
D
Etapa_5
E F
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.
G
Etapa_7
H Fig. B11.7:
Representación de una
derivación en paralelo triple
Etapa_4
Etapa_3
Etapa_4
END_TRANSITION
END_TRANSITION
a b c
d
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
Acción_2
Acción_2
%IX0.5 %QX1.2
Lenguaje IL Lenguaje ST
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
Pos_1
Etapa_3 S Cilindro_2
S Vacio_activo Vac_on
Vac_on
Pos_2
Fig. B11.19:
Uso de variables
de realimentació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
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)
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)
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
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
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
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
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
SL
%QX12
T#10s
Etapa 1
activa 0
10s 10s
1 Fig. B11.28:
%QX12
0 Acción memorizante y
limitada en el tiempo
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
1.0 2.0
B3 B4
B6 B7
B1 B2
3.0
B5 B8 Fig. B11.30:
Croquis de situación
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.
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
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.
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
a) LD b) FBD
S1 H1
/ S1 NOT H1
c) IL d) ST
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.
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
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.
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
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
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
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
Bloque de función RS
SR
BOOL S1 Q1 BOOL
BOOL R
Fig. B12.13:
Bloque de función SR, de
activación prioritaria
Bloque de función RS
RS
BOOL S Q1 BOOL
BOOL R1
Fig. B12.14:
Bloque de función RS,
desactivación prioritaria
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
a) LD b) FBD
B1 H1 RS_H1
S RS
B1 S Q1 H1
S1 H1
S1 R1
R
c) IL d) ST
or
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
R_TRIG
Fig. B12.18:
Bloque de función BOOL CLK Q BOOL
R_TRIG,
flanco ascendente
F_TRIG
Fig. B12.19:
Bloque de función BOOL CLK Q BOOL
F_TRIG,
flanco descendente
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
d) ST
Capítulo 13
Temporizadores
d Día
h Hora
m Minuto
s Segundo
ms Milisegundo
T#2h15m
t20s
T#10M25S
t#3h_40m_20s
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
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
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
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.
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
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
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
Capítulo 14
Contadores
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
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
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)
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
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
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
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
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.
0 N Posición inicial
Tiempo transcurrido
Tiempo transcurrido
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.
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.
d g
3 5
e h
4
i
Fig. B15.3:
Derivación alternativa
3 5
e f
4 6
g
7
Fig. B15.4:
Derivación en paralelo
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
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.
2 Pieza expulsada
Pieza liberada
2.3 S Pinzar pieza
S Pinza a posición 2
Fig. B15.7:
Estructura de un diagrama
desplazamiento-paso
Capítulo 16
Puesta a punto y
seguridad funcional de un PLC
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
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.
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.
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.
Capítulo 17
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.
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
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.
Apéndice
Í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
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
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
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
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
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