From 21092d29c1c0cd1003bb32bf91fddae265a8baea Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 20 十一月 2024 08:41:11 +0800 Subject: [PATCH] 1、卧理单条磨边线对接完成,另一条线等待IP确认 2、大理片笼提交部分代码 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 124 +++++++++++++++++++++-------------------- 1 files changed, 64 insertions(+), 60 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java index 5d92126..e57b73d 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java @@ -1,12 +1,15 @@ package com.mes.job; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; import com.mes.common.config.Const; import com.mes.edgglasstaskqueueinfo.entity.EdgGlassTaskQueueInfo; import com.mes.edgglasstaskqueueinfo.service.EdgGlassTaskQueueInfoService; +import com.mes.glassinfo.entity.GlassInfo; +import com.mes.glassinfo.service.GlassInfoService; import com.mes.opctask.entity.EdgStorageDeviceTask; import com.mes.opctask.service.EdgStorageDeviceTaskService; import lombok.extern.slf4j.Slf4j; @@ -17,6 +20,7 @@ import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -46,80 +50,80 @@ EdgStorageDeviceTaskService edgStorageDeviceTaskService; @Resource EdgGlassTaskQueueInfoService edgGlassTaskQueueInfoService; - private int sum = 0; - @Scheduled(fixedDelay = 10) - public void startOpcTask() throws Exception { -// miloService.subscriptionFromOpcUa(Arrays.asList("C101-WL.S7-1200.plc_task_state", "D101-WL.S7-1200.plc_task_state"), cacheGlassStartCallback); -// miloService.subscriptionFromOpcUa(Arrays.asList("mes.dec.edg_storage_device_one_task[1].task_state", "D101-WL.S7-1200.plc_task_state"), cacheGlassTestCallback); -// log.info("--------------------s---------------------------"); - EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage("edg_storage_device_one_task"); - try { - if (task == null) { - log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�"); - return; - } - if (task.getTaskState() == sum) { - return; - } - sum = task.getTaskState(); - task.setTaskRunning(sum); - log.info("褰撳墠绗瑊}娆℃墽琛�", task.getTaskRunning()); -// task.setTaskState(task.getTaskRunning()); - edgStorageDeviceTaskService.updateTaskMessage("edg_storage_device_one_task", task); - } catch (Exception e) { - log.info("{}", e.getMessage()); - } + @Resource + GlassInfoService glassInfoService; + + private String glassIdOne = ""; + private String glassIdTwo = ""; + + @Scheduled(fixedDelay = Long.MAX_VALUE) + public void startOneOpcTask() throws Exception { + miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL1.edg_storage_device_one_task[1].task_state"), cacheGlassStartCallback); } -// mesControlWord glassId -// width height -// thickness filmRemove -// deviceControlWord deviceWarnState + @Scheduled(fixedDelay = Long.MAX_VALUE) + public void startTwoOpcTask() throws Exception { + miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL2.edg_storage_device_two_task[1].task_state"), cacheGlassStartCallback); + } - // @Scheduled(fixedDelay = 1000) - public void edgOpcTask() throws Exception { - ReadWriteEntity controlEntity = miloService.readFromOpcUa("A001-MB1.dev.deviceControlWord"); - String deviceControlWord = (String) controlEntity.getValue(); - if ("0".equals(deviceControlWord)) { - ReadWriteEntity messageEntity = miloService.readFromOpcUa("A001-MB1.dev.mesControlWord"); - String messageValue = (String) messageEntity.getValue(); - if ("1".equals(messageValue)) { - List<ReadWriteEntity> list = new ArrayList<>(); - list.add(generateReadWriteEntity("A001-MB1.dev.mesControlWord", 0)); - miloService.writeToOpcWord(list); - } - log.info("褰撳墠鏈敹鍒扮(杈规満鐨勮姹備换鍔�"); - return; - } + @Scheduled(fixedDelay = 1000) + public void edgOneOpcTask() throws Exception { EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK); String glassId = task.getGlassId(); - if (StringUtils.isBlank(glassId)) { - log.info("纾ㄨ竟鍓嶇殑鏋跺瓙娌℃湁鐜荤拑淇℃伅"); + if (StringUtils.isBlank(glassId) || glassId.equals(glassIdOne)) { + log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 1); return; } - //鑾峰彇纾ㄨ竟瀵瑰垪 - EdgGlassTaskQueueInfo edgInfo = edgGlassTaskQueueInfoService.getOne(new LambdaQueryWrapper<EdgGlassTaskQueueInfo>() - .eq(EdgGlassTaskQueueInfo::getGlassId, glassId) - .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW)); - if (edgInfo == null) { + edgTaskChild(glassId, 1); + } + + @Scheduled(fixedDelay = 1000) + public void edgTwoOpcTask() throws Exception { + EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK); + String glassId = task.getGlassId(); + if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) { + log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 2); + return; + } + edgTaskChild(glassId, 2); + } + + private void edgTaskChild(String glassId, int cell) throws Exception { + GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1")); + if (glassInfo == null) { log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId); return; } + String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence(); List<ReadWriteEntity> list = new ArrayList<>(); - list.add(generateReadWriteEntity("A001-MB1.dev.mesControlWord", 1)); - list.add(generateReadWriteEntity("A001-MB1.dev.glassId", glassId)); - list.add(generateReadWriteEntity("A001-MB1.dev.width", edgInfo.getWidth())); - list.add(generateReadWriteEntity("A001-MB1.dev.height", edgInfo.getHeight())); - list.add(generateReadWriteEntity("A001-MB1.dev.thickness", edgInfo.getThickness())); - list.add(generateReadWriteEntity("A001-MB1.dev.filmRemove", 0)); - miloService.writeToOpcWord(list); + list.add(generateReadWriteEntity("PLC.MB" + cell + ".mesControl", true)); + list.add(generateReadWriteEntity("PLC.MB" + cell + ".glassId", Integer.parseInt(toEndingId))); + list.add(generateReadWriteEntity("PLC.MB" + cell + ".toEdingId", Integer.parseInt(toEndingId))); + list.add(generateReadWriteEntity("PLC.MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))); + list.add(generateReadWriteEntity("PLC.MB" + cell + ".height", (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))); + + miloService.writeToOpcUa(list); + miloService.writeToOpcWord(generateReadWriteEntity("PLC.MB" + cell + ".thickness", (int) glassInfo.getThickness() * 10)); + //淇敼纾ㄨ竟瀵瑰垪涓殑纾ㄨ竟绾胯矾鍙婄姸鎬� + edgGlassTaskQueueInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskQueueInfo>() + .set(EdgGlassTaskQueueInfo::getLine, cell) + .set(EdgGlassTaskQueueInfo::getState, 1) + .eq(EdgGlassTaskQueueInfo::getGlassId, glassId) + .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW)); + if (cell == 1) { + glassIdOne = glassId; + } else { + glassIdTwo = glassId; + } + } private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) { - ReadWriteEntity readWriteEntity = new ReadWriteEntity(); - readWriteEntity.setIdentifier(identifier); - readWriteEntity.setValue(value); - return readWriteEntity; + return ReadWriteEntity.builder() + .identifier(identifier) + //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷 + .value(value) + .build(); } } -- Gitblit v1.8.0