From 5ab75e054876ff118f21701f409deb4470fc92f3 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期六, 02 八月 2025 12:54:02 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 42 +++++++++++++++++++++++-------------------
1 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 822dc46..d16acba 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -360,8 +360,8 @@
* 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void readsanqi() throws InterruptedException {
- ArrayList<Integer> staNos = getStaNo();
- int staNoSize = staNos.size();
+ ArrayList<Integer> staNos = staNos3;
+ int staNoSize = staNos3.size();
//
OperateResultExOne<byte[]> resultsanqi = siemensS7Net.Read("DB101.120", (short) (staNoSize * 8));
@@ -397,17 +397,20 @@
//澶栧舰妫�娴� 涓夋湡
- OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) 8);
+ OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) (staNoSize * 8));
if (resultErrsanqi.IsSuccess) {
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, 0, 1);
- StaProtocol staProtocol = station.get(304);
- staProtocol.setFrontErr(status[0]);
- staProtocol.setBackErr(status[1]);
- staProtocol.setHighErr(status[2]);
- staProtocol.setLeftErr(status[3]);
- staProtocol.setRightErr(status[4]);
- staProtocol.setWeightErr(status[5]);
- staProtocol.setBarcodeErr(status[6]);
+ for (int i = 0; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, i * 4, 1);
+ StaProtocol staProtocol = station.get(siteId);
+ staProtocol.setFrontErr(status[0]);
+ staProtocol.setBackErr(status[1]);
+ staProtocol.setHighErr(status[2]);
+ staProtocol.setLeftErr(status[3]);
+ staProtocol.setRightErr(status[4]);
+ staProtocol.setWeightErr(status[5]);
+ staProtocol.setBarcodeErr(status[6]);
+ }
}
@@ -476,9 +479,10 @@
OperateResult write = null;
OperateResult write1 = null;
int index;
+ int index2 = 0;
if (staProtocol.getSiteId() >= 310) {
index = staNos3.indexOf(staProtocol.getSiteId());
- index = index + 54;
+ index2 = 66;
} else {
index = staNos.indexOf(staProtocol.getSiteId());
}
@@ -507,10 +511,10 @@
boolean writeFlag = false;
while (writeCount < 5) {
// 鍐�2鍙疯緭閫佺嚎
- write = siemensS7Net.Write("DB100." + index * 4, array); // 宸ヤ綔鍙枫�佺洰鏍�
+ write = siemensS7Net.Write("DB100." + (index * 4 + index2), array); // 宸ヤ綔鍙枫�佺洰鏍�
if (write.IsSuccess) {
Thread.sleep(200);
- OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 4);
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 4 + index2), (short) 4);
//OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
if (readResult.IsSuccess) {
short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
@@ -573,14 +577,14 @@
boolean writeFlag = false;
while (writeCount < 5) {
// 鍐�2鍙疯緭閫佺嚎
- write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
+ write = siemensS7Net.Write("DB100." + (index * 6 + index2), staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
Thread.sleep(200);
- write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔�
+ write1 = siemensS7Net.Write("DB100." + (index * 6 + 4 + index2), staProtocol.getStaNo()); // 鐩爣绔�
if (write.IsSuccess) {
Thread.sleep(200);
- OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4);
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 6 + index2), (short) 4);
Thread.sleep(200);
- OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2);
+ OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4 + index2), (short) 2);
//OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
if (readResult.IsSuccess && readResult1.IsSuccess) {
int workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
--
Gitblit v1.9.1