From e561e4065483145d82017858418e7ec4e3c12cfc Mon Sep 17 00:00:00 2001 From: lhiven <236881222@qq.com> Date: Sat, 30 Dec 2023 09:59:29 +0900 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=8C=E5=90=8EZR=E5=9B=9E=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.SkyLine/Flow/SubFlow/ZRHomeFlow.cs | 121 ++++++++++++++++++++++++++ Rs.SkyLine/Rs.SkyLine.csproj | 1 + 2 files changed, 122 insertions(+) create mode 100644 Rs.SkyLine/Flow/SubFlow/ZRHomeFlow.cs diff --git a/Rs.SkyLine/Flow/SubFlow/ZRHomeFlow.cs b/Rs.SkyLine/Flow/SubFlow/ZRHomeFlow.cs new file mode 100644 index 0000000..e9858cb --- /dev/null +++ b/Rs.SkyLine/Flow/SubFlow/ZRHomeFlow.cs @@ -0,0 +1,121 @@ +using Rs.Controls; +using Rs.Framework; +using Rs.Motion; +using Rs.MotionPlat.Commom; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Rs.MotionPlat.Flow.SubFlow +{ + enum EZRHomeFlowStep + { + StartHome, + WaitHomed, + GoStartPos, + WaitArrivedStartPos + } + public class ZRHomeFlow + { + private ZRHomeFlow() { } + + private static ZRHomeFlow instance; + public static ZRHomeFlow Instance + { + get + { + if(instance==null) + instance = new ZRHomeFlow(); + return instance; + } + } + private ManualResetEvent homeFinished = new ManualResetEvent(false); + private EZRHomeFlowStep step = EZRHomeFlowStep.StartHome; + bool finished = false; + + public void GoHome() + { + if (finished) + { + finished = false; + } + else + return; + + Task.Run(() => { + while (!finished) + { + switch (step) + { + case EZRHomeFlowStep.StartHome: + AxisControl.NozzleZ1.Home(); + AxisControl.NozzleZ2.Home(); + AxisControl.NozzleZ3.Home(); + AxisControl.NozzleZ4.Home(); + AxisControl.NozzleZ5.Home(); + AxisControl.NozzleZ6.Home(); + AxisControl.NozzleZ7.Home(); + AxisControl.NozzleZ8.Home(); + + AxisControl.NozzleR1.Home(); + AxisControl.NozzleR2.Home(); + AxisControl.NozzleR3.Home(); + AxisControl.NozzleR4.Home(); + AxisControl.NozzleR5.Home(); + AxisControl.NozzleR6.Home(); + AxisControl.NozzleR7.Home(); + AxisControl.NozzleR8.Home(); + step = EZRHomeFlowStep.WaitHomed; + break; + case EZRHomeFlowStep.WaitHomed: + if(AxisControl.NozzleZ1.HomeStatus== EHomeStatus.Finished + && AxisControl.NozzleZ2.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ3.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ4.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ5.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ6.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ7.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleZ8.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR1.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR2.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR3.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR4.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR5.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR6.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR7.HomeStatus == EHomeStatus.Finished + && AxisControl.NozzleR8.HomeStatus == EHomeStatus.Finished) + { + step = EZRHomeFlowStep.GoStartPos; + } + break; + case EZRHomeFlowStep.GoStartPos: + for(int i=1;i<9;i++) + { + double targetPos = SysConfigParam.GetValue($"NozzleR{i}StartPos"); + AxisControl.GetAxis($"NozzleR{i}").MovePos(targetPos, GlobalVar.WholeSpeed); + } + step = EZRHomeFlowStep.WaitArrivedStartPos; + break; + case EZRHomeFlowStep.WaitArrivedStartPos: + if(Ops.IsStop("NozzleR1") + && Ops.IsStop("NozzleR2") + && Ops.IsStop("NozzleR3") + && Ops.IsStop("NozzleR4") + && Ops.IsStop("NozzleR5") + && Ops.IsStop("NozzleR6") + && Ops.IsStop("NozzleR7") + && Ops.IsStop("NozzleR8")) + { + finished = true; + homeFinished.Set(); + } + break; + } + } + }); + } + } +} diff --git a/Rs.SkyLine/Rs.SkyLine.csproj b/Rs.SkyLine/Rs.SkyLine.csproj index 971a03d..7608461 100644 --- a/Rs.SkyLine/Rs.SkyLine.csproj +++ b/Rs.SkyLine/Rs.SkyLine.csproj @@ -235,6 +235,7 @@ +