admin

Circa admin

Questo autore non ha riempito alcun dettaglio.
Finora admin ha creato 317 post nel blog.

Rilevare la posizione del mouse

Puo’ essere utile avere la posizione del mouse da script.

Seguire la seguente procedura come esempio.

  1. Inserire dalla libreria HMI Symbol Library l’oggetto Basic Shapes \ Banner
  2. Impostare la proprietà Stile su Trasparente
  3. Usare l’evento MouseOver per avere le coordinate del mouse

L’evento MouseOver dell’oggetto viene chiamato passando tra i parametri anche le coordinate del mouse.

In questo semplice modo sono possibili iterfacce di selezione degli oggetti a video come liste o altro.

Di |2009-07-28T17:20:14+02:00Luglio 28th, 2009|BasicScript, cScript, Esempi WinCC, Graphics Designer|0 Commenti

Service Pack 3 per WinCC V6.2 (incluse opzioni)

E’ scaricabile dal sito Siemens il SP3 per WinCC 6.2 e le relative opzioni collegate.

L’aggiornamento permette, tra le novità, la compatibilità con Windows XP Professional SP3 che non era ancora garantita.

Le informazioni principali e i moduli d’ordine al seguente link:

http://support.automation.siemens.com/WW/view/en/35958408

Il service pack e le relative opzioni con la documentazione allegata si trovano per il download al seguente indirizzo:

http://support.automation.siemens.com/WW/view/it/35958594

La versione ASIA invece si trova scaricabile al seguente indirizzo:

http://support.automation.siemens.com/WW/view/en/36068277

Come sempre si consiglia un backup completo prima dell’aggiornamento e (se possibile) la verifica in laboratorio della compatibilità del progetto prima di trasferire l’aggiornamento sull’impianto in produzione.

Di |2009-06-20T11:26:05+02:00Giugno 20th, 2009|Documentazione|0 Commenti

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.

Di |2009-05-28T00:00:25+02:00Maggio 28th, 2009|cScript, Esempi WinCC|0 Commenti

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.

Di |2009-05-22T08:29:46+02:00Maggio 22nd, 2009|Documentazione|0 Commenti

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)

Di |2009-05-18T10:25:02+02:00Maggio 18th, 2009|DataBase, Esempi WinCC|0 Commenti

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

Di |2009-05-08T12:55:22+02:00Maggio 8th, 2009|cScript, Esempi WinCC|0 Commenti

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)

Di |2009-05-08T12:25:10+02:00Maggio 8th, 2009|Documentazione|0 Commenti

Patch 1 per WinCC V7.0 SP1

E’ disponibile la Patch 1 per WinCC V7.0 SP1 che risolve i seguenti problemi:

  • In un sistema client-server, problemi riguardanti la visualizzazione di allarmi sui client durante la fase di switch di ridondanza da un server all’altro.
  • Dopo un aggiornamento da WinCC v7.0 a WinCC V7.0 SP1, istallando anche SIMATIC NET 2008 incluso nel DVD di istallazione di WinCC, si ha l’errore di licenza di SIMATIC NET IE SOFTNET LEAN, essendo questa ancora quella del SIMATIC NET 2007 fornita con WinCC V7.0.
  • Sporadici messaggi di errore nel caso in cui si abbia con WinCC V7.0 SP1 ASIA contemporaneamente la chiave hardware USB e una memoria di massa collegata ad un’altra porta USB del computer.

La Patch 1 è scaricabile al seguente link (FAQ. 35401857):

http://support.automation.siemens.com/WW/view/de/35401857

La patch va installata su tutte le macchine con WinCC V7.0 SP1

Di |2009-04-21T18:15:42+02:00Aprile 21st, 2009|Comunicati|0 Commenti

Usare la tastiera a video

Per attivare la tastiera a video nei sistemi con touchscreen esiste un utility richiamabile con la funzione ProgramExecute()

TouchInputPC.EXE

L’utility prevede alcuni parametri all’avvio

-NoInfo (non viene visualizzato il fastidioso copyright)
-NumPadOff (default visualizzazione normale)
-NumPadOn (visualizzazione solo del pad numerico)

Per chiudere l’utility un sistema può essere terminare la’pplicazione con il taskkill di windows

taskkill /F /IM TouchInputPC.EXE

da esegure sempre con il ProgramExecute da cScript

Di |2009-02-14T12:15:18+02:00Febbraio 14th, 2009|cScript, Esempi WinCC|0 Commenti

Conoscere il numero di allarmi non riconosciuti

Spesso è utile conoscere il numero di allarmi non ancora riconosciuti.

Con il seguente codice cScript è possibile rilevare il numero di allarmi non ancora riconosciuti.

#include “apdefap.h”
 char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
static char ret[59];
CMN_ERROR Error ;
DWORD dwCount ;
MSRTGetMsgQuit (&dwCount ,&Error);
sprintf(ret , “%ld”,dwCount);
return  ret;
}

Come per l’esempio già pubblicato che riporta il numero di allarmi attivi si utilizzano funzioni documentatate nell’odk di WinCC.

Di |2009-01-08T16:01:07+02:00Gennaio 8th, 2009|Alarm Logging, cScript|0 Commenti

Avviare il runtime di WinCC da riga di comando

Se è necessario avviare il runtime da riga di comando ecco la riga di comando da eseguire:

AutoStartRT
C:\percorso\nomeprogettowincc.MCP
/Activ:yes /LANG=ENU /EnableBreak:yes

sostituire percorso con il percorso del tuo progetto
sostituire nomeprogettowincc.mcp con il nome del file di progetto che ha estensione mcp

Il parametro

EnableBreak:yes

Abilita il pulsante cancel all’avvio del runtime

EnableBreak:no

Lo disabilita (non lo visualizza)

Di |2008-11-05T15:47:45+02:00Novembre 5th, 2008|Documentazione|3 Commenti
Torna in cima