From 1e86acc5e9fa9b18a6dc43c0ab9c6469723b2395 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期四, 20 三月 2025 08:53:53 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/core/thread/SteThread.java | 79 ++++++++++++++++++++++++---------------
1 files changed, 48 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index ad8ed80..e756b0b 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -43,6 +43,8 @@
private SteProtocol steProtocol;
private short heartBeatVal = 1;
private boolean resetFlag = false;
+ private int value = 0;
+
public SteThread(SteSlave slave) {
this.slave = slave;
@@ -106,9 +108,9 @@
// siemensS7Net.setRack(slave.getRack().byteValue());
// siemensS7Net.setSlot(slave.getSlot().byteValue());
OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
+ if (connect.IsSuccess) {
result = true;
- OutputQueue.STE.offer(MessageFormat.format( "銆恵0}銆戠┛姊溅plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戠┛姊溅plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
News.info("绌挎杞lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
} else {
OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戠┛姊溅plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
@@ -122,7 +124,7 @@
/**
* 璇诲彇鐘舵��
*/
- private synchronized void readStatus(){
+ private synchronized void readStatus() {
try {
OperateResultExOne<byte[]> result = siemensS7Net.Read("V800", (short) 70);
if (result.IsSuccess) {
@@ -131,7 +133,21 @@
steProtocol.setSteNo(slave.getId().shortValue());
}
// steProtocol.setSteNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 0));
- steProtocol.setMode(siemensS7Net.getByteTransform().TransInt16(result.Content, 2));
+ short i = siemensS7Net.getByteTransform().TransInt16(result.Content, 2);
+ if (i == 0) {
+ value++;
+ } else {
+ value = 0;
+ }
+ if (value > 20) {
+ steProtocol.setMode((short) 0);
+ } else {
+ if (steProtocol.getMode() != null) {
+ steProtocol.setMode(steProtocol.getMode());
+ } else {
+ steProtocol.setMode((short) 1);
+ }
+ }
steProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 4));
OperateResultExOne<Boolean> executeRes = siemensS7Net.ReadBool("V2001.0");
if (executeRes.IsSuccess) {
@@ -179,19 +195,19 @@
steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 42));
steProtocol.setChargeStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 44));
- OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
// 澶嶄綅淇″彿
if (steProtocol.getWaiting()) {
News.info("-------------绗竴姝ャ�乕绌挎杞﹀彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负{}锛岀瓑寰匴CS纭锛侊紒{}",
- slave.getId(),steProtocol.getTaskNo(),steProtocol.getStatus(), resetFlag);
+ slave.getId(), steProtocol.getTaskNo(), steProtocol.getStatus(), resetFlag);
if (resetFlag) {
SteCommand steCommand = new SteCommand();
steCommand.setComplete(true);
if (write(steCommand) && confirmPos()) {
resetFlag = false;
News.info("绗簩姝ャ�佸彂閫佸浣嶅懡浠ゆ垚鍔� resetFlag = false,[绌挎杞﹀彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负{}锛岀瓑寰匴CS纭锛侊紒{}",
- slave.getId(),steProtocol.getTaskNo(),steProtocol.getStatus(), resetFlag);
+ slave.getId(), steProtocol.getTaskNo(), steProtocol.getStatus(), resetFlag);
}
}
}
@@ -208,14 +224,14 @@
BasSte basSte = new BasSte();
basSte.setSteNo(slave.getId());
- if (!service.updateById(steProtocol.toSqlModel(basSte))){
+ if (!service.updateById(steProtocol.toSqlModel(basSte))) {
News.error("绌挎杞lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
}
} else {
- OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆憑1}绌挎杞lc鐘舵�佷俊鎭け璐�",DateUtils.convert(new Date()), slave.getId()));
- throw new CoolException(MessageFormat.format( "绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
+ OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆憑1}绌挎杞lc鐘舵�佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
+ throw new CoolException(MessageFormat.format("绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
}
} catch (Exception e) {
// e.printStackTrace();
@@ -229,7 +245,7 @@
/**
* 鍐欏叆鏁版嵁
*/
- private synchronized boolean write(SteCommand command){
+ private synchronized boolean write(SteCommand command) {
if (null == command) {
News.error("绌挎杞﹀啓鍏ュ懡浠や负绌�");
return false;
@@ -257,29 +273,29 @@
result = siemensS7Net.Write("V2000.0", true);
}
- // 鍏朵粬鎸囦护
+ // 鍏朵粬鎸囦护
} else {
// 鎺у埗妯″紡
if (command.getControlMode() != null) {
- result = siemensS7Net.Write("V1010", command.getControlMode());
- // 澶嶄綅淇″彿
+ result = siemensS7Net.Write("V1010", command.getControlMode());
+ // 澶嶄綅淇″彿
} else if (command.getReset() != null) {
- result = siemensS7Net.Write("V2000.2", command.getReset());
- // 鍒犻櫎鎸囦护
+ result = siemensS7Net.Write("V2000.2", command.getReset());
+ // 鍒犻櫎鎸囦护
} else if (command.getDelete() != null) {
- result = siemensS7Net.Write("V2000.3", command.getDelete());
- // 鏃犳晥鎸囦护
- } else if (command.getRun() != null) {
- result = siemensS7Net.Write("V1016", command.getRun());
+ result = siemensS7Net.Write("V2000.3", command.getDelete());
// 鏃犳晥鎸囦护
- }else {
+ } else if (command.getRun() != null) {
+ result = siemensS7Net.Write("V1016", command.getRun());
+ // 鏃犳晥鎸囦护
+ } else {
return false;
}
}
- // 浠诲姟瀹屾垚
+ // 浠诲姟瀹屾垚
} else {
- News.info("鏀跺埌绌挎鏉跨‘璁や俊鍙峰悗鍑嗗缁欏浣嶆爣璁帮紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus());
+ News.info("鏀跺埌绌挎鏉跨‘璁や俊鍙峰悗鍑嗗缁欏浣嶆爣璁帮紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}", slave.getId(), steProtocol.getTaskNo(), steProtocol.getStatus());
siemensS7Net.Write("V998", (short) 0);
siemensS7Net.Write("V1000", (short) 0);
siemensS7Net.Write("V2000.0", false);
@@ -313,7 +329,8 @@
}
}
- } catch (Exception ignore) {}
+ } catch (Exception ignore) {
+ }
if (result != null && result.IsSuccess) {
// 缁存姢鏁版嵁搴撴帓鍒楀眰
@@ -328,7 +345,7 @@
try {
Thread.sleep(500);
- } catch (Exception e){
+ } catch (Exception e) {
}
OperateResultExOne<byte[]> result1 = siemensS7Net.Read("V998", (short) 4);
@@ -336,8 +353,8 @@
short taskNo = siemensS7Net.getByteTransform().TransInt16(result1.Content, 0);
short taskType = siemensS7Net.getByteTransform().TransInt16(result1.Content, 2);
// readStatus();
- News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶鍐欏叆鏁版嵁锛岀┛姊澘ID={}, 浠诲姟鍙�={}, 浣滀笟绫诲瀷={}",slave.getId(), taskNo, taskType);
- News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶绌挎鏉跨姸鎬侊紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus());
+ News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶鍐欏叆鏁版嵁锛岀┛姊澘ID={}, 浠诲姟鍙�={}, 浣滀笟绫诲瀷={}", slave.getId(), taskNo, taskType);
+ News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶绌挎鏉跨姸鎬侊紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}", slave.getId(), steProtocol.getTaskNo(), steProtocol.getStatus());
}
resetFlag = false;
return true;
@@ -366,7 +383,7 @@
BasSte basSte = service.selectById(slave.getId());
if (basSte != null) {
// 鏇存柊plc鏁版嵁鍧�
- short[] arr = new short[] {basSte.getRow().shortValue(), basSte.getBay().shortValue(), basSte.getLev().shortValue()};
+ short[] arr = new short[]{basSte.getRow().shortValue(), basSte.getBay().shortValue(), basSte.getLev().shortValue()};
OperateResult result = siemensS7Net.Write("V1002", arr);
if (result.IsSuccess) {
// 鏇存柊鏁版嵁搴�
@@ -381,7 +398,7 @@
}
public boolean modifyPosHandle(Integer row, Integer bay, Integer lev) {
- short[] arr = new short[] {row.shortValue(), bay.shortValue(), lev.shortValue()};
+ short[] arr = new short[]{row.shortValue(), bay.shortValue(), lev.shortValue()};
OperateResult result = siemensS7Net.Write("V1002", arr);
if (!result.IsSuccess) {
News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev);
@@ -403,7 +420,7 @@
/**
* 蹇冭烦
*/
- private void heartbeat(){
+ private void heartbeat() {
if (heartBeatVal == 1) {
heartBeatVal = 2;
} else {
@@ -467,7 +484,7 @@
// 绌挎杞﹁繍琛岀姝�
SteCommand command = new SteCommand();
- command.setRun((short)0);
+ command.setRun((short) 0);
thread.write(command);
}
--
Gitblit v1.9.1