protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { /* 处理事项: * 二层小车进入缓存站台 */ object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null || obj.ToString() == "0") return; string WriteItem = ""; try { switch (stateItem.ItemName) { case "02_1_475": WriteItem = "02_2_475"; break; case "02_1_440": WriteItem = "02_2_440"; break; case "02_1_412": WriteItem = "02_2_412"; break; } string TaskNo = obj.ToString().PadLeft(4, '0'); TaskDal dal = new TaskDal(); string[] strValue = dal.GetTaskInfo(TaskNo); if (!string.IsNullOrEmpty(strValue[0])) { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=5", strValue[0]), "2"); //更新 ChannelDal cDal = new ChannelDal(); cDal.UpdateOutChannelTime(strValue[0]); WriteToService("StockPLC_02", WriteItem, 1); } //读取码盘机是否处于,申请位; string SeparateItem = ""; object objSeparate = ObjectUtil.GetObject(WriteToService("StockPLC_02", "02_1_372_1")); if (objSeparate.ToString() != "0") SeparateItem = "02_1_372_1"; else { objSeparate = ObjectUtil.GetObject(WriteToService("StockPLC_02", "02_1_392_1")); if (objSeparate.ToString() != "0") SeparateItem = "02_1_392_1"; } if (SeparateItem != "") { WriteToProcess("StockOutSeparateProcess", SeparateItem, 1); } } catch (Exception e) { Logger.Error("THOK.XC.Process.Process_02.StockOutCacheProcess,原因:" + e.Message); } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { /* 处理事项: * 二层小车进入缓存站台 */ object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null || obj.ToString() == "0") return; string WriteItem = ""; string ChannelNo = ""; object objChannel; string strReadItem = ""; try { switch (stateItem.ItemName) { case "02_1_378_1": WriteItem = "02_2_378"; ChannelNo = "415"; strReadItem = "02_1_378_2"; break; case "02_1_381_1": WriteItem = "02_2_381"; ChannelNo = "431"; strReadItem = "02_1_381_2"; break; case "02_1_383_1": WriteItem = "02_2_383"; ChannelNo = "438"; strReadItem = "02_1_383_2"; break; case "02_1_385_1": WriteItem = "02_2_385"; ChannelNo = "461"; strReadItem = "02_1_385_2"; break; case "02_1_387_1": WriteItem = "02_2_387"; ChannelNo = "465"; strReadItem = "02_1_387_2"; break; case "02_1_389_1": WriteItem = "02_2_389"; ChannelNo = "471"; strReadItem = "02_1_389_2"; break; } string TaskNo = obj.ToString().PadLeft(4, '0'); objChannel = ObjectUtil.GetObject(WriteToService("StockPLC_02", strReadItem)); TaskDal dal = new TaskDal(); string[] strValue = dal.GetTaskInfo(TaskNo); if (!string.IsNullOrEmpty(strValue[0])) { ChannelDal Cdal = new ChannelDal(); ChannelNo = Cdal.GetChannelFromTask(TaskNo, strValue[1]); dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=5", strValue[0]), "2"); //更新 if (objChannel.ToString() == ChannelNo) //返回正确的缓存道。 { int value = Cdal.UpdateInChannelTime(strValue[0], strValue[1], ChannelNo); WriteToService("StockPLC_02", WriteItem + "_1", value); WriteToService("StockPLC_02", WriteItem + "_2", 1); } else { int value = Cdal.UpdateInChannelAndTime(strValue[0], strValue[1], objChannel.ToString()); WriteToService("StockPLC_02", WriteItem + "_1", value); WriteToService("StockPLC_02", WriteItem + "_2", 2); } } } catch (Exception e) { Logger.Error("THOK.XC.Process.Process_02.StockOutInCacheProcess,原因:" + e.Message); } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { /* 处理事项: * 二层出库拆盘完成 * stateItem.State :参数 - 请求的卷烟编码。 */ object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null || obj.ToString() == "0") return; string WriteItem=""; string FromStation = ""; string strTaskItem = ""; object objTaskNo; try { switch (stateItem.ItemName) { case "02_1_372_1": FromStation = "372"; WriteItem = "02_2_372"; strTaskItem = "02_1_372_2"; break; case "02_1_392_1": FromStation = "392"; WriteItem = "02_2_392"; strTaskItem = "02_1_392_2"; break; } objTaskNo = ObjectUtil.GetObject(WriteToService("StockPLC_02", strTaskItem)); string TaskNo = objTaskNo.ToString().PadLeft(4, '0'); TaskDal dal = new TaskDal(); string[] strValue = dal.GetTaskInfo(TaskNo); if (!string.IsNullOrEmpty(strValue[0])) { bool blnvalue = dal.SeparateTaskDetailStart(strValue[0]); //判断该任务是否开始执行 if (!blnvalue) { ChannelDal cdal = new ChannelDal(); string strChannelNo = cdal.InsertChannel(strValue[0], strValue[1]);//分配缓存道 if (strChannelNo != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=4", strValue[0]), "2"); WriteToService("StockPLC_02", WriteItem + "_1", int.Parse(strChannelNo)); WriteToService("StockPLC_02", WriteItem + "_2", 1); dal.UpdateTaskDetailStation(FromStation, strChannelNo, "1", string.Format("TASK_ID='{0}' AND ITEM_NO=5", strValue[0])); } } } } catch (Exception e) { Logger.Error("THOK.XC.Process.Process_02.StockOutSeparateProcess,原因:" + e.Message); } }