zy-asrs-flow/src/pages/device/lift/index.jsx
@@ -13,8 +13,11 @@ const [ws, setWs] = useState(null); const [openOpera, setOpenOpera] = useState(false); const [currentData, setCurrentData] = useState(null); const [moveLocType, setMoveLocType] = useState(1); const [mapLev, setMapLev] = useState([]); const [targetLoc, setTargetLoc] = useState(1); const [originLoc, setOriginLoc] = useState(null); const [originSite, setOriginSite] = useState(null); const [targetSite, setTargetSite] = useState(null); useEffect(() => { connect(); @@ -91,7 +94,6 @@ const showOpera = (data) => { setOpenOpera(true); console.log(data); setCurrentData(data); }; @@ -123,8 +125,20 @@ } } const targetLocChange = (e) => { setTargetLoc(e.target.value) const targetLocChange = (value) => { setTargetLoc(value) } const originLocChange = (e) => { setOriginLoc(e.target.value) } const targetSiteChange = (e) => { setTargetSite(e.target.value) } const originSiteChange = (e) => { setOriginSite(e.target.value) } const liftOperator = async (type) => { @@ -132,8 +146,10 @@ const resp = await Http.doPost('api/basLift/operator/lift', { liftNo: currentData.liftNo, liftTaskMode: type, sourceStaNo: 0, staNo: moveLocType sourceStaNo: originSite, staNo: targetSite, sourceLev: originLoc, targetLev: targetLoc, }); if (resp.code === 200) { message.success("请求成功"); @@ -146,10 +162,6 @@ message.warning("请求失败"); return false; } } const moveLocTypeChange = (e) => { setMoveLocType(e) } let codeContent = (<PageContainer @@ -247,12 +259,23 @@ <p> <Select defaultValue="1" onChange={moveLocTypeChange} onChange={targetLocChange} style={{ width: 120 }} options={mapLev} /> <span><Button onClick={() => liftOperator('move')}>移动</Button></span> <span><Button onClick={() => liftOperator('move')}>升降</Button></span> </p> <p> <Input addonBefore="起始位置" onChange={originSiteChange} /> </p> <p> <Input addonBefore="目标位置" onChange={targetSiteChange} /> </p> <p> </p> <div className="commandItem"> <Button onClick={() => liftOperator('movePallet')}>托盘出入</Button> </div> </Card> </div> @@ -261,6 +284,12 @@ <div className="commandItem"> <Button onClick={() => liftOperator('reset')}>复位</Button> </div> <div className="commandItem"> <Button onClick={() => liftOperator('lock')}>锁定</Button> </div> <div className="commandItem"> <Button onClick={() => liftOperator('unlock')}>解锁</Button> </div> </Card> </div> </Drawer> zy-asrs-flow/src/pages/device/shuttle/index.jsx
@@ -325,8 +325,6 @@ </p> <p> </p> <p> </p> <div className="commandItem"> <Button onClick={() => shuttleOperator('moveLoc')}>移动到目标位置</Button> <Button onClick={() => shuttleOperator('takeMove')}>取放货作业</Button> zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/LiftAction.java
@@ -122,10 +122,10 @@ //复位 command.setComplete(true); } else if (command.getMode() == LiftCommandModeType.LOCK.id) { //复位 //锁定 command.setComplete(true); } else if (command.getMode() == LiftCommandModeType.UNLOCK.id) { //复位 //解锁 command.setComplete(true); } zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasLiftController.java
@@ -185,14 +185,14 @@ task.setTaskSts(TaskStsType.NEW_MANUAL.sts); task.setTaskCtg(taskCtg.getId()); task.setPriority(10); task.setOriginSite(null); task.setOriginLoc(param.getSourceStaNo()); task.setDestSite(param.getLiftTaskMode()); task.setDestLoc(param.getStaNo()); task.setOriginSite(param.getSourceStaNo()); task.setOriginLoc(param.getSourceLev()); task.setDestSite(param.getStaNo()); task.setDestLoc(param.getTargetLev()); task.setIoTime(new Date()); task.setStartTime(new Date()); task.setStatus(1); task.setMemo("manual"); task.setMemo(param.getLiftTaskMode()); task.setLiftNo(liftNo); boolean result = taskService.save(task); if (!result) { zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/BasShuttleController.java
@@ -186,12 +186,12 @@ task.setPriority(10); task.setOriginSite(null); task.setOriginLoc(sourceLoc); task.setDestSite(targetSite); task.setDestSite(null); task.setDestLoc(targetLoc); task.setIoTime(new Date()); task.setStartTime(new Date()); task.setStatus(1); task.setMemo("manual"); task.setMemo(targetSite); task.setShuttleNo(param.getShuttleNo()); if (param.getShuttleTaskMode().equals("takeMove")) { zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -113,39 +113,39 @@ destSite = String.valueOf(path.getDeviceStn()); } //判断出入库模式 BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() .eq(BasConveyorSta::getSiteNo, destSite)); if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) { //不是入库模式,检测是否可切换入库 //获取出库任务类型 TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) .eq(TaskCtg::getStatus, 1)); if (taskInCtg == null) { return R.error("任务类型异常"); } List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getTaskCtg, taskInCtg.getId())); if (!tasks.isEmpty()) { return R.error("当前存在出库任务,无法切换入库模式"); } BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); if(basConveyor == null) { return R.error("输送线不存在"); } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); if(devpThread == null) { return R.error("输送线线程不存在"); } boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id); if (!result) { return R.error("模式切换失败"); } } // //判断出入库模式 // BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() // .eq(BasConveyorSta::getSiteNo, destSite)); // if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) { // //不是入库模式,检测是否可切换入库 // //获取出库任务类型 // TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() // .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) // .eq(TaskCtg::getStatus, 1)); // if (taskInCtg == null) { // return R.error("任务类型异常"); // } // List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() // .eq(Task::getTaskCtg, taskInCtg.getId())); // if (!tasks.isEmpty()) { // return R.error("当前存在出库任务,无法切换入库模式"); // } // // BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); // if(basConveyor == null) { // return R.error("输送线不存在"); // } // // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); // if(devpThread == null) { // return R.error("输送线线程不存在"); // } // // boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id); // if (!result) { // return R.error("模式切换失败"); // } // } //优先级 Integer priority = 10; @@ -249,39 +249,39 @@ originSite = String.valueOf(originStaDto.getStaNo()); } //判断出入库模式 BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() .eq(BasConveyorSta::getSiteNo, originSite)); if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) { //不是出库模式,检测是否可切换出库 //获取入库任务类型 TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) .eq(TaskCtg::getStatus, 1)); if (taskInCtg == null) { return R.error("任务类型异常"); } List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getTaskCtg, taskInCtg.getId())); if (!tasks.isEmpty()) { return R.error("当前存在入库任务,无法切换出库模式"); } BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); if(basConveyor == null) { return R.error("输送线不存在"); } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); if(devpThread == null) { return R.error("输送线线程不存在"); } boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id); if (!result) { return R.error("模式切换失败"); } } // //判断出入库模式 // BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() // .eq(BasConveyorSta::getSiteNo, originSite)); // if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) { // //不是出库模式,检测是否可切换出库 // //获取入库任务类型 // TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() // .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) // .eq(TaskCtg::getStatus, 1)); // if (taskInCtg == null) { // return R.error("任务类型异常"); // } // List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() // .eq(Task::getTaskCtg, taskInCtg.getId())); // if (!tasks.isEmpty()) { // return R.error("当前存在入库任务,无法切换出库模式"); // } // // BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); // if(basConveyor == null) { // return R.error("输送线不存在"); // } // // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); // if(devpThread == null) { // return R.error("输送线线程不存在"); // } // // boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id); // if (!result) { // return R.error("模式切换失败"); // } // } //优先级 Integer priority = 10; zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/LiftOperatorParam.java
@@ -17,4 +17,10 @@ //目标站 private String staNo; //源层 private String sourceLev; //目标层 private String targetLev; } zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java
@@ -67,12 +67,6 @@ /** * 入库 * 一、入库目标层有穿梭车 * 1.提升机升降到源层 * 2.货物从输送线到提升机 * 3.提升机载货移动(非必需) * 4.穿梭车走行至提升机 * 5.穿梭车入库至目标库位 */ if (task.getTaskSts() == TaskStsType.NEW_INBOUND.sts) { // locNo @@ -151,13 +145,13 @@ motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//索牌项目5层是输送线层 dto.setStaNo(1);//提升机左侧 dto.setLev(1);//光泰1层是输送线层 dto.setStaNo(31004);//入库站点 })) , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); dto.setStaNo(0);//提升机内侧 dto.setStaNo(Integer.parseInt(task.getDestSite())); dto.setSync(0);//异步执行 })) )); @@ -175,28 +169,6 @@ MotionCtgType.SHUTTLE_MOVE )); // 锁定提升机 motionList.addAll(kernelService.liftLock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); })) )); // 穿梭车待机位至提升机 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoTo); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoTo); })), MotionCtgType.SHUTTLE_MOVE_TO_LIFT )); // 穿梭车入库顶升 motionList.addAll(kernelService.shuttleAction( null, @@ -204,29 +176,6 @@ dto.setShuttleNo(shuttleDevice.getId().intValue()); })), MotionCtgType.SHUTTLE_PALLET_LIFT )); // 穿梭车入库移动至提升机待机位 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoFrom); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE_FROM_LIFT )); // 解锁提升机 motionList.addAll(kernelService.liftUnlock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setReleaseLift(1);//执行完成后释放提升机 })) )); // 穿梭车走行至目标库位 @@ -254,14 +203,22 @@ /** * 二、入库目标层没有穿梭车 * 1.提升机升降到穿梭车层 * 2.穿梭车走行至提升机待机位 * 3.提升机搬运穿梭车至目标层 * 4.货物从输送线到提升机 * 5.提升机载车与货移动(非必需) * 6.穿梭车入库至目标库位 */ } else { // 提升机载货移动 motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(1);//光泰1层是输送线层 dto.setStaNo(31004);//入库站点 })) , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); dto.setStaNo(Integer.parseInt(task.getDestSite())); })) )); // 穿梭车走行至提升机库位待机位 motionList.addAll(kernelService.shuttleMove( @@ -316,17 +273,15 @@ })) )); // 提升机载货移动 motionList.addAll(kernelService.liftMoveGoods( // 提升机搬车 至 目标位置层 motionList.addAll(kernelService.liftMoveShuttle( MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//索牌项目5层是输送线层 dto.setStaNo(1);//提升机左侧 })) , MotionDto.build((dto -> { dto.setLev(Utils.getLev(shuttleLocNo)); })), MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); dto.setStaNo(0);//提升机内侧 dto.setLev(Utils.getLev(destLoc)); })) )); @@ -338,15 +293,6 @@ })) )); // 穿梭车入库顶升 motionList.addAll(kernelService.shuttleAction( null, MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); })), MotionCtgType.SHUTTLE_PALLET_LIFT )); // 更新小车坐标 motionList.addAll(kernelService.shuttleUpdateLocation( null @@ -356,7 +302,7 @@ })) )); // 穿梭车入库移动至提升机待机位 // 穿梭车移动至提升机待机位 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); @@ -377,6 +323,15 @@ dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setReleaseLift(1);//执行完成后释放提升机 })) )); // 穿梭车入库顶升 motionList.addAll(kernelService.shuttleAction( null, MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); })), MotionCtgType.SHUTTLE_PALLET_LIFT )); // 穿梭车走行至目标库位 @@ -500,13 +455,6 @@ /** * 出库 * 一、出库起始层有穿梭车 * 1.穿梭车走行至出库库位 * 2.提升机到出库起始层 * 3.穿梭车出库至提升机 * 4.穿梭车离开提升机 * 5.提升机载货移动(非必需) * 6.输送线运输至出库口 */ if (Utils.getLev(shuttleLocNo) == Utils.getLev(originLoc)) { @@ -549,37 +497,6 @@ MotionCtgType.SHUTTLE_MOVE )); // 提升机空载移动到穿梭车层 motionList.addAll(kernelService.liftMove( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(shuttleLocNo)); })) )); // 锁定提升机 motionList.addAll(kernelService.liftLock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); })) )); // 穿梭车待机位至提升机 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoTo); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoTo); })), MotionCtgType.SHUTTLE_MOVE_TO_LIFT )); // 穿梭车出库托盘下降 motionList.addAll(kernelService.shuttleAction( null, @@ -589,39 +506,17 @@ MotionCtgType.SHUTTLE_PALLET_DOWN )); // 穿梭车离开提升机 - 到提升机待机位 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoFrom); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE_FROM_LIFT )); // 解锁提升机 motionList.addAll(kernelService.liftUnlock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); })) )); // 提升机载货移动 motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getOriginLoc())); dto.setStaNo(0);//提升机内侧 dto.setStaNo(Integer.parseInt(task.getOriginSite()));//起始站点 })) , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//索牌项目5层是输送线层 dto.setStaNo(1);//提升机左侧 dto.setLev(1);//光泰1层是输送线层 dto.setStaNo(31004);//出库站点 dto.setSync(0);//异步执行 dto.setReleaseLift(1);//执行完成后释放提升机 })) @@ -655,16 +550,6 @@ /** * 二、出库起始层没有穿梭车 * * 1.提升机到穿梭车层 * 2.穿梭车走行至提升机 * 3.提升机载车至出库起始层 * 4.穿梭车走行至出库库位 * 5.穿梭车出库至提升机 * 6.穿梭车离开提升机 * 7.提升机载货移动(非必需) * 8.输送线运输至出库口 * */ } else { @@ -810,37 +695,6 @@ MotionCtgType.SHUTTLE_MOVE )); // 提升机空载移动到目标层 motionList.addAll(kernelService.liftMove( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(originLoc)); })) )); // 锁定提升机 motionList.addAll(kernelService.liftLock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); })) )); // 穿梭车待机位至提升机 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoFrom); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE_TO_LIFT )); // 穿梭车出库托盘下降 motionList.addAll(kernelService.shuttleAction( null, @@ -850,40 +704,19 @@ MotionCtgType.SHUTTLE_PALLET_DOWN )); // 穿梭车离开提升机 - 到提升机待机位 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(liftLocNoFrom); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(standbyLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE_FROM_LIFT )); // 解锁提升机 motionList.addAll(kernelService.liftUnlock( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); })) )); // 提升机载货移动 motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getOriginLoc())); dto.setStaNo(0);//提升机内侧 dto.setStaNo(Integer.parseInt(task.getOriginSite()));//起始站点 })) , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//索牌项目5层是输送线层 dto.setStaNo(1);//提升机左侧 dto.setLev(1);//光泰1层是输送线层 dto.setStaNo(31004);//出库站点 dto.setSync(0);//异步执行 dto.setReleaseLift(1);//执行完成后释放提升机 })) )); @@ -1324,14 +1157,6 @@ MotionCtgType.SHUTTLE_MOVE_TO_LIFT )); // 向提升机发送小车已到位信号 motionList.addAll(kernelService.liftShuttleArrival( null , MotionDto.build((dto -> { dto.setLiftNo(liftDevice.getId().intValue()); })) )); // 解锁提升机 motionList.addAll(kernelService.liftUnlock( null @@ -1420,7 +1245,7 @@ String sourceLoc = task.getOriginLoc();//源库位 String targetLoc = task.getDestLoc();//任务目标(借用字段) String targetSite = task.getDestSite();//任务类型(借用字段) String targetSite = task.getMemo();//任务类型(借用字段) Device device = deviceService.getOne(new LambdaQueryWrapper<Device>() .eq(Device::getDeviceNo, task.getShuttleNo()) @@ -1564,7 +1389,8 @@ return motionList; } if (task.getDestSite().equals("move")) { String destSite = task.getMemo();//任务目标(借用字段) if (destSite.equals("move")) { //提升机升降楼层 // 提升机空载移动到穿梭车层 @@ -1576,23 +1402,39 @@ })) )); } else if (task.getDestSite().equals("movePallet")) { } else if (destSite.equals("movePallet")) { //移动托盘 // 提升机移动托盘 motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { dto.setLiftNo(device.getId().intValue()); dto.setLev(Integer.parseInt(task.getOriginLoc())); dto.setLev(0); dto.setStaNo(Integer.parseInt(task.getOriginSite())); })) , MotionDto.build((dto -> { dto.setLiftNo(device.getId().intValue()); dto.setLev(Integer.parseInt(task.getDestLoc())); dto.setLev(0); dto.setStaNo(Integer.parseInt(task.getDestSite())); })) )); } else if (destSite.equals("lock")) { // 锁定提升机 motionList.addAll(kernelService.liftLock( null , MotionDto.build((dto -> { dto.setLiftNo(device.getId().intValue()); })) )); } else if (destSite.equals("unlock")) { // 解锁提升机 motionList.addAll(kernelService.liftUnlock( null , MotionDto.build((dto -> { dto.setLiftNo(device.getId().intValue()); })) )); } return motionList; zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtDevpThread.java
@@ -65,7 +65,7 @@ this.device = device; this.redisUtil = redisUtil; workModeTypes.put(101, new WorkModeTypeDto(101, WorkModeType.NONE, "DB1001.120")); // workModeTypes.put(101, new WorkModeTypeDto(101, WorkModeType.NONE, "DB1001.120")); } private ArrayList<BasConveyorSta> getStaNo() { @@ -139,7 +139,7 @@ } } OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.160", (short) 8); OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 8); if (resultBarcode.IsSuccess) { //条码数据 String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,8, "UTF-8");// 条码 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/JxgtLiftThread.java
@@ -114,8 +114,8 @@ liftProtocol.setHasCar(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6) == 1); //当前楼层 liftProtocol.setLev((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8)); //工作号 liftProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt32(result1.Content, 12)); // //工作号 // liftProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt32(result1.Content, 12)); //设备故障 liftProtocol.setError(siemensS7Net.getByteTransform().TransInt16(result1.Content, 16) == 1); //故障码 @@ -212,22 +212,23 @@ return false; } List<Short> shorts = JSON.parseArray(command.getBody(), Short.class); short[] array = new short[shorts.size()];//获取命令报文 for (int i = 0; i < shorts.size(); i++) { array[i] = shorts.get(i); List<Integer> list = JSON.parseArray(command.getBody(), Integer.class); int[] array = new int[list.size()];//获取命令报文 for (int i = 0; i < list.size(); i++) { array[i] = list.get(i); } OperateResult result = null; if (command.getMode() == LiftCommandModeType.MOVE.id) { //移动 result = siemensS7Net.Write("DB101.2", array); result = siemensS7Net.Write("DB101.2", (short) array[0]); result = siemensS7Net.Write("DB101.4", (int) array[1]); } else if (command.getMode() == LiftCommandModeType.PALLET_INOUT.id) { //托盘出入 result = siemensS7Net.Write("DB101.8", array); } else if (command.getMode() == LiftCommandModeType.LOCK.id || command.getMode() == LiftCommandModeType.UNLOCK.id) { //提升机锁定/解锁 result = siemensS7Net.Write("DB101.0", array); result = siemensS7Net.Write("DB101.0", (short) array[0]); } if (result != null && result.IsSuccess) { @@ -244,12 +245,12 @@ @Override public boolean lock(LiftCommand command) { return true; return write(command); } @Override public boolean unlock(LiftCommand command) { return true; return write(command); } @Override @@ -319,10 +320,8 @@ @Override public boolean isLock(ExecuteSupport support) { if (support != null) { return support.judgement(); } return true; InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend(); return extend.getLock(); } @Override @@ -353,7 +352,7 @@ @Override public List<LiftCommand> getPalletInOutCommand(Integer taskNo, Integer sourceLev, Integer targetLev, Integer originSta, Integer targetSta, LiftCommandModeType mode) { // 开始任务 short[] array = new short[2]; short[] array = new short[3]; array[0] = originSta.shortValue();//起始站 array[1] = targetSta.shortValue();//目标站 array[2] = taskNo.shortValue();//工作号 @@ -381,7 +380,7 @@ command.setLiftNo(Integer.valueOf(this.device.getDeviceNo())); command.setTaskNo(taskNo); command.setBody(JSON.toJSONString(array)); command.setMode(LiftCommandModeType.PALLET_INOUT.id); command.setMode(lock ? LiftCommandModeType.LOCK.id : LiftCommandModeType.UNLOCK.id); ArrayList<LiftCommand> list = new ArrayList<>(); list.add(command); zy-asrs-wcs/src/main/resources/application.yml
@@ -18,7 +18,7 @@ # url: jdbc:mysql://47.97.1.152:3306/asrs?useUnicode=trKue&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai # username: root # password: zy@123 url: jdbc:mysql://127.0.0.1:3306/asrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai url: jdbc:mysql://127.0.0.1:3306/jxgtasrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: root # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver