<< 点击显示目录 >> 主页 mappServices帮助手册 > mapp Sequence: 机器流程动态化 > 开始工作 > 编写轴运动的控制逻辑 |
mapp Services V5.16
在MpSequence和MpAxisBasic工作后,在任务 "AxisCtrl "中增加了一个 "开关案例"。首先,需要一个不执行任何动作的步骤(轴静止)。在这个步骤中,序列器被告知轴没有执行任何动作。
CASE State OF
0:
CommandStructure.MovementState := mpSEQUENCE_MOVEMENT_IDLE;
IF CommandStructure.Start THEN
Parameters.Position := ParameterStructure.TargetPosition;
MpAxisBasic_0.Update := TRUE;
MpAxisBasic_0.MoveAbsolute := TRUE;
State := 1;
END_IF;
END_CASE
然后添加一个步骤,在这个步骤中轴应该被移动。在这个步骤中,MpSequence通过 mpSEQUENCE_MOVEMENT_ACTIVE被告知 一个运动目前正在进行。当运动完成后,用 mpSEQUENCE_MOVEMENT_DONE 通知序列 。然后,这个步骤被MpSequence认为已经完成,并进行下一个步骤。
CASE State OF
0:
CommandStructure.MovementState := mpSEQUENCE_MOVEMENT_IDLE;
IF CommandStructure.Start THEN
Parameters.Position := ParameterStructure.TargetPosition;
MpAxisBasic_0.Update := TRUE;
MpAxisBasic_0.MoveAbsolute := TRUE;
State := 1;
END_IF;
1:
CommandStructure.MovementState := mpSEQUENCE_MOVEMENT_ACTIVE;
MpAxisBasic_0.Update := FALSE;
IF MpAxisBasic_0.InPosition THEN
MpAxisBasic_0.MoveAbsolute := FALSE;
CommandStructure.MovementState := mpSEQUENCE_MOVEMENT_DONE;
State := 0;
END_IF;
END_CASE;