Está en la página 1de 89

PROGRAMA MINERA ESCONDIDA

Mantener
Controladores
de Procesos
1
Módulo: Controladores de Procesos
CUADERNO DEL INSTRUCTOR

MÓDULO
PROGRAMA MINERA ESCONDIDA

Mantener Controladores de Procesos


Cuaderno del instructor

2
Módulo: Controladores de Procesos
INDICE DE
CONTENIDO

Creación de un nuevo proyecto ........................................................................................... 11


Configuración de hardware .............................................................................................. 13
Definición de variables ..................................................................................................... 15
Tipos de datos................................................................................................................... 16
Descripción general de las familias de tipos de datos ..................................................... 17
Tipos de datos elementales (EDT) con formato Binario................................................... 18
Formato binario ............................................................................................................ 18
Tipos enteros ................................................................................................................ 20
Tipo entero (INT) .......................................................................................................... 20
Tipo entero doble (DINT) .............................................................................................. 20
Tipo entero sin signo (UINT) ......................................................................................... 21
Tipo entero doble sin signo (UDINT) ............................................................................ 21
Tipo Time ...................................................................................................................... 21
Introducción de un valor .............................................................................................. 22
Tipo de datos real ......................................................................................................... 22
Tipos de números que se pueden representar ............................................................ 23
Ejemplos de inexactitud del valor normalizado ........................................................... 25
Tipos de datos elementales con formato de cadena de bits ....................................... 25
Lenguaje de bloques de funciones FBD ................................................................................ 27
Información general sobre el lenguaje de bloques de funciones FBD ............................. 27
Objetos ......................................................................................................................... 28
Tamaño de la sección ................................................................................................... 28
Conformidad con IEC .................................................................................................... 29
Función elemental ........................................................................................................ 29

3
Módulo: Controladores de Procesos
Bloque de funciones elemental .................................................................................... 30
Los bloques de funciones derivados (DFB) ................................................................... 31
Procedimiento .............................................................................................................. 31
Parámetros ................................................................................................................... 32
Variables públicas ......................................................................................................... 33
Variables privadas......................................................................................................... 34
Notas sobre la programación ....................................................................................... 34
Llamada múltiple de una instancia de bloque de funciones ........................................ 35
EN y ENO ....................................................................................................................... 35
Llamada a una subrutina .............................................................................................. 38
Elementos de control ................................................................................................... 39
Conexión ....................................................................................................................... 40
Representación ............................................................................................................. 40
El cruce se representará con una conexión "interrumpida". ....................................... 40
Notas sobre la programación ....................................................................................... 41
Objeto de texto............................................................................................................. 42
Secuencia de ejecución de los FFB ................................................................................... 42
Secuencia de ejecución de redes.................................................................................. 42
Flujo de señal dentro de una red ................................................................................. 43
Prioridades a la hora de determinar el flujo de señal dentro de una sección. ............ 43
Modificación de la secuencia de ejecución .................................................................. 45
Conexión en lugar de parámetros reales ..................................................................... 46
Posiciones de las redes ................................................................................................. 47
Determinación explícita................................................................................................ 48
Posiciones de los FFB .................................................................................................... 49
Configuración de bucles - Bucles no permitidos .......................................................... 50
Generación a través de un parámetro real .................................................................. 50
Bloques más utilizados ..................................................................................................... 51
Operaciones básicas de lógica ...................................................................................... 51
R_TRIG y F_TRIG ........................................................................................................... 52

4
Módulo: Controladores de Procesos
Función Set-Reset (SR).................................................................................................. 53
Ejercicio 1...................................................................................................................... 55
Temporizadores TON y TOFF ........................................................................................ 56
Pulso de duración definida TP ...................................................................................... 58
EJERCICIO 2................................................................................................................. 59
Contadores crecientes y decrecientes CTU y CTD ........................................................ 61
Función MOVE .............................................................................................................. 62
Señales análogas................................................................................................................... 64
Escalamientos ................................................................................................................... 64
Ejercicio 3...................................................................................................................... 67
Comparadores .............................................................................................................. 68
Comparador “mayor que” (GT) .................................................................................... 68
Comparador “mayor o igual que” (GE)......................................................................... 68
Comparador “menor que” (LT) ......................................................................................... 69
Comparador “menor o igual que” (LE) ......................................................................... 69
Comparador “igual que” (EQ) ....................................................................................... 70
Comparador “Distinto de” (NE) .................................................................................... 70
Operaciones matemáticas ................................................................................................ 71
Suma (ADD)................................................................................................................... 71
Resta (SUB) ................................................................................................................... 71
Multiplicación (MUL) .................................................................................................... 72
División (DIV) ................................................................................................................ 72
Ejercicio 4...................................................................................................................... 73
Otras funciones................................................................................................................. 74
Conversión de enteros a reales y viceversa ................................................................. 74
Función selección (SEL)................................................................................................. 75
Control PID........................................................................................................................ 76
Modos de funcionamiento ........................................................................................... 76
Limitación de variable manipulada .............................................................................. 77
Restablecimiento anti-windup ..................................................................................... 78

5
Módulo: Controladores de Procesos
Cambio de automático a manual (tracking) ................................................................. 78
Selección de los tipos de control .................................................................................. 78
Ejercicio 5...................................................................................................................... 79
Uso de Arrays (vectores y matrices) ................................................................................. 80
Filtro adelanto-atraso ................................................................................................... 81
Integración con dispositivos vía Ethernet TCP/IP ............................................................. 82
Empaquetamiento de bits ............................................................................................ 84
Operaciones en línea ............................................................................................................ 85
Forzado de discretas en línea ........................................................................................... 85
Actividades Prácticas ............................................................................................................ 86
Actividad 2 .................................................................................................................... 87
Actividad 3 .................................................................................................................... 88
Actividad 4 .................................................................................................................... 89

6
Módulo: Controladores de Procesos
7
Módulo: Controladores de Procesos
IDENTIFICACIÓN DEL CURSO
Kkk

NOMBRE

Mantener Controladores de Procesos

COMPETENCIAS A DESARROLLAR (CONTEXTO)

Conocer y aplicar las competencias para controladores de procesos,


con software asociado,

UCL ASOCIADAS
Mantener Controladores de Procesos

ÁREA PRODUCTIVA
Planta.

HORAS TOTALES

16 horas

8
Módulo: Controladores de Procesos
RESUMEN DEL CURSO

En este curso usted seguirá la siguiente trayectoria:

Mantener controladores de Procesos

Tema 3
Tema 1 Tema 2
Señales Análogas y otras
Interfaz asociada Señales Discretas
funciones

9
Módulo: Controladores de Procesos
TEMA 1: INTERFAZ ASOCIADA

1. Conceptos Fundamentales

Aprendizaje esperado

Utilizar interfaz

Creación de un nuevo Configuración de Definición de variables y


proyecto Hardware tipos de datos

10
Módulo: Controladores de Procesos
Creación de un nuevo proyecto

Al iniciar el software de desarrollo de lógica, para un PLC Modicon, con “control expert” se
debe seleccionar la opción “nuevo” desde el menú fichero, con lo cual aparecerá la siguiente
ventana:

Esto significa que el proceso se inicia con la selección de la CPU a utilizar y el backplane
correspondiente.

11
Módulo: Controladores de Procesos
Realizado el paso anterior aparecerá una ventana etiquetada como “Explorador de
proyectos” (vista estructural), la que se muestra a continuación:

Para continuar con el desarrollo del proyecto seguiremos con la definición de los módulos
a utilizar.

12
Módulo: Controladores de Procesos
Configuración de hardware
Acceda a la configuración del PLC, eligiendo en la ventana anteriormente mostrada, la
opción “BUS PLC” (haciendo un doble clic en dicha opción). Luego de ello se mostrarán 2
nuevas ventanas, que son: El catálogo de hardware y la ventana “BUS PLC”, que se muestran
en la siguiente página

Ventana para la selección de los módulos

13
Módulo: Controladores de Procesos
Ventana que muestra la configuración del hardware del PLC

La operación para definir módulos en el PLC es bastante simple:


a. Seleccione el módulo y arrástrelo hasta el slot a utilizar (desde ventana del catálogo
de hardware hacia “BUS PLC”)
b. Seleccione en dirección topológica, para tipo de datos E/S, Topológico. Nota: más
adelante veremos la característica del “DDT del dispositivo” (tipos de datos
derivados), como dirección topológica

