Caso 1: Dischi plastica — Caso 0 con dashboard e PLC
Esercizio di formazione 1 — Estensione del Caso 0 con invio dei conteggi a una dashboard personalizzata e integrazione con il PLC di linea.
Panoramica dello scenario
Parti dalla pipeline funzionante del Caso 0: YOLO rileva ogni disco in plastica, identifica la Faccia A o la Faccia B e il Plugin esporta count_a, count_b e total_count. Estendi lo stesso flusso per comunicare i risultati a una dashboard personalizzata e al PLC di linea:
- Rilevamento faccia e conteggio: conserva i rilevamenti YOLO e i conteggi per faccia del Caso 0.
- Invio telemetria: inviare i conteggi e i metadati di ciclo tramite Webhook a una dashboard esterna personalizzata.
- Handshaking PLC:
- Leggere il trigger di ciclo e l’ID lotto attivo dal PLC di linea tramite OPC-UA Reader.
- Scrivere il conteggio di Faccia A e Faccia B nei registri del PLC tramite OPC-UA Writer.
Nota sull’ambito: riusa il Caso 0 senza aggiungere rilevamento anomalie o ispezione dei difetti superficiali. Le nuove attività riguardano l’integrazione con dashboard e PLC.
Compiti da svolgere
È richiesto di costruire e configurare la pipeline di ispezione:
- Architettura della pipeline: estendi l’Action Plan del Caso 0 coordinando lettura PLC, acquisizione immagine, rilevamento YOLO, conteggio e comunicazione verso l’esterno.
- Rilevamento e conteggio: mantieni le classi Object Detection del Caso 0 (
disc_face_aedisc_face_b) e gli output del Plugin (count_a,count_betotal_count). Prepara un payload JSON dai conteggi esportati e dai metadati di ciclo. - Invio Webhook alla dashboard: configura un modulo Webhook per effettuare un HTTP POST dei conteggi e del payload di telemetria verso l’endpoint della dashboard.
- Handshaking di output verso il PLC: configura il modulo OPC-UA Writer per mappare i conteggi esportati (
count_a,count_b) sui corrispondenti nodi del PLC.
Specifiche e vincoli di sistema
| Parametro | Specifica |
|---|---|
| Ambito di ispezione | Classificare l’orientamento della faccia dei dischi (Faccia A vs Faccia B) e contare la quantità di ciascuna. |
| Telecamera disponibile | 1 telecamera. |
| Illuminazione disponibile | Alcune luci. |
| Tipo di modello | Rilevamento oggetti (classi disc_face_a e disc_face_b). |
| Output del Plugin | Conteggio Faccia A (count_a), conteggio Faccia B (count_b) e totale (total_count). |
| Dashboard esterna | Endpoint HTTP POST che riceve un payload JSON con count_a, count_b e total_count. |
| Comunicazione PLC | Server OPC-UA su Main_PLC con nodi di Trigger/BatchID in lettura e registri di conteggio in scrittura. |
Criteri di accettazione
La soluzione sarà valutata in base ai seguenti criteri:
- [ ] La pipeline contiene la sequenza corretta di moduli dall’acquisizione dell’input all’output esterno senza conflitti di dipendenza.
- [ ] Il rilevamento e il conteggio per faccia del Caso 0 continuano a funzionare per tutti i dischi visibili.
- [ ] Il modulo Webhook invia un payload JSON valido contenente i conteggi all’endpoint della dashboard.
- [ ] I tag OPC-UA nel PLC si aggiornano con i valori corrispondenti di
count_aecount_b.