Vai al contenuto
PLC Forum


Quale Tipo Di Linguaggio Di Programmazione Per Plc?


dinoil24

Messaggi consigliati

Ciao a tutti,sono un ingegnere elettronico e mi occupo di programmazione di robot(Comau ,Abb e Kuka)

Volevo cominciare a studiare i plc ma tramite approcci moderni

Quale linguaggio di programmazione mi suggerite di studiare?

Link al commento
Condividi su altri siti


Dipende dal PLC che intendi usare.

Ogni famiglia di PLC ha un suo linguaggio.

Alcuni tra i maggiori utilizzano linguaggi che ottemperano lo standard IEEE. Potresti basarti su questi linguaggi definiti dallo standard.

Però è fondamentale anche la conoscenza dell'ambiente e questi differiscono da casa a casa.

TIA portal di Siemens è completamente differete da RSlogic di A&B, tanto per fare un esempio.

Link al commento
Condividi su altri siti

mi sono espresso malissimo,

Negli anni passati del mio lavoro vedevo e interagivo leggermente con i programmatori plc dei vari stabilimenti dove lavoravo con i robot.

Ho sempre avuto repulsione ad imparare il Kop in quanto avendo basi da programmatore accettavo difficilmente questa tipologia di programmazione

L'Awl invece ho visto che veniva adottato difficilmente e nessuno mi ha mai fatto formazione specifica.Oltretutto ho scoperto che difficilmente si poteva trasformare facilmente da kop a awl senza problemi

Io sono alla ricerca di una tipologia di programmazione strutturata ma universale(a prescindere dal produttore che avrà sempre le differenze)

In parole povere vorrei trovare una tipologia di programmazione moderna,flessibile ma , sopratutto , che possa o alla quale si possa portare a tutte le altre(kop,awl) senza rischi di sorta.

Io vorrei prendere il listato di un programma in un cantiere e poterlo osservare e studiare come voglio io , senza dover per forza studiare kup,awl o altro.

Anche perchè cosi' mi sembra di tornare a prima del basic del commodore64

Chiaramente se ho detto cretinate chiedo a voi esperti di delucidarmi(visto che con i vari tecnici nel tempo non sono mai riuscito ad affrontare una discussione sensata)

Modificato: da dinoil24
Link al commento
Condividi su altri siti

Adelino Rossi

la risposta di Livio è esaustiva.

Prova, anziché usare il termine IO VOGLIO, specialmente all'inizio di una materia per te sconosciuta, usare il termine, IO CERCO ciò che esiste e che sia facile da capire.

io ho lavorato, (qualche anno fa) con i migliori pacchetti di programmazione per DCS in ambiente industriale. nel pacchetto, (molto costoso) il linguaggio anche se proprietario era un mix di kop, fup, awl, e c, il c veniva racchiuso

in apposite routine che avevano come riferimenti tag comuni. Ma ripeto roba molto, molto costosa sia come hardware che come software, certamente non per principianti.

Nei sistemi siemens, (negli altri non ,lo so) puoi fare dei semplici programmi con istruzioni compatibili, kop, fup e awl e poi fai i passaggi automatici di conversione del linguaggio.

potrai vedere il cambiamento.

tipologia di programmazione strutturata ma universale(a prescindere dal produttore che avrà sempre le differenze)

attualmente sono fuori aggiornamento ma mi sembra che questa sia ancora un filosofia di pensiero più che una realtà.

del resto nel campo dei robot penso sia la stessa storia.

osservare e studiare come voglio io , senza dover per forza studiare kup,awl o altro.

qualcosa dovrai ben studiare, compreso il funzionamento dell'impianto su cui opera l'automazione.

Modificato: da Adelino Rossi
Link al commento
Condividi su altri siti

Io vorrei prendere il listato di un programma in un cantiere e poterlo osservare e studiare come voglio io , senza dover per forza studiare kup,awl o altro.

Allo stato attuale dell'arte te lo devi scordare.

Se hai, ad esempio, un programma scritto in AWL Siemens, disponendo del pacchetto di programamzione, puoi trasformarlo in KOP se, e solo se, tutte le istruzioni usate sono convertibili.

Sarebbe facilissimo usare un linguaggio come il "C" per programamre i PLC.

