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 |   99 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 95 insertions(+), 4 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 4bab88f..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,14 +1,23 @@
 package com.mes.job;
 
+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 javax.annotation.Resource;
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @Author : zhoush
@@ -19,16 +28,98 @@
 @Slf4j
 public class OpcCacheGlassTask {
 
+    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;
+
 
     @Resource(name = "cacheGlassStartCallback")
     SubscriptionCallback cacheGlassStartCallback;
 
-    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    @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("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"), cacheGlassStartCallback);
-        log.info("--------------------s---------------------------");
+//        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