Baumer GK473 Benutzerhandbuch

Seite 26

Advertising
background image

Handbuch_GK473_S7_Profibus_DE.doc 26/32

Baumer IVO GmbH & Co. KG

04.05.11

Villingen-Schwenningen,

Germany

5.4 FC 1 - ASCII Zahl (6 Byte) in Realzahl

Diese Funktion wird von den Funktionen FC10, FC11, FC12 und FC13 benötigt, um die erhaltenen
Daten der SPA in eine Realzahl (Gleitkommazahl nach IEEE-754) umzuwandeln.
Die Funktion liest die eingehenden Daten, die sich im ASCII Format befinden, aus einem DB (in
diesem Beispiel DB20) und konvertiert diese in die Floating Point Darstellung.
Dazu wird das ASCII Zeichen zuerst in eine Integer Zahl umgerechnet und diese danach mit 10
multipliziert. Es wird das nächste ASCII Zeichen eingelesen, umgerechnet, zum vorherigen Ergebnis
addiert und wieder mit 10 multipliziert. Dies geschieht bis zur letzten eingelesenen Zahl, die einfach
nur noch aufaddiert und das Ergebnis danach nicht mehr multipliziert wird, sondern, um die zwei
Nachkommastellen zu erhalten, durch 100 dividiert wird.

Zur Veranschaulichung: (positive Zahl)

0x31 Æ 1

multipliziert mit 10 -> 10

0x32

Æ

2 + 10 = 12 multipliziert mit 10 Æ 120

0x33

Æ

3 + 120

= 123 multipliziert mit 10 Æ 1230

0x34

Æ

4 + 1230

= 1234 multipliziert mit 10 Æ 12340

0x38

Æ

8 + 12340

= 12348 multipliziert mit 10 Æ 123480

0x36

Æ

6 + 123480

=123486 dividiert durch 100 Æ 1234,86


Analog bei negativem Vorzeichen:

0x2d Æ - (negatives Vorzeichen, nur 5 Zahlenwerte einzulesen)

0x34

Æ

4

= 4 multipliziert mit 10 Æ 40

0x33

Æ

3 + 40

= 43 multipliziert mit 10 Æ 430

0x32

Æ

2 + 430

= 432 multipliziert mit 10 Æ 4320

0x38

Æ

8 + 4320

= 4328 multipliziert mit 10 Æ 43280

0x36

Æ

6 + 43280

= 43286 dividiert durch 100 Æ 432,86

Negieren der Zahl, da negatives Vorzeichen Æ -432.86

Dabei läuft die Funktion bei negativem Vorzeichen einen anderen Programmteil als bei einem
positiven Vorzeichen ab. Wie auch bei der Anzeige der SPA ist der Wertebereich begrenzt. Im
positiven Zahlenbereich lässt sich maximal 9999.99 darstellen, im negativen Zahlenbereich bis zu –
999.99.



5.5 FC 5 – Realzahl in ASCII

Diese Funktion wird von der Funktion FC13 benötigt, um den übergebenen Sollwert vom Realformat in
das ASCII Format zu konvertieren. Dazu benutzt die Funktion den Datenbaustein 97 in den sie den
Sollwert im ASCII Format nach der Umrechnung schreibt. Die Umrechnung wird folgendermaßen
realisiert.
Zuerst wird der Sollwert mit 100 multipliziert, so dass die Nachkommastellen wegfallen. Die
Gleitkommazahl kann ohne Rundungsfehler in eine Integerzahl (Ganzzahl) gewandelt werden. Diese
Zahl wird dann wiederum in eine BCD (Binary Coded Decimal) konvertiert. Da es nicht möglich ist
unter AWL nur 4 Bytes zu laden (eine BCD Ziffer) müssen immer 8 Bytes, also 2 Ziffern geladen
werden und durch Verschiebeoperationen und Ausmaskieren getrennt behandelt werden. Die Ziffern
werden hintereinander in den DB97 im ASCII Format geschrieben, dazu wird der Offset auf die Ziffer
addiert.

Beispiel am Sollwert 123,45:
Zuerst wird der Sollwert mit 100 multipliziert: 12345
Als BCD ergibt sich:

BYTE BYTE BYTE

0 1 2 3 4 5


Wenn byteweise darauf zugriffen wird, beispielsweise auf die letzten beiden Ziffern, wird 01000101
binär in den Akku geladen.

4 5

010

0

010

1

Advertising