private void OnRefreshWMSDt() { CtlDBAccess.BLL.MainControlTaskBll mainTaskBll = new CtlDBAccess.BLL.MainControlTaskBll(); List <CtlDBAccess.Model.MainControlTaskModel> mainTaskList = mainTaskBll.GetModelList("TaskStatus='待启动' or TaskStatus='已启动' or TaskStatus='待执行' or TaskStatus='执行中' "); DataTable dt = (this.dataGridView1.DataSource as DataTable).Clone(); foreach (CtlDBAccess.Model.MainControlTaskModel mainTask in mainTaskList) { DataRow dr = dt.Rows.Add(); dr["管理任务ID"] = mainTask.WMSTaskID; dr["任务类型"] = mainTask.TaskType; dr["任务状态"] = mainTask.TaskStatus; dr["托盘码"] = mainTask.PalletCode; dr["起始设备号"] = mainTask.StDevice; dr["起始设备类型"] = mainTask.StDeviceCata; dr["目标设备类型"] = mainTask.EndDeviceCata; dr["起始设备参数"] = mainTask.StDeviceParam; dr["目标设备号"] = mainTask.EndDevice; dr["任务创建时间"] = mainTask.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"); dr["目标设备参数"] = mainTask.EndDeviceParam; dr["备注"] = ""; } this.dataGridView1.DataSource = dt; }
private void WcsMainTaskCommit() { DataTable dt = this.dataGridView1.DataSource as DataTable; CtlDBAccess.BLL.MainControlTaskBll mainCtlTaskBll = new CtlDBAccess.BLL.MainControlTaskBll(); foreach (DataRow dr in dt.Rows) { if (mainCtlTaskBll.Exists(dr["管理任务ID"].ToString())) { continue; } CtlDBAccess.Model.MainControlTaskModel mainCtlTask = new CtlDBAccess.Model.MainControlTaskModel(); mainCtlTask.WMSTaskID = dr["管理任务ID"].ToString(); mainCtlTask.MainTaskID = dr["管理任务ID"].ToString(); mainCtlTask.FlowPathKey = dr["起始设备号"].ToString() + "-" + dr["目标设备号"].ToString(); mainCtlTask.PalletCode = dr["托盘码"].ToString(); mainCtlTask.TaskStatus = "待启动"; //if(wmsTask.Type == "下架") //{ // mainCtlTask.TaskType = "产品出库"; //} //else if(wmsTask.Type=="上架") //{ // mainCtlTask.TaskType = "产品入库"; //} //else //{ // mainCtlTask.TaskType = wmsTask.Type; //} mainCtlTask.TaskType = dr["任务类型"].ToString(); mainCtlTask.StDevice = dr["起始设备号"].ToString(); mainCtlTask.StDeviceCata = dr["起始设备类型"].ToString();// mainCtlTask.EndDevice = dr["目标设备号"].ToString(); mainCtlTask.EndDeviceCata = dr["目标设备类型"].ToString(); if (mainCtlTask.StDeviceCata == "货位") { mainCtlTask.StDeviceParam = dr["起始设备参数"].ToString(); } if (mainCtlTask.EndDeviceCata == "货位") { mainCtlTask.EndDeviceParam = dr["目标设备参数"].ToString(); } mainCtlTask.CreateTime = System.DateTime.Now; mainCtlTask.CreateMode = "自动"; mainCtlTaskBll.Add(mainCtlTask); } }
private void OnDelMaintask() { if (this.parentPNP.RoleID > 2) { MessageBox.Show("没有管理员权限"); return; } int re = PoupAskmes("是否确定要删除?"); if (re != 1) { return; } CtlDBAccess.BLL.MainControlTaskBll mainTaskBll = new CtlDBAccess.BLL.MainControlTaskBll(); foreach (DataGridViewRow rw in this.dataGridView1.SelectedRows) { string mainTaskID = rw.Cells["管理任务ID"].Value.ToString(); CtlDBAccess.Model.MainControlTaskModel mainTask = mainTaskBll.GetModel(mainTaskID); if (mainTask == null) { continue; } if (mainTask.TaskStatus == "执行中") { if (parentPNP.RoleID == 1) { mainTaskBll.Delete(mainTaskID); } } else { mainTaskBll.Delete(mainTaskID); } } OnRefreshWMSDt(); }
public override bool WCSMainTaskStart(CtlDBAccess.Model.MainControlTaskModel mainTask, WCSFlowPathModel wcsPath, ref string reStr) { if (!base.WCSMainTaskStart(mainTask, wcsPath, ref reStr)) { return(false); } WCSPathNodeModel wcsNode = wcsPath.GetNodeByID(nodeID); WCSPathNodeModel wcsNodeNext = wcsPath.GetNodeByID(wcsNode.NextNodeID); CtlDBAccess.Model.ControlTaskModel ctlTask = null; ctlTask = new CtlDBAccess.Model.ControlTaskModel(); ctlTask.TaskID = System.Guid.NewGuid().ToString(); ctlTask.StDevice = nodeID; ctlTask.StDeviceCata = devCata; ctlTask.StDeviceParam = mainTask.StDeviceParam; ctlTask.EndDevice = wcsNode.NextNodeID; ctlTask.EndDeviceCata = wcsNodeNext.DevCata; ctlTask.EndDeviceParam = mainTask.EndDeviceParam; ctlTask.MainTaskID = mainTask.MainTaskID; ctlTask.PalletCode = mainTask.PalletCode; UInt16 controlID = ctlTaskBll.GetUnusedControlID(); if (controlID < 1) { reStr = "没有可用的控制任务ID"; return(false); } ctlTask.ControlID = controlID; ctlTask.TaskIndex = 1; ctlTask.TaskParam = ""; ctlTask.TaskStatus = "待执行"; ctlTask.TaskPhase = 0; ctlTask.CreateTime = System.DateTime.Now; ctlTask.CreateMode = "自动"; if (wcsNodeNext.DevCata == "库房") { ctlTask.DeviceID = wcsNodeNext.NodeID; ctlTask.DeviceCata = "堆垛机"; ctlTask.TaskType = (int)SysCfg.EnumAsrsTaskType.产品入库; } else if (wcsNodeNext.DevCata == "RGV") { ctlTask.DeviceID = wcsNodeNext.NodeID; ctlTask.DeviceCata = wcsNodeNext.DevCata; ctlTask.TaskType = (int)SysCfg.EnumAsrsTaskType.RGV上下料; } else { ctlTask.DeviceID = nodeID; ctlTask.DeviceCata = devCata; ctlTask.TaskType = (int)SysCfg.EnumAsrsTaskType.输送机送出; } if (ctlTask == null) { return(false); } bool re = ctlTaskBll.Add(ctlTask); // return re; if (re) { mainTask.TaskStatus = "已启动"; CtlDBAccess.BLL.MainControlTaskBll mainTaskBll = new CtlDBAccess.BLL.MainControlTaskBll(); return(mainTaskBll.Update(mainTask)); } else { return(false); } }
private bool ExeSndTaskBusiness(ref string reStr) { try { switch (this.currentTaskPhase) { case 1: { this.currentTaskDescribe = "等待有板信号"; this.rfidUID = ""; this.db1ValsToSnd[5] = 0; this.db1ValsToSnd[6] = 1; this.db1ValsToSnd[7] = 0; this.db1ValsToSnd[8] = 0; this.db1ValsToSnd[9] = 0; if (this.db2Vals[0] != 2) { break; } if (SysCfg.SysCfgModel.SimMode) { this.rfidUID = this.SimRfidUID; logRecorder.AddDebugLog(this.nodeName, "读到托盘号:" + this.rfidUID); } else { if (this.barcodeRW != null && barcodeCheck) { this.rfidUID = this.barcodeRW.ReadBarcode().Trim(); //this.barcodeRW.Trim(); if (string.IsNullOrWhiteSpace(this.rfidUID)) { break; } logRecorder.AddDebugLog(this.nodeName, "读到托盘号:" + this.rfidUID); } } this.currentTaskPhase++; break; } case 2: { this.currentTask = null; currentTaskDescribe = "等待检索待执行任务"; List <CtlDBAccess.Model.ControlTaskModel> taskList = ctlTaskBll.GetTaskToRunList((int)SysCfg.EnumAsrsTaskType.输送机送出, "待执行", this.nodeID); // CtlDBAccess.Model.ControlTaskModel taskToRun = null; foreach (CtlDBAccess.Model.ControlTaskModel task in taskList) { if (0 != dlgtPathLockcheck(this, task, ref reStr)) { continue; } if (barcodeCheck) { if (task.PalletCode == this.rfidUID) { this.currentTask = task; break; } } else { this.currentTask = task; break; } } if (this.currentTask == null) { this.currentTaskDescribe = string.Format("没有匹配托盘{0}的任务", this.rfidUID); if (this.barcodeRW != null && barcodeCheck) { if (SysCfg.SysCfgModel.SimMode) { this.rfidUID = this.SimRfidUID; } else { this.rfidUID = this.barcodeRW.ReadBarcode().Trim(); //this.barcodeRW.Trim(); } if (string.IsNullOrWhiteSpace(this.rfidUID)) { break; } } break; } if (this.currentTask.TaskIndex == 1) { CtlDBAccess.BLL.MainControlTaskBll mainTaskBll = new CtlDBAccess.BLL.MainControlTaskBll(); CtlDBAccess.Model.MainControlTaskModel mainTask = mainTaskBll.GetModel(this.currentTask.MainTaskID); if (dlgtHeightChecked != null) { if (!dlgtHeightChecked(mainTask, db2Vals[2], ref reStr)) { string strHeightExceed = string.Format("货物{0}超高,与{1}目标货位{2}冲突", this.rfidUID, mainTask.EndDevice, mainTask.EndDeviceParam); if (this.db1ValsToSnd[0] != 3) { logRecorder.AddDebugLog(nodeName, strHeightExceed); } this.currentTaskDescribe = strHeightExceed; this.db1ValsToSnd[0] = 3; break; } } if (mainTask != null) { mainTask.TaskStatus = "执行中"; mainTaskBll.Update(mainTask); } } //发送任务参数 this.db1ValsToSnd[6] = 1; this.db1ValsToSnd[7] = 21; this.db1ValsToSnd[8] = (short)this.currentTask.ControlID; this.db1ValsToSnd[9] = short.Parse(this.currentTask.EndDevice); if (!string.IsNullOrWhiteSpace(this.rfidUID)) { logRecorder.AddDebugLog(this.nodeName, "读到托盘号:" + this.rfidUID); } logRecorder.AddDebugLog(nodeName, string.Format("控制ID{0}执行到第2步,发送参数,等待PLC读数据完成", this.currentTask.ControlID)); this.currentTaskPhase++; break; } case 3: { this.db1ValsToSnd[5] = 1; //写入数据 this.currentTask.TaskStatus = "执行中"; ctlTaskBll.Update(currentTask); //等待PLC 读数据完成 this.currentTaskDescribe = "等待输送机读数据完成"; if (this.db2Vals[5] != 2) { break; } this.db1ValsToSnd[5] = 2; this.db1ValsToSnd[7] = 0; this.db1ValsToSnd[8] = 0; this.db1ValsToSnd[9] = 0; logRecorder.AddDebugLog(nodeName, string.Format("控制ID{0}任务执行到第3步,参数复位", this.currentTask.ControlID)); this.currentTaskPhase++; ctlTaskBll.Update(currentTask); break; } case 4: { this.currentTaskDescribe = "输送任务发送完毕"; currentTask = null; break; } default: { break; } } return(true); } catch (Exception ex) { reStr = ex.ToString(); return(false); } }