Doppelworte addieren

hubert

Level-2
Beiträge
405
Reaktionspunkte
26
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS Freunde.

Habe mal eine frage? Gibt es eine unterschied wie man Doppelwörter addiert?

Beispiel 1:
L MD100
L 1
+D
T MD100

Beispiel 2:
L MD100
L L#1
+D
T MD100

Beim 2.Beispiel wird vor dem 1 noch ein "L#" gesetzt. In Siemensdokus heißts es "L#" lädt ein 32Bit Zahl. Habe nämlich auf einer Anlage eine Programm mit eine selbst erstellen Betriebsstundenzähler bei dem die Addietion der Betriebsstunden nur wie im Beispiel 1 abläuft. Hier werden nämlich unterplötzlich Betriebsstunden von 56432 Stunden abgezeit obwohl die Anlage erste seit 2 Monaten in Betrieb ist. Die Taktflanke für die Zählung ist ok. Die MD100 sind nur ein Beispiel, in Wirklichkeit sind es immer unterschiedliche Doppelwörter. Danke im Vorraus für eure Antworten.
 
der Befehl +D addierd auf jeden Fall den Inhalt beider Akkus in voller 32-Bit-Länge.
Ganz genau steht es in der Online-Hilfe von Step7, aber wenn ich mich richtig erinnere lädt:
L 1 eine 1 nur in die untere Hälfte (16 Bit) des Akkus und läßt die obere Hälfte unverändert. Ihr zufälliger Inhalt geht dann in die Rechnung mit +D ein! L L#1 lädt die eins als 32-Bit-Wert, d.h. mit führenden Nullen, so daß in der oberen Hälfte des Akku 0 steht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Zottel:

Meines Wissens nach wird beim Laden eines Wortes das obere Wort des Akkus genullt. Spielt also nur bei negativen Zahlen eine entscheidende Rolle, da hier lauter einsen stehen müssten.
 
hubert schrieb:
Hallo.

Also ist es egal ob ich bei Doppelwortaddierung L L#1 oder L 1 schreibe oder?

ja. ist richtig.
lässt sich aber auch ganz leicht 'mit der Brille' testen

Code:
// so ist es
                  STANDARD   AKKU2
L L#1234567890    499602d2    0
L 1               1           499602d2

// so wäre es wenn das linke wort nicht mit nullen gefüllt würde
L L#1234567890    499602d2    0
L 1               49960001    499602d2
 
Zurück
Oben