SIMOTION. SIMOTION IT SIMOTION IT Programmazione e Webservice. Premessa. Avvertenze di sicurezza di base 1. Introduzione 2

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SIMOTION. SIMOTION IT SIMOTION IT Programmazione e Webservice. Premessa. Avvertenze di sicurezza di base 1. Introduzione 2"

Transcript

1 Premessa Avvertenze di sicurezza di base 1 SIMOTION SIMOTION IT SIMOTION IT Programmazione e Webservice Introduzione 2 Programmazione del software 3 Appendice 4 Manuale di programmazione Valido da Versione /2014

2 Avvertenze di legge Concetto di segnaletica di avvertimento Questo manuale contiene delle norme di sicurezza che devono essere rispettate per salvaguardare l'incolumità personale e per evitare danni materiali. Le indicazioni da rispettare per garantire la sicurezza personale sono evidenziate da un simbolo a forma di triangolo mentre quelle per evitare danni materiali non sono precedute dal triangolo. Gli avvisi di pericolo sono rappresentati come segue e segnalano in ordine descrescente i diversi livelli di rischio. PERICOLO questo simbolo indica che la mancata osservanza delle opportune misure di sicurezza provoca la morte o gravi lesioni fisiche. AVVERTENZA il simbolo indica che la mancata osservanza delle relative misure di sicurezza può causare la morte o gravi lesioni fisiche. CAUTELA indica che la mancata osservanza delle relative misure di sicurezza può causare lesioni fisiche non gravi. ATTENZIONE indica che la mancata osservanza delle relative misure di sicurezza può causare danni materiali. Nel caso in cui ci siano più livelli di rischio l'avviso di pericolo segnala sempre quello più elevato. Se in un avviso di pericolo si richiama l'attenzione con il triangolo sul rischio di lesioni alle persone, può anche essere contemporaneamente segnalato il rischio di possibili danni materiali. Personale qualificato Il prodotto/sistema oggetto di questa documentazione può essere adoperato solo da personale qualificato per il rispettivo compito assegnato nel rispetto della documentazione relativa al compito, specialmente delle avvertenze di sicurezza e delle precauzioni in essa contenute. Il personale qualificato, in virtù della sua formazione ed esperienza, è in grado di riconoscere i rischi legati all'impiego di questi prodotti/sistemi e di evitare possibili pericoli. Uso conforme alle prescrizioni di prodotti Siemens Si prega di tener presente quanto segue: AVVERTENZA I prodotti Siemens devono essere utilizzati solo per i casi d impiego previsti nel catalogo e nella rispettiva documentazione tecnica. Qualora vengano impiegati prodotti o componenti di terzi, questi devono essere consigliati oppure approvati da Siemens. Il funzionamento corretto e sicuro dei prodotti presuppone un trasporto, un magazzinaggio, un installazione, un montaggio, una messa in servizio, un utilizzo e una manutenzione appropriati e a regola d arte. Devono essere rispettate le condizioni ambientali consentite. Devono essere osservate le avvertenze contenute nella rispettiva documentazione. Marchio di prodotto Tutti i nomi di prodotto contrassegnati con sono marchi registrati della Siemens AG. Gli altri nomi di prodotto citati in questo manuale possono essere dei marchi il cui utilizzo da parte di terzi per i propri scopi può violare i diritti dei proprietari. Esclusione di responsabilità Abbiamo controllato che il contenuto di questa documentazione corrisponda all'hardware e al software descritti. Non potendo comunque escludere eventuali differenze, non possiamo garantire una concordanza perfetta. Il contenuto di questa documentazione viene tuttavia verificato periodicamente e le eventuali correzioni o modifiche vengono inserite nelle successive edizioni. Siemens AG Industry Sector Postfach NÜRNBERG GERMANIA P 04/2014 Con riserva di modifiche Copyright Siemens AG Tutti i diritti riservati

3 Premessa Documentazione SIMOTION La panoramica della documentazione SIMOTION è riportata nel documento Panoramica documentazione SIMOTION. La documentazione è compresa in versione elettronica nella fornitura di SIMOTION SCOUT e consiste in 10 pacchetti di documenti. Per la versione di prodotto SIMOTION V4.4 sono disponibili i seguenti pacchetti di documentazione: SIMOTION Engineering System Utilizzo SIMOTION Descrizione del sistema e delle funzioni SIMOTION Service e Diagnostica SIMOTION IT Programmazione SIMOTION Programmazione SIMOTION - Riferimenti SIMOTION C SIMOTION P SIMOTION D Documentazione integrativa SIMOTION Hotline e indirizzi Internet Ulteriori informazioni Al seguente link sono disponibili informazioni relative: all'ordinazione della documentazione / alla panoramica manuali altri link per il download di documenti all'utilizzo della documentazione online (manuali/cercare e sfogliare informazioni) Per domande relative alla documentazione tecnica (ad es. suggerimenti, correzioni) si prega di inviare una al seguente indirizzo: docu.motioncontrol@siemens.com My Documentation Manager Al seguente link sono disponibili informazioni per strutturare individualmente la documentazione sulla base di contenuti Siemens ed adattarli alla propria documentazione della macchina: Manuale di programmazione, 04/2014 3

4 Premessa Training Al seguente link sono disponibili informazioni su SITRAIN - il Training di Siemens per prodotti, sistemi e soluzioni della tecnica di automazione: Domande frequenti Le FAQ (Frequently Asked Questions) si trovano nelle SIMOTION Utilities & Applications incluse nella fornitura di SIMOTION SCOUT e nelle pagine di Service&Support alla voce Product Support: Technical Support Per i numeri telefonici dell'assistenza tecnica specifica dei vari Paesi, vedere in Internet in Contatti: 4 Manuale di programmazione, 04/2014

5 Indice del contenuto Premessa Avvertenze di sicurezza di base Avvertenze di sicurezza generali Indicazioni di sicurezza Introduzione Panoramica SIMOTION IT Novità Programmazione del software Pagina iniziale definita dall'utente Introduzione Caricamento di pagine MWSL sul controllore Compilazione dei file MWSL Pagine incorporate definite dall'utente Editor di menu Javascript e Webservice Accesso alle variabili con JavaScript e Webservice Comunicazione con il server OPC XML-DA (opcxml.js) Rappresentazione di dati OPC XML-DA nel browser (appl.js) MiniWeb Server Language (MWSL) Funzionamento di MWSL Struttura di un file MWSL Messaggi di errore Tipi di variabili Variabili di script Variabili globali Variabili speciali Costanti di configurazione Variabili e parametri URL COOKIES Variabili e l'accesso a COOKIES Variabili e indicazioni header HTTP Operatori Istruzioni condizionate Loop Funzioni Commenti Panoramica delle funzioni di MWSL Funzionamento del meccanismo di template Struttura del file template Struttura di una sorgente di dati Trasformazione del template...69 Manuale di programmazione, 04/2014 5

6 Indice del contenuto MWSL in attributi XML Esempi Server Side Includes (SSI) Introduzione di valori di processo OPC XML-DA Webservice: Introduzione ai Webservice Panoramica Confronto tra OPC XML-DA e SIMATIC NET OPC-DA Rappresentazione schematica della creazione dell'applicazione client Rappresentazione schematica durante il runtime dell'applicazione client Installazione Requisiti hardware e software per la creazione dell'applicazione client Configurazione dell'interfaccia degli apparecchi SIMOTION per l'uso dell'applicazione client OPC XML-DA, protezione di accesso Accesso alle variabili OPC XML-DA Esempio di applicazione client Interfaccia del server SIMOTION IT OPC XML DA Panoramica Metodi richiamabili in modo sincrono Accesso alle variabili Trace Interface via SOAP (TVS) Webservice Panoramica Trace Sequenza trace Procedure/Concetti Trattamento di errori Principi delle subscription Interfaccia Definizioni globali Metodi Subscriptions Appendice Funzioni MWSL AddHTTPHeader createguid DecodeString die EncodeString ExistFile ExistVariable GetLanguage GetVar InsertFile IsAuthAlgo isfinite isnan IsSSL parsefloat parseint ProcessXMLData ReadFile Manuale di programmazione, 04/2014

7 Indice del contenuto ReplaceString SetVar ShareRealm write WriteToTab WriteVar WriteXMLData NodeIndex NodeLevel Indice analitico Manuale di programmazione, 04/2014 7

8

9 Avvertenze di sicurezza di base Avvertenze di sicurezza generali AVVERTENZA Pericolo di morte in caso di inosservanza delle avvertenze di sicurezza e dei rischi residui L'inosservanza delle avvertenze di sicurezza e dei rischi residui contenute nella relativa documentazione hardware può avere come conseguenza incidenti che possono provocare gravi lesioni o la morte. Rispettare le avvertenze di sicurezza contenute nella documentazione hardware. Nella valutazione dei rischi occorre tenere conto dei rischi residui. AVVERTENZA Pericolo di morte per malfunzionamenti della macchina dovuti a parametrizzazione errata o modificata Una parametrizzazione errata o modificata può provocare malfunzionamenti delle macchine con conseguente pericolo di lesioni che possono mettere anche in pericolo la vita della persone. Proteggere le parametrizzazioni da ogni accesso non autorizzato. Gestire gli eventuali malfunzionamenti con provvedimenti adeguati (ad es. ARRESTO DI EMERGENZA oppure OFF DI EMERGENZA). Manuale di programmazione, 04/2014 9

10 Avvertenze di sicurezza di base 1.2 Indicazioni di sicurezza 1.2 Indicazioni di sicurezza Nota Indicazioni di sicurezza Siemens commercializza prodotti di automazione e di azionamento per la sicurezza industriale che contribuiscono al funzionamento sicuro di impianti, soluzioni, macchinari, apparecchiature e/o reti. Questi prodotti sono componenti essenziali di una concezione globale di sicurezza industriale. In quest ottica i prodotti Siemens sono sottoposti ad un processo continuo di sviluppo. Consigliamo pertanto di controllare regolarmente la disponibilità di aggiornamenti relativi ai prodotti. Per il funzionamento sicuro di prodotti e soluzioni Siemens è necessario adottare idonee misure preventive (ad es. un concetto di protezione di cella) e integrare ogni componente in un concetto di sicurezza industriale globale all avanguardia. In questo senso si devono considerare anche gli eventuali prodotti impiegati di altri costruttori. Per ulteriori informazioni sulla sicurezza industriale, vedere Per restare informati sugli aggiornamenti cui vengono sottoposti i nostri prodotti, suggeriamo di iscriversi ad una newsletter specifica del prodotto. Per ulteriori informazioni, vedere support.automation.siemens.com AVVERTENZA Pericolo a causa di stati operativi non sicuri dovuti a manipolazione del software Qualsiasi alterazione del software (ad es. virus, cavalli di Troia, malware, bug) può provocare stati operativi non sicuri dell'impianto e di conseguenza il rischio di morte, lesioni gravi e danni materiali. Mantenere aggiornato il software. Ulteriori informazioni e newsletter si trovano all'indirizzo: Integrare i componenti di automazione e azionamento in un sistema coerente di Industrial Security dell'impianto o della macchina in base allo stato attuale della tecnica. Per maggiori informazioni consultare il sito: Tutti i prodotti utilizzati vanno considerati nell'ottica di questo sistema coerente di Industrial Security. 10 Manuale di programmazione, 04/2014

11 Introduzione Panoramica SIMOTION IT Panoramica dei manuali SIMOTION IT La documentazione "Funzioni di HMI e diagnostica SIMOTION IT basate su Ethernet" comprende tre manuali (IT = Information Technology): SIMOTION IT Diagnostica e configurazione In questo manuale viene descritta la diagnostica diretta degli apparecchi SIMOTION. L'accesso avviene con un browser standard (ad es. Firefox) tramite l'indirizzo IP dell'apparecchio SIMOTION. Per l'accesso è possibile utilizzare le pagine di diagnostica standard oppure creare proprie pagine HTML. Vedere il manuale SIMOTION IT Diagnostica e configurazione. In questo manuale viene descritta la creazione di pagine Web definite dall'utente e l'accesso alle funzioni di diagnostica tramite i due Webservice messi a disposizione da SIMOTION IT. Un Webservice consente all'utente di creare, in un linguaggio di programmazione a piacere, proprie applicazioni client che possono comunicare con l'apparecchio SIMOTION tramite tecnologie Web. Per il trasferimento dei comandi viene utilizzato il protocollo di comunicazione SOAP (Simple Object Access Protocol). Il manuale contiene sia informazioni sulla programmazione di questi client, sia una descrizione dei Webservice SIMOTION IT (OPC XML-DA, Trace tramite SOAP TVS) che consentono da un lato di accedere ai dati e agli stati operativi del controllore e dall'altro di utilizzare le funzioni di Trace delle variabili. SIMOTION IT Virtual Machine e servlet Questo manuale descrive i pacchetti funzionali basati su Java. Jamaica Virtual Machine (JamaicaVM) è un ambiente runtime per applicazioni Java sull'apparecchio SIMOTION. Si tratta di un'implementazione della Java Virtual Machine Specification. Nella sezione Servlet della documentazione è descritto l'impiego dei servlet di un apparecchio SIMOTION. Vedere il manuale SIMOTION IT Virtual Machine e servlet. Vedere anche PDF in Internet: SIMOTION IT Diagnostica e configurazione ( support.automation.siemens.com/ww/view/de/ /0/it) PDF in Internet: SIMOTION IT Virtual Machine e servlet ( support.automation.siemens.com/ww/view/de/ /0/it) Manuale di programmazione, 04/

12 Introduzione 2.2 Novità 2.2 Novità Quali sono le novità nella versione attuale? Versione 4.4 Nuovo modo di creazione delle pagine MWSL (Pagina 14). I file MWSL archiviati nel formato HTML sul controllore vengono compilati online. Una compilazione offline non è più necessaria per i file.mcs. Nuove funzioni MWSL (Pagina 64) createguid, die, DecodeString, EncodeString, ExistFile, GetLanguage, IsAuthAlgo, isfinite, isnan, IsSSL, parsefloat, parseint, ReadFile, ReplaceString, ShareRealm, WriteToTab Nuova versione del linguaggio server MWSL Nuovi operatori MWSL (Pagina 58) Le estensioni dei file per le pagine Web sono state modificate da.mcs/.mbs a.mwsl/.mwsl.cms. 12 Manuale di programmazione, 04/2014

13 Pagina iniziale definita dall'utente La pagina iniziale standard delle pagine di diagnostica del controllore può essere sostituita con una pagina iniziale definita dall'utente. Per fare questo occorre modificare la pagina predefinita del server Web nel file WebCfg.xml. Procedura 1. Creare una propria pagina iniziale. Salvare questa pagina iniziale, ad es. con il nome MyIndex.mwsl. 2. Copiare la pagina iniziale sulla scheda di memoria dell'apparecchio SIMOTION tramite la pagina Files. 3. Aprire il file WebCfg.xml con un editor disponibile. Il file si trova sul DVD fornito con il prodotto nella directory 3_Configuration nello stato predefinito oppure, se modificato, sulla scheda di memoria dell'apparecchio SIMOTION nella directory \USER\SIMOTION \HMICFG. 4. Sostituire il nome file index.mwsl in <SERVEROPTIONS> nell'elemento <DEFAULTDOCUMENT VALUE="index.mwsl" /> con il nome della pagina iniziale, compreso il nome del percorso "files" (nella directory FILES vengono salvate tutte le pagine HTML definite dall'utente). Esempio: <DEFAULTDOCUMENT VALUE="files/MyIndex.mwsl" /> 5. Salvare il file WebCfg.xml modificato sulla scheda di memoria mediante la pagina Manage Config > WebCfg transmission Introduzione Pagine Web configurate individualmente con accesso ai dati dell'apparecchio SIMOTION IT DIAG offre la possibilità di memorizzare pagine specifiche di macchina sul controllore SIMOTION. Queste vengono salvate in un proprio formato binario (*.mwsl.cms). Manuale di programmazione, 04/

14 Possono essere utilizzati i seguenti strumenti per integrare i valori di processo del controllore SIMOTION. Server Side Includes (SSI): La visualizzazione non formattata più semplice, statica, sul lato server (Pagina 82). I valori di processo possono essere integrati in qualsiasi punto del codice HTML della pagina in modo semplice e senza opzione di visualizzazione (ad es. numero delle cifre decimali). MiniWeb Server Language (MWSL): Visualizzazione formattata, statica, sul lato server, tramite script nel controllore SIMOTION (Pagina 46). Questo linguaggio script consente di controllare in modo mirato la generazione di codice HTML e l'integrazione formattata (ad es. in formato HEX o decimale) di valori di processo. OPC XML-DA Webservice: Visualizzazione formattata dinamica tramite JavaScript nel browser (Pagina 23). La libreria OPCXML.JS propone per JavaScript un utilizzo elegante di valori di processo in caso di dinamizzazione di pagine HTML. La creazione di pagine definite dall'utente presuppone conoscenze di programmazione HTML e JavaScript. Parole chiave per la programmazione successiva: XML, HTTP Request, Ajax e Webservices. La figura che segue illustra un esempio di una pagina semplice creata autonomamente. Figura 3-1 Esempio di una pagina semplice definita dall'utente Caricamento di pagine MWSL sul controllore Il codice sorgente di una pagina MWSL deve essere creato come file con l'estensione.mwsl. Un file MWSL è un file HTML che dispone di ampliamenti MWSL per poter accedere alle informazioni sul controllore. La conversione dei file di codice sorgente nel formato interno del controllore avviene in diversi modi: 14 Manuale di programmazione, 04/2014

15 Caricamento dei file tramite la pagina Files > Files. Copia dei file sulla scheda con l'ausilio di un lettore di schede. Caricamento dei file tramite FTP. Per il caricamento tramite lettore di schede o FTP, i file devono essere archiviati nella directory / USER/SIMOTION/HMI/FILES. Vedere anche Struttura di un file MWSL (Pagina 47) Pagine incorporate definite dall'utente (Pagina 18) Compilazione dei file MWSL I file.mwsl hanno la stessa struttura di base delle pagine HTML standard. I file di codice sorgente devono essere codificati con UTF-8 per rappresentare correttamente i caratteri speciali. 1. Progettazione delle pagine MWSL con un tool scelto a piacere. Le pagine assumono l'estensione file.mwsl. 2. Compilazione della pagina. Verranno creati i file convertiti con lo stesso nome dei rispettivi file sorgente e l'estensione.mwsl.cms. 3. Verifica e test della pagina nella User's Area. 4. Gli errori che si verificano durante la compilazione del file MWSL vengono scritti nel file di registro. Gli errori che si verificano durante il richiamo della pagina Web vengono scritti come messaggi di errore nel testo sorgente della pagina MWSL. La ricerca per i relativi tipi di file avviene nella directory /FILES e in tutte le sue sottodirectory. Il compilatore sostituisce il file originale con quello compilato. I file compilati assumono l'estensione *.cms. Compilazione delle pagine MWSL Esistono tre diverse possibilità di compilare le pagine MWSL: 1. Fare clic sul pulsante Compile. Tutti i file della directory FILES vengono compilati. Questa opzione è raccomandata, ad esempio, dopo un upload FTP. 2. Avviamento del controllore. Tutti i file della directory FILES vengono compilati. 3. Compilazione al primo richiamo della pagina attraverso il suo URL. Questo vale anche per il richiamo attraverso la Users Area. Nota Protezione degli originali Dato che durante la conversione i file.mwsl vengono eliminati, è necessario salvare sempre gli originali sul PC e portarne solo una copia sulla scheda. Manuale di programmazione, 04/

