Vai al contenuto
PLC Forum


Delusione Arduino - Chiedo Consiglio


Zamundo

Messaggi consigliati

Bentrovati,

ho acquistato Arduino pieno di entusiasmo.

Dopo aver appreso (con molto impegno) alcune strutture del C++ sono riuscito a costruire una centralina d'irrigazione con 16 elettrovalvole comandate da altrettanti relè, display LCD 16x2, 8 pulsanti, 4 potenziometri e la gestione di un potenziometro digitale (DS1820).

Tutto funzionava a meraviglia sul banco.

Quando ho montato l'impianto "fuori", nella realtà (aggiungerei), sono iniziati mille problemi di spikes ed interferenze elettromagnetiche; dovute all'assorbimento della pompa sommersa da 2hp e, soprattutto, dalle extracorrenti di chiusura dei relè.

Tradotto: Arduino crasha.

Ho iniziato il calvario di varistori e reti RC.

Ma sono molto deluso dalla quasi impossibilità di schermatura del controller.

Vi chiedo un consiglio su un'alternativa simile all'arduino mega, un PLC !!!

Avrei bisogno almeno di una ventina di I/O digitali ed una decina di analogici, che potrei programmare con un codice tipo il C++.

Sapete consigliarmi ?

Preferirei qualcosa di cui esistono diversi progetti in rete (per documentarmi almeno all'inizio) e che non costi una fortuna.

Un cordiale saluto e grazie.

Link al commento
Condividi su altri siti


Accidenti, mi tocca dare ragione a Livio quando mi diceva che Arduino è un "giocattolo" :(

soprattutto, dalle extracorrenti di chiusura dei relè.

Ma che tipo di impianto hai fatto? Te lo chiedo per capire perchè un mio amico sta gestendo un acquario con Arduino e non ha avuto così tanti problemi.

Hai messo i classici diodi sulle bobine dei relè? L'alimentazione è a posto?

Link al commento
Condividi su altri siti

Per dovere di cronaca c'è questo (credo ne abbiamo già parlato ma non trovo il thread)

http://controllino.cc/

E' un Arduino industrializzato, ma non credo che faccia al caso tuo, il modello più grande ha 12+12 I/O e non vedo espansioni sul sito.

E costa un botto (269€+IVA)

Sicuramente un LOGO 8 con le espansioni è più adeguato ma non lo programmi in C++.

Valuta anche altri micro plc tipo Elsist. (www.elsist.it) Io non li ho mai usati ma ne parlano bene

Link al commento
Condividi su altri siti

Come ho sempre scritto, arduino e raspberry non sono adatti ad un ambiente industriale.

In particolare Arduino è stato progettato come sistema Hw per sviluppare software per il micro Atmega. Ci sono schede similari della Texas, per i propri micro, del microchip ed anche di Intel.

Per lavorare in ambient industriale, oltre ad unalimentatore particolarmente robusto ed immune ai distrubi, è indispensabile che il layout sia stato progettato appositamente in ottenperanza alle specifiche direttive EMC.

Oltre al plc consigliato da dan64100, di cui trovi il banner su PLCForum, ti consiglio anche Kernel, ottimo prodotto con ottimo rapporto qualità prezzo e software di sviluppo gratuito.

mi tocca dare ragione a Livio quando mi diceva che Arduino è un "giocattolo"

Lucios, con il termine "giocattolo" non intendo denigrare arduino, solo che quest'ottimo prodotto è stato concepito e progettato per altri impieghi, non certo come controllore per ambienti industriali. anche in ambiente domotico ha i sui limiti proprio per l'immunità EMC.

Io ho realizzato uno stumentono domotico con arduino, ma, oltre a costruirmi delle interfaccie di ingresso e uscita ad hoc, opto isolate, ho dvuto realizzare un alimentatore ben filtrarto e ben immunizzato con filtri di rete.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Grazie a tutti delle risposte.

Sono riuscito a fare funzionare Arduino nel progetto "Centralina d'iirigazione" ... adesso vi racconto, ho dovuto nell'ordine:

- Posizionare rete snubber all'uscità di tutti i relè.

- Comprare alimentatore con batteria in tampone con apposito filtro pigreco

- Porre diversi condensatori da 0,1 uF (perfino all'alimentazione del display LCD)

Adesso sembra più stabile, ma temo che il buon Livio abbia ragione. Arduino probabilmente è nato per sperimentare in laboratorio.

Ad esempio, è raro trovare dei progetti "finiti" con strutture professionali o industriali che usino Arduino; con esso ci si limita (o almeno questa è la mia sensazione) a sperimentare cose meravigliose, ma sempre su breadboard !!!!

Grazie dei vostri suggerimenti.

Sui prodotti che mi avete consigliato non riesco a comprendere bene il discorso programmazione.

Ossia ogni PLC ha un suo "linguaggio" ? Non è standardizzato, dico bene ?

@lucios: non potevo porre diodi a uscita relè, perchè le elettrovalvole sono alimentate a 24 Vac

@nik-nak: ovviamente ho usato una scheda optoisolata ed utilizzato due alimentazioni distinte: arduino a 12 V da jack e alimentazione scheda relè a 5V tramite step-down.

Ora funziona bene, ma non so se è un equilibrio precario o meno.

Un caro saluto a tutti

Link al commento
Condividi su altri siti

Livio Orsini
Ossia ogni PLC ha un suo "linguaggio" ? Non è standardizzato, dico bene ?

C'è uno standard IECC relativo ai linguaggi "ladder diagram" (contatti), però in pratica è solo un sotto insieme dei vari ladder diagram dei vari costruttori. Programmando in questo linguaggio le cose sono abbastanza standard, però è adatto principalmente per realizzare logiche di tipo combinatorio.

Inoltre ogni marca, ma anche ogni famiglia, di PLC ha il proprio ambiente di sviluppo. I piccoli costruttori in genere lo forniscono in modo gratuito, mentre i grandi pretendono cifre non banali quando non sono addirittura esose.

Con le modifiche che hai fatto hai, probabilmente, realizzato un sistema quasi del tutto immune ai disturbi; rimane solo il layout di arduino che, ripeto, è stato concepito come ambiente di sviluppo e rapida prototipazione come oramai è di abitudine per quasi tutti i maggiori processori. Ha avuto una straordinaria fortuna presso gli amatori ed i dilettanti per le sue caratteristiche di "open source", un po come linux.

Però non è un hardware da automazione domestica o industriale. nell'ambito domestico si può ovviare con gli artifici che hai sperimentato.

Poi rimane la grossa incognita delle connessioni. Quei contatti ad inserzione sono ottimi per i prototipi e gli esperimenti, diventano un punto di debolezza nelle applicazioni dove si suppone debbano funzionare per qualche anno.

Link al commento
Condividi su altri siti

Si ma non è colpa di Arduino.

Snubbers, condensatori di bypass, disaccoppiamenti, schermature, filtri, sono LA REGOLA.

E' ovvio che se non li prevedi e vai a comandare motori ed elettrovalvole succede quello che succede.

Se prendi un plc e comandi con un uscita statica un elettrovalvola senza che su di essa ci sia l'apposito soppressore, e lo stesso vale se comandi un contattore, magari il plc non va in crash, solo perché chi ha fatto il programma ha previsto il caso ed ha stabilito la reazione.

Se invece come fanno tanti, non pensano a questa eventualità, non è raro veder andare in stop anche un s7-400.

E comunque, anche se non se ne va in stop, se ne va all'altro mondo l'uscita statica. Con un'uscita a relè non cambia molto.

Se non prevedi gli appositi soppressori, dopo x commutazioni il relè si incolla.

Sugli ingressi digitali, in genere è possibile attivare dei filtri supplementari a quelli hardware....e quindi,

non è che i plc siano migliori o meno di Arduino, certificazioni a parte...E' che l'hardware è stato progettato tenendo conto di questi problemi.

Cosa che tu non hai fatto a tempo debito.

Link al commento
Condividi su altri siti

Una precisazione sullo standard IEC (61131-3): oltre al ladder (perfetto per la logica combinatoria, "piace tanto" agli elettrotecnici), comprende instruction list (spesso paragonato ad un assembly, con cui condivide pro e contro), function block diagram (vicino al ladder per livello di astrazione, ma con una rappresentazione "a porte logiche" che piace tanto ai tecnici elettronici), structured text (simil Pascal, facilita in particolare l'elaborazione dati), e sequential function chart (simile al GRAFCET, alto livello di astrazione, per processi sequenziali). Si parla anche di un'estenzione che comprende il continuous function chart. A seconda del vendor, oltre a possibili differenze nella nomenclatura, lo standard potrebbe non consistere in un semplice "sottoinsieme", ovvero i linguaggi effettivamente a disposizione, pur essendo dichiarati IEC 61131-3 "compliant", possono presentare piccole differenze anche a livello di sintassi.

A mio avviso nulla di tutto ciò è direttamente paragonabile alla programmazione dell'Arduino o di sistemi embedded programmati in assembly RISC, C, C++ e via dicendo, anche se ho sentito parlare di PLC che supportano programmazione C-like.

Una cosa che ancora oggi mi convince poco dell'Arduino è l'effettiva utilità nella prototipazione: quando vado in produzione e l'hardware inevitabilmente non è più quello dell'Arduino, se sono costretto ad adattare pesantemente le librerie C o addirittura a rifare da zero la programmazione (anche ammettendo di mantenere l'AVR), che me ne faccio del "prototipo" fatto con Arduino? Mi piacerebbe vedere degli esempi reali di prototipazione fatta in questo modo...

Modificato: da pomat
Link al commento
Condividi su altri siti

Se invece come fanno tanti, non pensano a questa eventualità, non è raro veder andare in stop anche un s7-400.

E comunque, anche se non se ne va in stop, se ne va all'altro mondo l'uscita statica.

Mai visto un plc andare in stop per un disturbo o una sovratensione su una uscita.

E per mandare all'altro mondo un'uscita statica, ce ne vuole. Quasi sempre sono protette contro i sovraccarichi e, quasi sempre, sul modulo sono installati anche soppressori di sovratensioni, diodi e tutto quello che serve.

Ma sul fatto che non sia colpa di Arduino, sono d'accordo: Arduino non è nato per lavorare in ambiente industriale. Se lo si utilizza per applicazioni alle quali non è adatto, non è colpa sua se non funziona bene.

Del resto, se un mini plc costa 10 volte quello che costa Arduino, un motivo ci sarà.

Link al commento
Condividi su altri siti

Mai visto un plc andare in stop per un disturbo o una sovratensione su una uscita.

non un disturbo, ci sono dei casi in cui succede e comunque sono sempre frutto di manovre scellerate, tipo dare il 110ac invece che il 24 dc...

E per mandare all'altro mondo un'uscita statica, ce ne vuole

basta che un furbo ti collega direttamente un'elettrovalvola da 20VA senza nessun soppressore, ci vuole un po' ma poi salta, oppure collega il diodo al contrario e salta immediatamente.

Hardware fault...se non hai caricato il relativo ob....la cpu va in stop.

Se poi sono I/O di sicurezza....lo stop è garantito se non è possibile passivarle.

Sono sempre e comunque operazioni fatte da scriteriati...ma in giro ci sono anche quelli...non è colpa del plc.

Link al commento
Condividi su altri siti

Anche io ho visto plc in funzione senza problemi da decenni senza alcun diodo in antiparallelo sulle bobine dei relè, contattori o di elettrovalvole pneumatiche comandate da uscite 24Vdc.

Un PLC visualizzato touch 7" programmabile anche in C esiste ed è un prodotto italiano, ma lo devo ancora provare dal vivo...

Modificato: da JumpMan
Link al commento
Condividi su altri siti

tipo dare il 110ac invece che il 24 dc

In quel caso più che in stop lo mandi in..fumo e anche in quel caso non mi risulta che vada in stop..Per errori di cablaggio in campo ho visto delle schede di out "sparate" ma non per questo la cpu va in stop...al più non funzionano le uscite.

In più sulle uscite statiche è raro vedere montati dei filtri (al di là che sia giusto o meno) ma devo ancora vedere una cpu in stopo per questo motivo (bontà delle protezioni interne direi)...

Arduino è ne più ne meno un micro come tutti gli altri, magari un pò più dopato perchè con qualche contorno di HW che facilita la vita ma pensare di avere un micro, buttarlo in qualche modo su un circuito stampato e poi darlo in pasto "al campo" (quello vero fatto di motori, inverter, e chi più ne ha più ne metta) direi che mi pare un pò pretestuoso.

Link al commento
Condividi su altri siti

ovviamente ho usato una scheda optoisolata ed utilizzato due alimentazioni distinte: arduino a 12 V da jack e alimentazione scheda relè a 5V tramite step-down.

Le due alimentazioni, che alimentano arduino ed i relay, hanno il gnd in comune, oppure sono isolate tra loro?

I 5V li hai ricavati, tramite lo step-down, dallo stesso 12V con cui alimenti arduino?

Nel caso le due alimentazioni hanno il gnd in comune come hai "distribuito" le alimentazioni?Hai fatto in modo che la commutazione dei relè, non "perturbi" la massa digitale di arduino?

Sicuramente arduino,rasperry, etc, non sono state realizzate per lavarore in ambienti difficili, ma nel tuo caso mi sembra che ci siano degli errori strutturali, alla base del progetto.

Prova a fare uno schema a blocchi del progetto, al fine di capire meglio come hai realizzato il tutto.

Ciao

Link al commento
Condividi su altri siti

Livio Orsini

PLC che vadano in palla per disturbi, anche severi, oggi non ne esistono, anche quelli che sono cloni cinesi di serie obsolete di grandi produttori europei o USA, probabilmente perchè li han clonati bene. :smile:

Che non sia colpa di arduino mi sembra che sia pacifico.

Io l'ho scritto e ripetuto più volte: arduino non è stato progettato come apparato industriale. Arduino, come tutte le schede similari, è un dispositivo di sviluppo software a basso costo.

Ha avuto una grande diffusine tra gli amatori per la sua facilità di impiego, tanto che con le librerie, gli esempi e quant'altro si reperisce in rete possono usarlo anche persone completamente digiune di programmazione e senza nozioni, nemmeno basilari, di elettronica.

Chi invece vuol sviluppare software in modo porfessionale ha a disposizione la suite gratuita di atmel.

la sensibilità ai disturbi non è solo funzione della separazione degli zero volt, delle alimentazioni, dei filtri, ma anche, e non poco, del layout di scheda. Chi ha un poco di dimestichezza di progettazione con test EMC sa di cosa sto parlando.

Link al commento
Condividi su altri siti

Livio: la sensibilità ai disturbi non è solo funzione della separazione degli zero volt, delle alimentazioni, dei filtri, ma anche, e non poco, del layout di scheda. Chi ha un poco di dimestichezza di progettazione con test EMC sa di cosa sto parlando.

Eseguivo le prove in camera anecoica e vi assicuro che quello che sostiene Livio è tutta verità: è vero che nell'ambiente automotive (provavo appunto schede per quell'ambiente), i disturbi sono un disastro, ma a me è capitato di provare una semplice intermittenza che variava il suo clock per un nulla; beh, rifatto il layout della scheda ed il problema si è risolto.

Personalmente non amo molto Arduino (è anche vero che non l'ho mai provato ...), preferisco eseguire le prove con una MCU che ho a disposizione in quel momento, basta che sia simile, ed una breadboard, quindi mi provo i singoli stadi, poi sviluppo il PCB, lo stampo (o lo faccio stampare, se penso di non riuscirci perchè le piste sono troppo piccole), lo assemblo e lo provo; devo dire che, almeno finora, mi è andata piuttosto bene.

E' anche vero che non ho mai fatto cose eccezionali ...

Uso gli Atmel AVR con WinAVR (quindi linguaggio C) e Atmel Studio.

P.S.: ma non siamo nella sezione sbagliata ?

Modificato: da drugo66
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...