Costruire un controller logico programmabile wireless (PLC) personalizzato

Di Jacob Beningo

Contributo di Editori nordamericani di DigiKey

L'Internet delle cose industriale (IIoT) è in rapida crescita, ma gli ingegneri del settore hanno bisogno di flessibilità e connettività personalizzate oltre a quanto offerto dai tradizionali controller logici programmabili (PLC). Tuttavia, realizzare una soluzione personalizzata può essere costoso e richiedere tempo, dato che non ci sono molti ingegneri industriali con sufficiente esperienza per implementare una soluzione veramente embedded basata su un microcontroller.

Questo articolo offre una rapida introduzione ai PLC prima di mostrare come gli sviluppatori possono creare i propri PLC wireless in grado di utilizzare la logica ladder per implementare le applicazioni.

Introduzione ai controller logici programmabili (PLC)

Un PLC è un computer con caratteristiche di robustezza utilizzato per automatizzare un processo specifico in un'applicazione industriale. I processi automatizzabili possono andare dalla catena di montaggio in un impianto manifatturiero, al sistema IoT di controllo dell'illuminazione degli edifici e molto altro ancora.

Una tipica architettura a PLC include (Figura 1):

  • Un'unità centrale di elaborazione con RAM e ROM interne
  • Ingressi digitali e analogici
  • Uscite digitali e analogiche
  • Alimentatori di grado industriale
  • Applicazione logica per eseguire le azioni desiderate

Schema di una tipica architettura a PLC con serie di ingressi analogici e digitali

Figura 1: Una tipica architettura a PLC comprende una serie di ingressi analogici e digitali che vengono elaborati ed eseguiti per mezzo di un'applicazione logica che quindi controlla il comportamento delle sue uscite analogiche e digitali. (Immagine per gentile concessione di Unitronics)

Pur essendoci molte opzioni disponibili sul mercato per i PLC tradizionali, gli sviluppatori possono trovarsi nella necessità di dover personalizzare il loro comportamento o addirittura di dover costruire un dispositivo personalizzato. Ci sono diversi modi per ottenere questo risultato, ma un modo interessante che un ingegnere di sistemi embedded tradizionale può sfruttare facilmente è quello di usare l'ambiente di sviluppo aperto (ODE, Open Development Environment) STM32.

Creazione di un PLC wireless

Per costruire il proprio PLC wireless, occorrono tre componenti hardware principali:

  • Una CPU
  • Condizionamento del segnale di ingresso/uscita
  • Un modulo Wi-Fi

Lo sviluppatore potrebbe partire da zero e progettare tutti questi componenti, oppure potrebbe sfruttare un ecosistema esistente. STMicroelectronics ha semplificato la realizzazione di un PLC creando un pacchetto di sviluppo STM32 che include tutti questi componenti e fornisce anche un software di base per lo sviluppo di applicazioni a logica ladder.

Esaminiamo ora questi componenti primari e le condizioni che devono soddisfare per operare in un ambiente industriale.

Il primo componente da esaminare è la CPU, che in questo caso è un dispositivo STM32F401RE di STMicroelectronics. STM32F401RE è un processore a 32 bit Arm® Cortex®-M4 operante a 84 MHz, dotato di 512 MB di memoria flash per il codice applicativo e di 96 kB di RAM. STM32F401RE è offerto con la scheda di valutazione Nucleo-401RE che include anche basette Arduino per interfacciarsi con altro hardware e un ST-Link per la programmazione del software embedded. Nucleo-401RE è dove verrà eseguito tutto il codice PLC.

Immagine della scheda di sviluppo Nucleo-401RE di STMicroelectronics

Figura 2: La scheda di sviluppo Nucleo-401RE è la base per il controller PLC e contiene 512 MB di spazio per il codice dell'applicazione e 96 kB di RAM per i dati. (Immagine per gentile concessione di STMicroelectronics)

Il secondo componente necessario per costruire un PLC è una scheda di condizionamento del segnale per gli ingressi e le uscite. Gli sviluppatori hanno due schede tra cui scegliere o da combinare se l'applicazione lo richiede.

La prima è la scheda di espansione industriale di I/O X-Nucleo-PLC01A1 (Figura 3). X-Nucleo-PLC01A1 contiene otto ingressi condizionati tramite un limitatore di ingresso digitale ad alta velocità CLT01-38SQ7. CLT01-38SQ7 fornisce una protezione di ingresso digitale per il PLC limitando la corrente che può essere assorbita dal pin di ingresso. Vi sono anche otto uscite industriali che vengono condizionate utilizzando un driver monolitico a 8 canali VNI8200XP. Questo ha una corrente di alimentazione molto bassa, con interfaccia SPI integrata e commutazione step-down a micropotenza da 100 mA altamente efficiente. VNI8200XP dispone di otto relè a stato solido su chip in grado di pilotare fino a 0,7 A. X-Nucleo-PLC01A1 include anche un LED per indicare visivamente lo stato di ciascun ingresso e uscita e tre spie di allarme per segnalare temperatura eccessiva e altri guasti della scheda. X-Nucleo-PLC01A1 comunica con Nucleo-401RE tramite un collegamento di comunicazione SPI.

