Primi passi con Controllino, il PLC con Arduino

Ciao!

Oggi vi parlerò di Controllino (controllino.biz), per chi non lo conoscesse è un PLC basato sulla piattaforma open source Arduino.

In questo post vedremo come configurare il software Arduino (scaricabile gratuitamente qui), per iniziare subito a programmare il nostro PLC.






Sono disponibili 3 versioni di Controllino, il Mini, il Maxi e il Mega. Vediamo le specifiche tecniche del medio di gamma, il Maxi (nella foto sopra).


  • Alimentazione 12V (10.8V-13.2V) o 24V (21.6V-26.4V), max 20A
  • 10 uscite a relè – max 6A a 230V
  • 12 Ingressi Analogici/Digitali
  • 12 Uscite Digitali – max 2A a 24V o 12V
  • 1 interfaccia RS485
  • 1 interfaccia SPI
  • 1 interfaccia i2c
  • RTC
  • Connettore Ethernet
  • Protezione da corto circuito. sovraccarico e cariche elettrostatiche.
  • Possibilità di collegarsi direttamente al micro tramite connettore sul fronte.
  • Microcontrollore: ATmega2560 (lo stesso della Arduino Mega)
Per le specifiche complete vi rimando a questa pagina.


Cominciamo subito a configurare la nostra Controllino Maxi!

Aprite il software Arduino, dovremo aggiungere le schede Controllino a quelle già supportate.Per farlo andate su "File", "Impostazioni", nel campo "Url aggiuntive per il gestore schede", scrivere "https://raw.githubusercontent.com/CONTROLLINO-PLC/CONTROLLINO_Library/master/Boards/package_ControllinoHardware_index.json", cliccate su ok.





Poi andate in "Strumenti", "scheda.......", "gestore schede",
scrivete "controllino" ed installate la scheda.
Ad installazione finita potrete selezionare la scheda Controllino che volete utilizzare (nel mio caso la Maxi).

Scaricate ed installate (copiando nella cartella "libraries" di Arduino) la libreria di Controllino che trovate qui.


Ora possiamo iniziare a programmare il nostro Controllino.
Per questo esempio ho collegato una lampadina a 220v ad un'uscita relè, farò lampeggiare la lampadina variando la frequenza del lampeggio grazie ad un potenziometro collegato ad un ingresso analogico.

Ecco lo schema elettrico:




Per effettuare il lampeggio ho evitato l'uso del "delay()" che mette in pausa il micro non consentendoci di fare altre operazioni, ho preferito la funzione "millis()", che restituisce in ogni istante il tempo dall'accensione della scheda (espresso in millisecondi).
Quando avvio il contatore mettendo ad 1 "start_contatore1", catturo il valore di "millis" memorizzandolo in "mem_tempo1".
"millis()" continuerà ad incrementare il suo valore, quando supererà "mem_tempo1" del parametro "tempo_cont" allora verrà messo ad 1 "stop_contatore1", indicandomi che il tempo è stato raggiunto.

Il ciclo "lampeggio" è il cuore del programma, li viene attivato e disattivato il relè grazie al ritardo creato nella funzione "contatore", ho separato i vari passaggi grazie alla variabile "flag_step" in modo da evitare che venga eseguita un'operazione nel momento sbagliato.

Ed ecco il programma da caricare nel nostro Controllino Maxi tramite il cavo usb.




Per ora è tutto, ma prossimamente pubblicherò aggiornamenti su questo ottimo dispositivo.
Per qualsiasi domanda lasciate un commento qui sotto!

Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

19 commenti:

  1. finalmente una pagina in italiano. Per me un grosso aiuto visto che con l'inglese ho qualche problema. Grazie

    RispondiElimina
    Risposte
    1. Di niente, spero che il post ti possa essere utile!

      Elimina
    2. Ciao Daniele, ho inserito il linck per la ricerca della scheda come da te descritto ma non trovo la scheda controllino, come mai? Hai una soluzione?
      Grazie.

      Elimina
  2. io ho preso un MINI e ci sto sperimentando un po sopra

    RispondiElimina
  3. non proprio un vero plc se i delay mi mette in pausa l'intero ciclo...

    RispondiElimina
    Risposte
    1. È vero, però è programmabile anche con altri software oltre ad Arduino, che potrebbero "mascherare" questo problema.

      Elimina
    2. Si può parzialmente ovviare al problema utilizzando i due ingressi ad interrupt.
      Oppure scrivendo tutto il loop come una macchina a stati finiti, che è sempre un buon approccio di programmazione, per questo tipo di applicazioni

      Elimina
    3. L'innovazione é proprio questa, poter contare sulla robustezza di un hardware industriale con un approccio alla programmazione da microcontrollore con tutti i vantaggi che ne derivano

      Elimina
  4. Questo commento è stato eliminato dall'autore.

    RispondiElimina
  5. Scusa, una domanda banale: come può controllino potenziare e agevolare la rete ethernet di casa?
    Grazie Ottimo lavoro

    RispondiElimina
  6. Buongiorno Daniele, una domanda: tu hai (o hai avuto) rapporti con Controllino e la Conelcom (l'azienda collegata al progetto...)? Abbiamo acquistato un Controllino a luglio per lo sviluppo di un prototipo di un progetto ed ora che dovremmo mandarlo in produzione acquistando altri Controllino non riusciamo più a comunicare con loro in nessun canale di quelli pubblici (mail, telefono e fb...)
    Sai aiutarci in qualche modo a contattarli?

    RispondiElimina
  7. Buongiorno, purtroppo no, però so che ci sono anche altri prodotti simili a controllino, probabilmente riuscite a mantenere una compatibilità del codice.

    RispondiElimina
  8. Ciao Daniele, al momento sei l'unico che ho trovato che ha pubblicato un esempio di utilizzo di controllino. Vorrei sapere da parte tua se i sensori di temperatura come il dht22 e il ds18b20, che vengono utilizzati spesso con arduino, si possono utilizzare anche con controllino, visto che ha tensioni di lavoro per al di sopra dei 5v.
    Grazie

    RispondiElimina
    Risposte
    1. Ciao, se non sbaglio la doppia fila di pin sul fronte di controllino riporta esattamente i pin di Arduino. Quindi potresti collegarti li. Ciao

      Elimina
    2. Grazie, molto gentile per la risposta. Ti ho posto questa domanda perchè vorrei creare un controllo centralizzato di riscaldamento con controllino, utilizzando dei sensori di temperatura come i ds18b20. Il bello di controllino è che ha già la certificazione per essere utilizzato in impianti elettrici. Tu che dici?

      Elimina
    3. Perché no!
      Fai attenzione alla distanza e ai disturbi che possono essere indotti collegando i sensori lontano.

      Elimina
  9. Ciao come collego un display da 7"su controllino mega,5v 4Amp
    Grazie

    RispondiElimina
  10. Salve complementi per il post interessante, volevo chiedere una cosa ,ma quali sono i pin RX e TX? corrispondono sempre a 0 e a 1?

    RispondiElimina
  11. Buon giorno, complimenti per l'ottimo tutorial. La mia domanda è questa: per quanto ne so io, controllino Max ha incorporato un RTC, non si potrebbe usare quest'ultimo per temporizzare il lampeggio? Se si, potresti fare un tutorial su come sfruttare l'RTC?

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post