| | |
| | | AGV(mod); // AGV调度 |
| | | break; |
| | | case PLCTypeEnum.ShuttleCar: //穿梭车 |
| | | //if (mod.PlcIdIP == "10.26.254.28") |
| | | //{ |
| | | // break; |
| | | //} |
| | | if (mod.PlcIdIP == "10.26.254.28") |
| | | { |
| | | break; |
| | | } |
| | | ShuttleCar(mod); |
| | | break; |
| | | case PLCTypeEnum.RobotPalletizer: |
| | |
| | | var (resultTaskStatus2, valueTaskStatus2) = plcConn.GetDBValue(modPosTaskStatus.PosType, modPosTaskStatus.PlcPos); |
| | | if (resultCar.IsSucceed && valueCar == 1 && resultTaskStatus2.IsSucceed && (valueTaskStatus2 == 0 || valueTaskStatus2 == 1)) |
| | | { |
| | | var carnew = _db.Queryable<WcsCarTasks>().Where(m => m.IsDelete == false && m.TaskNo == modTask.TaskNo && m.CarNo == modDevice.PlcIdIP && m.Status == TaskStatusEnum.Doing).OrderBy(m => m.CreateTime).First(); |
| | | |
| | | if (carnew == null) |
| | | { |
| | | //先复位 |
| | | var modRest = modDevice.listStation.FirstOrDefault(s => s.Text == "复位"); |
| | | plcConn.SetDBValue(modRest.PosType, modRest.PlcPos, "1"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return; |
| | |
| | | var modConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == ip); |
| | | var modDevice = PLCTaskAction.plcDevices.First(s => s.StationNum == devStation); |
| | | var (plcResult, palletVal) = modConn.GetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.PlcPos); |
| | | if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720) |
| | | { |
| | | continue;//放货工位没有读取成功或不是空闲 |
| | | } |
| | | //if (!plcResult.IsSucceed || Convert.ToInt32(palletVal) != 720) |
| | | //{ |
| | | // continue;//放货工位没有读取成功或不是空闲 |
| | | //} |
| | | |
| | | var gongwei = carcon.conveyorRuKu[endLocate]; |
| | | //判断任务 |