8个轴同时回原改为单个回原

master
lhiven 1 year ago
parent e6533555f6
commit de8a4053fb

@ -32,97 +32,92 @@ namespace Rs.MotionPlat.Flow.SubFlow
return instance; return instance;
} }
} }
private ManualResetEvent homeFinished = new ManualResetEvent(true);
private EZRHomeFlowStep step = EZRHomeFlowStep.StartHome; private EZRHomeFlowStep step = EZRHomeFlowStep.StartHome;
bool finished = true; bool finished = false;
public void GoHome() public void GoHome(int homeIndex)
{ {
step = EZRHomeFlowStep.StartHome;
if (finished)
{
homeFinished.Reset();
finished = false; finished = false;
} step = EZRHomeFlowStep.StartHome;
else
return;
Task.Run(() => {
while (!finished) while (!finished)
{ {
switch (step) switch (step)
{ {
case EZRHomeFlowStep.StartHome: case EZRHomeFlowStep.StartHome:
AxisControl.NozzleZ1.Home(); //获取Z轴
AxisControl.NozzleZ2.Home(); AxisControl.GetAxis($"NozzleZ{homeIndex}").Home();
AxisControl.NozzleZ3.Home(); AxisControl.GetAxis($"NozzleR{homeIndex}").Home();
AxisControl.NozzleZ4.Home(); //AxisControl.NozzleZ1.Home();
AxisControl.NozzleZ5.Home(); //AxisControl.NozzleZ2.Home();
AxisControl.NozzleZ6.Home(); //AxisControl.NozzleZ3.Home();
AxisControl.NozzleZ7.Home(); //AxisControl.NozzleZ4.Home();
AxisControl.NozzleZ8.Home(); //AxisControl.NozzleZ5.Home();
//AxisControl.NozzleZ6.Home();
//AxisControl.NozzleZ7.Home();
//AxisControl.NozzleZ8.Home();
AxisControl.NozzleR1.Home(); //AxisControl.NozzleR1.Home();
AxisControl.NozzleR2.Home(); //AxisControl.NozzleR2.Home();
AxisControl.NozzleR3.Home(); //AxisControl.NozzleR3.Home();
AxisControl.NozzleR4.Home(); //AxisControl.NozzleR4.Home();
AxisControl.NozzleR5.Home(); //AxisControl.NozzleR5.Home();
AxisControl.NozzleR6.Home(); //AxisControl.NozzleR6.Home();
AxisControl.NozzleR7.Home(); //AxisControl.NozzleR7.Home();
AxisControl.NozzleR8.Home(); //AxisControl.NozzleR8.Home();
step = EZRHomeFlowStep.WaitHomed; step = EZRHomeFlowStep.WaitHomed;
Thread.Sleep(1000);
break; break;
case EZRHomeFlowStep.WaitHomed: case EZRHomeFlowStep.WaitHomed:
if(AxisControl.NozzleZ1.HomeStatus== EHomeStatus.Finished //if(AxisControl.NozzleZ1.HomeStatus== EHomeStatus.Finished
&& AxisControl.NozzleZ2.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ2.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ3.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ3.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ4.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ4.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ5.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ5.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ6.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ6.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ7.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ7.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleZ8.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleZ8.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR1.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR1.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR2.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR2.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR3.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR3.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR4.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR4.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR5.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR5.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR6.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR6.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR7.HomeStatus == EHomeStatus.Finished // && AxisControl.NozzleR7.HomeStatus == EHomeStatus.Finished
&& AxisControl.NozzleR8.HomeStatus == EHomeStatus.Finished) // && AxisControl.NozzleR8.HomeStatus == EHomeStatus.Finished)
if (AxisControl.GetAxis($"NozzleZ{homeIndex}").HomeStatus == EHomeStatus.Finished
&& AxisControl.GetAxis($"NozzleR{homeIndex}").HomeStatus == EHomeStatus.Finished)
{ {
step = EZRHomeFlowStep.GoStartPos; step = EZRHomeFlowStep.GoStartPos;
} }
break; break;
case EZRHomeFlowStep.GoStartPos: case EZRHomeFlowStep.GoStartPos:
for(int i=1;i<9;i++) //for(int i=1;i<9;i++)
{ //{
double targetPos = SysConfigParam.GetValue<Double>($"NozzleR{i}StartPos"); // double targetPos = SysConfigParam.GetValue<Double>($"NozzleR{i}StartPos");
AxisControl.GetAxis($"NozzleR{i}").MovePos(targetPos, GlobalVar.WholeSpeed); // AxisControl.GetAxis($"NozzleR{i}").MovePos(targetPos, GlobalVar.WholeSpeed);
} //}
double targetPos = SysConfigParam.GetValue<Double>($"NozzleR{homeIndex}StartPos");
AxisControl.GetAxis($"NozzleR{homeIndex}").MovePos(targetPos, GlobalVar.WholeSpeed);
step = EZRHomeFlowStep.WaitArrivedStartPos; step = EZRHomeFlowStep.WaitArrivedStartPos;
Thread.Sleep(100);
break; break;
case EZRHomeFlowStep.WaitArrivedStartPos: case EZRHomeFlowStep.WaitArrivedStartPos:
if(Ops.IsStop("NozzleR1") //if(Ops.IsStop("NozzleR1")
&& Ops.IsStop("NozzleR2") // && Ops.IsStop("NozzleR2")
&& Ops.IsStop("NozzleR3") // && Ops.IsStop("NozzleR3")
&& Ops.IsStop("NozzleR4") // && Ops.IsStop("NozzleR4")
&& Ops.IsStop("NozzleR5") // && Ops.IsStop("NozzleR5")
&& Ops.IsStop("NozzleR6") // && Ops.IsStop("NozzleR6")
&& Ops.IsStop("NozzleR7") // && Ops.IsStop("NozzleR7")
&& Ops.IsStop("NozzleR8")) // && Ops.IsStop("NozzleR8"))
if (Ops.IsStop($"NozzleR{homeIndex}"))
{ {
finished = true; finished = true;
homeFinished.Set();
} }
break; break;
} }
Thread.Sleep(10);
} }
});
}
public bool Wait()
{
return homeFinished.WaitOne();
} }
} }
} }

Loading…
Cancel
Save