From bdd676ea0246acd555fff9c98c8d0bf24865437c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 19 一月 2026 17:42:50 +0800
Subject: [PATCH] WCS功能完善
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 60 +++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 41 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 cfc018f..9b06e15 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -45,20 +45,20 @@
private short heartBeatVal = 1;
private StaError1 staError1;
public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
- add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);
+ add(201);add(202);add(203);add(204);add(205);
}};
public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
- add(1); add(2);
+ add(1); add(2);add(3);
}};
public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
- add(104); add(106);
+ add(201); add(203); add(205);
}};
/**
* 鏉$爜鏁伴噺
*/
- private int barcodeSize = 2;
+ private int barcodeSize = 3;
/**
* 鍏ュ嚭搴撴ā寮�
@@ -98,6 +98,9 @@
case 2:
write((StaProtocol)task.getData());
// log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
+ break;
+ case 3:
+ write1((StaProtocol)task.getData());
break;
default:
break;
@@ -183,7 +186,7 @@
private void read() {
// 绔欑偣淇℃伅
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*5));
if (result.IsSuccess) {
for (int i = 0; i < staNos.size(); i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -205,8 +208,9 @@
staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
staProtocol.setHigh(status[6]); // 楂樺簱浣�
- staProtocol.setLow(status[7]); // 涓簱浣�
- staProtocol.setCenter(status[8]); // 浣庡簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
+ staProtocol.setChang(status[8]); // 闀挎墭鐩�
+ staProtocol.setDuan(status[9]); // 鐭墭鐩�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
@@ -220,7 +224,7 @@
}
// 鏉$爜鎵弿鍣�
- OperateResultExOne<byte[]> barcodeResult = siemensS7Net.Read("DB101.400", (short) (BarcodeList.size() * 10));
+ OperateResultExOne<byte[]> barcodeResult = siemensS7Net.Read("DB101.600", (short) (BarcodeList.size() * 10));
if (barcodeResult.IsSuccess) {
for (int i = 0; i < BarcodeList.size(); i++) {
String barcode = siemensS7Net.getByteTransform().TransString(barcodeResult.Content,i*10 + 2,8, "UTF-8");
@@ -232,28 +236,28 @@
}
// 澶栧舰妫�娴�
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.430", (short) (staNosErrList.size() *4)); // 涓嶈繛缁紝澶氳涓棿涓�涓�
+ OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.700", (short) (staNosErrList.size() *4)); // 涓嶈繛缁紝澶氳涓棿涓�涓�
if (resultErr.IsSuccess){
for (int i = 0;i<staNosErrList.size();i++){
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4 + 2, 1);
StaProtocol staProtocol = station.get(staNosErrList.get(i));
staProtocol.setFrontErr(status[0]);
staProtocol.setBackErr(status[1]);
staProtocol.setHighErr(status[2]);
staProtocol.setLeftErr(status[3]);
staProtocol.setRightErr(status[4]);
- staProtocol.setGroupSupportErr(status[5]);
+// staProtocol.setGroupSupportErr(status[5]);
+ staProtocol.setWeightErr(status[5]);
staProtocol.setBarcodeErr(status[6]);
- staProtocol.setWeightErr(status[7]);
- short goodsHeight = siemensS7Net.getByteTransform().TransInt16(resultErr.Content, i * 4 + 2);
- staProtocol.setGoodsHeight(goodsHeight);
+// short goodsHeight = siemensS7Net.getByteTransform().TransInt16(resultErr.Content, i * 4 + 2);
+// staProtocol.setGoodsHeight(goodsHeight);
}
}
// 鏁呴殰淇℃伅鍙嶉
- OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.442", (short) (staNos.size() * 4));
+ OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.400", (short) (staNos.size() * 4));
if (resultErr2.IsSuccess) {
- for (int i = 0; i < staNos.size(); i++) {
+ for (int i = 0; i < staNos.size(); i++) {
boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4 + 2, 1);
StaProtocol staProtocol = station.get(staNos.get(i)); // 绔欑偣缂栧彿
staProtocol.setBreakerErr(status[0]);
@@ -305,15 +309,15 @@
return;
}
- int address = staNos.indexOf(staProtocol.getSiteId()) * 4;
+ int address = staNos.indexOf(staProtocol.getSiteId()) * 6;
OperateResult write;
OperateResult write1;
//浠诲姟涓嬪彂娆℃暟
int writeCount = 0;
do {
- write = siemensS7Net.Write("DB100." + address, staProtocol.getWorkNo().shortValue()); // 宸ヤ綔鍙�
- write1 = siemensS7Net.Write("DB100." + (address + 2), staProtocol.getStaNo()); // 鐩爣绔�
+ write1 = siemensS7Net.Write("DB100." + (address + 4), staProtocol.getStaNo()); // 鐩爣绔�
+ write = siemensS7Net.Write("DB100." + address, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
Thread.sleep(200);
if(write.IsSuccess && write1.IsSuccess){
break;
@@ -339,6 +343,24 @@
}
/**
+ * 鎵爜鍣ㄨЕ鍙�
+ */
+ private void write1(StaProtocol staProtocol) {
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult writeResult1 = siemensS7Net.Write("DB100.500", true); // 鎵爜鍣ㄨЕ鍙�
+ if (!writeResult1.IsSuccess) {
+
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆鎵爜鍣ㄨЕ鍙戞暟鎹け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ log.info("鎵爜鍣ㄨЕ鍙戜笅鍙� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
+ /**
* 蹇冭烦
*/
private void heartbeat(){
--
Gitblit v1.9.1