From 5879527ed5b7349ce7fd7cd3fe92c81307646b21 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 19 九月 2025 11:09:23 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 43 ++++++++++++++++++++++++++++---------------
1 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 175bec9..5c7b264 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -55,8 +55,8 @@
}};
public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
- add(1);add(2);add(3);add(4);
- add(5);add(6);add(7);add(8);
+ add(0);add(1);add(2);add(3);
+ add(4);add(5);add(6);add(7);
}};
public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
@@ -183,7 +183,7 @@
// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*2));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -193,11 +193,7 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
-
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
-
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*2, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
@@ -213,13 +209,29 @@
}
}
+ OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (staNoSize*4));
+ if (result1.IsSuccess) {
+ for (int i = 0; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ staProtocol.setWorkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, i*4)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, i*4 + 2)); // 鐩爣绔�
+ }
+ }
+
//鏉$爜鎵弿鍣�
ArrayList<Integer> barcodeList = BarcodeList;
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.100", (short) (barcodeList.size() * 8));
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.100", (short) (barcodeList.size() * 10));
if (result2.IsSuccess) {
for (int i = 0; i < barcodeList.size(); i++) {
Integer barcodeId = barcodeList.get(i);
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10+2,8, "UTF-8");
+ barcode = barcode.trim();
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
@@ -303,14 +315,15 @@
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
OperateResult write = null;
- OperateResult write1 = null;
//浠诲姟涓嬪彂娆℃暟
int writeCount = 0;
do {
- write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- Thread.sleep(200);
- write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
- if(write.IsSuccess && write1.IsSuccess){
+ short[] data = new short[2];
+ data[0] = staProtocol.getWorkNo().shortValue();
+ data[1] = staProtocol.getStaNo();
+
+ write = siemensS7Net.Write("DB100." + index*4, data);
+ if(write.IsSuccess){
log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
break;
}
--
Gitblit v1.9.1