andrivan74 Inserito: 24 novembre 2020 Segnala Inserito: 24 novembre 2020 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
drn5 Inserita: 24 novembre 2020 Segnala Inserita: 24 novembre 2020 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
andrivan74 Inserita: 24 novembre 2020 Autore Segnala Inserita: 24 novembre 2020 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
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