public void ParseDBInformation(OPC_New_Target obj) { try { this.Mat_ID = obj.Mat_ID.ToCharArray(); this.Target = obj.Target.ToCharArray(); } catch (Exception ex) { ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": " + ex.Message); } }
private void WriteDataToPLC(OPC_New_Target obj) { try { DBObjects.New_Target New_Target = new DBObjects.New_Target(); New_Target.ParseDBInformation(obj); _client._plcConnection.Write(New_Target); _client._plcConnection.WriteBoolean("DB51.DBX 1.3", true); } catch (Exception ex) { ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": " + ex.Message); } }
private void ProcessDB() { try { //check reference of DB object _cmdSel if (bDBConnected == true && _cmdSel == null) { bDBConnected = false; } //if not connected return if (bDBConnected == false) { return; } if (!mre_dependency.IsSet) { mre_dependency.Wait(); } mre_dependency.Reset(); mre_dependency_backup.Set(); //read TQS dataset with status between X and 0 using (OracleDataReader dr = _cmdSel.ExecuteReader(CommandBehavior.Default)) { do { while (dr.Read()) { int iPKID = dr.GetOracleDecimal(0).ToInt32(), iStatus = dr.GetOracleDecimal(8).ToInt32(); string sMessageID = dr.GetOracleString(4).ToString(); UpdateTQS(iPKID, 2, _sSelectedTable); string sMessage = string.Empty; OracleBlob blob = null; //get the actual message to send blob = dr.GetOracleBlob(9); sMessage = Encoding.UTF8.GetString(blob.Value); //parse the included informations switch (sMessageID) { case "OPC_01": OPC_New_Lock_Request New_Lock_Request = new OPC_New_Lock_Request(); New_Lock_Request.ParseTelegraminformation(sMessage); if (!CheckFlagDB(TelegramType.Lock_Request)) { WriteDataToPLC(New_Lock_Request); Thread.Sleep(_iTimer); if (CheckFlagDB(TelegramType.Lock_Request)) { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not processed after being written."); } else { UpdateTQS(iPKID, 1, _sSelectedTable); ServiceBaseX._logger.Log(Category.Info, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": OPC_01 Information successfully updated to DB."); } } else { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not ready to be written at all. (OPC_01)"); } break; case "OPC_02": OPC_CTS_Lift_Drop CTS_Lift_Drop = new OPC_CTS_Lift_Drop(); CTS_Lift_Drop.ParseTelegraminformation(sMessage); if (!CheckFlagDB(TelegramType.CTS_Lift_Drop)) { WriteDataToPLC(CTS_Lift_Drop); Thread.Sleep(_iTimer); if (CheckFlagDB(TelegramType.CTS_Lift_Drop)) { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not processed after being written."); } else { UpdateTQS(iPKID, 1, _sSelectedTable); ServiceBaseX._logger.Log(Category.Info, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": OPC_02 Information successfully updated to DB."); } } else { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not ready to be written at all. (OPC_02)"); } break; case "OPC_03": OPC_New_Target New_Target = new OPC_New_Target(); New_Target.ParseTelegraminformation(sMessage); if (!CheckFlagDB(TelegramType.New_Target)) { WriteDataToPLC(New_Target); Thread.Sleep(_iTimer); if (CheckFlagDB(TelegramType.New_Target)) { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not processed after being written."); } else { UpdateTQS(iPKID, 1, _sSelectedTable); ServiceBaseX._logger.Log(Category.Info, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": OPC_03 Information successfully updated to DB."); } } else { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not ready to be written at all. (OPC_03)"); } break; case "LTEC01": LTEC_Input LTEC_Input = new LTEC_Input(); LTEC_Input.ParseTelegramBody(sMessage); if (!CheckFlagDB(TelegramType.New_Slab_Scarfing)) { WriteDataToPLC(LTEC_Input); Thread.Sleep(_iTimer); if (CheckFlagDB(TelegramType.New_Slab_Scarfing)) { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not processed after being written."); } else { UpdateTQS(iPKID, 1, _sSelectedTable); ServiceBaseX._logger.Log(Category.Info, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": LTEC Information successfully updated to DB."); } } else { UpdateTQS(iPKID, -9, _sSelectedTable); ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": DB not ready to be written at all. (LTEC)"); } break; default: ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": unknown MessageID."); break; } } } while (dr.NextResult()); } mre_dependency.Set(); } catch (Exception ex) { ServiceBaseX._logger.Log(Category.Error, MethodBase.GetCurrentMethod().DeclaringType.Name + "_" + MethodBase.GetCurrentMethod().Name + ": " + ex.Message); } }