-> Hier kostenlos registrieren
Hallo!
Folgendes Problem. Ich setze Eingänge und Ausgänge über E/A-Felder aus WinCC und speichere die Werte in DBs (flexibel von außen über ein Panel zu parametrieren). Hierbei werden Byte und Bit einzeln verarbeitet. Die Werte im DB haben einen Startwert von 255 und werden dann wie folgt verarbeitet:
Hab mir das so gedacht: Er soll überprüfen ob die Werte geändert wurden, falls das nicht der Fall war, soll er nichts machen und sonst die oben beschriebene Routine, also Byte und Bit werden zum Pointerwert verarbeitet. Den Merker setze ich als Bedingung für die spätere Überprüfung, ob ein Eingang zu erwarten ist.
Nun das Problem: Leider ignoriert die SPS meine "<>"-Überprüfungen und der Wert im MD** ist 2295 (also quasi 255.255 :? ). Das führt dann zu einem sofortigen SF.
Wo ist mein Denkfehler?
Abbath
Folgendes Problem. Ich setze Eingänge und Ausgänge über E/A-Felder aus WinCC und speichere die Werte in DBs (flexibel von außen über ein Panel zu parametrieren). Hierbei werden Byte und Bit einzeln verarbeitet. Die Werte im DB haben einen Startwert von 255 und werden dann wie folgt verarbeitet:
Code:
U(
L "Eingänge".Step1_Ein1_1
L 255
<>I
)
U(
L "Eingänge".Step1_Ein1_2
L 255
<>I
)
L "Eingänge".Step1_Ein1_1
L 8
*I
L "Eingänge".Step1_Ein1_2
+I
T MD 130
S "M_Eingänge".Step1Ein1
Nun das Problem: Leider ignoriert die SPS meine "<>"-Überprüfungen und der Wert im MD** ist 2295 (also quasi 255.255 :? ). Das führt dann zu einem sofortigen SF.
Wo ist mein Denkfehler?
Abbath