luca_82 Inserito: 1 agosto 2017 Segnala Inserito: 1 agosto 2017 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.
84paolo Inserita: 1 agosto 2017 Segnala Inserita: 1 agosto 2017 Ciao. Se prendi il byte 140, lo moltiplichi per 256 e poi sommi il 141 dovresti avere il valore che ti interessa
luca_82 Inserita: 2 agosto 2017 Autore Segnala Inserita: 2 agosto 2017 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: 3 agosto 2017 Segnala Inserita: 3 agosto 2017 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.
luca_82 Inserita: 3 agosto 2017 Autore Segnala Inserita: 3 agosto 2017 Si Giuseppe,l'idea era proprio quella di prendere i due byte e farci una Word!!
84paolo Inserita: 3 agosto 2017 Segnala Inserita: 3 agosto 2017 Ciao. Ma tu hai detto che il calcolo fa 32000, ma infatti è giusto. Le lo leggi in esadecimale è 7D00 come avevi detto tu
luca_82 Inserita: 4 agosto 2017 Autore Segnala Inserita: 4 agosto 2017 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... a volte capita!!
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora