Beispiel #1
0
 void Car_OnDataChanged(object sender, DataChangedEventArgs e)
 {
     try
     {
         if (e.State == null)
         {
             return;
         }
         //e.States
         string carNo = e.ItemName.Substring(e.ItemName.Length - 2, 2);
         GetCar(carNo);
         if (e.ItemName.IndexOf("Status") >= 0)
         {
             dicCar[carNo].Status = e.States;
         }
         else if (e.ItemName.IndexOf("CarTaskNo") >= 0)
         {
             dicCar[carNo].TaskNo = e.State.ToString();
         }
         else if (e.ItemName.IndexOf("AlarmCode") >= 0)
         {
             dicCar[carNo].AlarmCode = int.Parse(e.State.ToString());
         }
         Cars.CarInfo(dicCar[carNo]);
     }
     catch (Exception ex)
     {
         MCP.Logger.Error("输送线监控界面中Conveyor_OnDataChanged出现异常" + ex.Message);
     }
 }
Beispiel #2
0
        //反馈给总控WCS设备状态
        //string m = "[{\"id\":\"" + id + "\",\"deviceNo\":\"" + deviceNo + "\",\"mode\":\"" + mode + "\",\"status\":\"" + status + "\",\"taskNo\":\"" + taskNo + "\",\"fork\":\"" + fork + "\",\"load\":\"" + load + "\",\"aisleNo\":\"" + aisleNo + "\",\"column\":\"" + column + "\",\"layer\":\"" + layer + "\",\"alarmCode\":\"" + alarmCode + "\",\"sendDate\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\",\"sender\":\"" + sender + "\",\"field1\":\"\",\"field2\":\"\",\"field3\":\"\"" + "}]";
        #region 堆垛机监控
        void Car_OnDataChanged(object sender, DataChangedEventArgs e)
        {
            if (e.State == null)
            {
                return;
            }
            if (e.ItemName == "abc")
            {
                return;
            }

            string AisleNo = e.ServerName.Substring(5, 2);
            string CarNo   = "";

            if (e.ItemName.IndexOf("CarStatus") >= 0 || e.ItemName.IndexOf("CarAlarm") >= 0 || e.ItemName.IndexOf("CarTask") >= 0)
            {
                CarNo = e.ItemName.Substring(e.ItemName.Length - 2, 2);
            }

            CarNo = AisleNo + CarNo;
            GetCar(CarNo);

            if (e.ItemName.IndexOf("CarStatus") >= 0)
            {
                dicCar[CarNo].Mode       = int.Parse(e.States[0].ToString());
                dicCar[CarNo].Status     = int.Parse(e.States[12].ToString());
                dicCar[CarNo].Row        = int.Parse(e.States[1].ToString());
                dicCar[CarNo].Column     = int.Parse(e.States[2].ToString());
                dicCar[CarNo].Layer      = int.Parse(e.States[3].ToString());
                dicCar[CarNo].Load       = int.Parse(e.States[10].ToString());
                dicCar[CarNo].ForkStatus = int.Parse(e.States[11].ToString());
            }
            else if (e.ItemName.IndexOf("CarAlarm") >= 0)
            {
                dicCar[CarNo].AlarmCode = int.Parse(e.States[0].ToString());
            }
            else if (e.ItemName.IndexOf("CarTask") >= 0)
            {
                dicCar[CarNo].TaskNo = Util.ConvertStringChar.BytesToString(ObjectUtil.GetObjects(e.States));
            }

            Cars.CarInfo(dicCar[CarNo]);
        }
Beispiel #3
0
        private void GetCarInfo(int CarNo, string Prefix)
        {
            string PalletCode = "";
            string TaskNo     = Util.ConvertStringChar.BytesToString((byte[])Context.ProcessDispatcher.WriteToService("CarPLC", Prefix + "TaskNo"));

            if (TaskNo != "")
            {
                PalletCode = Util.ConvertStringChar.BytesToString((byte[])Context.ProcessDispatcher.WriteToService("CarPLC", Prefix + "PalletCode"));
            }
            Car car1 = new Car();

            car1.CarNo      = CarNo;
            car1.TaskNo     = TaskNo;
            car1.PalletCode = PalletCode;
            int ErrCode = (int)ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("CarPLC", Prefix + "ErrCode"));

            if (ErrCode != 0)
            {
                if (CarNo == 101 || CarNo == 105 || CarNo == 109 || CarNo == 113 || CarNo == 117)
                {
                    for (int j = 1; j <= 8; j++)
                    {
                        string sValue = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("CarPLC", Prefix + "ErrCode_" + j.ToString())).ToString();
                        if (sValue.Equals("1"))
                        {
                            car1.ErrCode = j;
                            break;
                        }
                    }
                }
                else
                {
                    car1.ErrCode = 8;
                }
            }
            else
            {
                car1.ErrCode = 0;
            }

            Cars.CarInfo(car1);
        }
Beispiel #4
0
        private void tmCarWorker(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                tmCar.Stop();


                int[]    carInfo = new int[6];
                object[] obj     = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "01_CarInfo"));
                for (int j = 0; j < 6; j++)
                {
                    carInfo[j] = Convert.ToInt16(obj[j]) - 48;
                }

                obj = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "01_CarTaskInfo"));
                string TaskNo = Util.ConvertStringChar.BytesToString(obj);

                Car car1 = new Car();
                car1.CarNo = 1;
                car1.Load  = carInfo[0];

                car1.Status   = carInfo[2];
                car1.TaskType = carInfo[3];
                car1.ErrCode  = carInfo[4];
                car1.Action   = carInfo[5];
                car1.TaskNo   = TaskNo;

                Cars.CarInfo(car1);

                obj = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "02_CarInfo"));
                for (int j = 0; j < 6; j++)
                {
                    carInfo[j] = Convert.ToInt16(obj[j]) - 48;
                }

                obj    = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "02_CarTaskInfo"));
                TaskNo = Util.ConvertStringChar.BytesToString(obj);

                Car car2 = new Car();
                car2.CarNo = 2;
                car2.Load  = carInfo[0];

                car2.Status   = carInfo[2];
                car2.TaskType = carInfo[3];
                car2.ErrCode  = carInfo[4];
                car2.Action   = carInfo[5];
                car2.TaskNo   = TaskNo;

                Cars.CarInfo(car2);

                obj = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "03_CarInfo"));
                for (int j = 0; j < 6; j++)
                {
                    carInfo[j] = Convert.ToInt16(obj[j]) - 48;
                }

                obj    = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CarPLC", "03_CarTaskInfo"));
                TaskNo = Util.ConvertStringChar.BytesToString(obj);

                Car car3 = new Car();
                car3.CarNo = 3;
                car3.Load  = carInfo[0];

                car3.Status   = carInfo[2];
                car3.TaskType = carInfo[3];
                car3.ErrCode  = carInfo[4];
                car3.Action   = carInfo[5];
                car3.TaskNo   = TaskNo;

                Cars.CarInfo(car3);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
            }
            finally
            {
                tmCar.Start();
            }
        }