DP/EIB Link Datenhandling

pjoddi

Level-2
Beiträge
212
Reaktionspunkte
54
Zuviel Werbung?
-> Hier kostenlos registrieren
Frage an alle, die den DP/EIB-Link vom großen S schon mal eingestzt haben:

Die Daten werden mittels SFC 59 in einen DB geschaufelt.
Was mich interessiert, ist die weitere Verarbeitung der Daten.

Wenn ich mich im Handbuch richtig informiert habe, liegen die Werte beispielsweise im 2Byte-Format vor, und sind wie folgt definiert:

Wert (value) 2 Byte

[E] [E] [E] [E] [M] [M] [M] [M] [M] [M] [M] [M] [M] [M] [M]

S = Vorzeichen der Mantisse.
E = Exponent der Basis 2 (0...15).
M = Mantisse im Zweierkomplement ( –2048...0...2047)
EIB_Wert = (–1)(S) * (0.01*M) * 2 (E)
Wertebereich : –671 088.64...0...+670 760.96
Auflösung : 0.01 * 2 (Exponent)


Muss ich die Daten jetzt alle manuell in ein reguläres S7- Format wandeln oder gibt es dafür eine Funktion oder liege ich mit meiner Deutung ganz falsch?

Wenn jemand das schon mal ausprogrammiert hat, würde ich mir das natürlich auch gerne ansehen, man muss das Rad ja nicht immer wieder neu erfinden...
 
Hi,

ich finde es leider jetzt nicht, schaue aber heute Abend noch mal nach.
Aber meines Wissens kann man auch 32 Bit Float Werte über den Bus schicken.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, danke, das wäre super!

Da ich die EIB-Seite nicht selbst mache, sondern vorgesetzt bekomme, interessieren mich speziell die 2 Byte Werte, da mir Soll- und Istwerte in diesem Format übergeben werden.
 
Hi,

anbei die zwei Bausteine als SCL-Quelle.

Gruss Daniel
 

Anhänge

  • Float2HalfFloat.SCL.txt
    824 Bytes · Aufrufe: 17
  • HalfFloat2Float.SCL.txt
    802 Bytes · Aufrufe: 15
Hi,

uppps das waren die falschen. ;)
Die im oberen Beitrag sind für die normale Umwandlung (IEEE 754).

Jetzt aber die richtigen. :D

Gruss Daniel
 

Anhänge

  • EIBFloat2Float.SCL.txt
    730 Bytes · Aufrufe: 24
  • Float2EIBFloat.SCL.txt
    880 Bytes · Aufrufe: 13
Zuviel Werbung?
-> Hier kostenlos registrieren
@ Dalbi:

Danke Dir für Deine Bemühungen!
Das beantwortet natürlich meine Frage und löst das Wandlungsproblem.
Danke auch für die Offenlegung Deines Codes!

Fazit:

Soweit mein Kenntnisstand jetzt richtig ist, muss man also die vom EIB kommenden Daten, sofern sie als float im 2Byte-Format daherkommen, aus dem Empfangs-DB nochmals anfassen und in ein S7-Real-Format (oder was gewünscht ist) wandeln.
Erst dann kann man in der S7 damit weiterarbeiten.
 
Hi,

anbei die Bausteine als S7-Projekt.

Gruss Daniel
 

Anhänge

  • EIB_Float.zip
    32,2 KB · Aufrufe: 15
Zurück
Oben