![[Pasted image 20250721114350.png]] ![[Pasted image 20250721114407.png|800]] La pagina de Sala Sciroppi es la Page_02_Opt_02 ![[Pasted image 20250721152351.png]] ![[Pasted image 20250721152425.png]] UR29 - QTM307 UR62 - QTM306 ![[Pasted image 20250721174319.png|800]] Aggiungere le UR29 e UR62 - Controllare se il blu Analizzatore brix sciroppo è opzionale - [ ] UR29 - QTM307 - [ ] UR62 - QTM306 ![[Pasted image 20250721174533.png]] ![[Pasted image 20250721180304.png]] Per Diet se debe ![[Pasted image 20250721181810.png|800]] Min - Max dall'UR29 - UR62 se caricano nel software direttamente e non vanno sul HMI In vece qua se debe creare 2 selettori: * UR29 : * Non present * Solo lettura * In funzione * UR62 : * Non present * Solo lettura * In funzione ![[Pasted image 20250721181410.png]] (1) Se alarga questo per aggiungere el % di taglio dal UR62 ![[Pasted image 20250721181506.png]] Creare un tab nuovo 'Acqua' con: * il valore min-max per il warning * il valore di riferimento in mS/cm * selettore di tipo di acqua: * microfiltrata * trattata ![[Pasted image 20250722103815.png|800]] * Se presiona el boton del HisoricTrend04 este boton asigna His_Trend_Profile_04 en Sim_Trend_Number. * La funcion His_Trend_Profile_04 asigna 4 a Sim_Trend_Number. * La variable Sim_Trend_Number tiene asociada una Reaction matrix: Trend_Hystoric_Type que ejecuta His_TREND_XX_TD * His_TREND_XX_TD ejecuta la marco TrenSelectDay y luego TemplateClose_TREND_HisProfiles Close the template _TREND_His_Profiles Boton de Brix -> ![[Pasted image 20250722141930.png]] Variable Sim_Tren_Number -> Matrix ![[Pasted image 20250722142206.png]] Matrix -> Trend_Hystoric_Type ![[Pasted image 20250722142406.png|800]] execute - His_TREND_XX_TD ![[Pasted image 20250722143725.png|800]] ![[Pasted image 20250722144041.png|800]] EXP_Trend_Today # Flujo de eventos y datos – Tendencia histórica (ejemplo perfil 04) ## Leyenda - **(V)** Variable de zenon - **(F)** Function / RtFunction - **(RM)** Reaction Matrix - **(S)** Script (lista de funciones) - **(VBA)** Procedimiento VBA - **(P)** Página de zenon - **(AS)** Archive Set (ficheros *.ARX*) --- ## 1 · Interacción del operario | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 1.1 | Pulsa botón **HistoricTrend04** | P-element | Ejecuta la función *His_Trend_Profile_04* | --- ## 2 · Selección de perfil | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 2.1 | *His_Trend_Profile_04* | F | `(V) Sim_Trend_Number := 4` | | 2.2 | Cambia el valor de la variable **Sim_Trend_Number** | V | Dispara la Reaction Matrix | --- ## 3 · Reaction Matrix y script | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 3.1 | **Trend_Hystoric_Type** reacciona a *Sim_Trend_Number = 4* | RM | Lanza el script *His_TREND_XX_TD* | | 3.2 | *His_TREND_XX_TD* | S | • Llama a *EXP_Trend_Today* (F)
• Cierra plantilla *_TREND_His_Profiles* | --- ## 4 · Obtención de fecha y llamada a VBA | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 4.1 | *EXP_Trend_Today* | F | Llama a procedimiento **TodaySelectDay** (VBA) | | 4.2 | **TodaySelectDay** | VBA | • `Today := Format(Date,"dd/mm/yyyy")`
• Llama a **OperateARXFiles(Today)** | --- ## 5 · Proceso VBA `OperateARXFiles` | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 5.1 | Calcula **Archive_Code** = `"04"` (a partir de *Sim_Trend_Number*) | VBA | | | 5.2 | Copia archivos | VBA | • Origen: `(V) Sim_EXP_DOS\04*.arx` → **C:\HMI\Backup\\***
• Rango: día seleccionado ±1 día | | 5.3 | Define rango de tiempo | VBA | `ARVTime1 := dd/mm/yyyy 0:00:00`
`ARVTime2 := dd/mm/yyyy 23:59:59` | | 5.4 | Ajusta filtros de la función | VBA | ```myFunction.DynProperties("PictFilter[0].TimeAxe[0].TimeFilter[0].ARVTime1")``` … | | 5.5 | Arranca la función **Page_08_His_TREND_04** | VBA | `thisProject.RtFunctions.Item("Page_08_His_TREND_04").Start` | --- ## 6 · Cambio de página e inyección de datos | Orden | Acción | Tipo | Detalle | |-------|--------|------|---------| | 6.1 | **Page_08_His_TREND_04** (F) | F | ­`Picture switch → "Page_08_His_TREND 04 – BRIX[ARV]"` | | 6.2 | Runtime abre la página base **Page_08_His_TREND 04** | P | Contiene objeto STATIC (ID 100012) | | 6.3 | El motor de zenon clona la página y sustituye el STATIC por un *Trend Viewer* | Engine | Fuente de datos = **BRIX[ARV]** | | 6.4 | *Trend Viewer* carga los pen definidos en el **Archive Set BRIX** | AS | Lee los archivos *.ARX* copiados a *C:\HMI\Backup* | | 6.5 | Se muestra la tendencia histórica filtrada por el rango de tiempo | UI | Fin del flujo | --- ## 7 · Resumen gráfico (mermaid) ```mermaid flowchart TD BTN[Botón HistoricTrend04] --> F1[His_Trend_Profile_04] F1 -->|Sim_Trend_Number := 4| VAR[Variable Sim_Trend_Number] VAR -->|Reaction Matrix| SCR[Script His_TREND_XX_TD] SCR --> F2[EXP_Trend_Today] F2 --> VBA1[TodaySelectDay()] VBA1 --> VBA2[OperateARXFiles()] VBA2 -->|copia ARX + filtros| RTFUNC[RtFunction Page_08_His_TREND_04] RTFUNC -->|Picture switch| PAGE[Page_08_His_TREND 04 – BRIX[ARV]] PAGE --> TV[Trend Viewer (runtime)] TV -->|lee pen de ArchiveSet BRIX| TREND[Curva histórica en pantalla] ``` ### Alarms *** * DB1000.DBX11.0 : Al_Critical_084 | Conduttivimetro sotto livello minimo * DB1000.DBX11.1 : Al_Critical_085 | Conduttivimetro sopra livello massimo ### Recipe Check ![[Pasted image 20250723160302.png]] * Mettere a zero i valori di brix ur29 e ur62 se sono disabilitati dal zenon Per il DAR : Debe essere un nuovo SyrupRunOut nuovo e syrup preparation nuovo ### Recipe Parameters *** ![[Pasted image 20250801105247.png|800]] ### HMI_Blender_Parameters *** ![[Pasted image 20250801105415.png|800]] ### HMI_Blender_Parameters on Zenon *** ![[Pasted image 20250801111733.png]] ![[Pasted image 20250801111110.png]] Per il Water fare soglia +- in vece di minimo massimo FTP302 Syrup Purgue AVP344 e 315 chiusa Con DAR *** Syrup Line preparation (priming) fino a AVS347/348 - manca AVS349 Syrup preparation fino #### Original Templates *** ![[Pasted image 20250805094645.png]]