Eccoci in un altra lezione di programmazione WinCC Unified, l’ambiente unificato Siemens per la programmazione di sistemi di supervisione industriale basati su pannelli operatore HMI, e su personal computers; questo ambiente viene installato in Tia Portal.
Nel tutorial di oggi scopriamo gli scripts, ovvero programmi che possiamo creare in linguaggio JavaScript, e che ci permettono di lavorare in runtime per eseguire compiti complessi, modificare proprietà di oggetti, e dinamizzare le nostre applicazioni.
Il linguaggio JavaScript è molto potente, e amplia notevolmente le possibilità offerte dai sistemi si supervisione, non solo quelli Siemens.
Molti sistemi di monitoraggio, siano essi HMI su pannello operatore o grandi sistemi SCADA, offrono le funzioni di scripting, a volte chiamate anche macro.
Attraverso l’utilizzo di un linguaggio testuale, si possono creare funzioni più o meno complesse, che permettono di leggere e scrivere tags (variabili) sia interni alla memoria dei supervisori, che sui controllori, modificare proprietà online, e accedere a molte funzioni di sistema.
Ci sono sistemi di scripting limitati e altri più complessi, in questo senso possiamo dire che Siemens ha deciso di puntare su un “cavallo vincente”, ovvero JavaScript.
Come vedremo nei prossimi paragrafi, la nuova filosofia di WinCC Unified si basa proprio sulla creazione di script, e davvero questo possono essere inserite dappertutto.
Nella prossima immagine possiamo vedere uno script editato a livello globale, che può essere quindi attivato per esempio alla pressione di un pulsante, oppure da un compito di schedulazione.
Come avviene con tutti i linguaggi di programmazione evoluti, possiamo dichiarare delle variabili e utilizzarle per elaborare le operazioni che vogliamo.
Lo script mostrato nell’esempio legge il valore di due variabili reali (operando1 e operando2), ed elabora le quattro operazioni matematiche, scrivendo il risultato in altri quattro tags.
Abbiamo così che la variabile “reale3” conterrà la somma dei due operandi, “reale4” la sottrazione, “reale5” il prodotto, e “reale6” la divisione.
In questo caso particolare, i due operandi vengono passati alla funzione durante la chiamata, e sono contenuti in “parameter1” e “parameter2”, che ritroviamo nella dichiarazione della funzione stessa (in testa allo script).
Il linguaggio JavaScript mette a disposizione diverse funzioni e diversi costrutti, come i classici condizionamenti IF THEN, e i loops come i cicli FOR.
Come accennato in precedenza, possiamo scrivere script in diverse posizioni nell’applicazione di monitoraggio, nella prossima immagine troviamo una routine che viene eseguita ogni 2 secondi, attraverso un compito di schedulazione.
Nella figura sotto invece, lo script è assegnato all’evento “click” di un pulsante, naturalmente avremmo potuto scrivere questo script come routine globale, e richiamarlo con questo pulsante.
L’ultimo esempio che mostriamo oggi è l’utilizzo di uno script per valorizzare un campo sulle pagine. Invece di scrivere il nome di una variabile, calcoliamo direttamente il valore utilizzando lo script stesso.
Bene, abbiamo visto che WinCC permette di scrivere routines in linguaggio JavaScript a diversi livelli; questo offre molti vantaggi, tuttavia per alcune semplici funzioni che prima erano già a disposizione, con il nuovo sistema ci ritroviamo a doverle scriverle, e di conseguenza a dover imparare questo linguaggio (imparare non fa mai male).