Vai al contenuto
PLC Forum


S5 - Indirizzo Db10 ? - Mappa memoria S5-103


Cente

Messaggi consigliati

Ciao a tutti,

vorrei effettuare una copia da DB10 a Merker di un set di word contigue utilizzando l'istruzione di trasferimento TNB.

Ho tutto ... ma mi manca l'indirizzo iniziale del DB10 per poi ricavarmi l'offset necessario etc.

Qualcuno ha una idea di come si trova ?

Sul manuale c'e' qualche riferimento a SD208 descritto come indirizzo del primo blocco dati.

Solo che nel mio sistema è sempre nullo...

Grazie 1000!!!

Nicola

Link al commento
Condividi su altri siti


Ciao Cente,

so che esistono delle operazioni si sistema per il trasferimento tipo TNW o TXB e queste operazioni io le ho viste nelle CPU 948, sei certo che le vecchie CPU 103 abbiano integrate queste operazioni?

Link al commento
Condividi su altri siti

Potresti scrivere una stringa riconoscibile nel DB10 per esempio tante "A", poi cercare nella memoria RAM, con "AG visualizza contenuto ..." la successione dei codici ASCII 41 (Decimale 65) a partire dall'area dati utente e vedere così l'indirizzo assolulto dell'indirizzo della stringa.

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

altra piccola nota ... ad ogni compattamento della memoria AG cambia l'indirizzo assoluto del DB10 ... quindi bisogna stare a ricercarselo.

Se non erro in rete c'è qualche nota per trovare in modo relativamente semplice gli indirizzi assoluti nella memoria AG.

Ciao

Link al commento
Condividi su altri siti

Grazie a tutti per i consigli e le risposte.

Non sono un gran frequentatore di forum, ma sono stato piacevolmente sorpreso.

Si', TNB esiste per CPU103, c'è anche un bell'esempio sul manuale (7-67), ahime' non c'è nozione di come ricavarsi gli indirizzi che servono. STEP5 fornisce qualche info, tipo address iniziale Merker, Contatori etc... ma nulla relativo ai DB (o nulla che io sia in grado di decifrare).

Nel manuale ho visto che SD208 ha una descrizione che recita "Indirizzo Iniziale del blocco Dati", solo che nel mio applicativo è sempre nulla.

Mi è stato detto da un vostro "collega" (io sono autodidatta impegnato in un progettino di domotica per casa mia) che gli indirizzi dei DB dovrebbero essere salvati come array in un certo punto della memoria.

In piu', questi fatidici indirizzi cambiano (come diceva il moderatore... di cui non ricordo il nome - sorry - )... pero' la zona dove trovarli rimane costante.

Non so se questo puo' aiutare a far venire in mente a qualcuno qualche idea...

Si', su internet ho cercato, forse non abbastanza intelligentemente, ma non ho trovato nulla...

Consigli ?

Grazie ancora

Nicola

P.S. Ho provato a mettere una firma in testa al DB10 (c'avevo pensato anch'io...).

A parte che spazzolarsi 10k di RAM mi fa incrociare gli occhi (e non ho trovato la firma), ahime', l'allocazione dei DB cambia... è un reverse engineering che porta poco lontani. L'idea era buona pero' :).

Modificato: da Cente
Link al commento
Condividi su altri siti

L'indirizzo assoluto iniziale di un DB e' registrato in una word di memoria il cui indirizzo si ricava sommando a (HEX)E400 il doppio del numero di DB. Per caricare in ACCU1 l'indirizzo iniziale di DB10

L KH E414 ;carica E414 in ACCU1
LIR 0    ;carica il contenuto di E414 in ACCU1

LIR 0         ;carica DB10.DW0
T MW0

Link al commento
Condividi su altri siti

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...