From f5e8074d44ac8c39e0a8e128b06e3c7572422810 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 13 五月 2023 15:45:20 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 72 +++++++++++++++++++++---------------
1 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 8931a07..b56a2cd 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -47,30 +47,13 @@
//
// }};
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
- add(100);add(101);add(102);add(103);
- add(104);add(105);add(106);add(107);
- add(108);add(109);add(110);add(111);
- add(112);add(113);add(114);add(115);
- add(116);add(117);add(118);add(119);
- add(120);add(121);add(122);add(123);
- add(124);add(125);add(126);add(127);
- add(128);add(129);add(130);add(131);
- add(132);add(133);add(134);add(135);
- add(136);add(137);add(138);add(139);
- add(140);add(141);add(142);add(143);
- add(144);add(145);add(146);add(147);
- add(148);add(149);add(150);add(151);
- add(152);add(153);add(154);add(155);
- add(156);add(157);add(158);
+ add(1);add(2);add(3);add(4);
+ add(5);add(6);add(7);add(8);
+ add(9);add(10);add(11);add(12);
+ add(13);
}};
- 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);
- }};
+
private Integer count=0;
@@ -101,8 +84,6 @@
switch (slave.getId()) {
case 1:
return staNos1;
- case 2:
- return staNos2;
default:
throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
}
@@ -274,9 +255,10 @@
staProtocol.setPakMk(true);
}
- if (staProtocol.getStamp()>=2 && !staProtocol.isLoading()){
+ if (!staProtocol.isLoading()){
staProtocol.setStamp(0);
- }else if (staProtocol.getStamp()<2 && staProtocol.isLoading()){
+ }
+ if (staProtocol.getStamp()<2 && staProtocol.isLoading()){
//lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱
staProtocol.setStamp(staProtocol.getStamp()+1);
}
@@ -377,11 +359,41 @@
array[1] = staProtocol.getStaNo();
// OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
- OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- Thread.sleep(500);
- OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔�
+ OperateResult write = null;
+ OperateResult write1 = null;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ Thread.sleep(500);
+ write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔�
+ if(write.IsSuccess || write1.IsSuccess){
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*2, (short) 2);
+ OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB101." + index*2, (short) 2);
+ if(readResult.IsSuccess && readResult1.IsSuccess){
+ short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+ short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0);
+ if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
+ //浠诲姟鍛戒护鍐欏叆鎴愬姛
+ log.info("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ break;
+ } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+ writeCount++;
+ log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屼絾鏄鍙栦换鍔″�间笉涓�鑷淬�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } else {
+ writeCount++;
+ log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ }
+ else {
+ writeCount++;
+ log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ }while (writeCount<5);
- if (!write.IsSuccess) {
+ if (!write.IsSuccess || !write1.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
staProtocol.setPakMk(true);
--
Gitblit v1.9.1