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