| | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | break; |
| | | #region 小车可放信号 |
| | | case "150": |
| | | { // 获取工位任务号信息 |
| | | var strMsg = ""; |
| | | var http = new HttpService(); |
| | | // 获取托盘任务号 |
| | | var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "任务号"); |
| | | var (res1, val) = plcConn.GetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos); |
| | | if (res1.IsSucceed) |
| | | { |
| | | string tasknoVal = val.ToString(); |
| | | var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false); |
| | | if (modTask == null) |
| | | { |
| | | //读取成功后写入151 |
| | | var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "151");//收到可放信号后写入151 |
| | | if (ret.IsSucceed) |
| | | { |
| | | //回传WMS可放信号 |
| | | strMsg = http.RequesContinueAgv(val.ToString(), modDevice.StationNum); |
| | | if (!strMsg.Contains("-1")) |
| | | { |
| | | // 插入任务明细 |
| | | var modInsertTaskMonitor = new WcsTaskMonitor() |
| | | { |
| | | PlcId = modDevice.Id, |
| | | PlcName = modDevice.Text, |
| | | InteractiveMsg = $"写入指令151:{modDevice.StationNum}工位可接受AGV放货入库", |
| | | Status = TaskStatusEnum.Complete, |
| | | StartLocat = modDevice.StationNum |
| | | }; |
| | | // 插入交互日志 |
| | | _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | // |
| | | |
| | | } |
| | | break; |
| | | #endregion |
| | | |
| | | default: break; |
| | | } |
| | |
| | | // 通道号 |
| | | var modPosTask = modDevice.listStation.FirstOrDefault(s => s.Text == "通道号"); |
| | | |
| | | // 演示模式直接写入1分道 |
| | | var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, "1"); |
| | | // 演示模式直接写入分道号 |
| | | Random random = new Random(); |
| | | int ranNumber = random.Next(2) == 0 ? 1 : 5; |
| | | var ret = plcConn.SetPlcDBValue(modPosTask.PosType, modDevice.DbNumber, modPosTask.PlcPos, ranNumber.ToString()); |
| | | if (ret.IsSucceed) |
| | | { |
| | | Log.Information(string.Format("分道成功,道号是:" + ranNumber)); |
| | | // 写入流程控制字 2 |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (!retVal.IsSucceed) |