Vai al contenuto

Piattaforma PLC di visibilità internazionale in filosofia PLCOpen (Codesys?)


Messaggi consigliati

verticale128
Inserito:

Apro qui questo topic in quanto non saprei in quale altra sezione del forum inserirlo.

Parto dal presupposto, credo ormai assodato per tutti, che la programmazione PLC, o comunque di automazione in generale, sia da sempre considerata di "serie B" rispetto alla programmazione standard, soprattutto rispetto a quella di alto livello (linguaggi strutturati come C++, C#, Python, etc.). E non è un caso che, quasi ovunque, chi abbia un buon background da programmatore, si orienti quasi sistematicamente proprio sulla programmazione ad alto livello, lasciando l'automazione ai "mestieranti" di qualche tipo (generalmente con grado di istruzione e skill ben più limitati).

Questo ha, secondo me, da sempre azzoppato piuttosto pesantemente le ambizioni e i desideri di miglioramento dei programmatori PLC, che generalmente, dopo un periodo di crescita e miglioramento giovanile, quasi immancabilmente si "assestano" su un plateau che rimane tale per il resto della carriera. I motivi per cui questo accade sono abbastanza facilmente individuabili:

1- La programmazione di alto livello è intrinsecamente più complessa, e quindi per i giovani programmatori molto più stimolante.

2- Le piattaforme PLC sono generalmente ambienti "chiusi", in cui le piattaforme sono piuttosto diverse tra loro in quanto molto customizzate, ed in cui i produttori tendono a fidelizzare a vita i propri programmatori al proprio ambiente ed ad ai propri prodotti.

3- Viceversa, le piattaforme di programmazione ad alto livello, soprattutto da quando si è diffuso capillarmente il mondo Linux ed il concetto di open-source, sono ambienti apertissimi, multipiattaforma, e con una enorme condivisione di risorse tra utenti via web; ne deriva che le piattaforme ed i forum di condivisione (ovviamente in primis in lingua inglese) sono moltissime, e rendono possibile anche ad un autodidatta volenteroso arrivare in tempi brevi ad un buon/ottimo livello di competenza.

4- I sistemi di intelligenza artificiale (che siano ChatGpt, Gemini o Copilot o altri ancora) sono chiaramente stati tutti istruiti sui linguaggi di alto livello, e rendono estremamente efficace il supporto a questo tipo di programmatori; un simile livello di apporto/supporto è chiaramente impensabile, almeno a breve, per il mondo dell'automazione.

5- L'unico ambiente di automazione multi-piattaforma che sarebbe papabile per un progetto di condivisione e di (parziale) open-source a lungo termine è chiaramente Codesys, che è notoriamente basato anche su concetti di programmazione di alto livello, ma che però non ha assolutamente ancora un livello di penetrazione/condivisione/apporto da parte degli utenti, a livello mondiale, paragonabile ai linguaggi ad alto livello; il sito stesso ufficiale di Codesys non ha minimamente una quantità di materiale informativo/esplicativo all'altezza di un progetto di ampio respiro, quale potrebbe essere. Inoltre, i produttori stessi di PLC che adottano quella piattaforma, pur cominciando ad essere numerosi, spesso customizzano pesantemente il nucleo Codesys originale del loro progetto, di fatto producendo degli ambienti tra i quali la riusabilità del codice e l'interoperabilità diventano minime (mi vengono in mente ad esempio gli ambienti Codesys di Schneider e Beckhoff).

 

A livello di piattaforme web, è chiaro che per poter pensare ad un progetto di condivisione internazionale, una eventuale piattaforma dovrebbe essere necessariamente in lingua inglese. E attualmente non mi sembra che ne esistano di interessanti e molto frequentate (a parte la ben nota piattaforma di mera condivisione di software craccato).

 

Spero che questo topic possa avere un buon riscontro di interesse, perchè la questione, in prospettiva futura, non mi sembra assolutamente di secondo piano, riguardando in primis l'attrattiva che il settore dell'automazione può esercitare sulle nuove leve.

 

Saluti.

Inserita:

Non sono molto d'accordo. Innanzi tutto gli ambienti sono parecchio diversi e con esigenze diverse.

I programmi per PLC hanno una struttura diversa per il sistema operativo che implementano, basato sul concetto di scansione. Questo è assolutamente inesistente per sistemi PC. Principalmente perché i PLC devono rispondere a ben precisi e rigorosi principi di sicurezza di funzionamento. Si deve per esempio dover garantire un arresto sicuro del sistema in caso di crash, per esempio generato da loop infiniti o troppo lunghi.

Il Codesys NON è assolutamente un open source, ma sviluppato da un'azienda che ne vende licenza (versioni base gratuite che però per svolgere funzioni un po' più complesse necessitano di licenze aggiuntive).

Del resto io una macchina per quanto semplice ma basata su software su PC "diretto" sinceramente non la comprerei mai. Ti immagini al riavvio del sistema operativo avere tutti inchiodato...

I sistemi operativi da PC (tutti, open source o meno) sono tutti troppo general purpose, mentre quelli (proprietari) dei PLC sono altamente specializzati e performanti per il mestiere che andranno a fare.

 

