LTP Programacion Rev13 PDF
LTP Programacion Rev13 PDF
Colombia PU
Copyright 2007, BP. All rights reserved. The information contained in this document is
subject to the terms and conditions of the agreement or contract under which the document
was supplied to the recipient’s organization. None of the information contained in this
document shall be disclosed outside the recipient’s own organization without the prior
written permission of BP, unless the terms of such agreement or contract expressly allow.
1. INTRODUCCION
El sistema de Control de una Facilidad de Producción está compuesto de diversos elementos
(transmisores, elementos finales de control, Controladores Lógicos Programables y el sistema de
supervisión (HMI), los cuales son programados y configurados de acuerdo a los requerimientos
específicos de cada una de las áreas de la planta y del proceso. Para el caso de los Controladores esta
programación se realiza muchas veces siguiendo lineamientos internos de los contratistas de
automatización (o del propio programador en muchos casos), lo que ocasiona falta de uniformidad en
estos programas.
Esta situación se constituye en un riesgo para la operación de los sistemas debido a las siguientes
consideraciones:
• Mayor tiempo de respuesta para la resolución de urgencias en planta: Al no existir una
estandarización del código, los encargados de mantenimiento deben invertir más tiempo
comprendiendo los programas implementados, ocasionando demoras en la atención de estas
situaciones.
• Mayor tiempo en la implementación de los proyectos de Control: Al no existir una guía de
implementación, los contratistas deben invertir más tiempo diseñando la solución de control, y
ajustando su lógica a las condiciones específicas de la planta.
• Posible omisión de requerimientos: Al no existir una estandarización se pueden omitir
requerimientos importantes de operación (por ejemplo, no cumplir con los requerimientos de
los Sistemas Instrumentados de Seguridad para alcanzar los niveles de integridad requeridos).
2. OBJETIVOS
Esta Práctica Local de Programación tiene como objetivo proveer una guía para el diseño,
programación de la aplicación, instalación y mantenimiento de los sistemas de Control BPCS, con el fin
de estandarizar los criterios de diseño y las prácticas de instalación y de mantenimiento de estos
sistemas.
3. ALCANCE
Esta especificación abarca los sistemas de control BPCS de las Facilidades de BP Colombia y
específicamente para los que se basan en la plataforma de control Controllogix de Rockwell
Automation.
3.2.Glosario de términos
• Controllogix – Proyecto: Cuando se habla de una aplicación Controllogix, el proyecto es el
archivo que contiene toda la información que se descarga al PLC: Tareas, Programas, Rutinas,
tags y lógica. (Nota: No se debe confundir Proyecto con Programa. En familias anteriores de
PLC, el archivo de configuración era conocido como “el programa”, sin embargo, en
Página 2 de 183
determinadas características, para comunicarla hacia un sistema de control. Normalmente el
término transmisor se usa para designar al conjunto compuesto por el transmisor y la
electrónica de comunicaciones.
• Interruptor (Switch): Dispositivo discreto que indica la presencia (o ausencia) de una variable
física en un estado (o valor) determinado. Por ejemplo, un switch de nivel puede indicar una
condición de alto o bajo nivel, un switch de presión puede indicar una condición de presión por
fuera de su rango normal, etc.
• BPCS: Basic Process Control System, es el sistema responsable por la operación normal de la
planta y por lo tanto se constituye en la primera capa de protección contra situaciones
inseguras. Normalmente si el BPCS falla en mantener el control, se generan alarmas que le
notifican al operador que debe intervenir para restablecer el control dentro de los límites
establecidos. Si el operador no puede normalizar el proceso, existen otras capas de protección
como válvulas de seguridad, diseño del proceso para ser seguro y Sistemas Instrumentados de
Seguridad (SIS) para colocar el proceso en un estado seguro y mitigar los riesgos.
• SIL: Safety Integrity Level, se define como la reducción relativa de riesgos ofrecida por una
función de seguridad, o como el nivel deseado de reducción de riesgo en un sistema. SIL es una
medida del desempeño requerido para una Función Instrumentada de Seguridad (SIF por sus
siglas en inglés – Safety Instrumented Function). Es una calificación que va desde el número 1
(el menor nivel de confiabilidad) hasta 4 (el mayor nivel).
• SIS: Safety Instrumented System, es una forma de control de proceso cuya función es lograr o
mantener un estado estable del proceso cuando se detectan condiciones inaceptables o
peligrosas en el mismo. Los Sistemas Instrumentados de Seguridad se encuentran separados y
son independientes de los sistemas de control de procesos (BPCS), pero están conformados de
manera similar, incluyendo sensores, lógica de control, actuadores y sistemas de soporte.
• SIF: Safety Instrumented Functions, son las funciones específicas implementadas en un SIS, y
son implementadas como parte de una estrategia general de reducción de riesgos, la cual tiene
como objetivo reducir la probabilidad de ocurrencia de riesgos identificados que pueden
desembocar a un accidente catastrófico.
• HMI: Human Machine Interface – Corresponde a la interfaz gráfica que permite la iteración
entre el operador y el proceso (por intermedio del sistema de control).
• Tag: Etiqueta o nombre por el cual se define a un dispositivo de campo. A nivel de
programación del PLC Controllogix, un tag también es el nombre que se usa para referirse a un
área de memoria del controlador (bit, registro o arreglo de registros) usado en el programa del
PLC.
Página 4 de 183
Tabla 2 Letras para identificación de dispositivos
Página 6 de 183
4.3. CONVENCION DE ASIGNACION DE NOMBRES
Para la asignación de nombres de dispositivos (transmisores, switches, elementos finales de
control, etc), se debe seguir la siguiente estructura para la asignación del nombre del tag:
TypeDeviceID
• LY7701A:
o LY: Válvula controladora de Nivel.
o 7701A: Identificación del dispositivo.
• PT8905:
o PT: Transmisor de Presión.
o 8905: Identificación del dispositivo.
Se debe mantener correspondencia entre los nombres usados en los P&IDs, con los
nombres usados en la programación de los PLCs y los tags creados en el sistema HMI.
Página 8 de 183
5.1. CRITERIOS GENERALES DE MANEJO DE SALIDAS DE
CONTROL
En los Controladores Lógicos Programables, es posible definir un estado seguro para los
puntos de las tarjetas de salida (el estado que cada punto va a asumir en caso de falla del
controlador, cuando el controlador se pase a modo Program o ante pérdida de
comunicaciones, en el caso de los chasis remotos).
Para el caso de los sistemas que se describen en este documento, la siguiente configuración
debe ser usada:
• Salidas digitales: Las salidas digitales se deben configurar para que se des- des
energicen (asuman un valor de ‘0’) cuando el controlador se vaya a falla,
fall cambie a
modo Program o haya pérdida de comunicaciones. En los sistemas Controllogix
esto se configura en la ventana de propiedades de la tarjeta:
Estado en modo
Program
Estado durante
Falla del PLC
• En los tags de Programa se pueden dejar aquellos tags que tienen una función
intermedia (es decir, que son necesarios para que la lógica funcione, pero que no se
necesita que el operador los vea en una pantalla, por ejemplo). Algunos de estos
tags son:
o Tags usados en instrucciones ONS (bit de almacenamiento).
o Tags de configuración de instrucciones misceláneas (como los que crean las
instrucciones FBD).
En este último caso (los tags creados automáticamente por las instrucciones FBD),
se debe diferenciar claramente cuales tags se pueden dejar como tags de
Programa, y cuales se deben crear como tags de Controlador. Por ejemplo, los tags
usados por instrucciones de suma o comparaciones lógicas generalmente deben
quedar como tags de Programa (pues son cálculos intermedios cuyo resultado no
Página 10 de 183
son de interés directo del operador)
operador).. Los tags usados por instrucciones como PIDE o
por totalizadores son creados por RSLogix5000 como tags de Programa, y en este
caso deben ser cambiados a tags de Controlador (pues el funcionamiento
funcionamie del PID o
los valores del totalizador son de interés del operador). Esta situación se ejemplifica
en la Figura 4.
Controller tags
Program tags
Figura 3 Ejemplo de tags de Controlador y de Programa en Ladder
Controller tags
Program tags
Program tags
Como se verá más adelante, la mayor parte de la lógica desarrollada en este documento
hace uso de tipos de datos de usuario (UDT – User Defined Type), la mayoría de ellos
definidos en instrucciones ADD
ADD-ON.
ON. Esto ofrece una estructura mucho más organizada de
la base de datos de tags en eell PLC, debido a que agrupa en un solo nombre a todos los
componentes relacionados con una función específica.
El mismo motor, haciendo uso de un UDT haría uso de un único tag: M7706B, el cual tendría
dentro de si los tags requeridos:
5.3.TAREA PRINCIPAL
La tarea principal debe ser creada de tipo periódica (no se hace uso de tarea Continua),
usando una prioridad de 15 (la menor prioridad posible, para permitir que otras tareas
puedan interrumpirla). El periodo de ejecución debe ser configurado de acuerdo a las
necesidades específicas de la aplicación, pero se propone un periodo de 100 ms como
tiempo típico para este parámetro. Se debe tener cuidado con el ciclo de scan de la tarea,
pues no puede superar este tiempo. El número de tareas creadas en la aplicación debe ser
mantenida al mínimo posible, idealmente la única tarea debe ser la tarea principal definida
anteriormente.
Página 12 de 183
Figura 6 Configuración Tarea Principal
Solamente se debe hacer uso de estos dos programas, debido a que incluir más de ellos
incrementa el ciclo de scan del PLC. En la Figura 6 se muestra la Tarea Principal, y debajo de
ella, los dos programas mencionados.
Programa Principal
Rutina de motores
(Instrucciones AOI_FVNR)
Rutina de entradas discretas
(switch – instr AOI_Switch) Rutina de lazos de control
Página 14 de 183
Figura 8 Cuadro de Configuración Tarjeta Analógica
Configuración de la instrucción
La lógica de los transmisores debe ser creada en la rutina AI que corresponde al área en la que
se encuentra el procesador. La instrucción se inserta como un solo bloque, como se muestra en
la siguiente figura.
Figura 9 Instrucción Analog Input
En la figura se muestra una instrucción AOI_Ain creada para el transmisor FT8153C, la cual
encapsula toda la lógica y tags necesarios para procesar la entrada analógica.
Página 16 de 183
Parámetro Tipo Comentarios
salida asume el valor ‘0’ (disparo).
Salida de disparo de la instrucción, normalmente tiene un
valor de ‘1’. Si la alarma por LL está habilitada y está activa, y
TripLL Bool
si no está habilitado el bypass (BypassEn) entonces esta
salida asume el valor ‘0’ (disparo).
Define el tipo de Disparo que se produce ante Falla del Canal:
FaultTripType Bool 0 = Genera Trip LL
1 = Genera Trip HH
Por ejemplo, para referenciar el valor escalizado del transmisor en la Figura 9, se utilizaría el tag
FT8153C.Value. El tag FT8153C.Faulted indica el estado de falla del canal.
Existen otros parámetros que no se muestran en la instrucción, pero que se usan para
configurar algunas características de la misma:
Parámetro Tipo Comentarios
HHAlmEn Son los tags usados para habilitar/deshabilitar las alarmas. Un
HAlmEn valor de ‘1’ sirve para habilitar la alarma respectiva.
Bool
LAlmEn
LLAlmEn
HHAlmLimit Son los límites para generar las alarmas por HH, H, L y LL.
HAlmLimit
Real
LAlmLimit
LLAlmLimit
AlmDeadband En la banda muerta para el manejo de alarmas, ver ejemplo
Real
en la Figura 10.
BypassEn Habilitar Bypass:
Bool 0 = Deshabilitado
1 = Habilitado
Figura 10 Ejemplo de disparo/normalización de alarmas
El detalle de la implementación
ión de la instrucción se encuentra en la sección 7.2.
Página 18 de 183
• La instrucción genera dos indicaciones de falla durante el arranque: FailToStart y
FailToStop. Estas fallas se generan cuando:
o FailToStart: La instrucción comanda el motor a arrancar, y la entrada del
contacto auxiliar no se energiza por 15 segundos.
o FailToStop: La instrucción comanda el motor a parar, y la entrada del contacto
auxiliar se mantiene energizada por 15 segundos.
En ambos casos el tiempo de espera (15 segundos) es configurable.
Parámetros de la instrucción:
Parámetro Tipo Comentarios
Entradas
Es el nombre del motor. Con este nombre se crea un UDT que
AOI_FVNR Estructura
contiene todos los miembros usados por la instrucción.
Es la dirección de I/O correspondiente a la entrada del selector
HSR Bool de arranque del motor. Normalmente debe estar en ‘0’, un
valor de ‘1’ es un requerimiento de arrancar el motor.
Es la dirección de I/O correspondiente a la entrada del selector
de parada del motor. Normalmente debe estar en ‘1’ para
HSS Bool
permitir que el motor arranque. Un valor de ‘0’ ordena parar el
motor.
Es la dirección de I/O correspondiente a la entrada de falla
Fail Bool general del motor. Señal que se genera en campo que indica
que existe una falla en el motor cuando asume el valor ‘1’.
Es la dirección de I/O correspondiente a la entrada del
Aux Bool contacto auxiliar del arrancador. Un valor de ‘0’ significa que
el arrancador está abierto (motor parado).
Es el tag del PLC que usa el HMI para borrar las indicaciones
HMI_Reset Bool de falla del área. En el caso del motor, las fallas que limpia son
FailToStart y FailToStop.
Salidas
Contacto de arranque del motor, cuando asume el valor ‘1’
XSR Bool
energiza el motor (cuando XSS = 1).
Contacto de parada del motor. Normalmente debe estar en ‘1’
XSS Bool
para permitir el arranque, cuando es ‘0’ des-energiza el motor.
Indicación de falla por confirmación durante el arranque.
Asume el valor ‘1’ cuando se arranca el motor, y pasan
FailToStart Bool
“StartTMR.PRE” milisegundos sin que se energice la entrada
Aux.
Indicación de falla por confirmación durante la parada. Asume
FailToStop Bool el valor ‘1’ cuando se para el motor, y pasan “StopTMR.PRE”
milisegundos sin que se des-energice la entrada Aux.
Existe un parámetro que no se muestra en la instrucción, pero que puede ser usado desde la
lógica o el HMI:
Parámetro Tipo Comentarios
HMI_Stop Bool Comando de parada del motor desde el HMI
Adicionalmente la instrucción tiene un par de Local Tags con los temporizadores para generar
las fallas FailToStart y FailToStop. Se crean como Local Tags para evitar que fuentes externas
modifiquen estos valores (es decir, es necesario abrir el programa con RSLogix5000 para
modificarlos).
Local Tag Tipo Comentarios
Temporizado para generar la falla FailToStart. El tiempo por
StartTMR TIMER
defecto es de 15 segundos (StartTMR.PRE = 15000).
Temporizado para generar la falla FailToStop. El tiempo por
StartTMR TIMER
defecto es de 15 segundos (StopTMR.PRE = 15000).
Página 20 de 183
• Presenta una separación entre el estado lógico de la válvula (abierto/cerrado) y el
estado eléctrico de la salida. De esta manera no importa si la válvula es N.C. o N.O., la
variable de estado lógico siempre tiene el mismo significado (1 = Abierta).
• Tiene entradas para recibir el estado de un Limit Switch de apertura, y otro de cierre.
Sin embargo, la instrucción también puede ser usada para válvulas que no poseen uno
(o ambos) Limit Switch(s).
• Genera alarmas por Falla durante la apertura (FTO) y Falla durante el cierre (FTC),
cuando no se recibe la señal del Limit Switch correspondient
correspondientee en un lapso programable
de tiempo.
• Hace uso de comandos pasivos (es decir, existe un comando para abrir y otro para
cerrar), lo cual permite que la válvula conserve su estado actual durante las transiciones
de modo de operación. La instrucción se encarga de limpiar los comandos una vez son
recibidos (de esta manera el HMI o el programa del PLC solo se deben preocupar por
colocar el comando deseado en ‘1’).
• Posee los siguientes estados de operación:
o Control por programa: El estado de la válvula es controla
controlado
do por la lógica del
PLC, usando un comando de apertura y otro de cierre (ProgOpen, ProgClose).
Los comandos enviado por el HMI son descartados.
o Control por Operador (HMI): El estado de la válvula es controlado por un
comando de apertura y otro de cierre q que
ue vienen del HMI (HMIOpen,
HMIClose).
• Posee una entrada de Interlock, y tiene un parámetro para definir la acción que el
Interlock debe ejecutar (abrir o cerrar). Cuando el Interlock se vuelve activo, la válvula
asume el valor definido en el parámetro, si sin
n importar el estado de operación de la
válvula.
• Posee un estado de Bypass, para que la válvula opere según los comandos recibidos por
el HMI. En este modo no tienen efecto los Interlocks ni los comandos desde el
programa.
Se recomienda que los enclavamientos para las válvulas discretas se configuren a renglón
seguido de la instrucción AOI_Valve, como se muestra en la figura anterior. La rutina
X_AreaZ_Interlock se presenta principalmente para ingresar los enclavamientos relacionados a
lazos de control (ver instrucciones PID en 5.10).
Parámetros de la instrucción:
Parámetro Tipo Comentarios
Entradas
Es el nombre de la válvula discreta. Con este nombre se crea
AOI_Valve Estructura un UDT que contiene todos los miembros usados por la
instrucción.
Dirección del Limit Switch de cierre. Si no existe este Limit
ZSC Bool
Switch, usar el elemento NoZSC de la estructura.
Dirección del Limit Switch de apertura. Si no existe este Limit
ZSO Bool
Switch, usar el elemento NoZSO de la estructura.
Es el tag del PLC que usa el HMI para borrar las indicaciones
HMI_Reset Bool de falla del área. En el caso del motor, las fallas que limpia son
FailToStart y FailToStop.
Salidas
OUT Bool Dirección de la salida que controla la válvula.
SV Bool Es la representación del estado lógico de la válvula. 1 = Válvula
Página 22 de 183
Parámetro Tipo Comentarios
abierta, ‘0’ = Válvula cerrada.
Fail-to-Open, es la salida que indica que la válvula fue abierta,
FTO Bool
pero no se recibió confirmación del Switch de apertura.
Fail-to-Close, es la salida que indica que la válvula fue cerrada,
FTC Bool
pero no se recibió confirmación del Switch de cierre.
Existen otros parámetros que no se muestran en la instrucción, pero que se usan para
configurar algunas características de la misma:
Parámetro Tipo Comentarios
Es el comando para activar el estado de Interlock de la válvula.
Cuando esta entrada es ‘1’, la válvula asume el estado definido
Intlck_Req Bool
en “Intlck_State”. Los comandos de apertura y cierre por
Programa y por HMI son descartados en este estado.
Es el estado que debe asumir la válvula cuando entra en
Intlck_State Bool Interlock: ‘0’ = el interlock cierra la válvula; ‘1’ = el interlock
abre la válvula.
Es el modo de operación de la válvula:
Mode Bool ‘0’ = El programa tiene el control de la válvula
‘1’ = El operador (HMI) tiene el control de la válvula
Habilita el modo Bypass cuando es ‘1’. En el modo Bypass los
BypassEn Bool Interlocks no tienen efecto, y el control de la válvula se realiza
exclusivamente por el HMI.
HMIOpen Bool Es el comando desde el HMI para abrir la válvula.
HMIClose Bool Es el comando desde el HMI para cerrar la válvula.
ProgOpen Bool Es el comando desde el programa del PLC para abrir la válvula.
Es el comando desde el programa del PLC para cerrar la
ProgClose Bool
válvula.
Es una salida de la instrucción que se usa para simular el Limit
Switch de cierre en aquellas válvulas que no tienen dicho
NoZSC Bool
switch. En esos casos, la entrada ZSC se alimenta con esta
salida (ver Figura 13).
Es una salida de la instrucción que se usa para simular el Limit
Switch de apertura en aquellas válvulas que no tienen dicho
NoZSO Bool
switch. En esos casos, la entrada ZSC se alimenta con esta
salida (ver Figura 13).
Adicionalmente la instrucción tiene un par de Local Tags con los temporizadores para generar
las fallas FTO y FTC, y la variable para definir el tipo de válvula (N.C. o N.O.) Se crean como
Local Tags para evitar que fuentes externas modifiquen estos valores (es decir, es necesario
abrir el programa con RSLogix5000 para modificarlos).
Parámetros de la instrucción:
Parámetro Tipo Comentarios
Entradas
Es el nombre del Switch.. Con este nombre se crea un UDT que
AOI_Switch Estructura
contiene todos los miembros usados por la instrucción.
Es la dirección de I/O correspondiente a la entrada del Switch.
Switch
Input Bool
En condiciones normales debe estar en ‘1’.
Página 24 de 183
Este parámetro no se muestra en la instrucción, pero se usa
BypassEn Bool para habilitar/deshabilitar el disparo del switch. Ver abajo la
salida Trip.
Salidas
ZS Bool Estado del switch. Es una copia del valor en Input.
Es el disparo del switch:
Si BypassEn = ‘1’, entonces Trip = ‘1’ sin importar el estado de
Trip Bool
la entrada (Input).
Si BypassEn = ‘0’, entonces Trip = Input.
La instrucción PID convencional usa la forma posicional del algoritmo PID, mientras que la
instrucción PIDE utiliza la forma de velocidad del algoritmo. Este cambio tiene ventajas
sobre todo en el comportamiento de la salida del lazo cuando se realiza un cambio en las
ganancias del lazo:
• En la instrucción PID convencional, realizar un cambio en las ganancias mientras el
lazo está operando produce un sobresalto en la salida del lazo.
• En la nueva instrucción PIDE es posible realizar cambios en las ganancias mientras
el lazo está operando sin que se produzcan sobresaltos en la salida.
Esta característica hace que la instrucción PIDE sea especialmente útil para controladores
con ganancias adaptivas, controladores en rango dividido, controladores en paralelo y lazos
en cascada.
En esta sección se explica la forma como esta instrucción debe ser usada.
El tamaño por defecto de una hoja de código FBD es tipo carta (Letter – 8.5 x 11 in) el cual
es apropiado para configurar una o dos instrucciones por hoja.
5.10.2 GENERALIDADES
Estados de Operación
La instrucción puede trabajar en dos diferentes estados:
• Control por programa: Desde el programa del PLC es posible cambiar el modo
de operación del lazo, así como los valores de setpoint y de salida del lazo.
• Control por Operador: El operador puede cambiar el modo de operación del
lazo, así como los valores de setpoint y salida del lazo
Modos de Operación
Los siguientes modos de operación están definidos:
• Auto: En este modo el lazo regulará automáticamente su salida para mantener
el PV al valor de Setpoint deseado.
• Manual: El lazo mantiene su salida al valor ingresado por el operador (cuando
trabaja en Control por Operador) o en el valor determinado por la lógica del
PLC (cuando se trabaja Co
Control por programa).
• Override: Este modo se usa para colocar el lazo en un valor determinado
cuando se dispara un enclavamiento (Interlock).
• Cascada: En este modo el lazo trabaja de la misma manera que en modo Auto,
pero el setpoint viene de una fuente ext
externa.
Creación de la rutina
Para la implementación de la lógica se usa una rutina de tipo Function Block Diagram
Página 26 de 183
En la barra de instrucciones busque la pestaña correspondiente a “Process”, e inserte
una instrucción PIDE. Al hacerlo, se inserta una instrucción como la mostrada en la
Figura 15.
Por defecto, la instrucción muestra algunos parámetros y oculta otros. Para el caso de
esta primera implementación se deben marcar como visibles solo ciertos parámetros,
para hacerlo abra la ventana de configuración del lazo y ubique la pestaña
“Parameters”, y utilice la caja de selección de la columna “Vis” para volver
visible/invisible cada parámetro.
Abrir Propiedades
• PV • PVFault • PVEUMax
• PVEUMin • CVFault • CVEU
• SP • E • Auto
• Manual • ProgOper • Override
Cuando existe un
unaa falla en la salida análoga, no es deseable que el algoritmo
PID continúe ejecutándose (porque los cambios que haga en el CV en realidad
no van a producir un cambio en el elemento de control, y por lo tanto no van a
haber cambios en el PV. Esto produce ununaa saturación del CV en el tiempo).
Página 28 de 183
• PVEUMax, PVEUMin: Son los valores máximos y mínimos que puede asumir el
PV. Corresponde a los elementos .EUMax y .EUMin de la estructura AOI_AIN
usada por el transmisor.
Página 30 de 183
o Para el análisis de la acción de control no es necesario tener en cuenta
la operación del elemento final de control, siempre y cuando se use la
salida CVEU del lazo para comandar dicho elemento de control.
• Calculate Using:
o Proportional term: Seleccione si el término proporcional se aplica
sobre el cambio en el error (E) o el cambio en el PV.
o Derivative term: Seleccione si el término derivativo se aplica sobre el
cambio en el error (E) o el cambio en el PV.
Se sugiere usar el término proporcional aplicado al cambio en el error, y el
término derivativo aplicado al cambio en el PV. De esta manera se eliminan
picos en la salida del controlador ocasionados por el término derivativo
cuando se realizan cambios en el setpoint. Esto es importante en lazos en
los cuales se presentan frecuentes cambios de setpoint, pues la variabilidad
del proceso se puede afectar.
• Derivative Smoothing: Esta opción adiciona un filtro pasa bajos de primer
orden al término derivativo de la ecuación PID. Se usa para minimizar los
efectos de un PV con ruido. Normalmente este parámetro debe estar
deshabilitado.
• PV Tracking: Habilite esta opción para que el SP siga al valor del PV cuando el
lazo se encuentra en modo Manual. Utilice esta opción para que el lazo no
experimente saltos al pasarlo de modo Manual a Auto (debido a un setpoint
diferente al PV actual).
• Manual Mode After Initialization: Esta opción no se usa en esta guía.
• Equation Type: El tipo de ecuación que debe ser utilizado es Dependent
(Ecuación de términos dependientes).
• CV Zero-Crossing Deadband: Esta opción no se usa en esta guía.
Escalización del CV
(salida CVEU)
Limites del SP
Es importante cuadrar en esta pestaña los límites del SP de forma que sean
consistentes con los límites del PV (normalmente se cuadra los límites del SP para que
sean iguales a los del PV, sin embargo, esto no se hace de manera automática, para
permitir cuadrar unos valores de límite de SP cuando sea necesario modificarlos).
Tag Descripción
ProgProgReq Comando para pasar el lazo al estado de control por programa,
emitido desde la lógica del PLC.
ProgOperReq Comando para pasar el lazo al estado de control por operador,
emitido desde la lógica del PLC.
OperProgReq Comando para pasar el lazo al estado de control por programa,
emitido desde el HMI.
OperOperReq Comando para pasar el lazo al estado de control por operador,
emitido desde el HMI.
Como regla general, todo parámetro que comience con la palabra “Prog” corresponde
a tags que son de uso dentro del programa del PLC, mientras que aquellos que
empiezan con “Oper” son tags usados por el HMI.
Página 32 de 183
Para forzar lazo en estado de control por
Operador, usar ProgOperReq
Para el manejo de los enclavamientos se usa el modo override que ofrece la instrucción
PIDE:
• El modo Override se ejecuta cuando la entrada ProgOverrideReq asume el
valor de ‘1’, sin importar el estado (control por operador o control por
programa) ni el modo de operación de lazo (auto o manual).
• Cuando el lazo entra en modo Override, la salida asume el valor especificado
en el parámetros CVOverride.
• Mientras la condición de Override se mantiene (entrada ProgOverrideReq en
‘1’) no es posible cambiar el estado/modo del lazo, ni cambiar manualmente la
salida del lazo (a menos que se cambie el valor en CVOverride).
• Una vez que la condición de Override se normaliza (entrada ProgOverrideReq
nuevamente en ‘0’) el lazo se mantiene en su estado de Override (es decir, el
lazo NO retorna a su estado previo al override). Una vez esto suceda, se puede
cambiar el estado/modo del lazo ya sea por lógica en el programa o por
comando del operador.
Página 34 de 183
Comando de override
(enclavamiento) Valor de Override
Se debe crear un tag Booleano con el nombre del lazo y la terminación “_BypassEn”
con el cual sea posible hacer bypass del enclavamiento (y evitar que la acción se
ejecute en caso de cumplirse las condiciones).
Por ejemplo, tome el caso en el cual se desea controlar el flujo y la presión por
medio del control de una válvula de control de flujo. Para este caso es necesario
crear una instrucción PIDE que se encargue del control de flujo, y otra instrucción
PIDE para controlar la presión, y usar la menor de las salidas de esos lazos para
controlar el elemento final de control.
En esta figura, puede verse que existen dos lazos trabajando en paralelo, y se usa
una instrucción ESEL para seleccionar el menor de los dos lazos. La salida de la
instrucción ESEL es la que alimenta la salida análoga (accionando el elemento de
campo), y se realimenta a los bloques PIDE para que cada uno se mantenga
sincronizado con el otro.
En el caso de la figura, puede inferirse que en ese momento el lazo dominante es el
lazo de flujo, pues su PV (39.67) se encuentra bastante cerca del SP (40), mientras
que en lazo de presión la diferencia es más notoria (PV= 10.35, SP=20). Sin embargo
el lazo de presión no modifica su salida, debido a la realimentación que tiene del
valor actual de la salida. El lazo dominante puede confirmarse observando la salida
“SelectedIn” del bloque ESEL, la cual indica que en este caso la entrada
seleccionada es la entrada In1 (que corresponde a la salida del lazo de flujo).
Lazo de flujo
Selecciona el menor
entre los dos lazos
Lazo de presión
Página 36 de 183
Luego se inserta una instrucción de selección. Para este ejemplo se usó la
instrucción ESEL, con los siguientes parámetros:
• Parámetros visibles: Dejar visibles únicamente los siguientes parámetros:
o In1
o In2
o Out
o SelectedIn
• InsUsed: Colocarlo en ‘2’, para indicar que van a ser usadas las entradas In1
e In2.
• SelectorMode: Colocarlo en ‘2’, para indicar que la instrucción debe colocar
en su salida el menor valor que encuentre en sus entradas. Los valores
posibles son:
o 0 = Selección manual: La entrada seleccionada se escoje desde el
programa o por comando del operador.
o 1 = High Select, la instrucción selecciona el valor más alto.
o 2 = Low Select, la instrucción selecciona el valor más bajo.
o 3 = Median Select, la instrucción selecciona el valor que se
encuentra en el medio entre las entradas (no es el promedio). Si las
entradas In1, In2 e In3 se encuentran habilitadas con valores de 2, 3
y 10, la opción Median Select hará que la instrucción seleccione 3.
o 4 = Average Select, la instrucción usa el promedio de las entradas
usadas (para el ejemplo anterior, el promedio sería 5.
La instrucción ESEL fue escogida en este ejemplo por facilidad de uso, sin embargo
cualquier otra instrucción o lógica de selección puede ser usada.
Selector de lazo
Página 38 de 183
Lazo maestro
(temperatura)
Lazo esclavo
(flujo)
El lazo esclavo (el control de flujo en este ejemplo) puede trabajar en modo
Cascada, con lo cual su setpoint se alimenta de la salida del lazo maestro, o puede
estar en modo Auto/Manual, con lo cual el operador realiza un control de flujo de
agua directamente.
Página 40 de 183
Figura 28 Lazos en cascada
Luego, la salida del lazo maestro alimenta la entrada SPCascade del lazo esclavo (el
cual se encuentra en modo Cascada – CasRat). En este modo, el esclavo modifica su
salida para buscar que su PV (flujo de agua) se acerque al setpoint indicado por el
maestro.
Para la implementación del totalizador se hace uso de la instrucción TOT suministrada por
RSLogix5000, la cual se debe configurar en una rutina FBD.
Rutina de
totalizadores
Al insertar la instrucción TOT, se crea un tag de Programa con el nombre TOT_XX, el cual
debe ser cambiado por el nombre que corresponde con el totalizador (en este caso,
M01_FQ_8101, y se crea como tag de Controlador de tipo TOTALIZER). Se debe realizar los
siguientes pasos:
• Habilitar la visibilidad de los siguientes parámetros:
o In: Es la entrada para el transmisor ((o
o señal) que se desea totalizar.
Página 42 de 183
o ProgProgReq: Entrada usada para pasar el totalizador en estado de control
por programa.
o ProgResetReq: Entrada para reinicializar el totalizador.
o Total: Salida que lleva el valor actual totalizado.
o OldTotal: Salida que muestra el valor totalizado antiguo (desde el último
Reset).
o RunStop: Salida que indica el estado del totalizador. Un valor de ‘1’ indica
que el totalizador está corriendo.
• Configurar los siguientes parámetros:
o TimeBase: Ingrese la base de tiempo de la totalización:
0 = Segundos
1 = Minutos
2 = Horas
3 = Días
Este parámetro debe coincidir con las unidades de tiempo de la variable
totalizada, así por ejemplo, si la entrada está en:
• GPM (galones por minuto): Colocar este parámetro en ‘1’
• SCFH (Standard Cubic Feet per Hour): Colocar en ‘2’
o Gain: Se usa para multiplicar la entrada por el valor ingresado en este
parámetro, como por ejemplo, cuando se desea realizar una conversión de
unidades.
o ResetValue: Este es el valor que asume el totalizador una vez sucede un
reset. Normalmente debe ser cero.
o LowInCutoff: Es el valor mínimo que debe existir en la entrada para que el
totalizador trabaje. Si la entrada se encuentra por debajo de este valor, el
totalizador se detiene. Se usa para evitar la totalización de valores
fantasmas (por ejemplo, cuando se detiene el flujo, el transmisor puede
quedar indicando un valor muy pequeño, el cual, si es totalizado, induce
errores en el valor totalizado en el tiempo).
o ProgStartReq: Coloque este valor en ‘1’ para que el totalizador arranque. Si
necesita controlar el arranque/parada del totalizador de acuerdo a
determinadas condiciones, vuelva visibles los parámetros ProgStartReq y
ProgStopReq y aliméntelos con las señales adecuadas.
En el caso del totalizador de la Figura 30, el valor totalizado se reinicializa todos los días a la
media noche (el tag DateTime_Day_Change fue configurado para colocarse en ‘1’ durante
los últimos dos segundos antes de media noche, ver ejemplo en 5.12.1).
Figura 32 Instru
Instrucción para leer la fecha/hora del PLC
Página 44 de 183
• DateTime[5] = Segundo
• DateTime[6] = Microsegundo
Por ejemplo, se puede generar una indicación de cambio de día, como se muestra en la
siguiente figura:
Hardware
Para el uso de controladores en red Ethernet se cuenta con las siguientes alternativas:
Controllogix
• Usando redundancia de procesador: Módulo 1756-EN2T
• Sin redundancia: Módulo 1756-ENBT
Sistemas SLC-500
• Procesador referencia 1747-L5x (procesadores con puerto Ethernet embebido)
Sistemas PLC5:
• Procesador referencia 1785-L20E, 1785-L40E, 1785-L80E (procesadores con
puerto Ethernet embebido)
Sistemas microLogix:
• Sistema referencia MicroLogix 1100, 1400
Direccionamiento
La asignación de direcciones de los elementos en la red de Control es responsabilidad
del ingeniero IEC, el cual maneja el listado maestro de direcciones.
Implementación en Controllogix
Como regla general, en el IO Configuration del proyecto de RSLogix5000 solo deben
existir elementos que estén relacionados con IO. Como se dijo anteriormente, las
tarjetas Ethernet solo se usan para comunicaciones HMI (y en algunos casos para
compartir información no crítica entre Controladores), por lo que la tarjeta Ethernet
NO debe ser incluida en el IO Configuration.
Todo sistema que necesite compartir información con el HMI, debería incluir en su
diseño una tarjeta de comunicaciones Ethernet. Se debe evitar usar otro tipos de redes
(por ejemplo, la Controlnet) para manejar datos de HMI.
Página 46 de 183
Seleccionar esta opción
Por ejemplo,
emplo, si se tiene un sistema conformado por 4 chasis de PLC, dos paneles de
operador sobre Controlnet y una estación de ingeniería, la asignación de nodos deberá
ser:
• Nodos del 1 al 4: Chasis de PLC
• Nodos del 7 al 9: Paneles de operador y Estación de Inge
Ingeniería
En este caso se deja un espacio de reserva (las direcciones 5 y 6) para permitir futuras
expansiones de la red:
Página 48 de 183
Figura 36 Chasis remoto Controlnet
Formato de Comms
Página 50 de 183
Formato de Comms
• Las tarjetas análogas y especiales (en esencia, cualquier otra tarjeta que no es
digital) requiere conexiones directas. Esto significa que no ofrecen la opción
Rack Optimization en la ventana de configuración.
Se presenta las siguiente tabla con los valores recomendados de RPI para cada
tipo de tarjeta típica usada en facilidades:
En el PLC Gateway:
• GTWY_PRODUCED_11: Vector de información producida
• SPG_PCS_PRODUCED_1: Vector de información consumida desde SGPPCS
En el PLC SGPPCS:
• GTWY_PRODUCED_11: Vector de información consumida desde Gateway
• SGP_PCS_PRODUCED_1: Vector de información producida
Para poder configurar los tags consumidos, es necesario adicionar el PLC destino en el
IO Configuration del PLC consumidor, por ejemplo, en el PLC Gateway:
Para producir tags, solo es necesario definir el tag como Producido y especificar
cuantos consumidores van a consumir ese dato. Para consumir tags se debe marcar
como Consumido, y especificar desde cual Productor se va a consumi
consumirr la información.
Adicionalmente se debe definir el parámetro RPI que va a usar esta conexión. Esta
configuración se muestra en la siguiente figura:
Página 52 de 183
Tag Producido Tag Consumido
Seleccionar PLC
Productor
Existen dos variantes del protocolo: Modbus RTU es una representación binaria
compacta de los datos. Modbus ASCII es una representación “legible
“legible”” del protocolo,
pero menos eficiente.
Cada dispositivo de la red Modbus posee una dirección única, y está en capacidad de
enviar órdenes Modbus, aunque lo habitual es permitirlo sólo a un dispositivo (el
maestro de la red). Cada comando Modbus contiene la dirección del dispositivo
destinatario de la orden, de forma que todos los dispositivos reciben la trama pero solo
el destinatario la ejecuta. Los comandos básicos Modbus permiten controlar un
dispositivo para modificar algunos de sus registros, o bien para solicitar el contenido de
Página 54 de 183
ellos. Cuando un comando especifica una dirección destino de cero, significa que es un
mensaje Broadcast (que debe ser ejecutado por todos los nodos de la red).
Para más información sobre el protocolo Modbus, consulte la guía de aplicación del
protocolo disponible en:
http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
Página 56 de 183
Los módulos Prosoft para red Modbus se comportan como un espacio de memoria que
pueden ser escritos y leídos por el PLC. Este espacio de memoria es único (no existe
una memoria de escritura y otra de lectura), pero existen parámetros para definir un
segmento que va a servir como memoria de escritura (para que el PLC escriba en ella),
y otro segmento que trabaje como memoria de lectura (para que el PLC lea desde
estas posiciones).
El módulo posee internamente una lista de comandos, los cuales interactúan con este
espacio de memoria. Normalmente los comandos de escritura (escribir valores hacia
dispositivos en la red Modbus) toman los valores de segmento de memoria que el PLC
usa para escribir, y los comandos de lectura guardan los resultados en el segmento de
memoria que es leído por el PLC.
Por ejemplo, si se configura la tarjeta Prosoft para usar los primeros 600 registros
como segmento de escritura, y los 600 siguientes como segmento de lectura, se
obtiene la relación mostrada en la siguiente figura:
• Comandos Discretos: Para comandos de tipo 1 (Read Coil), 2 (Read Input), 5 (Write
Single Coil), 15 (Write Multiple Coils): La dirección de memoria interna se
referencia a nivel de bits. Ejemplos (los IDs son solo para efectos de este ejemplo):
En el ID 5 se hace un Read Input del nodo modbus #59, leyendo desde 10001 hasta
10032. El resultado de esta lectura se guarda a partir de la posición binaria 10880
(que corresponde a la posición entera de memoria interna 680). Por lo tanto el
Controllogix recibe este dato en ReadData[80] (680 – 600 = 80).
Página 58 de 183
El procedimiento es similar para cualquier referencia de tarjeta Prosoft, en este caso se
muestra el desarrollo con el módulo MVI56E-MNET. Se debe consultar el manual
específico a cada tarjeta para ingresar los valores correctos de tamaños de entrada y
salida, en la ventana de configuración del módulo.
Página 60 de 183
Cambie el primer parámetro por el nombre del tag que va a usar la instrucción.
instrucc Por
ejemplo, si la tarjeta fue creada como MNET_1, puede usar AOI56MNET_1 en este
campo.
Igualmente, cambie el nombre del módulo por el nombre asignado en los pasos
anteriores. Por ejemplo, cambie MNET por MNET_1.
Las imágenes de entrada y salida se acceden por medio de los miembros ReadData y
WriteData, las cuales son vectores de 600 posiciones de valores enteros.
Página 62 de 183
Los parámetros que se configuran por cada comando son:
• Enable: Seleccione Yes o No para habilitar/deshabilitar el comando.
• Internal Address: Ingrese la dirección de memoria interna usada para el
comando
• Poll Interval: Es el tiempo de retardo en decimas de segundo para la emisión de
un comando. Si se especifica un valor de 10 para este parámetro, el comando
se ejecutará cada segundo.
• Reg Count: Este parámetro especifica la cantidad de registros de 16 bits, o el
número de bits (dependiendo del tipo de comando) que serán usados.
• Node IP Address y Serv Port: Este parámetro es exclusivo de este tipo de
módulo (MVI56E-MNET), y sirve para especificar la dirección IP y puerto TCP
del nodo remoto.
• Slave Address: Corresponde a la dirección Modbus del nodo remoto.
• Modbus Function: Es la función Modbus a ser ejecutada, presenta un listado
con las diferentes opciones (leer Holding Register, escribir múltiples coils, etc).
• MB Address: Es la posición de memoria en el dispositivo remoto que se desea
leer o escribir.
Por ejemplo, en la tabla puede verse que una operación de lectura FC3 del registro Modbus
40101 (comando con ID 2) guarda el resultado en la posición interna de memoria 648. Esta
posición corresponde con el tag de Controllogix ReadData[48]
5.14. LOGICA DE DIAGNOSTICOS
Los diagnósticos se implementan en el programa Diagnostics, usando la estructura general
presentada en la siguiente figura:
Las primeras 4 rutinas (R00 a R03) se encargan de recopilar la información general del
chasis, como el diagnóstico de las fuentes redundantes, el consumo de memoria del
procesador, el estado de la redundancia (cuando aplique) y el estado general de los
módulos de I/O y de la batería del procesador. Estas rutinas son generales para todos los
procesadores.
Luego se encuentran las rutinas de diagnóstico de cada módulo en el chasis, por lo que la
estructura depende de la organización de módulos que cada chasis tenga. Se usa la
siguiente convención para nombrar cada rutina:
• Para los módulos de I/O que se encuentran en el mismo chasis del procesador, se crea
la rutina Rxx_LOCAL (en el caso de la Figura 53, no existen módulos de I/O en el mismo
chasis que el procesador).
• Las tarjetas Controlnet se diagnostican en rutinas llamadas Rxx_CNETyy, donde yy es el
slot en el cual se encuentra alojada la tarjeta.
• Los chasis de I/O remoto sobre Controlnet se diagnostican en rutinas llamadas
Rxx_CNETyy_Nzz, en donde:
o yy indica el slot de la tarjeta Controlnet desde que sale la red.
o zz indica el nodo Controlnet del chasis remoto.
Página 64 de 183
Por ejemplo, para el chasis de I/O que se muestra en la Figura 54 (chasis PCS_80001A), la
rutina correspondiente de diagnóstico es la Rxx_CNET02_N03 (el chasis del Nodo 03, que se
conecta a la Controlnet asociada al módulo del Slot 02 del chasis principal).
Para realizar el diagnóstico de los módulos del sistema de control, se usan principalmente
instrucciones GSV (una instrucción por cada módulo), las cuales al ser usadas
simultáneamente en grandes cantidades pueden afectar el consumo de memoria de I/O del
procesador (afectando por consiguiente su desempeño). Para evitar esta situación, se
implementa una lógica de ejecución secuencial, en la cual se tiene una variable que se
autoincrementa cada segundo, de forma que diferentes grupos de instrucciones GSV se
ejecutan en diferentes valores de la variable. La lógica de esta variable (Diag_Step) está
implementada en la rutina DiagMain.
Esta UDT se usa para crear tags que agrupan los datos de cada una de las tarjetas
Controlnet del sistema.
• Diag_Code_83
Name Data Type Descripción
SMAC_Version SINT MAC Version Number
Station_Status INT
Vendor_Specific SINT
LED_Status SINT Controlnet Led Status
Esta UDT es usada para crear tags que recuperan el estado de los Leds de las tarjetas
Controlnet (para revisar el estado de los canales).
• Diag_Gen_Data
Name Data Descripción
Type
Free_Mem_IO DINT
Free_Mem_DT DINT
Free_Mem_Gen DINT
Free_Memory DINT
Total_Mem_IO DINT
Total_Mem_DT DINT
Total_Mem_Gen DINT
Total_Memory DINT
Used_Memory_IO DINT
Used_Memory_DT DINT
Total_Used_Memory DINT
Biggest_Gen_Mem_Size_Ava DINT
Biggest_IO_Mem_Size_Ava DINT
Biggest_DT_Mem_Size_Ava DINT
RedundancyState INT Redundancy State:
1 = PowerUp
2 = Prim & sec Sync
Página 66 de 183
Name Data Descripción
Type
3 = Prim & sec Disq
4 = Prim sin Sec
5 = Prim & Sec enSyn
PhysicalChassisID INT 1 = Chasis A
2 = Chasis B
IOLedStatus INT 0=No IO listed
1=No modules respond
2=At least 1 module responds
3=All modules respond
PrimProcBattery BOOL Primary Controller
Battery Status
1 = Alarm
SecProcBattery BOOL Secondary Controller Battery
Status
1 = Alarm
Con esta UDT se agrupan los principales datos de diagnósticos relacionados con el
Controlador, de forma que el HMI lea toda esta información en un solo bloque.
• Diag_IOChasis
Name Data Type Descripción
Slot SINT Slot number of the module
EntryStatus INT From GSV Instruction
ConnStatus INT Connection Status (16#4000 = OK)
FaultCode INT Fault Code
FaultInfo DINT Fault Info (Extended Information)
Esta UDT se usa para crear los tags que agrupan la información de los módulos de I/O
en los chasis remotos.
• Diag_ProcFault
Name Data Type Descripción
DateTime DINT[2] Fault DateTime in UTC format
Type INT Fault Type
Code INT Fault Code
Last_DateTime DINT[2] Last Fault DateTime in UTC format
Last_Type INT Last Fault Type
Last_Code INT Last Fault Code
Esta UDT agrupa la información de consumo de memoria del PLC (en porcentaje) para
lectura desde el HMI.
Página 68 de 183
Diag_Step (ess decir, Diag_Step se autoincrementa en una posición cada segundo),
hasta que Diag_Step llegue al valor programado (en la figura, hasta el valor de 22).
El resto de la rutina son los saltos hacia las otras subrutinas del sistema de
diagnósticos:
El tag Diag_PowerSupply es luego revisado por el sistema HMI para generar las
indicaciones correspondientes en pantalla.
5.14.4 RUTINA R01_ProcessMem
Esta rutina es la encargada de recuperar el consumo de memoria del PLC, se hace
durante el paso 0 del ciclo de diagnóstico por medio de una instrucción MSG:
Esta es una instrucción mensaje genérica para solicitar parámetros a una clase (en este
caso la Clase 72, la cual corresponde al uso de memoria del PLC). Los elementos
solicitados se encuentran definidos en el vector definido en Source Element (en este
caso, el vector Diag_Memory_Request_Data[]), el cual contiene la siguiente
información:
• Diag_Memory_Request_Data[0] = 5 (# de atributos solicitados – 5 atributos)
• Diag_Memory_Request_Data[1] = 0
Página 70 de 183
• Diag_Memory_Request_Data[2] = 1 (atributo #1 – Memoria Libre)
• Diag_Memory_Request_Data[3
Diag_Memory_Request_Data[3] = 0
• Diag_Memory_Request_Data[4] = 2 (atributo #2 – Memoria Total)
• Diag_Memory_R
Diag_Memory_Request_Data[5] = 0
• Diag_Memory_Request_Data[6] = 5 (atributo #5 – Bloque de Memoria
M Max)
• Diag_Memory_Request_Data[7
Diag_Memory_Request_Data[7] = 0
• Diag_Memory_Request_Data[8] = 6 (atributo #6 – Bloque de Mem IO Max)
• Diag_Memory_Request_Data[9] = 0
• Diag_Memory_Request_Data[
Diag_Memory_Request_Data[10] = 7 (atributo #7 – Bloque de Mem DT Max)
• Diag_Memory_Request_Data[11
Diag_Memory_Request_Data[11] = 0
Página 72 de 183
Figura 62 Cálculo de valores totales de Mem DT y IO usadas
Página 74 de 183
5.14.5 RUTINA R02_RedundancyState
En los PLCs redundantes, esta rutina se encarga de recuperar el estado de la
redundancia de procesadores.
Cuando el PLC no es redundante, debe dejar una instrucción AFI al principio del
renglón,
glón, o eliminar esta rutina.
Existe otra instrucción GSV cuyo propósito es la obtención del estado del led de estado
del sistema
ema de I/O, la cual devuelve una palabra entera con los siguientes posibles
valores:
• 0 = No hay tarjetas de IO creadas en el I/O Configuration.
• 1 = Ninguno de los módulos de I/O responden.
• 2 = 1 o más módulos de I/O con problemas.
• 3 = Todos los módulos de I/O OK.
Finalmente la rutina genera los bits de alarma de batería, seleccionando los bits
apropiados en la palabra recuperada por la instrucción GSV.
Página 76 de 183
Figura 71 Generación de pulsos para lectura de tarjetas de I/O
Esta misma instrucción se debe repetir por cada tarjeta de I/O presente en el chasis,
agrupando las tarjetas de forma uniforme (por ejemplo, si en el chasis existen 9 tarjetas
de I/O, se debe usar ScanPulse1 para leer la información de las 3 primeras, ScanPulse2
para las 3 siguientes, y ScanPulse3 para las 3 finales).
Página 78 de 183
Figura 74 Recuperación código falla CNET Local
Finalmente, se hace uso de una instrucción MSG para recuperar el estado de los leds de
canal de la tarjeta Controlnet:
Página 80 de 183
Figura 77 Estado de leds de Controlnet
El estado de los leds de la Controlnet se guardan en una palabra entera con los
siguientes valores posibles:
• 000 = Led OFF
• 001 = Led Verde
• 010 = Led parpadeando verde (OK, recuperando)
• 011 = Led parpadeando rojo (Mal, tratando de recuperar)
• 100 = Led parpadeando rojo/verde (Mala configuración de red)
• 101 = Ambos leds parpadeando rojo alternadamente (errores físicos de red)
• 110 = Ambos leds parpadeando rojo/verde alternadamente (Mala
configuración de red)
• 111 = Rojo estático (tarjeta en falla).
Finalmente se generan las alarmas por tarjeta Controlnet, las cuales son desplegadas
por el HMI:
Figura 78 Generación alarmas Controlnet
Chasis remoto
El chasis
is remoto se encontraría en la rutina RXX_CNET01_N03.
Diag_CNETxx_Nyy_IO[zz]
Slot Tarjeta Madre Nodo del chasis Slot del módulo de I/O
en chasis Principal remoto en el chasis remoto
Página 82 de 183
Lo primero que hace la rutina es evaluar el estado de la tarjeta Controlnet en el
chasis remoto, como se muestra en la siguiente figura:
Página 84 de 183
muestra la adquisición de datos de la tarjeta de I/O del slot 1). Por ejemplo, en la
siguiente figura se m
muestra
uestra el renglón para la tarjeta del slot 2 del mismo chasis:
Esta misma instrucción se debe repetir por cada tarjeta de I/O presente en el chasis,
agrupando las tarjetas de forma uniforme (por ejemplo, si en el chasis existen 9 tarjetas
de I/O, se debe usar ScanPulse1 para leer la información de las 3 primeras, ScanPulse2
para las 3 siguientes, y ScanPulse3 para las 3 finales).
Esta misma estructura debe repetirse para todas las tarjetas Controlnet y chasis
remotos que maneje el PLC. Por ejemplo, para el I/O Configuration que se muestra en
la figura:
La escogencia del PLC que se va a monitorear, debe ser tal que se minimizen los
efectos de falla de punto común (por ejemplo, que un PLC no monitoree a otro que
funciona en el mismo tablero en donde éste se encuentra). Por ejemplo, el PLC
Gateway (que se encuentra en la subestación 69) monitorea el estado del PLC LTO2
PSS (el cual se encuentra en otra ubicación física distinta).
Página 86 de 183
Figura 87 Instrucción mensaje para leer estado PLC remoto
Path = 1, 2, 2, 10.0.0.155, 1, 0
Se muestra el path en formato numérico, pues es más que probable que no se tenga al
PLC remoto deseado incluido en el I/O Configuration del PLC. En este caso el path
significa:
1, = Bajar al backplane
2, = Ir al slot 2
2, = En el módulo (una tarjeta 1756-ENBT), salir al puerto de comunicaciones
(Ethernet).
10.0.0.155, = En la red Ethernet, buscar el dispositivo que tiene esta dirección.
1, = En el módulo (la tarjeta Ethernet remota), bajar al backplane
0 = Número de slot del PLC remoto
Como puede verse, el path siempre se especifica en parejas (x1,x2,y1,y2,z1,z2), en
donde el primer elemento (x1, y1, z1) es un número que especifica el puerto por el cual
salir:
1 = Bajar al backplane
2 = Salir al puerto de comunicaciones
Y los segundos elementos (x2, y2, z2) corresponden a las direcciones del elemento
destino, y depende de la red de comunicación en la cual se encuentre:
Si es Backplane = Es un número que representa el slot en el backplane.
Si es red Controlnet = Es el número de nodo de la tarjeta destino.
Si es red Ethernet = Es la dirección IP de la tarjeta destino.
Para este tipo de lógica, se deben usar los paths con comunicaciones Ethernet, y solo
pasar por Controlnet en aquellos casos en los que la comunicación Ethernet no sea
posible.
Las siguientes líneas se usan para convertir los valores leídos por la instrucción y
guardarlos en el UDT de tipo Diag_ProcFault correspondiente:
En este caso, se está realizando el monitoreo de falla del PLC SGPESD, desde la lógica
programa en LTO2 PCS. El tag destino de las operaciones de copia es
Página 88 de 183
Diag_SGPESD_Fault (de tipo de Diag_ProcFault). El objetivo de estas líneas es
mantener los códigos de falla actuales y los de la última falla (para que en caso que se
limpien las fallas del PLC, guardar el último valor registrado). Estos valores son
registrados en el HMI como eventos, de forma que una vez suceda el evento, quede un
registro en el sistema HMI con los códigos de falla y la fecha/hora de ocurrencia.
Finalmente también se realiza la recuperación del estado de operación del PLC (modo
Program, Run o Fault), para también llevar un registro de posibles eventos que puedan
suceder por un PLC que sea movido a modo Program accidentalmente. Se usa una
instrucción mensaje:
Página 90 de 183
Figura 92 Generación palabra de estado del PLC remoto - parte 2
Por último, se guarda una copia del último estado de este indicador (para que en caso
de eventos fortuitos de corta duración, poder mantener el estado en la variable
varia
Diag_SGPEDS_Last_State):
Figura 94 Copia del último valor de estado registrado
RSLogix5000 permite el ingreso de comentarios en varios niveles del archivo del PLC, las cuales
deben realizarse en idioma español.
Las descripciones deben incluir la identificación del proceso, área o máquina que está
controlando.
• Descripciones de tags: Los tags deben incluir descripciones que indiquen claramente la
función y/o equipo específico al cual está relacionado. Para el caso de dispositivos,
basta con crear la descripción para el tag base, ya que las descripciones de los
miembros son heredadas del tipo de dato específico.
Página 92 de 183
Por ejemplo, al crear el tag P77015A usando el tipo de datos AOI_FVNR, solo se debe
definir la descripción para el tag principal (por ejemplo, Bomba de Inyeccion EG - P-
77015A).). Los miembros de este tag usarán la descripción que se ha colocado al tag
principal más la descripción heredada del tipo de datos:
Para el caso de los tags que se crean para operaciones intermedias (booleanos, enteros,
temporizadores, etc) la descripción debe indicar la funcionalidad del tag, y en el caso de
tags booleanos, el signif
significado
icado que tiene un determinado estado, por ejemplo:
Página 94 de 183
• Comentarios de renglones: Cada renglón del programa de control debe tener un
comentario describiendo su funcionalidad. Se deben agrupar los renglones que estén
relacionados entre sí, y us
usar
ar unos caracteres especiales para separar conjuntos de
renglones:
En el caso de la figura anterior, los dos primeros renglones están relacionados con una
válvula FY8301D, y en cada renglón se presenta un comentario explicando la
funcionalidad de cada uno de ellos. Note que el primer renglón del conjunto inicia con
los caracteres ‘/’, de forma que se crea una especie de separación que puede ser
identificada a primera vista. Esta misma separació
separaciónn se realiza en el renglón #2, para
indicar que a partir de ahí inicia la lógica de otro dispositivo distinto.
• Comentarios en rutinas FBD: En el caso de las rutinas FBD se debe crear un comentario
corto por cada hoja de instrucción FBD que exista en llaa rutina, y adicionalmente se debe
adicionar un elemento “Text Box” por cada instrucción que exista en la hoja FBD. Este
punto se muestra en el siguiente ejemplo:
Página 96 de 183
Módulo
Comentario
En algunas ocasiones, es deseable que no todas las posibles fallas mayores que se generan en el
procesador produzcan una parada general del sistema de control, o se puede desear ejecutar
una lógica determinada antes que el procesador detenga la ejecución de la lógica.
Nunca se debe usar la información detallada en esta sección para limpiar continuamente las
fallas del PLC. Las rutinas de falla deben ser selectivas con el tipo de fallas que van a
monitorear y cuáles de ellas puede limpiar.
La ubicación de la rutina de falla depende del tipo de falla que se desea capturar:
• Rutina de falla a nivel de programa (Program Fault Routine): En este nivel se deben
colocar la lógica para capturar las fallas producidas por una instrucción (corresponden a
los tipos de falla mayor identificados con el número 4). Por ejemplo, cuando en la lógica
se usa direccionamiento indirecto (se usa el valor de un tag como índice de un vector) un
valor incorrecto en el índice puede provocar una falla mayor tipo 4. Se puede programar
una rutina a nivel de programa para capturar este tipo de situaciones y evitar que el PLC
se vaya a falla.
• Rutina de falla a nivel de Controlador (Controller Fault Routine): Las rutinas de falla en
este nivel se recomiendan para capturar fallas relacionadas a:
o Falla de comunicaciones con un módulo de I/O (cuando se configura que la
pérdida de comunicaciones con el módulo produzca una falla mayor),
correspondientes a las fallas tipo 3.
o Falla por tiempo de Watchdog excedido, correspondientes a las fallas tipo 6.
o Fallas relacionadas a equipos de control de movimiento (falla de un eje de
control de movimiento) correspondientes a las fallas tipo 11.
• Rutina en el Power-Up Handler: Utilice una rutina de Power-Up Handler para evitar que
el PLC se vaya a modo Falla cuando es energizado en modo Run o Remote Run. Esto
sucede normalmente en un PLC que se encuentra en funcionamiento y se apaga por
una falla en el suministro eléctrico. En el momento en que el PLC se alimenta
nuevamente, entra en modo falla.
Página 98 de 183
Un punto importante a tener en cuenta sobre las rutinas de falla, es que corresponde a lógica
que se ejecuta en un solo scan justo antes que el PLC se vaya a modo falla. Esto quiere decir que
no es posible implementar lógica que dependa de varios scans para completarse (como por
ejemplo, implementar un temporizador que controle algún elemento después de un tiempo de
detectada la falla – el temporizador no trabajará pues solamente va a ser escaneado una vez).
Por defecto la rutina de falla debe ser creada en el Controller Fault Handler, y debe ser usada
para realizar acciones muy puntuales en caso de falla del procesador, como establecer tags de
comunicaciones para notificarles a los otros PLCs del sistema la ocurrencia de la falla (de forma
que estos otros PLCs puedan ejecutar alguna acción de respuesta a ese evento).
2. Ingrese el nombre “Fault_Handler” como nombre del programa y pulse OK. Ahora
haga click con el botón derecho sobre este programa recién creado y seleccione la
opción “New Routine” e ingreses el nombre el nombre “Fault_Routine” para esta nueva
rutina.
3. Una vez haya creado la rutina, debe asociarla como rutina principal del programa de
falla (de la misma manera como se hace con las rutinas/programas convencionales.
Para hacerlo haga click con el botón derecho sobre el programa de falla (Fault_Handler)
y seleccione la opción “Properties”. En la ventana que se abre seleccione la pestaña
“Configuration” y seleccione la rutina de falla “Fault_Routine” como rutina principal de
este programa. Para finalizar pulse OK.
Figura 109 Asignación de rutina de falla
4. Si se requieren más rutinas que deban ser ejecutadas en caso de falla (por ejemplo, para
ofrecer una estructura más organizada de esta lógica) se puede dejar la rutina anterior
como rutina principal, implementando instrucciones de salto (JSR) hacia las otras
rutinas que se creen debajo de este programa.
Recuerde que la función falla segura del sistema se debe lograr por medio de la configuración
del estado de falla de los puntos de salida del PLC (cuando se configuran las tarjetas de salida
en el I/O configuration, al definir el estado de dichas salidas en caso de falla), y no depender
únicamente de la lógica programada en la rutina de fallas.
Por ejemplo, en la siguiente figura se muestra una rutina que establece unos bits de falla para
indicarle a otros PLCs remotos que este Controlador entró en falla, de forma que sea posible
programar lógica en los otros controladores para reaccionar adecuadamente a este evento:
Se debe recordar escribir lógica que limpie todas las posibles banderas que se establezcan en la
rutina de fallas, una vez el PLC entre nuevamente en modo RUN. Para ello puede implementar
una rutina de First Scan, como se explica a continuación:
1. Cree una rutina de tipo ladder llamada First_Scan en el programa principal del PLC.
3. Dentro de esta rutina implemente la lógica que debe ejecutarse cuando el PLC en modo
RUN, por ejemplo, el reset de las banderas de indicación de PLC en falla:
Los principales sistemas HMI (o sistemas de supervisión) usados en las facilidades son Wonderware
Intouch y Factory Talk View de Rockwell. El propósito de esta sección es entregar lineamientos
generales que pueden ser aplicados a ambas plataformas, y presentar el desarrollo básico de un
estándar HMI para Factory Talk View.
ALLE N BRADLEY
QU ALIT Y
2
NOT ICE
NOT ICE
NOT ICE
NOT ICE
NOT ICE
NOT ICE
NOT ICE
NO TICE
AT All e n-Bra dl e y
P LC-5/ 80 E
Se iniciará la discusión de estos componentes iniciando de abajo hacia arriba, tratando primero
el tema de las comunicaciones entre el HMI y el Sistema de Control.
Sistemas Wonderware con PLCs Allen Bradley: Se debe usar RSLinx clásico como servidor
OPC y FSGateway (de Wonderware) como cliente OPC del lado del HMI. De esta manera
RSLinx se encarga de comunicarse con los controladores usando el protocolo CIP, y
Wonderware accede a esta información a través de OPC. En la Figura 114 se muestra una
arquitectura de ejemplo usando este esquema. Esta arquitectura tiene las siguientes
características:
Las líneas continuas en la figura anterior representan las conexiones activas (los
caminos por los cuales se mueve la información) mientras que las líneas punteadas
representan los caminos alternos que el sistema usa cuando los componentes primarios
fallan.
• Los clientes usan el FSGateway del servidor activo, de forma que todo el sistema
solamente usa una sola fuente de datos (evitando la sobrecarga de solicitudes en la red
de control). La configuración de este esquema de comunicaciones se detalla en la
sección 6.4.
Sistemas Factory Talk View con PLCs Allen Bradley: Para los sistemas Factory Talk View SE
se debe usar RSLinx Enterprise para realizar las comunicaciones entre los Controladores y el
Sistema de Supervisión. Bajo este esquema se tiene la siguiente arquitectura:
• Se tiene un servidor dedicado como el Directorio del sistema Factory Talk (Factory Talk
Directory). La funcionalidad de este equipo es conservar los listados de los proyectos
HMI existentes, y el listado de los equipos en los cuales se encuentra distribuida la
• Se hace uso de servidores HMI Factory Talk View redundantes. En cada uno de estos
servidores se encuentra instalado RSLinx Enterprise, el cual se encarga de realizar la
comunicación entre los controladores y el sistema Factory Talk View. Solo un servidor
HMI y un componente RSLinx Enterprise se encuentra activo en un momento dado.
• Los clientes se comunican con el RSLinx Enterprise de los servidores, de forma que solo
un componente RSLinx Enterprise se encuentra activo al mismo tiempo (evitando la
sobrecarga de solicitudes en la red de control).
• Cuando alguno de los componentes servidor falla (ya sea el servidor HMI o el RSLinx
Enterprise) los clientes conmutan al otro servidor de Standby. Esta arquitectura se
muestra en la siguiente figura:
Como norma general debe recordar que los nombres usados para los tags de la base de
datos HMI deben correspo
corresponder
nder exactamente con los nombres de los tags en los PLCs,
PLCs
realizando los ajustes que sean necesarios de acuerdo a las limitaciones del sistema HMI.
Por ejemplo, en los PLCs se hace uso de estructuras de datos, los cuales bajo un mismo
nombre agrupan varios miembros distintos como se muestra en la siguiente tabla. En los
sistemas HMI muy posiblemente no sea posible usar la misma sintaxis (tag.miembro), pero
se pueden usar alternativas como jerarquía de carpetas HMI en Factory Talk View SE, o
SuperTags en Wonderware
derware Intouch).
Tags HMI
Carpetas HMI
TemplateMaker
Configuración de
Tópicos
Tópicos creados
En esta ventana existe una pestaña llamada “Data Collection”, y en ella hay un parámetro que
se llama “Polled Messages (mSec)”, la cual tiene por defecto el valor de 1000 mSec. Es
importante recalcar que este parámetro define la frecuencia de actualización del tópico para
clientes DDE, pero no tiene ningún efecto en la definición de las frecuencias de actualización
para clientes OPC.
Como se comentó anteriormente, el cliente OPC para esta arquitectura se llama FSGateway, el
cual funciona como un cliente OPC para RSLinx, e intercambia información con Intouch por
medio del protocolo SuiteLink.
El cliente OPC es el encargado de definir los ítems con los cuales necesita establecer
comunicaciones, y por lo tanto, es el cliente el que define los grupos OPC que van a ser creados
en el servidor. Debido a lo anterior, las frecuencias de actualización de la información la define
el cliente OPC.
No se deben confundir los clientes OPC con los clientes del sistema de supervisión.
Retomando la arquitectura mostrada en la Figura 114 en ella se encuentra que existen dos (2)
clientes OPC, representados por los dos computadores que están corriendo el software
FSGateway (existen cuatro clientes HMI, los cuales reciben la información de FSGateway).
3. Pulse con click derecho sobre “Configuration” y seleccione “Add OPC Object”. Se
debe adicionar un OPC Object por cada PLC que desee comunicarse (no es
obligatorio, pero es parte de la recomendación de esta guía). Al hacerlo se crea una
entrada
ntrada con el nombre genérico ““New_OPC_000”, ”, renómbrelo con el nombre del
PLC. En la parte derecha aparece la ventana de propiedades del objeto OPC.
OPC Objects
En el campo “Server Name” use el botón para abrir un diálogo que le muestra los
Servidores OPC disponibles en el equipo. Seleccione “RSLinx OPC Server”.
4. Creación de los grupos OPC: Pulse click derecho sobre el nombre del PLC deseado y
seleccione “Add OPCGroup Object” del menú contextual. Al hacerlo se crea una
entrada con el nombre genérico ““New_OPCGroup_000”, ”, renómbrelo con el
nombre de grupo d deseado.
eseado. Por ejemplo, si el PLC PCS_Proc maneja dos áreas
(Amina y DewPoint) se podría crear la estructura mostrada en la siguiente figura:
Una vez finalizados estos pasos, se puede proceder a realizar las configuraciones en
Intouch:
6. Creación de Access Names de Intouch: Se debe crear un Access Name por cada
grupo OPC creado en los pasos anteriores. Los Access Names se usan para
indicarle a cada tag HMI la ruta que debe usar para comunicarse con el PLC.
Los Access Names se crean en Intouch, en el menú “Configure” –> “Access Names”.
En la ventana se muestran los Access Names configurados, para adicionar uno
nuevo se usa el botón “Add…”, con lo que se abre la ventana de configuración del
elemento (como se muestra en la figura anterior).
La opción “Enable Secondary Source” debe ser usada cuando se tenga un sistema
de servidores redundantes. Al habilitarlo, se despliega el mismo conjunto de
parámetros discutidos anteriormente para el segundo servidor.
7. Direccionamiento del tag: El proceso para comunicar el tag HMI con el PLC a través
del FSGateway consiste en especificar el Access Name correspondiente, y el ítem
usando la nomenclatura adecuada. Por ejemplo, para direccionar el miembro
.Value de un tag HMI de tipo transmisor, la configuración se realizaría como se
muestra:
Seleccione el Access
Name que corresponde
Ingrese el nombre del
Item OPC
El sistema soporta servidores RSLinx Enterprise redundantes, los cuales por lo general residen
en los mismos computadores que funcionan como servidores HMI.
De manera similar a RSLinx Classic (el cual tiene tópicos OPC), el sistema RSLinx Enterprise
define los enlaces
ces de comunicaciones con el nombre “shortcut”. Se debe crear un “shortcut” por
cada PLC que se desee comunicar, usando el nombre del PLC como nombre de “shortcut”.
Shortcuts
PLCs
• Tags derivados: Si se necesita hacer uso de tags derivados, estos deben estar
organizados en grupos que ttengan
engan necesidades similares de tiempo de actualización.
Para modificar este tiempo, se debe abrir el archivo de tag derivados, y luego usar el
menú Setup Derived Tag Setup, con lo cual se abre la ventana de configuración
general del tag derivado:
• Archivos de eventos: Al igual que sucede con los tags derivados, la frecuencia de
actualización este tipo de componentes se configura abriendo el archivo de eventos, y
luego seleccionando Setup Event Setup.
Como regla general evite crear usuarios genéricos (por ejemplo operador1,
gas_operator, etc). Los roles de los usuarios se definirán más adelante por
medio de grupos, por lo tanto es preferible crear un usuario específico por cada
persona que necesite interactuar con el sistema.
6. Cierre la sesión del usuario actual: En el menú “File” seleccione la opción “Log Off”.
7. Inicie sesión con el usuario administrador que acaba de configurar: En el menú “File”
seleccione la opción “Log On” e ingrese como el usuario administrador que creó en el
paso #4.
8. Restringir el acceso al sistema:
Atención: Antes de realizar este paso confirme que ha creado al menos un usuario
administrador, y que lo adicionó al grupo “Administrators” (no al grupo “Windows
Administrators”). Si no es asi, puede perder acceso al sistema.
Este paso se realiza para permitir que cualquier usuario no autenticado (“All Users”)
pueda únicamente ver el árbol general del proyecto, pero no realizar ninguna acción de
configuración y/o operación sobre el sistema.
El sistema Factory Talk permite crear dos tipos diferentes de cuentas de usuario:
Usuarios de Factory Talk y Cuentas de Usuario vinculadas a cuentas de Windows. Para
el alcance de este documento, se realiza el proceso de creación de Usuarios de Factory
Talk.
1. Creación de usuarios: En FTVS navegue a System, Users and Groups, y haga click con el
botón derecho sobre “Users”. Seleccione la opción “New User” en el menú contextual
que aparece.
2. Ingrese los datos del usuario (Nombre de usuario, Nombre completo, descripción del
usuario y password) y seleccione la opción “User must change password at next logon”
(de esta manera, se asigna un password genérico al usuario pero se forza al usuario a
cambiarlo la primera vez que se autentique en el sistema).
Figura 139 Creación de un usuario
3. Repita el paso anterior por cada uno de los usuarios que va hacer uso del sistema, sin
importar el rol que desempeñe (operador, supervisor, administrador, etc).
4. Creación del usuario Invitado: Se debe crear un usuario el cual solo va a tener privilegios
para visualizar las pantallas de la aplicación, pero no va a poder realizar ninguna acción
de control. Este usuario será usado para mantener activo el cliente HMI cuando no haya
ninguna persona usando el sistema. Este usuario debe ser creado con el nombre
“Invitado”, y se deben habilitar las opciones “User cannot change password” y
“Password never expires”. El password de esta cuenta debe ser “invitado”.
5. Creación de grupos de usuarios: Los grupos de usuario sirven para definir un conjunto
de reglas (permisos) que son comunes a varios usuarios. En el caso del sistema HMI
discutido en este documento, se deben manejar tres grupos:
• Administrators: Es el grupo de administradores de FT View que el sistema trae
por defecto.
• Operadores: Corresponde al grupo del personal de operación del sistema HMI.
• Supervisores: Corresponde al grupo de supervisores de area/turno.
Repita este paso para crear el grupo “Supervisores”, y adicione los usuarios que
pertenecen a este grupo.
Esto significa que el código A es usado para todos los componentes que pueden ser
usados por cualquier tipo de usuario (por ejemplo, todas las pantallas por lo general
tendrán código A, para permitir que cualquier usuario pueda navegar por ellas, pero el
control de arranque de un motor tendrá código B para permitir que solo usuarios
autorizados puedan realizar esta acción).
Para realizar esta configuración, abra el menú “Settings” en el Factory Talk View, y
seleccione la opción “Runtime Security”.
Pulse en el botón “Security Accounts…” que se muestra en la Figura 142, con lo cual se
abre la ventana de configuración de seguridad para la aplicación. En esta ventana se
van a adicionar los grupos/usuarios y los respectivos códigos que van a manejar.
1. Por defecto el sistema habilita a todos los usuarios a acceder y manipular la aplicación
HMI, para eliminar esta característica seleccione “All Users” en la ventana de
configuración y pulse el botón “Remove”.
2. Ahora, pulse sobre el botón “Add…” y en la ventana que se abre seleccione la opción
“Show users only” en el filtro, con lo cual se deben desplegar los usuarios configurados
en el sistema. Seleccione el usuario “Invitado” y pulse OK.
Pulse sobre el cuadro “Allow” que se encuentra en frente de “FactoryTalk View Security
Codes” para limpiar todos los cuadros correspondientes a los códigos, y posteriormente
habilite el cuadro “Allow” de únicamente el código A. Pulse OK para finalizar la adición
de este usuario, con lo cual debe queda en la ventana de configuración de seguridad
para la aplicación (Figura 143).
Al igual que en el caso anterior, pulse sobre el cuadro “Allow” que se encuentra en
frente de “FactoryTalk View Security Codes” para limpiar todos los cuadros
correspondientes a los códigos, y posteriormente habilite el cuadro “Allow” de los
códigos A, B, C y D. Pulse OK para finalizar la adición de este grupo, con lo cual debe
queda en la ventana de configuración de seguridad para la aplicación (Figura 143).
Al abrir la base de datos de tags y definir un tag como alarma, se encuentra una ventana
como la que se muestra:
En esta ventana se pueden apreciar los principales parámetros que deben definirse para una
alarma:
• Alarm Type (Tipo de alarma): Define el valor que debe asumir el tag para que el
sistema lo identifique como una alarma, y puede configurarse con las siguientes
opciones:
o On: Alarma mientras el tag se encuentre en ‘1’.
o Off: Alarma mientras el tag se encuentre el ‘0’
o Any Change: Se genera alarma cada vez que el tag cambie de valor.
o Changes to On: Se genera una alarma ante la transición del tag a ‘1’.
o Changes to Off: Se genera una alarma ante la transición del tag a ‘0’.
Por lo general, las alarmas manejadas en este sistema deben ser de tipo “On”.
En la figura anterior puede verse un transmisor cuya alarma por valor alto se ha configurado
con severidad #3, lo cual se indica gráficamente por el color amarillo que se muestra en el
1. Creación de los Data Log Models: Se debe crear un modelo por cada conjunto de tags
que posean unas necesidades similares de velocidad de adquisición de datos, y
agrupados en las áreas principales que maneja la aplicación. Para crear un Data Log se
hace click con el botón derecho sobre “Data Log Models” y se selecciona la opción New,
como se muestra en la figura:
Figura 149 Creación de Data Log
Por ejemplo, las señales de flujo presentan una variación más rápida en el tiempo que
las señales de temperatura, por lo tanto se deberá crear un modelo para manejar los
flujos (con una velocidad de adquisición rápida, por ejemplo, 10 segundos) y otro
modelo para manejar las temperaturas (con una frecuencia más lenta, por ejemplo, 30
segundos).
Por defecto al crear un nuevo modelo, este se configura para crear archivos en la
carpeta del proyecto HMI del Servidor. En el caso de este documento, los servidores
HMI deben tener una partición independiente para el almacenamiento de tendencias
(de forma que los archivos de los modelos Data Log no vayan a generar una situación
de poco espacio en el disco duro principal de un servidor). Por lo tanto, lo primero que
debe hacerse el seleccionar la opción “Absolute Path” e ingresar la carpeta en la cual
serán guardados los archivos del Data Log, la cual debe estar en una partición diferente
a la partición del Sistema Operativo (por ejemplo, en D:\Datalogs).
4. Pestaña “Log Triggers”: En esta pestaña se definen los eventos que producirán que se
guarden datos en el modelo, y existen tres opciones:
• Periodic: Es la opción por defecto que debe ser usada en la mayoría de los
casos, en la cual el sistema guarda los valores de los tags que pertenecen al
modelo de manera periódica, en el lapso de tiempo especificado en el campo
“Interval”.
• On Change: Esta opción se usa para que los datos sean guardados cuando
presenten un cambio igual o superior al porcentaje de cambio definido en la
ventana:
Figura 153 Registro por cambio en el Data Log
5. Pestaña “Tags in Model”: En esta pestaña se definen los tags que serán monitoreados y
guardados por este modelo. Contiene dos cuadros de texto, el cuadro superior sirve
para adicionar nuevos tags al modelo, mientras que el cuadro de texto inferior muestra
el listado de los tags que pertenecen al modelo.
Como tal, esta pantalla debe ser configurada con los siguientes parámetros:
o Tipo: On Top
o Size: 1280 x 100
o Allow Display to be Resized: NO
o Position: x:0; y:0
o Size to Main Window at Runtime: NO
o Todos los demás valores por defecto.
o El objeto de texto para el título (el cual muestra el texto “Pantalla 1” en la
figura anterior), se debe nombrar como “txtTitle” en su cuadro de
propiedades, y se debe seleccionar “VBA Control” en el campo
“ExposeToVBA”.
Configuración de seguridad
La barra de Navegación debe dejarse sin código de seguridad (Security Code = *) de
forma que todos los usuarios puedan navegar por la aplicación.
Pantalla de proceso
Corresponde a cada una de las pantallas que conforman el sistema de supervisión, y en
su gran mayoría corresponden a representaciones de áreas de la planta. En la siguiente
figura se muestra la pantalla completa:
Pantalla de
proceso
Barra de estado
de FTV
Se debe escribir un script en cada una de estas pantallas para modificar el cuadro de
texto de la barra de navegación cuando la pantalla es abierta. Para hacerlo pulse sobre
un área despejada de la ventana y seleccione “VBA Code…” en el cuadro de diálogo que
aparece, con lo cual debe abrirse el editor de VBA. Seleccione el evento
“AnimationStart” del objeto “Display”, e ingrese el siguiente código:
Cambie “Nombre de la pantalla” por el título que desea usar para esta pantalla (por
ejemplo, “Unidad Turboexpander #1”). El editor de VBA se muestra en la siguiente
figura:
2. Seleccione “Display” en el primer combo, y “AnimationStart” en el segundo
De esta manera cada vez que cambie de pantalla este código se encargará de colocar el
título en el control correspondiente en la barra de navegación.
Sobre el usuario Invitado: Factory Talk crea el usuario “Anonymous Logon” durante la
instalación del sistema, y lo usa para efectos de configuración. Sin embargo, una vez el
sistema se encuentra instalado y funcionando, este usuario no cumple ninguna función
(no puede ser usado por ejemplo como un usuario sin privilegios para navegar por la
aplicación). El usar la función LogOff de Factory Talk produce que el cliente HMI se
cierre, permitiendo su apertura únicamente cuando se registra un nuevo usuario. Por lo
tanto, para permitir mantener abierta la aplicación HMI cliente con un usuario sin
permisos, se crea el usuario “Invitado”.
Para cada dispositivo se define un conjunto específico de parámetros, los cuales se acceden
al instanciar (copiar) un objeto desde la librería y pegarlo a la pantalla deseada, y
seleccionando la opción “Global Object Parameter Values” que aparece en el menú
contextual que se despliega a dar click con el botón derecho sobre el objeto.
6.5.9 Transmisores
Este dispositivo muestra en pantalla el valor de la entrada análoga que se le haya
relacionado en el PLC, las alarmas que tenga configuradas, el rango y sus correspondientes
unidades. Además, cuando se da click sobre él se abre una pantalla paramétrica que
muestra los valores límites de alarma que tenga configurados, y si se mantiene presionado
sobre él despliega una ventana con la tendencia de la señal análoga.
Funcionalidad:
En condiciones normales, el mímico en pantalla se muestra con las letras de color verde y el
fondo negro. Los estados de alarma del transmisor se animan en el fondo del indicador, de
acuerdo a la severidad configurada por cada tipo de alarma. Estos estados se resumen en la
siguiente figura:
En todos los casos anteriores el color de fondo se muestra parpadeando mientras la alarma
no haya sido reconocida, una vez se reconoce se mantiene del color correspondiente hasta
que la condición de alarma se normalice.
En caso que el transmisor reporte falla, el fondo se mantiene negro pero las letras se
animan de color rojo:
En este faceplate se muestra el nombre del transmisor, el valor del mismo (los colores de
fondo y de texto siguen las mismas reglas definidas anteriormente).
En la parte derecha del faceplate se muestran los valores de alarma para el transmisor, y
posee validación de seguridad para que solo usuarios autorizados puedan modificar dichos
valores.
Dependiendo de la configuración que se haga del objeto esta pantalla mostrará una
tendencia en tiempo real, o una de tipo histórico (asociada a un modelo de Data Log).
Configuración
Para instanciar un elemento de tipo transmisor en la pantalla siga los siguientes pasos:
Creación de los tags HMI
1. En este punto se realizará la creación de los tags HMI usando las plantillas en
formato CVS creadas para este propósito. Para este ejemplo, se crearán los tags
HMIs de dos transmisores (FT8153C y TT8107B), los cuales pertenecen al mismo
PLC (SGPPCS).
a. Ubique el archivo “TX Tags.CSV” y cópielo con otro nombre (por ejemplo,
“Pantalla1_TX Tags.CSV”).
b. Abra el archivo usando MS Excel.
c. En este archivo se encuentra la definición de tags HMI para un transmisor:
Sección de definición de
carpetas HMI
Sección de definición de
tags HMI
Configuración de parámetros
8. #1= Ingrese (o seleccione usando el botón “…”) la carpeta HMI que corresponde al
transmisor (la carpeta creada en el paso 1 de este apartado). Ejemplo:
SGPPCS\FT8153C.
9. #2= Ingrese el nombre del transmisor, corresponde al texto que debe aparecer en el
cuadro del objeto, y también aparece como el título del faceplate del transmisor. El
botón “…” no sirve para llenar este parámetro.
10. #3= Este es un parámetro opcional:
a. Si se deja en blanco, el transmisor no tiene asociado un tag en el sistema de
registro de históricos, y por lo tanto, al abrir la ventana de tendencia de este
transmisor se mostrará una tendencia en tiempo real.
b. Si el transmisor se registra en el sistema histórico, puede ingresar el nombre del
datalog asociado en este parámetro. De esta manera al abrir la ventana de
tendencia se mostrará una con la información histórica del datalog. Para el caso
de este ejemplo puede ingresar “Area1_Flujos”, que corresponde al datalog
creado en los pasos anteriores.
11. #4= La ventana de tendencia grafica por defecto el tag “AI” que se encuentra en la
carpeta HMI definida por el parámetro #1. Se ofrece este parámetro para graficar
otro tag diferente que exista dentro de la misma carpeta HMI del transmisor.
12. #5 = Este parámetro define el nivel de seguridad del transmisor (un valor entre A y
P). Si no ingresa nada en este campo (o ingresa un valor inválido) el transmisor
quedará sin seguridad. El nivel de seguridad define si el usuario registrado en el
sistema tiene permisos para modificar los límites de alarma.
6.5.10 Válvulas
Este dispositivo permite operar y visualizar el estado de abierto o cerrado de una válvula.
Cuando se da click sobre este dispositivo se despliega una pantalla que permite la operación
de la misma.
Funcionalidad:
El mímico de la válvula se divide en dos secciones:
• Un rectángulo superior que indica el comando activo hacia la válvula (abrir o cerrar).
• El cuerpo de la válvula (dos triángulos unidos por un círculo) que indica el estado
actual de apertura o cierre de la válvula (de acuerdo al estado de los switchs de final
de carrera).
El rectángulo superior se anima de color verde cuando el PLC comanda la válvula a abrir, y
se anima de color rojo cuando el comando es de cierre.
El cuerpo de la válvula se muestra de color verde cuando la válvula está abierta, y de color
rojo cuando está cerrada. La condición de apertura y cierre se determina por medio de la
presencia de los switchs de final de carrera (ZSO – Switch de final de carrera que indica que
la válvula está abierta, y ZSC – Switch de final de carrera que indica que la válvula está
cerrada), los cuales se encuentran como miembros de la estructura de datos de la válvula en
el PLC. Para el caso de válvulas que no tienen switchs de final de carrera (o que poseen solo
uno de los dos) la lógica del PLC se encarga de simular las señales ZSC/ZSO
correspondientes, de forma que la animación funciona también para este tipo de válvulas.
Como puede verse en la Figura 180 la válvula posee un rombo de color negro en la parte
superior. El objetivo de este rombo es indicar el estado de bypass de la válvula por medio de
una animación de color:
• Rombo de color negro: El bypass se encuentra deshabilitado.
• Rombo de color azul celeste: El bypass se encuentra habilitado.
Adicionalmente el mímico de la válvula posee un recuadro negro con la letra “M”, la cual
aparece cuando el dispositivo se encuentra en control manual desde pantalla (Control por
Operador).
Cuando el bypass se encuentra habilitado (rombo de color azul celeste) la válvula solamente
puede ser comandada desde el HMI. Los comandos de enclavamiento y de comando desde
PLC se desactivan en este modo.
Recuadro de nombre de
válvula, se anima de acuerdo a
la severidad de la alarma
Falla al abrir (FTO)
En la Figura 182 se muestra las animaciones que muestra la válvula ante una falla al cerrar
(FTC – Fail To Close), en la cual el cuerpo de la válvula titila entre rojo y amarillo, y una falla
al abrir (FTO – Fail To Open), en la cual se muestra titilando entre verde y amarillo. La
severidad de la alarma se indica con el color del recuadro de nombre de la válvula, titilando
de color amarillo si la alarma tiene severidad 3, naranja para severidad 2 y rojo para
severidad 1.
Al hacer click sobre la válvula se abre el faceplate de control, el cual muestra el estado del
comando y del feedback de la válvula, y presenta botones para operar el dispositivo. Este
faceplate se muestra en la siguiente figura:
Tag de la válvula Estado del Comando hacia
la válvula. Rojo = Cerrar
Verde = Abrir
Comandos de
apertura/cierre Indicación del Feedback de
la válvula. Rojo = Cerrada
Verde = Abierta
Cambiar a modo Programa
o modo Operador
Como puede verse en la figura anterior, el faceplate maneja el mismo código de colores que
el mímico, mostrando en la parte superior una animación del estado del comando
(abrir/cerrar) y en el cuadro del estado un texto y animación de color con el estado real de la
válvula (determinado por los switchs de final de carrera, cuando éstos existen). En la
siguiente figura se muestra las posibles transiciones presentadas en el faceplate cuando se
ordena abrir una válvula:
Reset de falla
Configuración
Para instanciar un elemento de tipo válvula en la pantalla siga los siguientes pasos:
Configuración de parámetros
7. #1= Ingrese (o seleccione usando el botón “…”) la carpeta HMI que corresponde a la
válvula (la carpeta HMI creada en el paso 1 de este apartado). Ejemplo: SGPPCS\
FY8301D.
8. #2= Ingrese el nombre de la válvula, corresponde al texto que debe aparecer en el
cuadro del objeto, y también aparece como el título del faceplate de la válvula. El
botón “…” no sirve para llenar este parámetro.
9. #3 = Este parámetro define el nivel de seguridad de la válvula (un valor entre A y P).
Si no ingresa nada en este campo (o ingresa un valor inválido) la válvula quedará sin
seguridad. El nivel de seguridad define si el usuario registrado en el sistema tiene
permisos para operar la válvula (abrir/cerrar y cambiar modo de operación).
10. Pulse OK para cerrar la ventana de parámetros. De esta manera, la válvula queda
configurada.
6.5.11 Motor
Este dispositivo permite operar y visualizar el estado de un motor convencional (Full
Voltage Non-Reversible).
Funcionalidad:
6.5.12 Switch
6.5.13 PID
6.6 IMPLEMENTACION HMI DEL SISTEMA DE DIAGNOSTICOS:
DIAGNOSTICOS
• Carpeta Critical\SGPPCS
Alarmas relacionadas con el Controlador:
o Diag_SGPPCS_Faulted: Indicación de PLC en falla
o Diag_Proc_Used_Mem_DT_HHAlarm
o Diag_Proc_Used_Mem_IO_HHAlarm
• Carpeta Warning\SGPPCS
Warnings relacionados con el Controlador:
o Diag_Gen_Data_PrimProcBattery
o Diag_Gen_Data_SecProcBattery
o Diag_Proc_Used_Mem_DT_HAlarm
o Diag_Proc_Used_Mem_IO_HAlarm
Colombia ESD
Colombia PCS
Por ejemplo, en la figura se muestran los PLCs Gateway, Colombia PCS y Colombia ESD
encerrados en recuadros independientes, pero físicamente esos PLCs se encuentran
instalados en el mismo tablero (tablero PCS-80001). Por lo tanto, esos tres recuadros
representan en mismo tablero, y al pulsar sobre cualquiera de ellos se abrirá la ventana del
tablero PCS-80001.
Cuando ocurre una falla “crítica” el recuadro del PLC parpadeará de color rojo indicando
que existe una falla crítica en el (los) PLC(s) respectivo(s), y se generará la alarma crítica del
sistema de Control.
Cuando ocurre un “warning” el área de PLC parpadeará de color amarillo indicando que
existe una advertencia en el (los) PLC(s) respectivo(s).
Al hacer click sobre el área se desplegará una pantalla donde se muestra el respectivo
tablero físico con los PLC que se encuentren en él. En las siguientes dos figuras se muestran
la representación de los paneles ESD-80001 y IO-80002
Dentro de cada pantalla de panel se muestra la distribución de los chasis de control que se
encuentran en ella, mostrando animaciones para representar las alarmas y/o warnings que
existen en cada uno de los elementos del tablero:
• Para el caso de las fuentes de alimentación de 24 VDC: Bajo condiciones normales,
las fuentes se muestran sin ninguna animación (como las mostradas en la Figura
193 y Figura 194. Cuando se pierde la redundancia de las fuentes, éstas se animan
con un recuadro parpadeante de color amarillo en el fondo.
• Para el caso de los módulos de PLC, existe un recuadro de indicación de falla que se
encuentra en el borde inferior de cada uno de ellos, el cual se anima de color rojo
ante una situación de falla crítica, o de color amarillo ante un warning.
Esta ventana muestra los valores Totales, Libres y Usados de la memoria de I/O y de la
memoria de Datos/Lógica. Adicionalmente, cuando el PLC es redundante, muestra el
estado de la redundancia:
• Identificación del chasis primario (Chasis A o Chasis B)
• Estado de la batería de ambos procesadores (Primario y Secundario)
• Estado de la redundancia: Es un texto indicando el estado:
o PowerUp
o Prim & Sec Sync
o Prim & Sec Disq
o Prim & NO Sec
• Estado General de los módulos de I/O: Presenta un resumen general del estado del
sistema de I/O del Procesador:
o No IO listed
o No modules respond
o At least 1 module responds
o All modules respond
• Modo del PLC: Esta sección muestra el modo de operación del PLC (Program, Run,
Faulted), y el tipo y código de falla (en caso que el PLC esté fallado).
Para los otros módulos se tiene una ventana genérica de estado, la cual indica básicamente
si el módulo se encuentra en falla, y el código y mensaje de falla (si existe).
El sistema crea un archivo por día en la carpeta D:\Datalogs\Diagnostics del Servidor HMI,
utilizando la nomenclatura: YYYY MM DD 0000 Diag (Float).DAT, donde YYYY
corresponde al año, MM al mes y DD. La información se guarda por un espacio de 6 meses.
Debido a la naturaleza poco variable de estos datos (se espera que la planta funcione sin
reportar códigos de error constantemente en el sistema de Control), se configuró la
adquisición de datos por cambio de valor (Data Change).
El siguiente es el procedimiento para revisar los archivos del datalog, el cual debe ser
ejecutado en la estación de ingeniería:
1. Para garantizar que el archivo de datos tenga la información más actualizada, abra
RSView Studio, y ejecute el comando: DataLogSnapshot diagnostics
2. Copie la carpeta D:\Datalogs\Diagnostics del Servidor HMI (\\Server1) a la estación de
ingeniería (o copie los archivos del día que desea revisar).
3. Ejecute la aplicación RSView Enterprise File Viewer, y use el menú File Open para
abrir el archivo del día que desea revisar. La utilidad muestra la información en filas y
columnas, mostrando la fecha y hora del evento, el nombre y valor del tag.
La herramienta permite exportar los registros a un archivo separado por comas, para
efectos de poder filtrar y analizar la información. Para hacerlo utilice el menú File Save
As.
7 ANEXOS
Si se usara una entrada de escalón en la entrada del canal (un cambio de 0% al 100% del
rango del canal), el valor filtrado llegaría a un 63% cuando se cumpla el primer periodo de
tiempo definido por el filtro. A partir de ahí, cada periodo de tiempo la señal filtrada
aumentaría un 63% del valor restante.
Por ejemplo, si se usa un filtro digital de 0,5 segundos y se aplica una entrada en escalón:
• En el tiempo t = 0,5 segundos la salida llegará al 63%.
• En el tiempo t = 1 segundo, la salida será del 86,3% (63 + (100-63)*6.3)
• En el tiempo t = 1.5 segundos, la salida será del 94.9% (86.3 + (100-86.3)*6.3)
• Y así sucesivamente.
Parámetros
Name Usage Type Description
InputAdd Input REAL Valor leído del modulo de entrada (escalizado en la tarjeta)
FaultAdd Input BOOL Indicación de canal en falla de la tarjeta
EuMax Input REAL Valor máximo en Unidades de Ingeniería
EuMin Input REAL Valor mínimo en Unidades de Ingeniería
Name Usage Type Description
HHAlmLimit Input REAL Valor de alarma HH
HAlmLimit Input REAL Valor de alarma H
LAlmLimit Input REAL Valor de alarma L
LLAlmLimit Input REAL Valor de alarma LL
AlmDeadband Input REAL Deadband de los limites de alarma
HHAlmEn Input BOOL Habilitar alarma HH
HAlmEn Input BOOL Habilitar alarma H
LAlmEn Input BOOL Habilitar alarma L
LLAlmEn Input BOOL Habilitar alarma LL
BypassEn Input BOOL Habilitar Bypass:
0 = Deshabilitado
1 = Habilitado
HHAlarm Output BOOL Alarma HH Activa
HAlarm Output BOOL Alarma H Activa
LAlarm Output BOOL Alarma L Activa
LLAlarm Output BOOL Alarma LL Activa
Faulted Output BOOL Indicación de canal en falla
TripHH Output BOOL Disparo por HH
(0 = Disparo)
TripLL Output BOOL Disparo por LL
(0 = Disparo)
Value Output REAL Valor escalizado
Local Tags:
Name Type Default Description
EuDelta REAL 0.0 Valor leído del modulo de entrada (escalizado en la tarjeta)
EuErrPerc REAL 0.1 Indicación de canal en falla de la tarjeta
EuORValue REAL 0.0 Valor máximo en Unidades de Ingeniería
EuURValue REAL 0.0 Valor mínimo en Unidades de Ingeniería
IntValue REAL 0.0 Valor de alarma HH
SqrEn BOOL 0.0 Valor de alarma H
SqrEuMax REAL 0.0 Valor de alarma L
SqrEuMin REAL 0.0 Valor de alarma LL
SqrRawMax REAL 0.0 Habilitar alarma HH
SqrRawMin REAL 0.0 Habilitar alarma H
Lógica:
Cálculo de raíz cuadrada: Existe un Local Tag llamado SqrEn (valor por defecto 0), el cual habilita el
cálculo de raíz cuadrada cuando está activo. La instrucción extrae la raíz cuadrada del valor leído del
canal, y la escaliza de acuerdo a los valores definidos en SqrRawMin, SqrRawMax (los valores mínimos y
máximos esperados del valor en raíz cuadrada)
cuadrada), SqrEuMin y SqrEuMax (los valores máximos y mínimos
en la nueva unidad de ingeniería calcula – por ejemplo, scfm).
Estos valores deben ser ingresados por el programador.
Faulted
ted se puede generar por OverRange o
UnderRange. Si la instrucción se encuentra
configurada para hacer disparo por LL ante la falla
del canal (FaultTripType = 0), entonces este
renglón evita que se produzca disparo por HH
ante falla.
Parámetros
Name Usage Type Description
HSR Input BOOL Contacto de Arranque desde Campo
(1 = Arranque)
HSS Input BOOL Contacto de Parada desde Campo
(0 = Parar)
Fail Input BOOL Falla General del Motor
(1 = Falla)
Aux Input BOOL Contacto Auxiliar
(1=Arrancado)
HMI_Stop Input BOOL Comando de Parada desde HMI
HMI_Reset Input BOOL Comando de Reset desde HMI
XSR Output BOOL Contacto de Arranque (1 = Arrancar)
XSS Output BOOL Contacto de Parada (0 = Parar)
FailToStart Output BOOL Falla de arranque (Contacto de Arranque Cerrado y No AUX)
FailToStop Output BOOL Falla de Parada (Contacto de Arranque abierto y AUX activo)
Local Tags:
Name Type Default Description
StartTMR Timer 15000 Temporizado para generar falla durante arranque
StopTMR Timer 15000 Temporizado para generar falla durante parada
Lógica:
Contacto de parada (XSS): En condiciones normales este contacto está energizado para
permitir el arranque del motor. Cuando llegue un comando de parada desde campo (HSS = ‘0’)
ó cuando llegue un coamdno de parada desde HMI (HMI_Stop = ‘1’) o ante una falla en el motor
el contacto XSS se abre para parar el motor.
Parámetros
Name Usage Type Description
ZSC Input BOOL Limit Switch de Cierre
ZSO Input BOOL Limit Switch de Apertura
Intlck_Req Input BOOL Se debe mantener en '1' para comandar la válvula al estado
de Interlock.
Intlck_State Input BOOL Estado de interlock:
0 = Cerrar Válvula
1 = Abrir Válvula
Mode Input BOOL Modo de Operación:
0 = Control por Programa
1 = Control por Operador
Name Usage Type Description
BypassEn Input BOOL Habilitar Bypass:
0 = Deshabilitado
1 = Habilitado
HMIOpen Input BOOL Comando de Apertura desde HMI
HMIClose Input BOOL Comando de Cierre desde HMI
ProgOpen Input BOOL Comando de Apertura desde PLC
ProgClose Input BOOL Comando de Cierre desde PLC
HMI_Reset Input BOOL Comando de Reset desde HMI
SV Output BOOL Estado Lógico:
1 = Abierta
0 = Cerrada
OUT Output BOOL Salida de Control de la Válvula
FTO Output BOOL Falla durante la Apertura (Fail-to-Open)
FTC Output BOOL Falla durante el Cierre (Fail-to-Close)
NoZSC Output BOOL Salida simulada de ZSC para válvulas que no tienen Limit
Switch de Cierre
NoZSO Output BOOL Salida simulada de ZSO para válvulas que no tienen Limit
Switch de Apertura
Lógica:
Cuando no está habilitado el bypass, la válvula es
controlada:
- Por el programa, cuando Mode = 0.
- Por el HMI, cuando Mode = 1.
- En cualquier modo cuando exista un Interlock.
No todas las válvulas tienen Limit Switchs de cierre y/o apertura. Para
esas válvulas se ofrece las salidas NoZSO y NoZSC, las cuales simulan
estos switches. De esta manera, si la válvula XYZ no tiene Limit Switch
de cerrado, se puede usar el tag XYZ.NoZSC para alimentar el parámetro
XYZ.ZSC.
Finalmente se realiza la reinicialización de los tags de falla (FTO y FT
FTC)
C) cuando llega el comando de reset desde el
HMI (HMI_Reset).
Los comandos de apertura y cierre (tanto desde programa como desde HMI) se autoauto-reinicializan
reinicializan (de forma que
el HMI y/o programa solo se debe preocupar por establecer estos tags cuando se requie
requiera,
ra, pero no de limpiarlos).
8 NOTAS