Hallo,
kann ich irgendwie mit KRL Code überprüfen, ob ein bestimmtes Programm
das im SPS.sub aufgerufen bzw. bearbeitet wird nicht auskommentiert wurde??
Rainer
Hallo,
kann ich irgendwie mit KRL Code überprüfen, ob ein bestimmtes Programm
das im SPS.sub aufgerufen bzw. bearbeitet wird nicht auskommentiert wurde??
Rainer
Danke! gefällt mir!!
Rainer
Hallo,
SPS-Programm:
RobRun = SubAlive
Unterprogramm:
SET_TIMER (0.5)
SubAlive = TRUE
SubAlive = NOT SubAlive
IF NOT (SubAlive == RobRun) THEN
REPEAT
UNTIL (SubAlive == RobRun) OR $TIMER_FLAG[21]
IF $TIMER[21]>0 THEN
HANDLE=SET_MESSAGE (89,0,0,0,#STATE)
REPEAT
UNTIL (bLsrSubAlive == bLsrRobRun)
CLEAR_MESSAGE ( HANDLE )
ENDIF
ENDIF
Vielen Dank
Rainer
Hallo
so ganz schön nur
SubAlive = TRUE kannst du dir sparen du hast wenn du nur
SubAlive = NOT SubAlive benuzt hast du jedesmal wenn du das Unterprogramm aufrufst eine Änderung
wenn du vorher SubAlive auf TRUE setzt ist nach der zeile
SubAlive = NOT SubAlive immer False
und wenn der Sub net läuft und RobRun auf False ist merkst du es net
und bei meinem Schnellschuß war noch nen Schöhnheits fehler
um es beim ersten zyklus schon sicher zu machen solltetst vieleicht besser
SubAlive = NOT RobRun benutzen damit erzwingts du auf jedenfall eine Änderung von RobRun
es gäbe ja immer die 50/50 Chance das es grade mal passt beim ersten zyklus
Gruß und schönes WE
Loipe
Hallo,
jetzt so! noch etwas verschärft
SET_TIMER (1)
bSubAlive = NOT bRobRun
IF NOT (bSubAlive == bRobRun) THEN
REPEAT
UNTIL (bSubAlive == bRobRun) OR $TIMER_FLAG[21]
IF $TIMER[21]>0 THEN
HANDLE=SET_MESSAGE (89,0,0,0,#STATE)
WAIT SEC 1.0
CWRITE($CMD,STAT,MODE,"STOP 1")
CWRITE($CMD,STAT,MODE,"CANCEL 1")
ENDIF
ENDIF
Rainer
Hallo, die Bedingung ist immer erfuellt, kannst du also weglassen.
Geht auch nur mit einer Variablen, die im SPS.Sub nur zyklisch auf TRUE gesetzt wird.
$timer_stop[21] = FALSE
$Timer[21] = - 1000
bSubAlive = FALSE
repeat
until bSubAlive OR $TIMER_FLAG[21]
IF NOT(bSubAlive) THEN
; SPS sub anstarten, oder was auch immer
ENDIF
Gruss Stefan
Hallo,
wie würdest Du das anstarten des SPS.sub machen? mit $PRO_STATE0?
Rainer
Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können