Anche quando sviluppavo schede embedded a microprocessore (programmate in C o assembly) per macchinari, lo facevo per compiti estremamente specifici e si faceva poi fare delle prove dedicate a certificatori esterni (anche se non c'erano operazioni di sicurezza implementate), proprio per garantire e certificare l'affidabilità del sistema nelle varie circostanze. Ma erano schede estremamente dedicate e non riconducibili a un vero PLC (svolgevano quella sola automazione).

 

Per il discorso di non bloccarsi su sistemi troppo chiusi, a mio parere è stato fatto un gran passo in avanti con lo IEC 61131, che salvo funzioni particolari (riconducibili a funzioni di libreria particolari di altri linguaggi) sono sostanzialmente intercambiabili, salvo pochi aggiustamenti, da una marca all'altra.

Poi basta orientarsi su piattaforme gratuite e performanti (e ce ne sono, soprattutto orientali) ed il gioco è fatto.

Inserita:

Non ho capito di cosa stiamo parlando.

La programmazione plc è una parte, i database Sql o NoSql un'altra, la programmazione di apparecchiature custom un'altra, le interfaccie operatore Android un'altra, ambienti di studio usano framework specializzati come Labview , il web un'altra ancora. E millemila altri ancora...

Poi c'è tutta quanta la AI basata su modelli diversi ognuno guarda caso specializzato e diversificato ad hoc per usi specifici, un pò come i linguaggi di programmazione.

Non puoi dire che i giovani si appassionano di più al C# piuttosto che al Go o al Pyton. Dipende dai percorsi universitari, dai politecnici, dai docenti e perchè no anche dalle passioni dei padri.

Per ritornare ai plc, dipende da cosa deve fare il plc, se è garantire affidabilità e tempi ciclo con hardware "modesti" non ti serve più di quello che hai già (SCL/Ladder/FUP...). Se vuoi integrarci il web e la AI non è lavoro da plc.

 

Livio Orsini
Inserita: (modificato)
17 ore fa, verticale128 ha scritto:

Parto dal presupposto, credo ormai assodato per tutti, che la programmazione PLC, o comunque di automazione in generale,

 

Mi sono occupato di queste problematiche dagli inizi degli anni '70, lavorando presso alcune delle aziende italiane più conosciute nel campo dell'automazione indistriale e non solo.

Non sono assolutamente d'accordo con questa tua asserzione!

Poteva essere parzialmente vera ancora 35-40 anni fa, quando i PLC erano praticamente delle grosse scatole di relè. Una buona parte di chi programmava PLC erano persone che, provenendo dal mondo elettromeccanico, ricreavano tramite PLC i classici schemi di automazione a relè.

Se consulti, ad esempio, un'automazione di una semplice linea correttiva per lamiera di quando non si impiegavano ancora i PLC, troverai decine e decine di fogli di schemi con combinazioni di contatti a relè.

Quando i progettisti cominciarono ad usare i PLC ricrearono le medesime logiche usando i programmi di tipo KOP o a contatti, anche perchè i PLC del tempo offrivano solo quel tipo di linguaggio.

Più o meno agli inizi degli anni '80 quasi tutti i produttori di PLC cominciarono ad offrire anche compilatori di lin guaggio simil assembler tipo lo AWL siemens (tanto per dare un riferimento molto conosciuto).

Contemporaneamente cominciarono ad usare i PLC progettisti con solide basi di informatica come, ad esempio, il sottoscritto. Queste persone non usavano, se non di malavoglia, i linguaggi a contatti preferendo altri tipi di linguaggi più simili ai linguaggi di programmazione dei computer.

Oggi la maggior parte dei progettisti che usa PLC ha basi di informatica piuttosto solide e usa prefiribilmente linguaggi ad alto livello, non foss'altro perchè son molto più produttivi.

 

Quote

Le piattaforme PLC sono generalmente ambienti "chiusi", in cui le piattaforme sono piuttosto diverse tra loro in quanto molto customizzate, ed in cui i produttori tendono a fidelizzare a vita i propri programmatori al proprio ambiente ed ad ai propri prodotti.

 

Su questo concordo.

 

Quote

L'unico ambiente di automazione multi-piattaforma che sarebbe papabile per un progetto di condivisione e di (parziale) open-source a lungo termine è chiaramente Codesys,

 

Anche su questo concordo in buona parte.

 

Quote

A livello di piattaforme web, è chiaro che per poter pensare ad un progetto di condivisione internazionale, una eventuale piattaforma dovrebbe essere necessariamente in lingua inglese.

 

A partire dagli 90 ci sono stati decine e decine di tentativi di avviare progetti simili, tutti falliti per il completo disinteresse degli utenti.
 

Quote

 

Non sono molto d'accordo. Innanzi tutto gli ambienti sono parecchio diversi e con esigenze diverse.

I programmi per PLC hanno una struttura diversa per il sistema operativo che implementano, basato sul concetto di scansione. Questo è assolutamente inesistente per sistemi PC.

 

 

Andrea concordo su quanto affermi anche se, nella seconda metà degli anni 90, Siemens propose un'ottima linea di PLC dove la medeisma CPU poteva gestire un'applicazione PLC più altre in rel time multitasking, basabdo il tutto su un sistema operativo RTOS di concezione Intel.

Purtroppo questa linea venne abbandonata agli inizi del secolo per scarso interesse dei clienti.

In commercio c'erano parecchi PLC di nicchia che permettevano di far convivere jobs a scansione con altri i real time e con l'uso di linguaggi tipo "C".

 

Quote

Del resto io una macchina per quanto semplice ma basata su software su PC "diretto" sinceramente non la comprerei mai.

 

Sono completamente d'accordo con te.

Le uniche applicazioni serie di questo tipo sono quelle in cui il PC ha solo funzione di hosting di un controllore specifico che lavora con RTOS e completamente indipendente di Windows. Anche su sistemi operati di varie versioni Linux non mi fido. È pur vero che linux deriva da unix, ma oramai è come l'uomo sapiens che deriva dagli ominidi preistorici.

 

 

Modificato: da Livio Orsini

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