Vai al contenuto
PLC Forum


Lettura dati da array di byte


luca_82

Messaggi consigliati

Ciao a tutti, sto lavorando con Tia-portal su un ET200SP. ho stabilito un collegamento Ethernet su protocollo libero con un sensore che mi da come dati di scambio 5 byte e sulla funzione TRCV_C sul parametro DATA ho messo un array di 5 byte, esattamente una variabile memorizzata sul DB5.DBB138.

I miei 5 byte quindi stanno su 

DB5. DBB138  00

DB5. DBB139  00

DB5.DBB140  7D

DB5.DBB141  00

DB5.DBB142  00

 Vicino ho riportato i valori che il lettore mi da indietro e fino a qui sono riuscito a farlo funzionare. Il problema ora è che devo prendere i byte DB5.DBB140 e DB5.DBB141 (in esadecimale 7D00) che corrisponde a 32.000 in binario, dividere quel valore per mille ed appoggiarlo su di un numero intero.

Qualcuno sa dirmi come posso estrapolare due byte che appartengono ad un array di byte per poterli lavorare?

Ciao, grazie mille a tutti.

Link al commento
Condividi su altri siti


Grazie mille!! in realtà su quel byte trovo 16#7D che corrisponde a 125 in decimale, quindi mi basta moltiplicare per 256 e mi ritrovo 32000, il valore che dovevo prendere dai due byta 16#7D00!!

Poi cercherò anche di capire il perchè.....ma quindi non c'è un istruzione che ha questo scopo?

Grazie di nuovo.

Link al commento
Condividi su altri siti

Giuseppe Signorella
Quote

Qualcuno sa dirmi come posso estrapolare due byte che appartengono ad un array di byte per poterli lavorare?

Ciao,  ti basterebbe fare un semplice "MOVE" dei due byte.

Li vuoi mettere in una word?

Trasferisci il Byte 140 nel primo Byte della word, ed il 141 nel secondo byte della word.

Se vuoi farlo all'interno del DB, puoi usare la sovrapposizione delle aree.

 

 

Link al commento
Condividi su altri siti

Si se leggo 7D00 fa 320000, e appoggiando i due byte in una word probabilmente era già sufficiente ed anche facile....è solo che nonostante fosse semplice non c'ho pensato...:thumbdown: a volte capita!!

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