Jump to content
PLC Forum


VB Script WinCC RT Advanced variabili non aggiornate


GianSW
 Share

Recommended Posts

Buongiorno a tutti, 

Sto utilizzando un VB Script per salvare dei dati in Excel collocati in un DB di una CPU Siemens 1214C.

nel mio DB ho un array [0..6] di un tipo di dati comprendente parecchie variabili di tipo real e interi.

Nell'HMI ho creato una variabile multiplexata per poter salvare il dato di una stazione alla volta ( array [0..6] indica 7 stazioni di lavoro) la variabile che permette di multiplexare questo dato è scritta anch'essa da plc nello stesso DB.

 

Premettendo che le variabili sono in acquisizione continua e con un ciclo di acquisizione di 100ms, noto che la mia variabile multiplexata nell'HMI comprende valori aggiornati e valori non aggiornati (cioè a 0) mentre nel DB quelle variabili hanno un valore diverso da 0

 

129396878_Schermata2022-04-08alle09_07_37.thumb.png.dd94e28a8bae6d81e7f08de70914ee21.png

Questo è il DB da me creato dove la variabile Zona è l'array precedentemente descritto, WriteCSVCmd è una variabile che nell'HMI viene dichiarato che nell'evento fa partire lo script, WriteCSVZoneNr è la variabile che permette di multiplexare l'array,SaveTime è il ritardo tra la scrittura di WriteCSVZoneNr e WriteCSVCmd (permette di aggiornare prima la variabile da multiplexare e successivamente gli arriva il comando)

885575806_Schermata2022-04-08alle09_12_24.thumb.png.d0a6d4cc2707eff50d9d7ad77f076c3b.png

 

Spero di essere stato chiaro e non troppo dispersivo

 

Link to comment
Share on other sites


pigroplc

sempre meglio mettere un ritardo fra il trigger di lettura e i tag da salvare in modo da garantire il rinfresco del dato. Gli script hanno bassa priorità e potrebero risentire del carico di lavoro del pannello.

Link to comment
Share on other sites

Ciao pigroplc,

ho messo un ritardo di 5s tra il trigger e i tag, il mio pannello all'interno ha solo gli script e nient'altro (oltre ad una pagina con 4 pulsanti).

 

Cosa consiglieresti di fare?

Link to comment
Share on other sites

pigroplc

qualcosa mi dice che stai pescando dei tag sbagliati. Per aver la certezza matematica che stai pescando i tag giusti io te li farei appoggiare a tag interni dello script, quindi aggiornerei le celle del file excel coi tag interni. Se anche così i valori sulle celle del file excel non hanno i valori che ti aspetti vuol dire che non aggiorni il PLC.

 

Link to comment
Share on other sites

p.fabio

Hai impostato le variabili di advanced il modo di acquisizione "ciclo continuo"?

Advanced aggiorna le variabili se visualizzate nella pagina in esecuzione o se impostata come "ciclo continuo"

Link to comment
Share on other sites

Ciao p.fabio

si o avevo già impostato.

 

pigroplc, i tag sono corretti ed ogni volta che vado a creare l'excel mi stampo anche l'indice che l'HMI ha multiplexato (ed è coerente)

guardando le variabili nel db e quelli dell'excel le prime sono uguali mentre le ultime sono diverse, aspetto un'altro po' di secondi, faccio riscrivere l'excel con gli stessi dati del db (forzando il tag nel db) ed ecco che i valori mi vengono tutti giusti.

Preciso che sono +/-  1000 Interi 

 

Grazie per le risposte

Link to comment
Share on other sites

p.fabio

1000 variabili in ciclo continuo mi sembrano tante. Che pannello usi? Che tempo d'aggiornamento hanno le variabili?

Prova ad aumentare il tempo d'aggiornamento a 2-3 secondi e/o a spezzare il ciclo di salvataggio a meta.

 

 

Link to comment
Share on other sites

pigroplc

mi ricordo che a suo tempo riscontrai dei problemi sulla esecuzione di script con ricorsioni piuttosto pesanti per la memorizzazione di ricette tramite array, lavorando sul puntatore col banale FOR-NEXT.

Ricordo inoltre di aver risolto appoggiando l'array su un tag array interno quindi il trasferimento dell'array completo in un colpo solo. 

Non so se questo è il tuo caso, ma farei uno script che rinfresca dei tag interni, con un flag di memoria al PLC, quindi con lo stesso flag far partire l'aggiornamento di Excel con i tag interni. 

Se così funziona magari provare ad ottimizzare fino a trovare la soluzione migliore

 

 

Link to comment
Share on other sites

Uso un Panel PC con Wincc runtime Advanced installato, quando ritorneró sulla macchina proveró i vostri consiglio, intanto grazie mille

Link to comment
Share on other sites

  • 3 months later...

Salve, il problema l'ho risolto senza multiplexare le variabili ma credo una fb dove vado a copiare temporaneamente i dati che mi serve salvare.

A tal punto dando 1s di tirato al trigger rispetto al refresh dei dati temporanei la scrittura su excel è coerente.

A tal punto presumo che dichiarando una variabile da multiplexare, l'HMI vada ad aggiornare tutti i valori dell'array e di conseguenza per quello non erano sempre del tutto aggiornate dato che sono molte (è una mia considerazione non ne ho la certezza)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...