16 Pagine correttamente compilate con estensione.cms L'esempio seguente mostra una compilazione tramite la pagina Files. Sulla pagina Files si trovano le Directory Operations con cui le pagine MWSL possono essere caricate e compilate sul controllore tramite il pulsante Send. Figura 3-2 Caricamento dei file MWSL Se è stato possibile caricare un file senza errori, lo stesso acquisisce l'estensione.cms. Nota I file errati non acquisiscono l'estensione.cms. Nell'esempio precedente si è verificato un problema con il file NewFile.mwsl. Esempio della compilazione di una pagina definita dall'utente La creazione di una pagina MWSL può avvenire con un qualsiasi editor di testo. <html> <head/> <body> <br>&nbsp State: <MWSL>WriteVar("DeviceInfo.BZU");</MWSL> </body> </html> NewFile.mwsl Il testo sorgente viene memorizzato in questo esempio come file con il nome NewFile.mwsl. Per l'output dei dati dell'apparecchio viene utilizzato in questo esempio MWSL. Struttura di un file MWSL (Pagina 47) Nelle espressioni MWSL si accede ai dati dell'apparecchio mediante il provider di variabili. Vedere il capitolo Variable Provider nel manuale SIMOTION IT Diagnostica e configurazione. 16 Manuale di programmazione, 04/2014

17 Presupposto per la visualizzazione della pagina è l'impostazione corretta della User's Area. Nell'esempio in questione è stata selezionata la variante EmbeddedSimple. Pagine incorporate definite dall'utente (Pagina 18) Figura 3-3 User's Area Output NewFile.mwsl.cms Nella User's Area è possibile controllare l'output della pagina. La schermata visualizza l'output del file di esempio. Se la compilazione è esente da errori, il file assume il nome NewFile.mwsl.cms. Analisi degli errori Figura 3-4 Messaggio di errore User's Area MWSL I messaggi di errore che si verificano durante l'esecuzione della pagina vengono inseriti come commento nel testo sorgente della pagina MWSL. È possibile accedere al testo sorgente nel Manuale di programmazione, 04/

18 browser visualizzando il frame attuale. Nell'esempio si tenta di accedere alla funzione WriteVarX(), che non esiste. Gli errori che si verificano durante la compilazione vengono scritti in un file di registro, che viene formato aggiungendo l'estensione ".log" al nome del file. File nel vecchio formato MBS e MCS Per motivi di compatibilità con le versioni precedenti, l'interpretazione dei file MCS e MBS (ad es. file definiti dall'utente) continua ad essere supportata nella versione 4.4. Una registrazione nel buffer di diagnostica indica che il formato è obsoleto. Per il futuro questa compatibilità con le versioni precedenti non è garantita, per cui le vecchie pagine andrebbero salvate nel nuovo formato Pagine incorporate definite dall'utente Collegamento di pagine definite dall'utente A partire dalla versione è possibile integrare pagine definite dall'utente nel framework delle pagine standard di SIMOTION IT DIAG. Figura 3-5 User's Area con pagina integrata Il menu della User`s Area integra i file della cartella FILES in due modi diversi: EmbeddedSimple: La pagina User`s Area carica tutte le pagine Web contenute nella cartella FILES come schede. Viene visualizzato il nome file senza estensione del file. Embedded: la pagina carica una barra di schede definita liberamente dall'utente. Tra EmbeddedSimple e Embedded è possibile passare alla pagina Settings. Vedere il manuale SIMOTION IT Diagnostica e configurazione, capitolo Pagine standard. 18 Manuale di programmazione, 04/2014

19 Impostazioni in WebCfg.xml In WebCfg.xml è possibile impostare la visualizzazione della User's Area con le costanti di configurazione <UserArea> e <UserDir>. Con il tag <UserArea> è possibile impostare il tipo di visualizzazione della scheda. (il caso predefinito è rappresentato in grassetto): <UserArea>( StandAlone Embedded EmbeddedSimple )</UserArea> <UserDir> definisce la directory per i file di scheda relativamente alla directory FILE. <UserDir></UserDir> StandAlone <UserArea>StandAlone</UserArea> L'accesso alla User's Area è vincolato al file user.mwsl. Presupposto per la visualizzazione della User's Area è la presenza e la richiamabilità di questo file. EmbeddedSimple <UserArea>EmbeddedSimple</UserArea> In questa opzione tutti i file trovati nella directory indicata con <UserDir> vengono utilizzati per la creazione della scheda. Come titolo viene utilizzato il rispettivo nome file privato dell'estensione. Il relativo link fa riferimento a questo file. Embedded - Utilizzo dell'editor di menu <UserArea>Embedded</UserArea> Se sulla pagina Settings è stata impostata la casella di controllo Enable user editor, nella User's Area viene visualizzato l'editor di menu (Pagina 20), con il quale è possibile creare menu personalizzati. Esempio WebCfg.xml: <SERVERPAGES version="78.00"> [...] <CONFIGURATION_DATA> <USERCONFIG> <UserArea>Embedded</UserArea> <UserDir/> </USERCONFIG> </CONFIGURATION_DATA> [...] </SERVERPAGES> Manuale di programmazione, 04/

20 3.1.6 Editor di menu Creazione di menu personalizzati tramite l'editor di menu Attraverso il link Menu editor a partire dalla versione è possibile richiamare l'editor di menu, che consente la creazione personalizzata del menu della User Area. Presupposto per l'utilizzo dell'editor di menu L'utilizzo dell'editor di menu presuppone che nel file WebCfg.xml la costante di configurazione <UserArea> venga impostata su Embedded. In alternativa, sulla pagina Settings è possibile impostare User pages su Embedded. Figura 3-6 Dati di configurazione editor di menu In seguito deve essere selezionata sulla pagina Settings l'opzione Enable user menu editor. Figura 3-7 Editor di menu Settings 20 Manuale di programmazione, 04/2014

21 Lavorare con l'editor di menu La pagina User's Area contiene la scheda Menu editor. Figura 3-8 Primo avvio dell'editor di menu Dopo il primo avvio dell'editor di menu si presenta una pagina vuota. Premendo il pulsante Append new entry, è possibile creare nuove voci di menu. Figura 3-9 Editor di menu con più voci Nell'immagine precedente è stata aggiunto il file NewFile.mwsl. Tramite i pulsanti è possibile aggiungere, cancellare o spostare di posizione file. Nella colonna File name vanno inseriti i nomi dei file che devono essere visualizzati in relazione alla voce di menu corrispondente. La colonna Menu text contiene il titolo della voce di menu. Il pulsante 1 serve alla creazione di nuove voci di menu da inserire prima di quella corrente. Il pulsante 2 cancella la voce di menu corrispondente. Il pulsante 3 sposta la voce di menu verso l'alto. Manuale di programmazione, 04/

22 Il pulsante 4 sposta la voce di menu verso il basso. Esempio Nell'editor di menu vengono registrati due file. Figura 3-10 Esempio editor di menu La User's Area mostra ora solo le pagine selezionate. Figura 3-11 Esempio editor di menu - Visualizzazione Users's Area Per nascondere nella pagina la scheda Menu editor, sulla pagina Settings è necessario disattivare l'opzione Enable user menu editor. 22 Manuale di programmazione, 04/2014

23 3.1.7 Javascript e Webservice Accesso alle variabili con JavaScript e Webservice Accesso a un dispositivo con la libreria JavaScript Tramite la funzionalità DOM di JavaScript si possono implementare dei semplici client Webservice. In questo modo si aprono nuove e numerose possibilità all'interno di un browser, ad es.: Lettura e aggiornamento ciclico dei contenuti delle variabili con l'ausilio di un comando OPC XML-DA Read Scrittura di variabili con l'ausilio di un comando OPC XML-DA Write Come sfogliare l'intera famiglia delle variabili SIMOTION Configurazione e interrogazione di una OPC XML-DA Subscription La funzione viene resa disponibile da più file JavaScript : opcxml.js: comprende funzioni per la creazione dei documenti XML necessari e per la comunicazione con un server OPC XML-DA. appl.js: imposta opcxml.js e implementa i seguenti oggetti: Browser delle variabili: rappresentazione della famiglia delle variabili SIMOTION in una struttura ad albero all'interno del browser Property Viewer: rappresentazione delle proprietà delle variabili (valore, tipo di dati, diritti di accesso, enumerazioni) sotto forma di una tabella all'interno di un browser. La tabella contiene con le variabili scrivibili un campo di immissione per la modifica del contenuto delle variabili. Tabella Watch: rappresentazione di una tabella Watch nel browser Comunicazione con il server OPC XML-DA (opcxml.js) OPCReadRequest Con l'ausilio della classe OPCReadRequest i valori possono essere letti per un elenco di variabili. function OPCReadRequest(parLocaleId,parResultCB) Parametro di trasferimento: Manuale di programmazione, 04/

24 parlocaleid: Codice lingua ("DE", "EN") parresultcb: Funzione callback che deve essere messa a disposizione dal programma chiamante. Quando giunge una risposta dal server OPC XML-DA, questa funzione viene richiamata dal OPCReadRequest. L'oggetto OPCReadRequest viene eliminato automaticamente (richiamo del metodo "destructor") quando la funzione callback restituisce "true" come valore di ritorno. function OPCReadRequestCB(parResponse) Parametri di trasferimento: parresponse: Array di ItemValue con il risultato del task di lettura. function OPCItemValue() this.mitempath; this.mitemname; this.mitemhandle; this.mitemvalue; this.mitemresultid; Se è definito mitemresultid, significa che si è verificato un errore durante la lettura. In questo caso mitemresultid contiene l'id di errore OPC XML-DA. Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> function read() var tmpreadcb = function(parresponse) tmpresultstr = ""; for (var tmpindex = 0; tmpindex < parresponse.length; tmpindex++) var tmpitemvalue = parresponse[tmpindex]; var tmpvalue = (tmpitemvalue.mitemvalue)? tmpitemvalue.mitemvalue : tmpitemvalue.mitemresultid; tmpresultstr += tmpitemvalue.mitempath + "::" + tmpitemvalue.mitemname + " = " + tmpvalue 24 Manuale di programmazione, 04/2014

25 alert(tmpresultstr); return true; + "\n"; var tmpreadrequest = new OPCReadRequest("DE",tmpReadCB); tmpreadrequest.additem("simotion","var/userdata.user1"); tmpreadrequest.additem("simotion","var/userdata.user2"); tmpreadrequest.additem("simotion","var/userdata.user10"); tmpreadrequest.sendreadrequest(); </script> <title>insert title here</title> </head> <body> <input type="button" onclick="read();" value="read"/> </body> </html> OPCGetPropertiesRequest Con l'ausilio della classe OPCGetPropertiesRequest è possibile leggere le proprietà delle variabili: Valori Tipi di dati Autorizzazioni di accesso Componenti Enum function OPCGetPropertiesRequest(parLocaleId,parResultCB) Parametro di trasferimento: Manuale di programmazione, 04/

26 parlocaleid: Codice lingua ("DE", "EN") parresultcb: la funzione Callback deve essere messa a disposizione dal programma richiamante. Quando giunge una risposta dal server OPC XML-DA, questa funzione viene richiamata dal OPCGetPropertiesRequest. L'oggetto OPCGetPropertiesRequest viene distrutto automaticamente (richiamo del metodo "destructor") quando la funzione callback restituisce "true" come valore di ritorno. function OPCGetPropertiesRequestCB(parResponse) parresponse: Array dei PropertyResults che contengono le Property delle variabili: function OPCPropertyResult() this.mitempath; this.mitemname; this.mname; this.misitem; this.mhaschildren; this.mresultid; this.mvalue; this.mtype; this.maccessrights; this.meffectiveness; this.menums; this.misenum; Interfaccia utente: additem(paritempath,paritemname) aggiunge una variabile all'elenco removeitem(paritemhandle) cancella una variabile dall'elenco delle variabili sendgetpropertiesrequest() invia il task di lettura destructor() abilita l'intero oggetto task Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>getproperties</title> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> function getproperties() var tmpgetpropertiescb = function(parresponse) 26 Manuale di programmazione, 04/2014

27 tmpresultstr = ""; for (var tmpindex = 0; tmpindex < parresponse.length; tmpindex++) var tmppropertyresult = parresponse[tmpindex]; var tmpenums = ""; if (tmppropertyresult.menums && (tmppropertyresult.menums.length > 0)) for (var tmpindex = 0; tmpindex < tmppropertyresult.menums.length; tmpindex++) tmpenums += " " + tmppropertyresult.menums[tmpindex] + "\n"; if (!tmppropertyresult.mresultid) tmpresultstr += tmppropertyresult.mitempath + "::" + tmppropertyresult.mitemname + ":\n Type = " + tmppropertyresult.mtype + "\n value = " + tmppropertyresult.mvalue + "\n AccessRights = " + tmppropertyresult.maccessrights + "\n Enums = \n" + tmpenums +"\n"; else tmpresultstr += tmppropertyresult.mitempath + "::" + tmppropertyresult.mitemname + ":\n ResultId = " + tmppropertyresult.mresultid + "\n\n"; alert(tmpresultstr); return true; var tmpgetpropertiesrequest = new OPCGetPropertiesRequest("DE",tmpGetPropertiesCB); tmpgetpropertiesrequest.additem("simotion", "var/userdata.user1"); tmpgetpropertiesrequest.additem("simotion", "var/userdata.user20"); tmpgetpropertiesrequest.additem("simotion", "dev/service.bzu.value"); tmpgetpropertiesrequest.sendgetpropertiesrequest(); </script> </head> <body> <input type="button" onclick="getproperties();" Manuale di programmazione, 04/

28 </body> </html> value="getproperties"/> OPCWriteRequest OPCWriteRequest scrive tre valori di una o più variabili. function OPCWriteRequest(parLocaleId,parResultCB) Parametro di trasferimento: parlocaleid: Codice lingua ("DE", "EN") parresultcb: La funzione callback deve essere messa a disposizione dal programma richiamante La funzione viene richiamata dopo la conclusione del task di invio. function OPCWriteRequestCB(parResultList) parresultlist è un array di ItemValue che contiene i risultati del task di scrittura. function OPCItemValue() mitempath mitemname mitemhandle mitemvalue mitemresultid L'oggetto OPCWriteRequest viene distrutto automaticamente (richiamo del metodo "destructor") se la funzione callback restituisce "true" come valore di ritorno. Interfaccia utente: additem(paritempath,paritemname,partype) aggiunge una variabile all'elenco variabili, restituisce l'handle delle variabili con cui è possibile fare riferimento alla variabile all'interno del task. ParType contrassegna il tipo di dati OPC XML-DA con cui deve essere scritto. Se partype non viene assegnato, il tipo di dati "xsi::string" viene acquisito. removeitem(paritemhandle) cancella una variabile dall'elenco delle variabili setitemvalue(paritemhandle,parvalue) imposta per una variabile il valore che deve essere scritto. sendwriterequest() invia il task di scrittura destructor() abilita tutte le risorse riservate dall'oggetto di scrittura Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; 28 Manuale di programmazione, 04/2014

29 charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> function writevalues() var tmpwritecb = function(parwriteresult) var tmpstring = ""; for (var tmpindex = 0; tmpindex < parwriteresult.length; tmpindex++) var tmpitemvalue = parwriteresult[tmpindex]; var tmpvalue = (tmpitemvalue.mitemresultid)? tmpitemvalue.mitemresultid : tmpitemvalue.mitemvalue; tmpstring += tmpitemvalue.mitempath + "::" + tmpitemvalue.mitemname + " = " + tmpvalue + "\n"; alert(tmpstring); var tmpwrite = new OPCWriteRequest("DE",tmpWriteCB); var tmpitemhandle = tmpwrite.additem("simotion", "var/userdata.user1"); tmpwrite.setitemvalue(tmpitemhandle,"123"); tmpitemhandle = tmpwrite.additem("simotion", "var/userdata.user2"); tmpwrite.setitemvalue(tmpitemhandle,"234"); tmpitemhandle = tmpwrite.additem("simotion", "var/userdata.user10"); tmpwrite.setitemvalue(tmpitemhandle,"345"); tmpwrite.sendwriterequest(); </script> <title>write</title> </head> <body> <input type="button" value="write" onclick="writevalues()"/> </body> </html> OPCBrowseRequest Con l'ausilio della classe OPCBrowseRequest la famiglia delle variabili di un controllore può essere sfogliata. function OPCBrowseRequest(parclaaLocaleId,parResultCB) Parametro di trasferimento: Manuale di programmazione, 04/

30 parlocaleid: Codice lingua ("DE", "EN") parresultcb: Funzione callback che deve essere messa a disposizione dal programma chiamante. La funzione viene richiamata dopo la conclusione del task di invio. function OPCBrowseRequestCB(parResult,parItemPath,parItemName) parresult è un array del tipo BrowseResult e contiene le informazioni Browse. function BrowseResult() mitempath; mitemname; mname; misitem; mhaschildren; paritempath e paritemname Percorso e nome di ogni directory il cui contenuto è incluso in BrowseResult. Interfaccia utente: sendbrowserequest(paritempath,paritemname) invia la richiesta Browse. paritempath e paritemname sono il percorso e il nome della directory che deve essere sfogliata. Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> function browse() var tmpbrowserequestcb = function(parbrowseresult, paritempath, paritemname) var tmpstring = paritempath + "::" + paritemname + "\n"; for (var tmpindex = 0; tmpindex < parbrowseresult.length; tmpindex++) var tmpbrowseresult = parbrowseresult[tmpindex]; tmpstring += tmpbrowseresult.mitemname + "\n"; alert(tmpstring); var tmpbrowserequest = new OPCBrowseRequest("DE",tmpBrowseRequestCB); 30 Manuale di programmazione, 04/2014

