Step 7 Zweierkomplement

levi

Level-2
Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend Kollegen,

ich bin gerade dabei eine Waage von Analog Ansteuerung auf Profibus umzustellen, da wir nicht genügend Analog Ausgänge haben. Das Problem was ich jetzt habe ist das die Kommunikation als 2er Komplement läuft was mir bei meinen aktuellen Wissensstand Kopfzerbrechen macht. Die Erklärungen im Internet leuchten mir auch net wirklich ein und die Step7 Bausteine „NEG_I“ und „NEG_DI“ machen irgendwie auch nicht das erhoffte.

Hätte wer von euch einen verständlichen Ansatz bzw einen „Lösungs Ansatz“ das 2er Komplement umzurechnen?
32 Bit Zweierkomplement .jpg

Danke schon mal für Hilfe Stellungen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da musst Du eigentlich gar nichts umrechnen, 32 Bit mit Zweierkompliment ist die normale Darstellung einer DINT Zahl. Soweit die Byteausrichtung (Stichwort: Little Endian, Big Endian) passt kannst Du die Daten direkt ausgeben, ansonsten musst Du halt alle Bytes einmal durchtauschen.

Von irgendwas mit Internetzugang gesendet
 
Guten Morgen,

ein einfaches Darstellen funktioniert leider nicht da bekomme ich Grütze raus, im Anhang befinden sich Bilder des Bitmusters beim befüllen. ich müsste eigentlich werte bekommen die zwischen 0-1000kg was den Füllstand der Waage entsprechen soll.



waage befüllt wieder.jpgWaage befüllung ende.jpgWaage wird entleert.jpg
 
Ich denke, da liegt lediglich ein Endianness-Problem vor - das ist ja auch so im Bild in Beitrag #1 beschrieben. Da muß vermutlich einfach nur die Reihenfolge der Bytes getauscht werden (AWL-Anweisung TAD).

Wieviele Nachkommastellen enthält der Wert?

L-Word = +17381 --> TAD --> 58691 = 586,91kg ?
L-Word = -18336 --> TAD --> 24760 = 247,60kg ?
L-Word = -29732 --> TAD --> 56459 = 564,59kg ?


Harald
 
Zurück
Oben