Flusso di Scambio Dati (PLC-HMI-SCADA)
Flusso di Scambio Dati (PLC-HMI-SCADA)
Panoramica
Questo documento descrive la logica e la sequenza dinamica di “handshake” utilizzate per la comunicazione tra il PLC, l’interfaccia operatore (HMI) e il sistema di supervisione (SCADA). L’obiettivo è garantire uno scambio dati robusto e a prova di errore per le operazioni critiche come il cambio produzione e il monitoraggio della connessione.
Processo Principale: Cambio Ricetta/Produzione
Il processo di cambio ricetta è l’interazione più complessa e viene gestito da una macchina a stati (S60_RecipeManagement) nel PLC per garantire che ogni passo venga eseguito nella sequenza corretta.
Sequenza di Scambio Dati
Il “dialogo” tra i tre sistemi segue questi passaggi:
Abilitazione (HMI): L’operatore abilita il controllo remoto sull’HMI.
HMI -> PLC: ImpostaMachineAnalytics.HMI_Interface.RemoteControlEn = TRUE.
Richiesta (SCADA): Lo SCADA invia i dati per la nuova produzione (Indice Ricetta, Codice Lotto, etc.) e imposta il bit di richiesta.
SCADA -> PLC: ImpostaScadaInterface.Ingress.ProductionChangeRequest = TRUE.
Ack a SCADA (PLC): Il PLC valida la richiesta. Se è corretta, risponde immediatamente:
PLC -> SCADA: Invia la conferma di ricezione (Egress.AckChangeRecipe = TRUE).
Completamento Handshake (SCADA): Lo SCADA, non appena riceve l’Ack, sa che il PLC ha preso in carico la richiesta e abbassa subito il suo bit di richiesta.
SCADA -> PLC: ImpostaIngress.ProductionChangeRequest = FALSE.
Completamento Handshake (PLC): Il PLC, vedendo che la richiesta è stata abbassata, abbassa a sua volta il suo
AckChangeRecipe. L’handshake iniziale è concluso e il PLC procede autonomamente.Attivazione Pop-up (PLC): Il PLC attiva il flag per l’apertura del pop-up sull’HMI.
PLC -> HMI: ImpostaHMI_Interface.AckChangeRecipeToHMI = TRUE.
Visualizzazione (HMI): L’HMI mostra il pop-up di conferma all’operatore con i dati della ricetta richiesta.
Risposta (Operatore): L’operatore sceglie una delle opzioni sul pop-up:
- ACCETTA: L’HMI imposta
HMI_Interface.RecipeChangeOk = TRUE. Il PLC esegue l’azione (carica la ricetta, aggiorna i dati) e invia l’esito positivo allo SCADA (Egress.RecipeChangeOK = TRUEper 2 secondi). - RIFIUTA (o preme X): L’HMI imposta
HMI_Interface.RejectRecipeChange = TRUE(oCloseMESWindow). Il PLC invia l’esito negativo allo SCADA (Egress.RecipeChangeReject = TRUEper 2 secondi). - POSTICIPA: L’HMI imposta
HMI_Interface.BatchChangePopupDismiss = TRUE. Il PLC invia lo stato di attesa allo SCADA (Egress.RecipeChangePostpone = TRUE), avvia un timer (30 secondi) e, alla scadenza, torna al Passo 6 per far riapparire il pop-up.
- ACCETTA: L’HMI imposta
Handshake di Base: Watchdog (Heartbeat)
Per garantire che la comunicazione sia sempre attiva, è implementato un meccanismo di “heartbeat” a bit alternato.
- Dal PLC allo SCADA: Il PLC inverte il valore del bit
ScadaInterface.Egress.PlcHeartbeat_Toggleogni secondo. - Dallo SCADA al PLC: Lo SCADA deve leggere
PlcHeartbeat_Togglee ricopiarne il valore nel bitScadaInterface.Ingress.ScadaHeartbeat_Echo. - Controllo del PLC: Se
PlcHeartbeat_ToggleeScadaHeartbeat_Echorimangono diversi per più di un tempo di timeout (es. 3 secondi), il PLC imposta aVEROil flagScadaInterface.Egress.MesCommunicationFault.