From 65fcc14b336fca3fea921f160780cb52e0af2ff2 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期四, 01 八月 2024 12:26:06 +0800 Subject: [PATCH] 大理片笼出片任务:1、提供一次生成一车玻璃。 2、一次生成一炉玻璃 下片模块:流程卡判断为空异常fixbug --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 64 +++++++++++++++++++++++++++++++ 1 files changed, 63 insertions(+), 1 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java index e060877..dba789f 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java @@ -244,7 +244,7 @@ log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime()); } - @Scheduled(fixedDelay = 2000) + @Scheduled(fixedDelay = 300) public void plcToHomeEdgOutTask() { Date startDate = new Date(); log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate); @@ -704,11 +704,73 @@ } } + /** + * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠� + * + * @param list + * @param isTempering + * @param mesToPLCAddress + * @param <T> + * @return + */ private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) { //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); //鎵撹溅鍓╀綑灏哄 Integer remainWidth = carWidth; + int maxX = 0; + for (T e : list) { + if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) { + break; + } + remainWidth = remainWidth - (int) e.getWidth() - glassGap; + if (isTempering) { + int minLength = Math.min((int) e.getWidth(), (int) e.getHeight()); + if (maxX + minLength <= xMaxSize) { + bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION, + e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1)); + maxX = Math.max(maxX, e.getXCoordinate()); + } else { + break; + } + + } else { + bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION, + e.getWidth() * 10, e.getHeight(), 0, 0, 1)); + } + } + Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟"); + log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size()); + bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList); + List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList()); + log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds); + bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() + .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING) + .in(BigStorageCageDetails::getGlassId, glassIds)); + int returnData = 0; + int count = 1; + while (returnData == 0) { + S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1); + returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0); + log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData); + } + return Boolean.TRUE; + } + + /** + * 鍑虹墖涓�娆$敓鎴愪竴鐐夌幓鐠� + * + * @param list + * @param isTempering + * @param mesToPLCAddress + * @param <T> + * @return + */ + private <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) { + //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧 + List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); + //鎵撹溅鍓╀綑灏哄 + Integer remainWidth = carWidth; int trainNumber = 1; int serialNumber = 1; int maxX = 0; -- Gitblit v1.8.0