14
Módulo: Controladores de Procesos
Definición de variables
Finalizada la configuración del hardware, procederemos a definir las variables elementales,
haciendo doble clic en la opción correspondiente:

En la siguiente ventana procederemos a definir las variables del PLC. A manera de ejemplo
definamos la variable “ED_1_Ejemplo” para el primer canal de un módulo de entradas
discretas, conectado en el Slot 2. Esto implica que deberemos utilizar la dirección %I0.2.0
para nuestra variable (o TAG), que en este caso se refiere a una variable discreta (on/off) y
por lo tanto quedará definida como booleana (tipo)

Para poder continuar, con la definición de variables, se hace necesario que conozcamos los
distintos tipos de datos que podremos utilizar. Ello pasa a detallarse en las siguientes
páginas

15
Módulo: Controladores de Procesos
Tipos de datos
Un dato designa a un objeto en el que se pueden iniciar instancias, por ejemplo:

 Una variable,
 Un bloque de función.

Los datos se definen en tres fases. Dichas fases son:


 La fase tipos de datos, en la que se indica:
o Su categoría,
o Su formato.
 La fase instancias de datos, en la que se definen su ubicación en la memoria y su
propiedad, que puede ser:
o Ubicados o
o No ubicados.
 La fase referencias de datos, en la que se define su medio de acceso:
o Por valor inmediato,
o Por nombre,
o Por dirección.

A continuación, se indican las tres fases que caracterizan los datos:


Iniciar una instancia en un elemento de datos consiste en asignarle una ranura de memoria
según su tipo.
Referenciar un elemento de datos consiste en definir una referencia para este (nombre,
dirección

16
Módulo: Controladores de Procesos
Descripción general de las familias de tipos de datos
Un tipo de dato es una información de software que especifica, para un dato:

 Su estructura,
 Su formato,
 Una lista de sus atributos y
 Su comportamiento.

Todas las instancias del tipo de datos comparten estas propiedades.

Las familias de tipos de datos se clasifican en diferentes categorías

En el presente curso nos centraremos en los datos EDT

17
Módulo: Controladores de Procesos
Tipos de datos elementales (EDT) con formato Binario
Los tipos de datos en formato binario pertenecen a la familia EDT (tipo de datos
elementales), que agrupa los tipos de datos simples en contraposición a los derivados
(tablas, estructuras y bloques de funciones).

Formato binario
Un elemento de datos con formato binario se compone de uno o varios bits, cada uno de
los cuales está representado por una de las cifras de base 2 (0 o 1).
La escala del elemento de datos depende del número de bits que la componen.
Ejemplo:

Un elemento de datos puede ser:

 Con signo. En este caso, el bit de rango más alto es el bit con signo:
o 0 indica un valor positivo
o 1 indica un valor negativo
El rango de valores es el siguiente:

 Sin signo. En este caso todos los bits representan su valor


El rango de valores es el siguiente:

Bits = número de bits (formato).

18
Módulo: Controladores de Procesos
Lista de tipos de datos

Variables de PLC que pertenecen a los tipos booleanos:

19
Módulo: Controladores de Procesos
Tipos enteros
Los tipos enteros permiten representar un valor en diferentes bases. Dichas bases son:
 Base 10 (decimal) de forma predeterminada, en cuyo caso el valor llevará o no signo
en función del tipo de entero.
 Base 2 (binaria), en cuyo caso el valor no tiene signo y el prefijo es 2#.
 Base 8 (octal), en cuyo caso el valor no tiene signo y el prefijo es 8#.
 Base 16 (hexadecimal), en cuyo caso el valor no tiene signo y el prefijo es 16#.

NOTA: En la representación decimal, si el tipo elegido tiene signo, el valor puede ir


precedido del signo + o - (el signo + es opcional).

Tipo entero (INT)


Tipo con signo y formato de 16 bits.
En la tabla se indica el rango de cada base.

Tipo entero doble (DINT)


Tipo con signo y formato de 32 bits.
En la tabla se indica el rango de cada base.

20
Módulo: Controladores de Procesos
Tipo entero sin signo (UINT)
Tipo sin signo y formato de 16 bits.
En la tabla se indica el rango de cada base.

Tipo entero doble sin signo (UDINT)


Tipo sin signo y formato de 32 bits.
En la tabla se indica el rango de cada base.

Tipo Time
El tipo Time T# o TIME# se representa mediante un tipo entero doble sin signo (UDINT)
Indica una duración en milisegundos que, aproximadamente, representa una duración
máxima de
49 días.
Las unidades de tiempo permitidas para representar el valor son:

 Días (D)
 Horas (H)
 Minutos (M)
 Segundos (S)
 Milisegundos (MS)

21
Módulo: Controladores de Procesos
Introducción de un valor
En esta tabla, se muestran los modos posibles de introducción del valor máximo del tipo
Time, según las unidades de tiempo permitidas.

Tipo de datos real


Los tipos de datos en formato real pertenecen a la familia EDT (tipo de datos elementales),
que agrupa los tipos de datos simples en contraposición a los derivados (tablas, estructuras
y bloques de funciones).
Recapitulación sobre el formato real
El formato real (coma flotante en el estándar ANSI/IEEE 754) se codifica en formato de 32
bits, que corresponde a los números de coma flotante de un solo decimal.
Los 32 bits que representan el valor de coma flotante están organizados en tres campos
distintos.
Estos son:

 S, el bit de signo que puede tener el valor:


 0, para un número de coma flotante positivo.
 1, para un número de coma flotante negativo.
 e, el exponente codificado en un campo de 8 bits (entero en formato binario).
 f, la parte de coma fija codificada en un campo de 23 bits (entero en formato
binario).

Representación:

22
Módulo: Controladores de Procesos
El valor de la parte de coma fija (mantisa) está entre [0, 1[, y se calcula mediante la fórmula
siguiente:

Tipos de números que se pueden representar


Son los números:

 Normalizados
 No normalizados
 De valores infinitos
 Con valores +0 y -0

En esta tabla se recogen los valores de los distintos campos según el tipo de número.

NOTA:
El estándar IEC 559 define dos clases de NAN (no un número): QNAN y SNAN.

 QNAN: es un NAN cuyo bit 22 se establece en 1


 SNAN: es un NAN cuyo bit 22 se establece en 0

Se comportan de la siguiente forma:

 QNAN no activa errores cuando aparecen en operandos de una función o una


expresión.
 SNAN activa un error cuando aparece en operandos de una función o una expresión
aritmética

23
Módulo: Controladores de Procesos
En esta tabla se recoge la fórmula de cálculo del valor del número de coma flotante:

Donde:
M: Mantisa (23 bits, bit 0..22)
e: Exponente (8 bits, bit 23..30)
S: Signo, 1 = negativo, 0 = Positivo (bit 31)
El tipo real
Presentación:

Rango de valores (zonas achuradas):

Si el resultado de un cálculo es:

 Un número entre -1,1754944e-38 y 1,1754944e-38, es un DEN


 Menor que -3,4028234e+38, aparece el símbolo -INF (para -infinito)
 Mayor que +3,4028234e+38, aparece el símbolo INF (para +infinito)
 Indefinido (raíz cuadrada de un número negativo), aparece el símbolo NAN

24
Módulo: Controladores de Procesos
Ejemplos de inexactitud del valor normalizado
La aplicación codificará 7,986 como:

Utilizando la fórmula:

Tipos de datos elementales con formato de cadena de bits


La particularidad de este formato es que el conjunto de los bits que lo componen no
representa un valor numérico, sino una combinación de bits separados. Los datos que
pertenecen a los tipos de este formato se pueden representar en tres bases. Estos son:

 Hexadecimal (16#)
 Octal (8#)
 Binario (2#)

Existen tres tipos de datos, con formato de cadena de bits, estos son:

25
Módulo: Controladores de Procesos
TEMA 2: LENGUAJE DE
PROGRAMACIÓN

2. Conceptos Fundamentales

Aprendizaje esperado

Lenguaje de programación FBD y aplicación en señales discretas

Lenguaje de bloques de Secuencia de ejecución Bloques más utilizados


funciones FBD de los FBD para señales discretas

26
Módulo: Controladores de Procesos
Los lenguajes de programación que pueden ser utilizados, en control Expert, son

 Lenguaje de bloques de funciones (FBD)


 Diagrama de contactos (LD)
 Lenguaje de ejecución secuencial (SFC)
 Lista de instrucciones (IL)
 Texto estructurado (ST)

Lenguaje de bloques de funciones FBD

Es un lenguaje gráfico que permite al usuario programar elementos (bloque de funciones


del PLC) en tal forma que ellos aparecen interconectados al igual que un circuito electrónico.
Generalmente utilizan símbolos lógicos para representar al bloque de función. Las salidas
lógicas no requieren incorporar una bobina de salida, porque la salida es representada por
una variable asignada a la salida del bloque.
El diagrama de funciones lógicas, resulta especialmente cómodo de utilizar, a técnicos
habituados a trabajar con circuitos de puertas lógicas, ya que la simbología usada en ambos
es equivalente.
Adicionalmente a las funciones lógicas estándares y específicas del vendedor, el lenguaje
FBD de la Norma IEC 1131-3 permite al usuario construir sus propios bloques de funciones,
de acuerdo a los requerimientos del programa de control.

Información general sobre el lenguaje de bloques de funciones FBD


El editor FBD permite la programación gráfica de bloques de funciones de acuerdo con la
norma IEC 61131-3.

27
Módulo: Controladores de Procesos
Representación de una sección FBD

Objetos
Los objetos del lenguaje de programación FBD (diagrama de bloques de funciones) sirven
de ayuda para dividir una sección en varios:

- EF y EFB (funciones elementales y bloques de funciones elementales)


- DFB (bloques de funciones derivados)
- Procedimientos y
- Elementos de control

Estos objetos, denominados FFB en su conjunto, pueden conectarse entre sí mediante:


- Conexiones o
- Parámetros reales

La lógica de la sección se puede comentar por medio de objetos de texto

Tamaño de la sección
Una sección FBD está compuesta por una ventana con una sola página.
Esta página tiene un fondo de reticulado. Una unidad de cuadrícula está compuesta por 10
coordenadas. Una unidad de cuadrícula es la distancia mínima posible entre dos objetos de
una sección FBD.

28
Módulo: Controladores de Procesos
El lenguaje de programación FBD no está basado en celdas; los objetos están alineados con
las coordenadas.
Una sección FBD puede configurarse con un número de celdas (coordenadas horizontales y
verticales de la cuadrícula).

Conformidad con IEC


Para obtener una descripción de la descripción de la conformidad del lenguaje de
programación FBD con las normas IEC, consulte Conformidad IEC

Función elemental
Las funciones elementales (EF) no tienen estados internos. Si los valores de entrada son los
mismos, el valor de salida es el de cada ejecución de la función. Por ejemplo, la suma de dos
valores siempre da el mismo resultado.
Una función elemental se representa de forma gráfica por medio de un bloque con varias
entradas y una salida. En él, las entradas siempre aparecen a la izquierda y la salida a la
derecha.
El nombre de la función, es decir, el tipo de función, aparece centrado dentro del bloque.
A la derecha del tipo de función se indica el número de ejecución de la función.
Encima del bloque aparece el contador de función. El contador de función es el número
correlativo de la función dentro de la sección actual. Los contadores de función no se
pueden modificar.

Función elemental
En el caso de algunas funciones elementales, se puede ampliar la cantidad de entradas.

29
Módulo: Controladores de Procesos
Bloque de funciones elemental
Los bloques de funciones elementales (EFB) tienen estados internos. Si los valores de
entrada son los mismos, el valor de la salida puede ser diferente cada vez que se ejecuta la
función, por ejemplo, el valor de salida se incrementa para un contador.
Un bloque de funciones elemental se representa de forma gráfica por medio de un bloque
con varias entradas y salidas. En él, las entradas siempre aparecen a la izquierda y las salidas
a la derecha.
Los bloques de funciones pueden disponer de varias salidas.
El nombre del bloque de funciones, es decir, el tipo de bloque de funciones, aparece
centrado dentro del bloque.
A la derecha del tipo de bloque de funciones se indica el número de ejecución del bloque
de funciones.
El nombre de instancia aparece por encima del bloque.
El nombre de instancia sirve para denominar de forma unívoca los distintos bloques de
funciones de un proyecto.
El nombre de instancia del EFB se genera automáticamente y tiene la siguiente estructura:
TYPE_n, donde:

- TYPE es el tipo del bloque de funciones.


- n es el número correlativo del tipo de bloque de funciones en el proyecto.

Ejemplo:
- La primera instancia de un tipo del EFB tipo "TON" se denomina TON_0
- La primera instancia de un tipo del EFB tipo "MOTOR" se denomina MOTOR_0
- La segunda instancia de un tipo del EFB tipo "TON" se denomina TON_1

Este nombre generado automáticamente se puede modificar para mejorar la visión general.
El nombre de instancia (32 caracteres como máximo) debe ser inequívoco dentro de un
mismo proyecto; no se diferencia entre mayúsculas y minúsculas. El nombre de instancia
debe cumplir la nomenclatura general.
NOTA: Según la norma IEC 61131-3, sólo se permite una letra como primer carácter de los
nombres de instancias. Si desea utilizar cifras como primer carácter, deberá habilitar esa
opción de forma explícita.

Bloque de funciones elemental

30
Módulo: Controladores de Procesos
Los bloques de funciones derivados (DFB)
Los bloques de funciones derivados (DFB) presentan las mismas propiedades que los
bloques de funciones elementales. Sin embargo, el usuario los crea en los lenguajes de
programación FBD, LD, IL o ST.
La única diferencia con respecto a los bloques de funciones elementales es que los bloques
de funciones derivados se representan gráficamente por medio de un bloque con líneas
verticales dobles.

Bloque de funciones derivado

Procedimiento
Los procedimientos son funciones desde el punto de vista técnico. La única diferencia con
respecto a las funciones elementales es que los procedimientos pueden tener más de una
salida y admiten el tipo de datos VAR_IN_OUT.
Los procedimientos son una ampliación de la norma IEC 61131-3 y se deben habilitar de
forma explícita.
Los procedimientos no se diferencian visualmente de las funciones elementales.

Procedimiento

31
Módulo: Controladores de Procesos
Parámetros
Para transferir valores al FFB o aplicarlos desde él, es necesario utilizar entradas y salidas. A
éstas se les llama parámetros formales.
A los parámetros formales se vinculan objetos que contienen los estados actuales del
proceso. A éstos se les llama parámetros reales.

Parámetros reales y formales

Los valores del proceso se transfieren al FFB a través de los parámetros reales durante el
tiempo de ejecución del programa y se vuelven a emitir después del procesamiento.
A las entradas de FFB sólo se puede vincular un único objeto (parámetro real) del siguiente
tipo:

 Variable
 Dirección
 Literal
 Expresión ST. Las expresiones ST de las entradas de FFB representan una ampliación
de la norma IEC 61131-3 y se deben habilitar de forma explícita.
 Enlace

A las salidas de FFB se pueden vincular las siguientes combinaciones de objetos (parámetros
reales):

 una variable

32
Módulo: Controladores de Procesos
 una variable y una o varias conexiones (aunque no en el caso de salidas
VAR_IN_OUT)
 una dirección
 una dirección y una o varias conexiones (aunque no en el caso de salidas
VAR_IN_OUT)
 una o varias conexiones (aunque no en el caso de salidas VAR_IN_OUT

El tipo de datos del objeto que se va a vincular debe coincidir con el tipo de datos de la
entrada/salida de FFB. Si todos los parámetros reales están compuestos por literales, se
elegirá un tipo de datos adecuado para el bloque de funciones.
Excepción: En el caso de entradas/salidas de FFB genéricas del tipo de datos ANY_BIT se
pueden vincular objetos del tipo de datos INT o DINT (ni UINT ni UDINT).
Se trata de una ampliación de la norma IEC 61131-3, que se debe habilitar de forma
explícita.
En principio, no es necesario asignar un parámetro real a cada parámetro formal. Pero esto
no es válido para pins negados. A estos hay que asignarles siempre un parámetro real.
También algunos tipos de parámetros formales lo requieren obligatoriamente. En la
siguiente tabla encontrará estos tipos de parámetros formales.

Variables públicas
Además de las entradas y salidas, algunos bloques de funciones también disponen de las
denominadas variables públicas.
Estas variables sirven para transmitir valores estáticos (valores no influidos por el proceso)
al bloque de funciones. Se utilizan para configurar los parámetros del bloque de funciones.
Las variables públicas son una ampliación de la norma IEC 61131-3.
La asignación de valores a las variables públicas se realiza mediante sus valores iniciales.
La lectura de las variables públicas se realiza mediante el nombre de instancia del bloque
de funciones y los nombres de las variables públicas.

33
Módulo: Controladores de Procesos
Ejemplo de variable publica

Variables privadas
Además de las entradas, las salidas y las variables públicas, algunos bloques de funciones
también disponen de las denominadas variables privadas.
Al igual que las variables públicas, las privadas se utilizan para transferir valores estadísticos
(valores no influidos por el proceso) al bloque de funciones.
El programa de usuario no puede acceder a las variables privadas. Sólo se puede acceder a
este tipo de variables mediante la tabla de animación.
NOTA: Los DFB intercalados se declaran como variables privadas del DFB principal. Por
tanto, tampoco se puede acceder a sus variables a través de la programación, sino a través
de la tabla de animación.
Las variables privadas son una ampliación de la norma IEC 61131-3.

Notas sobre la programación


Tenga en cuenta las siguientes indicaciones sobre la programación:
 Los FFB solamente se ejecutan si la entrada EN=1 o si la entrada EN está atenuada.
 Las entradas y salidas booleanas se pueden invertir.
 Si se utilizan variables VAR_IN_OUT se imponen condiciones especiales.
 Las instancias de bloques de funciones/DFB se pueden ejecutar varias veces

34
Módulo: Controladores de Procesos
Llamada múltiple de una instancia de bloque de funciones
Las instancias de bloques de funciones/DFB se pueden llamar varias veces, excepto las
instancias de EFB de comunicaciones y de bloques de funciones/DFB con una salida ANY y
ninguna entrada ANY, que solo se pueden llamar una vez.
La llamada múltiple de una misma instancia de bloque de funciones/DFB resulta
conveniente, por ejemplo, en los siguientes casos:

 Cuando el bloque de funciones/DFB no posee ningún valor interno o los valores


internos no son necesarios para continuar el procesamiento. En este caso, la llamada
múltiple de una misma instancia de bloque de funciones/DFB permite ahorrar
espacio en memoria, ya que el código del bloque de funciones/DFB sólo se carga
una vez. El bloque de funciones/DFB se procesa, por así decirlo, como una "función".
 Cuando el bloque de funciones/DFB contiene valores internos y éstos se deben
modificar en varios puntos del programa, por ejemplo, si el valor de un contador se
debe aumentar en diversos puntos del programa. En este caso, con la llamada
múltiple de la misma instancia de bloque de funciones/DFB no es necesario guardar
los resultados intermedios para continuar el procesamiento en otra parte del
programa.

EN y ENO
En todos los FFB se puede configurar una entrada EN y una salida ENO.
Si el valor de EN es "0", al llamar al FFB no se ejecutarán los algoritmos definidos por dicho
FFB, y ENO se establecerá en "0".
Si el valor de EN es "1", al llamar al FFB se ejecutan los algoritmos definidos por dicho FFB.
Una vez que se han ejecutado los algoritmos correctamente, el valor de ENO pasa a "1". Si
se produce un error al ejecutar estos algoritmos, ENO pasa a "0".
Si el pin EN no tiene asignado ningún valor, al llamar al FFB se ejecuta el algoritmo definido
por el FFB (lo mismo ocurre si EN es igual a "1"). Consulte Mantener conexiones de salida
en EF desactivadas.
Si ENO pasa a "0" (porque EN = 0 o por un error durante la ejecución):

 Bloques de funciones
o Gestión de EN/ENO con bloques de funciones que (sólo) tienen un enlace
como parámetro de salida:

35
Módulo: Controladores de Procesos
Si el valor de EN en FUNCBLOCK_1 se establece en "0", el enlace en la salida
OUT de FUNCBLOCK_1 mantiene el estado antiguo que tenía en el último
ciclo que se ejecutó correctamente.

o Gestión de EN/ENO con bloques de funciones que tienen una variable y un


enlace como parámetros de salida:

Si el valor de EN en FUNCBLOCK_1 se establece en "0", el enlace en la salida


OUT de FUNCBLOCK_1 mantiene el estado antiguo que tenía en el último
ciclo que se ejecutó correctamente. La variable OUT1 en el mismo pin puede
mantener su estado anterior o puede modificarse desde fuera sin influir en
el enlace. La variable y el enlace se guardan de forma independiente entre
sí.

 Funciones/procedimientos

Según la definición de IEC 61131-3, las salidas de las funciones desactivadas (entrada EN
establecida en "0") no están definidas (esto es aplicable a los procedimientos).
A continuación, se presenta una explicación de los estados de salida en este caso:
o Gestión de EN/ENO con bloques de funciones o procedimientos que poseen
(sólo) un enlace como parámetro de salida:

36
Módulo: Controladores de Procesos
Si el valor de EN en FUNC_PROC_1 se establece en "0", el valor del enlace en
la salida OUT de FUNC_PROC_1 dependerá del ajuste del proyecto Mantener
conexiones de salida en EF desactivadas.
Si se establece este ajuste del proyecto en "0", el valor del enlace se
establecerá en "0".
Si se establece este ajuste del proyecto en "1", el enlace mantendrá el valor
antiguo que tenía en el último ciclo ejecutado correctamente.

o Gestión de EN/ENO en las funciones o procedimientos que poseen una


variable y una conexión como parámetro de salida:

Si el valor de EN en FUNC_PROC_1 se establece en "0", el valor del enlace en


la salida OUT de FUNC_PROC_1 dependerá del ajuste del proyecto Mantener
conexiones de salida en EF desactivadas. Si se establece este ajuste del
proyecto en "0", el valor del enlace se establecerá en "0". Si se establece este
ajuste del proyecto en "1", el enlace mantendrá el valor antiguo que tenía en
el último ciclo ejecutado correctamente.
La variable OUT1 en el mismo pin puede mantener su estado anterior o
puede modificarse desde fuera sin influir en el enlace. La variable y el enlace
se guardan de forma independiente entre sí.

El comportamiento en la salida de los FFB no depende de si los FFB se han llamado sin
EN/ENO o con EN = 1.
NOTA: Para bloques de funciones deshabilitados (EN = 0) con una función de tiempo interna
(por ejemplo, bloque de funciones DELAY), el tiempo sigue avanzando, ya que se calcula con
la ayuda de un reloj del sistema, y por lo tanto es independiente del ciclo de programa y de
la apertura del bloque.

37
Módulo: Controladores de Procesos
Llamada a una subrutina
En FBD, se llama a las subrutinas mediante los bloques siguientes:

Si el estado de EN es 1, se llama a la subrutina correspondiente (nombre de las variables en


SR_Name).
La salida ENO no sirve para mostrar el estado de error de este tipo de bloque. La salida ENO
es siempre 1 en este tipo de bloque y sirve para llamar a varias subrutinas simultáneamente.
Con la siguiente construcción es posible llamar a varias subrutinas simultáneamente.

La subrutina que se vaya a llamar debe encontrarse en la misma tarea que la sección FBD a
la que se llame.
Asimismo, es posible llamar a subrutinas ubicadas dentro de otras subrutinas.
Las llamadas a subrutinas son una ampliación de la norma IEC 61131-3 y se deben habilitar
de forma explícita.
En las secciones de acción SFC sólo se admiten llamadas a subrutinas si está habilitada la
operación Multi-Token.

38
Módulo: Controladores de Procesos
Elementos de control
Los elementos de control sirven para ejecutar saltos dentro de una sección FBD y para el
retorno al programa principal desde una subrutina (SRx) o desde un bloque de funciones
derivado (DFB).
Elementos de control
Se encuentran disponibles los siguientes elementos de control.

39
Módulo: Controladores de Procesos
Conexión
Las conexiones son vínculos verticales y horizontales entre FFB.

Representación
Los puntos de conexión se identifican con un círculo relleno.

El cruce se representará con una conexión "interrumpida".

40
Módulo: Controladores de Procesos
Notas sobre la programación
Tenga en cuenta las siguientes indicaciones sobre la programación:

 Se pueden utilizar conexiones para todos los tipos de datos.


 Los tipos de datos de las entradas/salidas que se vayan conectar deben coincidir.
 Se pueden establecer varias conexiones con una salida de FFB. No obstante, sólo
puede haber una con una entrada FFB.
 Sólo se pueden conectar entradas y salidas entre sí. No es posible interconectar
varias salidas a la vez. Esto quiere decir que en FBD no se puede realizar ninguna
operación OR por medio de conexiones. Se debe utilizar siempre una función OR.
 Está permitido que las conexiones se solapen con otros objetos.
 Con conexiones no se pueden configurar bucles, ya que en este caso no se puede
determinar de forma inequívoca la secuencia de ejecución en la sección. Los bucles
se deben resolver con parámetros reales.
 Para evitar el cruce de conexiones, las conexiones también se pueden representar
en forma de conectores.
El origen y el destino de la conexión se identifican con un nombre unívoco dentro
de la sección.
El nombre del conector tiene la siguiente estructura en función del tipo de objeto
de origen de la conexión:
o En el caso de funciones: "Contador de función/parámetro formal" del origen
de la conexión

o En el caso de bloques de funciones: "Nombre de instancia/parámetro


formal" del origen de la conexión

41
Módulo: Controladores de Procesos
Objeto de texto
El texto puede ubicarse como objetos de texto mediante el lenguaje de bloques de
funciones FBD.
El tamaño de estos objetos depende de la longitud del texto. El tamaño del objeto se puede
ampliar en más unidades de reticulado en dirección vertical y horizontal en función del
tamaño del texto. Los objetos de texto no se solapan con los FFB; sin embargo, pueden
solaparse con las conexiones.

Secuencia de ejecución de los FFB


La secuencia de ejecución está determinada en primer lugar por la posición de los FFB
dentro de la sección (ejecución de izquierda a derecha y de arriba a abajo). Si, a
continuación, los FFB se conectan a una red por medio de conexiones gráficas, la secuencia
de ejecución estará determinada por el flujo de datos.
La secuencia de ejecución se indica mediante el número de ejecución (número situado en
la esquina superior derecha del marco del FFB).

Secuencia de ejecución de redes


Para la secuencia de ejecución de redes se aplican las siguientes reglas:

 La ejecución de una sección se realiza red a red en función de las conexiones de FFB
de arriba a abajo.
 No es posible configurar bucles mediante conexiones, ya que en este caso no se
puede determinar de forma inequívoca la secuencia de ejecución en la sección. Los
bucles se deben resolver con parámetros actuales.
 La secuencia de ejecución de las redes que no están conectadas entre sí mediante
conexiones está determinada por la secuencia gráfica (de derecha a izquierda y de
arriba a abajo). Esta secuencia de ejecución se puede modificar
 El cálculo de una red finaliza completamente antes de que comience el cálculo de
otra red que utilice salidas de la red precedente.
 Ningún elemento de una red se considera calculado mientras no se haya calculado
el estado de todas las entradas de dicho elemento.
 El cálculo de una red sólo se considera finalizado cuando se han calculado todas las
salidas de dicha red.

42
Módulo: Controladores de Procesos
Flujo de señal dentro de una red
Para la secuencia de ejecución dentro de una red se aplican las siguientes reglas:

 El cálculo de un FFB no se inicia hasta que no se hayan calculado todos los elementos
(salidas FFB, etc.) que estén conectados a sus entradas.
 La secuencia de ejecución de los FFB que estén conectados a varias salidas del
mismo FFB es de arriba a abajo.
 La secuencia de ejecución de los FFB no está influida por su posición dentro de la
red.
Esto no es válido cuando varios FFB están conectados a la misma salida del FFB
"invocante".
En este caso, la secuencia de ejecución está determinada por la secuencia gráfica
(de arriba a abajo).

Prioridades a la hora de determinar el flujo de señal dentro de una sección.

43
Módulo: Controladores de Procesos
Ejemplo de la secuencia de ejecución de objetos en una sección FBD:

44
Módulo: Controladores de Procesos
Modificación de la secuencia de ejecución
La secuencia de ejecución de las redes y de los objetos incluidos dentro de una red se define
a partir de una serie de reglas (véase página 307).
En la mayor parte de los casos es recomendable modificar la secuencia de ejecución
propuesta por el sistema.
Existen las siguientes posibilidades para determinar/modificar la secuencia de ejecución
dentro de las redes:

 Utilización de conexiones en lugar de parámetros actuales


 Posiciones de las redes
 Determinación explícita de la secuencia de ejecución
Existen las siguientes posibilidades para determinar/modificar la secuencia de
ejecución dentro de las redes:
 Posiciones de los FFB

Situación de salida
En la figura siguiente se muestran dos redes cuya secuencia de ejecución está determinada
únicamente por su posición dentro de la sección, con independencia de que los bloques
.4/.5 y .7/.8 requieran otra secuencia de ejecución.

45
Módulo: Controladores de Procesos
Conexión en lugar de parámetros reales
Si se utiliza una conexión en lugar de una variable, ambas redes se ejecutan en la secuencia
correcta

46
Módulo: Controladores de Procesos
Posiciones de las redes
La secuencia de ejecución adecuada se puede conseguir modificando la posición de las
redes en la sección

47
Módulo: Controladores de Procesos
Determinación explícita
La secuencia de ejecución adecuada se puede conseguir modificando explícitamente la
secuencia de ejecución de un FFB. En el caso de los FFB cuya secuencia de ejecución se haya
modificado explícitamente, el número de ejecución se representa en un campo negro

NOTA: Sólo se permite una única referencia a una instancia; por ejemplo, la instancia ".7"
sólo se puede referenciar una vez.

48
Módulo: Controladores de Procesos
Posiciones de los FFB
La posición de los FFB sólo influye sobre la secuencia de ejecución si hay varios FFB
conectados a la misma salida del FFB "invocante"
En la primera red, se han intercambiado las posiciones de los bloques .4 y .5. En este caso
(origen común de ambas entradas de bloque), también se intercambia la secuencia de
ejecución de ambos bloques (procesamiento de arriba abajo).
En la segunda red, se han intercambiado las posiciones de los bloques .7 y .8. En este caso
(origen distinto de las entradas de bloque), la secuencia de ejecución de ambos bloques no
se intercambia (procesamiento en la secuencia en que se llama a las salidas de bloque).

49
Módulo: Controladores de Procesos
Configuración de bucles - Bucles no permitidos
No es posible configurar bucles exclusivamente a base de conexiones ya que de este modo
no se puede determinar el flujo de señal de forma unívoca (la salida de un FFB es la entrada
del FFB siguiente y la salida de este es, a su vez, la entrada del primero).
Bucle no permitido a través de conexiones

Generación a través de un parámetro real


Una lógica de este tipo se debe resolver con ayuda de una variable de realimentación para
que el flujo de señal se pueda determinar de forma unívoca.
Las variables de realimentación se deben inicializar. El valor inicial se utiliza durante la
primera ejecución de la lógica. Una vez ejecutado, el valor inicial se sustituye por el valor
real.
Tenga en cuenta en ambos casos la secuencia de ejecución (número entre paréntesis detrás
del nombre de instancia) de los dos bloques.
Bucle resuelto a través de un parámetro real: caso 1

Bucle resuelto a través de un parámetro real: caso 2

50
Módulo: Controladores de Procesos
Bloques más utilizados
Operaciones básicas de lógica
Función AND:

Regla: “Para que la salida sea verdadera (1) todas las entradas deben serlo”
Equivalencia: La función AND se corresponde a contactos conectados en serie (en LD)

Función OR:

Regla: “La salida será verdadera (1) si al menos una de las entradas lo es”
Equivalencia: La función OR se corresponde a contactos conectados en paralelo (en LD)

51
Módulo: Controladores de Procesos
Función NOT:
La función negación se implementa ya sea sobre “un pin” de entrada o sobre el “el pin” de
salida, según se requiera. Realizada la operación aparecerá un círculo indicado la negación

Regla: “La salida será el estado contrario al de la entrada”


Equivalencia: La función negación corresponde a un contacto normalmente cerrado (en LD)
Los demás bloques lógicos básicos (NAND, XOR, etc.) se pueden obtener de los operadores
indicados en la página anterior.

R_TRIG y F_TRIG
Detección canto de subida (Rising edge detection) y detección canto de bajada (Falling edge
detection)

52
Módulo: Controladores de Procesos
Estos bloques son especialmente útiles para generar eventos que correspondan
exclusivamente a un cambio de estado (solo durante la transición). A manera de ejemplo
veamos este tipo de bloque asociado a una botonera de partida en terreno:

A la botonera de partida en terreno le asociaremos el tag “Partir” (por ejemplo, con


dirección %I0.1.0 que corresponde al primer canal, de la primera tarjeta de entrada discreta
en el primer drop). Luego el tag “Partida Aceptada” solo se activará durante un scan, esto
evitará que la lógica mantenga la salida permanentemente activada (por ejemplo, un motor
corriendo) si la botonera se queda “pegada” en un estado “1”.
La situación antes descrita puede presentarse en circuitos, como el mostrado a
continuación (lógica alambrada)

Indique que ocurriría si la botonera “partir” queda permanentemente accionada

Función Set-Reset (SR)


En muchos casos resulta imprescindible “retener” un evento de corta duración. Para ello es
útil la función Set-Reset. En el caso del bloque SR se tiene como dominante la operación
SET, esto es:
La salida Q1 se convierte en "1" cuando la entrada S1 se convierte en "1". Este estado
permanece incluso si la entrada S1 vuelve a "0". La salida Q1 vuelve a cambiar a "0" cuando

53
Módulo: Controladores de Procesos
la entrada R se convierte en "1". Si las entradas S1 y R son ambas "1" simultáneamente, la
entrada dominante S1 establecerá la salida Q1 en "1".
Cuando se llama al bloque de funciones por primera vez, el estado inicial de Q1 es "0".

Si interesa que la operación dominante sea “el Reset” entonces el bloque a utilizar sería un
RS

En este caso la salida Q1 se convierte en "1" cuando la entrada S se convierte en "1". Este
estado permanece incluso si la entrada S vuelve a "0". La salida Q1 vuelve a cambiar a "0"
cuando la entrada R1 se convierte en "1". Si las entradas S y R1 son "1" simultáneamente,
la entrada dominante R1 establecerá la salida Q1 en "0".
Cuando se llama al bloque de funciones por primera vez, el estado inicial de Q1 es "0".

54
Módulo: Controladores de Procesos
Ejercicio 1
Desarrolle la lógica de control (en FBD), equivalente al circuito anteriormente mostrado,
utilizando los bloques ya aprendidos

55
Módulo: Controladores de Procesos
Temporizadores TON y TOFF

Con un profuso uso, en todo tipo de lógica, tenemos a los temporizadores. Siendo el más
utilizado el TON (time on delay), que es un “timer” con retardo en la conexión

Este opera de acuerdo a lo siguiente:


1) Si IN se convierte en "1", comienza el tiempo interno (ET).
2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "1".
3) Si IN se convierte en "0", Q se convierte en "0" y el tiempo interno se
detiene/reinicia.
4) Si IN pasa a "0" antes de que el tiempo interno haya alcanzado el valor de PT, el
tiempo interno se detiene/restablece sin que Q pase a "1".

Tanto el PT, como el ET, son variables del tipo TIME


Resulta muy útil para el análisis de este elemento el diagrama de tiempo asociado:

56
Módulo: Controladores de Procesos
El temporizador TOF, o temporizador con retardo en la desconexión opera de manera
similar al TON, pero en este caso el retardo se produce en la desconexión, tal como se
muestra en el diagrama de tiempo:

Opera de la siguiente manera:


1) Si IN se convierte en "1", Q se convierte en "1".
2) Si IN se convierte en "0", se inicia el tiempo interno (ET).
3) Si el tiempo interno alcanza el valor de PT, Q pasa a ser "0".
4) Si IN se convierte en "1", Q se convierte en "1" y el tiempo interno se
detiene/reinicia.
5) Si IN se convierte en "1" antes de que el tiempo interno haya alcanzado el valor de
PT, el tiempo interno se detiene/restablece sin que Q vuelva a establecerse en "0".

