Beispiel #1
0
 private void monitoringDoubleClick(ModbusTcp.MachineInformation information)
 {
     if (Opener != null)
     {
         Opener.OpenNewForm(new frm_worker_home(information));
     }
 }
Beispiel #2
0
        //사이클 증가된 경우에만 db저장 . 시간 지나서 데이터 업데이트 된경우에는 저장 x
        //나중에 수정이 필요하다
        private static void HandleSaveMachineData(MachineInformation machineInfo,
                                                  Dictionary <string, string> newMachineData, string cycleCount, bool cycleIncreased)
        {
            System.Diagnostics.Stopwatch SW = new System.Diagnostics.Stopwatch();
            SW.Start();
            string machineCode = machineInfo.MachineCode;

            try
            {
                DateTime now = DateTime.Now;

                string moldName = getMoldNameFromServerSide(machineInfo.MachineCode);
                if (EntireMachineData.ContainsKey(machineCode))
                {
                    EntireMachineData[machineCode] = newMachineData;

                    if (cycleIncreased)
                    {
                        MapRow[] saveRows = MemoryMapsToSave[machineCode];
                        Dictionary <string, string> saveData = new Dictionary <string, string>();
                        for (int i = 0; i < saveRows.Length; i++)
                        {
                            string fieldCode = saveRows[i].Code;
                            if (newMachineData.ContainsKey(fieldCode))
                            {
                                saveData[fieldCode] = newMachineData[fieldCode];
                            }
                        }
                        //db save part
                        DbHelper.InsertMachineData(machineInfo, saveData, now, moldName, cycleCount);
                        //DbHelper.InsertMachineData(commands);

                        //text save part
                        string   msg  = string.Empty;
                        string[] keys = newMachineData.Keys.ToArray();
                        msg += "현재 시간:" + now.ToString("HH:mm:ss") + " 현재 사이클: " + cycleCount + "\n    ";
                        for (int i = 0; i < keys.Length; i++)
                        {
                            string key = keys[i];
                            msg += key + ":" + newMachineData[key] + "  ";
                        }
                        LogWriter.WriteLog_Data(msg, "SaveData", machineCode);
                    }
                    SW.Stop();
                    Console.WriteLine(machineCode + " :" + cycleCount + "회차 총 저장 소요시간 " + SW.ElapsedMilliseconds);
                }
            }
            catch (Exception ex)
            {
                LogWriter.WriteLog_Error(ex);
            }
        }
Beispiel #3
0
        public static void ModbusConnect(MachineInformation[] machineInfos)
        {
            for (int i = 0; i < machineInfos.Length; i++)
            {
                MachineInformation machineInfo = machineInfos[i];

                try
                {
                    string   machineCode = machineInfo.MachineCode;
                    MapRow[] memoryMap   = machineInfo.Memorymap;
                    MemoryMaps[machineCode]       = memoryMap;
                    MemoryMapsToSave[machineCode] = FindMapRowsToSave(memoryMap);

                    EntireMachineData[machineCode] = new Dictionary <string, string>();;

                    ModbusTcpClient modbusClient = new ModbusTcpClient(machineInfo);

                    modbusClient.ConSuccess += new ModbusTcpClient.ConnectionSuccess(ModbusConnected);
                    modbusClient.ConLost    += new ModbusTcpClient.ConnectionLost(ModbusLost);
                    //modbusClient.ModbusDataReceived += new ModbusTcpClient.ModbusDataReceiveHandler(HandleModbusDataReceive);
                    modbusClient.CycleCompleted += new ModbusTcpClient.MachineCycleComplete(HandleSaveMachineData);
                    modbusClient.ErrorUpdated   += new ModbusTcpClient.MachineErrorUpdate(HandleSaveMachineError);

                    modbusConnectedList.Add(modbusClient, ConnectionState.Disconnected);


                    Thread modThread = new Thread(new ParameterizedThreadStart(ModbusClientStart));
                    modThread.IsBackground = true;
                    modThread.Start(modbusClient);
                    ModbusThreadStates.Add(modbusClient, true);
                }
                catch (Exception ex)
                {
                    LogWriter.WriteLog_Error(ex);
                }
            }

            //재접속 타이머 실행
            Reconnectiontimer.Elapsed += new System.Timers.ElapsedEventHandler(ReconnectionTimer_Tick);
            Reconnectiontimer.Interval = 30000;
            Reconnectiontimer.Enabled  = true;
        }