31 tmpbrowserequest.sendbrowserequest("simotion","var/"); </script> <title>browse</title> </head> <body> <input type="button" value="browse" onclick="browse();"/> </body> </html> OPCSubscriptionRequest Con l'ausilio della classe OPCSubscriptionRequest una subscription OPC XML-DA può essere configurata, sottoposta a polling e cancellata. function OPCSubscriptionRequest(parLocaleId,parResultCB,parCancelCB) Parametro di trasferimento: parlocaleid Codice lingua ("DE", "EN").call parresultcb Funzione callback che viene resa disponibile dall'utente. Questa funzione callback richiamata dopo la configurazione e dopo un refresh. function OPCSubscriptionRequestCB(parResultList,parResult) parresultlist è un array del tipo OPCItemValue che contiene i valori delle variabili rilevati. function OPCItemValue() mitempath mitemname mitemhandle mitemvalue mitemresultid parcancelcb Funzione bback che deve essere resa disponibile dall'utente. Questa funzione callback viene richiamata dopo l'abilitazione di una subscription. function OPCSubscriptionCancelCB() La funzione non dispone di alcun parametro di trasferimento. Interfaccia utente: additem(paritempath,paritemname) inserisce la variabile assegnata nell'elenco interno delle variabili subscription. removeitem(paritemhandle) cancella la variabile assegnata dall'elenco delle variabili subscription. cancel() termina una subscription attiva sul server. Manuale di programmazione, 04/

32 refresh() legge i valori attuali delle variabili Vengono trasferite solo variabili i cui valori sono stati modificati dalla precedente interrogazione. Il primo richiamo di refresh dopo la creazione dell'oggetto OPCSubcription o il primo richiamo dopo un cancel termina la subscription con la lista delle variabili interne attuali sul server. Il refresh deve essere richiamato ciclicamente. Il meccanismo holdtime della subscription OPC XML-DA non viene supportato, vale a dire che fra ciascuno dei 2 cicli refresh deve essere programmato tramite un timer JavaScript un tempo di attesa. Il wait-time della subscription OPC XML-DA è tuttavia attivo, ciò significa che, se durante il runtime del wait-time non viene modificata nessuna variabile, una risposta a un richiamo del refresh interviene subito dopo la scadenza del wait-time. destructor() Termina la subscription sul server e abilita le risorse riservate dall'oggetto subscription. Il destructor deve essere richiamato prima dell'abilitazione dell'oggetto. Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> var glosubscription; var gloitemhandle_1; var gloitemhandle_2; function subscription() if (!glosubscription) var tmpsubscriptioncb = function(parvalues) for (var tmpindex = 0; tmpindex < parvalues.length; tmpindex++) var tmpitemhandle = parvalues[tmpindex].mitemhandle; var tmpitemvalue = parvalues[tmpindex].mitemvalue; if (tmpitemhandle == gloitemhandle_1) var tmpvaluenode = document.getelementbyid("user1"); tmpvaluenode.firstchild.nodevalue = tmpitemvalue; else if (tmpitemhandle == gloitemhandle_2) var tmpvaluenode = document.getelementbyid("user2"); tmpvaluenode.firstchild.nodevalue = tmpitemvalue; 32 Manuale di programmazione, 04/2014

33 var tmptimercb = function() glosubscription.refresh(); settimeout(tmptimercb,300); var tmpcancelcb = function() if (glosubscription) glosubscription.destructor(); glosubscription = null; glosubscription = new OPCSubscriptionRequest("DE", tmpsubscriptioncb,tmpcancelcb); gloitemhandle_1 = glosubscription.additem("simotion", "var/userdata.user1"); gloitemhandle_2 = glosubscription.additem("simotion", "var/userdata.user2"); glosubscription.refresh(); function cancel() if (glosubscription) glosubscription.cancel(); </script> <title>subscription</title> </head> <body> <div> <input type="button" value="start" onclick="subscription();"/> <input type="button" value="cancel" onclick="cancel();"/> </div> <table> <tr> <td>user1</td> <td id="user1">user1</td> </tr> <tr> <td>user2</td> <td id="user2">user2</td> </tr> </table> </body> </html> Manuale di programmazione, 04/

34 OPCSubscriptionAutoRefresh OPCSubscriptionAutoRefresh offre la stessa funzionalità di OPCSubscriptionRequest, tuttavia il richiamo temporizzato della funzione refresh avviene automaticamente. function OPCSubscriptionAutoRefresh(parLocaleId,parResultCB,parCancelCB, parcycletime) Parametro di trasferimento: parlocaleid parresultcb parcancelcb vedere OPCSubscriptionRequest parcycletime tempo del ciclo in ms in base a cui la funzione refresh viene richiamata Interfaccia utente: startrefresh() avvia il ciclo di interrogazione cancel() vedere OPCSubscriptionRequest additem(paritempath,paritemname,paritemhandle) vedere OPCSubscriptionRequest Dopo l'inserimento delle variabili il ciclo di refresh viene ripreso automaticamente. removeitem(paritemhandle) destructor() Esempio: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript"> var glosubscription; var gloitemhandle_1; var gloitemhandle_2; var gloitemhandle_3; function subscription() if (!glosubscription) var tmpsubscriptioncb = function(parvalues) 34 Manuale di programmazione, 04/2014

35 for (var tmpindex = 0; tmpindex < parvalues.length; tmpindex++) var tmpitemhandle = parvalues[tmpindex].mitemhandle; var tmpitemvalue = parvalues[tmpindex].mitemvalue; if (tmpitemhandle == gloitemhandle_1) var tmpvaluenode = document.getelementbyid("user1"); tmpvaluenode.firstchild.nodevalue = tmpitemvalue; else if (tmpitemhandle == gloitemhandle_2) var tmpvaluenode = document.getelementbyid("user2"); tmpvaluenode.firstchild.nodevalue = tmpitemvalue; else if (tmpitemhandle == gloitemhandle_3) var tmpvaluenode = document.getelementbyid("user3"); tmpvaluenode.firstchild.nodevalue = tmpitemvalue; var tmpcancelcb = function() if (glosubscription) glosubscription.destructor(); glosubscription = null; glosubscription = new OPCSubscriptionAutoRefresh("DE", tmpsubscriptioncb,tmpcancelcb,300); gloitemhandle_1 = glosubscription.additem("simotion", "var/userdata.user1"); gloitemhandle_2 = glosubscription.additem("simotion", "var/userdata.user2"); glosubscription.startrefresh(); function addvar() if (glosubscription) gloitemhandle_3 = glosubscription.additem("simotion", Manuale di programmazione, 04/

36 "var/userdata.user3"); function removevar() if (glosubscription) glosubscription.removeitem(gloitemhandle_3); function cancel() if (glosubscription) glosubscription.cancel(); </script> <title>auto refresh</title> </head> <body> <div> <input type="button" value="start" onclick="subscription();"/> <input type="button" value="add variable" onclick="addvar();"/> <input type="button" value="remove variable" onclick="removevar();"/> <input type="button" value="cancel" onclick="cancel();"/> </div> <table> <tr> <td>user1</td> <td id="user1">user1</td> </tr> <tr> <td>user2</td> <td id="user2">user2</td> </tr> <tr> <td>user3</td> <td id="user3">user3</td> </tr> </table> </body> </html> Rappresentazione di dati OPC XML-DA nel browser (appl.js) appl.js Nella libreria JavaScript appl.js sono raggruppate classi per la rappresentazione dei dati rilevati con le request OPC XML-DA. 36 Manuale di programmazione, 04/2014

37 ApplDataTable ApplDataTable implementa una tabella dinamica in cui possono essere rappresentate variabili di processo. I valori delle variabili vengono aggiornati ciclicamente con una subscription OPC XML-DA. Figura 3-12 Esempio di implementazione di una tabella dinamica (ApplDataTable) function ApplDataTable(parDocument,parClassName,parColumnClasses,parColumnIds,parHeader) Parametro di trasferimento: pardocument Documento JavaScript che viene utilizzato per la creazione di elementi parclassname viene immesso nel tag "Table" della tabella HTML come attributo "class" parcolumnclasses array il cui attributo "length" stabilisce il numero delle colonne delle tabelle. I valori dell'array vengono applicati come attributo "class" nelle colonne delle tabelle (<td class=" ">). parcolumnids Array i cui valori vengono utilizzati insieme al parametro parrowid di seguito descritto per gli attributi "id" delle colonne delle tabelle. Il valore dell'attributo "id" viene generato dalla concatenazione di ColumnId e RowId (nella sequenza presentata). parheader array che contiene i titoli delle colonne della tabella Con l'ausilio dei parametri di trasferimento gli attributi "class" e "id" vengono impostati in modo tale che utilizzando gli style sheet possa essere impostato il layout della tabella. Manuale di programmazione, 04/

38 Interfaccia utente: L'interfaccia utente della classe ApplDataTable è costituita da una serie di funzioni di utilità generale in una pagina Web e dei rispettivi parametri di trasferimento e ritorno. addrow(parrowid,parrowclass) aggiunge una nuova riga alla tabella parrowid: viene applicato come valore per l'attributo iddella riga (<tr id=" ">) parrowclass: viene applicato come valore per l'attributo "class" della riga (<tr class=" ">) addelement(parelement,pardestructor,parcolspan,parcolclass) inserisce nella tabella l'elemento HTML trasferito con parelement. parelement elemento HTML che deve essere inserito nella tabella pardestructor (opzionale) Funzione che viene richiamata quando l'elemento HTML viene cancellato dalla tabella (in Internet Explorer è necessario per evitare memory leak). parcolspan (opzionale) Indica il numero delle colonne su cui l'elemento deve estendersi. parcolclass (opzionale) Con "parcolclass" la ColClass assegnata durante la creazione dell'oggetto ApplDataTablepuò essere sovrascritta nel caso in cui per l'elemento attuale vada impiegata una formattazione particolare. addvariable(parpath,parname,parcolspan,parcolclass) Inserisce una variabile nella tabella. Il valore delle variabili viene ciclicamente aggiornato. parpath Percorso delle variabili (ad es. "SIMOTION" o "SIMOTION diagnostics") parname Nome delle variabili (ad es. "var/userdata.user1") parcolspan (opzionale) Vedere addelement parcolclass (opzionale) Vedere addelement addtext(partext,parcolspan,parcolclass)inserisce un testo nella tabella. partext Il testo che deve essere inserito. parcolspan (opzionale) Vedere addelement parcolclass (opzionale) Vedere addelement 38 Manuale di programmazione, 04/2014

39 addremovebutton (parremovecb,parremovedata,parimage) Aggiunge un pulsante per rimuovere la riga attuale nella tabella. parremovecb(pardata) (opzionale) Parametro di trasferimento della funzione Callback. Dati che sono stati assegnati con il richiamo di addremovebutton. parremovedata (opzionale) Dati che vengono assegnati a parremovecb come parametri durante il richiamo. parimage: (opzionale) Parametro opzionale: Oggetto DOM di un elemento HTML img (ad es. generato da document.createelement("img")) che deve essere visualizzato come immagine sul pulsante addimage(parimage) Inserisce un'immagine nella tabella. parimage URL dell'immagine che deve essere inserita getvariables() fornisce un array di tutte le variabili della tabella. Ciascuna voce dell'array è costituita da un oggetto con gli elementi mitempath, mitemname, mitemhandle. addrefreshcb(parrefreshcb)registra una funzione Callback nell'oggetto della tabella che viene richiamata dopo la conclusione di un ciclo refresh; alla funzione Callback viene trasmesso un array di OPCItemValue-Objekten. OPCItemValue mitempath mitemname mitemhandle mitemvalue mitemresultid destructor() deve essere richiamato quando la tabella non è più necessaria. Abilita tutte le risorse riservate dalla tabella. In particolare, la subscription utilizzata dalla tabella viene terminata sul server OPC XML-DA. La funzione deve essere richiamata anche quando si chiude la pagina (onunload). Esempio: <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript" src="/appl.js"></script> <script type="text/javascript"> var gloappldatatable = null; function init() if (gloappldatatable == null) var tmpcolumnids = new Array("Name_0","Value_0", "Name_1","Value_1"); var tmpcolumnclasses = new Array("Name","Value", Manuale di programmazione, 04/

40 "Name","Value") var tmpheader = new Array("Name","Value", "Name","Value"); gloappldatatable = new ApplDataTable(document, "ReadTableClass", tmpcolumnclasses, tmpcolumnids, tmpheader); gloappldatatable.addrow("row_0","rowclass_0"); gloappldatatable.addtext("cpuload.percent"); gloappldatatable.addvariable("simotion diagnostics", "CPULoad.Percent"); gloappldatatable.addtext("user2"); gloappldatatable.addvariable("simotion", "var/userdata.user2"); gloappldatatable.addrow("row_1","rowclass_1"); gloappldatatable.addtext("user3"); gloappldatatable.addvariable("simotion", "var/userdata.user3"); gloappldatatable.addtext("user4"); gloappldatatable.addvariable("simotion", "var/userdata.user4"); gloappldatatable.addrow("row_2","rowclass_0"); gloappldatatable.addtext("user5"); gloappldatatable.addvariable("simotion", "var/userdata.user5"); gloappldatatable.addtext("user6"); gloappldatatable.addvariable("simotion", "var/userdata.user6"); gloappldatatable.addrow("row_3","rowclass_1"); gloappldatatable.addtext("user7"); gloappldatatable.addvariable("simotion", "var/userdata.user7"); gloappldatatable.addtext("user8"); gloappldatatable.addvariable("simotion", "var/userdata.user8"); gloappldatatable.addrow("time","time"); gloappldatatable.addtext("time",1,"time"); gloappldatatable.addvariable("simotion diagnostics", "DeviceInfo.Systemtime", 3,"Time"); var tmptableroot = document.getelementbyid("tableroot"); if (tmptableroot) tmptableroot.appendchild(gloappldatatable.mtable); function close() if (gloappldatatable!= null) gloappldatatable.destructor(); 40 Manuale di programmazione, 04/2014

41 </script> <style type="text/css"> table.readtableclass background-color:#ffffe0; border:1px solid black; border-collapse:collapse; th.name border:1px solid black; th.value border:1px solid black; td.name width:80px;border-right:1px solid black; td.value background-color:#ffffa0;width:120px; text-align:right; border-right:1px solid black;padding-right:15px; td.input width:200px; td.time border-top:1px solid black; tr.rowclass_0 background-color:#ffffd0;border:0px; tr.rowclass_1 background-color:#ffffb0;border:0px; #Name_1Row_2 background-color:#a0ffa0; </style> <title>table</title> </head> <body onload="init();" onunload="close();"> <div id="tableroot"></div> </body> </html> Nell'ultima sezione del codice sorgente viene dimostrato, attraverso il tag <style>, come sia possibile modificare la rappresentazione a colori delle righe delle tabelle e delle singole celle tramite una formattazione CSS. In tal caso, ad esempio, l'istruzione tr.rowclass_0 provvede a creare lo sfondo giallo nel richiamo gloappldatatable.addrow("row_0","rowclass_0"). ApplBrowser ApplBrowser consente il richiamo della famiglia delle variabili del controllore. Dopo aver creato un oggetto di questo tipo viene automaticamente avviato il primo processo Browse. Quando sono state ricevute le informazioni relative alla funzione Browse di una sottostruttura, viene dapprima richiamata la funzione callback parnewtreefct. Successivamente vengono richiamate in base al tipo di informazione (Node o Leaf) le funzioni callback parnewnodefct o parnewleaffct. Tutte le funzioni callback contengono come primo parametro un oggetto del tipo ApplBrowseElement. Interfaccia utente ApplBrowseElement: getelement() fornisce un oggetto Anchor HTML (<a >) per la rappresentazione delle informazioni setcb(parcb) Registra una funzione Callback sull'applbrowseelement-objekt, che viene richiamata quando un utente seleziona con un clic l'oggetto Anchor. Questa funzione contiene anche un oggetto ApplBrowseElement-Objekt come parametro di trasferimento. destructor() deve essere richiamata quando l'oggetto non è più necessario. Ciò vale anche quando si chiude la pagina (onunload). Manuale di programmazione, 04/

42 ApplBrowser(parDocument, paritempath, paritemname, parnewtreefct, parnewnodefct, parnewleaffct) Parametro di trasferimento: pardocument Documento JavaScript che viene utilizzato per la creazione di elementi paritempath, paritemname impostano il punto iniziale da cui sfogliare la famiglia delle variabili. parnewtreefct(parbackelement,paritempath,paritemname)funzione callback che viene richiamata quando inizia la creazione di una nuova sottostruttura. parbackelement Oggetto del tipo ApplBrowseElement Il contenuto descrive il nodo di avvio. Quando un utente seleziona con un clic l'anchor HTML di questo oggetto, l'elemento della sottostruttura precedente (se disponibile) viene individuato. paritempath,paritemname Percorso e nome della sottostruttura corrente parnewnodefct(parbrowseelement) Funzione callback che viene richiamata per un elemento Node parbrowseelement Oggetto del tipo ApplBrowseElement Il contenuto descrive un nodo. Quando un utente seleziona con un clic l'anchor HTML di questo oggetto, viene avviata una procedura per sfogliare la sottostruttura collegata a questo nodo. parnewleaffct(parbrowseelement) Funzione Callback che viene richiamata per un elemento Leaf parbrowseelement Oggetto del tipo ApplBrowseElement Il contenuto descrive un foglio. Interfaccia utente: destructor abilita tutte le risorse riservate dal browser Esempio: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " html4/strict.dtd"> <html> <head> <title>browser demo</title> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript" src="/appl.js"></script> <script type="text/javascript"> var globrowsetable = null; var globrowser = null; function additem(parbrowseelement) var tmpbodyelement = globrowsetable.firstchild; 42 Manuale di programmazione, 04/2014

43 var tmptablerowelement = document.createelement("tr"); var tmptabledataelement = document.createelement("td"); var tmplinkelement = parbrowseelement.getelement(); tmptabledataelement.appendchild(parbrowseelement.getelement()); tmptablerowelement.appendchild(tmptabledataelement); tmpbodyelement.appendchild(tmptablerowelement); function browse() var tmpnewtreefct = function(parbrowseelement,paritempath,paritemname) var tmpbrowsetablehook = document.getelementbyid("browsetable"); if (tmpbrowsetablehook.firstchild) tmpbrowsetablehook.removechild( tmpbrowsetablehook.firstchild); globrowsetable = document.createelement("table"); var tmpbodyelement = document.createelement("tbody"); globrowsetable.appendchild(tmpbodyelement); tmpbrowsetablehook.appendchild(globrowsetable); if (parbrowseelement) parbrowseelement.getelement().firstchild.nodevalue = "< " + parbrowseelement.getelement().firstchild.nodevalue; additem(parbrowseelement); alert("path: " + paritempath + "\nname: " + paritemname); ; var tmpnewnodefct = function(parbrowseelement) parbrowseelement.getelement().firstchild.nodevalue = "+ " + parbrowseelement.getelement().firstchild.nodevalue; additem(parbrowseelement); ; var tmpnewleaffct = function(parbrowseelement) var tmpcb = function(parbrowseelement) var tmptext = "Path: " + parbrowseelement.mitempath + "\n" + "Name: " + parbrowseelement.mitemname + "\n"; alert(tmptext); parbrowseelement.setcb(tmpcb); additem(parbrowseelement); ; globrowser = new ApplBrowser(document, "", "", tmpnewtreefct, tmpnewnodefct, tmpnewleaffct); function leave() Manuale di programmazione, 04/

