A
Anonymous
Guest
Programmbeschreibung:
Zwei Zeitpunkte werden mittel SFC64 ausgelesen(Doppelinteger) und voneinander subtrahiert ( t2-t1). Ergebnis ist korrekt.
Beim auslesen eines dritten Zeitpunkts (t3) und bei der Subtraktion (t3 -t2) kommt nur noch Quatsch raus d.h die ausgelesene Zahl t3 ist viel zu "hoch".
Programm:
U(
L #Schritt
L 2
==I
)
FP #M50
SPBNB 005
CALL "TIME_TCK"
RET_VAL:=MD10
005: NOP 0
U(
L #Schritt
L 3
==I
)
FP #M51
SPBNB 006
CALL "TIME_TCK"
RET_VAL:=MD20
006: NOP 0
Danach erfolgt die Subtraktion (MD20-MD10). Stimmt. Zu einem späteren Zeitpunkt im Programm erfolgt folgender Code.
Schrittkette 2
U(
L #Schritt_A
L 2
==I
)
FP #M53
SPBNB 00e
CALL "TIME_TCK"
RET_VAL:=MD11
00e: NOP 0
Das Ergebnis aus (MD11 - MD10) haut überhaupt nicht hin. Was stimmt an dieser Programmierweise nicht?. Und wer kann helfen. Im voraus Danke
Gruss Andi.
PS: Ich benutze den PLC-Simulator
Zwei Zeitpunkte werden mittel SFC64 ausgelesen(Doppelinteger) und voneinander subtrahiert ( t2-t1). Ergebnis ist korrekt.
Beim auslesen eines dritten Zeitpunkts (t3) und bei der Subtraktion (t3 -t2) kommt nur noch Quatsch raus d.h die ausgelesene Zahl t3 ist viel zu "hoch".
Programm:
U(
L #Schritt
L 2
==I
)
FP #M50
SPBNB 005
CALL "TIME_TCK"
RET_VAL:=MD10
005: NOP 0
U(
L #Schritt
L 3
==I
)
FP #M51
SPBNB 006
CALL "TIME_TCK"
RET_VAL:=MD20
006: NOP 0
Danach erfolgt die Subtraktion (MD20-MD10). Stimmt. Zu einem späteren Zeitpunkt im Programm erfolgt folgender Code.
Schrittkette 2
U(
L #Schritt_A
L 2
==I
)
FP #M53
SPBNB 00e
CALL "TIME_TCK"
RET_VAL:=MD11
00e: NOP 0
Das Ergebnis aus (MD11 - MD10) haut überhaupt nicht hin. Was stimmt an dieser Programmierweise nicht?. Und wer kann helfen. Im voraus Danke
Gruss Andi.
PS: Ich benutze den PLC-Simulator