From 044c32c15ee9ccac6f3b60eb6745025e2f4480f2 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 11 十二月 2024 16:59:54 +0800
Subject: [PATCH] 报工回传+库位显示

---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java |  186 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 186 insertions(+), 0 deletions(-)

diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
new file mode 100644
index 0000000..4ef775a
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
@@ -0,0 +1,186 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.common.S7object;
+import com.mes.common.S7objectFlipSlice;
+import com.mes.common.S7objectMachine;
+import com.mes.common.S7objectMarking;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.service.ProjectService;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCFlipSlice {
+
+    @Autowired
+    TaskingService taskingService;
+    @Autowired
+    MachineMapper machineMapper;
+
+    public S7objectMachine s7objectMachine;
+
+    @Autowired
+    ProjectService projectService;
+
+    public List<Map> sendRecords = new ArrayList<>();
+
+    //@Scheduled(fixedDelay = 1000)
+    public void plcFlipSlice() {
+        Long machineId=26L;
+        Machine machine=machineMapper.selectById(machineId);
+        if (s7objectMachine==null){
+            s7objectMachine=new S7objectMachine(machine.getIp(),machine.getPort(),"PlcFlipSlice", EPlcType.S1200);
+            s7objectMachine.start();
+        }
+        PlcParameterObject plcParameterObject = s7objectMachine.PlcMesObject;
+        PlcParameterInfo plcRequest =plcParameterObject.getPlcParameter("plcRequest");//璇锋眰瀛�
+        PlcParameterInfo plcRequestID =plcParameterObject.getPlcParameter("plcRequestID");//璇锋眰ID
+        PlcParameterInfo plcRequestType =plcParameterObject.getPlcParameter("plcRequestType");//PLC璇锋眰
+
+        PlcParameterInfo mesSend =plcParameterObject.getPlcParameter("mesSend");//鍙戦�佸瓧
+        PlcParameterInfo mesSendId =plcParameterObject.getPlcParameter("mesSendID");//鍙戦�両D
+        PlcParameterInfo length =plcParameterObject.getPlcParameter("length");//闀�
+        PlcParameterInfo width =plcParameterObject.getPlcParameter("width");//瀹�
+        PlcParameterInfo mesSendType =plcParameterObject.getPlcParameter("mesSendType");//  鎵爜1   涓嶆壂鐮�2
+
+        String scan_id="";
+        if (machine.getIsLog()>0){
+            s7objectMachine.consoleLogInfo();
+        }
+        if ("0".equals(plcRequest.getValue())&&!"0".equals(mesSend.getValue())) {
+            //鍙戦�佸瓧缃�0
+            int finishCount=taskingService.finishMachineTask(machine);
+            log.info("1.鍙戦�佸瓧缃浂,娓呴櫎涓婃鍙戦�佺殑鏁版嵁{},{},{},{},{}"
+                    ,finishCount
+                    ,length.getValue()
+                    ,width.getValue()
+                    ,mesSendId.getValue()
+                    ,mesSend.getValue());
+            s7objectMachine.plccontrol.writeWord(length.getAddress(), 0);
+            s7objectMachine.plccontrol.writeWord(width.getAddress(), 0);
+            s7objectMachine.plccontrol.writeWord(mesSendId.getAddress(), 0);
+            s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 0);
+            return;
+        }
+        List<Tasking> taskingCount=taskingService.findMachineWorkStateTask(machine,"姝e湪宸ヤ綔");
+        if(("1".equals(plcRequest.getValue())&&"0".equals(mesSend.getValue())&& !plcRequestID.getValue().isEmpty()
+                &&"寮�宸�".equals(machine.getState())
+                &&taskingCount.size()<machine.getMaxTaskCount())){
+            Tasking tasking;
+            if(machine.getMode()==1){
+                //鏍囧噯妯″紡
+                tasking=taskingService.startMachineTask(machine);
+            }else{
+                //瀹氬埗妯″紡
+                String PlcRequestID_=plcRequestID.getValue();
+                scan_id= PlcRequestID_.substring(PlcRequestID_.lastIndexOf(",")+1);
+                tasking=taskingService.startScanIdMachineTask(machine,scan_id);//涓嶇椤哄簭锛岀洿鎺ユ壘浠庣(杈规満鎵爜鍚庡埌缈荤墖鍙扮殑鏁版嵁
+            }
+            if(tasking!=null){
+                log.info("4銆佸彂閫佹暟鎹�:{},{},{},{},{}"
+                        ,tasking.getGlassId(),tasking.getProgramId()
+                        ,tasking.getLength().intValue(),tasking.getWidth().intValue(),1);
+                s7objectMachine.plccontrol.writeWord(length.getAddress(), tasking.getLength().intValue());
+                s7objectMachine.plccontrol.writeWord(width.getAddress(), tasking.getWidth().intValue());
+                s7objectMachine.plccontrol.writeString(mesSendId.getAddress(), tasking.getGlassId().toString());
+                s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 1);
+                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String sendRecord=df.format(new Date())+"  "+
+                        tasking.getGlassId()+"-"+
+                        tasking.getLength()+"-"+
+                        tasking.getWidth();
+                if (sendRecords.size()>7){
+                    sendRecords.remove(0);
+                }
+                Map sendContentMap=new HashMap();
+                sendContentMap.put("sendContent",sendRecord);
+                sendRecords.add(sendContentMap);
+
+                nullMachine(machine);
+                return;
+            }else if(!scan_id.isEmpty()){
+                taskingService.scanMachineAdd(machine,scan_id);
+            }
+        }
+
+    }
+
+    public void nullMachine(Machine machine) {
+        if (!"".equals(machine.getRemark())){
+            machine.setRemark("");
+            machineMapper.updateById(machine);
+        }
+    }
+    @Scheduled(fixedDelay = 500)
+    public void flipSliceTask() {
+        //鑾峰彇鎶ヨ鐘舵��
+        JSONObject jsonObject = new JSONObject();
+        Machine machine=machineMapper.selectById(26L);
+        List<Tasking> taskingList=taskingService.findMachineTask(machine);
+        jsonObject.append("taskingList", taskingList);
+        jsonObject.append("machine", machine);
+        jsonObject.append("sendRecords", sendRecords);
+        ArrayList<WebSocketServer> sendServer = WebSocketServer.sessionMap.get("flipSlice");
+        if (sendServer != null) {
+            for (WebSocketServer webserver : sendServer) {
+                if (webserver != null) {
+                    try {
+                        webserver.sendMessage(jsonObject.toString());
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+                    }catch (Exception e) {
+
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void downLineTask() {
+        //绾夸笅浠诲姟
+        JSONObject jsonObject = new JSONObject();
+        List<Tasking> downLineTask=taskingService.findDownLineTask();
+        jsonObject.append("downLineTask", downLineTask);
+        ArrayList<WebSocketServer> sendServer = WebSocketServer.sessionMap.get("downLineTask");
+        if (sendServer != null) {
+            for (WebSocketServer webserver : sendServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0