A livello di firmware sono già programmati in "C". Per ogni PLC esistono i compilatori "C" per i relativi microprocessori, quindi sarebbe possiiblissimo che anche il job utente fosse scritto con il medesimo linguaggio.

Però in questo modo un programma scritto per siemens sarebbe immediatamente portabile su piattaflrma GE o A&B, o altra piattaforma.

Ed è proprio questo che i produttori non vogliono!

Solo pochissimi produttori, medio piccoli, ammettonao la programamzione in "C", tutti gli altri usano linguaggi proprietari.

Anche chi dichiara di usare linguaggi dello standard IEEE, mente sapendo di metire. Infatti solo sottinsiemi delle istruzioni rientrano nello standard, ma quasi tutti i programamtori fanno uso dell'insieme maggiore di istruzioni perchè, ovviamente fagilita la programamzione

Link al commento
Condividi su altri siti

Ho sempre avuto repulsione ad imparare il Kop in quanto avendo basi da programmatore accettavo difficilmente questa tipologia di programmazione

Per prima cosa, secondo me, dovresti toglierti questa sorta di "puzza sotto al naso" parlando di KOP.

Voglio precisare che il KOP non è assolutamente il mio linguaggio preferito, e nemmeno quello che uso di più. Però è imbattibile per la logica booleana.

Quindi considerare il KOP alla stregua di un "linguaggio minore" che usano solo quelli che non hanno basi di programmazione, è sbagliato. Molto sbagliato.

L'Awl invece ho visto che veniva adottato difficilmente

Si vede che sei stato sfortunato. L'AWL è il linguaggio che io uso di più, e che molti programmatori di PLC Siemens usano di più. Per la programmazione dei PLC Siemens è quello che offre maggior flessibilità. Mentre ci sono cose che in KOP e in SCL non puoi fare, in AWL puoi fare tutto. Inoltre, anche se molti lo considerano difficile, io lo trovo invece molto adatto alla programmazione di PLC. Si tratta solo di scrivere riga per riga quello che vuoi far fare al processore. Devi solo fare un minimo di pratica con la sintassi, e con l'utilizzo degli accumulatori e dei salti.

Io sono alla ricerca di una tipologia di programmazione strutturata ma universale(a prescindere dal produttore che avrà sempre le differenze)

In parole povere vorrei trovare una tipologia di programmazione moderna,flessibile ma , sopratutto , che possa o alla quale si possa portare a tutte le altre(kop,awl) senza rischi di sorta.

Io vorrei prendere il listato di un programma in un cantiere e poterlo osservare e studiare come voglio io , senza dover per forza studiare kup,awl o altro.

Riguardo a questo tuo desiderio, hai già ricevuto risposte. Ma vorrei aggiungere che mi pare un desiderio un tantino utopistico.

Attualmente i linguaggi utilizzati per la programmazione di PLC sono il KOP (ladder) il FUP, l'AWL (lista istruzioni) l'SCL (linguaggio strutturato) e, più raramente, il C. Come puoi pensare di trovare un unico linguaggio nel quale sia possibile far confluire tutti questi linguaggi?

Sarebbe come dire: io non voglio imparare il Visual Basic, il VBScript, il C, il C#, il VB.net, il java, il Python, l'html ecc. Vorrei un solo linguaggio universale che mi permettesse di lavorare su programmi fatti in uno qualsiasi di tutti il linguaggi esistenti. Ti sembra una richiesta ragionevole?

Inoltre, a quel tuo "senza dover per forza studiare kop, awl o altro", mi viene spontaneo risponderti che tutto ha un costo: se vuoi entrare nel mondo PLC, devi imparare i linguaggi dei PLC.

Anche perchè cosi' mi sembra di tornare a prima del basic del commodore64

Con questa frase non capisco cosa intendi.

Ma la mia impressione è che tu consideri la programmazione dei PLC come un qualcosa di basso rango, che un esperto di programmazione più "nobile" dovrebbe riuscire ad apprendere senza sporcarsi le mani e la mente con banali linguaggi da PLC e, soprattutto, senza sforzo.

Se è veramente questa la tua idea di programmazione di PLC, devo comunicarti che hai proprio capito male.

