From d1099b48aecf383fcefbe7b5a7ac3c2de0f0793f Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 06 十一月 2024 23:22:03 +0800
Subject: [PATCH] 1、卧理进出片功能已完成开发,与电气调试中,新增磨边队列表 2、卧理新增历史任务表,记录卧理两台设备执行过的历史数据 3、大理片笼opc任务,新增玻璃进笼计算方式:在笼内存储同炉的多片玻璃,笼内玻璃顺序可不按照固定的顺序进笼 4、上片任务初步完成开发,新增历史任务表记录上片的历史信息
---
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 102 insertions(+), 8 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 47b2fd0..5d92126 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,13 +1,23 @@
package com.mes.job;
-import com.mes.milo.runner.subscription.SubscriptionCallback;
-import com.mes.milo.service.MiloService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.Arrays;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
/**
* @Author : zhoush
@@ -18,14 +28,98 @@
@Slf4j
public class OpcCacheGlassTask {
- @Autowired
+ private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+ private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+ @Autowired(required = false)
MiloService miloService;
- @Autowired
- SubscriptionCallback cacheGlassSubscriptionCallback;
- @Scheduled(fixedDelay = Long.MAX_VALUE)
+ @Resource(name = "cacheGlassStartCallback")
+ SubscriptionCallback cacheGlassStartCallback;
+
+ @Resource(name = "cacheGlassTestCallback")
+ SubscriptionCallback cacheGlassTestCallback;
+
+ @Resource
+ EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+ @Resource
+ EdgGlassTaskQueueInfoService edgGlassTaskQueueInfoService;
+ private int sum = 0;
+
+ @Scheduled(fixedDelay = 10)
public void startOpcTask() throws Exception {
- miloService.subscriptionFromOpcUa(Arrays.asList("my.device.x1", "my.device.x2"), cacheGlassSubscriptionCallback);
+// 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());
+ }
+ }
+
+// mesControlWord glassId
+// width height
+// thickness filmRemove
+// deviceControlWord deviceWarnState
+
+ // @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;
+ }
+ EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
+ String glassId = task.getGlassId();
+ if (StringUtils.isBlank(glassId)) {
+ log.info("纾ㄨ竟鍓嶇殑鏋跺瓙娌℃湁鐜荤拑淇℃伅");
+ return;
+ }
+ //鑾峰彇纾ㄨ竟瀵瑰垪
+ EdgGlassTaskQueueInfo edgInfo = edgGlassTaskQueueInfoService.getOne(new LambdaQueryWrapper<EdgGlassTaskQueueInfo>()
+ .eq(EdgGlassTaskQueueInfo::getGlassId, glassId)
+ .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW));
+ if (edgInfo == null) {
+ log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId);
+ return;
+ }
+ 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);
+ }
+
+ private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+ ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+ readWriteEntity.setIdentifier(identifier);
+ readWriteEntity.setValue(value);
+ return readWriteEntity;
}
}
--
Gitblit v1.8.0