using DIT.SharedMemory; using MMCE_Test; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using static MMCE_Test.NMCSDKLib; namespace SHARP_CLAS_UI { #region enum #endregion public class Sharp_Board_Control : IDisposable { #region Property public Dictionary Inputs { get; private set; } public Dictionary Outputs { get; private set; } public Dictionary Analogs { get; private set; } public Dictionary Motors { get; private set; } public ushort BoardID { get; private set; } public bool BoardInit { get; private set; } public EcMstMode BoardMode { get; private set; } #endregion #region Field ushort[] DOMap; ushort[] DIMap; ushort[] AnalogMap; ushort[] AxisMap; Thread Board_Data_Update_Th; Thread DI_Data_Update_Th; Thread DO_Data_Update_Th; Thread Axis_Data_Update_Th; Thread Addr_Data_update_Th; Thread Interlock_Th; Equipment _equip; public IO_Manager IO_manager; bool IsDisposed; #endregion public Sharp_Board_Control(Equipment _equip) { this._equip = _equip; IsDisposed = false; Sharp_Board_Control_Start(); } private void Sharp_Board_Control_Start() { BoardID = 0; Inputs = new Dictionary(); Outputs = new Dictionary(); Analogs = new Dictionary(); Motors = new Dictionary(); Init_Alias(); Init_Thread(); IO_manager = new IO_Manager(); } public void Dispose() { IsDisposed = true; Board_Data_Update_Th.Abort(); DI_Data_Update_Th.Abort(); DO_Data_Update_Th.Abort(); Axis_Data_Update_Th.Abort(); Addr_Data_update_Th.Abort(); Interlock_Th.Abort(); } private void Init_Alias() { //Inputs foreach (ushort i in Enum.GetValues(typeof(InputAxis))) { Inputs.Add((InputAxis)i, new DI(BoardID, i, 32)); } //Outputs foreach (ushort i in Enum.GetValues(typeof(OutputAxis))) { Outputs.Add((OutputAxis)i, new DO(BoardID, i, 32)); } foreach(ushort i in Enum.GetValues(typeof(AnalogAxis))) { Analogs.Add((AnalogAxis)i, new Analog(BoardID, i)); } //Motors foreach(ushort i in Enum.GetValues(typeof(MotorAxis))) { Motors.Add((MotorAxis)i, new Axis(this, BoardID, i)); } } private void Init_Thread() { Board_Data_Update_Th = new Thread(Board_Data_Update_Th_Set); DI_Data_Update_Th = new Thread(DI_Data_Update_Th_Set); DO_Data_Update_Th = new Thread(DO_Data_Update_Th_Set); Axis_Data_Update_Th = new Thread(Axis_Data_Update_Th_Set); Addr_Data_update_Th = new Thread(Addr_Data_update_Th_Set); Interlock_Th = new Thread(Interlock_Th_Set); Board_Data_Update_Th.Start(); DI_Data_Update_Th.Start(); DO_Data_Update_Th.Start(); Axis_Data_Update_Th.Start(); Addr_Data_update_Th.Start(); Interlock_Th.Start(); } private void Board_Data_Update_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); Board_Data_Update(); } } private void DI_Data_Update_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); DI_Data_Update(); } } private void DO_Data_Update_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); DO_Data_Update(); } } private void Axis_Data_Update_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); Axis_Data_Update(); Addr_Data_update(); } } private void Addr_Data_update_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); Analog_Data_Update(); } } private void Interlock_Th_Set() { while (!IsDisposed) { Thread.Sleep(50); try { Interlock_Update(); } catch(Exception) { } } } private void Board_Data_Update() { try { DateTime dt = DateTime.Now; Get_Board_Mode(); if (BoardInit == false) { if(!Board_Init()) { //Board Control 확인 Alarm 추가. return; } else { if (Board_Run()) { foreach (Axis axis in Motors.Values) { axis.MC_Error_Reset(); axis.Amp_On(); } } } } ushort DICount = 0; ushort DOCount = 0; ushort AnalogCount = 0; NMCSDKLib.MasterGet_DO_DeviceCount(BoardID, ref DOCount); NMCSDKLib.MasterGet_DI_DeviceCount(BoardID, ref DICount); NMCSDKLib.MasterGet_AO_DeviceCount(BoardID, ref AnalogCount); DIMap = new ushort[DICount]; DOMap = new ushort[DOCount]; AnalogMap = new ushort[AnalogCount]; if (DICount > 0) NMCSDKLib.MasterGet_DI_DeviceID(BoardID, DIMap); if (DOCount > 0) NMCSDKLib.MasterGet_DO_DeviceID(BoardID, DOMap); AxisMap = new ushort[100]; uint AxisCount = 0; NMCSDKLib.MasterGetAxesID(BoardID, AxisMap); NMCSDKLib.MasterGetAxesCount(BoardID, ref AxisCount); uint uAxisCount = AxisCount; TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void DI_Data_Update() { try { DateTime dt = DateTime.Now; if (!BoardInit) return; int inputaxis = 0; SharedmemoryAddressInfo[] inputmemory = Input_Memory_Address.Get_Address_Infos(); foreach (DI input in Inputs.Values) { if (DIMap.Contains(input.Device_Id)) { EcState state; if(input.Get_State(out state)) { if(state == EcState.eST_OP) { if (input.Get_Input()) { for (int i = 0; i < input.Status.Length; i++) { _equip.sm.Set_Bit(inputmemory[inputaxis * input.Status.Length + i], input.Status[i]); } } } } } inputaxis++; } TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void DO_Data_Update() { try { DateTime dt = DateTime.Now; if (!BoardInit) return; int outputaxis = 0; SharedmemoryAddressInfo[] outputmemory= Output_Memory_Address.Get_Address_Infos(); foreach (DO output in Outputs.Values) { if (DOMap.Contains(output.Device_Id)) { EcState state; if (output.Get_State(out state)) { if (state == EcState.eST_OP) { if (output.Get_Ouput()) { for (int i = 0; i < output.Status.Length; i++) { _equip.sm.Set_Bit(outputmemory[outputaxis * output.Status.Length + i], output.Status[i]); } } } } } outputaxis++; } TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void Axis_Data_Update() { try { DateTime dt = DateTime.Now; if (!BoardInit) return; EcState state; foreach (Axis axis in Motors.Values) { if (AxisMap.Contains(axis.Device_Id)) { if (axis.Get_State(out state)) { if (state == EcState.eST_OP) { axis.Get_Actual_Position(); axis.Get_Actual_Velocity(); axis.Get_Axis_Status(); axis.ErrorInfo(); } } } } TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void Addr_Data_update() { try { DateTime dt = DateTime.Now; _equip.sm.Set_Bit(RS_Automation_Motor_Address.Board_Init, BoardInit); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Status, Motors[MotorAxis.LD_Tray_In_Port].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_ID, Motors[MotorAxis.LD_Tray_In_Port].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_Info_0, Motors[MotorAxis.LD_Tray_In_Port].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_Info_1, Motors[MotorAxis.LD_Tray_In_Port].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Actual_Position, Motors[MotorAxis.LD_Tray_In_Port].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Actual_Velocity, Motors[MotorAxis.LD_Tray_In_Port].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Status, Motors[MotorAxis.LD_Tray_Out_Port].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Error_ID, Motors[MotorAxis.LD_Tray_Out_Port].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Error_Info_0, Motors[MotorAxis.LD_Tray_Out_Port].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Error_Info_1, Motors[MotorAxis.LD_Tray_Out_Port].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Actual_Position, Motors[MotorAxis.LD_Tray_Out_Port].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Port_Actual_Velocity, Motors[MotorAxis.LD_Tray_Out_Port].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Status, Motors[MotorAxis.LD_Tray_In_Lift].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Error_ID, Motors[MotorAxis.LD_Tray_In_Lift].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Error_Info_0, Motors[MotorAxis.LD_Tray_In_Lift].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Error_Info_1, Motors[MotorAxis.LD_Tray_In_Lift].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Actual_Position, Motors[MotorAxis.LD_Tray_In_Lift].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Lift_Actual_Velocity, Motors[MotorAxis.LD_Tray_In_Lift].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Status, Motors[MotorAxis.LD_Tray_Out_Lift].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Error_ID, Motors[MotorAxis.LD_Tray_Out_Lift].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Error_Info_0, Motors[MotorAxis.LD_Tray_Out_Lift].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Error_Info_1, Motors[MotorAxis.LD_Tray_Out_Lift].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Actual_Position, Motors[MotorAxis.LD_Tray_Out_Lift].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_Out_Lift_Actual_Velocity, Motors[MotorAxis.LD_Tray_Out_Lift].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Status, Motors[MotorAxis.LD_Tray_TR_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Error_ID, Motors[MotorAxis.LD_Tray_TR_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Error_Info_0, Motors[MotorAxis.LD_Tray_TR_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Error_Info_1, Motors[MotorAxis.LD_Tray_TR_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Actual_Position, Motors[MotorAxis.LD_Tray_TR_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_TR_X_Actual_Velocity, Motors[MotorAxis.LD_Tray_TR_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Status, Motors[MotorAxis.LD_Handler_1_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Error_ID, Motors[MotorAxis.LD_Handler_1_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Error_Info_0, Motors[MotorAxis.LD_Handler_1_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Error_Info_1, Motors[MotorAxis.LD_Handler_1_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Actual_Position, Motors[MotorAxis.LD_Handler_1_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_X_Actual_Velocity, Motors[MotorAxis.LD_Handler_1_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Status, Motors[MotorAxis.LD_Handler_2_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Error_ID, Motors[MotorAxis.LD_Handler_2_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Error_Info_0, Motors[MotorAxis.LD_Handler_2_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Error_Info_1, Motors[MotorAxis.LD_Handler_2_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Actual_Position, Motors[MotorAxis.LD_Handler_2_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_X_Actual_Velocity, Motors[MotorAxis.LD_Handler_2_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Status, Motors[MotorAxis.LD_Handler_1_Y].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Error_ID, Motors[MotorAxis.LD_Handler_1_Y].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Error_Info_0, Motors[MotorAxis.LD_Handler_1_Y].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Error_Info_1, Motors[MotorAxis.LD_Handler_1_Y].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Actual_Position, Motors[MotorAxis.LD_Handler_1_Y].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_1_Y_Actual_Velocity, Motors[MotorAxis.LD_Handler_1_Y].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Status, Motors[MotorAxis.LD_Handler_2_Y].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Error_ID, Motors[MotorAxis.LD_Handler_2_Y].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Error_Info_0, Motors[MotorAxis.LD_Handler_2_Y].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Error_Info_1, Motors[MotorAxis.LD_Handler_2_Y].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Actual_Position, Motors[MotorAxis.LD_Handler_2_Y].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Handler_2_Y_Actual_Velocity, Motors[MotorAxis.LD_Handler_2_Y].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Status, Motors[MotorAxis.LD_Tray_In_Port].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_ID, Motors[MotorAxis.LD_Tray_In_Port].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_Info_0, Motors[MotorAxis.LD_Tray_In_Port].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Error_Info_1, Motors[MotorAxis.LD_Tray_In_Port].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Actual_Position, Motors[MotorAxis.LD_Tray_In_Port].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Tray_In_Port_Actual_Velocity, Motors[MotorAxis.LD_Tray_In_Port].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Status, Motors[MotorAxis.LD_Rotation_Unit_Z_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Error_ID, Motors[MotorAxis.LD_Rotation_Unit_Z_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Error_Info_0, Motors[MotorAxis.LD_Rotation_Unit_Z_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Error_Info_1, Motors[MotorAxis.LD_Rotation_Unit_Z_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Actual_Position, Motors[MotorAxis.LD_Rotation_Unit_Z_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_1_Actual_Velocity, Motors[MotorAxis.LD_Rotation_Unit_Z_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Status, Motors[MotorAxis.LD_Rotation_Unit_R_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Error_ID, Motors[MotorAxis.LD_Rotation_Unit_R_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Error_Info_0, Motors[MotorAxis.LD_Rotation_Unit_R_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Error_Info_1, Motors[MotorAxis.LD_Rotation_Unit_R_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Actual_Position, Motors[MotorAxis.LD_Rotation_Unit_R_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_1_Actual_Velocity, Motors[MotorAxis.LD_Rotation_Unit_R_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Status, Motors[MotorAxis.LD_Rotation_Unit_Z_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Error_ID, Motors[MotorAxis.LD_Rotation_Unit_Z_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Error_Info_0, Motors[MotorAxis.LD_Rotation_Unit_Z_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Error_Info_1, Motors[MotorAxis.LD_Rotation_Unit_Z_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Actual_Position, Motors[MotorAxis.LD_Rotation_Unit_Z_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_Z_2_Actual_Velocity, Motors[MotorAxis.LD_Rotation_Unit_Z_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Status, Motors[MotorAxis.LD_Rotation_Unit_R_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Error_ID, Motors[MotorAxis.LD_Rotation_Unit_R_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Error_Info_0, Motors[MotorAxis.LD_Rotation_Unit_R_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Error_Info_1, Motors[MotorAxis.LD_Rotation_Unit_R_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Actual_Position, Motors[MotorAxis.LD_Rotation_Unit_R_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.LD_Rotation_Unit_R_2_Actual_Velocity, Motors[MotorAxis.LD_Rotation_Unit_R_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Status, Motors[MotorAxis.Pre_Align_Stage_X_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Error_ID, Motors[MotorAxis.Pre_Align_Stage_X_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_X_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_X_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_X_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_1_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_X_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Status, Motors[MotorAxis.Pre_Align_Stage_Y_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Error_ID, Motors[MotorAxis.Pre_Align_Stage_Y_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_Y_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_Y_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_Y_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_1_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_Y_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Status, Motors[MotorAxis.Pre_Align_Stage_T_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Error_ID, Motors[MotorAxis.Pre_Align_Stage_T_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_T_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_T_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_T_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_1_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_T_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Status, Motors[MotorAxis.Pre_Align_Stage_X_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Error_ID, Motors[MotorAxis.Pre_Align_Stage_X_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_X_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_X_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_X_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_X_2_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_X_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Status, Motors[MotorAxis.Pre_Align_Stage_Y_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Error_ID, Motors[MotorAxis.Pre_Align_Stage_Y_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_Y_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_Y_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_Y_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_Y_2_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_Y_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Status, Motors[MotorAxis.Pre_Align_Stage_T_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Error_ID, Motors[MotorAxis.Pre_Align_Stage_T_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Error_Info_0, Motors[MotorAxis.Pre_Align_Stage_T_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Error_Info_1, Motors[MotorAxis.Pre_Align_Stage_T_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Actual_Position, Motors[MotorAxis.Pre_Align_Stage_T_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Pre_Align_Stage_T_2_Actual_Velocity, Motors[MotorAxis.Pre_Align_Stage_T_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Status, Motors[MotorAxis.Ablation_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Error_ID, Motors[MotorAxis.Ablation_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Error_Info_0, Motors[MotorAxis.Ablation_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Error_Info_1, Motors[MotorAxis.Ablation_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Actual_Position, Motors[MotorAxis.Ablation_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_X_Actual_Velocity, Motors[MotorAxis.Ablation_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Status, Motors[MotorAxis.Ablation_Y_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Error_ID, Motors[MotorAxis.Ablation_Y_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Error_Info_0, Motors[MotorAxis.Ablation_Y_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Error_Info_1, Motors[MotorAxis.Ablation_Y_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Actual_Position, Motors[MotorAxis.Ablation_Y_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_1_Actual_Velocity, Motors[MotorAxis.Ablation_Y_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Status, Motors[MotorAxis.Ablation_Y_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Error_ID, Motors[MotorAxis.Ablation_Y_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Error_Info_0, Motors[MotorAxis.Ablation_Y_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Error_Info_1, Motors[MotorAxis.Ablation_Y_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Actual_Position, Motors[MotorAxis.Ablation_Y_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Y_2_Actual_Velocity, Motors[MotorAxis.Ablation_Y_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Status, Motors[MotorAxis.Ablation_Z].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Error_ID, Motors[MotorAxis.Ablation_Z].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Error_Info_0, Motors[MotorAxis.Ablation_Z].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Error_Info_1, Motors[MotorAxis.Ablation_Z].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Actual_Position, Motors[MotorAxis.Ablation_Z].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Ablation_Z_Actual_Velocity, Motors[MotorAxis.Ablation_Z].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Status, Motors[MotorAxis.Fine_Align_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Error_ID, Motors[MotorAxis.Fine_Align_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Error_Info_0, Motors[MotorAxis.Fine_Align_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Error_Info_1, Motors[MotorAxis.Fine_Align_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Actual_Position, Motors[MotorAxis.Fine_Align_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Fine_Align_X_Actual_Velocity, Motors[MotorAxis.Fine_Align_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Status, Motors[MotorAxis.Plasma_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Error_ID, Motors[MotorAxis.Plasma_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Error_Info_0, Motors[MotorAxis.Plasma_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Error_Info_1, Motors[MotorAxis.Plasma_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Actual_Position, Motors[MotorAxis.Plasma_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.Plasma_X_Actual_Velocity, Motors[MotorAxis.Plasma_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Status, Motors[MotorAxis.AOI_Stage_T_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Error_ID, Motors[MotorAxis.AOI_Stage_T_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Error_Info_0, Motors[MotorAxis.AOI_Stage_T_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Error_Info_1, Motors[MotorAxis.AOI_Stage_T_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Actual_Position, Motors[MotorAxis.AOI_Stage_T_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_1_Actual_Velocity, Motors[MotorAxis.AOI_Stage_T_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Status, Motors[MotorAxis.AOI_Stage_T_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Error_ID, Motors[MotorAxis.AOI_Stage_T_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Error_Info_0, Motors[MotorAxis.AOI_Stage_T_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Error_Info_1, Motors[MotorAxis.AOI_Stage_T_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Actual_Position, Motors[MotorAxis.AOI_Stage_T_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.AOI_Stage_T_2_Actual_Velocity, Motors[MotorAxis.AOI_Stage_T_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Status, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Error_ID, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Error_Info_0, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Error_Info_1, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Actual_Position, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_1_Actual_Velocity, Motors[MotorAxis.ULD_Rotation_Unit_Z_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Status, Motors[MotorAxis.ULD_Rotation_Unit_R_1].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Error_ID, Motors[MotorAxis.ULD_Rotation_Unit_R_1].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Error_Info_0, Motors[MotorAxis.ULD_Rotation_Unit_R_1].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Error_Info_1, Motors[MotorAxis.ULD_Rotation_Unit_R_1].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Actual_Position, Motors[MotorAxis.ULD_Rotation_Unit_R_1].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_1_Actual_Velocity, Motors[MotorAxis.ULD_Rotation_Unit_R_1].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Status, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Error_ID, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Error_Info_0, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Error_Info_1, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Actual_Position, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_Z_2_Actual_Velocity, Motors[MotorAxis.ULD_Rotation_Unit_Z_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Status, Motors[MotorAxis.ULD_Rotation_Unit_R_2].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Error_ID, Motors[MotorAxis.ULD_Rotation_Unit_R_2].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Error_Info_0, Motors[MotorAxis.ULD_Rotation_Unit_R_2].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Error_Info_1, Motors[MotorAxis.ULD_Rotation_Unit_R_2].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Actual_Position, Motors[MotorAxis.ULD_Rotation_Unit_R_2].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Rotation_Unit_R_2_Actual_Velocity, Motors[MotorAxis.ULD_Rotation_Unit_R_2].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Status, Motors[MotorAxis.ULD_Handler_1_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Error_ID, Motors[MotorAxis.ULD_Handler_1_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Error_Info_0, Motors[MotorAxis.ULD_Handler_1_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Error_Info_1, Motors[MotorAxis.ULD_Handler_1_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Actual_Position, Motors[MotorAxis.ULD_Handler_1_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_X_Actual_Velocity, Motors[MotorAxis.ULD_Handler_1_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Status, Motors[MotorAxis.ULD_Handler_2_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Error_ID, Motors[MotorAxis.ULD_Handler_2_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Error_Info_0, Motors[MotorAxis.ULD_Handler_2_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Error_Info_1, Motors[MotorAxis.ULD_Handler_2_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Actual_Position, Motors[MotorAxis.ULD_Handler_2_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_X_Actual_Velocity, Motors[MotorAxis.ULD_Handler_2_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Status, Motors[MotorAxis.ULD_Handler_1_Y].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Error_ID, Motors[MotorAxis.ULD_Handler_1_Y].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Error_Info_0, Motors[MotorAxis.ULD_Handler_1_Y].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Error_Info_1, Motors[MotorAxis.ULD_Handler_1_Y].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Actual_Position, Motors[MotorAxis.ULD_Handler_1_Y].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_1_Y_Actual_Velocity, Motors[MotorAxis.ULD_Handler_1_Y].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Status, Motors[MotorAxis.ULD_Handler_2_Y].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Error_ID, Motors[MotorAxis.ULD_Handler_2_Y].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Error_Info_0, Motors[MotorAxis.ULD_Handler_2_Y].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Error_Info_1, Motors[MotorAxis.ULD_Handler_2_Y].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Actual_Position, Motors[MotorAxis.ULD_Handler_2_Y].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Handler_2_Y_Actual_Velocity, Motors[MotorAxis.ULD_Handler_2_Y].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Status, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Error_ID, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Error_Info_0, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Error_Info_1, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Actual_Position, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Lift_Z_Actual_Velocity, Motors[MotorAxis.ULD_Tray_OK_Lift_Z].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Status, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Error_ID, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Error_Info_0, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Error_Info_1, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Actual_Position, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_NG_Lift_Z_Actual_Velocity, Motors[MotorAxis.ULD_Tray_NG_Lift_Z].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Status, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Error_ID, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Error_Info_0, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Error_Info_1, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Actual_Position, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Lift_Z_Actual_Velocity, Motors[MotorAxis.ULD_Tray_IN_Lift_Z].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Status, Motors[MotorAxis.ULD_Tray_TR_X].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Error_ID, Motors[MotorAxis.ULD_Tray_TR_X].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Error_Info_0, Motors[MotorAxis.ULD_Tray_TR_X].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Error_Info_1, Motors[MotorAxis.ULD_Tray_TR_X].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Actual_Position, Motors[MotorAxis.ULD_Tray_TR_X].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_TR_X_Actual_Velocity, Motors[MotorAxis.ULD_Tray_TR_X].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Status, Motors[MotorAxis.ULD_Tray_OK_Port].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Error_ID, Motors[MotorAxis.ULD_Tray_OK_Port].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Error_Info_0, Motors[MotorAxis.ULD_Tray_OK_Port].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Error_Info_1, Motors[MotorAxis.ULD_Tray_OK_Port].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Actual_Position, Motors[MotorAxis.ULD_Tray_OK_Port].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_OK_Port_Actual_Velocity, Motors[MotorAxis.ULD_Tray_OK_Port].Velocity); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Status, Motors[MotorAxis.ULD_Tray_IN_Port].AxisStatus); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Error_ID, Motors[MotorAxis.ULD_Tray_IN_Port].ErrorID); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Error_Info_0, Motors[MotorAxis.ULD_Tray_IN_Port].ErrorInfo0); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Error_Info_1, Motors[MotorAxis.ULD_Tray_IN_Port].ErrorInfo1); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Actual_Position, Motors[MotorAxis.ULD_Tray_IN_Port].Position); _equip.sm.Set_Value(RS_Automation_Motor_Address.ULD_Tray_IN_Port_Actual_Velocity, Motors[MotorAxis.ULD_Tray_IN_Port].Velocity); TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void Analog_Data_Update() { try { DateTime dt = DateTime.Now; if (!BoardInit) return; EcState state; foreach (Analog analog in Analogs.Values) { if (analog.Get_State(out state)) { if (state == EcState.eST_OP) { if(analog.Get_Values()) { if (analog.Device_Id == (ushort)AnalogAxis.Slave1) { _equip.sm.Set_Value(Analog_Data_Memory_Address.CDA_1_Pressure_Switch_Air_Cylinder, analog.Datas[0]); _equip.sm.Set_Value(Analog_Data_Memory_Address.CDA_1_Pressure_Switch_Vaccum, analog.Datas[1]); _equip.sm.Set_Value(Analog_Data_Memory_Address.CDA_1_Pressure_Switch_Stage_Ionizer, analog.Datas[2]); _equip.sm.Set_Value(Analog_Data_Memory_Address.CDA_1_Pressure_Switch_Stage_Vaccum, analog.Datas[3]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Pre_Align_Stage_1_Vaccum_Pressure, analog.Datas[4]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Pre_Align_Stage_2_Vaccum_Pressure, analog.Datas[5]); _equip.sm.Set_Value(Analog_Data_Memory_Address.AOI_Stage_1_Vaccum_Pressure, analog.Datas[6]); _equip.sm.Set_Value(Analog_Data_Memory_Address.AOI_Stage_2_Vaccum_Pressure, analog.Datas[7]); } else if (analog.Device_Id == (ushort)AnalogAxis.Slave2) { _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_1_1_Vaccum_Pressure, analog.Datas[0]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_1_2_Vaccum_Pressure, analog.Datas[1]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_2_1_Vaccum_Pressure, analog.Datas[2]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_2_2_Vaccum_Pressure, analog.Datas[3]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_3_1_Vaccum_Pressure, analog.Datas[4]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_3_2_Vaccum_Pressure, analog.Datas[5]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_4_1_Vaccum_Pressure, analog.Datas[6]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Ablation_Stage_4_2_Vaccum_Pressure, analog.Datas[7]); } else if (analog.Device_Id == (ushort)AnalogAxis.Slave3) { _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Tray_Transfer_Vaccum_Pressure, analog.Datas[0]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Handler_1_1_Vaccum_Pressure, analog.Datas[1]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Handler_1_2_Vaccum_Pressure, analog.Datas[2]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Handler_2_1_Vaccum_Pressure, analog.Datas[3]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Handler_2_2_Vaccum_Pressure, analog.Datas[4]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Reverse_1_Vaccum_Pressure, analog.Datas[5]); _equip.sm.Set_Value(Analog_Data_Memory_Address.LD_Cell_Reverse_2_Vaccum_Pressure, analog.Datas[6]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Reserved_3_CH8, analog.Datas[7]); } else { _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Tray_Transfer_Vaccum_Pressure, analog.Datas[0]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Handler_1_1_Vaccum_Pressure, analog.Datas[1]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Handler_1_2_Vaccum_Pressure, analog.Datas[2]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Handler_2_1_Vaccum_Pressure, analog.Datas[3]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Handler_2_2_Vaccum_Pressure, analog.Datas[4]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Reverse_1_Vaccum_Pressure, analog.Datas[5]); _equip.sm.Set_Value(Analog_Data_Memory_Address.ULD_Cell_Reverse_2_Vaccum_Pressure, analog.Datas[6]); _equip.sm.Set_Value(Analog_Data_Memory_Address.Reserved_4_CH8, analog.Datas[7]); } } } } } TimeSpan ts = DateTime.Now - dt; } catch (Exception ex) { } } private void Interlock_Update() { bool value; if(_equip.sm.Get_Bit(Input_Memory_Address.LD_Handle_1_Collision_Prevention, out value)) { if(value == false) { Motors[MotorAxis.LD_Handler_1_Y].Move_Stop(500); Motors[MotorAxis.LD_Handler_2_Y].Move_Stop(500); } } if (_equip.sm.Get_Bit(Input_Memory_Address.ULD_Handle_1_Collision_Prevention, out value)) { if (value == false) { Motors[MotorAxis.ULD_Handler_1_Y].Move_Stop(500); Motors[MotorAxis.ULD_Handler_2_Y].Move_Stop(500); } } } public bool Board_Init() { try { NMCSDKLib.MC_STATUS mc; mc = NMCSDKLib.MC_Init(); if (mc == NMCSDKLib.MC_STATUS.MC_OK) { BoardInit = true; return true; } else { BoardInit = false; return false; } } catch(Exception ex) { BoardInit = false; return false; } } public bool Get_Board_Mode() { try { NMCSDKLib.MC_STATUS mc; byte bMode = 0; mc = NMCSDKLib.MasterGetCurMode(BoardID, ref bMode); if (mc == NMCSDKLib.MC_STATUS.MC_OK) { BoardMode = (EcMstMode)bMode; return true; } else { BoardMode = (EcMstMode)bMode; return false; } } catch(Exception ex) { BoardMode = EcMstMode.eMM_ERR; return false; } } public bool Board_Run() { try { NMCSDKLib.MC_STATUS mc; mc = NMCSDKLib.MC_MasterRUN(BoardID); if (mc == NMCSDKLib.MC_STATUS.MC_OK) return true; else return false; } catch (Exception ex) { return false; } } } }