Campo I/O personalizzato

Potrebbe essere necessario utilizzare un campo I/O in modo personalizzato.

Per esempio controllare il valore di input dell’operatore e modificarlo prima di trasmetterlo alla Tag collegata al campo di I/O

Oppure ancora fare in modo che il campo di I/O visualizzi un valore letto da una prima Tag ma che un eventuale valore introdotto venga scritto in una Tag diversa dalla prima.

Per implementare questa e altre casistiche personalizzate occorre usare la funzione GetInputValueDouble() disponibile in cScript.

Per verificare e testarne la funzionalità seguire l’esempio di seguito descritto.

Disegnato un campo di I/O a video nella proprietà “valore in uscita” inserire questo codice CScript

return(GetTagWord(”NomeTagLettura”)/10);

con esecuzione del codice su trigger della stessa Tag “NomeTagLettura” con il tempo di scansione desiderato.

Nell’evento “Valore di Ingresso” (del gruppo Uscita/Ingresso) inserire questo codice CScript

double lValore;

lValore=GetInputValueDouble(lpszPictureName,lpszObjectName);
SetTagWord(”NomeTagScrittura”,lValore*10);

Con queste poche righe di codice si avrà il seguente funzionamento:

Altre personalizzazioni e controlli possono in questo modo essere implementati per modificare o controllare l’input dell’operatore.

Invia l'articolo in formato PDF a PDF

Aggiornare il progetto cliente

Quando aggiorniamo un progetto nel nosto ambiente di sviluppo e successivamente vogliamo trasferire le modifiche sul sistema di processo, ci troviamo con il problema di non perdere i dati storici acquisiti.

Una interessante FAQ di siemens ci viene in aiuto spiegando come procedere in questi casi.

Articolo con ID:24193864     Data:2008-05-06

Seguendo passo passo le informazioni è possibile trasferire le modifiche, effettuate in laboratorio, nel PC dell’impianto.

Invia l'articolo in formato PDF a PDF Creator

Refresh dati UserArchive Control

Inserendo in una pagina UserArchiveControl collegato ad una tabella dello User Archive, tutto funziona bene utilizzando i comandi di WinCC e del controllo.

Ma se i dati nella tabella vengono inseriti utilizzando funzioni ADO con vbScript  il controllo non mostra immediatamente i nuovi record inseriti ma occorre effettuare un cambio pagina per forzare il refresh.

Sembra che non esista un metodo refresh dell’oggetto.

Un modo per far rileggere i dati al controllo è utilizzare la proprietà di query del controllo stesso che si chiama “FilterSQL” (nel controllo UserArchive classic la proprietà si chiama “Filter”)

Impostando la proprietà da codice prima con il valore “ID=0″ e immediatamente dopo al valore “ID>0″ si eseguono due query sul controllo che di fatto aggiornano la visualizzazione senza dover ricaricare la pagina.

(SR)

Invia l'articolo in formato PDF a PDF Free

Disattivare WinCC da WSH

Puo’ essere necessario dover disattivare il runtime di WinCC da uno script Windows (WSH) per effettuare uno spegnimento ordinato per esempio in caso di mancanza di alimentazione.

Alcuni software di gestione UPS permettono l’esecuzione di Windows Script (.vbs) per effettuare alcune operazioni in modo ordinato e temporizzato prima di comandare la chiusura del SO.

In file .vbs inseriamo le seguenti istruzioni

dim mcp
set mcp = CreateObject(”WinCCRuntime-Project”)
mcp SetValue “Spegni”,1
set mcp = nothing

Questo codice non fa altro che settare il valore 1 nella tag “Spegni” di WinCC

Basterà triggherare dall’interno di WinCC tramite una action cScript la Tag “Spegni” e sul cambio di valore eseguire il seguente codice di chiurura runtime

DMExitWinCCEx(DM_SDMODE_POWEROFF)

Questa istruzione chiude WinCC e spegne il PC

Invia l'articolo in formato PDF a Word PDF

WinCC Client

Riguardo la funzionalita’ client/server di WinCC, sappiamo che i client possono essere Client con progetto e Client senza progetto

Il problema e’ orientarsi nella documentazione per capire, quando parliamo di Client, a quale tipo di Client facciano riferimento.

Riassumiamo la situazione cercando di fare un po di chiarezza.

Inizialmente nella versione 4.x c’era solo il “client senza progetto”, detto “Client”.

Nella versione 5.x questo e’ stato ribattezzato come “UniClient” ed e’ stato introdotto il “client con progetto” detto “MultiClient”.

Nella versione 6.x il primo e’ stato ri-ribattezzato “Client-Senza-Progetto” e il secondo “Client-Con-Progetto” (o semplicemente “Client”).

Nella versione 7.x Siemens ha mantenuto i nomi della versione 6.x, ma hanno introdotto nella fase di installazione la possibilita’ di fare un setup per un client “Standard” (intendendo in questo caso un client senza progetto).

Nella finestra per la creazione di un nuovo progetto, la voce “client” fa implicitamente riferimento a un “client con progetto”

(MI)

Invia l'articolo in formato PDF a Word PDF