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<InputAxis, DI> Inputs { get; private set; }
|
|
public Dictionary<OutputAxis, DO> Outputs { get; private set; }
|
|
public Dictionary<AnalogAxis, Analog> Analogs { get; private set; }
|
|
public Dictionary<MotorAxis, Axis> 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<InputAxis, DI>();
|
Outputs = new Dictionary<OutputAxis, DO>();
|
Analogs = new Dictionary<AnalogAxis, Analog>();
|
Motors = new Dictionary<MotorAxis, Axis>();
|
|
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;
|
}
|
}
|
}
|
}
|