Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




VB Script WinCC RT Advanced variabili non aggiornate


Messaggi consigliati

Inserito:

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

 


Inserita:

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.

Inserita:

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?

Inserita:

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.

 

Inserita:

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"

Inserita:

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

Inserita:

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.

 

 

Inserita:

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

 

 

Inserita:

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

  • 3 months later...
Inserita:

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)

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...