Vai al contenuto
PLC Forum


Istruzione Awl - Significato


Messaggi consigliati

Inserito:

In un programma ho trovato le seguenti istruzioni:

L MW 248

L MW 246

TBN 106

Cosa significa TBN 106 ?

Grazie.


Inserita:

Sei sicuro ? Non mi risulta esista l'istruzione TBN , non l'ho trovata nemmeno nell' .

Inserita:

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

Inserita:

Chiedo umilmente scusa, ha ragione bellcar.

L'istruzione è TNB.

Grazie ancora.

Inserita: (modificato)

Avresti dovuto dire che si trattava del S5

l'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 C000

l'istruzione UN E0.0 ha il codice macchina E000

all'indirizzo di memoria AAAA (valore a caso) c'è C000

all'indirizzo di memoria AABB (valore a caso) c'è E000

il tuo codice è

L KH AABB

L KH AABB

TNB 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: da STEU
Inserita:

Errore

devi scrivere TNB 2

perchè è un'istruzione della lunghezza di una word quindi 2 byte

Inserita:

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'indirizzo

esadecimale 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 grandi

danni 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 qualche

info in più.

pigroplc

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...