From b4ff04d7dd22f0e48bf386cd422e885aef08fed7 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 22 五月 2025 15:03:10 +0800
Subject: [PATCH] OPC通讯修改为S7通讯
---
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java | 84 +++++++++++++++++++++++++++++++++--------
1 files changed, 67 insertions(+), 17 deletions(-)
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
index fcf2542..579f3b1 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
@@ -1,21 +1,25 @@
package com.mes.job;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
import com.mes.pp.entity.OptimizeHeatDetail;
import com.mes.pp.entity.OptimizeHeatLayout;
import com.mes.pp.service.OptimizeHeatDetailService;
import com.mes.pp.service.OptimizeHeatLayoutService;
-import com.mes.temperingglass.entity.TemperingGlass;
+import com.mes.s7.entity.S7DataGHOne;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@@ -36,6 +40,10 @@
@Autowired
private OptimizeHeatDetailService optimizeHeatDetailService;
+ @Autowired
+ @Qualifier("s7SerializerGHOne")
+ private S7Serializer s7SerializerGHOne;
+
/**
* 鎽嗙墖鍙拌姹傝繘鐗囬�昏緫澶勭悊
* fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
@@ -43,15 +51,38 @@
*/
@Scheduled(fixedDelay = 1000)
public void requestTemperingTask() throws Exception {
- ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("XX.XX.requestTemperingId");//璇锋眰杩涚墖 鐐夊彿ID
- Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
- if (id == 0) {
- miloService.writeToOpcUa(generateReadWriteEntity("XX.XX.responseInTempering", 0));//鍏佽閫佺墖娓呴浂
- }
- ReadWriteEntity placedNumber = miloService.readFromOpcUa("XX.XX.placedNumber");//宸叉憜鐗囨暟閲�
- List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(id);
- if (glassList.size() == Integer.parseInt(placedNumber.getValue().toString())) {
- miloService.writeToOpcUa(generateReadWriteEntity("XX.XX.responseInTempering", 1));//鍐欏叆鍏佽閫佺墖
+ S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
+// ReadWriteEntity requestInTempering = miloService.readFromOpcUa("GH1S7.GH1S7.requestInTempering");//璇锋眰杩涚墖
+// ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.requestTemperingId");//璇锋眰杩涚墖 鐐夊彿ID
+// Integer request = Integer.parseInt(requestInTempering.getValue().toString());
+// Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
+ Integer request = (int)s7DataGHOne.getRequestInTempering();
+ Integer id = (int)s7DataGHOne.getRequestTemperingId();
+ if (request == 0) {
+// miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 0));//鍏佽閫佺墖娓呴浂
+ s7SerializerGHOne.write(
+ S7DataGHOne.builder().responseInTempering((short)0).build()
+ );
+ } else {
+ if (id == 0){
+ log.info("鐐夊彿涓嶈兘涓�0");
+ return;
+ }
+// ReadWriteEntity placedNumber = miloService.readFromOpcUa("GH1S7.GH1S7.placedNumber");//宸叉憜鐗囨暟閲�
+ String placedNumber = s7DataGHOne.getPlacedNumber().toString();//宸叉憜鐗囨暟閲�
+ List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(id);
+// if (Integer.parseInt(placedNumber.getValue().toString()) == glassList.size()) {
+ if (Integer.parseInt(placedNumber) == glassList.size()) {
+// miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 1));//鍐欏叆鍏佽閫佺墖
+ s7SerializerGHOne.write(
+ S7DataGHOne.builder().responseInTempering((short)1).build()
+ );
+ } else {
+// miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 2));//涓嶆弧瓒宠繘鐐夋潯浠�
+ s7SerializerGHOne.write(
+ S7DataGHOne.builder().responseInTempering((short)2).build()
+ );
+ }
}
}
@@ -62,14 +93,33 @@
*/
@Scheduled(fixedDelay = 1000)
public void loadTemperingTask() throws Exception {
- ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("XX.XX.loadTemperingId");//杩涚墖瀹屾垚 鐐夊彿ID
- getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+ S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
+// ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//杩涚墖瀹屾垚 鐐夊彿ID
+// getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+ String loadTemperingId=s7DataGHOne.getLoadTemperingId().toString();//杩涚墖瀹屾垚 鐐夊彿ID
+ getNewTemperingID(Integer.parseInt(loadTemperingId));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+ }
+ /**
+ * 鏇存柊閽㈠寲灏忕墖琛ㄥ唴鐨勭幓鐠冪姸鎬�
+ * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+ * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+ */
+ @Scheduled(fixedDelay = 5000)
+ public void updateTemperingTask() throws Exception {
+ ReadWriteEntity furanchiIdEntity = miloService.readFromOpcUa("GH1.GH1.Furanch1Id");//杩涚墖瀹屾垚 鐐夊彿ID
+ if (StringUtils.isNotBlank(furanchiIdEntity.getValue()+"")){
+ int temperingid = Integer.parseInt(furanchiIdEntity.getValue().toString());
+ temperingAgoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>().set(TemperingGlassInfo::getState, Const.TEMPERING_START)
+ .in(TemperingGlassInfo::getState, Const.TEMPERING_OUT, Const.TEMPERING_DROP).eq(TemperingGlassInfo::getTemperingLayoutId,temperingid));
+ }
+
+
}
//鑾峰彇鍒扮倝鍙穒d鎵ц鍙傛暟涓嬪彂浠诲姟
private void getNewTemperingID(Integer temperingid) throws Exception {
- ReadWriteEntity AutoStatus = miloService.readFromOpcUa("GH1.GH1.AutoStatus");
- if (1 != Integer.parseInt(AutoStatus.getValue().toString())) {
+ ReadWriteEntity autoStatus = miloService.readFromOpcUa("GH1.GH1.AutoStatus");
+ if (1 != Integer.parseInt(autoStatus.getValue().toString())) {
log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫閽㈠寲涓嬪彂鍙傛暟浠诲姟");
return;
}
@@ -81,7 +131,7 @@
}
List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(temperingid);
if (glassList != null && glassList.size() > 0) {
- int glasstype = GetGlassType(glassList.get(0).getFilmsid());//鑶滅郴
+ int glasstype = GetGlassType(glassList.get(0).getFilmsId());//鑶滅郴
int process = 0;//閽㈠寲绫诲瀷
int thiness = (int) glassList.get(0).getThickness();//鍘氬害
String engineerId = glassList.get(0).getEngineerId();
@@ -113,7 +163,7 @@
miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.WorkMode", workmode));//鍐欏叆宸ヤ綅鏁�
miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.FurnaceMode", furmode));//鍐欏叆鐐変綋宸ヤ綔鏂瑰紡
log.info("鐐夊彿" + temperingid + "鐗堥潰淇℃伅灏濊瘯涓嬪彂");
- }
+ }
}
--
Gitblit v1.8.0