9.4 KiB
9.4 KiB
Análisis del Software PLC Mixer/Starblend (TIA Portal v18)
Basado en el archivo full_project_representation.md
. Análisis técnico del software PLC para un ingeniero informático familiarizado con PLCs.
Fase 1: Estructura General y Tipos de Datos (UDTs)
Organización del Proyecto
El proyecto sigue una estructura estándar y modular en TIA Portal:
- Tipos de Datos PLC (UDTs): Definen estructuras de datos personalizadas y reutilizables. Fundamental para estandarizar el manejo de dispositivos y datos complejos.
- Bloques de Función (FBs): Encapsulan lógica de control reutilizable con memoria asociada (DBs de instancia). Ideales para controlar componentes como válvulas, motores, o implementar lógica compleja como PID o secuenciadores.
- Funciones (FCs): Contienen lógica reutilizable sin memoria propia. Usadas para cálculos, conversiones, o tareas específicas que no requieren estado persistente.
- Bloques de Datos (DBs):
- Globales: Almacenan datos compartidos por todo el programa (Configuración, Estado, Interfaces).
- De Instancia: Almacenan los datos internos (estado) de cada llamada a un FB.
- Variables PLC (Tags): Variables globales (Marcas, Temporizadores, Contadores).
La conversión de LAD a SCL probablemente se enfocó en FBs y FCs para mejorar la estructuración, legibilidad y capacidad de implementar algoritmos complejos.
Tipos de Datos PLC (UDTs) Relevantes
Los UDTs definen las plantillas para los datos de componentes comunes:
AnalogInstrument
: Estructura estándar para entradas analógicas (sensores). IncluyePV
,SP
, escalado (Zero
,Span
), valor filtrado (PVFiltered
), y estados (Alarm
,Mask
,Wait
).CIP_Link_Type
: Define la interfaz de datos con el sistema CIP (peticiones, estados, fase actual).Cylinder_Valve
/MotorValve
: Para control de válvulas. Incluyen comandos (Open
,Close
), realimentaciones (Opened
,Closed
), y estados (Fault
).MotorValve
podría incluir posición.DosingCtrl
: Específico para control de dosificación. Contiene setpoints, valores actuales, estado de actuador asociado.DriveCtrl
: Para control de motores/bombas. Incluye comandos (Start
,Stop
), feedback (Running
,Fault
), y posible control de velocidad.FlowMeter
: Representa un medidor de flujo. IncluyeFlow Rate
,Totalizer
, y estado.HMI_Commands
: Estructura para recibir comandos desde el HMI.HMI_Status
: Estructura para enviar datos de estado/proceso al HMI.LevelProbe
: Representa sondas de nivel (analógicas o discretas).PID_Compact
: Probablemente encapsula los parámetros y E/S para el bloquePID_Compact
de Siemens.TankLevelCtrl
: Estructura para el control de nivel en tanques (sondas, setpoints, control de actuadores).Totalizer
: Estructura genérica para acumular valores (volumen, masa).
Observación: El uso intensivo de UDTs promueve la modularidad y facilita la creación de instancias para múltiples dispositivos idénticos.
Fase 2: Bloques de Función (FBs) y Funciones (FCs) Clave
Agrupados por funcionalidad del Mixer/Starblend:
Control Principal y Secuencia
BlenderCtrl__Main
(FB): Controlador principal. Gestiona estados generales (Parado, Producción, CIP), coordina sub-funciones, maneja totalizadores generales (ref:mResetProductTotTmr
,mResetTotalizerTmr
).BlenderRun__Control
(FB): Gestiona la secuencia de producción. Inicia/detiene dosificación, carbonatación, fases de arranque/parada (ref:mTON_Reset_RecircPHE_Goo
).SequenceControl
(FB): Posiblemente un secuenciador genérico utilizado por los anteriores.ManageState
(FC): Determina el estado operativo de la máquina basado en condiciones actuales.
Dosificación y Control de Ratio
DosingControl
(FB): Controla la adición de un ingrediente (agua, jarabe). Se instanciará varias veces. Recibe setpoint y actúa sobre válvula/bomba.RatioControl
(FB): Crítico. Mantiene la proporción (Brix) entre ingredientes. Lee flujos (deFlowMeter
/AnalogInstrument
), calcula el ratio actual y ajusta los setpoints de losDosingControl
. Puede usar PID.FlowControl
(FB): Podría ser un control de flujo genérico (PID) usado porDosingControl
oRatioControl
.AnalogScaling
(FC/FB): Convierte lecturas de sensores (INT) a unidades de ingeniería (REAL).FlowMeter
(Lógica asociada): Lee caudal, calcula totalizado.TotalizerCtrl
(FB): Gestiona cálculo y reseteo de totalizadores específicos.CalculateRatio
(FC): Contiene la fórmula matemática para el cálculo de ratio.
Control de Tanques y Niveles
TankLevel
(FB): Gestiona nivel de un tanque específico (ej. producto, desaireador). Incluye lógica de control y alarmas (ref:mSyrTank_LevFault2
,mSyrTank_LoadDelay
).LevelControl
(FB): Control de nivel genérico (ON/OFF o PID).DeaerationControl
(FB): Específico para el tanque de desaireación (nivel de agua, bomba de vacío).
Carbonatación
CarbonationControl
(FB): Gestiona inyección de CO2. Controla válvula/dosificador basado en setpoint y medición (flujo CO2, P/T). Puede usar PID.
Control de Calidad
ProductQuality
(FB): Monitoriza parámetros clave (Brix, CO2, Temperatura). Gestiona alarmas relacionadas (ref:mTTM306_H2O_HighDlyAlm
).SelCheckBrixSource
(FB): Selecciona y valida la fuente de medición de Brix si hay múltiples (sensor en línea, cálculo densidad). Gestiona alarmas con retardo (ref:mSyrBxDelayAlrm
,mSyrDensDelayAlrm
).
Control de Actuadores (Válvulas y Bombas)
ValveCtrl
(FB): Control individual de válvulas (ON/OFF, modulantes). Lógica de comando, feedback, fallo, interlocks. Asociado a UDTsCylinder_Valve
/MotorValve
.MotorCtrl
(FB): Control de bombas/motores. Start/Stop, estado, fallo. Asociado a UDTDriveCtrl
.PumpsControl
(FB): Gestiona un grupo de bombas (alternancia, habilitación, fallos centralizados) (ref:mSyrRoomH2OPumpFaultDly
).
Limpieza CIP
CIPMain_Flood
/CIPMain_Path
(FBs): Gestionan secuencias CIP (inundación de tanques, limpieza de líneas). Interactúan con sistema CIP central (víaCIP_Link_Type
,CIP_Interface_DB
). (ref:mSyrTank_Flood
).
Comunicación Externa
Com_Filler
(FC/FB): Lógica de comunicación con la llenadora (listo, demanda, E-Stop). Vía señales o bus, usandoFiller_Interface_DB
.Com_SyrupRoom
(FC/FB): Lógica de comunicación con sala de jarabes (petición, confirmación). UsandoSyrupRoom_Interface_DB
.
Utilidades y Funciones Generales
AnalogAlarm
(FB): Genera alarmas estándar para valores analógicos.HandleAlarms
(FC): Posiblemente centraliza la gestión de alarmas (activación, reconocimiento).HMI_Interface
(FC): Agrupa lógica de intercambio de datos con el HMI (víaHMI_Commands
,HMI_Status
,HMI_DB
).
Fase 3: Bloques de Datos (DBs) y Variables (Tags)
Bloques de Datos Globales (GDBs)
Configuration_DB
/Parameters_DB
: Crucial. Almacena todos los parámetros configurables (setpoints de ratio/Brix, flujos, límites de alarma, tiempos, PIDs, recetas). Su estructura define la flexibilidad y ajuste de la máquina.Status_DB
: Almacena el estado actual de la máquina y valores de proceso importantes para lógica interna y HMI.Alarms_DB
: Contiene el estado de todas las alarmas definidas.Interface_DBs
(Filler_Interface_DB
,SyrupRoom_Interface_DB
,CIP_Interface_DB
): Buffers de datos para la comunicación con sistemas externos.
Bloques de Datos de Instancia (IDBs)
- Cada uso de un FB crea un IDB asociado (ej.
DosingControl_Water_DB
). Almacenan el estado interno (VAR_STAT
) y parámetros específicos de esa instancia.
Variables PLC (Tags)
- Variables
m...
(ej.mSyrBxDelayAlrm
): Memorias internas (flags, condiciones, triggers). Sus nombres suelen indicar su propósito. - Temporizadores (implícitos en
...Tmr
,...Dly
,TON_...
): Usados para retardos, debounce, timeouts en secuencias.
Próximos Pasos Sugeridos
Para profundizar el análisis:
- Analizar Lógica Interna de FBs Clave: Revisar el código SCL (si disponible) de
RatioControl
,BlenderRun__Control
,DosingControl
. - Detallar Estructura del
Configuration_DB
: Identificar parámetros clave y su impacto. - Examinar Lógica de Comunicación: Ver detalles del intercambio de señales/datos con Llenadora, Sala Jarabes, CIP.
- Analizar Manejo de Estados y Alarmas: Diagrama de estados de la máquina y flujo de gestión de alarmas.
- Revisar Implementación de PID: Configuración y uso de
PID_Compact
u otros bloques PID.
Próximos Pasos Sugeridos:
Para profundizar, podríamos enfocarnos en:
- Analizar la lógica interna de FBs clave: Como
RatioControl
,BlenderRun__Control
, oDosingControl
. Si tienes el código SCL de estos bloques, podríamos revisarlo. - Detallar la estructura del
Configuration_DB
: Identificar qué parámetros son configurables y cómo afectan el funcionamiento. - Examinar la lógica de comunicación: Ver cómo se gestionan exactamente las señales con la Llenadora, Sala de Jarabes y CIP.
- Analizar el manejo de estados y alarmas: Cómo transita la máquina entre estados y cómo se generan y gestionan las alarmas.
- Revisar la implementación del PID: Si se usa
PID_Compact
u otro, ver cómo está configurado y cómo se integra en el control de flujo, nivel o carbonatación.