Piattaforme software
Quasi tutte le piattaforme software si sono sforzate di rendere le tecnologie Web gestibili in modo
semplice:.NET o Java sono già predisposte per la tecnologia Web
Le moderne piattaforme software come .NET di Microsoft o Java sono già predisposte per la
tecnologia Web, perciò i controllori con interfaccia operatore possono essere collegati al mondo
dei PC in modo semplice e senza l’aggiunta di driver software o OPC server. Grazie a potenti ‘tool’
software e a una significativa varietà di funzioni, le piattaforme software possono accedere a campi
applicativi nuovi nell’ambito dei progetti d’automazione. Quasi tutte le piattaforme software
affermate hanno intrapreso notevoli sforzi per rendere le tecnologie Web gestibili in modo
semplice. Le componenti di automazione, che supportano anch’esse le tecnologie Web, possono
facilmente dialogare con il mondo dei PC. È infatti facile collegare i controllori con interfaccia
operatore con i PC e tramite questi farli comunicare con l’intero mondo Windows o Linux senza
bisogno di software aggiuntivi, driver o altre unità.
Cosa sono le piattaforme software?
Il termine ‘piattaforme software’ è estremamente ampio e poco preciso. In modo molto
semplificato, si può intendere sotto questo termine una piattaforma su cui possono essere eseguiti
specifici programmi software. In prima analisi, una piattaforma può essere vista come un hardware
progettato secondo determinate norme (ad esempio, i PC); tuttavia, in questo caso sarebbe più
corretto parlare di piattaforma hardware. Quando non si vuole inventare tutto da soli o
programmare faticosamente delle applicazioni, si possono utilizzare funzioni standard, già
programmate in precedenza.
Un sistema operativo presenta un insieme di funzioni di base, quindi può essere visto come una
piattaforma software. I sistemi operativi permettono sostanzialmente di disaccoppiare i programmi
applicativi dallo specifico hardware: un programma Windows funziona su qualsiasi calcolatore su
cui sia installato il sistema operativo Windows, indipendentemente dal costruttore del PC. Se si
vogliono poi sviluppare dei programmi eseguibili su diversi sistemi operativi, ecco che il termine
piattaforma software diventa più comprensibile. Java è una piattaforma software in grado di
funzionare su svariati sistemi operativi. Una JVM (Java Virtual Machine) costituisce in questo
contesto l’elemento di collegamento tra il programma Java e il sistema operativo. Se una JVM è
stata installata sul calcolatore, i programmi Java possono essere eseguiti direttamente senza
necessità di ricompilarli. Il trucco sta nel fatto che i programmi Java non vengono compilati per uno
specifico sistema operativo o per una specifica piattaforma hardware, ma vengono convertiti in un
codice intermedio indipendente, al posto del codice macchina specifico della CPU. Questo codice
intermedio viene eseguito attraverso la JVM sul sistema di destinazione. In questo modo, viene
garantita l’indipendenza di Java dalle varie piattaforme, per cui i programmi Java possono
funzionare indifferentemente su Windows, Linux/Unix, Macintosh ecc. In realtà, il concetto di
codice intermedio nella tecnologia PLC viene applicato già da decenni con successo e costituisce
una delle ragioni che hanno assicurato continuità e disponibilità a lungo termine della tecnologia
PLC. Con .NET Microsoft offre una piattaforma software costruita secondo gli stessi principi di
Java; tuttavia, essa è orientata al sistema operativo Windows. Con .NET è possibile realizzare
programmi per i vari sistemi operativi ‘desktop’, come Windows 2000/XP/Vista e Windows CE,
SmartPhones e PocketPC.
Programmare con Visual-Basic su .NET
Una piattaforma software possiede ampie librerie di funzioni e potenti tool di programmazione. I
principi solitamente seguiti dalla moderna programmazione sono quelli dell’‘object oriented’: la
piattaforma software .NET offre linguaggi object oriented come C++ e Visual-Basic.
Nel caso dello sviluppo software object oriented non si parla tanto di ‘librerie’ di funzioni, ma
piuttosto di ‘classi’. La piattaforma .NET offre delle librerie di classi che rendono semplice l’utilizzo
della tecnologia PC/Windows. Indipendentemente dal fatto che vengano utilizzate tecnologie
multimediali, come video e audio, oppure un database, con .NET e Visual-Basic si possono
eseguire, nell’ambito di un progetto di automazione, operazioni che vanno al di là della semplice
visualizzazione. Grazie alla struttura .NET le applicazioni possono essere create sia per le varianti
Windows desktop (Windows 2000/XP/Vista), sia per apparecchiature basate su Windows CE,
come i Web panel. Così le applicazioni .NET possono essere eseguite indifferentemente su un PC
da ufficio o sul pannello di comando (Windows CE/XP). In particolare, Microsoft propone l’impiego
di Visual Studio 2005 come tool software per la creazione di applicazioni .NET. Con esso
l’interfaccia grafica di un’applicazione Windows può essere creata con pochi ‘clic’ di mouse, tramite
componenti predefinite; vaste possibilità di ‘debugging’ completano il tool. Una versione
dell’ambiente di sviluppo Visual Studio 2005 Express può essere scaricata gratuitamente dal sito
Internet (www.microsoft.com/germany/msdn/vstudio/products/express/download.mspx).
In Internet si è anche creata una folta comunità (‘community’) per quanto riguarda .NET e VisualBasic. Per qualsiasi tipo di problema si può così trovare supporto gratuito, a livello avanzato e
professionale ed è anche possibile trovare parti di programma già definite o ‘ritagli’ (‘snippets’) da
inserire direttamente nel programma.
Ecco alcuni siti Web orientati alla funzionalità .NET: www.codeguru.com,www.codeproject.com,
www.vbarchiv.net, www.vb-fun.de.
Caricare dei contenuti Web con Java e .NET
In passato, non era semplice dal punto di vista tecnico accedere alle pagine Web; con Java e .NET
tutto questo è cambiato radicalmente. Entrambe le piattaforme software offrono classi, con l’ausilio
delle quali il caricamento di una pagina Web è un vero ‘gioco da ragazzi’. Nel caso di .NET, con la
classe ‘WebRequest’ è possibile caricare liberamente da Internet un file con solo quattro istruzioni:
‘ definire gli oggetti per l’accesso al Web
Dim wReq As WebRequest
Dim wResp As WebResponse
‘ Accedere alla pagina Web
wReq = WebRequest.Create (‘http://192.168.0.230/demo.html’)
‘ Selezionare/leggere la risposta
wResp = wReq.GetResponse()
Dopo l’esecuzione, il contenuto della pagina Web caricata dal server con indirizzo IP
192.168.0.230, ‘demo.html’, si trova nella variabile ‘wResp’ e può essere elaborato a piacimento.
In Java, la cosa avviene con altrettanta facilità. Perché il caricamento semplice di contenuti Web
per i progetti di automazione sia così importante diventa chiaro quando si analizza il metodo con il
quale si accede ai dati di un PLC con interfaccia operatore.
CGI: la chiave per un PLC con interfaccia operatore
CGI (Common Gateway Interface) è una tecnologia Web standard spesso utilizzata sui Web
server. Essa definisce un’interfaccia su un Web server che permette di eseguire degli ‘script’ o
delle applicazioni sul server stesso. Il risultato di questi file eseguibili viene trasferito al client
richiedente (browser) tipicamente sottoforma di pagine Html.
È diventata ormai prassi comune caricare i file eseguibili tramite CGI in una directory ‘cgi-bin’. Un
lancio CGI è costituito da un indirizzo Internet, dall’indicazione della directory CGI (‘cgi-bin’) e dal
file eseguibile desiderato. Se al file eseguibile devono essere trasmessi dei parametri, ciò avviene
tramite l’inserimento di un ‘?’, seguito dai parametri in questione. Più parametri vengono separati
da un segno ‘+’. I controllori PCD di Saia-Burgess Controls dispongono di un Web server con
interfaccia CGI, attraverso la quale si può accedere a tutti i dati del controllore. In questo modo, gli
ingressi/uscite, le ‘merker-word’, i ‘data block’ ecc. possono essere liberamente selezionati e
modificati. È anche possibile leggere i dati con l’applicazione CGI ‘readVal.exe’ e scrivere i dati con
‘writeVal.exe’.
Per utilizzare questa tecnologia è sufficiente un semplice browser: se si inserisce nella riga
contenente l’indirizzo del browser l’URL http://192.168.0.230/cgi-bin/readVal.-exe?PDP,,MW100,d,
appare nella finestra del browser il valore aggiornato della merker-word 100 (in formato decimale)
del controllore con l’indirizzo IP 192.168.0.230. Al comando CGI vero e proprio ‘readVal.exe’
segue come parametro, separato da un ‘?’, un tag utilizzato per l’indirizzamento dei dati PLC.
Quest’ultimo è composto da un’identificazione generica dei dati di processo (PDP), dai dati PLC
desiderati (MW100 = merker-word 100) e da un formato (d = decimale). Se si desidera impostare
la merker-word al valore 1.234, si può utilizzare l’URL http://192.168.0.230/cgibin/write-Val.-exe?-PDP,,MW100,d+--1234.
Qui, in aggiunta, il valore da scrivere (1.234) viene separato con un ‘+’, indicato come un secondo
parametro.
Oltre alle basilari funzioni CGI per la lettura e la scrittura di singoli dati PLC, i controllori PCD
offrono la possibilità di richiedere e/o modificare più valori in contemporanea con un unico
accesso/telegramma. A questo scopo, vengono definiti una sola volta con un’ulteriore funzione
CGI i ‘record’ che specificano i dati PLC desiderati. Una volta definiti, questi possono essere
consultati con un’unica chiamata e trasferiti con un unico telegramma. In questo modo, anche
grandi quantità di dati possono essere trasferite in maniera flessibile e senza appesantire la
comunicazione.
Con lo stesso metodo si possono acquisire i dati PLC da Java e dalle applicazioni .NET. Nella
classe WebRequest in .NET è già incluso tutto ciò che serve per comunicare con un PLC. All’atto
del lancio, WebRequest deve semplicemente essere trasmesso il comando CGI desiderato in
termini di URL, ed ecco che i dati desiderati diventano disponibili all’interno della propria
applicazione Visual-Basic. In questo modo, per una comunicazione tra PLC e PC o pannello di
comando non sono necessari driver speciali, OPC server o schede hardware aggiuntive: tutto può
essere eseguito con le ‘utility’ fornite da Windows. Inoltre, tutto funziona sempre allo stesso modo,
indipendentemente dal fatto che un Web panel sia direttamente collegato alla macchina con il
PLC, che un PC da ufficio voglia accedere alla rete intranet o che si debba effettuare un intervento
di manutenzione a distanza via Internet.
di Peter Steib