前言
今天下午刚好有时间,学习了一下有关DVP-MC系列下的轴组的功能。
变量声明
范围 | 名称 | 地址 | 数据类型 |
---|---|---|---|
VAR_GLOBAL | uDMC_AddAxisToGroup | ARRAY[1..5] OF DMC_AddAxisToGroup | |
VAR_GLOBAL | uDMC_GroupEnable | DMC_GroupEnable | |
VAR_GLOBAL | uDMC_GroupReadActualPosition | DMC_GroupReadActualPosition | |
VAR_GLOBAL | uDMC_MoveDirectRelative | DMC_MoveDirectRelative | |
VAR_GLOBAL | uDMC_MoveDirectAbsolute | DMC_MoveDirectAbsolute | |
VAR_GLOBAL | AxisGroupVel | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | AxisGroupAcc | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | AxisGroupDec | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | AxisGroupJerk | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | LrAxisDirRelDis | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | LrAxisDirAbsPos | ARRAY[1..5] OF LREAL | |
VAR_GLOBAL | bMoveDirRel | BOOL | |
VAR_GLOBAL | bMoveDirAbs | BOOL | |
VAR_GLOBAL | bAxisGroupEnable | BOOL |
程序内容
CASE iSystemStatus OF
1:
FOR UsiAxisNumber := 1 TO 5 BY 1 DO
uDMC_AddAxisToGroup[UsiAxisNumber].Axis := UsiAxisNumber ;
uDMC_AddAxisToGroup[UsiAxisNumber].IdentInGroup := UsiAxisNumber ;
uDMC_AddAxisToGroup[UsiAxisNumber].Execute := TRUE ;
END_FOR;
IF EDGEPOS(uDMC_AddAxisToGroup[1].Done AND
uDMC_AddAxisToGroup[2].Done AND
uDMC_AddAxisToGroup[3].Done AND
uDMC_AddAxisToGroup[4].Done AND
uDMC_AddAxisToGroup[5].Done ) THEN
iSystemStatus := 2 ;
END_IF;
2:
IF bAxisGroupEnable THEN
uDMC_GroupEnable.Enable := TRUE ;
ELSE
uDMC_GroupEnable.Enable := FALSE ;
END_IF;
IF EDGEPOS(uDMC_GroupEnable.Status) THEN
iSystemStatus := 3 ;
END_IF;
3:
uDMC_MoveDirectRelative.Distance := LrAxisDirRelDis ;
uDMC_MoveDirectRelative.Execute := bMoveDirRel ;
IF EDGEPOS(uDMC_MoveDirectRelative.Done) THEN
bMoveDirRel := FALSE ;
END_IF;
4:
uDMC_MoveDirectAbsolute.Position := LrAxisDirAbsPos ;
uDMC_MoveDirectAbsolute.Execute := bMoveDirAbs ;
IF EDGEPOS(uDMC_MoveDirectAbsolute.Done) THEN
bMoveDirAbs := FALSE ;
END_IF;
END_CASE;
uDMC_AddAxisToGroup[1](AxesGroup:= 1);
uDMC_AddAxisToGroup[2](AxesGroup:= 1);
uDMC_AddAxisToGroup[3](AxesGroup:= 1);
uDMC_AddAxisToGroup[4](AxesGroup:= 1);
uDMC_AddAxisToGroup[5](AxesGroup:= 1);
uDMC_GroupEnable(AxesGroup:= 1, MoveDirectVelocity:= AxisGroupVel, MoveDirectAcceleration:= AxisGroupAcc, MoveDirectDeceleration:= AxisGroupDec,MoveDirectJerk:= AxisGroupJerk);
uDMC_GroupReadActualPosition(AxesGroup:= 1,Enable:= TRUE);
uDMC_MoveDirectRelative(AxesGroup:= 1,BufferMode:= 1,TransitionMode:= 0,TransitionParameter:= 0);
uDMC_MoveDirectAbsolute(AxesGroup:= 1,BufferMode:= 1,TransitionMode:= 0,TransitionParameter:= 0);
结尾
轴组的功能很强大,今天只学习了5个指令。明天继续,本文后期继续补充完善有关轴组的使用。
Log:
2019-11-15 发布本文
网友评论