UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,19 +1,17 @@ <script lang="ts" setup> import { useI18n } from 'vue-i18n' const { t } = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') import {Search} from "@element-plus/icons-vue"; import {useRouter} from "vue-router" const router = useRouter() import request from "@/utils/request" import {host, WebSocketHost} from '@/utils/constants' import {computed, onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue"; import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; import {ElMessage, ElMessageBox} from 'element-plus' import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue"; const dialogFormVisibleaDownGlasss = ref(false) const scanGlass = ref([]) const {t} = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') const router = useRouter() import { tr } from "element-plus/es/locale"; const dialogFormVisible = ref(false) const dialoglea = ref(false) const dialogFormVisiblea = ref(false) hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -116,6 +116,7 @@ // } // return true; // } /** * 获取 切割当前版图 * @@ -319,6 +320,7 @@ .leftJoin(OptimizeProject.class, on -> on .eq(OptimizeProject::getProjectNo, OptimizeHeatLayout::getProjectNo)) .eq(OptimizeHeatDetail::getProjectNo, current) .gt(OptimizeHeatDetail::getLayoutId, 0) ); Map<String, List<Map<String, Object>>> groupBy=resultCutTerritory.stream().collect(Collectors.groupingBy(item->item.get("layout_id").toString())); hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -114,10 +114,10 @@ String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); // taskRequestTypeValue = "3"; // taskRequestTypeValue = "2"; // out08Glassstate = "1"; // out10Glassstate = "1"; // currentSlot = "2"; // currentSlot = "5"; // confirmationWrodValue = "0"; // glassIdeValue = "P24092706|15|5"; @@ -257,7 +257,6 @@ .eq(GlassInfo::getThickness, glassInfo.getThickness()) .eq(GlassInfo::getFilmsid, glassInfo.getFilmsid()) .eq(GlassInfo::getFlowCardId, glassInfo.getFlowCardId()) .ne(GlassInfo::getGlassId, glassInfo.getGlassId()) .eq(GlassInfo::getTotalLayer, glassInfo.getTotalLayer()) .eq(GlassInfo::getLayer, glassInfo.getLayer()) .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) @@ -302,7 +301,7 @@ // 玻璃小片表中玻璃已经替换,更新卧理笼内现有的准备出笼的玻璃信息, if (null == swapGlassDetailInfo) { GlassInfo glassInfoBase = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getGlassId, swapGlassId)); .eq(GlassInfo::getGlassId, glassId)); //需要替换的玻璃为存进卧理,仅需更新当前需要出笼的玻璃信息即可 edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>() .eq(EdgStorageCageDetails::getGlassId, glassId) @@ -355,6 +354,7 @@ int endcell = 0; EdgStorageCageDetails glassInfo = null; boolean flag = queryMaxMinDiff(threshold); log.info("1、获取钢化版图是否超过阈值:{}", flag); if (flag) { hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@ spring: profiles: active: dev active: cz application: name: cacheGlass liquibase: @@ -16,7 +16,7 @@ threshold: 3 ratio: 10 cache: # 卧式理片最大尺寸 cacheWidth: 4000 cacheWidth: 3600 cacheHeight: 3000 max: # 第二条线的最大尺寸信息 firstLength: 3500 @@ -30,12 +30,12 @@ secondLength: 400 sequence: order: false kangaroohy: milo: primary: default enabled: false config: default: endpoint: opc.tcp://127.0.0.1:49320 security-policy: basic256sha256 username: zsh password: 1qaz2wsx3edc4rfv hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -168,7 +168,7 @@ } } @Scheduled(fixedDelay = Long.MAX_VALUE) // @Scheduled(fixedDelay = Long.MAX_VALUE) public void scanCodeTask() { log.info("扫描任务已启动"); while (true) { hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -574,7 +574,7 @@ /** * 确认字清空 */ // @Scheduled(fixedDelay = 300) @Scheduled(fixedDelay = 300) public void confirmClear() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue(); @@ -602,21 +602,21 @@ /** * 进片状态修改 */ // @Scheduled(fixedDelay = 300) @Scheduled(fixedDelay = 300) public void feedStatusUpdate() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; List<String> glassIds1 = null; List<String> glassIds2 = null; for (int i = 1; i <= 2; i++) { String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getAddress(); if (StringUtils.isEmpty(line1GlassId)) { glassIds1.add(line1GlassId); } String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getAddress(); if (StringUtils.isEmpty(line2GlassId)) { glassIds1.add(line2GlassId); } } List<String> glassIds1 = new ArrayList<>(); List<String> glassIds2 = new ArrayList<>(); // for (int i = 1; i <= 6; i++) { // String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getValue(); // if (StringUtils.isNotEmpty(line1GlassId)) { // glassIds1.add(line1GlassId); // } // String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getValue(); // if (StringUtils.isNotEmpty(line2GlassId)) { // glassIds1.add(line2GlassId); // } // } List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list( new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getTaskState, 1) @@ -627,27 +627,33 @@ .eq(BigStorageCageFeedTask::getTaskState, 1) .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION) ); if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)) { if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)&& glassIds1 != null) { List<String> matchingIds1 = bigStorageCageFeedTasks1.stream() .map(BigStorageCageFeedTask::getGlassId) .filter(glassIds1::contains) .distinct() .collect(Collectors.toList()); bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, matchingIds1) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); } if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)) { if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)&& glassIds2 != null) { List<String> matchingIds2 = bigStorageCageFeedTasks2.stream() .map(BigStorageCageFeedTask::getGlassId) .filter(glassIds2::contains) .distinct() .collect(Collectors.toList()); } bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, glassIds1, glassIds2) .in(BigStorageCageFeedTask::getGlassId, matchingIds2) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); if (glassIds1 == null) { } if (CollectionUtils.isEmpty(glassIds1)) { bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine,Const.A09_OUT_TARGET_POSITION) @@ -657,7 +663,7 @@ .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR) ); } if (glassIds1 == null) { if (CollectionUtils.isEmpty(glassIds2)) { bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine,Const.A10_OUT_TARGET_POSITION) @@ -757,11 +763,12 @@ //向plc发送进片确认 if (flag) { //向plc写入确认字 int returnData = 0; PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; int returnData = 1; int count = 1; while (returnData != 0) { S7object.getinstance().plccontrol.writeWord(mesAddress, 1); PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; if (Const.A10_OUT_TARGET_POSITION.equals(line)) { returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue()); } else { @@ -886,14 +893,14 @@ s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot()); log.info("向plc发送第{}片玻璃已完成,起始位置是{},目标位置是", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot()); } int returnData = 0; int returnData = 1; int count = 1; while (returnData != 0) { s7control.writeWord(outLine, 2); if (line.equals(Const.A09_OUT_TARGET_POSITION)) { returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD03").getValue()); returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue()); } else { returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD05").getValue()); returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue()); } // returnData = s7control.readWord(outLine, 1).get(0); log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{}", count++, outLine, 2); hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,11 +3,16 @@ spring: profiles: active: dev active: cz application: name: cacheVerticalGlass liquibase: enabled: false task: scheduling: pool: size: 10 thread-name-prefix: task-cacheVertical mybatis-plus: mapper-locations: classpath*:mapper/*.xml # configuration: