From 2eb59634fdfb48cbd8a1e7ee09c2ccd193ccafec Mon Sep 17 00:00:00 2001
From: 천호석 <hosuk1418@naver.com>
Date: 월, 12 12월 2022 15:39:17 +0900
Subject: [PATCH] Laser head X축 구동 시 Laser head Z축 Home위치 확인 후 구동.

---
 SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs |   70 +++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 7 deletions(-)

diff --git a/SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs b/SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs
index 1887d96..497c45e 100644
--- a/SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs
+++ b/SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs
@@ -128,8 +128,8 @@
             pauseDisableList.Add(AblationSteps.S5470_LASER_OFF);
             pauseDisableList.Add(AblationSteps.S5480_LASER_OFF_CHECK);
 
-            MotorX.Check_Jog_Interlock = Jog_Interlock;
-            MotorX.Check_Move_Interlock = Move_Interlock;
+            MotorX.Check_Jog_Interlock = Jog_Interlock_MotorX;
+            MotorX.Check_Move_Interlock = Move_Interlock_MotorX;
             MotorZ.Check_Jog_Interlock = Jog_Interlock;
             MotorZ.Check_Move_Interlock = Move_Interlock;
 
@@ -140,6 +140,40 @@
         #endregion
 
         #region Function
+        private bool Move_Interlock_MotorX()
+        {
+            if (equipment.User.Level != En_User_Level.Master && equipment.Door_Opened)
+            {
+                return true;
+            }
+
+            double position = Get_Scanner_Z_A1_Stay_Position();
+
+            if (MotorZ.Is_Inposition(position, equipment.Setting.Inposition_Offset) == false)
+            {
+                return true;
+            }
+
+            return false;
+        }
+
+        private bool Jog_Interlock_MotorX(bool positive)
+        {
+            if (equipment.User.Level != En_User_Level.Master && equipment.Door_Opened)
+            {
+                return true;
+            }
+
+            double position = Get_Scanner_Z_A1_Stay_Position();
+
+            if (MotorZ.Is_Inposition(position, equipment.Setting.Inposition_Offset) == false)
+            {
+                return true;
+            }
+
+            return false;
+        }
+
         private bool Move_Interlock()
         {
             if (equipment.User.Level != En_User_Level.Master && equipment.Door_Opened)
@@ -212,6 +246,7 @@
                 if (on)
                 {
                     equipment.scanner.Set_Stop();
+                    equipment.scanner.Set_Laser_Off();
                 }
             }
         }
@@ -1442,10 +1477,20 @@
                     }
                 case AblationSteps.S5320_LASER_ON:
                     {
-                        if (equipment.scanner.Set_Laser_On())
+                        if (equipment.process.ablation.MotorX.MotionComplete && equipment.process.ablation.MotorZ.MotionComplete)
                         {
-                            auto_power_view.Add_Info($"Laser On.");
-                            Step = AblationSteps.S5330_LASER_ON_CHECK;
+                            if (equipment.process.ablation.Get_Is_Position_X_Power_Meter() && equipment.process.ablation.Get_Is_Position_Z_Power_Meter())
+                            {
+                                if (equipment.scanner.Set_Laser_On())
+                                {
+                                    auto_power_view.Add_Info($"Laser On.");
+                                    Step = AblationSteps.S5330_LASER_ON_CHECK;
+                                }
+                            }
+                            else
+                            {
+                                Step = AblationSteps.S0000_WAIT;
+                            }
                         }
                         break;
                     }
@@ -1587,9 +1632,20 @@
                     }
                 case AblationSteps.S5420_LASER_ON:
                     {
-                        if (equipment.scanner.Set_Laser_On())
+                        if (equipment.process.ablation.MotorX.MotionComplete && equipment.process.ablation.MotorZ.MotionComplete)
                         {
-                            Step = AblationSteps.S5430_LASER_ON_CHECK;
+                            if (equipment.process.ablation.Get_Is_Position_X_Power_Meter() && equipment.process.ablation.Get_Is_Position_Z_Power_Meter())
+                            {
+                                if (equipment.scanner.Set_Laser_On())
+                                {
+                                    auto_power_view.Add_Info($"Laser On.");
+                                    Step = AblationSteps.S5430_LASER_ON_CHECK;
+                                }
+                            }
+                            else
+                            {
+                                Step = AblationSteps.S0000_WAIT;
+                            }
                         }
                         break;
                     }

--
Gitblit v1.9.3