44 if (globrowser) globrowser.destructor(); </script> </head> <body onload="browse();" onunload="leave();"> <div id="browsetable"></div> </body> </html> ApplBrowseTree ApplBrowseTree si basa sulla classe ApplBrowser e rappresenta il risultato della funzione sotto forma di struttura sfogliabile. ApplBrowseTree(parDocument, paritempath, paritemname, partableprefix, parleafcb, parnodecb, parbackcb, parfiltercb, parleafimg, parnodeimg, parbackimg) Parametro di trasferimento: pardocument Documento JavaScript che viene utilizzato per la creazione di elementi paritempath, paritemname Impostano il punto iniziale da cui sfogliare la famiglia delle variabili. partableprefix Prefisso per creare riferimenti degli elementi in CSS Funzione parleafcb Callback che viene richiamata quando si seleziona con un clic un Leaf. Funzione parnodecb Callback che viene richiamata quando si seleziona con un clic un Node. Ciascuna delle funzioni callback contiene come primo parametro un ApplBrowseElement. 44 Manuale di programmazione, 04/2014

45 Funzione parbackcb Callback che viene richiamata quando si seleziona con un clic il primo elemento della struttura gerarchica. parleafimg, parnodeimg, parbackimg Icone che vengono visualizzate prima di un elemento Back, Node o Leaf. Interfaccia utente: getelement() Fornisce un elemento Table che contiene i risultati della funzione Browse. destructor() Abilita la tabella e tutte le risorse ad essa collegate. Esempio: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " html4/strict.dtd"> <html> <head> <title>browse table demo</title> <style type="text/css"> table.browsetree table-layout:fixed; td.browsetreeimg0 width:20px; td.browsetreeimg1 width:20px; td.browsetreebrowse overflow:visible;text-align:left; a.refleaf cursor:pointer; a.refnode cursor:pointer; </style> <script type="text/javascript" src="/common.js"></script> <script type="text/javascript" src="/opcxml.js"></script> <script type="text/javascript" src="/appl.js"></script> <script type="text/javascript"> var globrowsetree = null; function browse() var tmpleafcb = function(parbrowseelement) var tmptext = "Path: " + parbrowseelement.mitempath + "\n" + "Name: " + parbrowseelement.mitemname + "\n"; alert(tmptext); var tmpfiltercb = function(parbrowseelement) var tmpitemname = parbrowseelement.mitemname; var tmppos = tmpitemname.indexof("unit/"); if (tmppos!= 0) tmppos = tmpitemname.indexof("to/"); if (tmppos!= 0) tmppos = tmpitemname.indexof("var/"); return (tmppos == 0); globrowsetree = new ApplBrowseTree(document, Manuale di programmazione, 04/

46 "SIMOTION", "", "BrowseTree", tmpleafcb, undefined, undefined, tmpfiltercb ); var tmpbrowsetreehook = document.getelementbyid("browsetree"); tmpbrowsetreehook.appendchild(globrowsetree.getelement()); function leave() if (globrowsetree) globrowsetree.destructor(); </script> </head> <body onload="browse();" onunload="leave();"> <div id="browsetree"></div> </body> </html> MiniWeb Server Language (MWSL) Funzionamento di MWSL Il Webserver Language è un linguaggio di script che viene interpretato sul server Web. Questo linguaggio script è piuttosto simile a JavaScript, ma rappresenta solo un piccolo sottoinsieme del complesso del linguaggio. Attraverso MWSL è possibile che il client operi con un semplice browser senza scripting, poiché il server Web genera le pagine dinamicamente. MWSL consente l'accesso e l'elaborazione di variabili. Tra l'altro MWSL offre la possibilità di accedere a variabili di processo che sono disponibili sul sistema del server Web. Queste possono quindi essere elaborate in modo eccellente con MWSL e il meccanismo di template integrato e valutate in modo adeguato. Il meccanismo di template utilizzato per la creazione delle pagine dinamiche somiglia a un processo XSLT molto semplificato. Vedere W3C XSL Trasformazione ( standards/xml/transformation) 46 Manuale di programmazione, 04/2014

47 Il Client interroga un URL sul server Web. L'indirizzo viene convertito dal server Web nell'accesso a un file MWSL. Da questo file, sul server Web viene generato dal service MWSL un file HTML temporaneo che poi viene inviato al client, dove è visualizzato. Nota Consenso di accesso alle variabili di processo L'accesso alle variabili di processo con le funzioni MWSL GetVar e SetVar richiede l'attivazione dell'impostazione Consenti OPC_XML (Carica simbologia in RT) in SCOUT. Ulteriori informazioni si trovano nel manuale SIMOTION IT Diagnostica e configurazione, nei capitoli "Accesso alle variabili globali (a partire da V4.2)" e "Rendere disponibili variabili Unit" Struttura di un file MWSL Essenzialmente un file MWSL è un file HTML che contiene tag MWSL aggiuntivi. Per distinguerli dai file HTML, per i file MWSL viene utilizzata l'estensione ".mwsl". Caricamento di pagine MWSL sul controllore (Pagina 14) Esempio: <HTML> <HEAD> </HEAD> <BODY> <table> <tr> [...] <td> <MWSL> //codice MWSL da eseguire </MWSL> </td> [...] <td> <MWSL> //codice MWSL da eseguire </MWSL> </td> [...] </tr> </table> </BODY> </HTML> Se è richiesta la funzionalità MWSL, è necessario aggiungere i seguenti tag: il tag <MWSL>- avvia uno script MWSL il tag </MWSL>- termina lo script Per motivi di chiarezza, nei seguenti esempi non viene riportato il codice HTML, ma si inizia direttamente con il tag "<MWSL>". Manuale di programmazione, 04/

48 Messaggi di errore Messaggi di errore dell'mwsl Gli errori che si verificano durante l'utilizzo di una pagina MWSL vengono segnalati in due modi diversi: 1. Gli errori che si verificano durante la compilazione del file MWSL vengono scritti nel file di registro. Il nome del file di registro viene formato aggiungendo l'estensione ".log" al nome del file. 2. Gli errori che si verificano durante l'esecuzione della pagina Web, e quindi al richiamo della pagina da parte del server, vengono scritti come messaggi di errore nel testo sorgente della pagina MWSL. Output degli errori nella pagina MWSL In Internet Explorer il testo sorgente di una pagina può essere caricato nell'editor tramite il tasto destro del mouse e la voce di menu Visualizza testo sorgente. Esempio In questo esempio viene dimostrato a quale commento porti l'interrogazione di una variabile non disponibile. exec.mwsl <html> <head> <title>simotion <MWSL> WriteVar("DeviceInfo.Board"); </MWSL> </title> <meta name="dc.subject" content="simotion"> <meta name="dc.publisher" content="siemens AG"> <meta name="dc.format" content="text/html"> <meta name="dc.language" content="en"> <meta name="dc.rights" content="copyrights Siemens AG 2003"> </head> <body style="font-family: Arial"> <p> <MWSL>WriteVar("var/userData.user8");</MWSL> </p> <p> <MWSL>WriteVar("var/userData.user9");</MWSL> </p> </body> </html> Nel file exec.mwsl con con la dichiarazione WriteVar("var/userData.user9"); viene interrogata una variabile non esistente. Testo sorgente della pagina emessa: <html> 48 Manuale di programmazione, 04/2014

49 <head> <title>simotion D435</title> <meta name="dc.subject" content="simotion"> <meta name="dc.publisher" content="siemens AG"> <meta name="dc.format" content="text/html"> <meta name="dc.language" content="en"> <meta name="dc.rights" content="copyrights Siemens AG 2003"> </head> <body style="font-family: Arial"> <p> </p> <p> <!-- MWSL2 Runtime Message (WARNING): Src Line# (MethodName) Source Text ============================== #(INTERPRETER) WriteVar("var/userData.user9");</MWSL> External function returned an error: E6B > </p> </body> </html> Il commento MWSL2 Runtime Message contiene una descrizione della causa dell'errore Tipi di variabili MWSL distingue tra variabili di script e variabili globali: Le variabili di script vengono definite all'interno dello script Le variabili globali vengono messe a disposizione da sorgenti di variabili Nota Le variabili globali non fanno parte dello script engine, ma sono informazioni provenienti dall'ambiente server Web. L'accesso alle variabili avviene esclusivamente tramite funzioni di accesso. Le variabili globali sono raggruppate a seconda della loro provenienza nelle sorgenti di variabili Variabili di script Le variabili di script sono variabili che sono valide soltanto sulla pagina attuale. Le variabili sono valide se passano per un tag MWSL, vale a dire che possono essere create in un tag MWSL e utilizzate soltanto nel tag MWSL successivo. In questo caso non si distingue tra tipi di variabili, ossia non esiste alcun Int o Char, Una variabile viene creata nel seguente modo: var <Variablenname> = <Wert>; Manuale di programmazione, 04/

