GiuseppeTeo Inserito: 23 marzo 2020 Segnala Inserito: 23 marzo 2020 Ciao a tutti avrei bisogno un supporto, se qualcuno ha già avuto occasione di utilizzare gli script vbs su HMI per indicizzare degli array di strutture. Mi spiego meglio ho una variabile che può essere interrogata direttamente nel segunete modo PesoIniziale_Mandr1= CStr(SmartTags("DBDataLog_Mandrino{1}.PesoIniziale")) Se questa variabile la voglio mettere all'interno di un ciclo for e quindi indirizzarla in modo dinamico la sua sintassi come diventa? ho provato diverse soluzioni ma sempre con esito negativo. Grazie per l'aiuto
GiuseppeTeo Inserita: 23 marzo 2020 Autore Segnala Inserita: 23 marzo 2020 Ciao a tutti avrei bisogno un supporto, se qualcuno di voi aveva già avuto l'occasione di usare gli script in tia con i pannelli per accedere al puntamento indiretto di array di strutture. Cerco con un esempio di spiegarmi meglio: Ho una variabile che puo essere interrogata nel seguente modo PesoIniziale_Mandr1= CStr(SmartTags("DBDataLog_Mandrino{1}.PesoIniziale")) In questo modo vado a puntare il primo elemento dell'array, se volessi usase un modo dinamico per puntare all'array in questione qualcuno di voi mi sa indicare la sintassi correta? Ho provato una serie di scritture ma tutte con esito negativo. Grazie
Livio Orsini Inserita: 24 marzo 2020 Segnala Inserita: 24 marzo 2020 Aprire 2 discussioni sul medesimo tema non fa ottenere più risposte ma, al massimo, fa chiudere le discussioni.
pigroplc Inserita: 24 marzo 2020 Segnala Inserita: 24 marzo 2020 guarda qui: https://support.industry.siemens.com/cs/document/26165877/tips-and-tricks-for-creating-scripts?dti=0&lc=en-WW e qui https://support.industry.siemens.com/tf/ww/en/posts/array-element-in-a-script/142655?page=0&pageSize=300
ken Inserita: 24 marzo 2020 Segnala Inserita: 24 marzo 2020 ti devi creare la variabile indicizzata. crei una variabile (int) locale (interna al monitor) selezioni la variabile da indicizzare (un elemento dell'array) propietà - generale e vedi la casella inidirizzo clicchi sulla tendina per modificare vedrai variabile dell'indice. avrà il divieto, ci clicchi e scegli variabile. ci assegni la variabile creata. negli script usi poi quella variabile per richiamare l'indice che ti serve. attenzione, se l'indice nel plc non è [0..x] ma [1..x] nel monitor viene trasformato sempre in [0..x] creando un offset
GiuseppeTeo Inserita: 24 marzo 2020 Autore Segnala Inserita: 24 marzo 2020 @Livio Orsini Chiedo scusa ma non mi ero accorto che era stata inviata 2 volte la stessa discussione è un disguido.
GiuseppeTeo Inserita: 24 marzo 2020 Autore Segnala Inserita: 24 marzo 2020 (modificato) @Livio Orsini Ken non i è chiaro quello che intendi. Riesci a farmi un esempio pratico di quello che vuoi dirmi? PigroPLC ti ringrazio dei link indicati ma li avevo gia guardati e fanno tutti riferimento ad una sintassi da usare per arrey standard non di tipo struct. Grazie Modificato: 24 marzo 2020 da GiuseppeTeo
pigroplc Inserita: 24 marzo 2020 Segnala Inserita: 24 marzo 2020 1 ora fa, GiuseppeTeo ha scritto: fanno tutti riferimento ad una sintassi da usare per arrey standard non di tipo struct. mi sa che devi provare ad aggirare l'ostacolo creandoti una variabile multiplex e giocare sul puntatore. Occhio! Fai le prove con un puntatore dichiarato come TAG nel PLC e non interno, altrimenti il rischio che non funzioni è alto.
ken Inserita: 24 marzo 2020 Segnala Inserita: 24 marzo 2020 non c'è molto da chiarire. non devi fare il lavoro nello script ma nelle variabili. è quella la differenza. la variabile invece che essere: "DB595 Ultimi 10 pacchi pesati box1"."Dati pacchi"[1] diventa "DB595 Ultimi 10 pacchi pesati box1"."Dati pacchi"[Pesata selezionata BOX1] dove "Pesata selezionata BOX1" è una variabile temporanea
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