diff --git a/Rs.DeweyTester/Flow/SafeControl.cs b/Rs.DeweyTester/Flow/SafeControl.cs index 1fc57ec..9bef3f9 100644 --- a/Rs.DeweyTester/Flow/SafeControl.cs +++ b/Rs.DeweyTester/Flow/SafeControl.cs @@ -27,10 +27,26 @@ namespace Rs.MotionPlat.Flow } public void Init() { - AxisControl.LoadX.FunSafeCheck += LoadX_FunSafeCheck; - AxisControl.LoadY1.FunSafeCheck += LoadY_FunSafeCheck; - AxisControl.LoadY2.FunSafeCheck += LoadY_FunSafeCheck; - AxisControl.TakeTrayX.FunSafeCheck += TakeTrayX_FunSafeCheck; + if(AxisControl.LoadX!=null) + { + AxisControl.LoadX.FunSafeCheck += LoadX_FunSafeCheck; + } + + if (AxisControl.LoadX != null) + { + AxisControl.LoadY1.FunSafeCheck += LoadY_FunSafeCheck; + } + + if (AxisControl.LoadX != null) + { + AxisControl.LoadY2.FunSafeCheck += LoadY_FunSafeCheck; + } + + if (AxisControl.LoadX != null) + { + AxisControl.TakeTrayX.FunSafeCheck += TakeTrayX_FunSafeCheck; + } + } private bool TakeTrayX_FunSafeCheck() @@ -66,16 +82,25 @@ namespace Rs.MotionPlat.Flow if(SysConfigParam.GetValue("CheckSafeEnable")) { bool bOnOrg = false; - for (int i = 1; i < 5; i++) + AxisControl.TakeTrayX.GetOrgStatus(out bOnOrg); + if (bOnOrg || MachineManage.Instance.MachineStatus == EMachineStatus.Homing) { - AxisControl.GetAxis($"NozzleZ{i}").GetOrgStatus(out bOnOrg); - if (!bOnOrg) + for (int i = 1; i < 5; i++) { - MessageQueue.Instance.Warn($"NozzleZ{i} hasn't org signal"); - return false; - } + AxisControl.GetAxis($"NozzleZ{i}").GetOrgStatus(out bOnOrg); + if (!bOnOrg) + { + MessageQueue.Instance.Warn($"NozzleZ{i} hasn't org signal"); + return false; + } + } + } + else + { + return false; } + } return true; } @@ -85,16 +110,25 @@ namespace Rs.MotionPlat.Flow if (SysConfigParam.GetValue("CheckSafeEnable")) { bool bOnOrg = false; - for (int i = 1; i < 5; i ++) - { - AxisControl.GetAxis($"NozzleZ{i}").GetOrgStatus(out bOnOrg); - if (!bOnOrg) + AxisControl.TakeTrayX.GetOrgStatus(out bOnOrg); + if (bOnOrg || MachineManage.Instance.MachineStatus== EMachineStatus.Homing) + { + for (int i = 1; i < 5; i++) { - MessageQueue.Instance.Warn($"NozzleZ{i} hasn't org signal"); - return false; + AxisControl.GetAxis($"NozzleZ{i}").GetOrgStatus(out bOnOrg); + if (!bOnOrg) + { + MessageQueue.Instance.Warn($"NozzleZ{i} hasn't org signal"); + return false; + } } - + + } + else + { + return false; } + } return true; }