Presentación - Mantener Controladores de Procesos 2

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 105

Bienvenido/a al curso de

Mantener
Controladores de
Procesos
Cantidad de Módulos y contenido que tendrá curso

Señales
Interfaz Control
Señales Discretas Análogas y
Expert
otras funciones
Conceptos
TEMA 1 Fundamentales
Interfaz Control Expert • Creación de un nuevo proyecto.
• Configuración de hardware.
• Definición de variables y datos.
CREACIÓN DE UN PROYECTO NUEVO

• 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.
CREACIÓN DE UN PROYECTO NUEVO

• 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.
CONFIGURACIÓN DEL HARDWARE

VENTANA PARA LA SELECCIÓN DE LOS MÓDULOS

• 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 mostraran 2 nuevas ventanas, que son: El catálogo de
hardware y la ventana “BUS PLC”, que se muestran en la
siguiente página.
CONFIGURACIÓN DEL HARDWARE

VENTANA QUE MUESTRA LA CONFIGURACIÓN


DEL HARDWARE DEL PLC

• La operación para definir módulos en el PLC es


bastante simple:

• Seleccione el módulo y arrástrelo hasta el slot


a utilizar (desde ventana del catálogo de
hardware hacia “BUS PLC”)

• 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
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).
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.

La fase tipos de datos, en la que se indica:


• Su categoría,
• Su formato.

La fase instancias de datos, en la que se definen su ubicación en la memoria y su propiedad, que


puede ser:
• Ubicados.
• No ubicados.

La fase referencias de datos, en la que se define su medio de acceso:


• Por valor inmediato,
• Por nombre,
• Por dirección.
DESCRIPCIÓN GENERAL DE LAS FAMILIAS DE
LOS 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.
TIPOS DE DATOS ELEMENTALES (EDT)

• 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
TIPOS DE DATOS ELEMENTALES (EDT)

Un elemento de datos puede ser:

• Con signo. En este caso, el bit de rango más alto es el bit con signo:
• 0 indica un valor positivo
• 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).


TIPOS DE DATOS ELEMENTALES (EDT)

LISTA DE TIPOS DE DATOS


TIPOS DE DATOS ELEMENTALES (EDT)

VARIABLES DE PLC QUE


PERTENECEN A LOS TIPOS
BOOLEANOS
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.


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 (UINT)

• 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)
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).
• 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:

• 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.
TIPOS DE NÚMEROS QUE SE
PUEDEN REPRESENTAR
• 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):


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
EJEMPLO 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:
Conceptos
TEMA 2 Fundamentales
• Lenguaje de bloques de funciones
Lenguaje FBD y señales FBD.
discretas • Secuencia de ejecución de los FFB.
• Bloques más utilizados para señales
discretas.
LENGUAJES DE PROGRAMACIÓN

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)
INFORMACIÓN GENERAL FBD

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

• 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.

• 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.


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.

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.
BLOQUE DE FUNCIONES ELEMENTAL
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.
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.
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.


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.
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.
VARIABLES PÚBLICAS
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.


EN & 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.
EN & ENO

• Si ENO pasa a "0" (porque EN = 0 o por un error durante la ejecución):

BLOQUES DE FUNCIONES

• Gestión de EN/ENO con bloques de funciones que (sólo) tienen un enlace como parámetro 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.
EN & ENO

• 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í.
EN & ENO
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:

• Gestión de EN/ENO con bloques de funciones o procedimientos que poseen (sólo) un enlace 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.
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.
LLAMADA A UNA SUBRUTINA

• 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.
LLAMADA A UNA SUBRUTINA

• 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".


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.
NOTAS SOBRE LA
PROGRAMACIÓN
• 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:

• En el caso de funciones: "Contador de función/parámetro formal" del origen de la conexión

• En el caso de bloques de funciones: "Nombre de instancia/parámetro formal" del origen de la


conexión
SECUENCIA EJECUCIÓN 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 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.
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

EJEMPLO DE LA SECUENCIA DE
EJECUCIÓN DE OBJETOS EN UNA
SECCIÓN FBD
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.
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.
POSICIONES DE LAS REDES

• La secuencia de ejecución adecuada se puede conseguir modificando la posición de las redes en la


sección.
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.
POSICIÓN 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).
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


CONFIGURACIÓN DE BUCLES – BUCLES NO
PERMITIDOS
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


BLOQUES MÁS UTILIZADOS

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)
BLOQUES MÁS UTILIZADOS

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 & F_TRIG

• Detección canto de subida (RISING EDGE DETECTION) y detección canto de bajada (FALLING EDGE
DETECTION).

• 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:
R_TRIG & F_TRIG
• 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 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".
FUNCIÓN SET – RESET (SR)
• 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".
TEMPRIZADORES TON & 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:

• Si IN se convierte en "1", comienza el tiempo interno (ET).


• Si el tiempo interno alcanza el valor de PT, Q se convierte en "1".
• Si IN se convierte en "0", Q se convierte en "0" y el tiempo interno se detiene/reinicia.
• 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".
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:

• Si IN se convierte en "1", Q se convierte en "1" y comienza el tiempo interno (ET).


• Si el tiempo interno alcanza el valor de PT, Q pasa a ser "0" (independiente de IN).
• El tiempo interno se detiene/se restablece si IN se convierte en "0".
• 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.
• 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".
CONTACTORES CRECIENTES Y
DECRECIENTES CTU & 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.
CONTACTORES CRECIENTES Y
DECRECIENTES CTU & CTD
• 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.
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
FUNCIÓN MOVE

• 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.
TEMA 3 Conceptos
Fundamentales
Señales Análogas y otras • Escalamientos.
funciones • Operaciones matemáticas.
• Control PID y otras funciones.
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:
SEÑALES ANÁLOGAS

• 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:
SEÑALES ANÁLOGAS

• 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:
SEÑALES ANÁLOGAS

• Realizada esta operación podemos realizar las asignaciones correspondientes:


SEÑALES ANÁLOGAS
• 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.
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í.

• 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í.

• 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.


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.
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:
CONVERSIÓN DE ENTEROS A
REALES Y VICEVERSA
• 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:
CONVERSIÓN DE ENTEROS A
REALES Y VICEVERSA
• 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


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:
LIMITACIONES 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.
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:


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.

• Importante: El componente I también se puede deshabilitar con TI = 0.


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
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:

Seguimiento.
Automático.
INTEGRACIÓN CON DISPOSITIVOS VÍA
ETHERNET TCP/IP
• Para integrar otros dispositivos, via 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.


INTEGRACIÓN CON DISPOSITIVOS VÍA
ETHERNET TCP/IP

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

3) Elegiremos nuestro dispositivo del siguiente listado:


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 un 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:


EMPAQUETAMIENTO DE BITS

• 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).
OPERACIONES EN LINEA

• 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 LINEA

• Esta operación se realiza sobre variable booleanas


que están siendo escritas, en alguna sección de
programa. Para ello realice lo siguiente:

Coloque el cursos del mouse sobre la variable que se


desea forzar, tal como se muestra en la siguiente
imagen:
OPERACIONES EN LINEA

• 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 LINEA

• Esta operación se realiza sobre variable booleanas


que están siendo escritas, en alguna sección de
programa. Para ello realice lo siguiente:

Coloque el cursos del mouse sobre la variable que se


desea forzar, tal como se muestra en la siguiente
imagen:

También podría gustarte