57
Módulo: Controladores de Procesos
Pulso de duración definida TP
Para obtener un pulso de duración definida puede usarse el bloque “TP”

Este bloque opera de la siguiente manera:


1) Si IN se convierte en "1", Q se convierte en "1" y comienza el tiempo interno (ET).
2) Si el tiempo interno alcanza el valor de PT, Q pasa a ser "0" (independiente de IN).
3) El tiempo interno se detiene/se restablece si IN se convierte en "0".
4) Si la hora interna aún no ha alcanzado el valor de PT, la hora interna no se ve
afectada por un reloj en IN.
5) Si el tiempo interno ha alcanzado el valor de PT e IN es "0", el tiempo interno se
detiene/se restablece y Q se convierte en "0".

Su comportamiento es idéntico a un circuito multivibrador mono estable

58
Módulo: Controladores de Procesos
EJERCICIO 2
Realice un semáforo, exclusivamente con temporizadores y puertas lógicas básicas, que de
un tiempo de 5 segundos para cada color (verde-amarilla-roja), repitiendo el ciclo
indefinidamente

59
Módulo: Controladores de Procesos
60
Módulo: Controladores de Procesos
Contadores crecientes y decrecientes CTU y CTD

Para contar un determinado número de eventos podemos utilizar un CTU, o contador


