From 39daa3f36baae1f28a8c9df5c7230e357dcb2f9e Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 24 三月 2025 13:51:51 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 296 ++++++++++-------------------------------------------------
1 files changed, 51 insertions(+), 245 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 70ae6a1..a245b82 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -40,7 +40,6 @@
public class SiemensDevpThread implements Runnable, DevpThread {
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
- add(100);
add(101);
add(102);
add(103);
@@ -61,15 +60,35 @@
add(118);
add(119);
add(120);
- add(121);
- add(122);
- add(123);
- add(124);
- add(125);
- add(1001);
- add(1002);
- add(1003);
- add(1004);
+
+ add(201);
+ add(202);
+ add(203);
+ add(204);
+ add(205);
+ add(206);
+ add(207);
+ add(208);
+ add(209);
+ add(210);
+ add(211);
+ add(212);
+ add(213);
+ add(214);
+ add(215);
+ add(216);
+ add(217);
+ }};
+
+ public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+ add(301);
+ add(302);
+ add(303);
+ add(304);
+ add(305);
+ add(306);
+ add(307);
+ add(308);
}};
/**
* 鍏ュ嚭搴撴ā寮�
@@ -79,35 +98,24 @@
* 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
* 4.鍑哄簱妯″紡
*/
- public IoModeType ioModeOf2F = IoModeType.NONE;
- public IoModeType ioModeOf4F = IoModeType.NONE;
+ public IoModeType ioModeOf1F1 = IoModeType.NONE;
+ public IoModeType ioModeOf1F2 = IoModeType.NONE;
+ public IoModeType ioModeOf1F3 = IoModeType.NONE;
+ public IoModeType ioModeOf1F4 = IoModeType.NONE;
+ public IoModeType ioModeOf1F5 = IoModeType.NONE;
+
+ public IoModeType ioModeOf2F1 = IoModeType.NONE;
+ public IoModeType ioModeOf2F2 = IoModeType.NONE;
+ public IoModeType ioModeOf2F3 = IoModeType.NONE;
+
private DevpSlave slave;
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
- /*public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
- add(200);add(201);add(202);add(203);
- add(204);add(205);add(206);add(207);
- add(208);add(209);add(210);add(211);
- add(212);add(213);add(214);add(215);
- add(216);add(217);add(218);add(219);
- add(220);add(221);add(222);add(223);
- add(224);add(225);add(226);add(227);
- add(228);add(229);add(230);add(231);
- add(232);add(233);add(234);add(235);
- }};
- public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{
- add(300);add(301);add(302);add(303);
- add(304);add(305);add(306);add(307);
- }};
- public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{
- add(400);add(401);add(402);add(403);
- add(404);add(405);add(406);add(407);
- }};*/
- private short heartBeatVal = 1;
+
/**
* 鏉$爜鏁伴噺
*/
- private int barcodeSize = 1;
+ private int barcodeSize = 8;
public SiemensDevpThread(DevpSlave slave) {
this.slave = slave;
@@ -132,12 +140,8 @@
switch (slave.getId()) {
case 1:
return staNos1;
- /*case 2:
+ case 2:
return staNos2;
- case 3:
- return staNos3;
- case 4:
- return staNos4;*/
default:
throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
}
@@ -164,20 +168,9 @@
write((StaProtocol) task.getData());
read();
break;
- // 鍐欐暟鎹� ID+鐩爣绔�
- case 4:
- writeAgvOk((StaProtocol) task.getData());
- read();
- break;
- /* case 3:
- write2((StaProtocol)task.getData());
- read();
- break;*/
default:
break;
}
- // 蹇冭烦
-// heartbeat();
Thread.sleep(400);
} catch (Exception e) {
e.printStackTrace();
@@ -240,7 +233,7 @@
*/
private void read() throws InterruptedException {
// 鏇存柊鍏ュ嚭搴撴ā寮�
- updateIoMode();
+// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
@@ -272,72 +265,6 @@
}
}
}
-
-// OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30);
-// if (resultAgvAndPlc.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// int sign =(i+2)/2-1;
-// if ((i+2)%2!=0){
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣
-// staProtocol.setAgvStartPlace((short)0); // 鍏佽鏀捐揣
-// continue;
-// }
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣
-// staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣
-// }
-// }
-
-// OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
-// if (resultAgvAndPlcOk.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// int sign =(i+2)/2-1;
-// if ((i+2)%2!=0){
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 鍏佽鍙栬揣
-// staProtocol.setAgvTargetPlace((short)0); // 鍏佽鏀捐揣
-// continue;
-// }
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// try{
-// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 鍙栬揣瀹屾垚
-// if (staProtocol.getAgvTargetPick()!=0){
-// System.out.println(staProtocol.getAgvTargetPick());
-// }
-// staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 鏀捐揣瀹屾垚
-// if (staProtocol.getAgvTargetPlace()!=0){
-// System.out.println(staProtocol.getAgvTargetPlace());
-// }
-// }catch (Exception e){
-// log.error(""+e);
-// }
-// }
-// }
if (slave.getId() == 1) {
@@ -387,29 +314,6 @@
}
-// //RGV鍙拌溅浣嶇疆
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4);
-// if (result3.IsSuccess) {
-// for (int i = 0; i < 2; i++) {
-// Integer siteId = i==0 ? 1 : 2; // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2)));
-//// String aa = staProtocol.getNearbySta();
-//// System.out.println(siteId + "===>>" + staProtocol.getNearbySta());
-// }
-// }
-
-// OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
-// if (result2.IsSuccess) {
-// this.ioMode = IoModeType.get(result2.Content);
-// }
-
if (result.IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
@@ -442,90 +346,6 @@
}
}
- /**
- * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
- */
- private void writeAgvOk(StaProtocol staProtocol) throws InterruptedException {
- if (null == staProtocol) {
- return;
- }
- ArrayList<Integer> staNos = getStaNo();
- int index = staNos.indexOf(staProtocol.getSiteId());
- if (staProtocol.getAgvTypeSign() == 0 || staProtocol.getAgvTypeSign() == 2) { //0鍙栬揣
- switch (staProtocol.getSiteId()) {
- case 100:
- index = 32;
- break;
- case 101:
- index = 34;
- break;
- case 102:
- index = 38;
- break;
- case 103:
- index = 40;
- break;
- case 104:
- index = 44;
- break;
- case 105:
- index = 46;
- break;
- case 106:
- index = 50;
- break;
- case 107:
- index = 52;
- break;
- default:
- return;
- }
- } else {
- switch (staProtocol.getSiteId()) {
- case 100:
- index = 30;
- break;
- case 102:
- index = 36;
- break;
- case 104:
- index = 42;
- break;
- case 106:
- index = 48;
- break;
- default:
- return;
- }
- }
-
- OperateResult write = null;
- //浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- do {
- short textWrite = 1;// 浠诲姟瀹屾垚
- if (staProtocol.getAgvTypeSign() > 1) {
- textWrite = 0;// 浠诲姟澶嶄綅
- }
- write = siemensS7Net.Write("DB102." + index, textWrite);
- if (write.IsSuccess) {
- writeCount = 6;
- } else {
- writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠ゅ悗璇诲彇澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
- }
- } while (writeCount < 5);
-
- if (!write.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 write(StaProtocol staProtocol) throws InterruptedException {
if (null == staProtocol) {
@@ -723,46 +543,32 @@
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
- if (slave.getId() == 2 && this.ioModeOf2F != null) {
- if (!siemensS7Net.Write("DB4.2", this.ioModeOf2F.id).IsSuccess) {
+ if (slave.getId() == 1 && this.ioModeOf1F1 != null) {
+ if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F1.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId()));
log.error("鍐欏叆杈撻�佺嚎2F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
- if (slave.getId() == 2 && this.ioModeOf2F != null) {
- if (!siemensS7Net.Write("DB4.4", this.ioModeOf2F.id).IsSuccess) {
+ if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
+ if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId()));
log.error("鍐欏叆杈撻�佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
- if (slave.getId() == 3 && this.ioModeOf2F != null) {
- if (!siemensS7Net.Write("DB4.2", this.ioModeOf2F.id).IsSuccess) {
+ if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
+ if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F2.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId()));
log.error("鍐欏叆杈撻�佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
- if (slave.getId() == 3 && this.ioModeOf2F != null) {
- if (!siemensS7Net.Write("DB4.4", this.ioModeOf2F.id).IsSuccess) {
+ if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
+ if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId()));
log.error("鍐欏叆杈撻�佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
}
- /**
- * 蹇冭烦
- */
- private void heartbeat() {
- if (heartBeatVal == 1) {
- heartBeatVal = 2;
- } else {
- heartBeatVal = 1;
- }
- OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
- if (!write.IsSuccess) {
- log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
- }
- }
/**
* 璁剧疆鍏ュ簱鏍囪
--
Gitblit v1.9.1