50 Il tipo di variabile viene definito internamente tramite l'assegnazione delle variabili. Esempio: <MWSL> var string1 = "Hello"; var string2 = "World"; write(string1 + " " + string2); </MWSL> Nell'esempio mostrato sopra vengono create due variabili, string1 e string2. Le due stringhe vengono accostate l'una all'altra (con spazio). Con il comando write viene emesso il risultato. Vedere write (Pagina 123) Output: Hello World Esempio: <MWSL> var num1 = 5; var num2 = 7; var Result; Result = num1 + num2; </MWSL> Nell'esempio mostrato sopra vengono create due variabili, num1 e num2. I due numeri vengono sommati e il risultato viene memorizzato nella variabile Result. Result contiene il valore 12. La conversione del tipo di dati avviene analogamente all'ecma Script 262. Vedere ECMA Script ( Parola chiave var Con la parola chiave var viene introdotta una dichiarazione di variabile. Nello script ECMA le variabili non devono essere dichiarate esplicitamente. Sintassi: var VarName = InitalValue, VarName2 = InitialValue2, ; Vengono dichiarate più variabili e (in via opzionale) inizializzate con valori iniziali. È possibile introdurre più dichiarazioni separate dalla virgola. Per ulteriori informazioni si rimanda alla definizione di ECMA Script. 50 Manuale di programmazione, 04/2014

51 Campi di visibilità e di validità La visibilità e la validità di variabili è analoga a quella di ECMA Script (Tuttavia oggi MWSL non conosce alcuna funzione). Esempio: <MWSL> var MyVar = 10; MyVar = 20; write ("Inner:" + MyVar + "," ); write ("Outer:" + MyVar + "\n" ); </MWSL> Output: Inner: 20, Outer: 20 In questo esempio, nel blocco di istruzioni si accede alla variabile MyVar del livello esterno, poiché al livello del blocco di istruzioni non è stata dichiarata alcuna variabile con il nome MyVar. Pertanto l'istruzione MyVar = 20 modifica il valore della variabile del livello esterno. <MWSL> var MyVar = 10; var MyVar = 20; write ("Inner:" + MyVar + "," ); write ("Outer:" + MyVar + "\n" ); </MWSL> Output: Inner: 20, Outer: 10 In questo esempio, la variabile MyVar viene creata ex novo a livello interno; resta invariato il valore della variabile omonima MyVar del livello esterno Variabili globali Definizione Le variabili globali consentono l'accesso alla famiglia di variabili del server Web. Esistono diversi tipi di variabili globali: Le variabili PROCESS consentono l'accesso alle normali variabili del server Web. Questo è l'accesso standard. Le variabili DEFAULT sono identiche alle variabili PROCESS. Le variabili URLsono funzionali all'accesso a una variabile contenuta in un URL. Le variabili HTTP forniscono il contenuto delle variabili dell'header HTTP. Le variabili COOKIE consentono l'accesso ai cookie. L'accesso ad una variabile può essere eseguito con il seguente comando: GetVar("var/userData.user1", "PROCESS"); Manuale di programmazione, 04/

52 La sorgente di variabili PROCESS deve essere scritta in maiuscolo. Se la variabile var/ userdata.user1 non è presente, viene fornito il valore "null". PROCESS è la sorgente di variabili standard. Pertanto è anche possibile tralasciare PROCESS. GetVar("var/userData.user1"); Se ci si deve rivolgere direttamente a una variabile Provider, invece della sorgente di variabili PROCESS può essere indicato anche il nome del provider desiderato. Stringa di formato per le funzioni GetVar e WriteVar La stringa di formato inizia sempre con un carattere %, seguito dall'indicazione del numero di caratteri. Successivamente viene indicata anche l'indicazione di tipo. Esistono le seguenti indicazioni di tipo: %d per valori Integer %f per valori Float %e per la rappresentazione del valore con esponente %s per stringhe Esempi GetVar("var/systemClock", "PROCESS", "%d"); GetVar("var/modeOfOperation", "PROCESS", "%s"); Tabella 3-1 Esempio "%.6s" "%.3s" "%.s" "%3.2f" "%4d" Stringhe di formato Significato Emette come output i primi 6 caratteri della variabile indicata (come stringa). Emette come output i primi 3 caratteri della variabile indicata (come stringa). Emette come output la variabile completa (come stringa). Emette come output la variabile interpretata come Float. Il numero 3 indica che vengono emesse come output 3 cifre complessive. Il numero 2 indica che, delle 3 cifre, 2 vengono visualizzate come cifre decimali. Emette come output la variabile interpretata come Integer. Vengono emesse come output 4 cifre. Questo parametro può essere assegnato soltanto se è stata assegnata la sorgente di variabili "PROCESS". Se la stringa di formato viene tralasciata, viene restituito il contenuto completo delle variabili. I numeri Float sono arrotondati durante l'output. In questo modo, il numero PI con la formattazione "%4.3f" viene emesso come 3,142. Vedere anche GetVar (Pagina 113) WriteVar (Pagina 124) 52 Manuale di programmazione, 04/2014

53 Variabili speciali Tramite la sorgente di variabili HTTP è possibile richiedere il valore della variabile speciale Username. GetVar("Username", "HTTP") Questo richiamo di GetVar restituisce l'utente attualmente connesso al server web. La variabile speciale HTTP fornisce informazioni sulla connessione HTTP. GetVar( "HTTP", "HTTP") Output: Host: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 28.0) Gecko/ Firefox/28.0Accept: text/html,application/xhtml +xml,application/xml;q=0.9,*/*;q=0.8accept-language: de,en- US;q=0.7,en;q=0.3Accept-Encoding: gzip, deflatereferer: /index.mwslConnection: keep-alive Costanti di configurazione Accesso a costanti del file di configurazione WebCfg.xml Sussiste la possibilità di creare variabili costanti in WebCfg.xml. L'accesso a queste costanti consente una programmazione più flessibile, per comandare pagine definite dall'utente attraverso appositi parametri di configurazione. La definizione di una costante avviene nella seguente sezione di WebCfg.xml: /SERVERPAGES/CONFIGURATION_DATA/UserConfig <SERVERPAGES> <CONFIGURATION_DATA> <USERCONFIG> <MyParam>MyParamValue</MyParam> </USERCONFIG> </CONFIGURATION_DATA> </SERVERPAGES> L'accesso in una pagina HTML alla costante MyParam è possibile indicando il percorso "constants/myparam". <html> <head> </head> <body style="font-family: Arial"> <table width="100%" height="100%" bgcolor="#00349a"> <tr> <td style="color: #FFFFFF"> <b><mwsl>writevar("constants/myparam");</mwsl></b> </td> </tr> </table> Manuale di programmazione, 04/

54 </body> </html> Risultato: <html> <head> </head> <body style="font-family: Arial"> <table width="100%" height="100%" bgcolor="#00349a"> <tr> <td style="color: #FFFFFF"> <b>myparamvalue</b> </td> </tr> </table> </body> </html> Variabili e parametri URL MWSL offre la possibilità di elaborare valori di parametri URL attraverso le funzioni WriteVar, GetVar, SetVar e ExistVariable. Esempio di un URL con parametri annessi. L'interruzione è stata introdotta per una migliore leggibilità: Parameter1=Hallo&Parameter2=du!&StartValue=2&EndValue=5 L'URL indica la pagina StringOperationtest.mwsl e trasferisce i parametri Parameter1, Parameter2, StartValue e EndValue. Il comando seguente emette la variabile URL Parameter1: WriteVar("Parameter1", "URL"); Osservare che è obbligatorio che "URL" sia scritto in maiuscolo. Se viene richiamata una variabile URL che non è presente nell'url, viene restituita essenzialmente una stringa vuota (""). Questa risposta non è un errore di script. Parametri in URL In un URL l'assegnazione di parametri inizia dopo il carattere '?'. I singoli parametri vengono separati dal carattere '&'. L'assegnazione del valore avviene dopo il carattere '='. Determinati caratteri necessitano di una codifica per essere assegnati correttamente. La tabella sottostante presenta una panoramica dei codici Escape utilizzati più di frequente: 54 Manuale di programmazione, 04/2014

55 Tabella 3-2 Codici Escape URL Carattere Codice Escape Spazio %20 < %3C > %3E # %23 % %25 %7B %7D %7C \ %5C ^ %5E ~ %7E [ %5B ] %5D ` %60 ; %3B / %2F? %3F : %40 = %3D & %26 $ %24 La codifica si compone del carattere '%' seguito dal valore esadecimale ASCII del carattere desiderato. Per maggiori informazioni vedere in Internet, ad es. all'indirizzo COOKIES Nell'esempio seguente viene mostrato come è possibile creare un cookie in un file MWSL. A questo scopo, inserire nel tag <HEAD> il tag <META>: http-equiv="set-cookie" content="siemens_automation_language=de;" Esempio: <HTML> <HEAD> <META http-equiv="set-cookie" content="siemens_automation_language=de;"> </HEAD> <BODY> [...] Manuale di programmazione, 04/

56 </BODY> </HTML> Per ulteriori informazioni su Cookies: Impostazione di un cookie come header HTTP Da MWSL è possibile impostare un'intestazione HTTP per la risposta HTTP. Ad esempio, in questo modo è possibile ottenere l'impostazione di un cookie anche tramite intestazione HTTPe non come tag <META>. Esempio: <MWSL> var strcookie; strcookie = "Set-cookie: siemens_automation_language="; strcookie = strcookie + GetVar( "Language", "URL"); strcookie = strcookie + ", path=/\r\n"; AddHTTPHeader( strcookie ); write("http lang: " + GetVar("Cookie", "HTTP")); </MWSL> In questo esempio un cookie viene impostato per il riconoscimento della lingua impostata Variabili e l'accesso a COOKIES L'accesso avviene in modo simile all'accesso per i parametri URL. L'unica differenza è che il tipo di variabile ora è COOKIE e non più URL. L'accesso alla variabile indicata nell'esempio può ad es. essere effettuato con il seguente comando: GetVar("siemens_automation_language", "COOKIE"); È da osservare che COOKIE deve essere scritto necessariamente in maiuscolo. Se ad es. COOKIE siemens_automation_language è impostato su en, il richiamo sopra citato restituirebbe questo valore. Per ulteriori informazioni su Cookies: Se la variabile non è disponibile, non si verifica alcun output Variabili e indicazioni header HTTP Con l'ausilio della sorgente di variabili HTTP vengono letti i valori dei campi di intestazione richiesta HTTP. Questi sono ad es. Accept, Content-Type o User-Agent. Tabella 3-3 Esempio di output di un campo di intestazione HTTP WriteVar("User-Agent", "HTTP"); Output del browser Mozilla Firefox: 56 Manuale di programmazione, 04/2014

57 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/ Firefox/25.0 Tabella 3-4 Esempio della generazione di un HTTP HEADER con il tag HTML META Esempio: <HTML> <HEAD> [...] <META http-equiv="accept-language" content="de"> [...] </HEAD> <BODY> [...] </BODY> </HTML> In questa esempio viene definita nel META tag la variabile HTTP Accept-Language tramite il comando "http-equiv="accept-language". Viene inizializzata attraverso l'attributo content con il valore de. Per ulteriori informazioni sulle indicazioni META: meta.htm#allgemeines L'accesso a queste variabili avviene in modo simile all'accesso per i parametri URL. La differenza è che la sorgente di variabili è HTTP e non URL. L'accesso alla variabile indicata nell'esempio può essere effettuato con il seguente comando : GetVar("Accept-Language", "HTTP"); La sorgente di variabili HTTP deve essere scritta in maiuscolo. Stringa di formato per le funzioni GetVar e WriteVar Quale terzo parametro delle funzioni GetVar e WriteVar è possibile specificare una stringa di formato. La stringa di formato definisce da quale posizione quanti caratteri della sorgente di variabili devono essere restituiti. GetVar("Accept-Language", "HTTP", "[3,5]") Nell'esempio precedente, 5 caratteri della variabile HTTP Accept-Language vengono restituiti a partire dal terzo carattere. Questa stringa di formato può essere assegnata soltanto se è stata assegnata anche una sorgente di variabili HTTP. Se la stringa di formato viene tralasciata, viene restituito il contenuto completo delle variabili. Vedere anche Variabili globali (Pagina 51) GetVar (Pagina 113) WriteVar (Pagina 124) Manuale di programmazione, 04/

58 Operatori Operatori di MWSL Tutti gli operatori qui presentati si comportano come definito in ECMA 262. Per ulteriori informazioni consultare la specifica ECMA 262. I valori booleani vengono eventualmente trasformati nei valori numerici 0 (per false) e 1 (per true) Tabella 3-5 Operatori di confronto Operatore x < y x <= y Nota Questo operatore restituisce true se la variabile x è minore della variabile y. Altrimenti il valore di ritorno è false. Questo operatore restituisce true se la variabile x è minore della, o uguale alla, variabile a destra y. Altrimenti il valore di ritorno è false. x > y Questo operatore restituisce true se la variabile x è maggiore della variabile y. Altrimenti il valore di ritorno è false. x >= y x == y x!= y Questo operatore restituisce true se la variabile x è maggiore della, o uguale alla, variabile y. Altrimenti il valore di ritorno è false. Questo operatore restituisce true se la variabile x è uguale alla variabile y. Altrimenti il valore di ritorno è false. Questo operatore restituisce true se la variabile x è diversa dalla variabile y. Altrimenti il valore di ritorno è false. Tabella 3-6 Operatori logici Operatore Nota!x NOT logico x && y x y Questo operatore restituisce false se x è true. Se x è false, il valore di ritorno dell'operatore è true. AND logico Questo operatore restituisce true se x e y hanno il valore true. Altrimenti il valore di ritorno è false. OR logico Questo operatore restituisce false se x e y hanno un valore false. Altrimenti il valore di ritorno è true. 58 Manuale di programmazione, 04/2014

59 Tabella 3-7 Operatori oggetto Operatore new delete Nota Generazione di un oggetto Questo operatore genera un oggetto. L'oggetto può essere del tipo integrato o definito dall'utente. Eliminazione di un oggetto Questo operatore elimina un oggetto generato con new. Tabella 3-8 Operatori a bit Operatore x & y x y x ^ y x >> y x >>> y x << y Nota AND a bit Se su una posizione bit x e y sono identici, questa posizione bit assume il valore uno. Vengono verificate tutte le posizioni bit. OR a bit Se su una posizione bit x o y sono identici, questa posizione bit assume il valore uno. Vengono verificate tutte le posizioni bit. XOR a bit ~x NOT a bit Se su una posizione bit x o y sono identici ma non lo sono entrambi gli operatori, questa posizione bit assume il valore uno. Vengono verificate tutte le posizioni bit. Shift logico a destra con considerazione del segno In x i bit vengono spostati a destra nella misura di y posizioni. Con x positivo vengono aggiunti a sinistra gli zero e con x negativo gli uno. Shift logico a destra con considerazione del segno In x i bit vengono spostati a destra nella misura di y posizioni. A sinistra vengono aggiunti gli zero. Shift logico a sinistra In x i bit vengono spostati a sinistra nella misura di y posizioni. A destra vengono aggiunti gli zero. Inverte i bit di x. Tabella 3-9 Operatore x + y ++x x y --x x / y Operatori di calcolo Nota Operatore più Questo operatore aggiunge x e y. Incremento Aumenta il valore di x di uno. È possibile x++ o ++x. Operatore meno Questo operatore detrae il valore y da x. Decremento Diminuisce il valore di x di uno. È possibile x-- o --x. Questo operatore divide x per y. Il valore di ritorno è float. Manuale di programmazione, 04/

60 Operatore Nota x % y Modulo Questo operatore restituisce il resto a numero intero di una divisione di x e y. x * y Questo operatore moltiplica x per y. Tabella 3-10 Operatori di assegnazione Operatore x = y x += y x -= y x *= y x /= y x ^= y x = y x &= y x %= y x >>= y x <<= y Nota Operatore di assegnazione Questo operatore assegna a x il valore dell'espressione a destra della variabile y. Somma Assegna a x il valore di x + y. Sottrazione Assegna a x il valore di x y. moltiplicazione Assegna a x il valore di x * y. Divisione Assegna a x il valore di x / y. OR a bit Assegna a x il valore di x ^ y. OR a bit Assegna a x il valore di x y. AND a bit Assegna a x il valore di x y. Modulo Assegna a x il resto a numero intero di una divisione per y. Shift logico a destra bit per bit Assegna a x il valore di x >> y. Shift logico a sinistra bit per bit Assegna a x il valore di x << y. Tabella 3-11 Operatore condizionale Operatore Condizione? x : y Nota Operatore condizionale Questo operatore ha il valore x, se la condizione è true. Altrimenti il valore dell'operatore è y. 60 Manuale di programmazione, 04/2014

61 Istruzioni condizionate if Condizioni Con if viene realizzata una condizione come la si conosce da Ecma Sintassi if(<condizione>) Istruzione1 else Istruzione2; Se la condizione è vera, allora viene svolta l'istruzione 1. Se la condizione non è vera, allora viene svolta l'istruzione 2. Se non è presente la parte else, dopo l'istruzione if si prosegue oltre. Esempio: <MWSL> [...] if (ExistVariable("Parameter", "PROCESS")) WriteVar("Parameter"); [...] </MWSL> Se esiste la variabile di processo Parameter, viene emesso come output il suo contenuto. In caso contrario, l'istruzione viene saltata e l'esecuzione del programma prosegue. Nell'esempio sopra si tratterebbe del codice che segue dopo la parentesi graffa chiusa. Se è presente una parte else, questa viene eseguita se la condizione non è soddisfatta. Esempio: <MWSL> [...] if (ExistVariable("Parameter") && GetVar("Parameter")>=3) write("il valore della variabile di processo Parameter è:"); WriteVar("Parametro"); write("questo è un valore valido!"); else write("la variabile di processo Parameter non è consentita o non è presente"); [...] </MWSL> Se la variabile "Parameter" non è presente, viene eseguita la parte else. Successivamente viene emesso un messaggio indicante che non esiste alcuna variabile con il nome indicato. Come mostrano gli esempi, è possibile sostituire un'istruzione con un blocco di istruzioni. Un blocco di istruzioni è un elenco di istruzioni racchiuso tra parentesi graffe. Manuale di programmazione, 04/

62 Esempio: <MWSL> [...] if (ExistVariable("Parameter") && GetVar("Parameter")>=3) WriteVar("Parameter"); else write("la variabile di processo Parameter non è consentita o non è presente"); [...] </MWSL> Se la variabile di processo Parameter non esiste, e il contenuto è maggiore o uguale a 3, questo viene emesso come output. In caso contrario viene emesso un output corrispondente. Condizione switch L'istruzione switch consente di confrontare una <espressione> con molte condizioni <valore1>, <valore2> ecc.. switch (<espressione>) case <valore1>: //blocco di programma break; case <valore2>: //blocco di programma break; //ecc. default: //blocco di programma Loop Loop for MWSL offre un meccanismo di loop così come lo si conosce da Javascript. Per una descrizione dettagliata si rimanda alla specifica ECMA Sintassi for( Istruzione di inizio; condizione di fine; istruzione di svolgimento) Corpo del loop, codice da eseguire Svolgimento: 62 Manuale di programmazione, 04/2014

63 1. Viene eseguita l'istruzione di inizio. 2. Viene eseguito il corpo del loop. 3. Viene eseguita l'istruzione di svolgimento. 4. Viene ripetuta l'elaborazione a partire dal corpo del loop (2.), finché la condizione di fine è vera. Esempio: for(i=1; i<5; i++) write(i); Output: 1234 Loop do while Con il loop do while viene prima eseguito il corpo del loop e poi verificata la <condizione> while. do //blocco di istruzioni while (<condizione>); break continue Per l'interruzione e la continuazione dell'esecuzione del loop sono disponibili le istruzioni break e continue. Con l'istruzione break si esce dal loop immediatamente e senza ulteriore verifica della <condizione>. L'istruzione continue salta immediatamente all'inizio del loop Funzioni Una funzione autodefinita è costituita dall'istruzione di funzione e da un blocco di programma di istruzioni. Non è possibile trasferire altri o più parametri. Un <Wert> può essere restituito. Se non viene specificato un valore di ritorno, viene restituita la funzione undefined. Manuale di programmazione, 04/

64 function nome della funzione([<parametro1>, <parametro2>,...]) //blocco di programma return <Wert>; Commenti In MWSL i commenti possono essere di una o più righe. // Commento di una riga. Vengono ignorati tutti i caratteri fino all'interruzione di riga. /* I commento di più righe inizia con '/*' e deve terminare con '*/'. */ Panoramica delle funzioni di MWSL MWSL mette a disposizione numerose funzioni di cui la tabella seguente ne è una panoramica. Descrizioni dettagliate delle funzioni si trovano nell'allegato. Tabella 3-12 Funzioni MWSL Nome della funzione AddHTTPHeader(<intestazione Http>) (Pagina 109) createguid() (Pagina 109) DecodeString(<stringa di caratteri>) (Pagina 110) die(<param0>,<param1>,...) (Pagina 110) EncodeString(<stringa di caratteri>) (Pagina 111) ExistFile(<nome file>) (Pagina 111) ExistVariable(<nome di variabile>, <sorgente di variabili>) (Pagina 112) GetLanguage() (Pagina 112) GetVar(<nome di variabile>, <sorgente di variabili>, <stringa di formato>) (Pagina 113) InsertFile(<file di testo>) (Pagina 115) Descrizione Inserire <Header Http> in una pagina. Genera un ID alfanumerico, univoco nel sistema. Ripristina allo stato originale una stringa codificata con EncodeString. Interruzione dell'elaborazione del programma. Sostituisce gli accenti e i caratteri speciali con il rispettivo valore esadecimale (%hh) a codifica URL. Verifica se esiste un file con il nome <parfilename>. La funzione restituisce la lunghezza file come valore di ritorno. Interrogazione sulla presenza di una variabile. Ripristina in inglese la lingua attualmente impostata. Restituzione del valore di una variabile della relativa sorgente di variabili Importazione di un <file di testo>. È possibile indicare il percorso. 64 Manuale di programmazione, 04/2014

65 Nome della funzione IsAuthAlgo(<parAuthMethod>) (Pagina 116) isfinite(<valore>) (Pagina 116) isnan(<valore>) (Pagina 116) IsSSL() (Pagina 117) parsefloat(<stringa di caratteri>) (Pagina 117) parseint(<valore>,[<base>]) (Pagina 117) ProcessXMLData(<DATA>, <TEMPLATE>) (Pagina 119) string ReadFile(<nome file>) (Pagina 120) ReplaceString<nome variabile>,<criterio di ricerca>,<sostituzione>) (Pagina 121) SetVar(<nome di variabile>, <valore>) (Pagina 121) ShareRealm(<nome gruppo>) (Pagina 121) write(<testo>) (Pagina 123) WriteToTab(<parTabPos>, <parfillchar>) (Pagina 123) WriteVar(<nome di variabile>, <sorgente di variabili>, <stringa di formato>) (Pagina 124) WriteXMLData( <DATA>, <TEMPLATE>) (Pagina 126) Descrizione Restituisce true se è stato possibile identificare l'utente connesso al momento del richiamo tramite il metodo di autenticazione specificato da parauthmethod. Restituisce false se il valore trasmesso è NaN o infinito. Verifica se il valore trasferito e un Double valido. Restituisce true se il client è collegato tramite una connessione SSL con il server. Conversione di una stringa di caratteri in un valore Double. Conversione di una stringa di caratteri in un valore integer. Generazione di file HTML dinamici con file XML speciali. Restituisce il contenuto del file come valore di ritorno. Sostituzione di stringhe di caratteri secondo il criterio di ricerca. Imposta valori di variabili. Indica se l'utente attuale è un membro del gruppo assegnato come parametro. Il valore di ritorno può essere true o false. Scrive stringhe di <testo> nella pagina HTML. <testo> può anche essere il valore di ritorno di funzioni. Scrittura di <parfillchar> fino alla posizione <partabpos>. Output di un valore di variabile. La sintassi è identica a quella della funzione GetVar(). Emette direttamente come output i dati al contrario di ProcessXMLData(). Tabella 3-13 Variabili Process MWSL Variabile Process NodeIndex (Pagina 127) NodeLevel (Pagina 128) Descrizione Variabile Process per il parsing del template. Questa variabile emette come output il numero di nodi già eseguiti. Variabile Process per il parsing del template. Questa variabile emette come output il livello gerarchico del nodo attuale Funzionamento del meccanismo di template Un Template è un modello che viene utilizzato su elementi di dati provenienti da una sorgente di dati. Con questo meccanismo esiste la possibilità di realizzare dati ed elaborazione separatamente gli uni dall'altra. Manuale di programmazione, 04/

66 Il meccanismo di Template- viene avviato con i comandi ProcessXMLData() e WriteXMLData(). Figura 3-13 Panoramica generale del meccanismo di template Nel file di dati si trovano dati strutturati che possono essere emessi come output trasformati dal meccanismo di Template-. Un file XML consiste in una serie di nodi XML. A ciascun nodo XML è associato un nome e un certo numero di attributi. Un attributo è costituito a sua volta da un nome e un valore. Il file Template contiene una quantità di istruzioni di trasformazione. A un nodo XML (con un certo nome) può essere associata un'istruzione di trasformazione. Durante il processo di trasformazione il frammento di dati viene letto dall'alto verso il basso nodo per nodo. Se è possibile assegnare un Template a un nodo, tale Template viene eseguito e gli attributi del nodo attuale sono a disposizione del Template come variabili Struttura del file template Il file Template è un file XML i cui nodi di dati contengono l'istruzione di trasformazione per l'elaborazione di un file di dati. Esempio <?xml version="1.0"?> <TEMPLATES> [...] <TEMPLATE NAME="Variable"> [...] <POSITION NAME="LINE"> <![CDATA[ 66 Manuale di programmazione, 04/2014

67 [...] <MWSL>Name()</MWSL> [...] ]]> </POSITION> [...] </TEMPLATE> [...] </TEMPLATES> Il file Template valuta i nodi di dati del file di dati. Nel tag <TEMPLATES> vengono definiti i singoli tag Template (nell'esempio sopra soltanto uno). Con la riga <TEMPLATE NAME="Variable"> viene definito che questo Template (il codice seguente) viene eseguito soltanto per nodi di dati del tipo "Variable". Il tipo di un nodo di dati viene stabilito attraverso il nome del nodo di dati oppure attraverso un attributo speciale con il nome "Template". <POSITION NAME="LINE"> [...] </POSITION> Con questo tag viene stabilito in quale area della pagina Web deve essere emesso come output il contenuto del template. Vi sono le posizioni HEAD, LINE e FOOT che vengono eseguite durante l'elaborazione nella sequenza indicata. Il contenuto della POSITION viene incapsulato in un blocco CDATA- per proteggerlo dal parser XML: <![CDATA[ [...]]]> Con l'ausilio di MWSL è ora possibile accedere agli attributi del nodi di dati attuale ed emetterli come output o utilizzarli in altre operazioni. Esempio: <MWSL> WriteVar("Name")</MWSL> Manuale di programmazione, 04/

68 Struttura di una sorgente di dati Una sorgente di dati è un frammento XML in cui i nodi del frammento XML formano gli elementi di dati. Nota Se il frammento XML non contiene alcun nodo Root, lo stesso MWSL lo genera affinché la sorgente dei dati diventi conforme a XML. Il frammento XML può essere anche un documento XML completo. Esempio: <?xml version="1.0" standalone="yes"?> [...] <Variable Name="ZUFUEHRUNG.STATE" Type="String" InitialValue="good" Behavior="Manual" Description="Stato dell'afflusso di parti." /> [...] <Variable Name="Language" Type="String" InitialValue="de_DE" Behavior="Manual" Description="Impostazione della lingua della pagina Web" /> [...] L'esempio definisce nodi di dati (nell'esempio Variable) con i relativi attributi. I diversi nodi possono essere valutati con un file template corrispondente. Un'ulteriore possibilità consiste nella creazione di una struttura di dati (gerarchia), vale a dire che si possono creare nodi di dati che contengono altri nodi di dati. Esempio: <?xml version="1.0" standalone="yes"?> [...] <StructVariable Name="Farbe" Type="String" InitialValue="gelb" Behavior="Manual" Description="Valore fittizio"> [...] <Subvar Name="Rotteil" Type="Integer" InitialValue="128" Behavior="Manual" Description="La percentuale di rosso del colore" /> <Subvar Name="Blauteil" Type="Integer" InitialValue="128" 68 Manuale di programmazione, 04/2014

