Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
            }
        }