Vai al contenuto

copiare blocco Byte


Messaggi consigliati

southofsanity
Inserito: (modificato)

Salve a tutti , 

 

ho una periferica che mi ha 40 byte in ingresso e 40 in uscita, indirizzati nella configurazione hardware. in questi byte ci sono molti booleani di segnalazione.

Dato che non posso prendere i singoli bit dagli indirizzi devo spostarli su una DB per poterli elaborare singolarmente. 

esiste una funzione per spostare tutto il blocco indirizzi in nella db? non vorrei spostare byte per byte o word dword che sia.

 

grazie spero di essermi spiegato..

 

 

Modificato: da southofsanity
southofsanity
Inserita:

Yes , è quello che cercavo.... Grazie mille

  • 1 month later...
southofsanity
Inserita:

Ciao, ho provato con sfc 14/15 e anche con sfc20 ma mi da errore,  i dati li ho confrontati sono lunghi uguale, quanlcuno ha qualche idea ? , allego foto hardware (  sono 36 non 40 per varie prove eseguite ).

 

Grazie a tuttiimage.png.5ccd637e28d8660f2f50ecaf7d49088d.png 

Inserita:
2 ore fa, southofsanity ha scritto:

mi da errore

Quale? Sembrerebbe un errore di area di destinazione non abbastanza grande.

 

Comunque guarda qui la BLKMOV dove trovi tutte le info che ti servono e anche il link per tracciare eventuali errori.

southofsanity
Inserita:

L'SFC 14 mi da 

80B1  La lunghezza dell'area di destinazione indicata non è uguale alla lunghezza dei dati utili progettata con STEP 7.

L'SFC 20 mi da

8x22 Errore di dimensione nella lettura di un parametro.

 

Ma le aree di lettura e scrittura erano entrambe di  36, nelle varie prove ho anche fatto una DB dedicata di 36 byte ma nulla , l'errore sparisce solo se leggo 1 solo byte 

mi e venuto il dubbio che nell' hardware lo step 7 voglia la periferia con i byte in sequenza 1350....1385

 

  

Inserita:
1 ora fa, southofsanity ha scritto:

con i byte in sequenza

Non capisco cosa intendi nella configurazione hw in sequenza... vuoi dire che sono sparsi un po' qui e un po' là?

Comunque si, le funzioni di copia leggono e scrivono locazioni di memoria consecutive. Se devi leggere/scrivere 36 bytes, gli stessi devono essere "uno dietro l'altro". Se non lo sono, copia quelli consecutivi con i BLKMOV e gli "sparsi" con dei semplici MOVE.

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