69 Behavior="Manual" Description="La percentuale di blu del colore" /> <Subvar Name="Gruenteil" Type="Integer" InitialValue="128" Behavior="Manual" Description="La percentuale di verde del colore" /> [...] </StructVariable> [...] In questo esempio è presente il nodo di dati del tipo StructVariable. Tale nodo di dati contiene più nodi di dati del tipo Subvar. Per i tipi differenti di nodi di dati è possibile utilizzare template diversi Trasformazione del template Il comando ProcessXMLData() genera dinamicamente, da un file XML dati e da un file XML template, un file HTML (o anche solo un frammento di testo). A tal fine il parser esamina il file di dati dall'alto verso il basso passo per passo, Il parser carica un nodo di dati. quindi nel file template viene cercato il template adatto per questo nodo di dati. Se viene trovato un template, questo viene utilizzato sul nodo di dati. Il template è un frammento MWSL. L'unica differenza è che gli attributi del nodo di dati XML nel template sono a disposizione come normali variabili di processo, se non è indicata alcuna sorgente di variabili. In caso di identità di nome gli attributi XML sovrascrivono le corrispondenti variabili di processo. Se viene indicata in modo esplicito la sorgente di variabili PROCESS, vengono utilizzate sempre le variabili di processo. Esempio: Prozessvariable Color Value "Green" File di dati: <?xml version="1.0" standalone="yes"?> [...] <Variable Name="ZUFUEHRUNG.STATE" Farbe="Red" /> [...] <Variable Name="Language" /> [...] File template: <?xml version="1.0"?> <TEMPLATES> <TEMPLATE NAME="Variable"> Manuale di programmazione, 04/

70 <POSITION NAME="LINE"> <![CDATA[ <MWSL>write (GetVar("Name")+":");</MWSL> <MWSL>write (GetVar("Color")+"\r\n");</MWSL> ]]> </POSITION> </TEMPLATE> </TEMPLATES> Output: ZUFUEHRUNG.STATE: Red Language: Green Svolgimento di un Template-processo Source Template <APPMENU> <BUTTON NAME = "Menu1" LABEL = "Call Page" TITLE = "Calls a.."/> <BUTTON NAME = "Menu2" LABEL = "File Access 1" TITLE = "Access a.." STATUS = "Access.."/> </APPMENU> <TEMPLATES> <TEMPLATE NAME="BUTTON"> <POSITION NAME="LINE"> <![CDATA[ <TR> <TD> <INPUT CLASS = "MainMenu" TYPE = "BUTTON" TITLE = "%=TITLE%" VALUE = "%=LABLE%" </TD> </TR> ]]> </POSITION> </TEMPLATE> </TEMPLATES> L'immagine mostra lo svolgimento del processo Template Parse-. Per ciascun elemento dei dati (blocchi gialli e verdi) viene eseguito una volta il rispettivo Template. Durante ciò, gli attributi dell'elemento dei dati attuale sono ottenibili come variabili. Sequenza temporale 1. In Source viene trovato il tag <APPMENU> e viene eseguito il Template. Nel Template non viene trovata nessuna istruzione di elaborazione per questo tag e per questo non viene scritto nessun elemento dati nell'output. 2. Il primo tag <BUTTON> viene trovato ed elaborato dal Template. 3. Il secondo tag <BUTTON> viene trovato ed elaborato dal Template. 4. Non vengono trovati altri tag, l'elaborazione è terminata. Un altro esempio: File MWSL chiamante <HTML> 70 Manuale di programmazione, 04/2014

71 > <HEAD> <TITLE> MWSL Template Test Page </TITLE> </HEAD> <BODY > <MWSL> write(processxmldata( "<EXTERNAL SRC=\"/FILES/MWSL/variables.xml \"/>", "<TEMPLATES><EXTERNAL SRC=\"/FILES/MWSL/variablesTemplate.xml\"/ ); </MWSL> </BODY> </HTML> </TEMPLATES>") variables.xml <?xml version="1.0" standalone="yes"?> <Provider Name ="MyVarProvider"> <Variable Name="ZUFUEHRUNG.STATE" Type="String" InitialValue="good" Behavior="Manual" Description="Stato dell'afflusso di parti." /> <Variable Name="Language" Type="String" InitialValue="de_DE" Behavior="Manual" Description="Impostazione della lingua della pagina Web" /> </Provider> <!-- End of File --> variablestemplate.xml <?xml version="1.0"?> <TEMPLATES> <TEMPLATE NAME="Provider"> <POSITION NAME="HEAD"> <![CDATA[ <TABLE BORDER="1"> <TR> <TH> Variablenname </TH> </TR> ]]> </POSITION> <POSITION NAME="FOOT"> <![CDATA[ <TR> <TD> <MWSL><!--GetVar("Name");--></MWSL> </TD> Manuale di programmazione, 04/

72 </TR> </TABLE> ]]> </POSITION> </TEMPLATE> <TEMPLATE NAME="Variable"> <POSITION NAME="LINE"> <![CDATA[ <TR> <TD> <MWSL> <!-- GetVar("Name"); --> </MWSL> </TD> </TR> ]]> </POSITION> </TEMPLATE> </TEMPLATES> Tramite il richiamo del comando ProcessXMLData il parser inizia con il file di dati variables.xml. Il tag <Provider> viene trovato per primo. Nel file template variablestemplate.xml si effettua una ricerca per verificare se è stato definito un template per questo tipo. L'area Position="HEAD" viene eseguita. Il parser legge il tag successivo dal file di dati e sulla base del relativo template nel file template genera le successive righe del file HTML da emettere. Lo stesso accade al tag successivo. Con il tag finale </Provider> viene eseguito il piè di pagina del template provider. Nell'espressione seguente le parti generate sono scritte in grassetto. File generato: <HTML> <HEAD> <TITLE> MWSL Template Test Page </TITLE> </HEAD> <BODY > <TABLE BORDER="1"> <TR> <TH>Variablenname</TH> </TR> <TR> <TD>ZUFUEHRUNG.STATE</TD> </TR> <TR> <TD>Language</TD> </TR> <TR> 72 Manuale di programmazione, 04/2014

73 <TD>Hallo</TD> </TR> </TABLE> </BODY> </HTML> MWSL in attributi XML Nell'ambito del parsing del template è opportuno scrivere anche dichiarazioni in attributi XML del file di dati MWSL- che devono essere valutate al momento del parsing. Esempio: <?xml version="1.0" standalone="yes"?> <Motor Name="M1" Nummer="1" Type="Dreh" Nennleistung = "7" Drehzahl="3" Alter="2" Farbe="RED" Prozess="&MWSL;WriteVar("CPULoad.Percent","PROCESS&qu ot;, "%e"); &END_MWSL;" /> Nell'esempio viene utilizzato il seguente comando MWSL: "&MWSL;WriteVar("CPULoad.Percent","PROCESS"," %e"); &END_MWSL;" Il comando in un file template o in un file MWSL apparirebbe così: <MWSL>WriteVar("CPULoad.Percent", "PROCESS", "%e");</mwsl> Questo comando emette il valore delle variabili CPULoad.Percent della sorgente di variabili PROCESS. In tal caso, prestare attenzione al fatto che <MWSL> va sostituito con &MWSL; e </MWSL> con &END_MWSL;. Inoltre le doppie virgolette " devono essere sostituite da ". Il resto corrisponde alla sintassi MWSL Esempi Esempi di utilizzo di MWSL Gli esempi qui mostrati illustrano le possibilità del comando MWSL. Manuale di programmazione, 04/

74 Impostazione dei valori delle variabili con la funzione SetVar <MWSL> SetVar(GetVar("VARNAME"), GetVar(GetVar("VARNAME"), "URL")); </MWSL> In questo esempio la variabile il cui nome è memorizzato nella variabile di processo VARNAME viene inizializzata con il valore delle variabili URL VARNAME. Per chiarezza GetVar("VARNAME") fornisce il contenuto delle variabili di processo VARNAME. Questo valore viene visto a sua volta come nome di variabile. Se si suppone che la variabile di processo VARNAME contenga "Mario", l'intero richiamo si presenta già molto più semplice: Richiamo complessivo: SetVar("Mario", GetVar("Mario", "URL")); Posto che la variabile URL "Mario" abbia come contenuto "è un bravo ragazzo", ciò equivarrebbe all'espressione seguente: SetVar("Mario", "è un bravo ragazzo"); TestTemplate.mwsl Con questo esempio viene spiegato ancora brevemente il meccanismo di template. Per chiarezza alcuni paragrafi sono sottolineati nei rispettivi file. Il template crea una tabella. Il file richiamato TestTemplate.mwsl <HTML> <HEAD> <TITLE> MWSL Template Test Page </TITLE> </HEAD> <BODY> <MWSL> write(processxmldata("<external SRC=\"/FILES/MWSL/variables.xml\"/>", "<TEMPLATES><EXTERNAL SRC=\"/FILES/MWSL/variablesTemplate.xml\"/> </TEMPLATES>") ); </MWSL> </BODY> </HTML> VariablesTemplate.xml <?xml version="1.0"?> <TEMPLATES> <TEMPLATE NAME="Provider"> <POSITION NAME="HEAD"> 74 Manuale di programmazione, 04/2014

75 <![CDATA[ <TABLE BORDER="1"> <TR> <TH> Varname </TH> <TH> Type </TH> <TH> Description </TH> <TH> Value </TH> <TH> NI/NL </TH> </TR> ]]> </POSITION> <POSITION NAME="FOOT"> <![CDATA[ <TR> <TD COLSPAN="5"> </TD> </TR> </TABLE> ]]> </POSITION> </TEMPLATE> <TEMPLATE NAME="Variable"> <POSITION NAME="LINE"> <![CDATA[ <TR> <TD align=center> <A HREF="<MWSL>Link()</MWSL>"><MWSL>Name()</MWSL></A> </TD> <TD> <MWSL>Type()</MWSL> </TD> <TD> <MWSL>Description()</MWSL> </TD> <TD align=right> <MWSL>InitialValue()</MWSL> </TD> <TD> <MWSL> NodeIndex() </MWSL> / <MWSL> NodeLevel() </MWSL> </TD> </TR> ]]> </POSITION> </TEMPLATE> </TEMPLATES> Manuale di programmazione, 04/

76 Il file template è costituito in questo caso da più template. Il template Provider rappresenta la parte di intestazione e di piè di pagina per i dati (intestazione e piè di pagina della tabella). Il template Variable è definito per le righe dell'output di dati (una riga di tabella per ogni voce di variabile). I dati vengono inseriti in base ai relativi attributi. Il file di dati variables.xml <?xml version="1.0" standalone="yes"?> <Provider Name ="MyVarProvider"> <Variable Name="ZUFUEHRUNG.STATE" Type="String" InitialValue="good" Behavior="Manual" Description="Stato dell'afflusso di parti." /> <Variable Name="Language" Type="String" InitialValue="de_DE" Behavior="Manual" Description="Impostazione della lingua della pagina Web" /> </Provider> File HTML generato <HTML> <HEAD> <TITLE> MWSL Template Test Page </TITLE> </HEAD> <BODY> <TABLE BORDER="1"> <TR> <TH> Varname </TH> <TH> Type </TH> <TH> Description </TH> <TH> Value </TH> <TH> NI/NL </TH> 76 Manuale di programmazione, 04/2014

77 </TR> <TR> <TD align=center> <A HREF="">ZUFUEHRUNG.STATE</A> </TD> <TD> String </TD> <TD> Stato dell'afflusso di parti. </TD> <TD align=right> good </TD> <TD> 2 / 2 </TD> </TR> <TR> <TD align=center> <A HREF="">Language</A> </TD> <TD> String </TD> <TD> Impostazione della lingua della pagina web </TD> <TD align=right> de_de </TD> <TD> 3 / 2 </TD> </TR> </TABLE> </BODY> </HTML> MainNavigation.mwsl <html> <head> <title> MiniWeb Main Navigation </title> </head> [...] <body> <table> <tr> <MWSL> write(processxmldata( Manuale di programmazione, 04/

78 "<EXTERNAL SRC=\"/XML/MainNavigation.xml\"/>", "<TEMPLATES><EXTERNAL SRC=\"/Templates/MainNavigation.xml\"/> </TEMPLATES>") ); </MWSL> </tr> </table> </body> </html> Questo file contiene il corpo effettivo della pagina HTML da generare. La parte dinamica viene generata con il comando ProcessXMLData() e inserita in <table>. /XML/MainNavigation.xml MainNavigation.xml contiene la parte di dati per la generazione. <?xml version="1.0" standalone="yes"?> <MAINNAVIGATION> <APPLICATION NAME = "Entrance" CLIENTAREA = "/Portal/Entrance.mwsl" TITLE = "Back to Entrance Page." /> <APPLICATION NAME = "MWSL Test" CLIENTAREA = "/MWSL/Start.mwsl" TITLE = "Test environment for MWSL."/> <APPLICATION NAME = "File Browser" REALM = "Administrator" CLIENTAREA = "/www" TITLE = "Browse the Filesystem" /> [...] <APPLICATION NAME = "CSSA" REALM = "User" CLIENTAREA = "/CSSA/Main.mwsl" TITLE = "PKI Interface."/> <APPLICATION NAME = "VarSimulator" CLIENTAREA = "/Simulator/Simulator_index.mwsl" TITLE = "Simulate several variables."/> </MAINNAVIGATION> /Templates/MainNavigation.xml <?xml version="1.0" standalone="yes"?> <TEMPLATES> <TEMPLATE NAME="APPLICATION"> <POSITION NAME="LINE"> <![CDATA[ <td> <input class = "MainMenu" type = "BUTTON" title = "<MWSL> WriteVar("TITLE")</MWSL>" value = "<MWSL> WriteVar("NAME")</MWSL>" OnClick = "NavigateApp('<MWSL>WriteVar("CLIENTAREA")</MWSL>')" 78 Manuale di programmazione, 04/2014

79 /> </td> ]]> </POSITION> </TEMPLATE> </TEMPLATES> Questo file viene eseguito per ciascun nodo di dati e vengono inserite le relative variabili. File HTML generato <html> <head> <title> MiniWeb Main Navigation </title> </head> <body> <table> <tr> <td> <input class = "MainMenu" type = "BUTTON" title = "Back to Entrance Page." value = "Entrance" OnClick = "NavigateApp('/Portal/Entrance.mwsl')" /> </td> <td> <input class = "MainMenu" type = "BUTTON" title = "Test environment for MWSL." value = "MWSL Test" OnClick = "NavigateApp('/MWSL/Start.mwsl')" /> </td> <td> <input class = "MainMenu" type = "BUTTON" title = "Browse the Filesystem" value = "File Browser" OnClick = "NavigateApp('/www')" /> </td> [...] <td> <input class = "MainMenu" type = "BUTTON" title = "PKI Interface." value = "CSSA" OnClick = "NavigateApp('/CSSA/Main.mwsl')" /> </td> <td> <input class = "MainMenu" type = "BUTTON" title = "Simulate several variables." value = "VarSimulator" Manuale di programmazione, 04/

80 /> </td> </tr> </table> </body> </html> OnClick = "NavigateApp ('/Simulator/Simulator_index.mwsl')" AppNavigation.mwsl Richiamo: <MWSL> WriteXMLData("<EXTERNAL SRC=\"" + GetVar("XML", "URL") + "\"/>", "<TEMPLATES><EXTERNAL SRC=\"" + GetVar("TEMPLATE", "URL") + "\"/></TEMPLATES>"); </MWSL> Durante il richiamo i dati e il file template vengono acquisiti dall'url. In questo esempio, come file template assegnato viene acquisito AppNavigation.xml, come file di dati assegnato MWSLTestMenu.xml. MWSLTestMenu.xml <?xml version="1.0"?> <APPMENU> <MENU> <BUTTON NAME = "Menu1" LABEL = "Variablentest" TITLE = "Tooltip" STATUS = "Statusline" CLIENTAREA = "/MWSL/Variablentest.mwsl?Parameter=4711" /> [...] <BUTTON NAME = "Menu9" LABEL = "Versuch" TITLE = "Tooltip" STATUS = "Statusline" CLIENTAREA = "/MWSL/Versuch.mwsl" /> </MENU> </APPMENU> Nel seguente file template vengono interrogati alcuni attributi per controllare la loro esistenza ed eseguite le relative righe. In questo caso viene eseguita solo la condizione per CLIENTAREA, poiché non è presente alcun altro attributo interrogato. AppNavigation.xml <?xml version="1.0" standalone="yes"?> <TEMPLATES> 80 Manuale di programmazione, 04/2014

81 <TEMPLATE NAME="BUTTON"> <POSITION NAME="LINE"> <![CDATA[ <TR> <TD> <INPUT CLASS = "MainMenu" TYPE = "BUTTON" TITLE = "<MWSL>TITLE()</MWSL>" VALUE = "<MWSL>LABEL()</MWSL>" <MWSL> if ( ExistVariable( "CLIENTAREA" )) write("onclick= \"top.clientarea.window.navigate('"+ GetVar("CLIENTAREA") + "')\""); if ( ExistVariable ( "TOP" )) write("onclick = \"top.window.navigate('" + GetVar("TOP") + "')\""); if ( ExistVariable ( "WIN" )) write("onclick = \"window.open('" + GetVar("WIN") + "')\""); if ( ExistVariable ( "ACTION" )) write("onclick = \"top.clientarea.window." + GetVar("ACTION") + "\""); </MWSL> /> </TD> </TR> ]]> </POSITION> </TEMPLATE> </TEMPLATES> Nel file template si trovano le condizioni if in cui vengono interrogati gli attributi del file di dati. In tal modo durante il runtime, per ciascun nodo di dati, risultano istruzioni differenti. Nel file HTML generato comparirà quindi soltanto la riga corrispondente al relativo nodo di dati. generierte Ausgabe <TR> <TD> <INPUT CLASS = "MainMenu" TYPE = "BUTTON" TITLE = "Tooltip" VALUE = "Variablentest" OnClick = "top.clientarea.window.navigate( '/MWSL/Variablentest.mwsl?Parameter=4711')" /> </TD> Manuale di programmazione, 04/

82 </TR> [...] <TR> <TD> <INPUT CLASS = "MainMenu" TYPE = "BUTTON" TITLE = "Tooltip" VALUE = "Versuch" OnClick = "top.clientarea.window.navigate('/mwsl/versuch.mwsl')" /> </TD> </TR> Server Side Includes (SSI) Introduzione di valori di processo Nelle pagine HTML definite dall'utente è possibile inserire valori di processo tramite Server Side Includes (SSI). Nota A partire dalla versione controllore SIMOTION V4.1, tutte le pagine HTML con SSI devono essere disponibili come file binari, per visualizzare i valori di processo. Una pagina HTML standard può essere trasformata in file binario grazie al tool di conversione (Pagina 14) fornito. Le pagine HTML con contenuto esclusivamente statico non devono essere convertite. Introduzione di valori di processo L'introduzione nella pagina HTML avviene con la sequenza di caratteri <%=IDENTIFIER %>. IDENTIFIER è un segnaposto che occorre sostituire con variabili dei Variable Provider. Ad esempio, <%=DeviceInfo.Board%>, questa variabile definisce il controllore. Su un apparecchio D435 si tratta ad es. del valore "D435". Per maggiori informazioni sulle variabili e sulla sintassi, consultare il capitolo Variable Provider nel manuale SIMOTION IT Diagnostica e configurazione. Nel testo sorgente riportato di seguito si può vedere un esempio di introduzione della variabile userdata.user1. Dapprima viene emesso il valore della variabile (variabile di sistema userdata.user1: <%=var/userdata.user1 %>). Nel campo di immissione il valore della variabile viene usato come impostazione predefinita e sovrascritto con un'eventuale immissione. <html> <head> <title>demo Seite</title> </head> 82 Manuale di programmazione, 04/2014

83 <body text="#000000" bgcolor="#ffffff" link="#ff0000" alink="#ff0000" vlink="#ff0000"> Demoseite<br> Systemvariable userdata.user1 : <%= var/userdata.user1 %> <br> <form method="post" action="/varapp"> </form> </body> </html> SIMOTION C: userdata.user1: <input type="text" name="var/userdata.user1" value="< %= var/userdata.user1 %>" /> <input type="submit" value="wert schreiben" /> Manuale di programmazione, 04/

84 3.2 OPC XML-DA Webservice: 3.2 OPC XML-DA Webservice: Introduzione ai Webservice Un SIMOTION IT Webservice supporta i programmi utente nell'accesso basato su testo ai valori di processo. L'accesso puramente simbolico rende il programma utente indipendente dal punto di vista del linguaggio di programmazione, del sistema operativo e della data/ora di programmazione. I dettagli sullo standard internazionale dei Webservice possono essere ricercati su Internet o nella letteratura specializzata. Il controllore SIMOTION propone il Webservice OPC XML-DA per accesso ai dati conformemente a OPC XML-DA Definition V1.01 della OPC Foundation e il trace tramite SOAP Webservice (TVS) per l'uso di SIMOTION Runtime Trace. Addon\4_Accessories\SIMOTION_IT\7_Webservices\WSDL\OPC XMLDA 1.01.wsdl Addon\4_Accessories\SIMOTION_IT\7_Webservices\WSDL\TVS.wsdl Viene fornito un esempio di client che utilizza il service OPC XML-DA. Addon\4_Accessories\SIMOTION_IT\7_Webservices\Example I Webservice possono essere utilizzati anche con JavaScript in pagine HTML, così come accade per le pagine di diagnostica standard di SIMOTION IT. Vedere Accesso alle variabili con JavaScript e Webservice (Pagina 23) Conoscenze necessarie per la programmazione: OPC XML-DA, Webservices, XML, SOAP, Javascript/AJAX. Parole chiave per la programmazione successiva: Realizzazione di applicazioni con architettura "model view controller", ad es. quando i valori delle variabili devono essere visualizzati in modo dinamico e aggiornati in background Panoramica Il server SIMOTION IT OPC XML-DA consente di accedere via Ethernetai dati e agli stati operativi dell'apparecchiatura SIMOTION. Che cos'è OPC XML-DA? OPC sta per Open Connectivity e designa un'interfaccia standard di comunicazione nella tecnica di automazione. Con OPC XML-DA è possibile comunicare con un PLC mediante telegrammi standard basati su Ethernet. Per la trasmissione dei comandi viene utilizzato il protocollo di comunicazione SOAP (simple object access protocol). L'interfaccia stessa viene definita in un file di configurazione tramite un linguaggio descrittivo (WSDL) basato sul vocabolario XML. Questo linguaggio descrive il formato dei telegrammi di messaggi di richiesta e risposta HTTP con cui vengono richiamate le funzioni (vedere OPC XML-DA R1.0 Specification:. OPC Foundation Download ( Downloads.aspx)). 84 Manuale di programmazione, 04/2014

85 3.2 OPC XML-DA Webservice: L'utilizzo di questa interfaccia richiede di norma un'applicazione come client. La figura seguente rappresenta un esempio di client della OPC Foundation. Il client consente di navigare tra le variabili di sistema, di interfaccia, I/O e quelle globali dell'apparecchio. Figura 3-14 OPC Foundation Client Scopo e utilizzo Lo scopo e l'utilizzo del server SIMOTION IT OPC XML-DA sono i seguenti: Accesso simbolico (senza informazioni del progetto) ai dati del controllore. È necessario conoscere solo i nomi delle variabili. Indipendenza dalle versioni di engineering e progetto. Anche in caso di modifiche del programma di controllo il client può ancora accedere ai dati. Accessibilità da parte di qualsiasi applicazione client conforme a OPC XML-DA V1.0, indipendentemente dal sistema operativo (ad es. Linux). Quali conoscenze preliminari sono necessarie? Per la comprensione del server SIMOTION IT OPC XML-DA descritto in questo capitolo si presuppone che l'utente abbia familiarità con il concetto di OPC XML-DA (vedere OPC XML- DA R1.0 Specification). Manuale di programmazione, 04/

SIMATIC. Sistema di controllo del processo PCS 7 SIMATIC Management Console - Aggiornamento del software. Aggiornamento software 1

SIMATIC. Sistema di controllo del processo PCS 7 SIMATIC Management Console - Aggiornamento del software. Aggiornamento software 1 Aggiornamento software 1 SIMATIC Sistema di controllo del processo PCS 7 SIMATIC Management Console - Aggiornamento del software Manuale di installazione Valido solo per l'aggiornamento del software SIMATIC

Dettagli

Tipi di sessione WebEx. SINUMERIK 810D / 840Di / 840D. eps Network Services Tipi di sessione WebEx SC5.0. White Paper 11/2006 --

Tipi di sessione WebEx. SINUMERIK 810D / 840Di / 840D. eps Network Services Tipi di sessione WebEx SC5.0. White Paper 11/2006 -- 1 SINUMERIK 810D / 840Di / 840D eps Network Services White Paper 11/2006 -- Istruzioni di sicurezza Questo manuale contiene delle norme di sicurezza che devono essere rispettate per salvaguardare l'incolumità

Dettagli

Modulo server (6ES7193-6PA00-0AA0) SIMATIC. ET 200SP Modulo server (6ES7193-6PA00-0AA0) Prefazione. Guida alla documentazione dell'et 200SP

Modulo server (6ES7193-6PA00-0AA0) SIMATIC. ET 200SP Modulo server (6ES7193-6PA00-0AA0) Prefazione. Guida alla documentazione dell'et 200SP Prefazione Guida alla documentazione dell'et 200SP 1 SIMATIC ET 200SP Modulo server (6ES7193-6PA00-0AA0) Manuale del prodotto Panoramica del prodotto 2 Parametri/area di indirizzi 3 Dati tecnici 4 Set

Dettagli

Istruzioni per l utilizzo 06/2015. LOGO! App V3.0. LOGO! 8 e LOGO! 7

Istruzioni per l utilizzo 06/2015. LOGO! App V3.0. LOGO! 8 e LOGO! 7 Istruzioni per l utilizzo 06/2015 LOGO! App V3.0 LOGO! 8 e LOGO! 7 Responsabilità e Garanzie Responsabilità e Garanzie Note Gli esempi applicativi non sono vincolanti e non pretendono di essere esaustivi

Dettagli

HSH Informatica e Cultura s.r.l. OPEN.TE SOFTWARE PER GESTIONE E LA PUBBLICAZIONE DEI DATI AI SENSI DELLA L.N. 190/2012 GUIDA ALL USO

HSH Informatica e Cultura s.r.l. OPEN.TE SOFTWARE PER GESTIONE E LA PUBBLICAZIONE DEI DATI AI SENSI DELLA L.N. 190/2012 GUIDA ALL USO HSH Informatica e Cultura s.r.l. OPEN.TE SOFTWARE PER GESTIONE E LA PUBBLICAZIONE DEI DATI AI SENSI DELLA L.N. 190/2012 GUIDA ALL USO SOMMARIO Sommario Specifiche 1 Diritti di Autore e Clausole di Riservatezza

Dettagli

Guida Google Cloud Print

Guida Google Cloud Print Guida Google Cloud Print Versione A ITA Definizioni delle note Nella presente Guida dell utente viene utilizzato lo stile che segue per contrassegnare le note: Le note forniscono istruzioni da seguire

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente Istruzioni per l uso della Guida Istruzioni per l uso della Guida Sulla barra degli strumenti: Pagina precedente / Pagina successiva Passa alla pagina Indice / Passa alla pagina Precauzioni Stampa Ottimizzate

Dettagli

Sistema Informativo di Teleraccolta EMITTENTI

Sistema Informativo di Teleraccolta EMITTENTI Sistema Informativo di EMITTENTI aventi l Italia come Stato membro di origine i cui valori mobiliari sono ammessi alla negoziazione in un altro Stato membro dell Unione Europea Art. 116 bis, comma 1, del

Dettagli

Guida dell utente. Centro di fatturazione UPS

Guida dell utente. Centro di fatturazione UPS Guida dell utente Centro di fatturazione UPS 2015 United Parcel Service of America, Inc. UPS, il marchio UPS e il colore marrone sono marchi commerciali di United Parcel Service of America, Inc. Tutti

Dettagli

Manuale Determinazione della posizione di memorizzazione V 0.1

Manuale Determinazione della posizione di memorizzazione V 0.1 & Manuale Determinazione della posizione di memorizzazione V 0.1 Luglio 2012 Tutti le descrizioni legati al software si riferiscono al software mygekko living V1279. Si consiglia di aggiornare le vecchie

Dettagli

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44 filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44 Sommario Introduzione... 4 Caratteristiche del filrbox... 5 La barra principale del filrbox... 7 Elenco degli utenti... 8 Il profilo... 9 Le novità...

Dettagli

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

Versione 1.0 09/10. Xerox ColorQube 9301/9302/9303 Servizi Internet

Versione 1.0 09/10. Xerox ColorQube 9301/9302/9303 Servizi Internet Versione 1.0 09/10 Xerox 2010 Xerox Corporation. Tutti i diritti riservati. I diritti non pubblicati sono protetti ai sensi delle leggi sul copyright degli Stati Uniti. Il contenuto di questa pubblicazione

Dettagli

SAP SRM 7 Manuale GARE ON LINE con cfolders FORNITORI INDICE

SAP SRM 7 Manuale GARE ON LINE con cfolders FORNITORI INDICE SAP SRM 7 Manuale GARE ON LINE con cfolders FORNITORI INDICE 0 - Introduzione Vai! 1 - Logon 2 - Ricerca gara elettronica 3 - Visualizzazione offerta 4 - Creazione offerta Vai! Vai! Vai! Vai! 5 - Elaborazione

Dettagli

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO 1 Installazione e requisiti per il corretto funzionamento del sito: L istallazione è possibile sui più diffusi sistemi operativi. Il pacchetto

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Come usare P-touch Transfer Manager

Come usare P-touch Transfer Manager Come usare P-touch Transfer Manager Versione 0 ITA Introduzione Avviso importante Il contenuto di questo documento e le specifiche di questo prodotto sono soggetti a modifica senza preavviso. Brother si

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Guida all'impostazione dei messaggi di avviso e delle destinazioni di scansione per le stampanti X500 Series

Guida all'impostazione dei messaggi di avviso e delle destinazioni di scansione per le stampanti X500 Series Guida all'impostazione dei messaggi di avviso e delle destinazioni di scansione per le stampanti X500 Series www.lexmark.com Luglio 2007 Lexmark, Lexmark con il simbolo del diamante sono marchi di Lexmark

Dettagli

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo GRUPPO CAMBIELLI Posta elettronica (Webmail) Consigli di utilizzo Questo sintetico manuale ha lo scopo di chiarire alcuni aspetti basilari per l uso della posta elettronica del gruppo Cambielli. Introduzione

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Manuale swiss-archives.ch

Manuale swiss-archives.ch Dipartimento federale dell interno DFI Archivio federale svizzero AFS Manuale swiss-archives.ch Banca dati dell Archivio federale svizzero Indice 1 Introduzione 3 1.1 Funzioni... 4 1.2 Registrazione...

Dettagli

CONTENUTI 1. INTRODUZIONE...3 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 3. ACCESSO A EQUINOX CMS XPRESS...9 4. PAGINA D INIZIO...

CONTENUTI 1. INTRODUZIONE...3 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 3. ACCESSO A EQUINOX CMS XPRESS...9 4. PAGINA D INIZIO... CONTENUTI 1. INTRODUZIONE...3 DEFINIZIONE...3 ELEMENTI DEL SERVIZIO...3 TECNOLOGIA E OPERAZIONE...3 WORKFLOW E GRAFICO DI PROCESSI...4 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 STRUTTURA...5 OGGETTI...5

Dettagli

GUIDE VIRTUEMART www.vmitalia.net. Guida di Virtuemart INSTALLAZIONE DI VIRTUEMART 1.1.2. Guida alla installazione di VIRTUEMART 1.1.

GUIDE VIRTUEMART www.vmitalia.net. Guida di Virtuemart INSTALLAZIONE DI VIRTUEMART 1.1.2. Guida alla installazione di VIRTUEMART 1.1. Guida di Virtuemart INSTALLAZIONE DI VIRTUEMART 1.1.2 Guida alla installazione di VIRTUEMART 1.1.2 Pagina 1 INDICE INDICE...2 Installazione...3 Installazione Lingua...6 Installazione Moduli...7 MENU VETRINA...11

Dettagli

Il tuo manuale d'uso. LEXMARK X502N http://it.yourpdfguides.com/dref/1265819