Beispiel #4
0
        public static MachineInformation[] getMachineInformations(DataTable machineInfoTable)
        {
            MachineInformation[] machineInformations = new MachineInformation[machineInfoTable.Rows.Count];
            for (int i = 0; i < machineInfoTable.Rows.Count; i++)
            {
                DataRow row         = machineInfoTable.Rows[i];
                string  machineName = row["MACHINE_NAME"].ToString();
                int     machineNumber;
                if (int.TryParse(row["MACHINE_NUMBER"].ToString(), out machineNumber) == false)
                {
                    machineNumber = 0;
                }
                string machineIp = row["MACHINE_IP"].ToString();
                int    machinePort;
                if (int.TryParse(row["MACHINE_PORT"].ToString(), out machinePort) == false)
                {
                    machinePort = 502;
                }
                string machineCode = row["MACHINE_CODE"].ToString();
                string machineType = row["MACHINE_TYPE"].ToString();

                IPAddress  ipAddress;
                IPEndPoint ipEnd;
                if (IPAddress.TryParse(machineIp, out ipAddress))
                {
                    ipEnd = new IPEndPoint(ipAddress, machinePort);
                }
                else
                {
                    ipEnd = null;
                }

                string mapType = row["MapType"].ToString();

                MachineInformation machineInfo = new MachineInformation();
                machineInfo.MachineName   = machineName;
                machineInfo.MachineNumber = machineNumber;
                machineInfo.MachineType   = machineType;
                machineInfo.MachineCode   = machineCode;
                machineInfo.IpEnd         = ipEnd;

                DataTable mapTable = DbHelper.LoadMemoryMap(mapType);
                if (mapTable != null)
                {
                    MapRow[] memoryMap = GetMemoryRowsFromDataTable(mapTable);
                    int      offset;
                    if (int.TryParse(row["Offset"].ToString(), out offset) == false)
                    {
                        offset = 0;
                    }
                    for (int j = 0; j < memoryMap.Length; j++)
                    {
                        memoryMap[j].Address += offset;
                    }
                    machineInfo.Memorymap = memoryMap;
                }
                else
                {
                    machineInfo.Memorymap = new MapRow[] { }
                };

                machineInformations[i] = machineInfo;
            }
            return(machineInformations);
        }
