pilota60 Inserito: 8 gennaio 2020 Segnala Share Inserito: 8 gennaio 2020 Buongiorno a tutti e buon anno nuovo. Prendo spunto da una discussione recente per una domanda. Chiedevo se fosse possibile da pannello, con Tia, impostare i valori a più variabili tramite però solo un richiamo da pannello stesso. Mi spiego meglio. Ho 100 strumenti in campo e voglio impostare il range (nel caso avvenga una sostituzione) da HMI. Quindi ogni strumento ha 2 valori di range (min-max) da impostare. Per evitare di fare 200 caselle specifiche (2 per ogni strumento), con tutto ciò che comporta chiedevo se fosse possibile, utilizzando il TAG dello strumento come indice, assegnare i valori delle variabili allo strumento giusto. Esempio : una casella con il TAG strumento e due per le variabili per il range da assegnare. Avevo pensato a creare un DB con degli array (uno per strumento) con i relativi valori, ma mi sono bloccato su come puntare da HMI all'array che voglio. Spero di essermi spiegato bene. Grazie per l'attenzione. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 8 gennaio 2020 Segnala Share Inserita: 8 gennaio 2020 crei 3 array; 1 per il valore e 2 per il controllo di range, quindi generi una variabile multiplexata interna che va a puntare il tag array dove il puntatore è un tag interno che può variare da 0 al massimo valore che tu hai indicato. Link al commento Condividi su altri siti More sharing options...
pilota60 Inserita: 8 gennaio 2020 Autore Segnala Share Inserita: 8 gennaio 2020 Ciao Pigroplc e grazie per la risposta. Solo che il termine "variabile multiplexata interna" non mi è particolarmente chiaro. (eufemismo) Ed il problema è proprio quello : come puntare all'array. Link al commento Condividi su altri siti More sharing options...
Cesare Nicola Inserita: 8 gennaio 2020 Segnala Share Inserita: 8 gennaio 2020 (modificato) Io lo farei nel PLC, in SCL. Crei un blocco in SCL e ci scrivi dentro: Quote IF "Avvia_scrittura" THEN "Avvia_scrittura" := false; FOR #i := 1 TO 200 DO "DB_Dati".Arr_dato_1[#i] := "DB_Dati".Dato_1_HMI; "DB_Dati".Arr_dato_2[#i] := "DB_Dati".Dato_2_HMI; END_FOR; END_IF; Dove "avvia_scrittura" è un bit che lancia la scrittura, DB_dati è una DB che contiene due array di dati, da 200 elementi, come da immagine, e i è una variabile INT nell'area Temp del blocco. Dato_1_HMI e Dato_2_HMI sono i due dati da scrivere dal pannello agli array. Lo puoi fare anche nel pannello, con uno script, con lo stesso principio. Modificato: 8 gennaio 2020 da Cesare Nicola Link al commento Condividi su altri siti More sharing options...
Cesare Nicola Inserita: 8 gennaio 2020 Segnala Share Inserita: 8 gennaio 2020 Ops, vedo ora che avevo capito male: il mio esempio è per scrivere lo stesso valore in tutti e duecento i campi. Link al commento Condividi su altri siti More sharing options...
pilota60 Inserita: 8 gennaio 2020 Autore Segnala Share Inserita: 8 gennaio 2020 Ciao Cesare Nicola e grazie anche a te per il contributo. Se non ho capito male nel metodo da te esposto l'inserimento avverrebbe sequenzialmente ( da 1 a 100). Io volevo invece puntare specificatamente ad un valore array(strumento). Dallo script da te inviato non ho capito come posso, inserendolo da pannello, fare il puntamento allo strumento , per es. n°55 Link al commento Condividi su altri siti More sharing options...
Cesare Nicola Inserita: 8 gennaio 2020 Segnala Share Inserita: 8 gennaio 2020 5 minuti fa, pilota60 ha scritto: Dallo script da te inviato non ho capito come posso, inserendolo da pannello, fare il puntamento allo strumento , per es. n°5 Infatti, non si può. Come dicevo, avevo interpretato male la tua domanda. Questo è ciò che chiedevi, se non ho sbagliato anche stavolta. 🙂 Link al commento Condividi su altri siti More sharing options...
pilota60 Inserita: 8 gennaio 2020 Autore Segnala Share Inserita: 8 gennaio 2020 Si, credo che così sia corretto. Ci provo. Grazie ancora. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 8 gennaio 2020 Segnala Share Inserita: 8 gennaio 2020 Link al commento Condividi su altri siti More sharing options...
pilota60 Inserita: 8 gennaio 2020 Autore Segnala Share Inserita: 8 gennaio 2020 35 minuti fa, pigroplc ha scritto: Grazie anche a te, PigroPLC Mi studierò la soluzione più adatta. 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