Il tuo manuale d'uso. LEXMARK X502N http://it.yourpdfguides.com/dref/1265819 Può anche leggere le raccomandazioni fatte nel manuale d uso, nel manuale tecnico o nella guida di installazione di LEXMARK X502N. Troverà le risposte a tutte sue domande sul manuale d'uso (informazioni,

Dettagli

Documentazione WinCC/WebUX - SIMATIC HMI. WinCC V7.3 SE incl. Update 1 Documentazione WinCC/WebUX - WebUX - Descrizione 1.

Documentazione WinCC/WebUX - SIMATIC HMI. WinCC V7.3 SE incl. Update 1 Documentazione WinCC/WebUX - WebUX - Descrizione 1. WebUX - Descrizione 1 Uso di WebUX 2 SIMATIC HMI WinCC V7.3 SE incl. Update 1 Manuale di sistema Stampa della Guida in linea 09/2014 A5E34377170-AB Avvertenze di legge Concetto di segnaletica di avvertimento

Dettagli

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice

Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo Webservice - Albo pretorio virtuale e gestione della consultazione documentale - Argomenti Tabelle di riferimento Pulsanti Inserire documento Predisposizione doc Approvazione Doc Numerazione Doc Pubblicazione Albo

Dettagli

MANUALE UTENTE UTILIZZO MODULO FILE-STORAGE DI ACS - CANALE AMBIENTE PROVINCIA DI TORINO

MANUALE UTENTE UTILIZZO MODULO FILE-STORAGE DI ACS - CANALE AMBIENTE PROVINCIA DI TORINO Pag. 1 di 17 VERIFICHE E APPROVAZIONI VERSIONE REDAZIONE CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA V01 CORA 15/01/03 FERRARESI 21/01/03 FERRARESI 21/01/03 STATO DELLE

Dettagli

Il tuo manuale d'uso. SONY ERICSSON Z550I http://it.yourpdfguides.com/dref/452389

Il tuo manuale d'uso. SONY ERICSSON Z550I http://it.yourpdfguides.com/dref/452389 Può anche leggere le raccomandazioni fatte nel manuale d uso, nel manuale tecnico o nella guida di installazione di SONY ERICSSON Z550I. Troverà le risposte a tutte sue domande sul manuale d'uso (informazioni,

Dettagli

Tutorial KISSsoft: versione di prova e fasi iniziali

Tutorial KISSsoft: versione di prova e fasi iniziali Tutorial KISSsoft 001: installazione e fasi iniziali KISSsoft AG - +41 55 254 20 50 Uetzikon 4 - +41 55 254 20 51 8634 Hombrechtikon - info@kisssoft.ag Svizzera - www.kisssoft.ag Tutorial KISSsoft: versione

Dettagli

Guida Google Cloud Print

Guida Google Cloud Print Guida Google Cloud Print Versione 0 ITA Definizioni delle note Nella presente Guida dell utente viene utilizzata la seguente icona: Le note forniscono istruzioni da seguire in determinate situazioni o

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento #K$+ SOMMARIO ALBO PRETORIO WEB SOMMARIO Uso del manuale Informazioni generali Interfaccia grafica Guida di riferimento Guida alle operazioni ricorrenti Appendici # 000 K SOMMARIO $ SOMMARIO + 00001 Pagina

Dettagli

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla! Guida di Virtuemart INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla! INDICE INDICE... 1 INTRODUZIONE... 2 DONWLOAD... 2 INSTALLAZIONE... 2 REQUISITI MINIMI... 3 PASSAGGIO 1... 4 PASSAGGIO 2...

Dettagli

Guida Google Cloud Print

Guida Google Cloud Print Guida Google Cloud Print Versione 0 ITA Definizioni delle note Nella presente Guida dell utente viene utilizzata la seguente icona: Le note forniscono istruzioni da seguire in determinate situazioni o

Dettagli

Sage Start Archivio file Guida. Dalla versione 2015 09.10.2014

Sage Start Archivio file Guida. Dalla versione 2015 09.10.2014 Sage Start Archivio file Guida Dalla versione 2015 09.10.2014 Sommario 1.0 Introduzione 3 1.1 Moduli con archivio file 3 1.2 Informazioni generali 3 1.2.1 Cancellazione di record di dati 4 1.2.2 Duplicazione

Dettagli

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore 1. Obbligo di comunicazione dei dati... 2 2. Accesso alla raccolta... 2 3. Compilazione... 6 2.1 Dati generali Sicurezza

Dettagli

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica Consiglio regionale della Toscana Regole per il corretto funzionamento della posta elettronica A cura dell Ufficio Informatica Maggio 2006 Indice 1. Regole di utilizzo della posta elettronica... 3 2. Controllo

Dettagli

Manuale Accesso remoto VNC V 0.2

Manuale Accesso remoto VNC V 0.2 & Manuale Accesso remoto VNC V 0.2 Agosto 2012 Tutti le descrizioni legati al software si riferiscono al software mygekko living B2229. Si consiglia di aggiornare le vecchie versioni del sistema. Piccole

Dettagli

Manuale di istruzioni per la compilazione sul sito dell INVALSI del modulo online per le informazioni di contesto. Rilevazioni Nazionali 2015

Manuale di istruzioni per la compilazione sul sito dell INVALSI del modulo online per le informazioni di contesto. Rilevazioni Nazionali 2015 Manuale di istruzioni per la compilazione sul sito dell INVALSI del modulo online per le informazioni di contesto Rilevazioni Nazionali 2015 1 Data di pubblicazione 20.03.2015 Quest anno non ci saranno

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

RepairsLab Manuale Utente. RepairsLab. Manuale Utente

RepairsLab Manuale Utente. RepairsLab. Manuale Utente Pag 1 di 14 RepairsLab Manuale Utente Per RepairsLab 1.0 Autore: Fabrizio Ferraiuolo Indice generale Introduzione...2 Installazione...2 Schermata principale...3 Configurazione...4 Configurazioni Base Dati...5

Dettagli

Progetto SOLE Sanità OnLinE

Progetto SOLE Sanità OnLinE Progetto SOLE Sanità OnLinE Rete integrata ospedale-territorio nelle Aziende Sanitarie della Regione Emilia-Romagna: I medici di famiglia e gli specialisti Online (DGR 1686/2002) console - Manuale utente

Dettagli

Nokia C110/C111 scheda LAN senza filo Manuale di installazione

Nokia C110/C111 scheda LAN senza filo Manuale di installazione Nokia C110/C111 scheda LAN senza filo Manuale di installazione DICHIARAZIONE DI CONFORMITÀ Noi, NOKIA MOBILE PHONES Ltd dichiariamo sotto la nostra esclusiva responsabilità che i prodotti DTN-10 e DTN-11

Dettagli

Guida alla registrazione on-line di un NovaSun Log

Guida alla registrazione on-line di un NovaSun Log Guida alla registrazione on-line di un NovaSun Log Revisione 4.1 23/04/2012 pag. 1 di 16 Contenuti Il presente documento è una guida all accesso e all utilizzo del pannello di controllo web dell area clienti

Dettagli

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati. 2010 Ing. Punzenberger COPA-DATA Srl Tutti i diritti riservati. Tutti i diritti riservati la distribuzione e la copia - indifferentemente dal metodo - può essere consentita esclusivamente dalla dittacopa-data.

Dettagli

GUIDA TECNICA ALLA RENDICONTAZIONE SU SIRIO

GUIDA TECNICA ALLA RENDICONTAZIONE SU SIRIO GUIDA TECNICA ALLA RENDICONTAZIONE SU SIRIO Guida per il compilatore Versione 1.0 Sommario 1 Rendicontazione... 2 1.1 Da cosa è costituita la rendicontazione... 2 1.2 Dove reperire i modelli e come compilarli...

Dettagli

Studio Legale. Guida operativa

Studio Legale. Guida operativa Studio Legale Guida operativa Cliens Studio Legale Web Cliens Studio Legale Web è un nuovo strumento che consente all avvocato di consultare i dati presenti negli archivi Cliens del proprio studio, attraverso

Dettagli

SU Suap. IS357_03_01 Lettera aggiornamento SUAP vers. 02.00.00. Pagina 1 di 10

SU Suap. IS357_03_01 Lettera aggiornamento SUAP vers. 02.00.00. Pagina 1 di 10 SU Suap OGGETTO: aggiornamento della procedura Suap dalla versione 01.03.01 alla versione 02.00.00 Nell inviarvi quanto in oggetto Vi ricordiamo che gli aggiornamenti vanno effettuati tempestivamente e

Dettagli

Il tuo manuale d'uso. CANON LBP-3300 http://it.yourpdfguides.com/dref/536442

Il tuo manuale d'uso. CANON LBP-3300 http://it.yourpdfguides.com/dref/536442 Può anche leggere le raccomandazioni fatte nel manuale d uso, nel manuale tecnico o nella guida di installazione di CANON LBP-3300. Troverà le risposte a tutte sue domande sul manuale d'uso CANON LBP-3300

Dettagli

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB Copyright 2014 Wolters Kluwer Italia Srl 1 Sommario 1 Come accedere al Pannello di gestione... 4 2 del Pannello di gestione del sito web... 5 3 delle sezioni...

Dettagli

X-Letter Gestione Newsletter (versione template o landing pages)

X-Letter Gestione Newsletter (versione template o landing pages) X-Letter Gestione Newsletter (versione template o landing pages) E' un prodotto disponibile esclusivamente online per eseguire operazioni di invio di comunicazioni periodiche (Newsletter) ad utenti classificati

Dettagli

FISH Sardegna ONLUS. www.fishsardegna.org. Manuale Utente. www.fishsardegna.org

FISH Sardegna ONLUS. www.fishsardegna.org. Manuale Utente. www.fishsardegna.org FISH Sardegna ONLUS Manuale Utente Note generali: Il sito è costruito su CMS Drupal 7. Per avere maggiori informazioni su Drupal si puo consultare online il portale ufficiale http://drupal.org/( in inglese)

Dettagli

Software di gestione della stampante

Software di gestione della stampante Questo argomento include le seguenti sezioni: "Uso del software CentreWare" a pagina 3-11 "Uso delle funzioni di gestione della stampante" a pagina 3-13 Uso del software CentreWare CentreWare Internet

Dettagli

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

NAVIGAORA HOTSPOT. Manuale utente per la configurazione NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento

Dettagli

1 Introduzione...1 2 Installazione...1 3 Configurazione di Outlook 2010...6 4 Impostazioni manuali del server... 10

1 Introduzione...1 2 Installazione...1 3 Configurazione di Outlook 2010...6 4 Impostazioni manuali del server... 10 Guida per l installazione e la configurazione di Hosted Exchange Professionale con Outlook 2010 per Windows XP Service Pack 3, Windows Vista e Windows 7 Edizione del 20 febbraio 2012 Indice 1 Introduzione...1

Dettagli

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 StruxureWare Data Center ExpertDispositivo virtuale Il server StruxureWare Data Center Expert 7.2 è disponibile come dispositivo virtuale, supportato

Dettagli

Area Cliente Guida di avvio

Area Cliente Guida di avvio Area Cliente Guida di avvio 1. A proposito dell Area Cliente... 2 a. Nuove funzionalità... 2 b. Ripristino dei suoi documenti... 2 c. Migrazione verso l Area Cliente... 2 2. Accesso all Area Cliente...

Dettagli

Guida Google Cloud Print

Guida Google Cloud Print Guida Google Cloud Print Versione B ITA Definizioni delle note Nella presente Guida dell utente viene utilizzato lo stile che segue per contrassegnare le note: Le note forniscono istruzioni da seguire

Dettagli

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000 Mon Ami 000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 000 Prerequisiti La soluzione MACommerce si integra totalmente con le versioni Azienda Light e Azienda

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

MANUALE D USO DELLA PIATTAFORMA ITCMS

MANUALE D USO DELLA PIATTAFORMA ITCMS MANUALE D USO DELLA PIATTAFORMA ITCMS MANULE D USO INDICE 1. INTRODUZIONE... 2 2. ACCEDERE ALLA GESTIONE DEI CONTENUTI... 3 3. GESTIONE DEI CONTENUTI DI TIPO TESTUALE... 4 3.1 Editor... 4 3.2 Import di

Dettagli

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem: Cookie e Webstorage Un cookie (letteralmente biscotto) è un pacchetto di informazioni che viene salvato sul computer dell utente. In successive sessioni di collegamento a Internet (normalmente per un periodo

Dettagli

9243045 Edizione 1 IT. Nokia e Nokia Connecting People sono marchi registrati di Nokia Corporation

9243045 Edizione 1 IT. Nokia e Nokia Connecting People sono marchi registrati di Nokia Corporation 9243045 Edizione 1 IT Nokia e Nokia Connecting People sono marchi registrati di Nokia Corporation Accedere a Zip Manager Pro. Nota: per ulteriori informazioni su funzionamento e manutenzione del Nokia

Dettagli

GENERAZIONE RAPPORTO XML

GENERAZIONE RAPPORTO XML E.C.M. Educazione Continua in Medicina GENERAZIONE RAPPORTO XML Guida rapida Versione 2.0 Luglio 2014 E.C.M. Guida rapida per la generazione Indice 2 Indice Revisioni 3 1. Introduzione 4 2. del report

Dettagli

STELLA SUITE Manuale d'uso

STELLA SUITE Manuale d'uso STELLA SUITE Manuale d'uso Stella Suite Manuale d'uso v. 1.2014 INDICE Sezione Pagina 1. Introduzione a Stella Suite Componenti Requisiti sistema Panorama della schermata iniziale 2. Installazione di Stella

Dettagli

Utilizzo del Terminalino

Utilizzo del Terminalino Utilizzo del Terminalino Tasti: - ENT: funzionano come INVIO - SCAN: per attivare il lettore di barcode - ESC: per uscire dal Menù in cui si è entrati - BKSP: per cancellare l ultimo carattere digitato

Dettagli

NAVIGAZIONE DEL SI-ERC: UTENTE PROGETTISTA

NAVIGAZIONE DEL SI-ERC: UTENTE PROGETTISTA 3 NAVIGAZIONE DEL SI-ERC: UTENTE PROGETTISTA Collegandosi al sito, si accede alla Home Page del SI-ERC che si presenta come illustrato di seguito. L utente progettista, analogamente agli altri utenti,

Dettagli

View Mobile User s Guide

View Mobile User s Guide View Mobile User s Guide 1 - Descrizione del software Il software è stato realizzato per essere utilizzato su telefoni cellulari con supporto per le applicazioni Java. Tramite il software è possibile collegarsi

Dettagli

Dipartimento per le Libertà Civili e l Immigrazione

Dipartimento per le Libertà Civili e l Immigrazione Dipartimento per le Libertà Civili e l Immigrazione Sistema inoltro telematico Manuale utente Versione 10 Data aggiornamento: 14/09/2012 Pagina 1 (25) Sommario 1. Il sistema di inoltro telematico delle

Dettagli

Clienti. Aggiungere un cliente

Clienti. Aggiungere un cliente Clienti In questa sezione trovate le istruzioni per impostare e mantenere un cliente su Oscarnet. Per aggiungere manualmente un cliente dal Design-Control occorre seguire tre passaggi: 1) Aggiungere un

Dettagli

SIEMENS GIGASET S685 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

SIEMENS GIGASET S685 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP SIEMENS GIGASET S685 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP Gigaset S685 IP Guida alla configurazione EUTELIAVOIP Rev2-0 pag.2 INDICE SCOPO... 3 TELEFONARE CON EUTELIAVOIP... 3 CONNESSIONE DEL TELEFONO

Dettagli

IL SISTEMA INFORMATIVO DEL POLICLINICO A. GEMELLI E DELL UNIVERSITA CATTOLICA DEL SACRO CUORE SEDE DI ROMA

IL SISTEMA INFORMATIVO DEL POLICLINICO A. GEMELLI E DELL UNIVERSITA CATTOLICA DEL SACRO CUORE SEDE DI ROMA Questo documento vuole essere di supporto al nuovo servizio Web-mail per l'utilizzo della posta elettronica dell Università Cattolica del Sacro Cuore sede di Roma (UCSC) attraverso il web. La nuova release

Dettagli

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati. 2010 Ing. Punzenberger COPA-DATA Srl Tutti i diritti riservati. Tutti i diritti riservati la distribuzione e la copia - indifferentemente dal metodo - può essere consentita esclusivamente dalla dittacopa-data.

Dettagli

Guida all uso. Esso sarà riportato nell intestazione. Vediamo:

Guida all uso. Esso sarà riportato nell intestazione. Vediamo: faxm@il è un applicazione che permette agli utenti dei sistemi di telefonia IP di inviare, ricevere e gestire fax. Il tradizionale sistema di fax è ormai superato. Con faxm@il non riceviamo né spediamo

Dettagli

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Direzione Centrale per le Politiche dell Immigrazione e dell Asilo SUI Sportello Unico Immigrazione Sistema inoltro telematico domande di nulla osta al lavoro, al ricongiungimento familiare e conversioni

Dettagli

Sistema Informativo Valutazioni e PRocedimenti Ambientali (SIPRA)

Sistema Informativo Valutazioni e PRocedimenti Ambientali (SIPRA) Sistema Informativo Valutazioni e PRocedimenti Ambientali (SIPRA) Guida alla configurazione della postazione di lavoro e accesso al servizio STATO DELLE VARIAZIONI Versione Paragrafo o Pagina Descrizione

Dettagli

Manuale LiveBox WEB ADMIN. http://www.liveboxcloud.com

Manuale LiveBox WEB ADMIN. http://www.liveboxcloud.com 2014 Manuale LiveBox WEB ADMIN http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa

Dettagli

S.I.I.P.A.L. Sistema Informativo Integrato Pubblica Amministrazione Locale

S.I.I.P.A.L. Sistema Informativo Integrato Pubblica Amministrazione Locale S.I.I.P.A.L. Sistema Informativo Integrato Pubblica Amministrazione Locale SPECIFICHE DI RILASCIO AGGIORNAMENTO PRODOTTI PATCHELETT100908 (database ver. 264) Pagina 1 di 9 S.I.I.P.A.L. Sistema Informativo

Dettagli

SAP BusinessObjects Versione del documento: 4.2 2015-11-12. Manuale di installazione di Dashboards LiveCycle Data Services Gateway

SAP BusinessObjects Versione del documento: 4.2 2015-11-12. Manuale di installazione di Dashboards LiveCycle Data Services Gateway SAP BusinessObjects Versione del documento: 4.2 2015-11-12 Manuale di installazione di Dashboards LiveCycle Data Services Gateway Contenuto 1 Cronologia del documento.... 3 2 Informazioni sul manuale....

Dettagli

Integrazione InfiniteCRM - MailUp

Integrazione InfiniteCRM - MailUp Integrazione InfiniteCRM - MailUp La funzionalità della gestione delle campagne marketing di icrm è stata arricchita con la spedizione di email attraverso l integrazione con la piattaforma MailUp. Creando

Dettagli

ALICE AMMINISTRAZIONE UTENTI WEB

ALICE AMMINISTRAZIONE UTENTI WEB AMMINISTRAZIONE UTENTI WEB REL. 1.2 edizione luglio 2008 INDICE 1. AMMINISTRAZIONE DI UTENTI E PROFILI... 2 2. DEFINIZIONE UTENTI... 2 2.1. Definizione Utenti interna all applicativo... 2 2.1.1. Creazione

Dettagli

FidelJob gestione Card di fidelizzazione

FidelJob gestione Card di fidelizzazione FidelJob gestione Card di fidelizzazione Software di gestione card con credito in Punti o in Euro ad incremento o a decremento, con funzioni di ricarica Card o scala credito da Card. Versione archivio

Dettagli

Dipartimento per le Libertà Civili e l Immigrazione

Dipartimento per le Libertà Civili e l Immigrazione Dipartimento per le Libertà Civili e l Immigrazione SUI Sportello Unico Immigrazione Sistema inoltro telematico Manuale utente Versione 9 Data aggiornamento 19/11/2010 17.19.00 Pagina 1 (1) Sommario 1.

Dettagli

Manuale LiveBox WEB ADMIN. http://www.liveboxcloud.com

Manuale LiveBox WEB ADMIN. http://www.liveboxcloud.com 2014 Manuale LiveBox WEB ADMIN http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa

Dettagli

PRODUZIONE PAGELLE IN FORMATO PDF

PRODUZIONE PAGELLE IN FORMATO PDF Requisiti minimi: PRODUZIONE, FIRMA E PUBBLICAZIONE DELLA PAGELLA ELETTRONICA CON ALUNNI WINDOWS PRODUZIONE PAGELLE IN FORMATO PDF Argo Alunni Windows aggiornato alla versione più recente. Adobe PDF CREATOR,

Dettagli

XTOTEM offline sul proprio PC

XTOTEM offline sul proprio PC Pagina 1 XTOTEM offline sul proprio PC Sommario XTOTEM offline sul proprio PC...1 Introduzione...2 1. Installare IIS...3 2. Installare un programma FTP...5 Installazione di Filezilla...5 Sistema di protezione

Dettagli

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione Utilizzo dei Cookie Questo sito utilizza i cookie. Utilizzando il nostro sito web l'utente accetta e acconsente all utilizzo dei cookie in conformità con i termini di uso dei cookie espressi in questo

Dettagli

ANAGRAFE ALUNNI ISTRUZIONI PER LE SCUOLE PARITARIE Linee guida per la trasmissione delle nuove iscrizioni a.s. 2010/11

ANAGRAFE ALUNNI ISTRUZIONI PER LE SCUOLE PARITARIE Linee guida per la trasmissione delle nuove iscrizioni a.s. 2010/11 ANAGRAFE ALUNNI ISTRUZIONI PER LE SCUOLE PARITARIE Linee guida per la trasmissione delle nuove iscrizioni a.s. 2010/11 Al fine di poter trasmettere i dati delle Iscrizioni per l a.s. 2010/11 le scuole

Dettagli

L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI

L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI L ACQUISIZIONE E LA GESTIONE DEI DOCUMENTI ELETTRONICI DOCUSOFT integra una procedura software per la creazione e l'archiviazione guidata di documenti in formato elettronico (documenti Microsoft Word,

Dettagli

Esercitazione n. 10: HTML e primo sito web

Esercitazione n. 10: HTML e primo sito web + Strumenti digitali per la comunicazione A.A 0/4 Esercitazione n. 0: HTML e primo sito web Scopo: Creare un semplice sito web con Kompozer. Il sito web è composto da una home page, e da altre due pagine

Dettagli

Il Web Server e il protocollo HTTP

Il Web Server e il protocollo HTTP Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,

Dettagli