using System; namespace AuroraLaser { public interface IExternalShutter { void SetExternalShutterOpen(int iLaserNo, bool bOpen); bool IsExternalShutterOpened(int iLaserNo); void SetDispLaser(bool bOn); } public interface IExternalLaserShot { void SetLaserShot(int iLaserNo, bool bLaserShotOn); int GetLaserShot(int iLaserNo); } #region Enumerator Definitions public enum eLaserType { ArmLaser, TrueDiskLaser, TruFiber, TruPulse, CoherentHyperRapidLaser, LaserRapidLX, NL202, IPG_YLPN, IPG_YLS, Coherent_Arm_IO, Trumpf_IO } public enum eTruFiberType { TruFiberP, TruFiberS, CalPercentToMeasuredVoltage, None } public enum eLaserStatus { STATUS_NONE = 0, STATUS_LASER_ON_STEP, STATUS_LASER_READY, STATUS_LASER_OFF_STEP, STATUS_LASER_OFF, STATUS_LASER_ERROR, STATUS_LASER_INFO_CHANGE }; #endregion #region ArmLaser Definetions public struct sNodeInfo { public int nExist; public string strNodeName; // Command Name public string strDisplayNodeName; // Display Name public string strKey; // Matching key, callback public int nNodeType; // 리턴 타입. public int IsCallBack; // Max CallBack 10set. public int priority; // 통신 우선 순위. 작을수록 우선. 0부터 시작 public int nDigit; // 배율. Pulse Power인 경우 1000 곱해야 한다. 이거 그냥 double로 해서 곱하는걸로? public int nKey; // Coherent용 Write 별로 and할 필요가 있다. 1,2,4,8,16~~~ public int nSettingValue; // Coherent용 Write 할 값(On/Off) // return data. public int nRet; public long lRet; public UInt16 n16Ret; public UInt32 n32Ret; public UInt64 n64Ret; public bool bRet; public double dRet; public string strRet; } public class csNodeType { public const int INT = 0; public const int DOUBLE = 1; public const int STRING = 2; public const int UINT16 = 3; public const int UINT32 = 4; public const int UINT64 = 5; public const int BYTE = 6; public const int BOOL = 7; } /// TRUMPF TRUSDISK public class csReadNodeNo { public static readonly int EXT_ACTIVATION_ACTIVE = 0; public static readonly int LASER_WARNING_LAMP_IS_ON = 1; public static readonly int LASER_READY = 2; public static readonly int LASER_IS_ON = 3; public static readonly int LASER_ASSIGNED = 4; public static readonly int PILOT_LASER_IS_ON = 5; public static readonly int PROG_COMPLETED = 6; public static readonly int FAULT_LASER = 7; public static readonly int PROG_ACTIVE = 8; public static readonly int PROG_CANCELLED = 9; public static readonly int PROGRAM_NO = 10; public static readonly int PROGRAM_LINE_NO = 11; public static readonly int LASER_ON_PHASE = 12; public static readonly int LIGHTPATH_BLOCKED = 13; public static readonly int LLK_OPEN = 14; public static readonly int LLR_OFF = 15; public static readonly int MAINTENANCE = 16; public static readonly int MONITORING = 17; public static readonly int POWER_LIMIT = 18; public static readonly int AUXILIARYHEATING_ACTIVE = 19; public static readonly int FIRMWAREUPDATE_ACTIVE = 20; public static readonly int SIK_OPEN = 21; public static readonly int SLEEPMODE_ACTIVE = 22; public static readonly int SYNC_OPEN = 23; public static readonly int SYS_READY = 24; public static readonly int SYS_LASER_ESTOP_OPEN = 25; #region Pulse Data public static readonly int PULSE_POWER = 26; // DOUBLE Currently set pulse power PLC 화면상 생산 -> 펄스 데이터 부분의 펄스 출력 public static readonly int PULSE_POWER_NOMINAL = 27; // DOUBLE Currently measured pulse power 목표값 펄스 출력. public static readonly int CW_POWER = 28; // DOUBLE Laser Power public static readonly int POWER = 29; // DOUBLE Currently measured laser power public static readonly int ENERGEY = 30; // UINT64 Current Energy of the currently active pulse public static readonly int FREQUENCY = 31; // DOUBLE Currently set pulse repetition frequency 목표값 펄스 주파수 public static readonly int FREQUENCY_NOMINAL = 32; // DOUBLE Currently measured pulse repetition frequency 현재값 펄스 주파수 public static readonly int PULSE_DURATION = 33; // UINT32 Currently set pulse duration 목표값 펄스 기간 public static readonly int PULSE_DURATION_NOMINAL = 34; // UINT32 Currently measured pulse duration 현재값 펄스 기간 public static readonly int PULSE_NUMBER = 35; // UINT16 Currently set pulse number 목표값 펄스 수량 public static readonly int PULSE_NUMBER_NOMINAL = 36; // UINT16 Currently measured pulse number 현재값 펄스 수량 #endregion #region Cooling public static readonly int COOLING_DI_PRESSURE_DIFF = 37; public static readonly int COOLING_DI_RETURN_PRESSURE = 38; // Current pressure of the deionized water //CODE.BY.YIS Laser Cool Parameter Log 추가 public static readonly int COOLING_PRESSURE_OUT_EXT = 39; public static readonly int COOLING_PRESSURE_IN_EXT = 40; public static readonly int COOLING_TEMP_WATER_IN_EXT = 41; public static readonly int COOLING_PWM_X30_MV = 42; public static readonly int COOLING_TEMP_TANK_SET_TRACKING = 43; public static readonly int COOLING_TEMP_COOLING_WATER = 44; public static readonly int COOLING_PRESSURE_PUMP = 45; public static readonly int COOLING_FC_MAX_FREQUENCY = 46; public static readonly int COOLING_FC_FREQUENCY_PUMP = 47; public static readonly int COLLING_TEMP_X80 = 48; public static readonly int COLLING_PRES_X90 = 49; public static readonly int COLLING_SPEED_FAN = 50; #endregion #region TruFiber public static readonly int LASER_CONTROL_IS_ON = 51; public static readonly int MACHINE_COOLING_READY = 52; public static readonly int PROCESS_FAULT = 53; public static readonly int PROCESS_MONITORING = 54; public static readonly int EMISSION_ON = 55; public static readonly int LASER_POWER = 56; #endregion #region Output Word public static readonly int OW06 = 66; public static readonly int OW07 = 67; public static readonly int OW08 = 68; public static readonly int OW09 = 69; public static readonly int OW10 = 70; public static readonly int OW11 = 71; public static readonly int OW12 = 72; public static readonly int OW13 = 73; public static readonly int OW14 = 74; public static readonly int OW15 = 75; #endregion #region public static readonly int LASTMESSAGE_TYPE = 90; public static readonly int LASTMESSAGE_COMPID = 91; public static readonly int LASTMESSAGE_COMPNUM = 92; public static readonly int LASTMESSAGE_MSGCODE = 93; public static readonly int LASTMESSAGE_SHORTTEXT = 94; public static readonly int LASTMESSAGE_TIMESTAMP = 95; #endregion } public class csWriteNodeNo { public const int EXT_ACTIVATION = 0; // Bool public const int LASER_RESET = 1; // Bool public const int LASER_ON = 2; // Bool public const int PROG_STOP = 3; // Bool public const int PSTART_DYN = 4; // Bool public const int REQUEST_LASER = 5; // Bool public const int PSTART_STATICAL = 6; // Bool public const int INQUIRY_1 = 7; // Bool public const int INQUIRY_2 = 8; // Bool public const int PILOT_LASER_ON = 9; // Bool public const int FAULT_EXT = 10; // Bool public const int LOCK_OPERATING_PANEL = 11; // Bool public const int PROGRAM_NO = 12; // Uint16 public const int LIGHT_PATH_NO = 13; // Uint16 public const int IW03 = 14; // Uint16 public const int IW04 = 15; // Uint16 public const int IW05 = 16; // Uint16 public const int IW06 = 17; // Uint16 public const int IW07 = 18; // Uint16 public const int IW08 = 19; // Uint16 public const int IW09 = 20; // Uint16 public const int IW10 = 21; // Uint16 public const int IW11 = 22; // Uint16 public const int IW12 = 23; // Uint16 public const int IW13 = 24; // Uint16 public const int IW14 = 25; // Uint16 public const int IW15 = 26; // Uint16 public const int IW16 = 27; // Uint16 public const int IW17 = 28; // Uint16 public const int IW18 = 29; // Uint16 public const int IW19 = 30; // Uint16 public const int IW20 = 31; // Uint16 } /// COHERENT public class csReadCOH { public const int INIT_COMMUNICATION = 0; // Laser ready for communication. 0=not ready, 1=ready public const int EMS_STATUS = 1; // Emission status. 0=off, 1=on public const int MAINS_STATUS = 2; // Card Main supply status.start 먹었는지 확인용. start이후 이 값이 1로 변경되어야 사용할 수 있다. // public const int SPO = 3; // PSU Output state. 0=off, 1=on. start 이후 이 값이 on되면 레이저 발진 가능. ems로 대체 확인. spo는 0,1,2 public const int WARNING_STATUS = 3; // Warning Status. 0=no warning, 1=warning in the system. public const int ERROR_STATUS = 4; // Error Status. 0=no error, 1=error in the system. // public const int FIBER_ERROR_STATUS = 6; // Fiber Error status public const int PILOT_LASER_STATE = 5; // Pilot Laser state public const int CONTROL_MODE = 6; // Local (1), Remote(2) need Local mode to use pilot laser. public const int WATER_FLOW_MAIN = 7; // Water flow state L/m public const int WATER_FLOW_MODULE_1 = 8; // Water flow state L/m public const int WATER_FLOW_MODULE_2 = 9; // Water flow state L/m public const int WATER_TEMP_MAIN = 10; // Water temp 0.1 degree public const int WATER_TEMP_MODULE_1 = 11; // Water temp 0.1 degree public const int WATER_TEMP_MODULE_2 = 12; // Water temp 0.1 degree public const int HUMIDITY_MAIN = 13; // Humidity 0.1% public const int HUMIDITY_MODULE_1 = 14; // Humidity 0.1% public const int HUMIDITY_MODULE_2 = 15; // Humidity 0.1% public const int ERROR_MESSAGE = 16; // Alarm Message. public const int LASER_POWER_CENTER = 17; // Laser Power CENTER Analog * ?? (Max 1500) public const int LASER_POWER_RING = 18; // Laser Power RING Analog * ?? (Max 2500) } public class csWriteCOH { // return Value OK/ERROR/OK resetting. public const int SYSTEM_START = 0; // Bool !start. public const int LASER_START = 1; // Bool !spo 1/0 public const int PILOT_LASER = 2; // Bool !abo 1/0 public const int LASER_RESET = 3; // Bool !reset public const int CONTROL_MODE = 4; // Bool !spm 1(local)/2(remote) } #endregion }