6.1.7.4
Beispiel zur Verwendung von WAITFORCONDITION
Im folgenden Beispiel wird unterstellt, dass das Programm
abläuft. Für diese MotionTask ist die Option Aktivierung nach StartupTask ausgewählt.
Die Zuordnung von Programmen zu Tasks nehmen Sie im SIMOTION SCOUT vor (siehe
Programme den Ablaufebenen/Tasks zuweisen).
Tabelle 6- 8 Beispiel zu Verwendung des Befehls WAITFORCONDITION
INTERFACE
USEPACKAGE cam;
PROGRAM feeder;
END_INTERFACE
IMPLEMENTATION
END_IMPLEMENTATION
Basisfunktionen
Funktionshandbuch, 05/2009
// condition for WAITFORCONDITION in MotionTask_1
EXPRESSION automaticExpr
automaticExpr := IOfeedCam; // digital input
END_EXPRESSION
// feeder (MotionTask_1)
PROGRAM feeder
VAR
retVal : DINT ;
END_VAR ;
retVal := _enableAxis(axis := realAxis,
enableMode := ALL,
servoCommandToActualMode := INACTIVE,
nextCommand := WHEN_COMMAND_DONE,
commandId := _getCommandId() );
// wait for automatic start
WAITFORCONDITION automaticExpr WITH TRUE DO
retVal := _pos(axis := realAxis,
positioningMode := RELATIVE,
position := 500,
velocityType := DIRECT,
velocity:= 300,
positiveAccelType := DIRECT,
positiveAccel:= 400,
negativeAccelType := DIRECT,
negativeAccel := 400,
velocityProfile:= TRAPEZOIDAL,
mergeMode:= IMMEDIATELY,
nextCommand := WHEN_MOTION_DONE,
commandId:= _getCommandId() );
// reduce priority after WAITFORCONDITION
END_WAITFORCONDITION;
retVal := _disableAxis(axis := realAxis,
disableMode := ALL,
servoCommandToActualMode := INACTIVE,
nextCommand := WHEN_COMMAND_DONE,
commandId := _getCommandId() );
END_PROGRAM
Programmieren Ablaufsystem/Tasks/Systemtakte
feeder
6.1 Ablaufsystem
in einer MotionTask
259