Supertony Inserito: 11 dicembre 2011 Segnala Inserito: 11 dicembre 2011 Salve a tutti, sono alle prime esperienze con Wago che naturalmente programmo in Codesys. Lo trovo un gran bel sistema, il linguaggio, così ad oggetti e ben strutturato permette di fare di tutto. Mi trovo però in difficoltà con una cosa che in Allen&Bradley o Siemens avrei risolto con istruzioni tipo BTD o puntatori vari in AWL (o SFC vari)... ovvero la copia di dati tra strutture di tipo diverso. Mi spiego meglio: ho un'area dichiarata come variabili globali, si tratta di un array di 5 WORD. Il contenuto di queste 5 word lo vorrei "spalmare" su una struttura (nel senso proprio di una STRUCT) che internamente è composta esattamente da 80 bit, dichiarati singolarmente. Come posso copiare quelle 5 word sugli 80 bit? in B&R mi sembra ci sia un'istruzione di MEMCPY, ovvero una funzione di "copia" che tiene conto solo degli indirizzi delle aree di origine-destinazione, senza tener conto del tipo di dati... ma qui su Wago (cpu 750-841) non la trovo. Come posso fare?Nello specifico, in quelle 5 word ricevo gli ingressi via Modbus-UDP di un nodo remoto (750-352) al quale sono collegate alcune schede di ingressi digitali, le voglio copiare in tempo reale in una struttura a singoli bit in modo da poter dare un simbolo e un commento ad ogni bit...
Supertony Inserita: 12 dicembre 2011 Autore Segnala Inserita: 12 dicembre 2011 ...acc.. . . ma è così complicata, 'sta cosa? ... intanto è saltato fuori una sorta di MemCopy da una libreria...
Aldo Om. Inserita: 19 dicembre 2011 Segnala Inserita: 19 dicembre 2011 Per accedere ai singoli bits di un byte di ingressi non è necessario copiarlo su una diversa area di memoria dichiarata a bit. Basterebbe usare i bytes su indirizzi assoluti ad esempio con AT %IB0 e poi dichiarare i bits, con rispettive label, forzandone l'allocazione, anche per questi, in modo assoluto ad esempio con AT %IX0.2 in modo da evitare di far perdere tempo al processore nella copia.
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