Buongiorno a tutti, non so se questo è il posto giusto dove scrivere questo mio post, se così non fosse chiedo scusa e attendo info su dove spostarlo.
Vorrei condividere con voi ciò che sto sviluppando e magari collaborare o reperire suggerimenti e critiche purchè siano costruttive.
Qualche tempo fa ho usato un arduino mega e successivamente dei nano in rete tra loro come plc e quando sono andato in cerca di un case adeguato per inscatolare il tutto mi sono reso conto che molte persone usano l'arduino come plc ed esistono pure aziende che lo vendono già pronto e confezionato quindi sono andato in cerca di un ide che mi permettesse di programmarlo come plc ma non ho trovato nulla che assomigli discretamente all'ide di un vero plc tipo TIAportal (Siemens) o similari. "Magari esistono ma io non li ho trovati"
Ho trovato solo degli ide grafici con "blocchetti" colorati che tipo puzzle si incastrano e fai il programma, trovo sia un sistema incasinato prolisso e di difficile interpretazione. "Mio modesto parere"
Personalmente non sono esperto di nulla al 100% ma spazio parecchio, diciamo che sono il classico "smanettone"
Mi sono quindi rimboccato le maniche e ho iniziato a programmare un ide grafico con vbnet 2019 per fare il mio personale Ide PLC, già da tempo mi sono scaricato le librerie necessarie per comunicare, compilare e caricare gli sketch su Arduino quindi presumo di essere in grado di fare il tutto a partire dal sfw fino al caricamento del file compilato sul controllore.
Spero che questo mio progetto vi interessi e spero inoltre di trovare qualcuno che abbia voglia magari di collaborare in qualche modo a questo mio progetto che in effetti è piuttosto impegnativo ed ambizioso.
ciao...cosa intendi esattamente per "IDE di un vero PLC"?
un IDE che ti permetta di selezionare tra KOP, FUP. AWL...con possibili inserimenti in C/C++?
che gestisca in finestre le variabili globali e locali?
altro...
Un PLC potrebbe avere e ha spesso come componente di comando un microcontrollore, in sostanza un microcontrollore fa le stesse cose di un PLC, e le schede arduino fanno le stesse cose di un PLC, essendo spesso appunto un microcontrollore all'interno di un PLC.
Il PLC si usa in ambito industriale perché è resistente a disturbi elettromagnetici e a temperature critiche, cosa che non avviene con per un microcontrollore, che potrebbe non funzionare in ambienti con disturbi elettromagnetici, anche in una lavatrice darebbe problemi.
Il fatto che si programmi con appositi linguaggi è più che altro una convenzione.
Siccome un programma per essere eseguito da un microprocessore deve essere in linguaggio macchina, è il solo linguaggio che capisce un microprocessore, il linguaggio ad alto livello usato è solo per semplificare la vita al programmatore, tutti i programmi verranno convertiti in linguaggio macchia.
Ora il linguaggio C/C++ da molte più possibilità dei linguaggi visuali e testuali usate per i PLC, quindi secondo me programmare in C è un vantaggio.
Praticamente avere un case non basta per realizzare un PLC, programmarlo nei linguaggi standard dei PLC non lo rende un PLC. Se la cosa ti affascina procedi pure con tuo progetto, ma la vedo alquanto inutile. Esistono i PLC CONTROLLINO che si programmano con IDE e linguaggio arduino, ciò che li rende PLC è la resistenza in situazioni critiche.
Ciao a tutti, per rispondere ai vostri post:
Premetto che ho lavorato come programmatore di plc per circa 5 anni dal 2000 al 2005 usavo Siemens, principalmente S5 e S7-300.
Ammetto che non mi è mai piaciuto l'AWL l'ho sempre trovato scomodo e non semplicissimo da digerire/analizzare specie quando ci sono intrecci complessi di serie e paralleli.
Sono pienamente d'accordo con torn24 e il motivo per cui voglio procedere con questo mio progetto è proprio per ciò che ha scritto, cioè che proprio per il fatto che esistono prodotti come CONTROLLINO che sono molto più schermati e prestanti per quanto riguarda l'aspetto delle interferenze.
Programmare un plc in linguaggio arduino lo vedo un po noioso prolisso e non semplicissimo.
Al momento ho fatto una grafica stile VBnet con la parte grande centrale dove viene visualizzata e programmata la pagina/void attiva, in basso a dx una grid che mostra le proprietà di ogni singolo oggetto selezionato, in alto a dx una finestrella di navigazione da cui si possono chiamare le form che mostrano variabili, pagine di programma, librerie aggiunte al progetto, hardware selezionato, tabella di Input e Output disponibili ecc... e sul lato sx dello schermo i vari oggetti inseribili nella pagina attiva, attualmente ho già gestito la creazione, inserimento e modifica di oggettini semplici quali contatti, bobine, timer, ecc.. tutto in LADDER poi creerò dei blocchetti per gestire funzioni matematiche e logiche, per gli esperti farò dei blocchetti che permettono di scrivere liberamente il codice in linguaggio arduino attacchi il blocchetto ad esempio ad un contatto NO e quando quella condizione è attiva esegue il codice scritto.
Poi è implementabile a piacere con librerie e comandi di ogni genere.
Per "steve-cr":
Qualche tempo fa ho trovato delle librerie che mi permettevano di colpilare il file di testo e trasferirlo direttamente nella scheda Arduino quindi oltre a quello che ho scritto nel post prima di come intendo sviluppare il sfw intendo poi diciamo interpretarlo per trasformare la parte grafica in formato testuale "***.ino" compilarlo e caricarlo sulla board.
Ritornando poi a ciò che scrive torn24 in commercio ci sono molti prodotti che su base ATmega hanno prodotto dei PLC più o meno prestanti sarebbe bello una volta creato il sfw associarvi delle librerie che consentano di poter selezionare l'hardware e caricare il compilato.