using System; using System.Linq; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Runtime.InteropServices; using INT63DC_6CH.In_UserManager; namespace INT63DC_6CH { public class DataStore { #region Enum public enum EquipmentStatus { Stop = 0, Start = 1, }; public enum FormStore { FormNone = 0, FormMainDisplay, FormMenu, FormSystemSetting, FormEquipmentSetting, FormConfiguration, FormCalibration, FormCommunication, FormEquipmentTest, FormIOTest, FormTimeSetting, FormInformation, FormFactory, FormProgramUpdate, FormUserEditor, FormDataStatistics, FormOptionSetting, FormMotorSetting, FormUserGroupEditor, FormDataViewer, FormDataBackup, }; public enum FormMainDisplayStore { FormMainDisplayBarGraph, FormMainDisplayDotGraph, FormMainDisplayTable, }; public enum LanguageID { Korean = 0, English, Chinese, Czech, German, Japanese, }; public enum UserGroup { None = 0, Level1 = 1, Level2 = 2, Level3 = 3, Admin = 4, Developer = 5, NotLogin = 6, LogOut = 7, }; public enum JudgmentStatus { None, Under, Pass, Over, Double, SensorError, ExNG, Empty, UnderLimit, OverLimit, }; public enum WeightStatus { Empty, WeightChange, WeightZero, CalNomal, CalBalans, CalStandby, CalFinish, CalError, }; public enum ResponseData { NAK = 0, ACK = 1, }; public enum UserPassword { f0_Level1 = 0, f1_Level2 = 1, f2_Level3 = 2, }; public enum E_UserGroup_FileIndex { f0_Level1 = 0, f1_Level2 = 1, f2_Level3 = 2, f3_NotLogin = 3, }; public enum MessageBoxIcon { None, Hand, Question, Exclamation, Asterisk, }; public enum E_FileHeaderItem { LoginId, SerialNumber, EquipmentColumns, TimeStamp, EquipmentType, }; public enum E_DataType { None, History, Inspection, Others, }; public enum TrackingOperation { None, PowerOn, BootingComplete, EquipmentStart, EquipmentStop, Login, Logout, Calibration, Zero, Clear, UserEditor, Bypass, Update, DataBackup, GroupEditor, BP_PassOnce, BP_NgOnce, BP_PassON, BP_PassOFF, BP_NgON, BP_NgOFF, MainCut, ProductCopy, ProductPaste, ProductAllPaste, Initialization, TryEthernetStart, TryEthernetStop, EthernetConnect, EthernetDisconnect, MotorOrigin, MotorAlarmReset, MotorStep, MotorJogCW, MotorJogCCW, MotorEEPROM, }; public enum TrackingParameter { ProductNumber, WeightOverRange, WeightPassRange, WeightUnderRange, WeightTareRange, WeightOverRangeLimit, WeightUnderRangeLimit, WeightLimit_Activate, ChangeTime, ChangeName, ChangeLOT, BP_Individual, BP_All, BP_Direction, BP_Mode, JudgmentDelayTime, JudgmentCount, TurnDelayTime, Sorter1DelayTime, Sorter1RunTime, Sorter2DelayTime, Sorter2RunTime, DischargeStopperDelayTime, DischargeStopperRunTime, EntryGateDelayTime, EntryGateRunTime, Com3Baudrate, Com3Mode, TCPOpMode, TCPComMode, TCPLocalPort, TCPLocalIPConfig, TCPLocalIPAddress, TCPLocalSubnetMask, TCPLocalGateway, TCPServerIPAddress, TCPServerPort, Mod_StartAddr, EtcChattering, EtcBuzzerRunTime, EtcRelayRunTime, EtcEmptyWeight, MotorOriginOffset, MotorOriginSpeed, MotorSpeed, MotorPosition0, MotorPosition1, MotorPosition2, MotorAcceleration, MotorDeceleration, Level1Name, Level2Name, Level3Name, AutoLogout, DataStoragePeriod, }; public enum TrackingAlarm { None, a1_PressureError, a2_LoadcellError, a3_EntrySensorError, a4_ServoTorqueAlarm, a5_ServoAlarm, a6_ServoOff, }; public enum _30000_Modbus { UnderRange_High = 1010, UnderRange_Low = 1011, PassRange_High = 1012, PassRange_Low = 1013, OverRange_High = 1014, OverRange_Low = 1015, TareRange_High = 1016, TareRange_Low = 1017, HighLimit_High = 1018, HighLimit_Low = 1019, DeadZoneHighLimit_High = 1020, DeadZoneHighLimit_Low = 1021, DeadZoneLowLimit_High = 1022, DeadZoneLowLimit_Low = 1023, LowLimit_High = 1024, LowLimit_Low = 1025, SampleCount_High = 1026, SampleCount_Low = 1027, IgnoreCount_High = 1028, IgnoreCount_Low = 1029, _1_Update = 1200, _1_Grade = 1201, _1_Weight_High = 1202, _1_Weight_Low = 1203, _1_UnderCount_High = 1204, _1_UnderCount_Low = 1205, _1_PassCount_High = 1206, _1_PassCount_Low = 1207, _1_OverCount_High = 1208, _1_OverCount_Low = 1209, _1_NGCount_High = 1210, _1_NgCount_Low = 1211, _1_ExNGCount_High = 1212, _1_ExNgCount_Low = 1213, _1_TotalCount_High = 1214, _1_TotalCount_Low = 1215, _2_Update = 1250, _2_Grade = 1251, _2_Weight_High = 1252, _2_Weight_Low = 1253, _2_UnderCount_High = 1254, _2_UnderCount_Low = 1255, _2_PassCount_High = 1256, _2_PassCount_Low = 1257, _2_OverCount_High = 1258, _2_OverCount_Low = 1259, _2_NGCount_High = 1260, _2_NgCount_Low = 1261, _2_ExNGCount_High = 1262, _2_ExNgCount_Low = 1263, _2_TotalCount_High = 1264, _2_TotalCount_Low = 1265, _3_Update = 1300, _3_Grade = 1301, _3_Weight_High = 1302, _3_Weight_Low = 1303, _3_UnderCount_High = 1304, _3_UnderCount_Low = 1305, _3_PassCount_High = 1306, _3_PassCount_Low = 1307, _3_OverCount_High = 1308, _3_OverCount_Low = 1309, _3_NGCount_High = 1310, _3_NgCount_Low = 1311, _3_ExNGCount_High = 1312, _3_ExNgCount_Low = 1313, _3_TotalCount_High = 1314, _3_TotalCount_Low = 1315, _4_Update = 1350, _4_Grade = 1351, _4_Weight_High = 1352, _4_Weight_Low = 1353, _4_UnderCount_High = 1354, _4_UnderCount_Low = 1355, _4_PassCount_High = 1356, _4_PassCount_Low = 1357, _4_OverCount_High = 1358, _4_OverCount_Low = 1359, _4_NGCount_High = 1360, _4_NgCount_Low = 1361, _4_ExNGCount_High = 1362, _4_ExNgCount_Low = 1363, _4_TotalCount_High = 1364, _4_TotalCount_Low = 1365, _5_Update = 1400, _5_Grade = 1401, _5_Weight_High = 1402, _5_Weight_Low = 1403, _5_UnderCount_High = 1404, _5_UnderCount_Low = 1405, _5_PassCount_High = 1406, _5_PassCount_Low = 1407, _5_OverCount_High = 1408, _5_OverCount_Low = 1409, _5_NGCount_High = 1410, _5_NgCount_Low = 1411, _5_ExNGCount_High = 1412, _5_ExNgCount_Low = 1413, _5_TotalCount_High = 1414, _5_TotalCount_Low = 1415, _6_Update = 1450, _6_Grade = 1451, _6_Weight_High = 1452, _6_Weight_Low = 1453, _6_UnderCount_High = 1454, _6_UnderCount_Low = 1455, _6_PassCount_High = 1456, _6_PassCount_Low = 1457, _6_OverCount_High = 1458, _6_OverCount_Low = 1459, _6_NGCount_High = 1460, _6_NgCount_Low = 1461, _6_ExNGCount_High = 1462, _6_ExNgCount_Low = 1463, _6_TotalCount_High = 1464, _6_TotalCount_Low = 1465, _7_Update = 1500, _7_Grade = 1501, _7_Weight_High = 1502, _7_Weight_Low = 1503, _7_UnderCount_High = 1504, _7_UnderCount_Low = 1505, _7_PassCount_High = 1506, _7_PassCount_Low = 1507, _7_OverCount_High = 1508, _7_OverCount_Low = 1509, _7_NGCount_High = 1510, _7_NgCount_Low = 1511, _7_ExNGCount_High = 1512, _7_ExNgCount_Low = 1513, _7_TotalCount_High = 1514, _7_TotalCount_Low = 1515, _8_Update = 1550, _8_Grade = 1551, _8_Weight_High = 1552, _8_Weight_Low = 1553, _8_UnderCount_High = 1554, _8_UnderCount_Low = 1555, _8_PassCount_High = 1556, _8_PassCount_Low = 1557, _8_OverCount_High = 1558, _8_OverCount_Low = 1559, _8_NGCount_High = 1560, _8_NgCount_Low = 1561, _8_ExNGCount_High = 1562, _8_ExNgCount_Low = 1563, _8_TotalCount_High = 1564, _8_TotalCount_Low = 1565, _9_Update = 1600, _9_Grade = 1601, _9_Weight_High = 1602, _9_Weight_Low = 1603, _9_UnderCount_High = 1604, _9_UnderCount_Low = 1605, _9_PassCount_High = 1606, _9_PassCount_Low = 1607, _9_OverCount_High = 1608, _9_OverCount_Low = 1609, _9_NGCount_High = 1610, _9_NgCount_Low = 1611, _9_ExNGCount_High = 1612, _9_ExNgCount_Low = 1613, _9_TotalCount_High = 1614, _9_TotalCount_Low = 1615, _10_Update = 1650, _10_Grade = 1651, _10_Weight_High = 1652, _10_Weight_Low = 1653, _10_UnderCount_High = 1654, _10_UnderCount_Low = 1655, _10_PassCount_High = 1656, _10_PassCount_Low = 1657, _10_OverCount_High = 1658, _10_OverCount_Low = 1659, _10_NGCount_High = 1660, _10_NgCount_Low = 1661, _10_ExNGCount_High = 1662, _10_ExNgCount_Low = 1663, _10_TotalCount_High = 1664, _10_TotalCount_Low = 1665, _11_Update = 1700, _11_Grade = 1701, _11_Weight_High = 1702, _11_Weight_Low = 1703, _11_UnderCount_High = 1704, _11_UnderCount_Low = 1705, _11_PassCount_High = 1706, _11_PassCount_Low = 1707, _11_OverCount_High = 1708, _11_OverCount_Low = 1709, _11_NGCount_High = 1710, _11_NgCount_Low = 1711, _11_ExNGCount_High = 1712, _11_ExNgCount_Low = 1713, _11_TotalCount_High = 1714, _11_TotalCount_Low = 1715, _12_Update = 1750, _12_Grade = 1751, _12_Weight_High = 1752, _12_Weight_Low = 1753, _12_UnderCount_High = 1754, _12_UnderCount_Low = 1755, _12_PassCount_High = 1756, _12_PassCount_Low = 1757, _12_OverCount_High = 1758, _12_OverCount_Low = 1759, _12_NGCount_High = 1760, _12_NgCount_Low = 1761, _12_ExNGCount_High = 1762, _12_ExNgCount_Low = 1763, _12_TotalCount_High = 1764, _12_TotalCount_Low = 1765, }; #endregion } public class OptionPassword { // 기본 public static readonly string Default = "0810"; // 1. 데이터 // 데이터집계 public static readonly string DataStatistics = "1000"; // Part11 public static readonly string Part11 = "1001"; // 2. 통신 // 피드백보드 public static readonly string FeedbackBoard = "2000"; // Modbus public static readonly string Modbus = "2001"; } #region CommunicationCommand public class CommunicationCommand { // 운전데이터 Respone public static readonly string StartDataCMD = "Sr0"; // 중량조정모드 public static readonly string ModeCalibration = "Csc00"; // 노멀모드 public static readonly string ModeNormal = "Csn00"; // 판정설정모드 public static readonly string ModeJudgment = "Csg00"; // IO 테스트모드 public static readonly string ModeIOTest = "Cst00"; // 바이패스 public static readonly string ModeBypass = "Csb00"; // 장비 테스트모드 public static readonly string ModeEquipmentTest = "Csy00"; // 메뉴모드 public static readonly string ModeMenu = "Csm00"; // 중량조정 - 분동 public static readonly string CalibrationBalance = "Ccb00"; // 중량조정 - 시작 public static readonly string CalibrationStart = "Ccs00"; // 중량조정 - 취소 public static readonly string CalibrationCancel = "Ccx00"; // 중량보정 - 한자리올림 public static readonly string CalibrationUp = "Ccu00"; // 중량보정 - 한자리내림 public static readonly string CalibrationDown = "Ccd00"; // 파라미터 쓰기 public static readonly string Write = "Pw000"; // 파라미터 읽기 public static readonly string Read = "Pr000"; // Bypass To Motor public static readonly string BypassToMotor = "Pb000"; // IO테스트 - OUT public static readonly string IOTest = "Pt000"; // 모터 - 알람리셋 public static readonly string MotorAlarmReset = "Cma00"; // 임펠러 모터 - 정회전 public static readonly string ImpellerMotorForward = "Cmc00"; // 임펠러 모터 - 역회전 public static readonly string ImpellerMotorReverse = "Cmr00"; // 모터 - 다운 public static readonly string MotorDown = "Cmd00"; // 모터 - Step public static readonly string MotorStep = "Cms00"; // 모터 - Position 0 public static readonly string MotorPosition0 = "Cm000"; // 모터 - Position 1 public static readonly string MotorPosition1 = "Cm100"; // 모터 - Position 2 public static readonly string MotorPosition2 = "Cm200"; // 모터 - Origin public static readonly string MotorOrigin = "Cmo00"; // 모터 - JOG CW OFF public static readonly string MotorJogCwOff = "Cmg00"; // 모터 - JOG CW ON public static readonly string MotorJogCwOn = "Cmg01"; // 모터 - JOG CCW OFF public static readonly string MotorJogCcwOff = "Cmh00"; // 모터 - JOG CCW ON public static readonly string MotorJogCcwOn = "Cmh01"; // Cut 신호 public static readonly string CutInpupt = "Cbc00"; // 공장초기화 public static readonly string Initialization = "Cbi00"; // 운전 public static readonly string Start = "Cbs00"; // 정지 public static readonly string Stop = "Cbt00"; // 영점 public static readonly string Zero = "Cbz00"; // NG Signal public static readonly string NgSignal = "Cbn00"; // Pass Signal public static readonly string PassSignal = "Cbm00"; // Buzzer ON public static readonly string BuzzerOn = "Cae00"; // Buzzer Off public static readonly string BuzzerOff = "CAE00"; // 판정 - bypass 1회 public static readonly string BypassOnce = "Cjb00"; // 판정 - byNG 1회 public static readonly string ByNGOnce = "Cjc00"; // 판정 - bypass 연속 OFF public static readonly string BypassOFF = "Cjd00"; // 판정 - bypass 연속 ON public static readonly string BypassON = "Cjd01"; // 판정 - byNG 연속 OFF public static readonly string ByNGOFF = "Cje00"; // 판정 - byNG 연속 ON public static readonly string ByNGON = "Cje01"; // 알람 public static readonly string AlarmReset = "Car00"; } public class CommunicationID { public static readonly string MainBoard = "0"; public static readonly string SubBoard1 = "A"; public static readonly string SubBoard2 = "B"; public static readonly string SubBoard3 = "C"; public static readonly string SubBoard4 = "D"; public static readonly string SubBoard5 = "E"; public static readonly string SubBoard6 = "F"; public static readonly string SubBoard7 = "G"; public static readonly string SubBoard8 = "H"; public static readonly string SubBoard9 = "I"; public static readonly string SubBoard10 = "J"; public static readonly string SubBoard11 = "K"; public static readonly string SubBoard12 = "L"; public static readonly string SubBoard13 = "M"; public static readonly string SubBoard14 = "N"; public static readonly string SubBoard15 = "O"; public static readonly string SubBoard16 = "P"; public static readonly string SubBoardAll = "Z"; } public class CommunicationAddress { // Address None public static readonly string None = "0000"; // ACK public static readonly string ACK = "1"; // NAK public static readonly string NAK = "0"; // Empty 중량 설정 public static readonly string _1021_EmptyWeight = "1021"; // Weight Limit 사용유무 public static readonly string _1023_WeightLimitEnable = "1023"; // Weight Limit 무시 수량 public static readonly string _1025_WeightLimitIgnoreCount = "1025"; // 바이패스 public static readonly string _1201_Bypass = "1201"; // 보드 버전 모두 읽기 public static readonly string _1500_ProgramVersion = "1500"; // 품목설정 - 품번 public static readonly string _2001_ProductNumber = "2001"; // 품목설정 - 하한 설정값 public static readonly string _2002_UnderRange = "2002"; // 품목설정 - 기준 설정값 public static readonly string _2003_PassRange = "2003"; // 품목설정 - 상한 설정값 public static readonly string _2004_OverRange = "2004"; // 품목설정 - 용기 설정값 public static readonly string _2005_TareRange = "2005"; // 품목설정 - 하한 Limit 설정값 public static readonly string _2201_UnderLimitRange = "2201"; // 품목설정 - 상한 Limit 설정값 public static readonly string _2202_OverLimitRange = "2202"; // 자동영점 - 시간 public static readonly string _4001_ZeroTime = "4001"; // 자동영점 - 범위 public static readonly string _4002_ZeroRange = "4002"; // 자동영점 - 변량 public static readonly string _4003_ZeroVariate = "4003"; // 자동영점 - 모드 public static readonly string _4004_ZeroMode = "4004"; // 강제영점 지연시간 public static readonly string _4501_ForcedZeroDelayTime = "4501"; // 자동영점 - 파라미터 읽기 public static readonly string _4901_ParameterRead4901 = "4901"; // 판정설정 - 필터 public static readonly string _5001_Filter = "5001"; // 판정설정 - 판정지연 public static readonly string _5002_JudgmentDelayTime = "5002"; // 판정설정 - 이중지연 public static readonly string _5003_DoubleDelayTime = "5003"; // 판정설정 - 판정개수 public static readonly string _5004_JudgmentCount = "5004"; // 판정설정 - 이송속도 public static readonly string _5005_FeedSpeed = "5005"; // 판정설정 - 동보정 public static readonly string _5006_DynamicCorrection = "5006"; // 판정설정 - 턴지연시간 public static readonly string _5017_TurnDelayTime = "5017"; // 판정설정 - 원점옵셋 public static readonly string _5018_OriginOffset = "5018"; // 판정설정 - 원점속도 public static readonly string _5019_OriginSpeed = "5019"; // 판정설정 - 인버터토크 public static readonly string _5020_InverterTorque = "5020"; // 판정설정 - 진입게이트 지연시간 public static readonly string _5032_EntryGateDelayTime = "5032"; // 판정설정 - 진입게이트 동작시간 public static readonly string _5033_EntryGateRunTime = "5033"; // 판정설정 - 배출스토퍼 지연시간 public static readonly string _5034_DischargeStopperDelayTime = "5034"; // 판정설정 - 배출스토퍼 동작시간 public static readonly string _5034_DischargeStopperRunTime = "5035"; // 판정설정 - 선별기 모드 값 public static readonly string _5101_Sorter1Mode = "5101"; // 판정설정 - 선별기1 지연시간 public static readonly string _5102_Sorter1DelayTime = "5102"; // 판정설정 - 선별기1 동작시간 public static readonly string _5103_Sorter1RunTime = "5103"; // 판정설정 - 선별기2 지연시간 public static readonly string _5105_Sorter2DelayTime = "5105"; // 판정설정 - 선별기2 동작시간 public static readonly string _5106_Sorter2RunTime = "5106"; // 판정설정 - 외부출력1 지연시간 (외부 신호 출력 턴지연시간) public static readonly string _5202_EXT1DelayTime = "5202"; // 판정설정 - 외부출력1 동작시간 (외부 신호 출력 턴동작시간) public static readonly string _5203_EXT1RunTime = "5203"; // 옵션 - 부저 ON시간 public static readonly string _6001_BuzzerOnTime = "6001"; // 옵션 - 릴레이 동작시간 public static readonly string _6002_RelayOperatingTime = "6002"; // 옵션 - 이중진입사용여부 public static readonly string _6005_DoubleEnter = "6005"; // 옵션 - 채터링감지 설정 public static readonly string _6006_Chattering = "6006"; // 옵션 - 파라미터 읽기 public static readonly string _6901_ParameterRead6901 = "6901"; // 통신,IO설정 - INPUT ALL public static readonly string _7500_InputAll = "7500"; // 통신,IO설정 = OUTPUT1 public static readonly string _7701_Output1 = "7701"; // 통신,IO설정 = OUTPUT2 public static readonly string _7702_Output2 = "7702"; // 통신,IO설정 = OUTPUT3 public static readonly string _7703_Output3 = "7703"; // 통신,IO설정 = OUTPUT4 public static readonly string _7704_Output4 = "7704"; // 통신,IO설정 = OUTPUT5 public static readonly string _7705_Output5 = "7705"; // 통신,IO설정 = OUTPUT6 public static readonly string _7706_Output6 = "7706"; // 통신,IO설정 = OUTPUT7 public static readonly string _7707_Output7 = "7707"; // 통신,IO설정 = OUTPUT8 public static readonly string _7708_Output8 = "7708"; // 통신,IO설정 = OUTPUT9 public static readonly string _7709_Output9 = "7709"; // 통신,IO설정 = OUTPUT10 public static readonly string _7710_Output10 = "7710"; // 통신,IO설정 = OUTPUT11 public static readonly string _7711_Output11 = "7711"; // 통신,IO설정 = OUTPUT12 public static readonly string _7712_Output12 = "7712"; // 통신,IO설정 = OUTPUT13 public static readonly string _7713_Output13 = "7713"; // 통신,IO설정 = OUTPUT14 public static readonly string _7714_Output14 = "7714"; // 통신,IO설정 = OUTPUT15 public static readonly string _7715_Output15 = "7715"; // 통신,IO설정 = OUTPUT16 public static readonly string _7716_Output16 = "7716"; // 중량 설정값 쓰기 public static readonly string _9003_ParameterWeightRange = "9003"; // 시스템 설정 모두 쓰기 public static readonly string _9054_ParameterSystem = "9054"; // 레시피 설정 모두 쓰기 public static readonly string _9055_ParameterRecipe = "9055"; } #endregion #region ServoMotor(Panasonic) public class ServoMotorParameterAddress { // SaveAllParameters - 0x1020 public static readonly int SaveAllParameters = 4128; // EEPROM - 0x6173h public static readonly int EEPROM = 24947; // Speed 0 - 0x4600 public static readonly int Speed0 = 17920; // Speed 1 - 0x4601 public static readonly int Speed1 = 17921; // Acceleration1 - 0x4611 public static readonly int Acceleration1 = 17937; // Deceleration1 - 0x4621 public static readonly int Deceleration1 = 17953; // CMD 0 - 0x4802 public static readonly int CMD0 = 18434; // CMD 1 - 0x4806 public static readonly int CMD1 = 18438; // CMD 2 - 0x480A public static readonly int CMD2 = 18442; // CMD 5 - 0x4816 public static readonly int CMD5 = 18454; // CMD 6 - 0x481A public static readonly int CMD6 = 18458; // CMD 7 - 0x481E public static readonly int CMD7 = 18462; // CMD 8 - 0x4822 public static readonly int CMD8 = 18466; // CMD 10 - 0x482A public static readonly int CMD10 = 18474; // CMD 11 - 0x482E public static readonly int CMD11 = 18478; // CMD 16 - 0x4842 public static readonly int CMD16 = 18498; // CMD 17 - 0x4846 public static readonly int CMD17 = 18502; } #endregion #region CommunicationRespone public class CommunicationRespone { #region Field private bool m_IsFirst; private string m_TransactionID; private string m_TransferCount; #endregion #region Constructor public CommunicationRespone() { this.Initialization(); } #endregion #region Property public bool IsFirst { get { return this.m_IsFirst; } set { this.m_IsFirst = value; } } /// /// Data ID (0~9) /// public string TransactionID { get { return this.m_TransactionID; } set { this.m_TransactionID = value; } } /// /// 재전송 CNT (0~9) /// public string TransferCount { get { return this.m_TransferCount; } set { this.m_TransferCount = value; } } #endregion #region Method public void Initialization() { this.IsFirst = false; this.TransactionID = "a"; this.TransferCount = "a"; } #endregion } #endregion #region UserGroup public class UserPasswordType { #region Field private string m_Level1Password; private string m_Level2Password; private string m_Level3Password; private string m_Level4Password; private string m_DefinedPassword; private DataStore.UserGroup m_Group; #endregion #region Constructor public UserPasswordType() { this.Initialization(); } #endregion #region Property public string Level1Password { get { return this.m_Level1Password; } private set { this.m_Level1Password = value; } } public string Level2Password { get { return this.m_Level2Password; } private set { this.m_Level2Password = value; } } public string Level3Password { get { return this.m_Level3Password; } private set { this.m_Level3Password = value; } } public string Level4Password { get { return this.m_Level4Password; } private set { this.m_Level4Password = value; } } public string DefinedPassword { get { return this.m_DefinedPassword; } private set { this.m_DefinedPassword = value; } } public DataStore.UserGroup Group { get { return this.m_Group; } set { this.m_Group = value; } } #endregion #region Method public void Initialization() { this.Level1Password = "1000"; this.Level2Password = "2000"; this.Level3Password = "3000"; this.Level4Password = "0714"; this.SetDefinedPassword("0810"); this.Group = DataStore.UserGroup.LogOut; } public void SetDefinedPassword(string pass) { this.DefinedPassword = string.Format("{0:MMdd}{1}", DateTime.Now, pass); } #endregion } #endregion #region SystemConfiguration public class SystemConfigurationItem { #region Field // Extanal use private bool m_IsDataBackup; private bool m_IsEachNG; private bool m_IsLogin; private bool m_IsWeightViewForward; private bool m_IsOptDataStatistics; private bool m_IsOptPart11; private int m_AutoLogoutTime; private int m_UsbID; private int m_ProductNumber; private int m_DataStoragePeriod; private int m_EquipmentColumns; private int m_EquipmentID; private int m_Chattering; private int m_BuzzerRunTime; private int m_RelayRunTime; private int m_Sorter1Location; private int m_Sorter2Location; private int m_WeightLimitIgnoreCount; private int m_Serial3BaudRate; private int m_Serial3Mode; private int m_EthernetLocalPort; private int m_EthernetServerPort; private int m_EthernetMode; private int m_EthernetOperationMode; private int m_ModbusTcpAddress1; private int m_ModbusTcpAddress2; private int m_ModbusTcpStartAddress; private string m_Unit; private string m_EmptyWeight; private string m_SerialNumber; private string m_User_Level1_Name; private string m_User_Level2_Name; private string m_User_Level3_Name; private string m_EthernetServerAddress; private DataStore.LanguageID m_Language; // Internal use private bool m_IsBypassMode; private bool m_IsBypassDirectionPass; private bool m_IsBypassOnce; private bool m_IsCutView; private bool m_IsWeightLimitEnable; private int m_DecimalPlaces; private DataStore.FormStore m_CurrentForm; private UserItem m_CurrentUser; #endregion #region Constructor public SystemConfigurationItem() { this.Initialization(); } #endregion #region Property // Extanal use public bool IsDataBackup { get { return this.m_IsDataBackup; } set { this.m_IsDataBackup = value; } } public bool IsEachNG { get { return this.m_IsEachNG; } set { this.m_IsEachNG = value; } } public bool IsLogin { get { return this.m_IsLogin; } set { this.m_IsLogin = value; } } public bool IsWeightViewForward { get { return this.m_IsWeightViewForward; } set { this.m_IsWeightViewForward = value; } } public bool IsOptDataStatistics { get { return this.m_IsOptDataStatistics; } set { this.m_IsOptDataStatistics = value; } } public bool IsOptPart11 { get { return this.m_IsOptPart11; } set { this.m_IsOptPart11 = value; } } public bool IsModbusUse { get { if (this.EthernetMode == 4) return true; else return false; } } public int AutoLogoutTime { get { return this.m_AutoLogoutTime; } set { this.m_AutoLogoutTime = value; } } public int UsbID { get { return this.m_UsbID; } set { this.m_UsbID = value; } } public int ProductNumber { get { return this.m_ProductNumber; } set { this.m_ProductNumber = value; } } public int DataStoragePeriod { get { return this.m_DataStoragePeriod; } set { this.m_DataStoragePeriod = value; } } public int EquipmentColumns { get { return this.m_EquipmentColumns; } set { this.m_EquipmentColumns = value; } } public int EquipmentID { get { return this.m_EquipmentID; } set { this.m_EquipmentID = value; } } public int Chattering { get { return this.m_Chattering; } set { this.m_Chattering = value; } } public int BuzzerRunTime { get { return this.m_BuzzerRunTime; } set { this.m_BuzzerRunTime = value; } } public int RelayRunTime { get { return this.m_RelayRunTime; } set { this.m_RelayRunTime = value; } } public int Sorter1Location { get { return this.m_Sorter1Location; } set { this.m_Sorter1Location = value; } } public int Sorter2Location { get { return this.m_Sorter2Location; } set { this.m_Sorter2Location = value; } } public int WeightLimitIgnoreCount { get { return this.m_WeightLimitIgnoreCount; } set { this.m_WeightLimitIgnoreCount = value; } } public int Serial3BaudRate { get { return this.m_Serial3BaudRate; } set { this.m_Serial3BaudRate = value; } } public int Serial3Mode { get { return this.m_Serial3Mode; } set { this.m_Serial3Mode = value; } } public int EthernetLocalPort { get { return this.m_EthernetLocalPort; } set { this.m_EthernetLocalPort = value; } } public int EthernetServerPort { get { return this.m_EthernetServerPort; } set { this.m_EthernetServerPort = value; } } public int EthernetMode { get { return this.m_EthernetMode; } set { this.m_EthernetMode = value; } } public int EthernetOperationMode { get { return this.m_EthernetOperationMode; } set { this.m_EthernetOperationMode = value; } } public int ModbusTcpAddress1 { get { return this.m_ModbusTcpAddress1; } set { this.m_ModbusTcpAddress1 = value; } } public int ModbusTcpAddress2 { get { return this.m_ModbusTcpAddress2; } set { this.m_ModbusTcpAddress2 = value; } } public int ModbusTcpStartAddress { get { return this.m_ModbusTcpStartAddress; } set { this.m_ModbusTcpStartAddress = value; } } public string Unit { get { return this.m_Unit; } set { this.m_Unit = value; } } public string EmptyWeight { get { return this.m_EmptyWeight; } set { this.m_EmptyWeight = value; } } public string SerialNumber { get { return this.m_SerialNumber; } set { this.m_SerialNumber = value; } } public string User_Level1_Name { get { return this.m_User_Level1_Name; } set { this.m_User_Level1_Name = value; } } public string User_Level2_Name { get { return this.m_User_Level2_Name; } set { this.m_User_Level2_Name = value; } } public string User_Level3_Name { get { return this.m_User_Level3_Name; } set { this.m_User_Level3_Name = value; } } public string EthernetServerAddress { get { return this.m_EthernetServerAddress; } set { this.m_EthernetServerAddress = value; } } public DataStore.LanguageID Language { get { return this.m_Language; } set { this.m_Language = value; } } // Intanal use public bool IsBypassMode { get { return this.m_IsBypassMode; } set { this.m_IsBypassMode = value; } } public bool IsBypassDirectionPass { get { return this.m_IsBypassDirectionPass; } set { this.m_IsBypassDirectionPass = value; } } public bool IsBypassOnce { get { return this.m_IsBypassOnce; } set { this.m_IsBypassOnce = value; } } public bool IsCutView { get { return this.m_IsCutView; } set { this.m_IsCutView = value; } } public bool IsWeightLimitEnable { get { return this.m_IsWeightLimitEnable; } set { this.m_IsWeightLimitEnable = value; } } public bool IsEthernetEnable { get { if (this.EthernetOperationMode == 0) return false; else return true; } } public int DecimalPlaces { get { return this.m_DecimalPlaces; } set { this.m_DecimalPlaces = value; } } public DataStore.FormStore CurrentForm { get { return this.m_CurrentForm; } set { this.m_CurrentForm = value; } } public UserItem CurrentUser { get { return this.m_CurrentUser; } set { this.m_CurrentUser = value; } } #endregion #region Method public void Initialization() { // Extanal use this.IsDataBackup = false; this.IsEachNG = true; this.IsLogin = false; this.IsWeightViewForward = true; this.IsOptDataStatistics = false; this.IsOptPart11 = false; this.UsbID = 1; this.ProductNumber = 1; this.DataStoragePeriod = 36; this.EquipmentColumns = 6; this.EquipmentID = 1; this.Chattering = 100; this.BuzzerRunTime = 500; this.RelayRunTime = 1000; this.Sorter1Location = 3; this.Sorter2Location = 5; this.WeightLimitIgnoreCount = 3; this.Serial3BaudRate = 0; this.Serial3Mode = 0; this.EthernetLocalPort = 5001; this.EthernetServerPort = 5002; this.EthernetMode = 0; this.EthernetOperationMode = 0; this.ModbusTcpAddress1 = 1000; this.ModbusTcpAddress2 = 1100; this.ModbusTcpStartAddress = 1010; this.Unit = "g"; this.EmptyWeight = "0"; this.SerialNumber = "25F0000"; this.User_Level1_Name = "Level 1"; this.User_Level2_Name = "Level 2"; this.User_Level3_Name = "Level 3"; this.EthernetServerAddress = "0.0.0.0"; this.Language = DataStore.LanguageID.Korean; // Intanal use this.IsBypassMode = false; this.IsBypassDirectionPass = true; this.IsBypassOnce = true; this.IsCutView = false; this.IsWeightLimitEnable = true; this.DecimalPlaces = 3; this.CurrentForm = DataStore.FormStore.FormMainDisplay; this.CurrentUser = new UserItem(); this.CurrentUser.Group = DataStore.UserGroup.NotLogin; } #endregion } #endregion #region Struct SystemConfiguration1 [StructLayout(LayoutKind.Sequential)] public struct StructSystemConfigurationItem { public bool IsDataBackup; public bool IsEachNG; public bool IsLogin; public bool IsWeightViewForward; public bool IsOptDataStatistics; public bool IsOptPart11; public int AutoLogoutTime; public int UsbID; public int ProductNumber; public int DataStoragePeriod; public int EquipmentColumns; public int EquipmentID; public int Chattering; public int BuzzerRunTime; public int RelayRunTime; public int Sorter1Location; public int Sorter2Location; public int WeightLimitIgnoreCount; public int Serial3BaudRate; public int Serial3Mode; public int EthernetLocalPort; public int EthernetMode; public int EthernetOperationMode; public int EthernetServerPort; public int ModbusTcpAddress1; public int ModbusTcpAddress2; public int ModbusTcpStartAddress; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] public string Unit; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string EmptyWeight; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)] public string SerialNumber; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string User_Level1_Name; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string User_Level2_Name; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string User_Level3_Name; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string EthernetServerAddress; public DataStore.LanguageID Language; } #endregion #region ProductItem public class ProductItem { #region Field private int m_Number; private string m_Name; private string m_LotNo; private string m_UnderRange; private string m_PassRange; private string m_OverRange; private string m_TareRange; private string m_UnderRangeLimit; private string m_OverRangeLimit; private int m_ProgressBarMaximum; private int m_ProgressBarMinimum; #endregion #region Constructor public ProductItem() { this.Initialization(); } #endregion #region Property public int Number { get { return this.m_Number; } set { this.m_Number = value; } } public string Name { get { return this.m_Name; } set { this.m_Name = value; } } public string LotNo { get { return this.m_LotNo; } set { this.m_LotNo = value; } } public string UnderRange { get { return this.m_UnderRange; } set { this.m_UnderRange = value; this.ProgressBarLevelRescale(); } } public string PassRange { get { return this.m_PassRange; } set { this.m_PassRange = value; } } public string OverRange { get { return this.m_OverRange; } set { this.m_OverRange = value; this.ProgressBarLevelRescale(); } } public string TareRange { get { return this.m_TareRange; } set { this.m_TareRange = value; } } public string UnderRangeLimit { get { return this.m_UnderRangeLimit; } set { this.m_UnderRangeLimit = value; } } public string OverRangeLimit { get { return this.m_OverRangeLimit; } set { this.m_OverRangeLimit = value; } } public int ProgressBarMaximum { get { return this.m_ProgressBarMaximum; } private set { this.m_ProgressBarMaximum = value; } } public int ProgressBarMinimum { get { return this.m_ProgressBarMinimum; } private set { this.m_ProgressBarMinimum = value; } } #endregion #region Method public void Initialization() { this.Number = 1; this.Name = "ProductName 1"; this.LotNo = "Lot 1"; this.UnderRange = "10000"; this.PassRange = "20000"; this.OverRange = "30000"; this.TareRange = "0"; this.UnderRangeLimit = "0"; this.OverRangeLimit = "999999"; } private void ProgressBarLevelRescale() { int minBar, maxBar, gap; int OverRange, UnderRange; if (this.OverRange == null || this.UnderRange == null) return; OverRange = int.Parse(this.OverRange); UnderRange = int.Parse(this.UnderRange); gap = OverRange - UnderRange; minBar = UnderRange - gap; maxBar = OverRange + gap; this.ProgressBarMaximum = maxBar; this.ProgressBarMinimum = minBar; } #endregion } #endregion #region StructProductItem [StructLayout(LayoutKind.Sequential)] public struct StructProductItem { public int Number; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string Name; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string LotNo; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string OverRange; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string UnderRange; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string PassRange; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string TareRange; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string OverRangeLimit; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string UnderRangeLimit; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string DummyString3; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string DummyString4; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] public string DummyString5; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string DummyString6; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string DummyString7; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string DummyString8; } #endregion #region WeightData public class WeightData { #region Field private int m_UnderCount; private int m_PassCount; private int m_OverCount; private int m_ExNGCount; private double m_Weight; private DataStore.JudgmentStatus m_JudgmentStatus; private DataStore.WeightStatus m_Status; private int m_ProductionSpeed; private int PreviousTimeTickCount; private bool m_IsStart; private string m_WeightString; private bool m_IsBypassMode; private bool m_IsOPT1; private bool m_IsSamplingData; private ushort m_UpdateCount; #endregion #region Constructor public WeightData() { this.Initialization(); } #endregion #region Property public int UnderCount { get { return this.m_UnderCount; } set { this.m_UnderCount = value; } } public string UnderRatio { get { string ret = ""; if (this.UnderCount == 0 || this.TotalCount == 0) ret = "0.00"; else ret = string.Format("{0:##0.00}", (float.Parse(this.UnderCount.ToString()) * 100.0F) / this.TotalCount); return ret; } } public int PassCount { get { return this.m_PassCount; } set { this.m_PassCount = value; } } public string PassRatio { get { string ret = ""; if (this.PassCount == 0 || this.TotalCount == 0) ret = "0.00"; else ret = string.Format("{0:##0.00}", (float.Parse(this.PassCount.ToString()) * 100.0F) / this.TotalCount); return ret; } } public int OverCount { get { return this.m_OverCount; } set { this.m_OverCount = value; } } public string OverRatio { get { string ret = ""; if (this.OverCount == 0 || this.TotalCount == 0) ret = "0.00"; else ret = string.Format("{0:##0.00}", (float.Parse(this.OverCount.ToString()) * 100.0F) / this.TotalCount); return ret; } } public int ExNGCount { get { return this.m_ExNGCount; } set { this.m_ExNGCount = value; } } public int TotalNGCount { get { return this.UnderCount + this.OverCount + this.ExNGCount; } } public int TotalCount { get { return this.UnderCount + this.PassCount + this.OverCount + this.ExNGCount; } } /// /// 소수점 포함된 중량값 /// public double Weight { get { return this.m_Weight; } set { this.m_Weight = value; } } public DataStore.JudgmentStatus JudgmentStatus { get { return this.m_JudgmentStatus; } set { this.m_JudgmentStatus = value; //this.ProductionSpeedCalculation(); if (value == DataStore.JudgmentStatus.Under) { if (this.UnderCount < 10000000) this.UnderCount++; else this.UnderCount = 0; } else if (value == DataStore.JudgmentStatus.Pass) { if (this.PassCount < 10000000) this.PassCount++; else this.PassCount = 0; } else if (value == DataStore.JudgmentStatus.Over) { if (this.OverCount < 10000000) this.OverCount++; else this.OverCount = 0; } else if (value == DataStore.JudgmentStatus.Double || value == DataStore.JudgmentStatus.ExNG) { if (this.ExNGCount < 10000000) this.ExNGCount++; else this.ExNGCount = 0; } } } public DataStore.WeightStatus Status { get { return this.m_Status; } set { this.m_Status = value; } } public int ProductionSpeed { get { return this.m_ProductionSpeed; } set { this.m_ProductionSpeed = value; } } public bool IsStart { get { return this.m_IsStart; } set { this.m_IsStart = value; } } /// /// 소수점 없는 중량값 /// public string WeightString { get { return this.m_WeightString; } set { this.m_WeightString = value; } } public bool IsBypassMode { get { return m_IsBypassMode; } set { m_IsBypassMode = value; } } /// /// 스틱2모드에서 데이터 전송이 되었으면 true, 안되었으면 false /// public bool IsOPT1 { get { return this.m_IsOPT1; } set { this.m_IsOPT1 = value; } } /// /// 샘플링 기능 설정 후 판정데이터가 샘플링 데이터이면 true /// public bool IsSamplingData { get { return this.m_IsSamplingData; } set { this.m_IsSamplingData = value; } } public ushort UpdateCount { get { return this.m_UpdateCount; } set { this.m_UpdateCount = value; } } #endregion #region Mehtod public void ClearCount() { this.UnderCount = 0; this.PassCount = 0; this.OverCount = 0; this.ExNGCount = 0; this.UpdateCount = 0; } public void Initialization() { this.UnderCount = 0; this.PassCount = 0; this.OverCount = 0; this.ExNGCount = 0; this.Weight = 0.0; this.JudgmentStatus = DataStore.JudgmentStatus.None; this.ProductionSpeed = 0; this.WeightString = "0"; this.IsBypassMode = false; this.IsOPT1 = false; this.IsSamplingData = false; } private void ProductionSpeedCalculation() { int currentTimeTickCount = 0, gap = 0; double millisecond = 0.0, speed = 0.0; if (this.IsStart == false) { this.PreviousTimeTickCount = Environment.TickCount & Int32.MaxValue; this.IsStart = true; } else { currentTimeTickCount = Environment.TickCount & Int32.MaxValue; gap = Math.Abs(currentTimeTickCount - this.PreviousTimeTickCount); millisecond = gap / 1000.0; speed = 60 / millisecond; this.ProductionSpeed = int.Parse(string.Format("{0:f0}", speed)); this.PreviousTimeTickCount = Environment.TickCount; } } #endregion } #endregion #region Struct Counter1 [StructLayout(LayoutKind.Sequential)] public struct StructCounter1 { public int OverCount1; public int PassCount1; public int UnderCount1; public int ExNGCount1; public int OverCount2; public int PassCount2; public int UnderCount2; public int ExNGCount2; public int OverCount3; public int PassCount3; public int UnderCount3; public int ExNGCount3; public int OverCount4; public int PassCount4; public int UnderCount4; public int ExNGCount4; public int OverCount5; public int PassCount5; public int UnderCount5; public int ExNGCount5; public int OverCount6; public int PassCount6; public int UnderCount6; public int ExNGCount6; public int OverCount7; public int PassCount7; public int UnderCount7; public int ExNGCount7; public int OverCount8; public int PassCount8; public int UnderCount8; public int ExNGCount8; public int OverCount9; public int PassCount9; public int UnderCount9; public int ExNGCount9; public int OverCount10; public int PassCount10; public int UnderCount10; public int ExNGCount10; public int OverCount11; public int PassCount11; public int UnderCount11; public int ExNGCount11; public int OverCount12; public int PassCount12; public int UnderCount12; public int ExNGCount12; public int DummyInt1; public int DummyInt2; public int DummyInt3; public int DummyInt4; public int DummyInt5; public int DummyInt6; public int DummyInt7; public int DummyInt8; public int DummyInt9; public int DummyInt10; } #endregion #region Struct Counter2 [StructLayout(LayoutKind.Sequential)] public struct StructCounter2 { public int OverCount13; public int PassCount13; public int UnderCount13; public int ExNGCount13; public int OverCount14; public int PassCount14; public int UnderCount14; public int ExNGCount14; public int OverCount15; public int PassCount15; public int UnderCount15; public int ExNGCount15; public int OverCount16; public int PassCount16; public int UnderCount16; public int ExNGCount16; public int DummyInt1; public int DummyInt2; public int DummyInt3; public int DummyInt4; public int DummyInt5; public int DummyInt6; public int DummyInt7; public int DummyInt8; public int DummyInt9; public int DummyInt10; public int DummyInt11; public int DummyInt12; public int DummyInt13; public int DummyInt14; public int DummyInt15; public int DummyInt16; public int DummyInt17; public int DummyInt18; public int DummyInt19; public int DummyInt20; public int DummyInt21; public int DummyInt22; public int DummyInt23; public int DummyInt24; public int DummyInt25; public int DummyInt26; public int DummyInt27; public int DummyInt28; public int DummyInt29; public int DummyInt30; public int DummyInt31; public int DummyInt32; public int DummyInt33; public int DummyInt34; public int DummyInt35; public int DummyInt36; public int DummyInt37; public int DummyInt38; public int DummyInt39; public int DummyInt40; public int DummyInt41; public int DummyInt42; } #endregion #region JudgmentSetItem public class JudgmentSetItem { #region Field private int m_JudgmentDelayTime; private int m_JudgmentCount; private int m_FeedSpeed; private int m_TurnDelayTime; private int m_Sorter1DelayTime; private int m_Sorter1RunTime; private int m_Sorter2DelayTime; private int m_Sorter2RunTime; private int m_EntryGateDelayTime; private int m_EntryGateRunTime; private int m_DischargeStopperDelayTime; private int m_DischargeStopperRunTime; #endregion #region Constructor public JudgmentSetItem() { this.Initialization(); } #endregion #region Property public int JudgmentDelayTime { get { return this.m_JudgmentDelayTime; } set { this.m_JudgmentDelayTime = value; } } public int JudgmentCount { get { return this.m_JudgmentCount; } set { this.m_JudgmentCount = value; } } public int FeedSpeed { get { return this.m_FeedSpeed; } set { this.m_FeedSpeed = value; } } public int TurnDelayTime { get { return this.m_TurnDelayTime; } set { this.m_TurnDelayTime = value; } } public int Sorter1DelayTime { get { return this.m_Sorter1DelayTime; } set { this.m_Sorter1DelayTime = value; } } public int Sorter1RunTime { get { return this.m_Sorter1RunTime; } set { this.m_Sorter1RunTime = value; } } public int Sorter2DelayTime { get { return this.m_Sorter2DelayTime; } set { this.m_Sorter2DelayTime = value; } } public int Sorter2RunTime { get { return this.m_Sorter2RunTime; } set { this.m_Sorter2RunTime = value; } } public int EntryGateDelayTime { get { return this.m_EntryGateDelayTime; } set { this.m_EntryGateDelayTime = value; } } public int EntryGateRunTime { get { return this.m_EntryGateRunTime; } set { this.m_EntryGateRunTime = value; } } public int DischargeStopperDelayTime { get { return this.m_DischargeStopperDelayTime; } set { this.m_DischargeStopperDelayTime = value; } } public int DischargeStopperRunTime { get { return this.m_DischargeStopperRunTime; } set { this.m_DischargeStopperRunTime = value; } } #endregion #region Method public void Initialization() { this.JudgmentDelayTime = 1000; this.JudgmentCount = 10; this.FeedSpeed = 2300; this.TurnDelayTime = 0; this.Sorter1DelayTime = 500; this.Sorter1RunTime = 1000; this.Sorter2DelayTime = 500; this.Sorter2RunTime = 1000; this.EntryGateDelayTime = 500; this.EntryGateRunTime = 1000; this.DischargeStopperDelayTime = 500; this.DischargeStopperRunTime = 1000; } #endregion } #endregion #region Struct JudgmentSetItem [StructLayout(LayoutKind.Sequential)] public struct StructJudgmentSetItem { public int JudgmentDelayTime; public int JudgmentCount; public int FeedSpeed; public int TurnDelayTime; public int Sorter1RunTime; public int Sorter1DelayTime; public int Sorter2RunTime; public int Sorter2DelayTime; public int EntryGateDelayTime; public int EntryGateRunTime; public int DischargeStopperDelayTime; public int DischargeStopperRunTime; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string DummyString1; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string DummyString2; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string DummyString3; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string DummyString4; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string DummyString5; } #endregion #region OptionParameterItem public class OptionParameterItem { #region Field private string m_BuzzerOnTime; private string m_RelayOnTime; private string m_Chattering; private string m_PassAlarm; private string m_PassAlarmCount; #endregion #region Constructor public OptionParameterItem() { this.BuzzerOnTime = "1000"; this.RelayOnTime = "500"; this.Chattering = "100"; this.PassAlarm = "0"; this.PassAlarmCount = "0"; } #endregion #region Property public string BuzzerOnTime { get { return this.m_BuzzerOnTime; } set { this.m_BuzzerOnTime = value; } } public string RelayOnTime { get { return this.m_RelayOnTime; } set { this.m_RelayOnTime = value; } } public string Chattering { get { return this.m_Chattering; } set { this.m_Chattering = value; } } public string PassAlarm { get { return this.m_PassAlarm; } set { this.m_PassAlarm = value; } } public string PassAlarmCount { get { return this.m_PassAlarmCount; } set { this.m_PassAlarmCount = value; } } #endregion } #endregion #region CommunicationStatus public class CommunicationStatusItem { #region Field private bool m_IsReceivedData; private bool m_IsErrorReceivedData; private bool m_IsErrorSettingStatus; private bool m_IsErrorID; #endregion #region Constructor public CommunicationStatusItem() { this.IsReceivedData = false; this.IsErrorReceivedData = false; this.IsErrorSettingStatus = false; this.IsErrorID = false; } #endregion #region Property public bool IsReceivedData { get { return this.m_IsReceivedData; } set { this.m_IsReceivedData = value; } } public bool IsErrorReceivedData { get { return this.m_IsErrorReceivedData; } set { this.m_IsErrorReceivedData = value; } } public bool IsErrorSettingStatus { get { return this.m_IsErrorSettingStatus; } set { this.m_IsErrorSettingStatus = value; } } public bool IsErrorID { get { return this.m_IsErrorID; } set { this.m_IsErrorID = value; } } #endregion } #endregion #region AlarmList public class AlarmList { #region Field private bool m_IsEntrySensorError; private bool m_IsLoadcellError; private bool m_IsPressureError; private bool m_IsEmergencyStop; private bool m_IsServoAlarm; private bool m_IsServoAlarmTorque; private bool m_IsServoOff; private bool m_IsInverterAlarm; private bool m_IsPinchPoint; private bool m_IsBuzzerStatus; #endregion #region Constructor public AlarmList() { this.Initialize(); } #endregion #region Property public bool IsEntrySensorError { get { return this.m_IsEntrySensorError; } set { this.m_IsEntrySensorError = value; } } public bool IsLoadcellError { get { return this.m_IsLoadcellError; } set { this.m_IsLoadcellError = value; } } public bool IsPressureError { get { return this.m_IsPressureError; } set { this.m_IsPressureError = value; } } public bool IsEmergencyStop { get { return this.m_IsEmergencyStop; } set { this.m_IsEmergencyStop = value; } } public bool IsServoAlarm { get { return this.m_IsServoAlarm; } set { this.m_IsServoAlarm = value; } } public bool IsServoAlarmTorque { get { return this.m_IsServoAlarmTorque; } set { this.m_IsServoAlarmTorque = value; } } public bool IsServoOff { get { return this.m_IsServoOff; } set { this.m_IsServoOff = value; } } public bool IsInverterAlarm { get { return this.m_IsInverterAlarm; } set { this.m_IsInverterAlarm = value; } } public bool IsPinchPoint { get { return this.m_IsPinchPoint; } set { this.m_IsPinchPoint = value; } } public bool IsBuzzerStatus { get { return this.m_IsBuzzerStatus; } set { this.m_IsBuzzerStatus = value; } } #endregion #region Method private void Initialize() { this.IsEntrySensorError = false; this.IsLoadcellError = false; this.IsPressureError = false; this.IsEmergencyStop = false; this.IsServoAlarm = false; this.IsServoAlarmTorque = false; this.IsServoOff = false; this.IsInverterAlarm = false; this.IsPinchPoint = false; this.IsBuzzerStatus = false; } public void SetAlarm(string alarm) { string sValue1 = "", sValue2 = "", sValue3 = "", sValue4 = "", sValue5 = "", sValue6 = "", sValue7 = "", sValue8 = ""; if (alarm.Length != 8) return; sValue1 = Convert.ToString(Convert.ToInt16(alarm.Substring(0, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue2 = Convert.ToString(Convert.ToInt16(alarm.Substring(1, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue3 = Convert.ToString(Convert.ToInt16(alarm.Substring(2, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue4 = Convert.ToString(Convert.ToInt16(alarm.Substring(3, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue5 = Convert.ToString(Convert.ToInt16(alarm.Substring(4, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue6 = Convert.ToString(Convert.ToInt16(alarm.Substring(5, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue7 = Convert.ToString(Convert.ToInt16(alarm.Substring(6, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); sValue8 = Convert.ToString(Convert.ToInt16(alarm.Substring(7, 1), 16), 2).PadLeft((4 <= 1) ? 1 : 4, '0'); #region 알람 16-제품 끼임 에러 if (sValue4[0] == '0') { this.IsPinchPoint = false; this.IsBuzzerStatus = false; } else this.IsPinchPoint = true; #endregion #region 알람 15- if (sValue4[1] == '0') { } else { } #endregion #region 알람 14- if (sValue4[2] == '0') { } else { } #endregion #region 알람 13- if (sValue4[3] == '0') { } else { } #endregion #region 알람 12-서보알람토크 if (sValue3[0] == '0') this.IsServoAlarmTorque = false; else this.IsServoAlarmTorque = true; #endregion #region 알람 11- if (sValue3[1] == '0') { } else { } #endregion #region 알람 10-서보알람 if (sValue3[2] == '0') this.IsServoAlarm = false; else this.IsServoAlarm = true; #endregion #region 알람 9-인버터알람 if (sValue3[3] == '0') this.IsInverterAlarm = false; else this.IsInverterAlarm = true; #endregion #region 알람 8-비상정지 if (sValue2[0] == '0') this.IsEmergencyStop = false; else this.IsEmergencyStop = true; #endregion #region 알람 7- if (sValue2[1] == '0') { } else { } #endregion #region 알람 6- if (sValue2[2] == '0') { } else { } #endregion #region 알람 5- if (sValue2[3] == '0') { } else { } #endregion #region 알람 4- if (sValue1[0] == '0') { } else { } #endregion #region 알람 3-공압에러 if (sValue1[1] == '0') this.IsPressureError = false; else this.IsPressureError = true; #endregion #region 알람 2-셀 에러 if (sValue1[2] == '0') this.IsLoadcellError = false; else this.IsLoadcellError = true; #endregion #region 알람 1-입력센서 에러 if (sValue1[3] == '0') this.IsEntrySensorError = false; else this.IsEntrySensorError = true; #endregion } #endregion } #endregion #region StorageItem public class StorageItem { #region Field private double m_Weight; private bool m_IsSamplingData; private bool m_IsEmptyData; private DataStore.JudgmentStatus m_JudgmentStatus; #endregion #region Constructor public StorageItem(double weight, bool sampling, bool empty, DataStore.JudgmentStatus stats) { this.Weight = weight; this.IsSamplingData = sampling; this.IsEmptyData = empty; this.JudgmentStatus = stats; } #endregion #region Property public double Weight { get { return this.m_Weight; } set { this.m_Weight = value; } } public bool IsSamplingData { get { return this.m_IsSamplingData; } set { this.m_IsSamplingData = value; } } public bool IsEmptyData { get { return this.m_IsEmptyData; } set { this.m_IsEmptyData = value; } } public DataStore.JudgmentStatus JudgmentStatus { get { return this.m_JudgmentStatus; } set { this.m_JudgmentStatus = value; } } #endregion #region Method #endregion } #endregion #region WeightStorageItem public class WeightStorageItem { #region Field private int m_TotalCount; private double m_TotalSum; private Queue Q_Weights; private Collection m_C_StorageItem; #endregion #region Constructor public WeightStorageItem() { this.TotalCount = 0; this.TotalSum = 0.0; this.Q_Weights = new Queue(); this.C_StorageItem = new Collection(); for (int i = 0; i < 10; i++) this.C_StorageItem.Add(new StorageItem(0.0, false, false, DataStore.JudgmentStatus.None)); } #endregion #region Property public int TotalCount { get { return this.m_TotalCount; } private set { this.m_TotalCount = value; } } public double TotalSum { get { return this.m_TotalSum; } private set { this.m_TotalSum = value; } } public Collection C_StorageItem { get { return this.m_C_StorageItem; } private set { this.m_C_StorageItem = value; } } #endregion #region Method public double WeightTenSum() { double sumValue = 0.0; foreach (StorageItem item in this.Q_Weights) { if (item.IsEmptyData == false) sumValue = sumValue + item.Weight; } return sumValue; } public double WeightTenAverage() { int cnt = 0; double sumValue = 0.0; if (this.Q_Weights.Count < 10) return 0.0; foreach (StorageItem item in this.Q_Weights) { if (item.IsEmptyData == false) { sumValue = sumValue + item.Weight; cnt++; } } if (cnt == 0) return 0.0; else return sumValue / cnt; } public void SetQueueData() { int cnt = 0; StorageItem[] items = new StorageItem[this.Q_Weights.Count]; cnt = this.Q_Weights.Count; this.Q_Weights.CopyTo(items, 0); for (int i = 0; i < items.Length; i++) { this.C_StorageItem[i].Weight = items[(items.Length - i) - 1].Weight; this.C_StorageItem[i].IsSamplingData = items[(items.Length - i) - 1].IsSamplingData; this.C_StorageItem[i].IsEmptyData = items[(items.Length - i) - 1].IsEmptyData; this.C_StorageItem[i].JudgmentStatus = items[(items.Length - i) - 1].JudgmentStatus; } for (int i = items.Length; i < 10 - items.Length; i++) { this.C_StorageItem[i].Weight = 0.0; this.C_StorageItem[i].IsSamplingData = false; this.C_StorageItem[i].IsEmptyData = false; this.C_StorageItem[i].JudgmentStatus = DataStore.JudgmentStatus.None; } } public double WeightTotalAverage() { if (this.TotalCount == 0) return 0.0; return this.TotalSum / this.TotalCount; } public void SetValue(double value, bool sampling, bool empty, DataStore.JudgmentStatus status) { this.Q_Weights.Enqueue(new StorageItem(value, sampling, empty, status)); if (this.Q_Weights.Count > 10) this.Q_Weights.Dequeue(); if (empty == false) { this.TotalCount++; this.TotalSum = this.TotalSum + value; } } public void SetValue(WeightData data) { bool empty = false; if (data.JudgmentStatus == DataStore.JudgmentStatus.Empty) empty = true; this.Q_Weights.Enqueue(new StorageItem(data.Weight, data.IsSamplingData, empty, data.JudgmentStatus)); if (this.Q_Weights.Count > 10) this.Q_Weights.Dequeue(); if (empty == false) { this.TotalCount++; this.TotalSum = this.TotalSum + data.Weight; } } public void AllClear() { this.TotalSum = 0.0; this.TotalCount = 0; this.Q_Weights.Clear(); for (int i = 0; i < 10; i++) { this.C_StorageItem[i].Weight = 0.0; this.C_StorageItem[i].IsSamplingData = false; this.C_StorageItem[i].IsEmptyData = false; this.C_StorageItem[i].JudgmentStatus = DataStore.JudgmentStatus.None; } } #endregion } #endregion #region DataCollector public class DataCollector { #region Field private Collection m_PassWeightData; private Collection m_OverWeightData; private Collection m_UnderWeightData; private Collection m_ExNgWeightData; private double m_PassAverage; private double m_PassVariance; #endregion #region Constructor public DataCollector() { this.Initialize(); } #endregion #region Porperty public Collection PassWeightData { get { return this.m_PassWeightData; } private set { this.m_PassWeightData = value; } } public Collection OverWeightData { get { return this.m_OverWeightData; } private set { this.m_OverWeightData = value; } } public Collection UnderWeightData { get { return this.m_UnderWeightData; } private set { this.m_UnderWeightData = value; } } public Collection ExNgWeightData { get { return this.m_ExNgWeightData; } private set { this.m_ExNgWeightData = value; } } public int TotalCount { get { return this.PassTotalCount + this.OverTotalCount + this.UnderTotalCount + this.ExNgTotalCount; } } public int TotalNGCount { get { return this.OverTotalCount + this.UnderTotalCount + this.ExNgTotalCount; } } public int PassTotalCount { get { return this.PassWeightData.Count; } } public double PassAverage { get { return this.m_PassAverage; } private set { this.m_PassAverage = value; } } public double PassPercentage { get { double ret = 0.0; string sValue = ""; if (this.PassTotalCount == 0 || this.TotalCount == 0) ret = 0.0; else { //sValue = string.Format("{0:0.000}", ((double)this.PassTotalCount / (double)this.TotalCount) * 100.000); //ret = double.Parse(sValue); ret = 100 - (this.OverPercentage + this.UnderPercentage + this.ExNgPercentage); } return ret; } } public double PassVariance { get { return this.m_PassVariance; } private set { this.m_PassVariance = value; } } public double PassStandardDeviation { get { return Math.Sqrt(this.PassVariance); } } public double PassSumWeight { get { double ret = 0.0; for (int i = 0; i < this.PassWeightData.Count; i++) ret += this.PassWeightData[i]; return ret; } } public double PassMinWeight { get { bool isFirstData = false; double ret = 0.0; if (this.PassTotalCount == 0) ret = 0.0; else { for (int i = 0; i < this.PassTotalCount; i++) { if (isFirstData == false) { isFirstData = true; ret = this.PassWeightData[i]; } else { if (ret > this.PassWeightData[i]) ret = this.PassWeightData[i]; } } } return ret; } } public double PassMaxWeight { get { double ret = 0.0; if (this.PassTotalCount == 0) ret = 0.0; else { for (int i = 0; i < this.PassTotalCount; i++) { if (ret < this.PassWeightData[i]) ret = this.PassWeightData[i]; } } return ret; } } public int OverTotalCount { get { return this.OverWeightData.Count; } } public double OverSumWeight { get { double ret = 0.0; for (int i = 0; i < this.OverWeightData.Count; i++) ret += this.OverWeightData[i]; return ret; } } public double OverAverage { get { double ret = 0.0; if (this.OverWeightData.Count == 0) ret = 0.0; else ret = this.OverSumWeight / this.OverWeightData.Count; return ret; } } public double OverPercentage { get { double ret = 0.0; string sValue = ""; if (this.OverTotalCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.OverTotalCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } public int UnderTotalCount { get { return this.UnderWeightData.Count; } } public double UnderSumWeight { get { double ret = 0.0; for (int i = 0; i < this.UnderWeightData.Count; i++) ret += this.UnderWeightData[i]; return ret; } } public double UnderAverage { get { double ret = 0.0; if (this.UnderWeightData.Count == 0) ret = 0.0; else ret = this.UnderSumWeight / this.UnderWeightData.Count; return ret; } } public double UnderPercentage { get { double ret = 0.0; string sValue = ""; if (this.UnderTotalCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.UnderTotalCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } public int ExNgTotalCount { get { return this.ExNgWeightData.Count; } } public double ExNgPercentage { get { double ret = 0.0; string sValue = ""; if (this.ExNgTotalCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.ExNgTotalCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } #endregion #region Method private void Initialize() { this.PassWeightData = new Collection(); this.OverWeightData = new Collection(); this.UnderWeightData = new Collection(); this.ExNgWeightData = new Collection(); this.ClearDatas(); } public void ClearDatas() { this.PassWeightData.Clear(); this.OverWeightData.Clear(); this.UnderWeightData.Clear(); this.ExNgWeightData.Clear(); this.PassAverage = 0; this.PassVariance = 0; } public void AddPassWeight(double data) { this.PassWeightData.Add(data); } public void AddOverWeight(double data) { this.OverWeightData.Add(data); } public void AddUnderWeight(double data) { if (data < 0) this.UnderWeightData.Add(0); else this.UnderWeightData.Add(data); } public void AddExNgWeight(double data) { if (data < 0) this.ExNgWeightData.Add(0); else this.ExNgWeightData.Add(data); } public void StatisticalAnalysis() { double value1 = 0.0, value2 = 0.0; if (this.PassWeightData.Count == 0) return; #region Pass Average for (int i = 0; i < this.PassWeightData.Count; i++) { value1 += this.PassWeightData[i]; } value1 = value1 / this.PassWeightData.Count; this.PassAverage = value1; #endregion #region PassVariance for (int i = 0; i < this.PassTotalCount; i++) { value1 = this.PassAverage - this.PassWeightData[i]; value2 += value1 * value1; } this.PassVariance = value2 / this.PassTotalCount; #endregion } #endregion } #endregion #region DataCommonList public class DataCommonList { #region Field private string m_ProductName; private string m_Lot; private string m_StartTime; private string m_EndTime; private string m_OverRange; private string m_PassRange; private string m_UnderRange; private string m_TareRange; private int m_TotalPassCount; private double m_TotalPassSumWeight; private double m_TotalPassAverageWeight; private double m_TotalPassVariance; private int m_TotalOverCount; private double m_TotalOverSumWeight; private int m_TotalUnderCount; private double m_TotalUnderSumWeight; private int m_TotalExNgCount; #endregion #region Constructor public DataCommonList() { this.Initialize(); } #endregion #region Property public string ProductName { get { return this.m_ProductName; } set { this.m_ProductName = value; } } public string Lot { get { return this.m_Lot; } set { this.m_Lot = value; } } public string StartTime { get { return this.m_StartTime; } set { this.m_StartTime = value; } } public string EndTime { get { return this.m_EndTime; } set { this.m_EndTime = value; } } public string OverRange { get { return this.m_OverRange; } set { this.m_OverRange = value; } } public string PassRange { get { return this.m_PassRange; } set { this.m_PassRange = value; } } public string UnderRange { get { return this.m_UnderRange; } set { this.m_UnderRange = value; } } public string TareRange { get { return this.m_TareRange; } set { this.m_TareRange = value; } } public int TotalPassCount { get { return this.m_TotalPassCount; } set { this.m_TotalPassCount = value; } } public double TotalPassSumWeight { get { return this.m_TotalPassSumWeight; } set { this.m_TotalPassSumWeight = value; } } public double TotalPassAverageWeight { get { return this.m_TotalPassAverageWeight; } set { this.m_TotalPassAverageWeight = value; } } public double TotalPassVariance { get { return this.m_TotalPassVariance; } set { this.m_TotalPassVariance = value; } } public double TotalPassStandardDeviation { get { return Math.Sqrt(this.TotalPassVariance); } } public double TotalPassPercentage { get { double ret = 0.0; string sValue = ""; if (this.TotalPassCount == 0 || this.TotalCount == 0) ret = 0.0; else { //sValue = string.Format("{0:0.00}", ((double)this.TotalPassCount / (double)this.TotalCount) * 100.0); //ret = double.Parse(sValue); ret = 100 - (this.TotalUnderPercentage + this.TotalOverPercentage + this.TotalExNgPercentage); } return ret; } } public int TotalOverCount { get { return this.m_TotalOverCount; } set { this.m_TotalOverCount = value; } } public double TotalOverSumWeight { get { return this.m_TotalOverSumWeight; } set { this.m_TotalOverSumWeight = value; } } public double TotalOverPercentage { get { double ret = 0.0; string sValue = ""; if (this.TotalOverCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.TotalOverCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } public int TotalUnderCount { get { return this.m_TotalUnderCount; } set { this.m_TotalUnderCount = value; } } public double TotalUnderSumWeight { get { return this.m_TotalUnderSumWeight; } set { this.m_TotalUnderSumWeight = value; } } public double TotalUnderPercentage { get { double ret = 0.0; string sValue = ""; if (this.TotalUnderCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.TotalUnderCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } public int TotalExNgCount { get { return this.m_TotalExNgCount; } set { this.m_TotalExNgCount = value; } } public double TotalExNgPercentage { get { double ret = 0.0; string sValue = ""; if (this.TotalExNgCount == 0 || this.TotalCount == 0) ret = 0.0; else { sValue = string.Format("{0:0.00}", ((double)this.TotalExNgCount / (double)this.TotalCount) * 100.00); ret = double.Parse(sValue); } return ret; } } public int TotalCount { get { return this.TotalPassCount + this.TotalOverCount + this.TotalUnderCount + this.TotalExNgCount; } } public int TotalNGCount { get { return this.TotalOverCount + this.TotalUnderCount + this.TotalExNgCount; } } #endregion #region Method private void Initialize() { this.ProductName = "-"; this.Lot = "-"; this.StartTime = "-"; this.EndTime = "-"; this.OverRange = "-"; this.PassRange = "-"; this.UnderRange = "-"; this.TareRange = "-"; this.TotalPassCount = 0; this.TotalOverCount = 0; this.TotalUnderCount = 0; this.TotalExNgCount = 0; this.TotalPassSumWeight = 0.0; this.TotalOverSumWeight = 0.0; this.TotalUnderSumWeight = 0.0; } public void Clear() { this.Initialize(); } #endregion } #endregion #region HistoryData public class HistoryData { #region Field private string m_Type; private DateTime m_Time; private string m_LoginID; private Object m_Event; private string m_Detail; private string m_BeforeData; private string m_AfterData; #endregion #region Constructor public HistoryData() { } #endregion #region Property public string Type { get { return this.m_Type; } set { this.m_Type = value; } } public DateTime Time { get { return this.m_Time; } set { this.m_Time = value; } } public string LoginID { get { return this.m_LoginID; } set { this.m_LoginID = value; } } public Object Event { get { return this.m_Event; } set { this.m_Event = value; } } public string Detail { get { return this.m_Detail; } set { this.m_Detail = value; } } public string BeforeData { get { return this.m_BeforeData; } set { this.m_BeforeData = value; } } public string AfterData { get { return this.m_AfterData; } set { this.m_AfterData = value; } } #endregion #region Method private void Initialize() { this.Type = ""; this.Time = new DateTime(); this.LoginID = "-"; this.Event = new object(); this.Detail = ""; this.AfterData = ""; this.BeforeData = ""; } #endregion } #endregion #region DataViewerFilter public class DataViewerFilter { #region Field private bool m_TpyeAlarm; private bool m_TypeOperation; private bool m_TypeParameter; #endregion #region Constructor public DataViewerFilter() { this.Initialize(); } #endregion #region Property public bool TypeAlarm { get { return this.m_TpyeAlarm; } set { this.m_TpyeAlarm = value; } } public bool TypeOperation { get { return this.m_TypeOperation; } set { this.m_TypeOperation = value; } } public bool TypeParameter { get { return this.m_TypeParameter; } set { this.m_TypeParameter = value; } } #endregion #region Method private void Initialize() { this.TypeAlarm = true; this.TypeOperation = true; this.TypeParameter = true; } #endregion } #endregion #region Modbus public class _30000_ModbusData { #region Field private double m_UnderValue; private double m_PassValue; private double m_OverValue; private double m_TareValue; private double m_HighLimit; private double m_DeadZoneHighLimit; private double m_DeadZoneLowLimit; private double m_LowLimit; private UInt32 m_SampleCount; private UInt32 m_IgnoreCount; private Collection<_30000_LaneModbusData> m_LaneModbusData; #endregion #region Constructor public _30000_ModbusData() { this.Initialization(); } #endregion #region Property public double UnderValue { get { return this.m_UnderValue; } set { this.m_UnderValue = value; } } public double PassValue { get { return this.m_PassValue; } set { this.m_PassValue = value; } } public double OverValue { get { return this.m_OverValue; } set { this.m_OverValue = value; } } public double TareValue { get { return this.m_TareValue; } set { this.m_TareValue = value; } } public double HighLimit { get { return this.m_HighLimit; } set { this.m_HighLimit = value; } } public double DeadZoneHighLimit { get { return this.m_DeadZoneHighLimit; } set { this.m_DeadZoneHighLimit = value; } } public double DeadZoneLowLimit { get { return this.m_DeadZoneLowLimit; } set { this.m_DeadZoneLowLimit = value; } } public double LowLimit { get { return this.m_LowLimit; } set { this.m_LowLimit = value; } } public UInt32 SampleCount { get { return this.m_SampleCount; } set { this.m_SampleCount = value; } } public UInt32 IgnoreCount { get { return this.m_IgnoreCount; } set { this.m_IgnoreCount = value; } } public Collection<_30000_LaneModbusData> LaneModbusData { get { return this.m_LaneModbusData; } set { this.m_LaneModbusData = value; } } #endregion #region Method public void Initialization() { this.UnderValue = 100.0; this.PassValue = 200.0; this.OverValue = 300.0; this.TareValue = 0.0; this.HighLimit = 300.0; this.DeadZoneHighLimit = 0.0; this.DeadZoneLowLimit = 0.0; this.LowLimit = 100.0; this.SampleCount = 0; this.IgnoreCount = 0; this.LaneModbusData = new Collection<_30000_LaneModbusData>(); this.LaneModbusData.Clear(); for (int i = 0; i < 12; i++) this.LaneModbusData.Add(new _30000_LaneModbusData()); } #endregion } public class _30000_LaneModbusData { #region Field private ushort m_Update; private ushort m_Grade; private double m_Weight; private UInt32 m_UnderCount; private UInt32 m_PassCount; private UInt32 m_OverCount; private UInt32 m_ExNGCount; #endregion #region Constructor public _30000_LaneModbusData() { this.Initialization(); } #endregion #region Property public ushort Update { get { return this.m_Update; } set { this.m_Update = value; } } public ushort Grade { get { return this.m_Grade; } set { this.m_Grade = value; } } public double Weight { get { return this.m_Weight; } set { this.m_Weight = value; } } public UInt32 UnderCount { get { return this.m_UnderCount; } set { this.m_UnderCount = value; } } public UInt32 PassCount { get { return this.m_PassCount; } set { this.m_PassCount = value; } } public UInt32 OverCount { get { return this.m_OverCount; } set { this.m_OverCount = value; } } public UInt32 ExNGCount { get { return this.m_ExNGCount; } set { this.m_ExNGCount = value; } } public UInt32 NGCount { get { return this.m_UnderCount + this.m_OverCount + this.m_ExNGCount; } } public UInt32 TotalCount { get { return this.m_UnderCount + this.m_PassCount + this.m_OverCount + this.m_ExNGCount; } } public string HexStringUpdate { get { string hexString = this.Update.ToString("X8"); return hexString; } } public string HexStringGrade { get { string hexString = this.Grade.ToString("X8"); return hexString; } } public string HexStringWeight { get { byte[] bytes = BitConverter.GetBytes((float)this.Weight); Array.Reverse(bytes); string hexString = BitConverter.ToString(bytes); hexString = hexString.Replace("-", ""); return hexString; } } public string HexStringPassCount { get { string hexString = this.PassCount.ToString("X8"); return hexString; } } public string HexStringNGCount { get { string hexString = this.NGCount.ToString("X8"); return hexString; } } #endregion #region Method public void Initialization() { this.Update = 0; this.Grade = 0; this.Weight = 0.0; this.UnderCount = 0; this.PassCount = 0; this.OverCount = 0; this.ExNGCount = 0; } #endregion } public class _40000_ModbusAddress { public const int _01_Clear = 10; public const int _02_ClearResult = 11; public const int _03_Operation = 12; public const int _04_OperationResult = 13; public const int _05_ProductChange_High = 14; public const int _06_ProductChange_Low = 15; public const int _07_ProductChangeResult = 16; public const int _08_UnderRange_High = 17; public const int _09_UnderRange_Low = 18; public const int _10_UnderRangeResult = 19; public const int _11_PassRange_High = 20; public const int _12_PassRange_Low = 21; public const int _13_PassRangeResult = 22; public const int _14_OverRange_High = 23; public const int _15_OverRange_Low = 24; public const int _16_OverRangeResult = 25; public const int _17_TareWeight_High = 26; public const int _18_TareWeight_Low = 27; public const int _19_TareWeightResult = 28; } public class _40000_ModbusData { #region Field private int m_40011_Clear; private int m_40012_ClearResult; private int m_40013_Operation; private int m_40014_OperationResult; private int m_40015_ProductChange; private int m_40017_ProductChangeResult; private int m_40018_UnderRange; private int m_40020_UnderRangeResult; private int m_40021_PassRange; private int m_40023_PassRangeResult; private int m_40024_OverRange; private int m_40026_OverRangeResult; private int m_40027_TareWeight; private int m_40029_TareWeightResult; #endregion #region Constructor public _40000_ModbusData() { this.Initialization(); } #endregion #region Property public int _40011_Clear { get { return this.m_40011_Clear; } set { this.m_40011_Clear = value; } } public int _40012_ClearResult { get { return this.m_40012_ClearResult; } set { this.m_40012_ClearResult = value; } } public int _40013_Operation { get { return this.m_40013_Operation; } set { this.m_40013_Operation = value; } } public int _40014_OperationResult { get { return this.m_40014_OperationResult; } set { this.m_40014_OperationResult = value; } } public int _40015_ProductChange { get { return this.m_40015_ProductChange; } set { this.m_40015_ProductChange = value; } } public int _40017_ProductChangeResult { get { return this.m_40017_ProductChangeResult; } set { this.m_40017_ProductChangeResult = value; } } public int _40018_UnderRange { get { return this.m_40018_UnderRange; } set { this.m_40018_UnderRange = value; } } public int _40020_UnderRangeResult { get { return this.m_40020_UnderRangeResult; } set { this.m_40020_UnderRangeResult = value; } } public int _40021_PassRange { get { return this.m_40021_PassRange; } set { this.m_40021_PassRange = value; } } public int _40023_PassRangeResult { get { return this.m_40023_PassRangeResult; } set { this.m_40023_PassRangeResult = value; } } public int _40024_OverRange { get { return this.m_40024_OverRange; } set { this.m_40024_OverRange = value; } } public int _40026_OverRangeResult { get { return this.m_40026_OverRangeResult; } set { this.m_40026_OverRangeResult = value; } } public int _40027_TareWeight { get { return this.m_40027_TareWeight; } set { this.m_40027_TareWeight = value; } } public int _40029_TareWeightResult { get { return this.m_40029_TareWeightResult; } set { this.m_40029_TareWeightResult = value; } } #endregion #region Method public void Initialization() { this._40011_Clear = 0; this._40012_ClearResult = 0; this._40013_Operation = 0; this._40014_OperationResult = 0; this._40015_ProductChange = 0; this._40017_ProductChangeResult = 0; this._40018_UnderRange = 0; this._40020_UnderRangeResult = 0; this._40021_PassRange = 0; this._40023_PassRangeResult = 0; this._40024_OverRange = 0; this._40026_OverRangeResult = 0; this._40027_TareWeight = 0; this._40029_TareWeightResult = 0; } #endregion } #endregion #region DataBackupYear public class DataBackupYear { #region Field private string m_Year; public List Months; #endregion #region Constructor public DataBackupYear(string year) { this.Initialize(); this.Year = year; } #endregion #region Property public string Year { get { return this.m_Year; } private set { this.m_Year = value; } } #endregion #region Method private void Initialize() { this.Year = ""; this.Months = new List(); } #endregion } #endregion #region DataBackupMonth public class DataBackupMonth { #region Field private string m_Month; public List Days; #endregion #region Constructor public DataBackupMonth(string month) { this.Initialize(); this.Month = month; } #endregion #region Property public string Month { get { return this.m_Month; } private set { this.m_Month = value; } } #endregion #region Method private void Initialize() { this.Month = ""; this.Days = new List(); } #endregion } #endregion #region FileHeaderItem public class FileHeaderItem { #region Field private int m_EquipmentColumns; private int m_EquipmentType; private string m_LoginId; private string m_SerialNumber; private DateTime m_TimeStamp; #endregion #region Constructor public FileHeaderItem() { } #endregion #region Property public int EquipmentColumns { get { return this.m_EquipmentColumns; } set { this.m_EquipmentColumns = value; } } public int EquipmentType { get { return this.m_EquipmentType; } set { this.m_EquipmentType = value; } } public string LoginId { get { return this.m_LoginId; } set { this.m_LoginId = value; } } public string SerialNumber { get { return this.m_SerialNumber; } set { this.m_SerialNumber = value; } } public DateTime TimeStamp { get { return this.m_TimeStamp; } set { this.m_TimeStamp = value; } } #endregion #region Method #endregion } #endregion #region CalibrationStatus public class CalibrationStatus { #region Field private bool m_IsFinish; private bool m_IsError; private bool m_IsCancel; #endregion #region Constructor public CalibrationStatus() { this.Initialize(); } #endregion #region Property public bool IsFinish { get { return this.m_IsFinish; } set { this.m_IsFinish = value; } } public bool IsError { get { return this.m_IsError; } set { this.m_IsError = value; } } public bool IsCancel { get { return this.m_IsCancel; } set { this.m_IsCancel = value; } } #endregion #region Method public void Initialize() { this.IsFinish = false; this.IsError = false; this.IsCancel = false; } #endregion } #endregion }