| | |
| | | { |
| | | if (!IsInitialize) return false; |
| | | |
| | | RTC4Wrap.laser_signal_on(); |
| | | bool isInPosition = false; |
| | | if (_equip.Cur_Main_Recipe != null && _equip.Cur_Main_Recipe.process_info != null && _equip.Cur_Main_Recipe.panel_type_info != null) |
| | | { |
| | | double scannerA1Position = _equip.Cur_Main_Recipe.process_info.Scanner_X_A1 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_A1; |
| | | double scannerA2Position = _equip.Cur_Main_Recipe.process_info.Scanner_X_A2 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_A2; |
| | | double scannerB1Position = _equip.Cur_Main_Recipe.process_info.Scanner_X_B1 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_B1; |
| | | double scannerB2Position = _equip.Cur_Main_Recipe.process_info.Scanner_X_B2 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_X_B2; |
| | | |
| | | _equip.Write_Scanner_Log("Laser On Success"); |
| | | double stageA1Position = _equip.Cur_Main_Recipe.process_info.Scanner_Y_A1 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_A1; |
| | | double stageA2Position = _equip.Cur_Main_Recipe.process_info.Scanner_Y_A2 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_A2; |
| | | double stageB1Position = _equip.Cur_Main_Recipe.process_info.Scanner_Y_B1 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_B1; |
| | | double stageB2Position = _equip.Cur_Main_Recipe.process_info.Scanner_Y_B2 + _equip.Cur_Main_Recipe.panel_type_info.Scanner_Offset_Y_B2; |
| | | |
| | | object value; |
| | | _equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_X_Actual_Position, out value); |
| | | double scannerPosition = double.Parse($"{value}"); |
| | | |
| | | _equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_Y_1_Actual_Position, out value); |
| | | double stageAPosition = double.Parse($"{value}"); |
| | | _equip.sm.Get_Value(RS_Automation_Motor_Address.Ablation_Y_2_Actual_Position, out value); |
| | | double stageBPosition = double.Parse($"{value}"); |
| | | |
| | | isInPosition |= (scannerA1Position - 10 <= scannerPosition && scannerPosition <= scannerA1Position + 10) && (stageA1Position - 10 <= stageAPosition && stageAPosition <= stageA1Position + 10); |
| | | isInPosition |= (scannerA2Position - 10 <= scannerPosition && scannerPosition <= scannerA2Position + 10) && (stageA2Position - 10 <= stageAPosition && stageAPosition <= stageA2Position + 10); |
| | | isInPosition |= (scannerB1Position - 10 <= scannerPosition && scannerPosition <= scannerB1Position + 10) && (stageB1Position - 10 <= stageBPosition && stageBPosition <= stageB1Position + 10); |
| | | isInPosition |= (scannerB2Position - 10 <= scannerPosition && scannerPosition <= scannerB2Position + 10) && (stageB2Position - 10 <= stageBPosition && stageBPosition <= stageB2Position + 10); |
| | | isInPosition |= _equip.process.ablation.Get_Is_Position_X_Power_Meter() && _equip.process.ablation.Get_Is_Position_Z_Power_Meter(); |
| | | } |
| | | else |
| | | { |
| | | isInPosition |= _equip.process.ablation.Get_Is_Position_X_Power_Meter() && _equip.process.ablation.Get_Is_Position_Z_Power_Meter(); |
| | | } |
| | | |
| | | if (isInPosition) |
| | | { |
| | | RTC4Wrap.laser_signal_on(); |
| | | _equip.Write_Scanner_Log("Laser On Success"); |
| | | } |
| | | else |
| | | { |
| | | _equip.Write_Scanner_Log("Laser On fail, not enable position"); |
| | | return false; |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | catch (Exception ex) |