---
id: MachineAnalytics_SCADA_GestioneRicette
sidebar_position: 2
sidebar_label: Gestione Ricette
pagination_prev: Omron/MachineAnalytics_SCADA/MachineAnalytics_SCADA_Flowpack_MachineAnalytics_Documentation
hide_table_of_contents: False
---

# Gestione Ricette

---

## Tabella Variabili di Scambio

| 🏷️ Nome                  | 🗃️ Tipo             | 🔀 Direzione | 🪄 Icona | 📝 Descrizione Operativa                  |
|--------------------------|---------------------|-------------|---------|-------------------------------------------|
| ActualRecipeIndex        | DINT                | Output      | #️⃣      | Indice ricetta attualmente attiva         |
| ActualRecipeName         | STRING[38]          | Output      | 📝      | Nome ricetta attiva                       |
| RecipeList[0..40]        | ST_Scada_Recipe     | Output      | 📋      | Elenco ricette disponibili su PLC         |
| RecipeChangeRequest      | BOOL                | Input       | 📥      | Comando richiesta cambio ricetta          |
| RecipeIndexRequest       | DINT                | Input       | #️⃣      | Indice ricetta da attivare                |
| 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|

---

## Tree Strutturale

```plaintext
ST_ScadaInterface
├── Egress
│   ├── ActualRecipeIndex #️⃣
│   ├── ActualRecipeName 📝
│   ├── RecipeList[0..40] 📋
│   │     ├── Index : DINT
│   │     ├── Name : STRING[38]
├── Ingress
│   ├── RecipeChangeRequest 📥
│   ├── RecipeIndexRequest #️⃣
│   ├── RecipeProductionInfoRequest 🏷️
│   ├── RecipeProductionCodeRequest #️⃣
│   ├── RecipeProductionQuantityRequest 📦
```

---

## Diagramma Flusso Gestione Ricette – Mermaid

```mermaid
flowchart TD
    Idle["🟦 Idle<br><sub>(Attesa richiesta)</sub>"]
    RequestReceived["📥 RequestReceived<br><sub>RecipeChangeRequest / RecipeIndexRequest</sub>"]
    AckSent["✅ AckSent<br><sub>ACK inviato a SCADA</sub>"]
    WaitingForHMI["🧑‍🔧 WaitingForHMI<br><sub>Popup HMI operatore</sub>"]
    Accepted["🟩 Accepted<br><sub>RecipeChangeOK (reset 2s)</sub>"]
    Rejected["❌ Rejected<br><sub>RecipeChangeReject (reset 2s)</sub>"]
    Postponed["⏸️ Postponed<br><sub>RecipeChangePostpone (reset 30s)</sub>"]

    Idle -->|📥 RecipeChangeRequest| RequestReceived
    RequestReceived -->|✅ RecipeChangeACK| AckSent
    AckSent -->|🧑‍🔧 Handshake HMI| WaitingForHMI
    WaitingForHMI -->|🟩 Operatore ACCETTA| Accepted
    WaitingForHMI -->|❌ Operatore RIFIUTA| Rejected
    WaitingForHMI -->|⏸️ Operatore POSTICIPA| Postponed
    Accepted -->|⏱️ Reset 2s| Idle
    Rejected -->|⏱️ Reset 2s| Idle
    Postponed -->|⏱️ Reset 30s| AckSent
```

---

## Spiegazione Operativa

- L’array `RecipeList` contiene tutte le ricette disponibili e permette la visualizzazione e selezione da SCADA/HMI.
- Le variabili di handshake e popup gestiscono in modo sicuro il cambio ricetta, con conferma operatore.
- Il diagramma mostra il flusso di stato, utile per troubleshooting e validazione.

---

*Sezione pronta per mapping OPC-UA e integrazione in sistemi SCADA/MES. Modifica e amplia secondo le tue variabili specifiche!*