Passaggio indolore da Arduino a PLC

Salve ragazzi,
dovrei iniziare a realizzare alcuni progetti di automazione industriale, e proprio per questo sto iniziando ad avere alcune difficoltà nella scelta dei dispositivi da utilizzare. Faccio una premessa: frequento l’ultimo anno di un ITIS, sezione elettrotecnica ed automazione (anzi, lunedì devo fare l’orale per gli esami di stato, poi ho concluso), e ho avuto quasi sempre a che fare con i PLC. In realtà non me ne sono mai preoccupato più di tanto, e ho sempre utilizzato Arduino nei miei progetti, anche in quelli in cui si chiedeva di gestire sistemi a bassa tensione e potenza discreta. Ho sempre odiato i PLC per il linguaggio con cui si programmano, il ladder, che non sopporto proprio (anche l’AWL). Anzi, odio per quasi tutti i linguaggi grafici :drooling_face:

Ora devo realizzare un progetto industriale, che potrebbe essere tranquillamente realizzato con Arduino (controllo di temperatura di un forno e log delle rilevazioni), ma visto e considerando l’utilizzo che se ne farà, vorrei buttarmi su un dispositivo più robusto come i PLC.

Ora la domanda è… esistono dei PLC decenti programmabili in C?
Io ne ho visto uno a scuola, ma era davvero antiquato. Vorrei sfruttare la potenza del C insieme alla robustezza e l’affidabilità dei PLC. Magari sarebbe ideale se si programmassero similmente come si fa con Arduino, tanto alla fine è solo questione di librerie…

Ti seguo, a me interesserebbe costruirne uno ben fatto, purtroppo mi sono sempre occupato di installarli, forniti da committente sequendo tabelle di collegamenti e schemi, non mi sono mai occupato della programmazione, questo lo faceva direttamente la ditta fornitrice appunto tramite schemi a blocchi grafici come dici tu, altre volte arrivavano già programmati, poi si seguivano i collaudi ecc ecc (parlo di decine di armadi dove potevano esserci in totale anche 2.000-3.000 porte Input/output) Mi piacerebbe conoscere le logiche di calcolo e confronto nel dettaglio di questi apparati e realizzarne uno piccolo universale, programmabile magari da web e avere un sinottico completo.

ciao

Purtroppo penso sia difficile costruirlo a partire da Arduino. In realtà pure i PLC si basano su microcontrollori, però hanno delle logiche interne particolari che Arduino non ha. Per esempio se una porta del plc si rompe, questo blocca il suo funzionamento e te lo segnala. Nei casi più particolari ci sono due plc o due microcontrollori interni che lavorano in parallelo: se uno dei due, confrontando le operazioni effettuate, si comporta in modo diverso dall'altro, viene rilevato il guasto e viene fermata l'esecuzione... per questo nelle aziende chiedono solo PLC, proprio sulla base della loro grossa (ma comunque non completa), affidabilità.

Ed è quello che servirebbe pure a me... un PLC decente programmabile in C e non in ladder

i PLC si basano su microcontrollori, però hanno delle logiche interne particolari che Arduino non ha. Per esempio se una porta del plc si rompe, questo blocca il suo funzionamento e te lo segnala.

perchè no .... è solo una questione di software di controllo più complesso .... un allarme TRIP sui plc è proprio un incongruenza tra il segnale reale e quello letto dal micro. es. Se il motore gira e il relay risulta aperto, c'è qualcosa che non quadra. questo comporta però più porte e un sistema più complicato di gestione, ma del resto è questo un PLC o no?

Nei casi più particolari ci sono due plc o due microcontrollori interni che lavorano in parallelo: se uno dei due, confrontando le operazioni effettuate, si comporta in modo diverso dall'altro, viene rilevato il guasto e viene fermata l'esecuzione.

Si nell'industriale si usano 2 unità parallele e dove è il problema? se vuoi questa garanzia usa due micro paralleli che comunicano tra loro, si può sempre fare .....

quello che dici tu qui

un PLC decente programmabile in C e non in ladder

non è altro che una programmazione col mouse che crea un archivio di informazioni DAT che poi vengono lette da un programma C, basic, assembler quello che ti pare, caricate e rese operative.

Se tu mi prendi un micro, lo programmi per eseguire determinate cose su determinati pin INPUT o OUTPUT e lo chiudi, non è un PLC è un micro programmato a fare quelle cose punto e basta, quello che poi facciamo qui tutti i giorni :)

Un PLC invece è una scatoletta su barra din, tasselata a parete o come vuoi con un suo "sistema operativo" dove con un cavetto rs232, usb entro in programmazione tramite terminale e cambio le condizioni di logica e/o esecuzione dei controlli, non carico il programma intero, vado a modificare un file chiamiamolo per comodità "ini".

Io non voglio fare una cosa da controllo centrale nucleare, doppia cpu, ecc ecc vorrei creare una specie di piccolo SO dove tramite terminale cambiare le impostazioni di controllo anche solo allungare il tempo di un timer senza ricaricare tutto il software. Per metà l'ho fatto ad essere sincero, ma non conosco le logiche software complete di un PLC professionale ed è molto molto difficile tener conto di una quantità enorme di parametri.

Sono passato alla Due proprio per aver maggior quantità di ram, maggior velocità e ho la possibilità di avere un interrupt su qualsiasi pin singolo o dell'intero banco, un discreto numero di pin

ciao

perchè no .... è solo una questione di software di controllo più complesso .... un allarme TRIP sui plc è proprio un incongruenza tra il segnale reale e quello letto dal micro. es. Se il motore gira e il relay risulta aperto, c'è qualcosa che non quadra. questo comporta però più porte e un sistema più complicato di gestione, ma del resto è questo un PLC o no?

Si, è una questione software ma anche hardware. Nell'esempio che fai è ovvio pensare che vengano utilizzate più porte e relè con più contatti per fare il controllo. Poi è proprio un controllo interno quello che fanno... la maggiorparte dei nuovi PLC penso funzionino con SCR o Transistor per la continua. Per controllare le porte interne bisogna progettare alcuni circuiti aggiuntivi e avere più I/O a disposizione sul microcontrollore interno.

Poi ogni porta ha filtri per la riduzione dei disturbi e tutta una serie di cose... ci vorrebbe troppo tempo per riprogettare qualcosa di simile su Arduino.

Si nell'industriale si usano 2 unità parallele e dove è il problema? se vuoi questa garanzia usa due micro paralleli che comunicano tra loro, si può sempre fare .....

Per progettare un sistema del genere di certo non ci vorrebbe proprio poco tempo. Oltre che Arduino perderebbe in termini di prestazioni

Per progettare un sistema del genere di certo non ci vorrebbe proprio poco tempo. Oltre che Arduino perderebbe in termini di prestazioni

con un 16 Mhz ci fai poco, con qualcosa di più potente ci fai un plc piccolo ma credo funzionale.

Quindi la tua domanda non è rivolta ad arduino, ma se esiste un plc programmabile come arduino ...... cambia titolo allora XD XD XD

Esattamente :D Ma il titolo lo fa capire ahahahah

Ovviamente Arduino lo utilizzo in tutti i miei progetti, ma in questo caso, sfortunatamente e dispiaciutamente, non posso =(