Cristina Fantoni Inserito: 24 settembre 2008 Segnala Inserito: 24 settembre 2008 Ciao ho una battuta di arresto con CoDeSys utilizzato su PLC Wago...una operazione che con altri PLC risolvo con una riga di programma, qui non riesco a realizzarla se non con una riga per ogni variabile... Il problema e' questo:dovendo assegnare un certo numero di variabili contigue, ad un corrispondente numero di variabili contigue differenti, con il Telemecanique, in ST, scrivo, per esempio%MW100:10:=%MW500:10;ed il gioco e' fatto: mi scrive tutte le variabili %MW100 - %MW109 nelle variabili %$MW500 - %MW509Con CoDeSys questa istruzione non viene accettata e la segnala come errore, per cui mi toccherebbe eseguire la stessa istruzione per 10 volte, e con il copia incolla non sarebbe un grosso problema, se fossero solo 10.... ma quando sono di piu'... Qualcuno ha avuto questa necessita', e, soprattutto, come l'ha risolta?Grazie
poix Inserita: 24 settembre 2008 Segnala Inserita: 24 settembre 2008 ciao!prova a dichiarare un array di dati invece delle dieci variabili e utilizza un ciclo for di questo tipo.Al max puoi creare un array che si sovrappone alla memoria delle due variabili.Dato che sono contigue e conoisce la dimensione potresti usare un puntatore che scorre le varie celle.Adesso non ricordo bene la sintassi.ciao ciao
Cristina Fantoni Inserita: 26 settembre 2008 Autore Segnala Inserita: 26 settembre 2008 Grazie poix, ma non e' proprio cio' che vado cercando, anche perche' alcune delle mie variabili da spostare fanno parte di DataTypes, per cui creare degli annidamenti multipli e' una cosa che escluderei a priori.Inoltre dover usare dei puntatori per copiare semplicemente delle variabili... In ogni caso, nel frattempo, ho scoperto che nella libreria SysLibMem.lib ci sono dei blocchi che sembrano fare al caso mio: servono per spostare e/o copiare delle variabili DWORD Dato che la prossima settimana vado a collaudare il tutto, verdo' anche se funziona davvero come vorrei...Naturalmente vi terro' aggiornati
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