protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { switch (stateItem.ItemName) { case "TaskFinished01": case "TaskFinished02": object[] obj = ObjectUtil.GetObjects(stateItem.State); if (obj == null) { return; } string TaskNo = ConvertStringChar.BytesToString(obj); //存储过程处理 if (TaskNo.Length > 0) { DataParameter[] para = new DataParameter[] { new DataParameter("{0}", string.Format("Task.TaskNo='{0}'", TaskNo)) }; DataTable dt = bll.FillDataTable("WCS.SelectElevatorTask", para); if (dt.Rows.Count > 0) { string TaskType = dt.Rows[0]["TaskType"].ToString(); if (TaskType == "12") { bll.ExecNonQuery("WCS.UpdateCellEmpty", new DataParameter[] { new DataParameter("@CellCode", dt.Rows[0]["CellCode"].ToString()) }); bll.ExecNonQuery("WCS.UpdateTaskByFilter", new DataParameter[] { new DataParameter("{0}", "State=11,Car_FinishDate=getdate()"), new DataParameter("{1}", string.Format("TaskNo='{0}'", TaskNo)) }); } else { DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) }; bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param); } } byte[] b = new byte[30]; ConvertStringChar.stringToByte("", 30).CopyTo(b, 0); WriteToService(stateItem.Name, stateItem.ItemName, b); Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo); } break; case "Run": blRun = (int)stateItem.State == 1; if (blRun) { tmWorkTimer.Start(); Logger.Info("换层提升机联机"); } else { tmWorkTimer.Stop(); Logger.Info("换层提升机脱机"); } break; default: break; } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { switch (stateItem.ItemName) { case "TaskFinished01": case "TaskFinished02": object[] obj = ObjectUtil.GetObjects(stateItem.State); if (obj == null) { return; } string TaskNo = ConvertStringChar.BytesToString(obj); { //存储过程处理 if (TaskNo.Length > 0) { byte[] b = new byte[30]; ConvertStringChar.stringToByte("", 30).CopyTo(b, 0); WriteToService(stateItem.Name, stateItem.ItemName, b); Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo); DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) }; bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param); } //上报总控WCS,下架完成 } break; case "CarAlarm01": case "CarAlarm02": object obj1 = ObjectUtil.GetObject(stateItem.State); if (obj1 == null) { return; } if (obj1.ToString() != "0") { string strError = ""; DataRow[] drs = dtDeviceAlarm.Select(string.Format("Flag=2 and AlarmCode={0}", obj1.ToString())); if (drs.Length > 0) { strError = drs[0]["AlarmCode"].ToString(); } else { strError = "穿梭车未知错误!"; } Logger.Error(strError); } break; case "ElevatorAlarm": object obj2 = ObjectUtil.GetObject(stateItem.State); if (obj2 == null) { return; } if (obj2.ToString() != "0") { string strError = ""; DataRow[] drs = dtDeviceAlarm.Select(string.Format("Flag=3 and AlarmCode={0}", obj2.ToString())); if (drs.Length > 0) { strError = drs[0]["AlarmCode"].ToString(); } else { strError = "提升机未知错误!"; } Logger.Error(strError); } break; case "Run": blRun = (int)stateItem.State == 1; if (blRun) { tmWorkTimer.Start(); Logger.Info("提升机联机"); } else { tmWorkTimer.Stop(); Logger.Info("提升机脱机"); } break; default: break; } return; }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { switch (stateItem.ItemName) { case "TaskFinished01": case "TaskFinished02": try { object[] obj = ObjectUtil.GetObjects(stateItem.State); Logger.Debug("收到完成信号,PLC编号:" + stateItem.Name + "小车号:" + stateItem.ItemName + "任务号:" + ConvertStringChar.BytesToString(obj)); if (obj == null) { return; } string TaskNo = ConvertStringChar.BytesToString(obj); //存储过程处理 if (TaskNo.Length > 0) { byte[] b = new byte[30]; ConvertStringChar.stringToByte("", 30).CopyTo(b, 0); WriteToService(stateItem.Name, stateItem.ItemName, b); Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo); DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) }; bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param); DataParameter[] para = new DataParameter[] { new DataParameter("{0}", string.Format("WCS_Task.TaskNo='{0}'", TaskNo)) }; DataTable dt = bll.FillDataTable("WCS.SelectTask", para); if (dt.Rows.Count > 0) { string TaskType = dt.Rows[0]["TaskType"].ToString(); if (TaskType == "12") { string Barcode = dt.Rows[0]["PalletBarcode"].ToString(); byte[] barcode = new byte[20]; ConvertStringChar.stringToByte(Barcode, 20).CopyTo(barcode, 0); WriteToService(stateItem.Name, "OutLocation01", barcode); } } report.Send2MJWcs(base.Context, 3, TaskNo); } } catch (Exception ex) { Logger.Error("小车完成过程中出错" + ex.ToString()); } //上报总控WCS,下架完成 break; case "Run": blRun = (int)stateItem.State == 1; if (blRun) { tmWorkTimer.Start(); Logger.Info("提升机联机"); } else { tmWorkTimer.Stop(); GC.Collect(); GC.WaitForPendingFinalizers(); Logger.Info("提升机脱机"); } break; default: break; } }