AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Single Werte bei Modbus, Delphi 7 und IEEE754
Thema durchsuchen
Ansicht
Themen-Optionen

Single Werte bei Modbus, Delphi 7 und IEEE754

Ein Thema von HariboHunter · begonnen am 20. Dez 2006 · letzter Beitrag vom 20. Dez 2006
Antwort Antwort
Benutzerbild von HariboHunter
HariboHunter

Registriert seit: 5. Okt 2004
Ort: Kentucky
78 Beiträge
 
#1

Single Werte bei Modbus, Delphi 7 und IEEE754

  Alt 20. Dez 2006, 13:51
Die HEX- Darstellung von Single Werten bei Modbus, Delphi7 und der IEEE754 Norm Unterscheidet sich ein wenig.
Da ich ein wenig gebraucht habe, um da durchzusteigen, hier ein kleiner Hinweis.

Legende:
M= Mantisse
S= Vorzeichen- Bit
E= Exponent

Modbus:

MMMM MMMM MMMM MMMM SEEE EEEE EMMM MMMM
Byte3 Byte4 Byte1 Byte2

Delphi (und C++):

MMMM MMMM MMMM MMMM EMMM MMMM SEEE EEEE
Byte4 Byte3 Byte2 Byte1

IEEE 754 Standard:

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
Byte1 Byte2 Byte3 Byte4

---------------------------------------->>
Reihenfolge

Tschö
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Single Werte bei Modbus, Delphi 7 und IEEE754

  Alt 20. Dez 2006, 14:24
Scheint mir eher ein Problem der Byte Order zu sein (Motorola <-> Intel) als der Codierung an sich. Ich würde die Datenbytes richtig umkehren/drehen wenn eine solche Konvertierung an einer Schnittstellenseite nötig wird.

Der IEE754 Standard sieht es sogar genauso wie Delphi und C++. Der Standard geht von einer Standardansicht aus (LSB->MSB) und deine Darstellung ist schon die direkte "verdrehte" Intel Byte Order auf dem PC im Speicher. Der ModBus wiederrum überträgt es richtig, aber es wird nicht im Inteldesign vertauscht. Die letzte Tatsache würde bedeuten, der Wert wird byteweise eingelesen und nicht wordweise, dann sollte dies wieder mit deiner Delphi/C++ Darstellung übereinstimmen. Damit wäre dann auch gleichzeitig die IEE754 Darstellung erfüllt.
  Mit Zitat antworten Zitat
Schlingel

Registriert seit: 15. Feb 2003
Ort: Österreich
67 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Single Werte bei Modbus, Delphi 7 und IEEE754

  Alt 20. Dez 2006, 17:29
Hallo

... bei manchen Modbus - Geräten ist dieses Verhalten einstellbar. (SWAP = True / False)

Dein Freund ist übrigens auch die gleichnamige Delphi-Funktion Swap:

Die Funktion Swap vertauscht das höherwertige mit dem niederwertigen Byte eines 16-Bit-Wertes.


Gruss
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz