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 | 158 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 135 insertions(+), 23 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
index 9292cc6..4ef775a 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
@@ -1,11 +1,17 @@
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;
@@ -13,9 +19,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* @author SNG-010
@@ -24,38 +29,145 @@
@Slf4j
public class PLCFlipSlice {
- PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
@Autowired
TaskingService taskingService;
@Autowired
MachineMapper machineMapper;
- //@Scheduled(fixedDelay = 500)
- public void plcTurn() {
- //娓呮礂鏈洪�熷害
- String rinseSpeed = plcParameterObject.getPlcParameter("rinseSpeed").getValue();
- if(!Objects.equals(rinseSpeed, "")){
- //缁欑炕鐗囧彴鍙戦�佺(杈规満閫熷害
- S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("turnSpeed").getAddress(), Integer.parseInt(rinseSpeed));
+
+ 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);
+ }
}
}
- @Scheduled(fixedDelay = 1000)
- public void turnWeb() {
+
+ public void nullMachine(Machine machine) {
+ if (!"".equals(machine.getRemark())){
+ machine.setRemark("");
+ machineMapper.updateById(machine);
+ }
+ }
+ @Scheduled(fixedDelay = 500)
+ public void flipSliceTask() {
//鑾峰彇鎶ヨ鐘舵��
JSONObject jsonObject = new JSONObject();
-// String warning = plcParameterObject.getPlcParameter("turnWarning").getValue();
-//
-// if (!Objects.equals(warning, "0")) {
-// //log.info("鎶ヨ淇℃伅锛�"+warning);
-// jsonObject.append("turnWarning", warning);
-// }
- Machine machine=machineMapper.selectById(25L);
+ Machine machine=machineMapper.selectById(26L);
List<Tasking> taskingList=taskingService.findMachineTask(machine);
jsonObject.append("taskingList", taskingList);
jsonObject.append("machine", machine);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("flipSlice");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
+ 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();
--
Gitblit v1.8.0