creciente.

Que opera de la siguiente manera:


Una señal "1" en la entrada R hace que se asigne el valor "0" a la salida CV. Con cada
transición de "0" a "1" en la entrada CU, el valor de CV se incrementa en 1. Cuando CV ≥ PV,
la salida Q se establece en "1".
NOTA: El contador solo funciona con los valores máximos del tipo de datos que se está
utilizando. No se produce desbordamiento.

Para un conteo decreciente se usa el CTD

Que opera de la siguiente manera:


Una señal "1" en la entrada LD hace que el valor de la entrada PV se asigne a la salida CV.
Con cada transición de "0" a "1" en la entrada de CD, el valor de CV se reduce en 1.
Cuando CV ≤ 0, la salida Q se convierte en "1".
NOTA: El contador solo funciona con los valores mínimos del tipo de datos que se está
utilizando. No se produce desbordamiento.

61
Módulo: Controladores de Procesos
Función MOVE

El bloque que sigue a continuación es imprescindible en el desarrollo de lógica para todo


tipo de plantas y procesos. Básicamente consiste a la asignación del valor de un tag (o
estado) a otro tag, pudiendo asignarse todo tipo de variables

Y su fórmula es:
OUT = IN
Dada la simplicidad del bloque es habitual que este precedido de otro bloque, que controla
la asignación, normalmente mediante la habilitación del MOVE accediendo al pin “EN”
(enabled), como se muestra en el siguiente ejemplo:

