4 Byte (float) auf Real?

klauserl

Level-2
Beiträge
246
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!
Lese über Profibus 4 Byte ein, die im Float (was immer das auch ist) Format ausgegeben werden.
Wie bringe ich dieses Format auf eine brauchbare (z.B. Real) Darstellung.
Habe mir die einzelnen Bytes angeschaut, kann aber mit den Werten nichts anfangen, egal in welcher Reihenfolge ich sie auf zusammenbastle.

Danke!?
 
Die 4-Byte-Float-Zahl entspricht der 4-Byte-Real-Zahl. Eine Konvertierung ist somit nicht notwendig. Die Zahlz ist natürlich in ihrer internen Repräsentation und in keiner Textdarstellung. Mit was soll die Zahl angeschaut werden?
 
Liest du die in ein Rechnerprogramm ein oder in die SPS? Welche Programmiersprache nutzt du?
Hallo!
Habe eine SPS Siemens CPU 315/2DP
In der Variablentabellenansicht hab ich auch die 4Bytes sichtbar, und es tut sich auch in jedem Byte was.
Nur kann ich die Bytes zusammenstellen wie ich will, aber kann damit keine brauchbare Anzeige ( der Wert soll etwa zwischen 12 und 15 dezimal) sichtbar machen.
L.G.
 
... von welchem PB-Teilnehmer (Hersteller und Typ) erhälst du denn den FLOAT ? Möglicherweise deckt sich das Format deines FLOAT nicht mit dem Siemens-Format REAL. Macht der Hersteller dazu keine Angaben (Art des Aufbau's) ?

Gruß
LL
 
Also der Wert der rein kommt soll zwischen 12 und 15 liegen.
Sag uns doch mal was du in den 4 Bytes für Werte hast, die dann diesen Wert zwischen 12 und 15 ergeben
 
Hallo!
...Nur kann ich die Bytes zusammenstellen wie ich will, aber kann damit keine brauchbare Anzeige ( der Wert soll etwa zwischen 12 und 15 dezimal) sichtbar machen.
Hast du schon mit REAL in der S7 gearbeitet?
Wenn du folgendes Progrämmchen laufen läßt:
L MD0
L 1.111111
+R
T MD0
und beobachtest die Akkuinhalte, dann kannst du wählen, ob du Hexadezimal oder Gleitkomma sehen willst.
In Hex passiert genau dass was du beschreibst: "... es tut sich auch in jedem Byte was."
Wenn deine Bytefolge vom Profibus z.B. ab MB 17 (d.h in MB17,18,19,20) abgelegt wird, dann soltest du beim Beobachten von MD17 eine sinnvolle Zahl sehen.
Fall, gibt es 3 Möglichkeiten:
- 1. Dein PB-Teilnehmer verwendet eine gerade umgekerte Anordnung der Bytes (Intel-Format, little endian) als die Simatic. In diesem Fall kannst du bei der Parametrierung angeben, daß du es anders brauchst. Wenn nicht mußt du das 1. Byte mit dem 4. und das 2. mit dem 3. tauschen.
- 2. Dein PB-Teilnehmer verwendet eine Anordnung der Bytes, die weder dem Intel- noch dem Motorola-Standard entspricht (habe ich schon gesehen bei über zwei Modbus-Worte verteilten REALS). Dann kannst du probieren. Es gibt 24 Möglichkeiten 4 Bytes anzuordnen.
- 3. Dein PB-Teilnehmer verwendet sein ganz eigenes Format. Da hilft nur, den Hersteller fragen, ob er Doku oder gleich eine Umwandlungsfunktion bereitstellt.
 
Geh mal in die Hardwarekonfig. Doppelclick auf den Profimess, dann den Reiter "Parametrieren" und dort unter "Gerätespezifische Parameter", die Einstellung ändern.
 
Zuletzt bearbeitet:
Nur ein Beispiel:
L PED (Adresse n von dem Modul voltage PH-N L1-L3)
T MD0
(n ist die Anfangsadresse des Moduls)

Jetzt schaust du MD0 in einer VAT als REAL an, was steht da nun?

Float = Englisch für Gleitpunkt

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Geh mal in die Hardwarekonfig. Doppelclick auf den Profimess, dann den Reiter "Parametrieren" und dort unter "Gerätespezifische Parameter", die Einstellung ändern.

Danke mal allen vorab für die rasche Hilfe!

Komm heut nicht mehr an die Sache ran.
Werde ich morgen gleich probieren!!!
L.G.
 
Hallo!
Danke für die ganzen Tipps!!!

Steck noch immer bei meinem Problem!
Ich weiß noch immer nicht wie ich die 4 Bytes zusammenstellen muss, um eine Real Zahl zu erhalten.
Hab nun eine Beschreibung des Float Formates gefunden. Gibts denn nicht eine Funktion, die das auf eine brauchbare Zahl wandeln kann???

Danke!?!
 

Anhänge

  • Float.doc
    39 KB · Aufrufe: 129
Wo steht denn die Zahl? Im PE? Dann einfach PED xxx bei Stausvar eingeben und als Format Gleitpunkt (wie bereits geschrieben). Wenn es im Merkerbereich steht (nach L PED xxx T MD yyy), dann MD xxx usw. Oder was ist genau die aktuelle Frage?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Float_1.jpgFloat_2.jpg

Was wird nun in der so deklarierten Variablentabelle angezeigt?
Das schlimmste was dir dann noch passieren kann (falls der Wert falsch ist),
ist der von Ralle hier beschriebene Punkt.

Mfg
Manuel
 
Soweit ich das beurteilen kann entspricht der Aufbau deines FLOAT genau dem Siemens REAL-Format.

Des weiteren siehe MSB und Ralle ...

Gruß
LL

Das ist definitiv so. Das habe ich bereits in meinem ersten Beitrag geschrieben. Es könnte nur sein, dass die Bytereihenfolge verdreht ist. Wenn wir endlich eine Antwort auf die mehrfach gestellten Fragen "Was wird in welcher Darstellung wie angezeigt" bekommen, können wir dies auch beurteilen. Warten wir weiter ... :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das mit der Bytereihenfolge ist ein guter Tipp.
Ich glaub das meine GSD nicht die ganz richitge ist.
Werd mich mal um ne aktuelle umscchauen müssen.
Besten Dank nochmals für eure Hilfe!!!
L.G.
 
Könntest Du auch so nebenbei mal unsere Fragen beantworten? (Wie, in welcher Darstellung, was etc.) Möglichkeiten gibt es viele. Um zielgerichtet vorzugehen habe ich dies bereits vor 24 Stunden gefragt (war auch nicht der einzige) und noch keine Antwort erhalten.
 
Zurück
Oben