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); } }
//反馈给总控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]); }
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); }
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(); } }