From 2d92826d942cd4c06e1f415d4a3896b99ec65e2b Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期四, 07 十一月 2024 19:32:00 +0800
Subject: [PATCH] 更改配片逻辑

---
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java |  205 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 121 insertions(+), 84 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index ecee1cc..8756fe9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -1,4 +1,7 @@
 package com.example.springboot.component;
+
+import java.util.Date;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import com.example.springboot.service.SpianServiceNew;
 import com.example.springboot.service.StorageCageService;
@@ -6,16 +9,14 @@
 import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.AlbaniaMapper;
 
-
 public class PlcHoldNew extends Thread {
-
- 
 
   @Autowired
   private AlbaniaMapper albaniaMapper;
   private SpianServiceNew spianService;
   private StorageCageService storageCageService;
   int aaa;
+  String huibao = "";
 
   @Override
   public void run() {
@@ -23,101 +24,137 @@
     while (this != null) {
       try {
 
-        Thread.sleep(500);
+        Thread.sleep(300);
       } catch (InterruptedException e) {
         e.printStackTrace();
       }
 
-      
       storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
       spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
       albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class);
-      
-      //璇诲彇DB14鍖烘枃浠�
-      PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-      if(plcmes.getPlcParameter("PLCToMES").getValue()!=null){
-        
-      // spianService.Mestast("NG0001-1",40,1,0,"MESID1",1);
-      // spianService.Mestast("NG0001-2",40,2,0,"MESID2",2);
-      // spianService.Mestast("NG0001-3",40,2,1,"MESID3",3);
-    
-      String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//鍑虹墖璇锋眰涓�绾�
-      String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//鍑虹墖璇锋眰浜岀嚎
-      String PLCToMES=plcmes.getPlcParameter("PLCToMES").getValue();//杩愰�佽溅璇锋眰
-      String IDStatus1=plcmes.getPlcParameter("IDStatus1").getValue();//1鍙蜂换鍔″畬鎴�
-      String MESToPLCStatus1=plcmes.getPlcParameter("MESToPLCStatus1").getValue();//1鍙风‘璁ゅ瓧
-      String MESToPLC=plcmes.getPlcParameter("MESToPLC").getValue();//鍙戦�佷换鍔″瓧
-      // String scan=plcmes.getPlcParameter("scan").getValue();//鍙戦�佹壂鐮佷俊鎭�
-      // if(scan.equals("1")==true){
-      //   spianService.scan(scan);
-      // }
-      
-      //涓�鍙风嚎璇锋眰
-      
-      if(ExportTOMES1!=null&&MESToPLC!=null){
-      if (ExportTOMES1.equals("1") == true&&MESToPLC.equals("0")==true) {
-      
-        spianService.selectout(1);
-      }
-    }
-      // //浜岀嚎鍙疯姹傛椂
-    //   if(ExportToMES2!=null &&MESToPLC!=null){
-    //   if (ExportToMES2.equals("1") == true&&MESToPLC.equals("0")==true) {
-    //     spianService.selectout(2);
-    //   }
-    // }
-      //杩涚墖璇锋眰鏃�
-      
-      GlassInfo glass=albaniaMapper.SelectGlass();
-      if(PLCToMES!=null && glass!=null&&MESToPLC!=null){
-      if(PLCToMES.equals("1")==true&&MESToPLC.equals("0")==true){        
-  
-        spianService.selectAll(glass);
-      }
-    }
-    
-    // System.out.println("IDStatus1:"+IDStatus1+"MESToPLCStatus1:"+MESToPLCStatus1);
-      //浠诲姟瀹屾垚鏃�
-      if(IDStatus1.equals("1")==true && MESToPLCStatus1.equals("0")==true){
-        //瀹屾垚纭瀛�
-        for(int i=1;i<7;i++){
-          String Tastover=plcmes.getPlcParameter("IDStatus"+i).getValue();//PLC鐞嗙墖浠诲姟鐘舵�佹眹鎶�
-          String Glassid=plcmes.getPlcParameter("MESID"+i).getValueString();//MES鐜荤拑ID
-          GlassInfo id=albaniaMapper.SelectTaskId(Glassid);       
-            if(id!=null&&Tastover.equals("1")){
-              //璋冪敤瀹屾垚浠诲姟 Glassid
-              storageCageService.FinishTask(id.getId());
-            }               
-              S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus"+i).getAddress(), (short) 1);//瀹屾垚纭瀛�
-              System.out.println("瀹屾垚纭瀛桵ESToPLCStatus");
-              
+      spianService.selectout(1);
+      // 璇诲彇DB14鍖烘枃浠�
+      PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+      if (plcmes.getPlcParameter("PLCToMES").getValue() != null) {
+
+        String ExportTOMES1 = plcmes.getPlcParameter("ExportTOMES1").getValue();// 鍑虹墖璇锋眰涓�绾�
+        String PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰
+        String IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴�
+        String MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧
+        String MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧
+        int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
+        int outtask = albaniaMapper.SelectOutTaskCount(); // 绛夊緟琛ュ彂鐨勫嚭鐗囦换鍔℃暟閲�
+        if(outtask>0){
+          spianService.mateOut();
+        }
+        // String scan=plcmes.getPlcParameter("scan").getValue();//鍙戦�佹壂鐮佷俊鎭�
+        // if(scan.equals("1")==true){
+        // spianService.scan(scan);
+        // }
+        // 鑾峰彇褰撳墠鏃堕棿
+        String currentTime = new Date().toString();
+        if (!huibao.equals(IDStatus1)) {
+          System.out.println("姹囨姤璁板綍:" + IDStatus1 + "鏃堕棿" + currentTime);
+        }
+        huibao = IDStatus1;
+        // 涓�鍙风嚎璇锋眰
+        if (ExportTOMES1 != null && MESToPLC != null && taskcont == 0) {
+          if (ExportTOMES1.equals("1") == true && MESToPLC.equals("0") == true && PLCToMES.equals("1") == true
+              && MESToPLCStatus1.equals("0") == true) {
+            System.out
+                .println("鍑虹墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
+            spianService.selectout(1);
+            try {
+              Thread.sleep(200); // 姣�100姣妫�鏌ヤ竴娆�
+            } catch (InterruptedException e) {
+              Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇
             }
-              S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 0);//娓呴櫎浠诲姟鍙戦�佸瓧
-              System.out.println("娓呴櫎浠诲姟鍙戦�佸瓧MESToPLC");
-            
-          }
-          
-        
-      
-      //姹囨姤鍙栨秷鏃�
-      if(IDStatus1.equals("0")==true &&MESToPLCStatus1.equals("1")){
-        
-        //鍙栨秷纭瀛�
-        for(int i=1;i<7;i++){
-          String Tastover=plcmes.getPlcParameter("IDStatus"+i).getValue();//渚濇鑾峰彇浠诲姟姹囨姤
-          if(Tastover.equals("0")){
-            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus"+i).getAddress(), (short) 0);//娓呴櫎纭瀛�
-            System.out.println("娓呴櫎纭瀛桵ESToPLCStatus");
           }
         }
+
+        PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰
+        IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴�
+        MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧
+        MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧
+        // 杩愰�佽溅璇锋眰鍜屾祴閲忓畬鎴愯姹�
+        GlassInfo glass = albaniaMapper.SelectGlass();
+        if (PLCToMES != null && glass != null && MESToPLC != null && taskcont == 0) {
+          if (PLCToMES.equals("1") == true && MESToPLC.equals("0") == true && MESToPLCStatus1.equals("0") == true) {
+            try {
+              Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆�
+            } catch (InterruptedException e) {
+              Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇
+            }
+            System.out
+                .println("杩涚墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
+            spianService.selectAll(glass);
+          }
+        }
+
+        // 浠诲姟瀹屾垚鏃�
+        if ((IDStatus1.equals("1") && MESToPLCStatus1.equals("0")) ||
+            (IDStatus1.equals("4") && MESToPLCStatus1.equals("0"))) {
+          // 瀹屾垚纭瀛�
+          for (int i = 1; i < 7; i++) {
+            String Tastover = plcmes.getPlcParameter("IDStatus" + i).getValue();// PLC鐞嗙墖浠诲姟鐘舵�佹眹鎶�
+            String Glassid = plcmes.getPlcParameter("MESID" + i).getValueString();// MES鐜荤拑ID
+            GlassInfo id = albaniaMapper.SelectTaskId(Glassid);
+            if (Tastover.equals("1")) {
+              // 璋冪敤瀹屾垚浠诲姟 Glassid
+              storageCageService.FinishTask();
+              System.out.println("瀹屾垚浠诲姟ID:" + id);
+            } else if (Tastover.equals("4")) {
+              storageCageService.FinishTask();
+              System.out.println("瀹屾垚澶辫触浠诲姟ID:" + id);
+            }
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus" + i).getAddress(), (short) 1);// 瀹屾垚纭瀛�
+          }
+          System.out.println("瀹屾垚纭瀛桵ESToPLCStatus");
+          // 娓呴櫎浠诲姟鍦板潃
+          for (int i = 1; i < 7; i++) {
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 娓呴櫎浠诲姟鍦板潃
+          }
+          System.out.println("娓呴櫎浠诲姟鍦板潃");
+          while (true) {
+            String currentValue = plcmes.getPlcParameter("MESToPLC").getValue();
+            // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0
+            if (currentValue.equals("0")) {
+              System.out.println("MESToPLC 宸插彉涓� 0,鍋滄寰幆鍐欏叆");
+              break; // 閫�鍑哄惊鐜�
+            }
+            // 濡傛灉涓嶄负 0锛岀户缁啓鍏�
+            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),
+                (short) 0);// 娓呴櫎浠诲姟鍙戦�佸瓧
+            System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue);
+            // 鍔犱笂寤舵椂锛岄伩鍏嶅崰鐢ㄨ繃澶� CPU 璧勬簮
+            try {
+              Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆�
+            } catch (InterruptedException e) {
+              e.printStackTrace();
+            }
+          }
+
+        }
+
+        // 姹囨姤鍙栨秷鏃�
+        if ((IDStatus1.equals("0")) && MESToPLCStatus1.equals("1")) {
+          // 鍙栨秷纭瀛�
+          for (int i = 1; i < 7; i++) {
+            String Tastover = plcmes.getPlcParameter("IDStatus" + i).getValue();// 渚濇鑾峰彇浠诲姟姹囨姤
+            if (Tastover.equals("0")) {
+              S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStatus" + i).getAddress(), (short) 0);// 娓呴櫎纭瀛�
+
+            }
+          }
+          System.out.println("娓呴櫎纭瀛桵ESToPLCStatus");
+        }
+
       }
-    
-  }
-  
+
       // 鏌ヨ鏁版嵁搴�
       // 鎺ㄩ�佸埌鍓嶇
 
-    
     }
   }
 

--
Gitblit v1.8.0