Giacomo Grassi Inserito: 16 giugno 2015 Segnala Inserito: 16 giugno 2015 Salve a tutti vorrei sottoporvi una domanda: Ho un db composto da circa 50 dati (tutti in formato intero). Devo copiare l'intero db in un altro sempre composto da 50 dati in formato intero. Devo ripetere questa operazione circa una decina di volte nel mio programma e voi capite che copiare ogni singolo dato per volta con delle Move diventerebbe ingestibile. Premetto che programmo l'S7-1200 in Kop e non conosco Scl. Ringrazio chi gentilmente mi può aiutare. Giacomo.
dott.cicala Inserita: 17 giugno 2015 Segnala Inserita: 17 giugno 2015 (modificato) In tia portal...il fantastico....esiste ancora sfc20 alias Modificato: 17 giugno 2015 da dott.cicala
batta Inserita: 17 giugno 2015 Segnala Inserita: 17 giugno 2015 Se la struttura sorgente e quella di destinazione sono uguali, basta utilizzare l'istruzione MOVE.
Giacomo Grassi Inserita: 18 giugno 2015 Autore Segnala Inserita: 18 giugno 2015 Grazie per le risposte. Batta non posso usare MOVE altrimenti riempirei tutto il programma (50x10=500 move); pensavo di usare degli array e poi usare l'istruzione MOVE_BLK. Creo il mio array di 50 word e poi con l'istruzione MOVE_BLK copi questo array in un'altro sempre composto da 50 word; in questo modo con 10 MOVE_BLK dovrei cavarmela..voi cosa ne dite? Domanda inerente al problema: in questo array di 50 word posso mettere anche alcuni dati di tipo stringa? Questi dati di tipo stringa non devo elaborarli ma solo passarli da un db all'altro; uso 10 word del mio db per caricare un dato stringa...è corretto o sto solo sognando? Dott.Cicala grazie anche a te ma fatico a comprendere; l'istruzione BLKMOV contiene la sintassi riportata sopra ed è scritta da te? Giacomo.
batta Inserita: 18 giugno 2015 Segnala Inserita: 18 giugno 2015 Batta non posso usare MOVE altrimenti riempirei tutto il programma (50x10=500 move) Non hai capito. Se hai due strutture di dati identiche (oppure array, o strutture contenenti altre strutture, array, variabili e tutto quello che vuoi) con un solo MOVE fai la copia di tutta la struttura. Se hai due DB identici, con un solo MOVE fai la copia di tutto il DB.
dott.cicala Inserita: 19 giugno 2015 Segnala Inserita: 19 giugno 2015 (modificato) Se usi l'indirizzamento simbolico va bene anche 1 solo move. ....è scritta da te? No da Siemens. Ho dichiarato solo la temp assegnata a RET_VAL I primi 3 sono in awl, l'ultimo in kop. Vai sul tuo segmento, inserisci la funzione e digiti BLKMOV....e apri l'.h e l p.....poi fai la stessa cosa col MOVE....e apri l' h e l p Troverai tutte le info che ti servono Modificato: 19 giugno 2015 da dott.cicala
Giacomo Grassi Inserita: 20 giugno 2015 Autore Segnala Inserita: 20 giugno 2015 Grazie ad entrambi. Effettivamente con 2 db identici (contenenti anche dati diversi word,uint,string ecc) mi consente di inserire la MOVE e di compilarlo senza errore. Lunedì mattina lo voglio testare direttamente sull'impianto e se funziona mi avete dato davvero una grossissima mano. Vi faccio sapere. Grazie davvero. Giacomo.
Giacomo Grassi Inserita: 23 giugno 2015 Autore Segnala Inserita: 23 giugno 2015 Ciao confermo (e ringrazio) quello detto da batta e dott.cicala. Usando MOVE si può copiare un db su un'altro db. Per esigenze di programma sono stato costretto a non trasferire l'intero db ma solo una parte; per fare ciò ho utilizzato POKE BLK che da la possibilità di scegliere quanti byte, all'interno di un db, spostare in un'altro db. L'istruzione è parametrizzabile solo in SCL. Grazie ancora per l'aiuto. Giacomo.
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