docs/docs/Omron/MachineAnalytics_SCADA/sections/00-SCADAInterface_Structure.md

182 lines
10 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: MachineAnalytics_SCADA_SCADAInterface_Structure
sidebar_position: 0
sidebar_label: Struttura SCADA Interface Cambio Ricetta & Aggiornamento Produzione
pagination_prev: Omron/MachineAnalytics_SCADA/MachineAnalytics_SCADA_Flowpack_MachineAnalytics_Documentation
hide_table_of_contents: true
---
# Struttura SCADA Interface Cambio Ricetta & Aggiornamento Produzione
---
## 1. 📋 Tabella Variabili di Scambio PLCSCADA
### 🟢 EGRESS (PLC → SCADA)
| 🏷️ Nome | 🗃️ Tipo | 🔀 Direzione | 🪄 Icona | 📝 Descrizione Operativa |
|--------------------------|-------------|--------------|---------|---------------------------------------------|
| ▶️ IsRunning | BOOL | Output | 🚦 | Macchina in marcia |
| ⏹️ IsStopped | BOOL | Output | 🛑 | Macchina ferma |
| 🆘 IsInEmergency | BOOL | Output | 🚨 | Emergenza attiva |
| ⬇️ IsWaitingDownstream | BOOL | Output | ⏳ | Attesa segnale macchina a valle |
| ⬆️ IsWaitingUpstream | BOOL | Output | ⏳ | Attesa prodotto da macchina a monte |
| 🛎️ IsAlarmActive | BOOL | Output | 🛎️ | Allarme attivo |
| 🔁 RecipeChangeACK | BOOL | Output | ✅ | Ack cambio ricetta |
| 🟢 RecipeChangeOK | BOOL | Output | 🟩 | Cambio ricetta OK |
| ❌ RecipeChangeReject | BOOL | Output | ❌ | Cambio ricetta rifiutato |
| ⏸️ RecipeChangePostpone | BOOL | Output | ⏸️ | Cambio ricetta posticipato |
| 🔁 ProductionChangeACK | BOOL | Output | ✅ | Ack cambio produzione |
| 🟢 ProductionChangeOK | BOOL | Output | 🟩 | Produzione aggiornata OK |
| ❌ ProductionChangeReject| BOOL | Output | ❌ | Aggiornamento produzione rifiutato |
| ⏸️ ProductionChangePostpone| BOOL | Output | ⏸️ | Aggiornamento produzione posticipato |
| 📄 ActualRecipeIndex | DINT | Output | #⃣ | Indice ricetta attiva |
| 📄 ActualRecipeName | STRING[38] | Output | 📝 | Nome ricetta attiva |
| 🏷️ ActualProductionInfo | STRING[38] | Output | 🏷️ | Lotto/ordine attivo |
| #⃣ ActualProductionCode | DINT | Output | #⃣ | Codice lotto/ordine attivo |
| 📦 ActualProductionQuantity | DINT | Output | 📦 | Quantità lotto/ordine attiva |
| 🚀 ActualSpeed | REAL | Output | 🚀 | Velocità attuale [Pacchi/min] |
| 🎯 ReferenceSpeed | REAL | Output | 🎯 | Velocità di riferimento da ricetta |
---
### 🔵 INGRESS (SCADA → PLC)
| 🏷️ Nome | 🗃️ Tipo | 🔀 Direzione | 🪄 Icona | 📝 Descrizione Operativa |
|---------------------------|-------------|--------------|---------|---------------------------------------------|
| 🔄 RecipeChangeRequest | BOOL | Input | 📥 | Richiesta cambio ricetta |
| #⃣ RecipeIndexRequest | DINT | Input | #⃣ | Indice ricetta richiesta |
| 🏷️ RecipeProductionInfoRequest | STRING[38]| Input | 🏷️ | Lotto/ordine richiesto per ricetta |
| #⃣ RecipeProductionCodeRequest | DINT | Input | #⃣ | Codice lotto/ordine richiesto per ricetta |
| 📦 RecipeProductionQuantityRequest | DINT | Input | 📦 | Quantità lotto/ordine richiesta per ricetta |
| 🔄 ProductionChangeRequest| BOOL | Input | 📥 | Richiesta cambio produzione |
| #⃣ ProductionCodeRequest | DINT | Input | #⃣ | Codice lotto/ordine richiesta |
| 📦 ProductionQuantityRequest | DINT | Input | 📦 | Quantità lotto/ordine richiesta |
| 🏷️ ProductionInfoRequest | STRING[38] | Input | 🏷️ | Lotto/ordine richiesto |
---
## 2. 🌳 Tree Strutturale SCADA Egress/Ingress
```plaintext
ST_ScadaInterface
├── Egress
│ ├── RecipeChangeACK ✅
│ ├── RecipeChangeOK 🟩
│ ├── RecipeChangeReject ❌
│ ├── RecipeChangePostpone ⏸️
│ ├── ProductionChangeACK ✅
│ ├── ProductionChangeOK 🟩
│ ├── ProductionChangeReject ❌
│ ├── ProductionChangePostpone ⏸️
│ ├── ActualRecipeIndex #️⃣
│ ├── ActualRecipeName 📝
│ ├── ActualProductionInfo 🏷️
│ ├── ActualProductionCode #️⃣
│ ├── ActualProductionQuantity 📦
│ ├── ActualSpeed 🚀
│ ├── ReferenceSpeed 🎯
│ ├── ...altre variabili di status...
├── Ingress
│ ├── RecipeChangeRequest 📥
│ ├── RecipeIndexRequest #️⃣
│ ├── RecipeProductionInfoRequest 🏷️
│ ├── RecipeProductionCodeRequest #️⃣
│ ├── RecipeProductionQuantityRequest 📦
│ ├── ProductionChangeRequest 📥
│ ├── ProductionCodeRequest #️⃣
│ ├── ProductionQuantityRequest 📦
│ ├── ProductionInfoRequest 🏷️
```
---
## 3. 🚦 Diagramma Stato Cambio Ricetta Mermaid
```mermaid
flowchart TD
style WaitIdle fill:#bef5cb,stroke:#34c759,color:#000
style RequestReceived fill:#fff7aa,stroke:#ffd60a,color:#000
style AckSent fill:#e3eeff,stroke:#007aff,color:#000
style WaitingForHMI fill:#ffdde2,stroke:#ff375f,color:#000
style ProcessingAccepted fill:#e3ffe3,stroke:#30db5b,color:#000
style ProcessingRejected fill:#ffd6d6,stroke:#ff3b30,color:#000
style Postponed fill:#e6ddff,stroke:#5856d6,color:#000
WaitIdle["🟢 Idle<br><sub>(Attesa richiesta)</sub>"]
RequestReceived["📥 RequestReceived<br><sub>Richiesta SCADA, <b>RecipeChangeRequest</b> / <b>RecipeIndexRequest</b></sub>"]
AckSent["✅ AckSent<br><sub>ACK inviato a SCADA</sub>"]
WaitingForHMI["🧑‍🔧 WaitingForHMI<br><sub>Popup HMI operatore</sub>"]
ProcessingAccepted["🟩 Accepted<br><sub>RecipeChangeOK (reset dopo 2s)</sub>"]
ProcessingRejected["❌ Rejected<br><sub>RecipeChangeReject (reset dopo 2s)</sub>"]
Postponed["⏸️ Postponed<br><sub>RecipeChangePostpone (reset dopo 30s)</sub>"]
WaitIdle -->|📥 RecipeChangeRequest| RequestReceived
RequestReceived -->|✅ RecipeChangeACK| AckSent
AckSent -->|🧑‍🔧 Handshake HMI| WaitingForHMI
WaitingForHMI -->|🟩 Operatore ACCETTA| ProcessingAccepted
WaitingForHMI -->|❌ Operatore RIFIUTA| ProcessingRejected
WaitingForHMI -->|⏸️ Operatore POSTICIPA| Postponed
ProcessingAccepted -->|⏱️ Reset 2s| WaitIdle
ProcessingRejected -->|⏱️ Reset 2s| WaitIdle
Postponed -->|⏱️ Reset 30s| AckSent
```
---
## 4. 🚦 Diagramma Stato Aggiornamento Produzione Mermaid
```mermaid
flowchart TD
style WaitIdle fill:#bef5cb,stroke:#34c759,color:#000
style RequestReceived fill:#fff7aa,stroke:#ffd60a,color:#000
style AckSent fill:#e3eeff,stroke:#007aff,color:#000
style WaitingForHMI fill:#ffdde2,stroke:#ff375f,color:#000
style ProcessingAccepted fill:#e3ffe3,stroke:#30db5b,color:#000
style ProcessingRejected fill:#ffd6d6,stroke:#ff3b30,color:#000
style Postponed fill:#e6ddff,stroke:#5856d6,color:#000
WaitIdle["🟢 Idle<br><sub>(Attesa richiesta)</sub>"]
RequestReceived["📥 RequestReceived<br><sub>Richiesta SCADA, <b>ProductionChangeRequest</b> / <b>ProductionCodeRequest</b></sub>"]
AckSent["✅ AckSent<br><sub>ACK inviato a SCADA</sub>"]
WaitingForHMI["🧑‍🔧 WaitingForHMI<br><sub>Popup HMI operatore</sub>"]
ProcessingAccepted["🟩 Accepted<br><sub>ProductionChangeOK (reset dopo 2s)</sub>"]
ProcessingRejected["❌ Rejected<br><sub>ProductionChangeReject (reset dopo 2s)</sub>"]
Postponed["⏸️ Postponed<br><sub>ProductionChangePostpone (reset dopo 30s)</sub>"]
WaitIdle -->|📥 ProductionChangeRequest| RequestReceived
RequestReceived -->|✅ ProductionChangeACK| AckSent
AckSent -->|🧑‍🔧 Handshake HMI| WaitingForHMI
WaitingForHMI -->|🟩 Operatore ACCETTA| ProcessingAccepted
WaitingForHMI -->|❌ Operatore RIFIUTA| ProcessingRejected
WaitingForHMI -->|⏸️ Operatore POSTICIPA| Postponed
ProcessingAccepted -->|⏱️ Reset 2s| WaitIdle
ProcessingRejected -->|⏱️ Reset 2s| WaitIdle
Postponed -->|⏱️ Reset 30s| AckSent
```
---
## 5. 🗒️ Note Avanzate & Best Practice
- Tutte le variabili sono pronte per mapping OPC-UA con UAexpert.
- Il protocollo di handshake per cambio ricetta e produzione garantisce sicurezza operativa e audit trail.
- Le state machine (diagrammi sopra) sono progettate per evitare race condition e garantire la conferma operatore su azioni critiche.
- Logging centralizzato sugli eventi di stato per tracciabilità (audit, troubleshooting).
- Struttura pronta per estensioni future (aggiunta KPI, OEE, manutenzione predittiva).
---
## 6. 🔗 Link alle macro-sezioni
- [Gestione Cambio Ricetta](02-GestioneRicette.md#gestione-cambio-ricetta)
- [Statistiche Flowpack](03-StatisticheFlowpack.md#statistiche-flowpack)
- [Analytics & Allarmi](04-AnalyticsAllarmi.md#analytics--allarmi)
- [Ranking Allarmi (Frequenza/Downtime)](05-RankingAllarmi.md#ranking-allarmi-frequenzadowntime)
- [Tempi Macchina](06-TempiMacchina.md#tempi-macchina)
- [Timestamp & Reset](07-TimestampReset.md#timestamp--reset)
- [Popup & Logica HMI](08-PopupLogicaHMI.md#popup--logica-hmi)
---
*Documento pronto per validazioni, pubblicazione tecnica e onboarding team SCADA/MES.*