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:
- il valore visualizzato dal campo I/O viene letto dalla Tag “NomeTagLettura” e diviso per 10 prima della visualizzazione.
- il valore introdotto nel campo di I/O verrà moltiplicato per 10 e scritto nella Tag “NomeTagScrittura”
Altre personalizzazioni e controlli possono in questo modo essere implementati per modificare o controllare l’input dell’operatore.
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.
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)
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
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)
Loading ...