From 8223485b2f6c909de81924e107b1e268aa04bd41 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期日, 30 六月 2024 22:59:26 +0800 Subject: [PATCH] 1、大理片笼进片逻辑调整:a、将扫描id后进生成任务信息,不执行卧转立进片命令; b、进片车空闲扫描,如果存在卧转立有满片的直接启动, 2、下片任务新增任务向plc发送任务信息 3、对外提供手工生成人工下片任务 --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 36 insertions(+), 20 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java index e3afe50..14c5322 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java @@ -20,6 +20,7 @@ import com.mes.downworkstation.service.DownWorkstationService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; +import com.mes.tools.S7control; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; @@ -75,16 +76,18 @@ public void plcHomeEdgTask() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String requestWord = plcParameterObject.getPlcParameter("RequestWord").getValue(); - String glassIdeValue = plcParameterObject.getPlcParameter("G04ID").getValue(); - String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue(); + String glassIdeValue = plcParameterObject.getPlcParameter("requestID").getValue(); //A08 A09琛ㄧず绾胯矾鐩稿悓 鍙仛绛変环 鏃犳暟鎹浆int寮傚父 - String out08Glassstate = plcParameterObject.getPlcParameter("A08_glass_status").getValue(); - String out10Glassstate = plcParameterObject.getPlcParameter("A10_glass_status").getValue(); - String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); - String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); + String out06Glassstate = plcParameterObject.getPlcParameter("glassStatus06").getValue(); + String out08Glassstate = plcParameterObject.getPlcParameter("glassStatus08").getValue(); + String out11Glassstate = plcParameterObject.getPlcParameter("glassStatus11").getValue(); + String out13Glassstate = plcParameterObject.getPlcParameter("glassStatus13").getValue(); + String confirmationWrodValue = plcParameterObject.getPlcParameter("confirmationWord").getValue(); + String confirmationWrodAddress = plcParameterObject.getPlcParameter("confirmationWord").getAddress(); + String currentSlot = plcParameterObject.getPlcParameter("currentCell").getValue(); - log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛欰09:{}銆丄10:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", - requestWord, glassIdeValue, confirmationWrodValue, out08Glassstate, out10Glassstate, currentSlot); + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佸垎鍒负锛歡06:{}銆乬08:{}銆乬11:{}銆乬13:{},褰撳墠鏍煎瓙鍙蜂负锛歿}", + requestWord, glassIdeValue, confirmationWrodValue, out06Glassstate, out08Glassstate, out11Glassstate, out13Glassstate, currentSlot); if ("0".equals(requestWord)) { if ("0".equals(confirmationWrodValue)) { @@ -174,8 +177,8 @@ for (DownGlassInfoDTO e : downGlassInfoDTOList) { List<GlassInfo> glassInfoList = e.getGlassInfoList(); for (GlassInfo item : glassInfoList) { - if (item.getWidth().equals(glassInfo.getWidth()) && item.getHeight().equals(glassInfo.getHeight()) - && item.getThickness().equals(glassInfo.getThickness()) && item.getFilmsid().equals(glassInfo.getFilmsid())) { + if (item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight() + && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())) { //鐜荤拑鏄惁涓哄灞� checkFlag = multilayerCheck(item, Boolean.FALSE); if (checkFlag) { @@ -208,9 +211,6 @@ downStorageCageDetailsService.save(downStorageCageDetails); // 鐢熸垚杩涚墖浠诲姟 initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN); - //log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache); -// S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 1); -// log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚"); } public Boolean outTo(String glassStatus06, String glassStatus11, String glassStatus13, String glassId) { @@ -347,7 +347,7 @@ DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>() .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId()) .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence)); - if (null != downGlassInfoDTO && downGlassInfo.getWidth().equals(item.getWidth()) && downGlassInfo.getHeight().equals(item.getHeight())) { + if (null != downGlassInfoDTO && downGlassInfo.getWidth() == item.getWidth() && downGlassInfo.getHeight() == item.getHeight()) { log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�"); //鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟 tempGlassId = item.getGlassId(); @@ -406,7 +406,7 @@ .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId()) .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence)); log.info("鎷垮綋鍓嶇増搴忚幏鍙栫幓鐠冧俊鎭瘂}锛屾寜鐓ф搴忓垽鏂綋鍓嶇幓鐠冩槸鍚﹀昂瀵稿搴旂殑涓婏紙涓庢暟閲忔渶澶氱殑娆″簭姣旇緝锛夈��", downGlassInfo); - if (null != downGlassInfoDTO && downGlassInfo.getWidth().equals(glassInfo.getWidth()) && downGlassInfo.getHeight().equals(glassInfo.getHeight())) { + if (null != downGlassInfoDTO && downGlassInfo.getWidth() == glassInfo.getWidth() && downGlassInfo.getHeight() == glassInfo.getHeight()) { log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�"); return Boolean.TRUE; } else { @@ -419,7 +419,7 @@ } } - private Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean isBind, DownStorageCageDetails cageDetails) { + public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean isBind, DownStorageCageDetails cageDetails) { //鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅 DownStorageCageDetails downStorageCageDetails = null; if (glassId.equals(cageDetails.getGlassId())) { @@ -468,18 +468,34 @@ return initDownGlassTask(glassInfo, downStorageCageDetails.getSlot(), endCell, taskType); } - private Boolean initDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) { + public Boolean initDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) { log.info("鐜荤拑{}鐢熸垚杩涚墖浠诲姟", glassInfo.getGlassId()); DownGlassTask downGlassTask = new DownGlassTask(); downGlassTask.setStartCell(startCell); downGlassTask.setGlassId(glassInfo.getGlassId()); downGlassTask.setEndCell(endCell); downGlassTask.setTaskType(taskType + ""); - downGlassTask.setWidth(glassInfo.getWidth().intValue()); - downGlassTask.setHeight(glassInfo.getHeight().intValue()); + downGlassTask.setWidth((int) glassInfo.getWidth()); + downGlassTask.setHeight((int) glassInfo.getHeight()); downGlassTask.setFlowCardId(glassInfo.getFlowCardId()); downGlassTask.setTaskStauts(0); downGlassTask.setCreateTime(new Date()); - return downGlassTaskService.save(downGlassTask); + downGlassTaskService.save(downGlassTask); + //鍚憄lc鍙戦�佸懡浠� + return sendMessageToPlc((int) glassInfo.getWidth(), (int) glassInfo.getHeight(), (int) glassInfo.getThickness(), + startCell, endCell, taskType); + } + + private Boolean sendMessageToPlc(int width, int height, int thickness, int startCell, int endCell, int taskType) { + S7control s7control = S7object.getinstance().plccontrol; + PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject; + s7control.writeWord(plcMesObject.getPlcParameter("Glass_width").getAddress(), (short) width * 10); + s7control.writeWord(plcMesObject.getPlcParameter("Glass_height").getAddress(), (short) height * 10); + s7control.writeWord(plcMesObject.getPlcParameter("Glass_thickness").getAddress(), (short) thickness * 10); + s7control.writeWord(plcMesObject.getPlcParameter("Start_cell").getAddress(), (short) startCell); + s7control.writeWord(plcMesObject.getPlcParameter("End_cell").getAddress(), (short) endCell); + s7control.writeWord(plcMesObject.getPlcParameter("task_type").getAddress(), (short) taskType); + s7control.writeWord(plcMesObject.getPlcParameter("confirmationWord").getAddress(), (short) 1); + return Boolean.TRUE; } } -- Gitblit v1.8.0