El tipo de dato de la entrada debe ser idéntico al tipo de dato de la salida. Esta función se
utiliza tanto con variables booleanas como con variables análogas

62
Módulo: Controladores de Procesos
TEMA 3: SEÑALES ANÁLOGAS Y
OTRAS FUNCIONES

3. Conceptos Fundamentales

Aprendizaje esperado

Lenguaje de programación FBD y aplicación en señales discretas

Operaciones Control PID y otras


Escalamientos
matemáticas funciones

63
Módulo: Controladores de Procesos
Señales análogas

Escalamientos
Para el escalamiento de señales análogas, debemos considerar previamente como hemos
configurado el módulo de entradas análogas, a manera de ejemplo veamos el módulo de
entradas análogas de la correa transportadora CEIM:

Nuestro valor máximo para el tag “ai_IT_VDF_CT” (corriente a motor desde el variador de
frecuencia), esto es a 20 mA, será de 10.000 en unidades de PLC.
Para convertir a unidades de ingeniería será necesario utilizar un bloque, especialmente
definido, para escalamientos. Este es la función “SCALING”, que consiste básicamente en la
aplicación de ecuación de la recta dados dos puntos, y que se muestra a continuación:

64
Módulo: Controladores de Procesos
Esta función nos dará un valor de salida de acuerdo a:

Donde los valores “in_min”, “in_max”, “out_min” y “out_max” serán los parámetros de la
función, para ello se debe definir previamente un parámetro (variable DDT) que sirva para
tal propósito. Una vez definido el nombre del tag se deberá definir del tipo “Para_SCALING”,
tal como se muestra a continuación:

Realizada esta operación podemos realizar las asignaciones correspondientes:

65
Módulo: Controladores de Procesos
Si el parámetro de recorte “Clip” se establece en 0, la escala es independiente del valor de
la entrada IN.

Si el parámetro de recorte “Clip” se establece en 1, la escala se realiza dentro del rango


[in_min, in_max]. Fuera de este rango, la salida estará limitada por los valores out_min y
out_max.

Es posible alterar la dirección de subida de las variables numéricas de entrada, configurando


out_max a un valor más bajo que out_min.

66
Módulo: Controladores de Procesos
Ejercicio 3
Escale una señal análoga, que corresponde a un transmisor de presión, cuyo rango va de 10
Psi a 40 Psi y que entrega una señal análoga de 4 a 20 mA

67
Módulo: Controladores de Procesos
Comparadores
Para comparar variables podemos hacer uso de las siguientes funciones:

Comparador “mayor que” (GT)

Donde la salida se activará si:


OUT = 1, if (IN1 > IN2) & (IN2 > IN3) & ... (IN (n-1) > IN n)
Los tipos de datos de todos los valores de entrada deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT,
UDINT, REAL, TIME, DATE, DT y TOD, los valores se comparan entre sí.
Las variables STRING se comparan usando el alfabeto; las variables al final del alfabeto son
expresiones de mayor prioridad que las del principio.

Comparador “mayor o igual que” (GE)

Donde la salida se activará si:


OUT = 1, if (IN1 ≥ IN2) & (IN2 ≥ IN3) & .. & (IN (n-1) ≥ IN n)
Los tipos de datos de todos los valores de entrada deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT,
UDINT, REAL, TIME, DATE, DT y TOD, los valores se comparan entre sí.

68
Módulo: Controladores de Procesos
Las variables STRING se comparan usando el alfabeto; las variables al final del alfabeto son
expresiones de mayor prioridad que las del principio.

Comparador “menor que” (LT)

Donde la salida se activará si:


OUT = 1, if (IN1 < IN2) & (IN2 < IN3) & .. & (IN (n-1) < IN n)
Los tipos de datos de todos los valores de entrada deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT,
UDINT, REAL, TIME, DATE, DT y TOD, los valores se comparan entre sí.
Las variables STRING se comparan usando el alfabeto; las variables al final del alfabeto son
expresiones de mayor prioridad que las del principio.

Comparador “menor o igual que” (LE)

Donde la salida se activará si:


OUT = 1, if (IN1 ≤ IN2) & (IN2 ≤ IN3) & .. & (IN (n-1) ≤ IN n)
Los tipos de datos de todos los valores de entrada deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.
Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT,
UDINT, REAL, TIME, DATE, DT y TOD, los valores se comparan entre sí.

69
Módulo: Controladores de Procesos
Las variables STRING se comparan usando el alfabeto; las variables al final del alfabeto son
expresiones de mayor prioridad que las del principio.

Comparador “igual que” (EQ)

Donde la salida se activará si:


OUT = 1, if (IN1 = IN2) & (IN2 = IN3) & .. & (IN (n-1) = IN n)
Esta función verifica la igualdad de las entradas, es decir, la salida se convierte en "1" si hay
igualdad en todas las entradas; de lo contrario, la salida permanece en "0".
Los tipos de datos de todos los valores de entrada deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.

Comparador “Distinto de” (NE)

Donde la salida se activará si:


OUT = 1, if IN1 < > IN2
La función comprueba los valores de entrada para la desigualdad.
Los tipos de datos de los valores de entrada deben ser idénticos.

70
Módulo: Controladores de Procesos
Operaciones matemáticas
Suma (ADD)

Donde la salida será:


OUT = IN1 + IN2 + ... + INn
Con variables del tipo:
INT, DINT, UINT, UDINT, REAL:
La función suma los valores de entrada y asigna el resultado a la salida.
Los tipos de datos de todos los valores de entrada y salida deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32 para todas las funciones.
Para sumas con valores del tipo de datos TIME, existe el bloque ADD_TIME

Resta (SUB)

Donde la salida será:


Difference = Value1 - Value2
La función resta el valor de la entrada Value2 del valor de la entrada Value1 y asigna el
resultado a la salida.
Los tipos de datos de los valores de entrada y los valores de salida deben ser idénticos.
Para restar con valores del tipo de datos TIME, puede utilizar el bloque SUB_TIME.

71
Módulo: Controladores de Procesos
Multiplicación (MUL)

Donde la salida será:


OUT = IN1 x IN2 x .. x IN n
La función multiplica los valores de entrada y asigna el resultado a la salida.
Los tipos de datos de todos los valores de entrada y salida deben ser idénticos.
El número de entradas se puede aumentar hasta un máximo de 32.
Para la multiplicación con valores del tipo de datos TIME, puede utilizar el bloque MULTIME.

División (DIV)

Donde la salida será:


Out = IN1 / IN2
La función divide el valor en el Dividendo con el valor en la entrada Divisor y asigna el
resultado a la salida.
Los tipos de datos de los valores de entrada y los valores de salida deben ser idénticos.
Para la división con valores del tipo de datos TIME, puede utilizar el bloque DIVTIME.
Al dividir los tipos de datos INT, DINT, UINT y UDINT, se omiten los lugares decimales en el
resultado, por ejemplo:

72
Módulo: Controladores de Procesos
Ejercicio 4
Desarrolle una lógica de control que permita la partida de una bomba, conectada a la línea
de succión de un TK, cuando el nivel de un estanque alcance el 80% y la detenga cuando
baje de 20%

73
Módulo: Controladores de Procesos
Otras funciones
Conversión de enteros a reales y viceversa
Presentación

Estas funciones resultan útiles, por ejemplo, en el escalamiento de señales de entrada o


salida análogas, como se muestra en los siguientes extractos de lógica:

74
Módulo: Controladores de Procesos
 Esto es necesario dado que las entradas análogas están expresadas en enteros (en
unidades de PLC), Por lo que convertir a unidades de PLC a unidades de ingeniería
(escalamiento) requiere de la conversión previa a reales, que es el tipo de variable
que acepta en bloque “Scaling”.

 En el caso de las salidas análogas estas deben convertirse al formato enteros (en
unidades de PLC) antes de asignarse al canal del módulo de salida.

Función selección (SEL)

Esta función se utiliza para la selección binaria entre dos valores de entrada.
Según el estado de la entrada Selección, la entrada Entrada0 o la Entrada1 se transfiere a la
salida
Selección = 0 -> Salida = Entrada0

75
Módulo: Controladores de Procesos
Selección = 1 -> Salida = Entrada1
Los tipos de datos de los valores de entrada Input0 e Input1 y los valores de salida Output
deben ser idénticos.
Esta función reemplaza la opción de utilizar bloque MOVE

Control PID
Para la implementación de un lazo de control se recomienda usar el controlador PID1, el
que se muestra a continuación:
La configuración de los parámetros del bloque de funciones se
realiza inicialmente mediante los parámetros PID puros, es decir,
el coeficiente de acción proporcional GAIN, el tiempo de reinicio
TI y el tiempo de velocidad TD.
El componente D se retrasa el tiempo TD_LAG. La relación entre
TD/TD_LAG se denomina ganancia diferencial VD. El
componente D puede estar formado por la desviación del
sistema ERR (D_ON_X = 0) o por la variable controlada PV
(D_ON_X = 1). Si el componente D está determinado por la
variable controlada PV, entonces el componente D no podrá
causar saltos cuando se produzcan fluctuaciones de la variable
de referencia (cambios en la entrada SP). Generalmente, el
componente D solo afecta las perturbaciones y las variaciones
del proceso.

Modos de funcionamiento
Hay tres modos de funcionamiento, que se seleccionan a través de los parámetros MAN y
HALT:

76
Módulo: Controladores de Procesos
 Modo de funcionamiento automático

En modo automático, la variable manipulada Y se determina a través del algoritmo


de control de lazo cerrado PID discreto sujeto a la variable controlada PV y la variable
de referencia SP. La variable manipulada está limitada por YMAX e YMIN. Los límites
de control también son límites para el restablecimiento Antiwindup.

 Modo manual

En el modo manual, el valor manipulado manualmente YMAN se transmite


directamente a la salida de control Y. Sin embargo, la salida de control está limitada
por YMAX e YMIN. Las variables internas se manipularán de tal manera que el
cambio del controlador de manual a automático (con el componente I habilitado)
pueda realizarse sin perturbaciones. Los límites de control también son límites para
el restablecimiento Antiwindup.
En este modo de funcionamiento, el componente D se pone automáticamente a 0.
 modo de parada

En el modo de parada, la salida de control permanece sin cambios; el bloque de


funciones no influye en la salida de control Y, es decir, Y = Y (antiguo). Las variables
internas se manipularán de tal manera que la suma de los componentes
corresponda a la salida del control, lo que permitirá que el controlador se mueva
suavemente desde su posición actual (cuando el componente I esté habilitado). Los
límites de control también son límites para el restablecimiento Antiwindup.
En este modo de funcionamiento, el componente D se pone automáticamente a 0.

Limitación de variable manipulada


Los límites YMAX e YMIN limitan la salida dentro del rango prescrito. Por lo tanto, YMIN ≤ Y
≤ YMAX.
Los marcadores QMAX y QMIN señalan que se han alcanzado los límites o que se está
limitando la señal de salida.

QMAX = 1 si Y ≥ YMAX
QMIN = 1 si Y ≤ YMIN
Para limitar la variable manipulada, el límite superior YMAX debe ser mayor que el límite
inferior YMIN.

77
Módulo: Controladores de Procesos
Restablecimiento anti-windup
Si se lleva a cabo una limitación de variable manipulada, el restablecimiento anti-windup
debe asegurarse de que el componente integral no pueda exceder todos los límites. La
medida Antiwindup solo se implementa si el componente I del controlador no está
deshabilitado. Los límites anti-windup son idénticos a los de la variable manipulada. La
medida anti-windup no tiene en cuenta el componente D, para evitar la limitación de los
picos del componente D a través de la medida anti-windup.
La medida de restablecimiento Antiwindup corrige el componente I en el formulario, lo que
significa:

Cambio de automático a manual (tracking)


El cambio de automático a manual normalmente no se produce sin saltos, ya que la salida
Y puede tomar cualquier valor entre YMAX e YMIN, e Y pasa directamente a YMAN en el
cambio.
Hay dos posibilidades sí, no obstante, se requiere un cambio sin saltos de automático a
manual:

 Cambiar con la ayuda de la función MOVE


 Conmutación con la ayuda del bloque de función limitador de velocidad LIMV
Más adelante se verá una aplicación del tracking

Selección de los tipos de control


Hay varios tipos de controladores, que se pueden seleccionar a través de los parámetros
EN_P, EN_I y EN_D.

78
Módulo: Controladores de Procesos
Importante: El componente I también se puede deshabilitar con TI = 0.

Ejercicio 5
Implemente un lazo de control de nivel para un estanque de la planta piloto, la variable a
manipular será una válvula proporcional en la línea de descarga del estanque

79
Módulo: Controladores de Procesos
Uso de Arrays (vectores y matrices)
Para la optimización de recursos suele ser útil usar vectores o matrices en la programación
de lógica, para ello partiremos con la definición de un vector de enteros (como ejemplo)

 Llamaremos “v_Treem_STG” a nuestra variable (TAG)


 Luego en “Tipo” definiremos que será un “Array” (arreglo) de 41 enteros, partiendo
desde 0 hasta 40.
 Posteriormente precisaremos nuestra dirección de inicio, en nuestro caso %MW710

En suma, hemos creado un vector de enteros


Podemos expandir o contraer nuestro del vector haciendo “click” en el símbolo + o – que
aparece junto al nombre del TAG

Para la asignación o lectura de una variable, asignada a una determinada posición del
vector, debe utilizarse el formato Vector[posición]
A manera de ejemplo veamos la siguiente operación (de lectura)

Para escritura bastará colocar el vector[posición], esto es v_Trem_STG[a_index_PRM], a la


salida del bloque MOVE, donde “a_index_PRM” puede ser reemplazado por un numero
entero.

80
Módulo: Controladores de Procesos
Filtro adelanto-atraso
Cuando una señal análoga presenta un ruido importante, por el proceso mismo a medir,
resulta muy útil filtrarla. Para ello podemos hacer uso de la siguiente función:

 El bloque de función representa un elemento de retardo de primer orden.


 El bloque de funciones contiene el siguiente modo de funcionamiento:
o Seguimiento
o Automático

NOTA: Este bloque de funciones realiza una inicialización interna en el primer ciclo del
programa después de un inicio en caliente o en frío (p. ej., descarga de la aplicación o ciclo
de encendido) del programa del PLC. Debido a esto, debe asegurarse de que el bloque de
funciones se invoque en el primer ciclo del programa. En caso de incorporar el bloque de
funciones en un ciclo de programa posterior, la inicialización interna no se realizará y la
salida puede entregar un valor incorrecto.

La función de transferencia es:

Y el cálculo de la salida se realiza de acuerdo a:

81
Módulo: Controladores de Procesos
Integración con dispositivos vía Ethernet TCP/IP
Para integrar otros dispositivos, vía comunicación Ethernet TCP/IP, a nuestro controlador
es necesario hacer uso del DTM. DTM (administrador de tipo de dispositivo), que es un
controlador de dispositivo que se ejecuta en el PC host. Proporciona una estructura
unificada para acceder a los parámetros del dispositivo, configurar y operar los dispositivos
y solucionar los dispositivos.
Lo primero a realizar es verificar si nuestro dispositivo se encuentra en la libraría del DTM
de control expert, para ello realizaremos lo siguiente:
1) Abrimos el navegador DTM

2) Seleccionamos la opción “añadir” del menú

82
Módulo: Controladores de Procesos
3) Elegiremos nuestro dispositivo del siguiente listado:

Si el equipo que se desea integrar no aparece en el listado, entonces habrá que ejecutar el
instalador de la librería de dicho dispositivo (aplicación que deberá ser provista por el
proveedor del dispositivo)

83
Módulo: Controladores de Procesos
Empaquetamiento de bits
Cuando se transfiere data de un dispositivo a otro suele utilizarse el envió de Word´s
(palabras), para las ordenes de comando y situación de estados, ello dado que enviar solo
un único bit (o algunos pocos) sería una pérdida importante de recursos. Entonces para
resolver este problema se suele emplear un conjunto de bits que son asignados a una
palabra (Word) y luego se envía esta. En la recepción se debe “desempacar” la palabra y
obtener los bits en consecuencia.
Para ello se emplean las siguientes funciones:

Donde los tipos de datos para Word, son justamente word y para los Bit´s son booleanos
(EBOOL). Se muestra a continuación una aplicación de estas funciones (para la integración
de sensores ifm comunicados mediante Ethernet TCP/IP)

84
Módulo: Controladores de Procesos
Operaciones en línea

Durante las pruebas de lógica es habitual realizar operaciones de “seteo” y forzado de


variables discretas. Con ello es posible simular algunos estados, que se encuentren aún por
cablear. Para ello hay que considerar:

Forzado de discretas en línea


Esta operación se realiza sobre variable booleanas que están siendo escritas, en alguna
sección de programa. Para ello realice lo siguiente:

1) Coloque el curso del mouse sobre la variable que se desea forzar, tal como se
muestra en la siguiente imagen:

2) Seleccione la opción “Forzar valor” y luego “Forzar a 1”

Para las variables que non escritas en la lógica (por ejemplo, el valor llega desde HMI) no es
necesario forzar y basta establecer valor, ya sea en 1 (verdadero) o 0 (falso)

85
Módulo: Controladores de Procesos
Actividades Prácticas

De la lógica mostrada, que corresponde a una subrutina de partida de un motor, indique


cual es la función del temporizador

86
Módulo: Controladores de Procesos
Actividad 2
Considere, para la lógica mostrada, un SP cuyo rango va de 0 a 100%

Entonces escriba cual sería la parametrización de cada uno de los bloques Scaling

87
Módulo: Controladores de Procesos
Actividad 3
En la lógica mostrada indique el propósito de los bloques AN_OUT y MOVE

88
Módulo: Controladores de Procesos
Actividad 4
Desarrolle la lógica de control para el control de un distribuidor de carga, que considere las
siguientes variables:
 Limit Switch Norte (para inversión de giro)

 Limit Switch Sur (para inversión de giro)

 Limit Switch Norte (de Seguridad y por lo tanto es interlock del equipo)

 Limit Switch Sur (de Seguridad y por lo tanto es interlock del equipo)

 Parada de emergencia (interlock del equipo)

 Sobre carga en motor tripper (térmico)

 Correa detenida (interlock del equipo)

 Switch óptico “tripper en puesto 1” (posición 1)

 Switch óptico “tripper en puesto 2” (posición 2)

 Switch óptico “tripper en puesto 3” (posición 3)

 Switch óptico “tripper en puesto 4” (posición 4)

 Nivel Alto (señal análoga) posición 1 del silo, sobre el 95% es interlock del equipo

 Nivel Alto (señal análoga) posición 2 del silo, sobre el 95% es interlock del equipo

 Nivel Alto (señal análoga) posición 3 del silo, sobre el 95% es interlock del equipo

 Nivel Alto (señal análoga) posición 4 del silo, sobre el 95% es interlock del equipo

Importante:
 Aplique el concepto de lógica alambrada segura para el desarrollo de la aplicación,
esto implica que todos los dispositivos de seguridad son normalmente cerrados
(N.C.)

 Considere un retardo en la partida, al cambiar de sentido de giro, de 5 segundos


para cada extremo

Si un puesto (posición en el silo) está por debajo del 10%, al momento que el tripper llega a
él, se deberá detener el distribuidor de carga por 10 segundos

89
Módulo: Controladores de Procesos

También podría gustarte