lupusimprobus Inserito: 20 marzo 2017 Segnala Share Inserito: 20 marzo 2017 Buongiorno a tutti. Ho realizzato uno script lato pannello operatore (WinCC Flexible TIA TP900 Comfort) che va a leggere un array di interi (circa un migliaio) per scriverli in un file di testo. Il ciclo funziona nel modo seguente: 1 ) Nel programma PLC: a ) Scrivo i dati nell'array di interi; b ) Setto un bit per avviare lo script sul pannello operatore 2 ) Nel pannello operatore: a ) Il bit che avvia lo script è messo in lettura continua (1 s) b ) Al cambio di valore del bit avvio lo script c ) Nello script valuto che il bit di comando sia true (per evitare che venga ripetuto lo script anche quanto il bit cambia valore per tornare False) d ) eseguo lo script che legge il valore degli interi e li scrive nel file di testo. 1) Se imposto la variabile Dati : "Array[1..999] of INT" non in lettura continua ovviamente il pannello operatore non andrà mai a leggere i valori dal PLC ed otterrò tutti ZERO. 2) Se la imposto in lettura continua (1 s) devo attendere più di un secondo dopo aver scritto i dati all'interno del DB del PLC prima di settare il bit di avvio dello script, per essere sicuro che il pannello abbia i dati aggiornati da scrivere. Con la versione 2) lo script funziona correttamente ma trovo poco efficiente mantenere sempre attiva la lettura di tutto l'array ogni secondo anche quando il ciclo non lo richiede. E' possibile aggiornare l'array direttamente dallo script in modo da andare a leggere i dati solo quando serve? In alternativa potrebbe essere valido settare l'array con aggiornamento "su richiesta" e richiamare la funzione "Aggiorna variabile" solo al cambio di valore del bit che comanda l'avvio dello script? Grazie per ogni suggerimento. Buona giornata a tutti, Valerio. 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