visto che con i vari tecnici nel tempo non sono mai riuscito ad affrontare una discussione sensata

Non hai mai pensato che il fatto che tu non sia mai riuscito a portare avanti una discussione con programmatori di PLC potrebbe essere dovuto a quel tuo sentirti un gradino più in alto? E, se non è così, è comunque questa l'impressione che dai.

A livello di firmware sono già programmati in "C". Per ogni PLC esistono i compilatori "C" per i relativi microprocessori, quindi sarebbe possiiblissimo che anche il job utente fosse scritto con il medesimo linguaggio.

Però in questo modo un programma scritto per siemens sarebbe immediatamente portabile su piattaflrma GE o A&B, o altra piattaforma.

Su questo non sono d'accordo. È come con il linguaggio strutturato. Il linguaggio è uguale per tutti i PLC, ma chi afferma che un programma in linguaggio strutturato può essere caricato su qualsiasi PLC, mente spudoratamente.

Devo dire che anche a me avrebbe fatto piacere che come linguaggio "standard" si fosse scelto il C al posto dello strutturato, ma non credo che questo sarebbe servito a garantire maggior portabilità.

Per dire, se scrivo un programma in linguaggio strutturato per un PLC Siemens, dove i dati sono divisi in DB, come posso riportare lo stesso programma su un PLC con gestione diversa della memoria senza apportare modifiche?

E non è finita. Se usiamo schede analogiche, ci sono PLC nei quali il valore corrispondente al massimo del segnale è 10000, altri dove è 32767, altri ancora dove è 32000, altri dove è 27648, ed altri con valori ancora diversi.

Una sistemazione delle scalature passando da un PLC ad un altro sarebbe quindi sempre indispensabile, indipendentemente dal linguaggio usato.

Se poi passiamo a schede più complesse (modulo di conteggio veloce, scheda assi, scheda di comunicazione solo per citarne alcune), dove il firmware delle schede stesse è profondamente diverso, e dove ogni PLC ha sviluppato le proprie funzioni per la gestione di queste schede, non è certo con l'unificazione del linguaggio di programmazione che si possono risolvere tutti i problemi di portabilità.

Che poi alle case questa portabilità non sia per nulla simpatica, penso si possa assumere come dogma.

Dogma che, però, forse sta un po' scadendo. Questo perché, se da una parte la non portabilità mette al riparo dal passaggio dal proprio PLC ad uno concorrente, dall'altra impedisce anche il passaggio dal PLC concorrente al proprio.

Insomma, i motivi che impediscono la portabilità, secondo me, non sono legati solo al linguaggio, e non sono tutti risolvibili con la sola volontà dei costruttori.

Link al commento
Condividi su altri siti

L'AWL è il linguaggio che io uso di più, e che molti programmatori di PLC Siemens usano di più.

L'AWL per i PLC siemens è come l'asm per i microcontrollori (e non solo). praticamente è 1:1 e ti permette il completo dominio della macchina.

Quando usavo i PLC usavo quasi esclusivamente AWL, per siemens, od i corrispondenti per altri PLC.

Su questo non sono d'accordo. È come con il linguaggio strutturato.

No Batta, non è così.

Io porto intere funzioni scritte in "C" per micro a 8 bits ad altri a 32 bits e di altro costruttore.

Ovviamente devono essere ricompilate con l'apposito compilatore.

Se ho usato solo "C" standard, senza "built in function", devo solo preoccuparmi delle eventuali differenti direttive pre processore; ma se ho fatto il lavoro bene non devo preoccuparmi nemmeno di quelle.

A maggior ragione per un PLC, dove il job utente può essere totalmente sganciato dall'hardware.

Se usiamo schede analogiche, ci sono PLC nei quali il valore corrispondente al massimo del segnale è 10000, altri dove è 32767, altri ancora dove è 32000, altri dove è 27648, ed altri con valori ancora diversi.

A parte il fatto che questo sarebbe un problema di poco conto, che si riduce a pochissime righe di codice, ma alla fine il problema non esiste, perchè i convertitori A/d e D/A hanno delle dimensioni di parola ben define e precise. Basterebbe definire una "equate" ad inizio programma ed operare in compliazione condizionale. E' una prassi usuale per chi lavora con microprocessori e/o microcalcolatori.

Credo però che negli anni abbiamo già discusso parecchio su questo tema, ma le nostre posizioni son sempre le stesse. :smile:

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

Sono contento e vi ringrazio della risposte

X Batta :nessuna puzza sotto il naso,mi sono espresso male ,anche perche' considera che le mie esperienze da programmatore risalgono agli anni 80 con l'assembler del commodore( e quindi vicine all'AWL)

Mi sono sicuramente espresso male e vi ho fatto capire di pensar di essere superiore.

Ho trovato nelle vostre risposte delle persone intelligenti e preparate,al contrario negli stabilimenti ho solo incontrato dei "cafoni" , "arroganti " e "ignoranti" che pensavano di essere in gamba solo perche' usavano il ladder sulle stesse macchine da decenni e , quando gli proponevi approcci diversi(a livello di logica) ti rispondevano che era cosi' e basta.

Ecco perche' l'avversione verso il KUP , lascia credere a chi conosce lo stesso listato da secoli di essere un genio dall'intelligenza superiore

Una sola precisazione per il sig.Adelino Rossi, sono un professionista ma prima di tutto una persona umile che conosce L'italiano : "Io voglio" e' molto lontano come significato da "vorrei" . Vorrei significa "e' una mia speranza" , voglio e' sinonimo di "presunzione "

Per tutti gli altri ,grazie per le delucidazioni ,con i vostri consigli e una buona umiltà spero di imparar presto a programmare

Ciao

Link al commento
Condividi su altri siti

Adelino Rossi

Recepisco il chiarimento.

Per quanto riguarda le fabbriche, spesso quelli che ci lavorano utilizzano giocoforza sempre gli stessi plc che si ritrovano installati.

quindi si crea una monocultura ambientale che non è facile modificare.

anche perché mentre tu puoi tranquillamente proporre, loro devono innanzitutto far andare la produzione non peggio di come gli sta andando.

se accettassero e attuassero delle modifiche sbagliate, sopratutto non autorizzate, come minimo verrebbero rimossi dal loro incarico. quindi l'ambiente diventa blindato.

poi è chiaro che mentalmente ognuno ha la sua filosofia.

personalmente, visto che inizi adesso, avvicinati a qualcuno che ci lavora, vedi i modelli di plc degli ambienti che frequenti, vedi se puoi avere in prestito d'uso

un plc con i software in dotazione e inizia a lavorare in modo semplice e poi via via più complesso.

una volta partito, con le nozioni concettuali di logiche programmabili che hai avrai sicuramente la strada semplificata.

se mi permetti; nel tuo scritto appare singolare che (per tua stessa ammissione) devi iniziare da zero e da subito ti preoccupi di filosofie di linguaggio.

a scopo didattico, attualmente ci sono un commercio varie possibilità di kit di plc sufficienti per iniziare a programmare a costi contenuti, poi ci sono anche vari corsi specialistici.

io consiglio sempre un classico pannello di legno compensato, (costa poco), ci monti un plc, (possibilmente una marca parecchio diffusa in modo da sfruttare l'esperienza di pù persone),

alcuni relè o lampadine come uscite e pulsanti e interruttori come ingressi e inizia a programmare.

poi continua a chiedere per i tuoi dubbi. qualcuno sicuramente risponde.

Link al commento
Condividi su altri siti

X Batta :nessuna puzza sotto il naso,mi sono espresso male

Mi fa molto piacere sapere che si è trattato solo di una mia errata impressione :smile:

Detto questo, ribadisco che non ti resta che metterti l'anima in pace: se vuoi entrare nel mondo dei PLC, devi imparare i linguaggi dei PLC.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao dinoil24,

io conosco più che altro i PLC Siemens e posso dirti che quello che si avvicina di più alla tua formazione da programmatore è sicuramente l'SCL...questo è un linguaggio che deriva dall'informatica e contiene un sottoinsieme delle istruzioni che sono presenti in C o Pascal (cicli for, cicli While, IF, GO TO, CASE), ovviamente riadattati al mondo PLC e quindi con i concetti degli FB, FC, OB, DB. Con il 300 e il 400 è quello che ti garantisce le prestazioni peggiori a livello di performace e di velocità di esecuzione. E' anche vero però che in alcuni casi, con poche righe di codice, fai fare al PLC cose che in KOP o AWL possono essere fatte con molte righe in più. Inoltre nello Step7 classico devi installare un pacchetto aggiuntivo e devi passare da un file sorgente.

Se invece utilizzi già CPU come il 1200 ed il 1500 e quindi il TIA Portal, l'SCL è già implementato di default, ha un editor molto simile agli altri linguaggi ed è quindi più semplice, ed inoltre, a livello di prestazioni si dice sia più prestante dell'AWL...è decisamente un linguaggio su cui probabilmente si punta molto per il futuro dato che è stato molto potenziato da Siemens. E' molto potente e puoi fare tutto quello che fai negli altri linguaggi.

Il KOP è un linguaggio indispensabile per la logica booleana perchè è più semplice da implementare e sopratutto da debuggare dato che è un linguaggio di tipo grafico e per questo anche molto semplice. Non ti consente di fare però di fare operazioni particolari. Il FUP non è molto utilizzato ma è un'alternativa al KOP.

L'AWL è il linguaggio che si avvicina di più al modo di ragionare del PLC S7-300 ed S7-400 e quindi è anche quello che, in quei due casi, risulta il più potente e performante.

Questo non è più vero per i PLC di nuova generazione dato che l'AWL risulta simulato ma, grazie al potenziamento degli altri linguaggi, non risulta più fondamentale.

Comunque rimane perchè è il linguaggio più diffuso al momento, per il motivo detto prima.

L'ideale sarebbe ovviamente conoscere tutti i linguaggi e utilizzare il più opportuno caso per caso. Ma per iniziare secondo me, se provi a sbirciare nell'SCL, se hai conoscenze informatiche, in mezza giornata riesci a far girare qualcosa... :smile:

ciao,

Link al commento
Condividi su altri siti

  • 5 months later...

Buongiorno,

I PLC Phoenix Contact, mi sembra compatibili con quelli Hitachi, programmati in SCL (suite PCWORX). Potente PLC con CPU ILC370, penso si possa scaricare una versione Lite dal sito, incluso simulatore. Vengo dal mondo Siemens (S5 115U), Omron (CPM/Comunque), Klockner&Moeller (PS3); Allen Bradley (PLC2/30).

Saluti.

Link al commento
Condividi su altri siti

Nicola Carlotto

Comunque di qualsiasi plc si parli dobbiamo tenere a mente che alla fine dei giochi si parla di bit,byte,word, gli editor come tiaportal cxprogrammer s5 s7 ecc sono solo degli interpreti , e a mio avviso si devono ritenere piu evoluti se sono piu intuibili , il ladder è il piu intuibile.

Ciao

Link al commento
Condividi su altri siti

il ladder è il piu intuibile.

Per la logica booleana, sì.

Se devi fare dei calcoli, assolutamente no. E se devi fare salti o cicli for next e simili, nemmeno.

Link al commento
Condividi su altri siti

Nicola Carlotto

Si fa tutto anche in ladder , utilizzando i blocchi opportuni, io pero' ho iniziato con s5 25 anni fa per poi passare gradulmente all'Omron e qui il ladder e' il piu' potente ,velocissimo , autocompilante , plasmabile senza vincoli e

cosa non da poco , intuitivo.

Oggi chi si avventura a diventare un programmatore plc deve pensare che il plc e' il regista di un determinato numero di utenze che possono essere slave di determinati bus di campo o quantaltro , quindi il sistema di programmazione scelto deve essere il piu intuibile possibile piu' veloce possibile .

Attenzione queste sono considerazioni personali supportate dalla mia esperienza quindi soggettive.

Ciao

Link al commento
Condividi su altri siti

  • 5 years later...
Francesco56napoli

Buongiorno, come gia' letto  vorrei avvicinarmi anche io alla programmazione PLC ,purtroppo non ho modo di scegliere e ce chi ha scelto per me ..moduli della rockwell 830  850

ovviamente cerco un approccio morbido con compilatore ladder, chi mi potrebbe dare una sostanziosa mano con esempi pratici.

grazie e scusate 

Francesco S.

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...