S5 Gleitkommazahl <-> Integer

Eddy001

Level-1
Beiträge
58
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal wieder eine Anfängerfrage von einem der versucht noch die letzten paar Jahre mit einer S5 155 CPU 948 zurecht zukommen.

Also folgendes:
Ich habe eine Wäageeinrichtung über Profibus (IM308C) an unsere S5 angeschlossen. Kommunikation ist auch gegeben. Es kann direkt auf die PEW/PAW ( bzw. PW) zugegriffen werden.

Nun gibt es bei dem Gerät die Möglichkeit sämtliche Gleitkommazahlen (also die Messwerte) als IEEE oder als Siemens KG anzugeben. Wie ich bis jetzt weiß, kann die S5 keine Gleitkommazahlen.

Nur wie verarbeite ich dann dieses Siemens KG (Integer) Format?

MFG
 
Die großen S5-Steuerungen (also auch die 948) können mit Gleitpunktzahlen rechnen. Die S5 verwendet dazu allerdings das KG und nicht das IEEE-Format.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das heißt also ich müsste den Messwert von z.B. 100t auch als 100 angezeigt bekommen wenn ich als Format KG wähle? Weil das hatte ich eigentlich gedacht, jedoch geht es so nicht. Auch wenn ich dann wieder IEEE als Format anwähle, bekomme ich keine realistischen Werte.
 
Hallo Eddy,

die Formate KG und Real (IEEE) unterscheiden sich in der Basis. KG hat als Basis die 2 und
Real hat als Basis die Eulerzahl.
Liest Du die Werte mit L PED aus?

Wenn Du dann auch bei Format KG keine vernüftigen Werte bekommst, dann versuche mal die
Worte und Bytes zu swappen. Vllt. klappt es dann.

Grüße
Gebs
 
Das mit dem L PED habe ich versucht. Geht aber nicht. Kann nur L PY oder L PW angeben. Was ist denn swappen? Habe ja nur Worte die ich übertragen habe.
Also
L PW 192
T DW 0

L PW 194
T DW 1

...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Eddy,

versuch dann mal:

Code:
L   PY 195
T   DL 0

L   PY 194
T   DR 0

L   PY 193
T   DL 1

L   PY 192
T   DR 1
Grüße
Gebs

[Edit]
Swappen ist das Vertauschen der Low und High-Bytes
[/Edit]
 
Hallo Eddy,

die Formate KG und Real (IEEE) unterscheiden sich in der Basis. KG hat als Basis die 2 und
Real hat als Basis die Eulerzahl.
Liest Du die Werte mit L PED aus?

Wenn Du dann auch bei Format KG keine vernüftigen Werte bekommst, dann versuche mal die
Worte und Bytes zu swappen. Vllt. klappt es dann.

Grüße
Gebs
Das stimmt so nicht. Beide sind binärbasiert, sie unterscheiden sich in der Größe des Exponenten (Stellenzahl) und in der Normierung (implizite führende 1 oder nicht). Mehr zum KG-Format ist in den Berger-Büchern zu den großen S5en nachzulesen. Den Aufbau der IEEE-Zahl gibt es im Internet.
 
@Rainer:
Ich hab's etwas verkürzt dargestellt. Im Endeffekt ist es aber so.
KG : Vorzeichen * Mantisse * 2 ^ Exponent
Real: Vorzeichen * Mantisse * e ^ Exponent

Natürlich gibt es auch noch weitere Unterscheide.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das stimmt nicht. Es wird in der Darstellung oft e für Exponent verwendet, dies hat aber nichts mit unserem Freund Euler zu tun.

Bitfolge 31 ....0

Vorzeichen (VZ) : Bit(31)
Exponent (e) : Bit 23-30 Wertebereich 0-255
Mantisse (f) : Bit 0 - 22 Wertebereich 2^-1 ..2^-23

Eine normalisierte Real Zahl wird wie folgt dargestellt VZ * (1,f) * 2 ^ (e-127)
 
Hallo

L PW 192
T DW 0

L PW 194
T DW 1

L DD 0
GFD (Eine Gleitpunktzahl in eine Festpunktzahl (32 bit) umwandeln
T DD 10
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Irgendwie hat alles nicht geklappt. Habe die Kommunikation jetzt direkt mit dem FB192 für die IM308C der Firma Siemens realisiert. Damit hat es geklappt. Lag wohl an den konsistenten Daten ect. das es mit dem direkten Zugriff nicht geklappt hat.
 
Zurück
Oben