From 979f95e192e306bf8ae6552415d20c57015baab4 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 22 十月 2025 13:59:05 +0800
Subject: [PATCH] 优化:短连接+抛异常 防止异常导致端口占用 无法连接设备
---
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java | 33 ++++++++++++++++++---------------
1 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
index 525d9e9..4435046 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
@@ -53,26 +53,29 @@
}
public void readData() {
try {
- byte[] resultValues=plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
-
-// byte[] resultValues=new byte[PlcMesObject.getPlcAddressLength()];
-// int maxRead=1092;
-// int size=PlcMesObject.getPlcAddressLength()%maxRead==0?
-// (PlcMesObject.getPlcAddressLength()/maxRead):
-// (PlcMesObject.getPlcAddressLength()/maxRead+1);
-// for (int i = 0; i <size ; i++) {
-// int begin=i*maxRead;
-// int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead);
-// String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin;
-// byte[] getplcvlues = plccontrol.readByte(beginAddress, length);
-// System.arraycopy(getplcvlues,0,resultValues,begin,length);
-// }
+ byte[] resultValues;
+ if (PlcMesObject.getPlcAddressLength()>1092){
+ resultValues=new byte[PlcMesObject.getPlcAddressLength()];
+ int maxRead=1092;
+ int size=PlcMesObject.getPlcAddressLength()%maxRead==0?
+ (PlcMesObject.getPlcAddressLength()/maxRead):
+ (PlcMesObject.getPlcAddressLength()/maxRead+1);
+ for (int i = 0; i <size ; i++) {
+ int begin=i*maxRead;
+ int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead);
+ String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin;
+ byte[] getplcvlues = plccontrol.readByte(beginAddress, length);
+ System.arraycopy(getplcvlues,0,resultValues,begin,length);
+ }
+ }else{
+ resultValues=plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
+ }
if (resultValues.length>0) {
PlcMesObject.setPlcParameterList(resultValues);
}
} catch (Exception e) {
+ log.info("寮傚父:ip:{},port:{},閰嶇疆{},{}",this.ip,this.port,PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
PlcMesObject=null;
- log.info("寮傚父:ip:{},port:{},閿欒{},{}",this.ip,this.port,e.getMessage(),e.toString());
}
}
}
--
Gitblit v1.8.0