mazzucconi Inserito: 17 novembre 2006 Segnala Inserito: 17 novembre 2006 In un programma ho trovato le seguenti istruzioni:L MW 248L MW 246TBN 106Cosa significa TBN 106 ?Grazie.
STEU Inserita: 17 novembre 2006 Segnala Inserita: 17 novembre 2006 Sei sicuro ? Non mi risulta esista l'istruzione TBN , non l'ho trovata nemmeno nell' .
bellcar Inserita: 17 novembre 2006 Segnala Inserita: 17 novembre 2006 In s5 c' era l' istruzione TNB che faceva parte delle istruzioni di sistema , mi sembra che trasferisse da acc 1 a acc2 un certo numero di byte ( nota istruzioni di sistema = complicazioni in vista).La TBN non mi dice niente .Saluti bellcar
mazzucconi Inserita: 17 novembre 2006 Autore Segnala Inserita: 17 novembre 2006 Chiedo umilmente scusa, ha ragione bellcar.L'istruzione è TNB.Grazie ancora.
STEU Inserita: 18 novembre 2006 Segnala Inserita: 18 novembre 2006 (modificato) Avresti dovuto dire che si trattava del S5l'istruzione da te scritta prende 106 byte a partire dall'indirizzo di memoria il cui valore è nella MW 248 (ACCU2)e li trasferisce nell'indirizzo di memoria il cui valore è scritto in MW 246 (ACCU1)Per indirizzo di memoria intendo il valore assoluto della memoria in valore esadecimale.Quindi in teoria con questa istruzione potresti andare a cambiare addirittura il programma.ad esempio:l'istruzione U E 0.0 ha il codice macchina C000l'istruzione UN E0.0 ha il codice macchina E000all'indirizzo di memoria AAAA (valore a caso) c'è C000all'indirizzo di memoria AABB (valore a caso) c'è E000 il tuo codice èL KH AABBL KH AABBTNB 1 (1 perchè è un'istruzione ad un byte)nell' PB o FB o OB dove c'era U E 0.0 troverai UN E 0.0 Modificato: 18 novembre 2006 da STEU
STEU Inserita: 18 novembre 2006 Segnala Inserita: 18 novembre 2006 Erroredevi scrivere TNB 2 perchè è un'istruzione della lunghezza di una word quindi 2 byte
pigroplc Inserita: 18 novembre 2006 Segnala Inserita: 18 novembre 2006 un po di tempo fa si utilizzava questa istruzione di sistema per trasferire un blocco di dati oppure una area di memoria contigua con una istruzione sola.In soldoni nel plc c'è una area denominata DB0 che contiene l'indirizzo di memoria di start per ogni DB,lo stesso dicasi per l'area merker (flag).Se vuoi copiare una area di memoria da un DB all'altro basta che vai a puntare sulla DB sorgente leggendo cosa c'è scritto nella word che ti dice dove inizia la DB, poi sommi la quantità di byte per trovare l'indirizzoesadecimale dell'ultimo byte di dati. Lo stesso viene fatto per il destinatario e viene parcheggiato sul successivo appoggio.TNB trasferisce quindi il numero di byte dichiarato dall'area di memoria (hex) da accumulatore 1 a accumulatore 2.Ti evidenzio: l'indirizzo di memoria non parte dall'inizio del pacchetto dati, ma dalla fine.Ovviamente il tutto è fuori dalla gestione dei limiti sintattici integrati in step5, quindi si possono fare grandidanni se non si prevedono controlli a monte del calcolo dei puntatori.Ah queste cose mi ricordano tanto la giovinezza......Spero tanto di esserti stato utile, se ti degni di dirmi di che plc si tratta, magari riesco anche a darti qualcheinfo in più.pigroplc
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