Vai al contenuto
PLC Forum


convertire dati da profinet


Messaggi consigliati

Inserito:

Buongiorno a tutti.

Con un s71200 e tia ver15.1 sto leggendo dei dati provenienti da un modulo profinet che trasmette un valore di posizione usando 4 byte.

Non considerando il byte 3 in quanto la taratura del modulo non potrà mai raggiungere valori tali, ho moltiplicato il byte2 per 65536 +il byte1 x256+ il byte0 per avere il valore dint

 

Così facendo ho ottenuto quello che mi serviva e lavora.

 

Vorrei però capire se esiste un modo più elegante per convertire questi 4 byte in un real oppure in qualcosa che mi permetta di poter avere anche numeri negativi.

Ho provato a simulare un valore negativo e nel caso di -1 tutti i byte assumono valori 255, presumo quindi che comincia a dare valori al contrario.

Grazie a chi mi risponderà

Buona serata

 


Inserita:
16 minuti fa, andrivan74 ha scritto:

ho ottenuto quello che mi serviva e lavora.

Non capisco.... perchè non leggi una DWord?

Se il byte 3 ti infastidisce fai un AND a FFFFFF... o no?

Ciao

Inserita:

Ciao drn5.

Chiaro che la domanda sembra banale, infatti continuavo ad insistere sulla dword ma non restituiva quello che doveva restituire in quanto c'era un conflitto di dword nelle variabili e i dati erano sbagliati. Ho sbagliato io a scrivere ib al posto di id e la cosa non funzionava.

Ho messo in serio dubbio la mia conoscenza di programmazione, sai gli anni passano :(( :((( ma durante la compilazione con v15.1 andava tutto bene.

Per scaramanzia ho fatto un nuovo progetto con la v16 e subito in compilazione mi ha detto che le variabili non sono univoche.

Ora funziona tutto e mi permetto anche di lasciare la il byte3.

Grazie per la tua pronta risposta

Buona serata

 

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