Files
PBSwissMX/cfg/MX2_home.cfg

68 lines
1.6 KiB
INI

define(PLC_Homing='1')
//Homing:
//Move all motors left bottom
//move 1mm up
//move both mottors at same time
//move to limit switch, gather data, move to other limit switch, gather stop. move back to first limit switch
//status :P100: local status
//timer :L0: local timer
open plc PLC_Homing
define(status='P100',timer='L0')
jog-1; jog-2; jog-3; jog-4;
Motor[1].HomeVel=0.5
Motor[2].HomeVel=0.5
Motor[3].HomeVel=0.5
Motor[4].HomeVel=0.5
status=1
while(1)
{
if((Motor[1].MinusLimit==1 || Motor[1].FeFatal==1)){
if((Motor[2].MinusLimit==1 || Motor[2].FeFatal==1)){
if((Motor[3].MinusLimit==1 || Motor[3].FeFatal==1)){
if((Motor[4].MinusLimit==1 || Motor[4].FeFatal==1)){
status=2
break
}}}}
}
timer = Sys.RunTime + 2
while (Sys.RunTime < timer){} //wait 1 sec
status=3
jog1:1000; jog2:1000; jog3:1000; jog4:1000;
timer = Sys.RunTime + .1
while (Sys.RunTime < timer){} //wait 1 sec
status=4
while(1)
{
if(Motor[1].DesVelZero==1 && Motor[2].DesVelZero==1 && Motor[3].DesVelZero==1 && Motor[4].DesVelZero==1)
{
status=5
break
}
}
timer = Sys.RunTime + .1
while (Sys.RunTime < timer){}
home 1; home 2; home 3; home 4
status=6
while(1) //wait homing index found done
{
if(Motor[1].HomeComplete==1 && Motor[2].HomeComplete==1 && Motor[3].HomeComplete==1 && Motor[4].HomeComplete==1)
{
status=7
break
}
}
while(1) //wait moving to zero position done
{
if(Motor[1].DesVelZero==1 && Motor[2].DesVelZero==1 && Motor[3].DesVelZero==1 && Motor[4].DesVelZero==1)
{
status=8
break
}
}
disable plc PLC_Homing
close