Nel mio lavoro di progettista elettronico, molto spesso si presenta la necessità di realizzare apparecchiature ad hoc atte a soddisfare esigenze produttive specifiche. Queste peculiarità, nella maggior parte dei casi, si traducono nella necessità di dover sviluppare un hardware specifico tutte le volte, che oltre a tener conto delle caratteristiche intrinseche della macchina in fase di progettazione, abbia anche un'interfaccia utente, pratica, comoda, ma soprattutto intuitiva. Cosa ancor più importante, la prototipizzazione richiede tutte le volte la stesura di un firmware specifico, che realizzare con i linguaggi comuni dei normali PLC industriali (ladder in primis), risulta talvolta molto lungo e laborioso, e spesso, se non si proviene dall'ambiente dell'ingegneria elettrica, incomprensibile a molti. Per accorciare i tempi di lavorazione pertanto, ottimizzando così quelli di risposta, ho progettato un piccolo PLC avente sì, le classiche caratteristiche di interfacciamento di quelli disponibili sul mercato, ma programmabile con i più comuni linguaggi di programmazione disponibili sul web, come il C, il basic e il Pascal. Su internet esistono diversi compilatori che permettono di creare programmi con questi linguaggi (Arduino, MPLAB, C18, Pic Basic PRO, ecc) ma dopo averli usati praticamente tutti per tanti anni, ho scelto la suite di MikroElektronika, la nota azienda Serba, da anni leader del settore che con i suoi prodotti (aventi ottimo rapporto qualità/prezzo), sta plasmando davvero il savoir-fair del mondo embedded. La suite di programmazione di MikroE è costituita da tre linguaggi di programmazione principali: l'arcinoto MikroC, l'assai usato MikroPascal, l'extra rodato MikroBasic e l'ultimo nato, ma con caratteristiche molto promettenti: Necto. Tutte queste piattaforme, permettono la manipolazione completa dei più comuni brand disponibili sul mercato, come i PIC (8/16/32 bit) e gli AVR di Microchip, gli ARM e gli FT90X. Da un po' di tempo pertanto, ho deciso di orientare i miei studi e i miei progetti su questi compilatori, che oltre ad avere ambienti IDE molto performanti, permettono l'accesso a numerose librerie, pratiche da usare, ma soprattutto "collaudate", parola che per la maggior parte dei progettisti suona, senza ombra di dubbio, come una rassicurazione molto importante. Ovviamente la mia non è pubblicità gratuita a questo o quell'altro prodotto e non è mia intenzione influenzare quella degli altri, ognuno è libero di usare il linguaggio di programmazione che più desidera e della casa produttrice che preferisce, ma la mia lunga esperienza nel mondo embedded, mi ha insegnato che in fase di progettazione, un firmware affidabile e scritto con librerie affidabili, rende produttiva la vita e permette di dormire sonni tranquilli a chi come me progetta per professione. Detto questo, torniamo a EASY-PLC, il cui controllo è affidato a un core a 32 bit di tutto rispetto, fornito dal brand americano Microchip, per la precisione alla MCU siglata: PIC32MX795F512L. Per semplicità, contenimento del rumore elettrico e praticità nella dislocazione dei controlli, ho sviluppato EASY-PLC su due schede distinte, una destinata alla circuiteria di controllo e di interfacciamento utente (HMI) e un'altra a tutto il resto dell'hardware, necessario all'interfacciamento esterno con la macchina da controllare (DRIVER).
Sulla SCHEDA HMI trovano posto:
- 1 MCU PIC32MX795F512L (80MHz/105DMIPS, 32-bit MIPS M4K® Core -- Program Memory: 512kB / SRAM: 128kB / BOOT: 12kB);
- 1 pratico e luminosissimo display TFT 800x480 con touch screen resistivo (compatibile con le versione a 5" o 7");
- 2 potenziometri per regolazioni progressive;
- 1 commutatore a 5 posizioni;
- 1 pratico keypad a 5 tasti con funzioni di controllo UP, DOWN, RIGHT, LEFT e RETURN;
- 1 avvisatore acustico;
- 1 slot per microSD (idonea ad ospitare immagini, filmati, dati diagnostici, logger di sistema, files, ecc);
- 1 interfaccia USB per PC (con BOOT-LOADER precaricato può essere utilizzata anche per programmare l'MCU);
- 1 connettore per il BUS dati di controllo della scheda Driver;
- 1 connettore per la programmazione in-circuit, utilizzando MikroProg;
- 1 interfaccia RS485 Half Duplex per comunicazioni industriali su lunga distanza.
Sulla SCHEDA DRIVER trovano posto tutti i dispositivi d'interfacciamento fisico verso l'apparecchiatura da controllare, tra cui:
- 1 ingresso per la tensione di alimentazione di PLC-EASY (24VCC);
- 8 ingressi digitali optoisolati (dotati di alimentazione e massa per l'interfacciamento ai più comuni sensori industriali);
- 3 ingressi digitali optoisolati, appositamente dimensionati per pulsanti di controllo posti a console (come ad esempio: START, STOP, PAUSA);
- 1 avvisatore acustico in ripetizione a quello presente in HMI (molto utile se quest'ultima non è accessibile nell'area dove è installato il driver);
- 4 ingressi ADC (per segnali analogici);
- 1 uscita DAC (0/10V);
- 1 uscita PWM open-collector;
- 1 uscita con tensione regolabile digitalmente da firmware, variabile tra 1,3V a 24V (max 1,5A);
- 8 uscite a relè (per carichi massimi 250VCA - 6A max);
- 3 uscite indipendenti con comandi STEP PWM, DIR, ENABLE, per interfacciare EasyPLC a controllers di potenza professionali per motori stepper;
- 1 uscita con bus SPI per EXPANDER (ideale per ampliare le uscite a relè);
- 1 uscita con bus SPI per controllare un display GLCD locale (molto utile per gli stessi motivi descritti per l'avvisatore acustico sopraccitato);
- 1 uscita con bus SPI per il controllo totale delle funzionalità delle stampanti per etichette CAB e di tutti i performanti accessori che le caratterizzano, tramite la pratica interfaccia per ambienti embedded, Teolab Easy CAB Interface SPI da me ideata e progettata.
La scheda Teolab Easy CAB Interface SPI permette l'interfacciamento di qualsiasi sistema embedded, con la porta I/O (vedere pagina 42 del manuale di configurazione) delle stampanti per etichette CAB. Attraverso un apposito bus e un apposito set di comandi, è possibile gestire in modo completo tutti i segnali dà e per la stampante. Teolab CAB/SPI Adapter è compatibile con tutte le MCU presenti sul mercato, dotate di serial peripheral interface. Attraverso di essa è possibile leggere e interrogare tutti i principali sensori interni delle stampanti, leggere lo stato dei materiali di consumo, nonché comandare apposite sequenze di funzionamento, gestendo da PLC le più svariate funzioni, quali l'alimentazione sincronizzata delle etichette, la stampa di quest'ultime, l'applicazione a scorrimento o a pistone pneumatico su cose o confezioni.
La circuiteria di EASY-PLC è ottimizzata per la programmazione con la suite MikroE ed è pienamente compatibile con le apposite librerie di cui questa suite è dotata. La stesura del firmware per l'interfaccia grafica di HMI è a sua volta pienamente compatibile con l'utility Visual TFT.
![]() | ![]() |
Necto - MikroC - MikroBasic - MikroPascal for PIC32 | VisualTFT |
EASY-PLC è anche pienamente compatibile e programmabile anche con qualunque altra suite interfacciabile all'MCU installata in HMI.