225 lines
6.1 KiB
Markdown
225 lines
6.1 KiB
Markdown
|
||
![[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) <br>• 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")` <br>• 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\\*** <br>• Rango: día seleccionado ±1 día |
|
||
| 5.3 | Define rango de tiempo | VBA | `ARVTime1 := dd/mm/yyyy 0:00:00` <br>`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]] |