Beispiel #5
0
        private static void HandleSaveMachineError(MachineInformation machineInfo,
                                                   Dictionary <string, string> newMachineData)
        {
            System.Diagnostics.Stopwatch SW = new System.Diagnostics.Stopwatch();
            SW.Start();
            string machineCode = machineInfo.MachineCode;

            EntireMachineData[machineCode] = newMachineData;
            try
            {
                DateTime now = DateTime.Now;
                if (EntireMachineData.ContainsKey(machineCode))
                {
                    System.Diagnostics.Stopwatch SW2 = new System.Diagnostics.Stopwatch();
                    SW2.Start();
                    //이전 machineData 에 error와 현재 machineData error 비교 후 sql 실행
                    //Dictionary<string, string> preMachineData = EntireMachineData[machineCode];
                    Dictionary <string, string> preErrorStates = DbHelper.getPreviousErrorStates(machineCode);
                    string[] fieldCodes = newMachineData.Keys.ToArray();
                    MapRow[] memorymap  = MemoryMaps[machineCode];

                    for (int i = 0; i < newMachineData.Count; i++)
                    {
                        string fieldCode = fieldCodes[i];
                        string errorText = string.Empty;

                        if (fieldCode.Substring(0, 1).ToUpper().Equals("M"))
                        {
                            MapRow row = new MapRow();
                            for (int rowIndex = 0; rowIndex < memorymap.Length; rowIndex++)
                            {
                                if (memorymap[rowIndex].Code == fieldCode)
                                {
                                    row = memorymap[rowIndex];
                                }
                            }

                            string newErrorState = newMachineData[fieldCode];
                            string preErrorState = preErrorStates.GetValueOrDefault(fieldCode);

                            if (newErrorState != preErrorState)
                            {
                                DbHelper.UpdateErrorList(machineInfo, fieldCode, newErrorState, now);

                                if (newErrorState.Trim() == "1")
                                {
                                    //Send Android Push Alarm
                                    string title = machineInfo.MachineName;
                                    string body  = row.Name;
                                    AndroidFcmSender.SendNotificationToTopic(CompanyCode, title, body);
                                }
                            }
                        }
                    }
                    SW2.Stop();

                    Console.WriteLine(machineCode + " :" + "오류 총 저장 소요시간 " + SW2.ElapsedMilliseconds);
                }
                SW.Stop();
            }
            catch (Exception ex)
            {
                LogWriter.WriteLog_Error(ex);
            }
        }
Beispiel #6
0
        public static void UpdateErrorList(MachineInformation machineInfo,
                                           string errorCode, string errorState, DateTime dateTime)
        {
            SqlCommand cmd   = new SqlCommand();
            string     query = @"
            DECLARE @EX_STATE CHAR(1)
            IF NOT EXISTS 
	        (
		        SELECT * FROM ERROR_LIST
		        WHERE MACHINE_CODE = @MACHINE_CODE
		        AND ERROR_CODE = @ERROR_CODE
	        )
	            BEGIN
	            INSERT INTO ERROR_LIST
                (MACHINE_CODE, ERROR_CODE,  ERROR_STATE, UPDATE_TIME)
                VALUES 
                (@MACHINE_CODE, @ERROR_CODE, @ERROR_STATE, @UPDATE_TIME)
	
	            IF(@ERROR_STATE = '1')
		            INSERT INTO ERROR_HISTORY 
                    (MACHINE_CODE, ERROR_CODE,  SAVE_TIME)
		            VALUES 
                    (@MACHINE_CODE, @ERROR_CODE, @UPDATE_TIME)
	            END
            ELSE 
	            BEGIN
	            SELECT @EX_STATE = ERROR_STATE FROM ERROR_LIST 
						            WHERE MACHINE_CODE = @MACHINE_CODE
						            AND ERROR_CODE = @ERROR_CODE

			            IF(@EX_STATE != @ERROR_STATE)
				            BEGIN
				            UPDATE ERROR_LIST
				            SET UPDATE_TIME = @UPDATE_TIME, ERROR_STATE = @ERROR_STATE
                            WHERE MACHINE_CODE = @MACHINE_CODE
                            AND ERROR_CODE = @ERROR_CODE
				
				            IF(@ERROR_STATE = '1')
				            INSERT INTO ERROR_HISTORY 
                            (MACHINE_CODE, ERROR_CODE,  SAVE_TIME)   
				            VALUES 
                            (@MACHINE_CODE, @ERROR_CODE, @UPDATE_TIME)
				            END
	            END
                ";

            try
            {
                using (SqlConnection sqlCon = new SqlConnection(DbConnectionString))
                {
                    cmd.Connection  = sqlCon;
                    cmd.CommandText = query;

                    cmd.Parameters.AddWithValue("@MACHINE_CODE", machineInfo.MachineCode);
                    cmd.Parameters.AddWithValue("@ERROR_CODE", errorCode);
                    cmd.Parameters.AddWithValue("@ERROR_STATE", errorState);
                    cmd.Parameters.AddWithValue("@UPDATE_TIME", dateTime);

                    sqlCon.Open();
                    cmd.ExecuteNonQuery();
                    sqlCon.Close();
                }
            }
            catch (Exception ex)
            {
                LogWriter.WriteLog_Error(ex);
            }
        }