Immagine di X-Nucleo-PLC01A1 di STMicroelectronics

Figura 3: X-Nucleo-PLC01A1 è una scheda di tipo industriale progettata per fornire a un'applicazione PLC otto ingressi e otto uscite digitali. (Immagine per gentile concessione di STMicroelectronics)

Un PLC può anche richiedere la capacità di controllare segnali analogici e correnti elevate. X-Nucleo-PLC01A1 è progettato solo per segnali digitali. Per controllare altri tipi di segnali, si potrebbe utilizzare X-Nucleo-OUT01A1 (Figura 4). X-Nucleo-OUT01A1 integra il relè ottale a stato solido intelligente high-side galvanicamente isolato ISO8200BQ di STMicroelectronics. La grande differenza nel confronto di queste uscite con il PLC01A1 è che la scheda può operare con tensioni che vanno da 10,5 a 33 V, con isolamento galvanico tra i segnali analogici e digitali. Su scheda ci sono anche diversi LED per indicare se si è verificato un errore di comunicazione o un evento di protezione termica.

Immagine di X-Nucleo-OUT01A1 di STMicroelectronics

Figura 4: X-Nucleo-OUT01A1 è una scheda di classe industriale progettata per fornire a un'applicazione PLC otto uscite relè in grado di gestire fino a 0,7 A. (Immagine per gentile concessione di STMicroelectronics)

L'ultimo componente che può essere utilizzato per ottenere un meccanismo di programmazione wireless o per creare un PLC collegato a IoT è un chip wireless. Si può impiegare X-Nucleo-IDW01M1, un modulo di espansione Wi-Fi conforme 802.11 b/g/n, sempre di STMicroelectronics (Figura 5). X-Nucleo-IDW01M1 è certificato FCC, IC e CE con un'antenna integrata che lo rende pronto per un sistema di produzione.

Immagine di X-Nucleo-IDW01M1 di STMicroelectronics

Figura 5: X-Nucleo-IDW01M1 è un modulo Wi-Fi di classe industriale integrabile in un PLC per fornire la connettività wireless. (Immagine per gentile concessione di STMicroelectronics)

Con tutti questi componenti a disposizione, lo sviluppatore può assemblare il proprio PLC hardware nell'ordine mostrato in Figura 6. Senza alcun danno, è possibile installare schede precedenti, il che però richiederà qualche ulteriore debug. Nel caso in cui si debba aggiungere al PLC un qualsiasi hardware personalizzato, come ad esempio un chip RS-485, è possibile utilizzare uno shield di prototipazione Arduino come Proto Shield di Olimex o Proto Shield di Adafruit.

Schema dell'ordine di assemblaggio della scheda di sviluppo di STMicroelectronics

Figura 6: L'ordine in cui assemblare le schede di sviluppo di STMicroelectronics per ottenere un PLC funzionale. (Immagine per gentile concessione di Beningo Embedded Group)

Configurazione del software del PLC

Per configurare il PLC sono necessari diversi componenti software, tra cui:

  • Il software embedded nel PLC
  • Il compilatore embedded
  • L'applicazione a logica ladder

Il software embedded nel PLC FP_IND_PLCWIFI1 è stato sviluppato da STMicroelectronics ed è disponibile per il download dal sito Web del produttore. Contiene tutto il codice necessario per rendere STM32F401RE operativo, oltre a diverse configurazioni preimpostate a seconda degli stack hardware necessari. Il software embedded viene fornito con tre progetti già configurati per System Workbench di STM, IAR Workbench e Keil MDK e può essere scaricato da http://www.st.com/en/embedded-software/fp-ind-plcwifi1.html (Figura 7). Lo sviluppatore può utilizzare una di queste opzioni per compilare e distribuire il software integrato nel PLC.

Immagine del pacchetto di applicazioni software integrato del PLC

Figura 7: Il pacchetto applicativo integrato nel PLC necessario per il suo funzionamento. (Immagine per gentile concessione di Beningo Embedded Group)

Una volta scaricata l'applicazione embedded, è possibile importarla nell'IDE dei compilatori desiderati e compilarla. Il codice viene così compilato senza problemi. L'applicazione compilata può quindi essere scaricata nel PLC mediante una connessione USB standard al PC.

