Hallo zusammen,
ich habe ein Problem beim Starten eines Submitinterpreters über den Kommandokanal aus einem *.src Programm heraus. Der Sub soll nur einmal durchlaufen und dann wieder beendet werden. Problem ist nun das der Sub wie es scheint gar nicht gestartet wird und ich keinen Schimmer habe woran es liegen könnte (wenn ich die Funktion ohne im RoboterInterpreter ausführe funktioniert es so wie ich es mir vorstelle). Die CWRITE Methode kehrt mit
STATUS.RET1 = #CMD_ABORT
zurück
Vielleicht hat ja einer nen Tipp
Hier das aufrufende *srcPrg
Code
DEF startSubmit()
CWRITE ($CMD, STAT, MODE, "RUN/R1/Action(#eSetOutput1) > 3") ; Start des Submitinterpreters
WAIT FOR $PROG_INFO[3].P_STATE == #P_END ; auf Beedingung des SubmitInterpreter warten
CWRITE ($CMD, STAT, MODE, "CANCEL 3") ; Submitinterreter abwählen
END
und hier der Code im Submit
Code
&ACCESS RVO2
&COMMENT USER specified PLC program
DEF Action (Act:IN)
DECL eAction Act
;Vorlaufstop ausloesen
WAIT SEC 0
SWITCH Act
CASE #eSetOutput1
out_Signal_1 = TRUE
waitForState(#eState_SuccessAct1)
out_Signal_1 = FALSE
CASE #eSetOutput99
out_Signal_99 = TRUE
waitForState(#eState_SuccessAct99)
out_Signal_99 = FALSE
DEFAULT
ENDSWITCH
END
;--- Subroutines ---
DEF waitForState(eState:IN)
DECL eActState eState
$TIMER[1] = 0
$TIMER_STOP[1] = FALSE
SWITCH eState
CASE #eState_SuccessAct1
WAIT FOR (in_Signal_1) OR ($TIMER[1] > 5000)
CASE #eState_SuccessAct99
WAIT FOR (in_Signal_99) OR ($TIMER[1] > 5000)
ENDSWITCH
$TIMER_STOP[1] = TRUE
END
Alles anzeigen
Gruß und Dank
Microbi