GianSW Inserito: 8 aprile 2022 Segnala Share Inserito: 8 aprile 2022 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 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) Spero di essere stato chiaro e non troppo dispersivo Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 8 aprile 2022 Segnala Share Inserita: 8 aprile 2022 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 al commento Condividi su altri siti More sharing options...
GianSW Inserita: 8 aprile 2022 Autore Segnala Share Inserita: 8 aprile 2022 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 al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 8 aprile 2022 Segnala Share Inserita: 8 aprile 2022 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 al commento Condividi su altri siti More sharing options...
p.fabio Inserita: 9 aprile 2022 Segnala Share Inserita: 9 aprile 2022 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 al commento Condividi su altri siti More sharing options...
GianSW Inserita: 11 aprile 2022 Autore Segnala Share Inserita: 11 aprile 2022 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 al commento Condividi su altri siti More sharing options...
p.fabio Inserita: 12 aprile 2022 Segnala Share Inserita: 12 aprile 2022 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 al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 12 aprile 2022 Segnala Share Inserita: 12 aprile 2022 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 al commento Condividi su altri siti More sharing options...
GianSW Inserita: 14 aprile 2022 Autore Segnala Share Inserita: 14 aprile 2022 Uso un Panel PC con Wincc runtime Advanced installato, quando ritorneró sulla macchina proveró i vostri consiglio, intanto grazie mille Link al commento Condividi su altri siti More sharing options...
GianSW Inserita: 4 agosto 2022 Autore Segnala Share Inserita: 4 agosto 2022 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 al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora