Un piccolo prototipo di sistemi di controllo industriale

Rendere osservabile la logica di smistamento dal PLC all’HMI

Il progetto è nato da una semplice linea di smistamento. Un pezzo raggiunge il sensore di ingresso, riceve un tipo e poi viene deviato su una linea laterale tramite uno spintore oppure prosegue verso l’uscita. Il compito reale non era animare il trasportatore, ma costruire una sequenza che restasse comprensibile.

Per prima cosa ho separato le responsabilità nel PLC. Ladder gestisce la modalità, l’avvio, i consensi, i comandi finali e lo stato di guasto comune. Structured Text gestisce il ciclo del pezzo: memorizza il tipo, attende i feedback, gestisce i timeout e aggiorna i contatori.

Ho quindi chiuso l’anello: azione dell’operatore → logica PLC → comando → feedback del modello → stato HMI. È una simulazione didattica desktop, non un sistema di produzione né un sistema certificato per la sicurezza.

PLC → HMI

logica, sensori e HMI
OpenPLC
Ignition Perspective
Conveyor Sorting Summary
OpenPLC: Ladder e ST

Separare prima le responsabilità

Ladder gestisce la modalità, il latch Run, i consensi, i comandi finali e lo stato di guasto comune. Structured Text gestisce lo stato del pezzo, i timeout e i contatori. Così un comando finale non riceve scritture da due blocchi logici.

Conveyor Sorting Overview
Un pezzo alla volta

A PE_Infeed, il PLC memorizza il tipo A o B. Non accetta il pezzo successivo finché il ciclo attivo non è completato.

Percorso del tipo A

Per il tipo A, il ciclo segue 10 → 20 → 30 → 0: avanzamento verso la deviazione, feedback di estensione, ritorno alla posizione iniziale, poi incremento di Tipo A/Totale.

Timeout e guasti

Se manca il feedback richiesto di un PE o dello spintore, la sequenza passa allo stato 90 e rimuove i comandi automatici. Reset riporta allo stato inattivo; non avvia un altro ciclo.

Conveyor Sorting Step
Structured Text: macchina a stati

Rendere esplicito il ciclo del pezzo

Il blocco ST porta il tipo di pezzo memorizzato attraverso ingresso, avanzamento verso la deviazione, estensione dello spintore, ritorno alla posizione iniziale e completamento. Ogni attesa ha il proprio timeout e la propria transizione di guasto.

Conveyor Sorting Overview
Memorizzare il tipo di pezzo

A PE_Infeed, la macchina a stati memorizza il tipo A o B. Continua a usare quel valore, così un segnale esterno variabile non può reindirizzare un pezzo a metà del ciclo.

Separare la decisione dall’esecuzione

Ladder crea comandi e consensi. ST non scrive direttamente le apparecchiature: fornisce stato della sequenza, guasto e contatori. Il comando finale ha un solo writer.

Gestire il feedback mancante

Se un sensore o Pusher_Extended non arriva in tempo, la macchina a stati entra nello stato 90. I comandi automatici vengono rimossi. Un nuovo ciclo richiede Reset e un nuovo Start.

Structured Text · Stato 0
CASE Sequence_State OF
    0:
        IF Mode_Auto_Active AND Run_Active
           AND Pusher_Home AND PE_Infeed THEN
            Active_Part_Type_A := Part_Type_A;
            IF Part_Type_A THEN
                Sequence_State := 10;
            ELSE
                Sequence_State := 50;
            END_IF;
        END_IF;
END_CASE;
Perspective e modello di processo

Mostrare lo stato del controllore, non uno stato locale dell’interfaccia

Perspective riunisce su una schermata Auto, Start/Stop/Reset, stato dei sensori, feedback dello spintore, guasto e tre contatori. Il Gateway Timer modella solo ingressi e feedback. Comandi, guasti e conteggi restano nel PLC.

Conveyor Sorting Overview
Schermata operatore

La schermata contiene comandi, stato della linea, trasportatore, tre sensori PE, feedback dello spintore, causa del guasto e contatori separati.

Feedback deterministico

Un Gateway Timer da 200 ms alterna A/B. Per A produce PE_Infeed → PE_Divert → Extended → Home, con margine entro il watchdog PLC di 2 s.

Percorso normale osservato

Nel ciclo di test, il tipo A ha portato Totale/A/B da 10/4/6 a 11/5/6. Poi il tipo B ha portato 11/5/6 a 12/5/7. Non è apparso alcun guasto attivo.

Conclusioni:

  1. Una macchina a stati finiti mantiene leggibile una sequenza
  2. Confini chiari tra i writer di HMI, modello e PLC evitano stati ambigui
  3. I timeout devono essere progettati insieme al feedback, non aggiunti in seguito
Conveyor Sorting Step

Altri progetti

Part Production Cell — MES & OEE Project

Part Production Cell — MES & OEE

OpenPLC, Ignition Perspective e SQLite: eventi, KPI e cause dei fermi macchina organizzati in modo chiaro.

Vedi il caso studio Arrow
Tank Level Control Project

Tank Level Control

OpenPLC, Modbus TCP e Ignition: dalla logica Ladder a uno scenario operatore verificabile.

Vedi il caso studio Arrow
Monitoring — UPL Project

Monitoring — UPL

Monitoraggio enterprise per una centrale nucleare: stati del sistema, vincoli ingegneristici e logica 3D degli stoccaggi.

Vedi il caso studio Arrow