Cada PLC contiene al menos tres tareas/programas principales:
-
Programa HA
-
Programa de aplicación
-
Modbus programa
Los programas de un PLC se comunican a través de estructuras internas de las bibliotecas y áreas de memoria interna dedicadas para la matriz HA-Sync y la(s) memoria(s) CiModDataxx CI52x de Modbus.
|
Elemento de diseño |
Significado |
|---|---|
|
Cuadro de contorno punteado |
Indica bloque de funciones o programas opcionales. |
|
Cuadro de contorno sólido |
Indica los bloques de funciones o programas obligatorios. Todos los bloques obligatorios se llaman cuando se crea una exportación desde el gestor de datos a granel. |
|
Fuente cursiva |
Indica el programa o funciones que el usuario debe llamar en su proyecto y que no han sido creados por el gestor de datos Bulk. |
|
Bloque de fondo amarillo claro / flecha azul |
Indica las operaciones que se gestionan internamente en la biblioteca. |
|
Caja sólida verde |
Indica las tres tareas diferentes que el usuario tiene que configurar. |
Modbus programa
El bloque de funciones CIModCI52x (V3) / CI_MOD_CI52x (V2) lee los valores de entrada de los módulos CI52x y los almacena en la estructura CiModDataxx. Si la CPU es primaria también escribe las salidas en los módulos CI52x. El bloque de función también parametriza el módulo CI tal y como se ha configurado, por ejemplo, en la herramienta de gestión de datos a granel durante la primera puesta en marcha o cuando se intercambia un módulo CI.
Normalmente, la biblioteca HA-Modbus TCP se encarga de supervisar las comunicaciones. No obstante, si la comunicación se interrumpe por completo, las interfaces de comunicación del CI52x y sus módulos de E/S tienen que reaccionar por sí solos para lograr un comportamiento sin fallos o deseado: Deben tenerse en cuenta los siguientes parámetros para las interfaces de comunicación y los módulos de E/S CI52x:
-
- CI52x: parámetro "Tiempo de espera" para la supervisión del Bus: 2)
Permite detectar errores también desde el lado de la interfaz de comunicación y tomar medidas para garantizar un comportamiento a prueba de fallos si se corta la comunicación. Puede ajustarse en pasos de 10 ms. Si se ajusta a 0 no hay supervisión de bus activa. Valor propuesto: 50 = 500 ms = por defecto en el gestor de datos a granel; este valor debe aumentarse, por ejemplo, al valor 65 si se utilizan puertos de CPU AC500 para la comunicación de campo para tener en cuenta el mayor tiempo de retransmisión TCP.
-
«Comportamiento Salidas» en «Tiempo de espera para la supervisión del Bus» 1), 2). Este parámetro de seguridad debe configurarse de forma con- ciencia: son posibles configuraciones distintas para cada módulo (e interfaz de comunicación): "desactivado"; "último" o "sustituto": 5 s, 10 s, ∞ s 1).
Observaciones:
1) Los parámetros «Comportamiento Salidas en com. El error» sólo se analiza si el modo a prueba de fallos es [ON].
2) Ambos son parámetros CI52x configurados, por ejemplo, a través de la herramienta Bulk data manager del programa.
Programa de aplicación
-
Al inicio de la tarea de aplicación se debe llamar al programa InputRefresh. Copia los datos de Modbus a través de la estructura CiModDataxx a las variables de usuario, que se definieron en BDM como señales. Para más información, consulte la documentación de BDM, que está disponible en la ruta: %ALLUSERSPROFILE%\Documents\Automation Builder Examples\PS5601-HA-MTCP\BulkDataManager\Documentation.
-
Sólo los programas de aplicación principales deben estar en esta tarea y utilizar estas variables para las funciones definidas por el usuario. Por ejemplo, aquí los programas de usuario y la lógica deben ser llamados y utilizar las bibliotecas HA bloques de utilidad (que sync sus datos históricos de forma automática) y HA_MOD_DATA_SYNC bloques para más datos de usuario que deben ser sincronizados.
-
Los datos de los bloques de utilidad y los bloques HA_MOD_DATA_SYNC se copian en la matriz HA Sync de la CPU primaria (que el programa HA envía a la CPU secundaria).
-
Se llama al programa OutputRefresh como último paso. Copia los datos de las variables de usuario a través de la estructura CiModDataxx a Modbus.
Ejemplo de bloque de función de utilidad (con datos de sincronización integrados)
Consideremos el temporizador de retardo HA_MOD_TON (V2)/ HaModTon (V3).
Ambos PLC requieren el mismo bloque de funciones llamado en el programa. En condiciones normales de funcionamiento, el tiempo transcurrido ET y la salida Q del temporizador se sincronizan internamente desde la CPU primaria a la secundaria. Los datos ET y Q están disponibles y pueden adjuntarse a variables locales o globales del programa según los requisitos de la aplicación. Si el PLC A se apaga debido a un fallo, el estado primario pasa al PLC B.
En caso de conmutación, en el momento en que el PLC B se convierta en el primario, el temporizador de este PLC seguirá funcionando. Hasta el momento del fallo del PLC A, el temporizador del PLC B estaba sincronizado. Esto es muy importante en los casos en que una CPU no estaba en marcha o apagada y necesita "ponerse al día" con los valores integrales o históricos del sistema (temporizadores, contadores, ajustes del operador, ...). El proceso real no se ve afectado por la conmutación.
Programa HA
HA_MOD_CONTROL tiene dos funciones:
-
Intercambiar datos de estado (lifecom1 y lifecom2) y cambiar del PLC secundario al primario (o viceversa) en función del estado según los casos de uso descritos en "Fallos y casos de uso"⮫ «Fallos y casos de uso».
-
Enviar matriz de sincronización "HA SYNC" del PLC primario al secundario para garantizar que el PLC secundario esté siempre en espera en caliente y pueda tomar el control inmediatamente. El protocolo UDP se utiliza para la sincronización de datos entre las CPU.
Sincronización de datos vía UDP
Este capítulo explica cómo se produce la sincronización de datos entre el PLC primario y el secundario a través de UDP.
Todos los datos de sincronización preparados se sincronizan con el PLC secundario. Normalmente sólo hay que sincronizar los valores integrales (temporizadores, contadores, PID, ...) o los ajustes que se hayan podido recibir. Por ejemplo, para casos de arranque rápido cuando se reinicia una CPU secundaria, como ambos PLCs están funcionando y calculando estrechamente en paralelo y basándose en los mismos valores de entrada, la sincronización hará que el secundario arranque con el valor actual en lugar del valor por defecto. Para más detalles sobre cómo configurar o utilizar el bloque de función de sincronización de datos, consulte los proyectos de ejemplo.
Se realizan los siguientes pasos:
-
La matriz HA SYNC se transfiere a través de UDP a la CPU secundaria. Esto incluye el intercambio de estado lifecom1 entre la CPU primaria y la secundaria.
-
En el programa de HA, el bloque de funciones HA_MOD_CONTROL recopila todos los datos de diagnóstico, sincronización y lifecom2 del campo y/o del otro PLC. Para decidir si es necesaria una conmutación se utiliza una sencilla matriz de decisión.
-
Lifecom2 se intercambia entre CPUs a través de Modbus TCP cada ciclo.
-
Una tarea por programa, véase la figura anterior.
-
El estado de las entradas conectadas a las estaciones de E/S descentralizadas CI52x se transfiere a ambos PLC simultáneamente en cada ciclo del PLC. Los recibe el bloque de funciones CI52x.
-
Al final del programa, se envían los valores de salida generados, transfiriéndolos desde las memorias intermedias respectivas del PLC primario al módulo o módulos CI52x-MODTCP mediante el bloque de funciones CI52x y Modbus TCP. El PLC secundario está preparado para enviar pero permanece "silencioso" (no envía valores de salida).
El PLC necesita un ciclo HA para enviar los datos de una trama ETH de la CPU primaria a la secundaria y recibir el acuse de recibo de la CPU secundaria. Del mismo modo, el PLC V3 necesita dos ciclos HA.
Una trama ETH copia aproximadamente 1412 bytes de datos. El número de tramas ETH necesarias para sincronizar HA Sync Array depende completamente del número de bytes de sincronización de datos. La variable global iNoOfEthFrames proporciona al usuario esta información, que debe utilizarse para calcular el tiempo de ciclo de la tarea de aplicación.
⮫ «Recomendaciones de configuración de tareas para el sistema de HA»
Hasta un máx. 60 kB de datos de sincronización.
La sincronización entre el PLC primario y el secundario se produce a lo largo de unos cuantos ciclos del tiempo de tarea de HA, en función del total de bytes de datos de sincronización configurados en el sistema. Lifecom1 también se intercambia entre el PLC primario y el secundario. El PLC primario envía lifecom1 al PLC secundario junto con los datos de sincronización. Hacia atrás, el PLC secundario envía lifecom1 al PLC primario en cada ciclo.
Las siguientes figuras muestran un ejemplo de PLC V2. Cuando en el proyecto los datos de sincronización son iguales a 4 iNoOfEthFrames entonces se necesitan 4 ciclos HA para sincronizar los datos entre los PLCs.
Cuando los datos de sincronización en el proyecto son iguales a 6 iNoOfEthFrames entonces se necesitan 6 ciclos HA para sincronizar los datos entre los PLCs.



