Un saluto a tutti!
Siete liberi di prendermi per matto !!! ......ma comunque cercherò di portare a termine il progetto..... anche con l'aiuto molto ben accetto, di qualcuno che abbia voglia di dare il proprio contributo.
Il progetto lo chiamerò ARDUOPLC.
In passato ho realizzato un piccolo e semplice progetto per realizzare delle semplici applicazioni a scopo didattico.
Il progetto si chiamava FACILEPLC postato su www.facileplc.blogspot.com che ha avuto un feedback discreto.
Questo semplice progetto, serviva a realizzare un micro PLC a costo molto basso, programmabile in un linguaggio simile all' AWL di Siemens, chiamato da me FPLC completamente free.
Dopo una minuziosa ricerca nel web, ho riscontrato che esistono simulatori/programmatori come LadderPIC che somigliano molto a quello che vorrei realizzare io, o addirittura come il mastodontico AUTOMGEN 8, potentissimo software purtroppo non free che nella ultima versione ha inserito un tools per generare il codice in C compatibile con Arduino.
Lo scopo di questo progetto, è dare un piccolo contributo al mondo Arduino in campo della programmazione logica di tipo LADDER (KOP per Siemens) o IL logic (AWL per Siemens) dedicato a tutti i programmatori di PLC con una certa esperienza che vorrebbero realizzare qualcosa di semplice senza spendere troppo (anzi molto poco) o addirittura per realizzare delle demo con un linguaggio industriale.
Vi chiederete:
"Ma che bisogno c'è di creare questo, quando esiste un IDE che con il linguaggio C ci permette di gestire il microprocessore di Arduino come si vuole?"
Bene! Semplicemente perchè, chi come me, programma i PLC Siemens, GE-Fanuc o altri ancora, utilizzando da anni linguaggi prettamente logici o a contatti "LADDER" , non vuole scostarsi troppo dallo standard industriale e quindi tende a minimizzare la potenza e la versatilità di Arduino.
Esistono mini PLC che forniscono in kit il software di programmazione completo del PLC con prezzi relativamente bassi, come ad esempio CUBLOC, (ottimo dispositivo) che fornisce anche una programmazione in LADDER e BASIC nell' IDE gratuito.
Ecco che allora ho pensato : Perchè non creare qualcosa che possa interfacciare il mondo della programmazione PLC industriale con il favoloso mondo Arduino visto che in passato molti lo hanno richiesto, ma nessuno ha mai portato avanti questa idea?
Sarebbe bello poterlo inserire come tools nell' IDE di Arduino, per implementare la sua compatibilità di programmazione a livello tecnico/industriale e semplificarne molto il suo utilizzo.
Ecco una bozza descrittiva del progetto:
a) Realizzazione di un semplice software che possa testare e simulare la logica (in primis, demo, in futuro on line con l' hardware)
b) Realizzazione di un convertitore di linguaggio, da logico o Ladder a linguaggio C compatibile con Arduino.
c) Poter integrare sull'IDE di Arduino la possibilità di richiamere il tools se possibile, o leggere il file generato e programmare direttamente Arduino, che non ne sono sicuro, ma credo che sia già fattibile.
Per il punto a), ho iniziato a realizzare un simulatore di logica semplice che posterò prossimamente su www.arduoplc.blogspot.com ,realizzato in VisualBasic già funzionante comprendente le seguenti funzioni:
comandi logici: OR, OR NOT, AND, AND NOT, XOR, XOR NOT, SET, RESET, Fronte di salita, Fronte di discesa,Master control (RLC)
comandi di controllo: LABEL, GOTO
comandi di calcolo : ADD, SUBT, MOLT, DIV, Confronto (=, <>, >=, <=)
comandi di assegnazione: OUTPUT, MEMORY, REGISTER
32 fronti di salita
32 fronti di discesa
32 memorie digitali interne
32 registri di tipo integer +/- 32765 (per realizzare counter, timer e calcolo conversioni)
Previsione delle connessioni HW:
6 ingressi digitali fisici
6 uscite digitali fisiche
6 ingressi analogici
1 comunicazione Seriale/USB per il PC
Per il punto b), basterà utilizzare il linguaggio logico delle istruzioni, per creare dei rami in linguaggio C che verranno utilizzati per l'IDE, dove cominceranno tutti per "if", rispettando la logica del ramo "step" che deve essere eseguito. Il tutto sequenzialmente.
La configurazione degli I/O e la mappatura della memoria, sarà effettuata utilizzando un file di riferimento editabile e configurabile.
Che ne pensate ?