From ac0db02b48098c7cf0bc31403224ecd0b55cb6b7 Mon Sep 17 00:00:00 2001 From: 천호석 <hosuk1418@naver.com> Date: 목, 15 12월 2022 16:41:40 +0900 Subject: [PATCH] Parameter position 화면에 Safety Plc reset 버튼 추가 --- SHARP_CLAS_UI/500.Equipment/700.Unit/200.Process/Ablation.cs | 186 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 160 insertions(+), 26 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..fa86391 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 @@ -109,7 +109,7 @@ pauseDisableList.Add(AblationSteps.S4135_POSITION_CHECK); pauseDisableList.Add(AblationSteps.S4215_ABLATION_PROCESS_WAIT); pauseDisableList.Add(AblationSteps.S4225_POSITION_CHECK); - + pauseDisableList.Add(AblationSteps.S5220_SCANNER_MOVE_WAIT); pauseDisableList.Add(AblationSteps.S5320_LASER_ON); @@ -127,9 +127,10 @@ pauseDisableList.Add(AblationSteps.S5460_POWER_MEASUREMENT_END); pauseDisableList.Add(AblationSteps.S5470_LASER_OFF); pauseDisableList.Add(AblationSteps.S5480_LASER_OFF_CHECK); + pauseDisableList.Add(AblationSteps.S6100_MOVE_WAIT); - 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 +141,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 +247,7 @@ if (on) { equipment.scanner.Set_Stop(); + equipment.scanner.Set_Laser_Off(); } } } @@ -256,7 +292,7 @@ if (equipment.equip_mode == En_Equipment_Mode.Pause) { - if (pauseDisableList.Contains(Step) != false) + if (pauseDisableList.Contains(Step) == false) { UnitMode = En_Equipment_Mode.Pause; return; @@ -1360,7 +1396,7 @@ else { auto_power_view.Add_Info($"Power Meter Status Fail"); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } break; } @@ -1381,32 +1417,81 @@ case AblationSteps.S5130_ZERO_SET: { equipment.power_meter.Set_Zero(); - Step = AblationSteps.S5210_SCANNER_POSITION_MOVE; + Step = AblationSteps.S5150_MOVE_Z_STAY_POSITION; break; } - case AblationSteps.S5210_SCANNER_POSITION_MOVE: + case AblationSteps.S5150_MOVE_Z_STAY_POSITION: + { + double position = Get_Scanner_Z_A1_Stay_Position(); + + if (MotorZ.Move_Absolute_Pos(position, 500)) + { + Step = AblationSteps.S5160_POSITION_CHECK; + } + break; + } + case AblationSteps.S5160_POSITION_CHECK: + { + double position = Get_Scanner_Z_A1_Stay_Position(); + + if (MotorZ.MotionComplete) + { + if (MotorZ.Is_Inposition(position, equipment.Setting.Inposition_Offset)) + { + auto_power_view.Add_Info($"Scanner Position Z WAIT MOVE"); + Step = AblationSteps.S5210_SCANNER_POSITION_X_MOVE; + } + else + { + Step = AblationSteps.S5150_MOVE_Z_STAY_POSITION; + } + } + break; + } + case AblationSteps.S5210_SCANNER_POSITION_X_MOVE: { if (equipment.process.ablation.Move_X_Power_Meter_Position()) { - if (equipment.process.ablation.Move_Z_Power_Meter_Position()) - { - Step = AblationSteps.S5220_SCANNER_MOVE_WAIT; - } + Step = AblationSteps.S5220_SCANNER_MOVE_WAIT; } break; } case AblationSteps.S5220_SCANNER_MOVE_WAIT: { - if (equipment.process.ablation.MotorX.MotionComplete && equipment.process.ablation.MotorZ.MotionComplete) + if (equipment.process.ablation.MotorX.MotionComplete) { - if (equipment.process.ablation.Get_Is_Position_X_Power_Meter() && equipment.process.ablation.Get_Is_Position_Z_Power_Meter()) + if (equipment.process.ablation.Get_Is_Position_X_Power_Meter()) { - auto_power_view.Add_Info($"Scanner Position Move"); + auto_power_view.Add_Info($"Scanner Position X Power meter Move"); + Step = AblationSteps.S5230_SCANNER_POSITION_Z_MOVE; + } + else + { + Step = AblationSteps.S5210_SCANNER_POSITION_X_MOVE; + } + } + break; + } + case AblationSteps.S5230_SCANNER_POSITION_Z_MOVE: + { + if (equipment.process.ablation.Move_Z_Power_Meter_Position()) + { + Step = AblationSteps.S5240_SCANNER_MOVE_WAIT; + } + break; + } + case AblationSteps.S5240_SCANNER_MOVE_WAIT: + { + if (equipment.process.ablation.MotorZ.MotionComplete) + { + if (equipment.process.ablation.Get_Is_Position_Z_Power_Meter()) + { + auto_power_view.Add_Info($"Scanner Position Z Power meter Move"); Step = AblationSteps.S5300_SCANNER_INIT; } else { - Step = AblationSteps.S5210_SCANNER_POSITION_MOVE; + Step = AblationSteps.S5230_SCANNER_POSITION_Z_MOVE; } } break; @@ -1442,10 +1527,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; } @@ -1526,7 +1621,7 @@ { //alarm. Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0942_POWER_COUNT_IS_EMPTY); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } double averager = lst_power.Average(); @@ -1554,7 +1649,7 @@ auto_power_view.Add_Info($"Max : {lst_power.Max()}"); auto_power_view.Add_Info($"Min : {lst_power.Min()}"); Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0940_TARGET_POWER_ERROR); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } break; } @@ -1587,9 +1682,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; } @@ -1670,7 +1776,7 @@ { //alarm. Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0942_POWER_COUNT_IS_EMPTY); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } double averager = lst_power.Average(); @@ -1687,7 +1793,7 @@ auto_power_view.Add_Info($"Max : {lst_power.Max()}"); auto_power_view.Add_Info($"Min : {lst_power.Min()}"); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } else { @@ -1713,7 +1819,7 @@ auto_power_view.Add_Info($"Max : {lst_power.Max()}"); auto_power_view.Add_Info($"Min : {lst_power.Min()}"); Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0941_RECIPE_POWER_ERROR); - Step = AblationSteps.S5999_AUTO_POWER_END; + Step = AblationSteps.S6000_MOVE_STAY_POSITION; } } break; @@ -1739,8 +1845,36 @@ Step = AblationSteps.S5410_RECIPE_POWER_SET; break; } - case AblationSteps.S5999_AUTO_POWER_END: + case AblationSteps.S6000_MOVE_STAY_POSITION: { + double position = Get_Scanner_Z_A1_Stay_Position(); + + if (MotorZ.Move_Absolute_Pos(position, 500)) + { + Step = AblationSteps.S6100_MOVE_WAIT; + } + break; + } + case AblationSteps.S6100_MOVE_WAIT: + { + double position = Get_Scanner_Z_A1_Stay_Position(); + + if (MotorZ.MotionComplete) + { + if (MotorZ.Is_Inposition(position, equipment.Setting.Inposition_Offset)) + { + auto_power_view.Add_Info($"Scanner Stay Position Move"); + Step = AblationSteps.S5999_AUTO_POWER_END; + } + else + { + Step = AblationSteps.S6000_MOVE_STAY_POSITION; + } + } + break; + } + case AblationSteps.S5999_AUTO_POWER_END: + { Parameter_Power parameter = equipment.Power_Parameter.Clone(); parameter.Measure_Date = DateTime.Now; Parameter_Power_Manager.Instance.Save_Parameter_Power(parameter); -- Gitblit v1.9.3