Infine, STMicro ha anche creato un semplice programma applicativo per PLC che può essere utilizzato per creare applicazioni a logica ladder. Questa applicazione è disponibile sia per iOS che per Android. L'applicazione può essere scaricata su dispositivi mobili cercando ST PLC App negli app store del dispositivo mobile.

Una semplice applicazione di esempio

Una volta che il software embedded per il PLC è in esecuzione, ci si può concentrare sullo sviluppo del proprio codice applicativo utilizzando l'applicazione ST PLC. Il codice dell'applicazione sarà sviluppato utilizzando la logica ladder. Lo sviluppatore può lanciare l'applicazione e creare un nuovo progetto basato sulle schede di sviluppo che ha scelto di includere nello stack hardware (Figura 8).

Immagine dell'applicazione per PLC di ST

Figura 8: Grazie all'applicazione per PLC di ST, lo sviluppatore può creare un nuovo progetto (a sinistra in rosso), selezionarne il nome (a destra in arancione) e quindi configurare l'hardware in uso (a destra in verde). (Immagine per gentile concessione di Beningo Embedded Group)

Una volta configurato il progetto, si ottiene uno slate pulito per creare i rung ladder per la propria applicazione. Un buon primo progetto è quello di testare semplicemente se un ingresso può essere letto e se una serie di output può essere basata su quell'ingresso. Questo test può essere realizzato facendo clic su "Add rung" e quindi implementando la logica necessaria all'interno dell'applicazione. Questa operazione determina la creazione di un rung simile al lato sinistro nella Figura 9.

Immagine del software applicativo per PLC di ST

Figura 9: Grazie all'applicazione per PLC di ST, lo sviluppatore può implementare la propria logica per controllare i dispositivi come desidera (a sinistra). Una volta che l'applicazione è stata creata, può essere trasferita in modalità wireless al PLC facendo clic sul pulsante di invio dell'applicazione (a destra). (Immagine per gentile concessione di Beningo Embedded Group)

Salvando il rung ci si ritrova alla schermata principale del progetto. Da qui, è possibile modificare un rung o crearne altri nell'applicazione. Se l'applicazione è pronta per l'installazione, facendo clic sul pulsante di trasmissione wireless mostrato sul lato destro della Figura 9 si collegherà e quindi trasmetterà l'applicazione del PLC. Va notato che lo sviluppatore deve avere il proprio dispositivo mobile collegato al punto di accesso PLC e aver configurato la propria porta e il proprio indirizzo IP per poter trasmettere con successo l'applicazione.

Suggerimenti e trucchi per la creazione di un PLC wireless

Ci sono diversi suggerimenti e trucchi che gli sviluppatori possono seguire quando creano il proprio PLC wireless personalizzato, tra cui:

  • Se la scheda wireless non funziona, verificare che sia orientata correttamente sullo stack (vale a dire, posta nella giusta direzione).
  • Miglioramento della sicurezza dei sistemi mediante l'aggiunta di una chiave di sicurezza all'SSID.
  • Aggiornare il PLC modificando il comportamento wireless predefinito "modalità stazione" e solo durante una commutazione di aggiornamento al punto di accesso.
  • Prendere in considerazione l'aggiunta di protocolli di comunicazione industriali come RS-485 e Modbus.
  • Il modo migliore per tenere il passo con i PLC è pensare a un problema interessante e poi cercare di risolverlo con il PLC.
  • Utilizzare IAR Embedded Workbench for Arm per compilare il software embedded del PLC. La toolchain offre codice illimitato per 30 giorni.

Conclusione

Costruire un PLC personalizzato non è necessariamente difficile. Come mostrato, l'ecosistema fornito da STMicroelectronics permette a uno sviluppatore di mettere in opera il software base del PLC in modo estremamente rapido. L'applicazione può quindi essere facilmente modificata e personalizzata per soddisfare una vasta gamma di applicazioni e requisiti.

Anche se l'obiettivo primario è quello di creare il codice dell'applicazione finale utilizzando la logica ladder, se uno sviluppatore ha l'esperienza e le conoscenze appropriate, può facilmente apportare modifiche al software embedded e ottenere un sistema ibrido che è molto più potente e flessibile.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo è un consulente software embedded e attualmente lavora con clienti in più di una decina di paesi per trasformare radicalmente le loro attività migliorando la qualità dei prodotti, i costi e il time-to-market. Ha pubblicato più di 200 articoli sulle tecniche di sviluppo di software embedded, è un relatore e un istruttore tecnico e ha conseguito tre lauree, tra cui un master in ingegneria presso University of Michigan. Risponde all'indirizzo jacob@beningo.com, ha un sito web personale www.beningo.com e produce una Newsletter mensile Embedded Bytes cui è possibile iscriversi.

Informazioni su questo editore

Editori nordamericani di DigiKey