| | |
| | | int valueTaskStr = Convert.ToInt32(valueTask); |
| | | //获取任务信息 根据 任务号、小车编号 |
| | | var carTask = _db.Queryable<WcsCarTasks>().First(m=>m.IsDelete == false && m.Status == TaskStatusEnum.Doing && m.CarTaskNo == valueTaskStr && m.CarNo == modDevice.PlcIdIP); |
| | | if (carTask == null) |
| | | if (carTask != null) |
| | | { |
| | | //var modRests = modDevice.listStation.FirstOrDefault(s => s.Text == "复位"); |
| | | //plcConn.SetDBValue(modRests.PosType, modRests.PlcPos, "1");//没有找到任务 复位 |
| | | return; |
| | | } |
| | | |
| | | var modFinshTask = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Doing && s.Type == PLCTypeEnum.ShuttleCar && s.TaskNo == carTask.TaskNo); |
| | | if (modFinshTask == null) |
| | |
| | | HubUtil.PublicTask(modFinshTask.Adapt<WcsTaskOutput>()); |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | WcsTask modTask; |
| | |
| | | var modStationZ = modDevice.listStation.FirstOrDefault(s => s.Text == "四向车位置(Z)"); |
| | | var (resultz, valuez) = plcConn.GetDBValue(modStationZ.PosType, modStationZ.PlcPos); |
| | | var carXYZ = valuex.ToString().PadLeft(2, '0') + valuey.ToString().PadLeft(2, '0') + valuez.ToString().PadLeft(2, '0'); |
| | | if (modTask == null || carTaskNext == null) |
| | | if (modTask == null) |
| | | { |
| | | //读取小车电量 |
| | | var modPosCarDl = modDevice.listStation.FirstOrDefault(s => s.Text == "电池电量"); |
| | | var (resultDl, valueDl) = plcConn.GetDBValue(modPosCarDl.PosType, modPosCarDl.PlcPos); |
| | | if (resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl) |
| | | if (resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl) |
| | | { |
| | | var endLocateCar = ""; |
| | | if (valuez == 1) |
| | |
| | | _db.Insertable(modCarTask).ExecuteCommand(); |
| | | HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>()); |
| | | } |
| | | else if(resultDl.IsSucceed && valueDl < FourWayCarDLEnum.Dl2) |
| | | else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2) |
| | | { |
| | | //判断小车是否有空闲时间记录 没有:添加 有:判断当前时间与记录时间是否满足5分钟 满足:添加让小车去充电任务 |
| | | var carTime = _db.Queryable<WcsCarTime>().First(m => m.IsDelete == false && m.CarIp == modDevice.PlcIdIP); |
| | |
| | | |
| | | return; |
| | | } |
| | | |
| | | if (carTaskNext == null) |
| | | { |
| | | return; |
| | | } |
| | | if (carTaskNext.Status == TaskStatusEnum.Doing) |
| | | { |
| | | Thread.Sleep(3000); |