1、硬件配置
1.1 Procress Data配置
首先新建程序工程,在IO中扫描伺服,在NC轴中测试确定伺服运行正常。
然后在IO中打开要回零的伺服,在Procress Data中进行设置,添加6060参数
1.2 Startup参数设置
配置模式下,在Startup中添加和设置参数
607C:原点偏移量,设置为0
6098:回零方式,设置33(找Z相脉冲) 台达回零方式总共35种,手册中搜索6098选择合适方式。
6099 Sub-1:找原点时的速度
6099 Sub-2:找原点时的速度
609A:回零加速度
设置完成,激活工程。
1.3 测试
2、程序逻辑
bHome_PDO:布尔变量,常置TRUE启动回零,回零完成改为FALSE
控制逻辑:
1、将伺服使能去掉
2、将6060模式设置为6
3、将伺服使能,此时电机开始转动回零。
4、检测状态字,567为回零成功。
5、回零成功后将6060改为8
//PDO回零
PDO_R_TRIG(CLK:= bHome_PDO, Q=> );
IF PDO_R_TRIG.Q THEN
nStep_PDOHome:=1;
bo_PDO_Homing:=FALSE;
bo_PdoHome_Done:=FALSE;
END_IF
IF bHome_PDO THEN
CASE nStep_PDOHome OF
1:
_myAds.Motion_bReset:=FALSE;
bAxis4Power:=FALSE;
IF _MyAxisOutput[3].bo_Disabled AND NOT _MyAxisOutput[3].bo_StandStill THEN
nStep_PDOHome:=10;
Axis4ModeOp:=6; //ModeOfOperation设置成6:回零模式
END_IF
;
10:
//使能,使能后电机开始转动回零
IF TON_1.Q THEN
bAxis4Power:=TRUE;
END_IF
IF Axis4StatusWord=567 THEN //模式6的情况下并且使能,伺服开始回零,这个时候状态字为567
bo_PDO_Homing:=TRUE;
END_IF
IF bo_PDO_Homing AND Axis4StatusWord.10 AND Axis4StatusWord.12 THEN
nStep_PDOHome:=20;
END_IF
;
20:
//回零成功后,先复位,ModeOfOperation设置成8
IF TON_2.Q THEN
_myAds.Motion_bReset:=TRUE;
END_IF
IF _MyAxisOutput[3].bo_ResetDone THEN
_myAds.Motion_bReset:=FALSE;
Axis4ModeOp:=8;
//_myAds.Motion_bAxis4Power:=TRUE;
bAxis4Power:=TRUE;
//_myAds.Motion_bHome_PDO:=FALSE;
bo_PdoHome_Done:=TRUE;
nStep_PDOHome:=30;
END_IF
;
30:
//PDO操作完成后,调用MC_Home。该功能块不会实际回零,只是设置回零状态完成、当前位置设置为0
IF TON_3.Q THEN
_MyAxisInput[3].bi_Home:=TRUE;
END_IF
IF _MyAxisOutput[3].bo_Homed THEN
_MyAxisInput[3].bi_Home:=FALSE;
bHome_PDO:=FALSE;
nStep_PDOHome:=0;
END_IF
;
END_CASE
END_IF
TON_1(IN:= Axis4ModeOp=6 AND nStep_PDOHome=10, PT:=T#500MS , Q=> , ET=> );
TON_2(IN:= Axis4ModeOp=6 AND NOT _MyAxisOutput[3].bo_Moving, PT:=T#500MS , Q=> , ET=> );
TON_3(IN:= bo_PdoHome_Done , PT:=T#500MS , Q=> , ET=> );
pdf:
https://download.csdn.net/download/panjinliang066333/63966473