S5: Zwei Worte zu einer 32bit-Festpunktzahl mit einer CPU943 zusammenfügen?

poppycock

Level-1
Beiträge
253
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe SPS-Gemeinde,

ich habe ein vorerst theoretisches Problem mit dem Zusammenfügen zweier 16bit-Werte zu einer 32bit-Festpunktzahl innerhalb der S5-CPU 6ES5 943-7UB21.
Mir ist nicht ganz schlüssig, wie ich folgendes mit der S5 umsetzen kann, da ich mit der S7 vertrauter bin:

Im DB111 stehen beispielsweise folgendende Werte:
  • DW0 KH FFFF ; High-Word
  • DW1 KH 0001 ; Low-Word
Diese beiden Werte sollen zu einem Zählerstand gehören.
Nun möchte ich im PB23 die beiden Worte aus dem Datenbaustein zu einem Doppelwort zusammenfügen und durch 1000 dividieren.
Der Rest der Division interessiert mich im Moment nicht, mir ist erstmal wichtig zu wissen, ob das überhaupt mit dieser CPU funktioniert...

Heute Abend habe ich kein STEP5 mehr zur Verfügung, aber ist folgender Ansatz richtig bzw. kann die CPU943 damit umgehen?

Code:
A DB111    ; Datenbaustein öffnen
L DW0      ; High-Word aus dem DB111 laden...
T MW0      ; ... und in das MW0 transferieren
L DW1      ; Low-Word aus dem DB111 laden...
T MW2      ; ... und in das MW2 transferieren
L MD0      ; das entstandene Merkerdoppelwort laden
L KF +1000 ; 1000 laden
/D         ; MD0 durch 1000 teilen
T .......  ; Ergebnis speichern...


Besten Dank,
poppycock
 
Hallo,

Code:
L MD0      ; das entstandene Merkerdoppelwort laden

Das geht so bei der S5 nicht weil es keine 32Bit-Doppelworte gibt.
Deine S5 kann nur 16Bit-Worte verarbeiten.

Wenn ich mich richtig erinnere muss man spezielle Funktionsbausteine benutzen
um die beiden Worte (Hi-Wort und Low-Wort) in eine Festpunktzahl umzuwandeln.
Ich weiss jetzt aber nicht mehr welche das sind.....FB???....

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Guido!

Wenn ich mich richtig erinnere muss man spezielle Funktionsbausteine benutzen
um die beiden Worte (Hi-Wort und Low-Wort) in eine Festpunktzahl umzuwandeln.

Und schon wieder was gelernt! :D
http://cache.automation.siemens.com/dnl/zExNjIxAAAA_1086149_HB/sfb_115f.pdf
Es handelt sich bei der Festpunktarithmetik um die Bausteine
  • ADD:32 (Addition)
  • SUB:32 (Subtraktion)
  • MUL:32 (Multiplikation)
  • DIV:32 (Division)
Besten Dank,
poppycock
 
Das geht so bei der S5 nicht weil es keine 32Bit-Doppelworte gibt.
[Klugscheißmodus_ON]
Eine S5 kann auch 32Bit verarbeiten, allerdings erst ab den CPU's >= 135U
Deine S5 kann nur 16Bit-Worte verarbeiten.
Aber da du hier gezielt von "Deine S5" sprichst, nehme ich an du meinst an dieser Stelle die CPU und nicht die Software.
[/Klugscheißmodus_OFF] ;)
 
[Klugscheißmodus_ON]
Eine S5 kann auch 32Bit verarbeiten, allerdings erst ab den CPU's >= 135U

Aber da du hier gezielt von "Deine S5" sprichst, nehme ich an du meinst an dieser Stelle die CPU und nicht die Software.
[/Klugscheißmodus_OFF] ;)

[Klugscheißmodus_ON]
CPU 945
[/Klugscheißmodus_OFF]
 
Zurück
Oben