>
DOMANDA:
Da dove arriva la segnalazione di errore "Script: More than 5000
actions in work" nel file di diagnostica?
RISPOSTA:
Questa segnalazione di errore viene creata nel file
"WinCC_Sys_xx.log" posto nella directory
"<Drive>:\Siemens\WinCC\Diagnose". Se compare la segnalazione
di errore, lo Script-Task non può più elaborare le azioni (nelle
pagine / Global Script / funzione con l'evento Start-Stop di una
curva in TagLogging). Questo può avere diverse cause:
- In queste azioni vengono utilizzati trigger
standard.
Esempio
Un'azione con un trigger standard di un secondo viene eseguita
ogni secondo, indipendentemente dal fatto se essa debba essere
eseguita o no. Se queste azioni non possono essere eseguite nel
momento giusto, perché ci sono ancora altre azioni da elaborare,
esse vengono scritte in un buffer. Quando le registrazioni
raggiungono il 5000, si ha una registrazione nel LogFile.
Rimedio
Per azioni che dipendono da un evento, si dovrebbe utilizzare un
trigger variabile. Per la variabile si può indicare un trigger che
indichi quanto spesso si deve sorvegliare la variabile. In questo
caso l'azione viene eseguita solo se il trigger della variabile è
effettivamente cambiato. Questo porta non solo ad un aggiornamento
più veloce della pagina, ma anche ad una più veloce selezione della
pagina stessa.
- Le azioni nel GlobalScript non possono essere
elaborate nel tempo assegnato.
Esempio:
Ogni 5 secondi devono essere eseguite 5 azioni globali. Poiché per
l'elaborazione della 2. azione serve più tempo di quanto previsto,
le restanti 3 azioni vengono inserite in una queue. Se questo fatto
si ripete, allora tutte le azioni che non possono essere elaborate
vengono registrate in un buffer, fino a quando questo è pieno.
Quando la queue va in overflow, allora viene generata questa
registrazione nel file di diagnostica.
- Tramite loop senza fine e deadlocks negli
script.
- La segnalazione di errore compare più spesso,
se si archivia in TagLogging, in modo selettivo
ciclico oppure aciclico, un numero maggiore di
variabili. Le funzioni di start/stop (inizio/fine
dell'archiviazione) vengono eseguite ogni 500 ms. Poiché questo
succede per ogni variabili, l'applicazione "script.exe" viene
caricata pesantemente. Non archiviare mai con questo metodo più
di 10 variabili.
Rimedio:
Utilizzare le funzioni ODK per abilitare/disabilitare archivi di
processo:
TLGConnect(NULL,NULL);
TLGLockArchiv(NULL,"Archivname",TRUE,NULL); //TRUE = Blocca FALSE =
Abilita
TLGDisconnect(NULL);
Ricerca
Performance, segnalazione di errore
|