From 09c46e67c54d9ea538e2041565f57e995c60ccb8 Mon Sep 17 00:00:00 2001
From: Administrator <pjb>
Date: 星期日, 25 五月 2025 12:58:52 +0800
Subject: [PATCH] 外置输送线修改
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 4
src/main/resources/application-prod.yml | 6
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 360 ++++++++++++++++++++++++++++-----------------------
3 files changed, 206 insertions(+), 164 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 3b99f20..205fe6a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -191,6 +191,10 @@
} else {
StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
.eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ if (staDesc == null) {
+ log.error("zutuo鍏ュ簱璺緞涓嶅瓨鍦紝wrkNo={},crn={},stn_no={}",taskWrk.getWrkNo(),taskWrk.getCrnNo(),staProtocol.getSiteId());
+ continue;
+ }
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index fe5dffa..70471e5 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -185,190 +185,222 @@
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
+ OperateResultExOne<byte[]> result;
+ if (slave.getId() == 1) {
+ // 璇绘闈㈣揣浣嶄俊鎭弽棣�
+ result = siemensS7Net.Read("DB101.0", (short) (16 * 8));
+ if (result.IsSuccess) {
+ for (int i = 0; i < 16; 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((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙�
- // 璇绘闈㈣揣浣嶄俊鎭弽棣�
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (16 * 8));
- if (result.IsSuccess) {
- for (int i = 0; i < 16; 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((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔�
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 2);
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setOutEnable(status[3]);// 鍙嚭
+ staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
+ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
+ staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 2);
- staProtocol.setAutoing(status[0]); // 鑷姩
- staProtocol.setLoading(status[1]); // 鏈夌墿
- staProtocol.setInEnable(status[2]); // 鍙叆
- staProtocol.setOutEnable(status[3]);// 鍙嚭
- staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
- staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
- staProtocol.setHigh(status[6]); // 楂樺簱浣�
- staProtocol.setLow(status[7]); // 浣庡簱浣�
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
}
}
- }
+ // 璇讳晶闈㈣揣浣嶄俊鎭弽棣�
+ OperateResultExOne<byte[]> resultCm = siemensS7Net.Read("DB101.800", (short) (12 * 8));
+ if (resultCm.IsSuccess) {
+ for (int i = 16; 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((short) siemensS7Net.getByteTransform().TransInt32(resultCm.Content, (i - 16) * 8)); // 宸ヤ綔鍙�
- // 璇讳晶闈㈣揣浣嶄俊鎭弽棣�
- OperateResultExOne<byte[]> resultCm = siemensS7Net.Read("DB101.800", (short) (12 * 8));
- if (resultCm.IsSuccess) {
- for (int i = 16; 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((short) siemensS7Net.getByteTransform().TransInt32(resultCm.Content, (i-16) * 8)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(resultCm.Content, (i - 16) * 8 + 4)); // 鐩爣绔�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(resultCm.Content, (i-16) * 8 + 4)); // 鐩爣绔�
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultCm.Content, (i - 16) * 8 + 6, 2);
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setOutEnable(status[3]);// 鍙嚭
+ staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
+ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
+ staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultCm.Content, (i-16) * 8 + 6, 2);
- staProtocol.setAutoing(status[0]); // 鑷姩
- staProtocol.setLoading(status[1]); // 鏈夌墿
- staProtocol.setInEnable(status[2]); // 鍙叆
- staProtocol.setOutEnable(status[3]);// 鍙嚭
- staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
- staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
- staProtocol.setHigh(status[6]); // 楂樺簱浣�
- staProtocol.setLow(status[7]); // 浣庡簱浣�
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
}
}
- }
- // 璇诲彇姝i潰鏉$爜
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8));
- if (result2.IsSuccess) {
- for (int i = 0; i < 16; i++) {
- int barcodeId = 0;
- switch (i) {
- case 1:
- barcodeId = 1;
- break;
- case 4:
- barcodeId = 2;
- break;
- case 7:
- barcodeId = 3;
- break;
- case 10:
- barcodeId = 4;
- break;
- case 13:
- barcodeId = 5;
- break;
- default:
+ // 璇诲彇姝i潰鏉$爜
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < 16; i++) {
+ int barcodeId = 0;
+ switch (i) {
+ case 1:
+ barcodeId = 1;
+ break;
+ case 4:
+ barcodeId = 2;
+ break;
+ case 7:
+ barcodeId = 3;
+ break;
+ case 10:
+ barcodeId = 4;
+ break;
+ case 13:
+ barcodeId = 5;
+ break;
+ default:
+ }
+ if (barcodeId != 0) {
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+ if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
}
- if (barcodeId != 0) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+ }
+
+ // 璇诲彇渚ч潰鏉$爜
+ OperateResultExOne<byte[]> resultCM2 = siemensS7Net.Read("DB101.2574", (short) (3 * 4 * 6));
+ if (resultCM2.IsSuccess) {
+ for (int i = 8; i >= 6; i--) {
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i);
+ List<String> barcodes = new ArrayList<>();
+ for (int j = 0; j < 4; j++) {
+ String barcode1 = siemensS7Net.getByteTransform().TransString(resultCM2.Content, (8 - i) * 24 + j * 6, 6, "UTF-8");
+ if (!Cools.isEmpty(barcode1) && !barcode1.equals("000000") && !barcode1.equals("NoRead")) {
+ barcodes.add(barcode1);
+ }
+ }
+ String barcode = String.join("#", barcodes);
if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
}
}
}
- }
- // 璇诲彇渚ч潰鏉$爜
- OperateResultExOne<byte[]> resultCM2 = siemensS7Net.Read("DB101.2574", (short) (3 * 4 * 6));
- if (resultCM2.IsSuccess) {
- for (int i= 8; i >= 6; i --) {
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i);
- List<String> barcodes = new ArrayList<>();
- for(int j = 0; j < 4; j ++) {
- String barcode1 = siemensS7Net.getByteTransform().TransString(resultCM2.Content, (8-i) * 24 + j *6, 6, "UTF-8");
- if (!Cools.isEmpty(barcode1)&&!barcode1.equals("000000")&& !barcode1.equals("NoRead")) {
- barcodes.add(barcode1);
+ // 璇诲彇姝i潰澶栧舰妫�娴�
+ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (16 * 8));
+ if (resultErr1.IsSuccess) {
+ for (int i = 0; i < 16; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1);
+ staProtocol.setFrontErr(status1[0]);
+ staProtocol.setBackErr(status1[1]);
+ staProtocol.setHighErr(status1[2]);
+ staProtocol.setLeftErr(status1[3]);
+ staProtocol.setRightErr(status1[4]);
+ staProtocol.setWeightErr(status1[5]);
+ staProtocol.setBarcodeErr(status1[6]);
+ }
+ }
+
+ // 璇诲彇渚ч潰澶栧舰妫�娴�
+ OperateResultExOne<byte[]> resultErrCM1 = siemensS7Net.Read("DB101.1336", (short) (12 * 8));
+ if (resultErrCM1.IsSuccess) {
+ for (int i = 16; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErrCM1.Content, (i - 16) * 2, 1);
+ staProtocol.setFrontErr(status1[0]);
+ staProtocol.setBackErr(status1[1]);
+ staProtocol.setHighErr(status1[2]);
+ staProtocol.setLeftErr(status1[3]);
+ staProtocol.setRightErr(status1[4]);
+ staProtocol.setWeightErr(status1[5]);
+ staProtocol.setBarcodeErr(status1[6]);
+ }
+ }
+
+ // 璇绘闈㈡晠闅滃弽棣�
+ OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (16 * 4));
+ if (resultErr.IsSuccess) {
+ for (int i = 0; i < 16; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
+ StaProtocol staProtocol = station.get(siteId);
+ staProtocol.setBreakerErr(status[0]);
+ staProtocol.setInfraredErr(status[1]);
+ staProtocol.setOutTimeErr(status[2]);
+ staProtocol.setSeizeSeatErr(status[3]);
+ staProtocol.setWrkYgoodsN(status[4]);
+ staProtocol.setInverterErr(status[5]);
+ staProtocol.setContactErr(status[6]);
+ staProtocol.setUpcontactErr(status[7]);
+
+ }
+ }
+
+ // 璇讳晶闈㈡晠闅滃弽棣�
+ OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 4));
+ if (resultErrCM.IsSuccess) {
+ for (int i = 16; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i - 16) * 4, 1);
+ StaProtocol staProtocol = station.get(siteId);
+ staProtocol.setBreakerErr(status[0]);
+ staProtocol.setInfraredErr(status[1]);
+ staProtocol.setOutTimeErr(status[2]);
+ staProtocol.setSeizeSeatErr(status[3]);
+ staProtocol.setWrkYgoodsN(status[4]);
+ staProtocol.setInverterErr(status[5]);
+ staProtocol.setContactErr(status[6]);
+ staProtocol.setUpcontactErr(status[7]);
+
+ }
+ }
+ } else {
+ // 璇诲缃緭閫佺嚎璐т綅淇℃伅鍙嶉
+ result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
+ if (result.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((short) 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);
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setOutEnable(status[3]);// 鍙嚭
+ staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
+ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
+ staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
+
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
}
}
- String barcode = String.join("#",barcodes);
- if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
- barcodeThread.setBarcode(barcode);
- }
- }
- }
-
- // 璇诲彇姝i潰澶栧舰妫�娴�
- OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (16 * 8));
- if (resultErr1.IsSuccess) {
- for (int i = 0; i < 16; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
- boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1);
- staProtocol.setFrontErr(status1[0]);
- staProtocol.setBackErr(status1[1]);
- staProtocol.setHighErr(status1[2]);
- staProtocol.setLeftErr(status1[3]);
- staProtocol.setRightErr(status1[4]);
- staProtocol.setWeightErr(status1[5]);
- staProtocol.setBarcodeErr(status1[6]);
- }
- }
-
- // 璇诲彇渚ч潰澶栧舰妫�娴�
- OperateResultExOne<byte[]> resultErrCM1 = siemensS7Net.Read("DB101.1336", (short) (12 * 8));
- if (resultErrCM1.IsSuccess) {
- for (int i = 16; i < staNoSize; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
- boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErrCM1.Content, (i-16) * 2, 1);
- staProtocol.setFrontErr(status1[0]);
- staProtocol.setBackErr(status1[1]);
- staProtocol.setHighErr(status1[2]);
- staProtocol.setLeftErr(status1[3]);
- staProtocol.setRightErr(status1[4]);
- staProtocol.setWeightErr(status1[5]);
- staProtocol.setBarcodeErr(status1[6]);
- }
- }
-
- // 璇绘闈㈡晠闅滃弽棣�
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (16 * 4));
- if (resultErr.IsSuccess) {
- for (int i = 0; i < 16; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setBreakerErr(status[0]);
- staProtocol.setInfraredErr(status[1]);
- staProtocol.setOutTimeErr(status[2]);
- staProtocol.setSeizeSeatErr(status[3]);
- staProtocol.setWrkYgoodsN(status[4]);
- staProtocol.setInverterErr(status[5]);
- staProtocol.setContactErr(status[6]);
- staProtocol.setUpcontactErr(status[7]);
-
- }
- }
-
- // 璇讳晶闈㈡晠闅滃弽棣�
- OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 4));
- if (resultErrCM.IsSuccess) {
- for (int i = 16; i < staNoSize; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i-16) * 4, 1);
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setBreakerErr(status[0]);
- staProtocol.setInfraredErr(status[1]);
- staProtocol.setOutTimeErr(status[2]);
- staProtocol.setSeizeSeatErr(status[3]);
- staProtocol.setWrkYgoodsN(status[4]);
- staProtocol.setInverterErr(status[5]);
- staProtocol.setContactErr(status[6]);
- staProtocol.setUpcontactErr(status[7]);
-
}
}
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 6b25e67..7eb1333 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -198,6 +198,12 @@
staNo: 207
outSta[7]: #鍑哄簱鍙�8
staNo: 203
+ devp[1]: #杈撻�佺嚎
+ id: 2
+ ip: 10.49.210.68
+ rack: 0
+ port: 102
+ slot: 0
# devp[1]: #杈撻�佺嚎
# id: 2
--
Gitblit v1.9.1