Vai al contenuto
PLC Forum


Lettura dati da array di byte


Messaggi consigliati

Inserito:

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.


Inserita:

Ciao. Se prendi il byte 140, lo moltiplichi per 256 e poi sommi il 141 dovresti avere il valore che ti interessa

Inserita:

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.

Giuseppe Signorella
Inserita:
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.

 

 

Inserita:

Si Giuseppe,l'idea era proprio quella di prendere i due byte e farci una Word!!

Inserita:

Ciao. Ma tu hai detto che il calcolo fa 32000, ma infatti è giusto. Le lo leggi in esadecimale è 7D00 come avevi detto tu

Inserita:

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

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