Beispiel #7
0
        public static void InsertMachineData(MachineInformation machineInfo,
                                             Dictionary <string, string> machineData, DateTime dateTime, string moldName, string cycleCount)
        {
            using (SqlConnection sqlConnection = new SqlConnection(DbConnectionString))
            {
                try
                {
                    SqlCommand cmd = new SqlCommand();
                    #region query
                    string query = @"
                    SET NOCOUNT ON
                    
                    BEGIN TRAN

                    INSERT INTO    ActualData_1
                    VALUES 
                    (
                            @DATETIME, @MACHINECODE,  @CYCLE, @MOLDNAME,
                            @A00010, @A00011, @A00012, @A00013, @A00014, 
                            @A00015, @A00016, @A00017, @A00018, @A00019, 
                            @A00020, @A00021, @A00022, @A00023, @A00024, 
                            @A00025, @A00026, @A00027, @A00028, @A00029, 
                            @A00030, @A00031, @A00032, @A00033, @A00034, 
                            @A00035 
                    )";
                    query += @"
                    INSERT INTO ActualData_2
                    VALUES
                    (
                            @DATETIME, 
                            @A00036, @A00037, @A00038, @A00039, @A00040,
                            @A00041, @A00042, @A00043, @A00044, @A00045,
                            @A00046, @A00047, @A00048, @A00049, @A00050,
                            @A00051, @A00052, @A00053, @A00054, @A00055,
                            @A00056, @A00057, @A00058, @A00059, @A00060,
                            @A00061, @A00062
                    )";

                    query += @"INSERT INTO    SetData_1
                    VALUES 
                    (
                            @DATETIME, 
                            @S00001, @S00002, @S00003, @S00004, @S00005, 
                            @S00006, @S00007, @S00008, @S00009, @S00010, 
                            @S00011, @S00012, @S00013, @S00014, @S00015, 
                            @S00016, @S00017, @S00018, @S00019, @S00020, 
                            @S00021, @S00022, @S00023, @S00024, @S00025, 
                            @S00026, @S00027, @S00028, @S00029, @S00030, 
                            @S00031, @S00032, @S00033, @S00034, @S00035
                    )";

                    query += @"INSERT INTO    SetData_2
                    VALUES 
                    (       
                            @DATETIME, 
                            @S00036, @S00037, @S00038, @S00039, @S00040, 
                            @S00041, @S00042, @S00043, @S00044, @S00045, 
                            @S00046, @S00047, @S00048, @S00049, @S00050, 
                            @S00051, @S00052, @S00053, @S00054, @S00055, 
                            @S00056, @S00057, @S00058, @S00059, @S00060, 
                            @S00061, @S00062, @S00063, @S00064, @S00065, 
                            @S00066, @S00067, @S00068, @S00069, @S00070
                    )";


                    query += @"INSERT INTO    SetData_3
                    VALUES 
                    (
                            @DATETIME, 
                            @S00071, @S00072, @S00073, @S00074, @S00075, 
                            @S00076, @S00077, @S00078, @S00079, @S00080, 
                            @S00081, @S00082, @S00083, @S00084, @S00085, 
                            @S00086, @S00087, @S00088, @S00089, @S00090, 
                            @S00091, @S00092, @S00093, @S00094, @S00095, 
                            @S00096, @S00097, @S00098, @S00099, @S00100, 
                            @S00101, @S00102, @S00103, @S00104, @S00105
                    )";
                    query += @"INSERT INTO    SetData_4
                    VALUES 
                    (
                            @DATETIME, 
                            @S00106, @S00107, @S00108, @S00109, @S00110, 
                            @S00111, @S00112, @S00113, @S00114, @S00115, 
                            @S00116, @S00117, @S00118, @S00119, @S00120, 
                            @S00121, @S00122, @S00123, @S00124, @S00125, 
                            @S00126, @S00127, @S00128, @S00129, @S00130, 
                            @S00131, @S00132, @S00133, @S00134, @S00135, 
                            @S00136, @S00137, @S00138, @S00139, @S00140
                    )";
                    query += @"
                            IF @@ERROR > 0
                                ROLLBACK TRAN
                            ELSE
                                COMMIT TRAN
                          ";
                    #endregion query

                    #region sql command parameters
                    cmd.Parameters.AddWithValue("@A00010", machineData.ContainsKey("A00010") ? machineData["A00010"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00011", machineData.ContainsKey("A00011") ? machineData["A00011"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00012", machineData.ContainsKey("A00012") ? machineData["A00012"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00013", machineData.ContainsKey("A00013") ? machineData["A00013"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00014", machineData.ContainsKey("A00014") ? machineData["A00014"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00015", machineData.ContainsKey("A00015") ? machineData["A00015"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00016", machineData.ContainsKey("A00016") ? machineData["A00016"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00017", machineData.ContainsKey("A00017") ? machineData["A00017"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00018", machineData.ContainsKey("A00018") ? machineData["A00018"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00019", machineData.ContainsKey("A00019") ? machineData["A00019"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00020", machineData.ContainsKey("A00020") ? machineData["A00020"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00021", machineData.ContainsKey("A00021") ? machineData["A00021"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00022", machineData.ContainsKey("A00022") ? machineData["A00022"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00023", machineData.ContainsKey("A00023") ? machineData["A00023"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00024", machineData.ContainsKey("A00024") ? machineData["A00024"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00025", machineData.ContainsKey("A00025") ? machineData["A00025"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00026", machineData.ContainsKey("A00026") ? machineData["A00026"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00027", machineData.ContainsKey("A00027") ? machineData["A00027"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00028", machineData.ContainsKey("A00028") ? machineData["A00028"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00029", machineData.ContainsKey("A00029") ? machineData["A00029"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00030", machineData.ContainsKey("A00030") ? machineData["A00030"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00031", machineData.ContainsKey("A00031") ? machineData["A00031"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00032", machineData.ContainsKey("A00032") ? machineData["A00032"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00033", machineData.ContainsKey("A00033") ? machineData["A00033"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00034", machineData.ContainsKey("A00034") ? machineData["A00034"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00035", machineData.ContainsKey("A00035") ? machineData["A00035"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00036", machineData.ContainsKey("A00036") ? machineData["A00036"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00037", machineData.ContainsKey("A00037") ? machineData["A00037"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00038", machineData.ContainsKey("A00038") ? machineData["A00038"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00039", machineData.ContainsKey("A00039") ? machineData["A00039"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00040", machineData.ContainsKey("A00040") ? machineData["A00040"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00041", machineData.ContainsKey("A00041") ? machineData["A00041"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00042", machineData.ContainsKey("A00042") ? machineData["A00042"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00043", machineData.ContainsKey("A00043") ? machineData["A00043"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00044", machineData.ContainsKey("A00044") ? machineData["A00044"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00045", machineData.ContainsKey("A00045") ? machineData["A00045"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00046", machineData.ContainsKey("A00046") ? machineData["A00046"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00047", machineData.ContainsKey("A00047") ? machineData["A00047"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00048", machineData.ContainsKey("A00048") ? machineData["A00048"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00049", machineData.ContainsKey("A00049") ? machineData["A00049"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00050", machineData.ContainsKey("A00050") ? machineData["A00050"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00051", machineData.ContainsKey("A00051") ? machineData["A00051"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00052", machineData.ContainsKey("A00052") ? machineData["A00052"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00053", machineData.ContainsKey("A00053") ? machineData["A00053"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00054", machineData.ContainsKey("A00054") ? machineData["A00054"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00055", machineData.ContainsKey("A00055") ? machineData["A00055"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00056", machineData.ContainsKey("A00056") ? machineData["A00056"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00057", machineData.ContainsKey("A00057") ? machineData["A00057"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00058", machineData.ContainsKey("A00058") ? machineData["A00058"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00059", machineData.ContainsKey("A00059") ? machineData["A00059"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00060", machineData.ContainsKey("A00060") ? machineData["A00060"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00061", machineData.ContainsKey("A00061") ? machineData["A00061"] : String.Empty);
                    cmd.Parameters.AddWithValue("@A00062", machineData.ContainsKey("A00062") ? machineData["A00062"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00001", machineData.ContainsKey("S00001") ? machineData["S00001"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00002", machineData.ContainsKey("S00002") ? machineData["S00002"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00003", machineData.ContainsKey("S00003") ? machineData["S00003"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00004", machineData.ContainsKey("S00004") ? machineData["S00004"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00005", machineData.ContainsKey("S00005") ? machineData["S00005"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00006", machineData.ContainsKey("S00006") ? machineData["S00006"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00007", machineData.ContainsKey("S00007") ? machineData["S00007"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00008", machineData.ContainsKey("S00008") ? machineData["S00008"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00009", machineData.ContainsKey("S00009") ? machineData["S00009"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00010", machineData.ContainsKey("S00010") ? machineData["S00010"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00011", machineData.ContainsKey("S00011") ? machineData["S00011"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00012", machineData.ContainsKey("S00012") ? machineData["S00012"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00013", machineData.ContainsKey("S00013") ? machineData["S00013"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00014", machineData.ContainsKey("S00014") ? machineData["S00014"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00015", machineData.ContainsKey("S00015") ? machineData["S00015"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00016", machineData.ContainsKey("S00016") ? machineData["S00016"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00017", machineData.ContainsKey("S00017") ? machineData["S00017"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00018", machineData.ContainsKey("S00018") ? machineData["S00018"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00019", machineData.ContainsKey("S00019") ? machineData["S00019"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00020", machineData.ContainsKey("S00020") ? machineData["S00020"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00021", machineData.ContainsKey("S00021") ? machineData["S00021"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00022", machineData.ContainsKey("S00022") ? machineData["S00022"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00023", machineData.ContainsKey("S00023") ? machineData["S00023"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00024", machineData.ContainsKey("S00024") ? machineData["S00024"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00025", machineData.ContainsKey("S00025") ? machineData["S00025"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00026", machineData.ContainsKey("S00026") ? machineData["S00026"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00027", machineData.ContainsKey("S00027") ? machineData["S00027"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00028", machineData.ContainsKey("S00028") ? machineData["S00028"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00029", machineData.ContainsKey("S00029") ? machineData["S00029"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00030", machineData.ContainsKey("S00030") ? machineData["S00030"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00031", machineData.ContainsKey("S00031") ? machineData["S00031"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00032", machineData.ContainsKey("S00032") ? machineData["S00032"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00033", machineData.ContainsKey("S00033") ? machineData["S00033"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00034", machineData.ContainsKey("S00034") ? machineData["S00034"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00035", machineData.ContainsKey("S00035") ? machineData["S00035"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00036", machineData.ContainsKey("S00036") ? machineData["S00036"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00037", machineData.ContainsKey("S00037") ? machineData["S00037"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00038", machineData.ContainsKey("S00038") ? machineData["S00038"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00039", machineData.ContainsKey("S00039") ? machineData["S00039"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00040", machineData.ContainsKey("S00040") ? machineData["S00040"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00041", machineData.ContainsKey("S00041") ? machineData["S00041"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00042", machineData.ContainsKey("S00042") ? machineData["S00042"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00043", machineData.ContainsKey("S00043") ? machineData["S00043"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00044", machineData.ContainsKey("S00044") ? machineData["S00044"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00045", machineData.ContainsKey("S00045") ? machineData["S00045"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00046", machineData.ContainsKey("S00046") ? machineData["S00046"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00047", machineData.ContainsKey("S00047") ? machineData["S00047"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00048", machineData.ContainsKey("S00048") ? machineData["S00048"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00049", machineData.ContainsKey("S00049") ? machineData["S00049"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00050", machineData.ContainsKey("S00050") ? machineData["S00050"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00051", machineData.ContainsKey("S00051") ? machineData["S00051"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00052", machineData.ContainsKey("S00052") ? machineData["S00052"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00053", machineData.ContainsKey("S00053") ? machineData["S00053"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00054", machineData.ContainsKey("S00054") ? machineData["S00054"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00055", machineData.ContainsKey("S00055") ? machineData["S00055"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00056", machineData.ContainsKey("S00056") ? machineData["S00056"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00057", machineData.ContainsKey("S00057") ? machineData["S00057"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00058", machineData.ContainsKey("S00058") ? machineData["S00058"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00059", machineData.ContainsKey("S00059") ? machineData["S00059"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00060", machineData.ContainsKey("S00060") ? machineData["S00060"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00061", machineData.ContainsKey("S00061") ? machineData["S00061"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00062", machineData.ContainsKey("S00062") ? machineData["S00062"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00063", machineData.ContainsKey("S00063") ? machineData["S00063"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00064", machineData.ContainsKey("S00064") ? machineData["S00064"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00065", machineData.ContainsKey("S00065") ? machineData["S00065"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00066", machineData.ContainsKey("S00066") ? machineData["S00066"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00067", machineData.ContainsKey("S00067") ? machineData["S00067"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00068", machineData.ContainsKey("S00068") ? machineData["S00068"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00069", machineData.ContainsKey("S00069") ? machineData["S00069"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00070", machineData.ContainsKey("S00070") ? machineData["S00070"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00071", machineData.ContainsKey("S00071") ? machineData["S00071"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00072", machineData.ContainsKey("S00072") ? machineData["S00072"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00073", machineData.ContainsKey("S00073") ? machineData["S00073"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00074", machineData.ContainsKey("S00074") ? machineData["S00074"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00075", machineData.ContainsKey("S00075") ? machineData["S00075"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00076", machineData.ContainsKey("S00076") ? machineData["S00076"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00077", machineData.ContainsKey("S00077") ? machineData["S00077"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00078", machineData.ContainsKey("S00078") ? machineData["S00078"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00079", machineData.ContainsKey("S00079") ? machineData["S00079"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00080", machineData.ContainsKey("S00080") ? machineData["S00080"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00081", machineData.ContainsKey("S00081") ? machineData["S00081"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00082", machineData.ContainsKey("S00082") ? machineData["S00082"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00083", machineData.ContainsKey("S00083") ? machineData["S00083"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00084", machineData.ContainsKey("S00084") ? machineData["S00084"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00085", machineData.ContainsKey("S00085") ? machineData["S00085"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00086", machineData.ContainsKey("S00086") ? machineData["S00086"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00087", machineData.ContainsKey("S00087") ? machineData["S00087"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00088", machineData.ContainsKey("S00088") ? machineData["S00088"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00089", machineData.ContainsKey("S00089") ? machineData["S00089"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00090", machineData.ContainsKey("S00090") ? machineData["S00090"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00091", machineData.ContainsKey("S00091") ? machineData["S00091"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00092", machineData.ContainsKey("S00092") ? machineData["S00092"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00093", machineData.ContainsKey("S00093") ? machineData["S00093"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00094", machineData.ContainsKey("S00094") ? machineData["S00094"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00095", machineData.ContainsKey("S00095") ? machineData["S00095"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00096", machineData.ContainsKey("S00096") ? machineData["S00096"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00097", machineData.ContainsKey("S00097") ? machineData["S00097"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00098", machineData.ContainsKey("S00098") ? machineData["S00098"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00099", machineData.ContainsKey("S00099") ? machineData["S00099"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00100", machineData.ContainsKey("S00100") ? machineData["S00100"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00101", machineData.ContainsKey("S00101") ? machineData["S00101"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00102", machineData.ContainsKey("S00102") ? machineData["S00102"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00103", machineData.ContainsKey("S00103") ? machineData["S00103"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00104", machineData.ContainsKey("S00104") ? machineData["S00104"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00105", machineData.ContainsKey("S00105") ? machineData["S00105"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00106", machineData.ContainsKey("S00106") ? machineData["S00106"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00107", machineData.ContainsKey("S00107") ? machineData["S00107"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00108", machineData.ContainsKey("S00108") ? machineData["S00108"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00109", machineData.ContainsKey("S00109") ? machineData["S00109"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00110", machineData.ContainsKey("S00110") ? machineData["S00110"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00111", machineData.ContainsKey("S00111") ? machineData["S00111"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00112", machineData.ContainsKey("S00112") ? machineData["S00112"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00113", machineData.ContainsKey("S00113") ? machineData["S00113"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00114", machineData.ContainsKey("S00114") ? machineData["S00114"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00115", machineData.ContainsKey("S00115") ? machineData["S00115"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00116", machineData.ContainsKey("S00116") ? machineData["S00116"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00117", machineData.ContainsKey("S00117") ? machineData["S00117"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00118", machineData.ContainsKey("S00118") ? machineData["S00118"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00119", machineData.ContainsKey("S00119") ? machineData["S00119"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00120", machineData.ContainsKey("S00120") ? machineData["S00120"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00121", machineData.ContainsKey("S00121") ? machineData["S00121"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00122", machineData.ContainsKey("S00122") ? machineData["S00122"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00123", machineData.ContainsKey("S00123") ? machineData["S00123"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00124", machineData.ContainsKey("S00124") ? machineData["S00124"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00125", machineData.ContainsKey("S00125") ? machineData["S00125"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00126", machineData.ContainsKey("S00126") ? machineData["S00126"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00127", machineData.ContainsKey("S00127") ? machineData["S00127"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00128", machineData.ContainsKey("S00128") ? machineData["S00128"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00129", machineData.ContainsKey("S00129") ? machineData["S00129"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00130", machineData.ContainsKey("S00130") ? machineData["S00130"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00131", machineData.ContainsKey("S00131") ? machineData["S00131"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00132", machineData.ContainsKey("S00132") ? machineData["S00132"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00133", machineData.ContainsKey("S00133") ? machineData["S00133"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00134", machineData.ContainsKey("S00134") ? machineData["S00134"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00135", machineData.ContainsKey("S00135") ? machineData["S00135"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00136", machineData.ContainsKey("S00136") ? machineData["S00136"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00137", machineData.ContainsKey("S00137") ? machineData["S00137"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00138", machineData.ContainsKey("S00138") ? machineData["S00138"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00139", machineData.ContainsKey("S00139") ? machineData["S00139"] : String.Empty);
                    cmd.Parameters.AddWithValue("@S00140", machineData.ContainsKey("S00140") ? machineData["S00140"] : String.Empty);
                    cmd.Parameters.AddWithValue("@CYCLE", cycleCount);
                    cmd.Parameters.AddWithValue("@MOLDNAME", moldName);
                    cmd.Parameters.AddWithValue("@MACHINECODE", machineInfo.MachineCode);
                    cmd.Parameters.AddWithValue("@DATETIME", dateTime);

                    #endregion

                    cmd.Connection  = sqlConnection;
                    cmd.CommandText = query;

                    sqlConnection.Open();
                    cmd.ExecuteNonQuery();
                    sqlConnection.Close();
                }
                catch (Exception ex)
                {
                    LogWriter.WriteLog_Error(ex);
                }
                finally
                {
                    sqlConnection.Close();
                }
            }
        }