From 844381b5feeb874c4a6f51bf0521611b3f097993 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 08 一月 2025 17:00:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 361 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 288 insertions(+), 73 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 3fac755..fc563b1 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -5,13 +5,16 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.service.BasDevpService;
import com.zy.core.DevpThread;
+import com.zy.core.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
+import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
@@ -38,12 +41,81 @@
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
+ private int barcodeSize = 10;
public static final ArrayList<Integer> staNos = 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(200);add(201);add(202);add(203);add(204);add(205);
- add(300);add(301);add(302);add(303);add(304);add(305);add(306);
+ add(100);add(101);
+ add(102);add(103);
+ add(104);add(105);
+ add(200);add(201);
+ add(202);add(203);
+ add(204);add(205);
+ add(300);add(301);
+ add(340);add(341);
+ add(345);add(346);
+ add(303);add(317);
+ add(325);add(331);
+ add(333);add(339);
+ add(309);add(312);
}};
+
+ public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+ add(302);add(304);
+ add(305);add(306);
+ add(307);add(308);
+ add(310);add(311);
+ add(312);add(313);
+ add(314);add(315);
+ add(316);add(318);
+ add(319);add(320);
+ add(321);add(322);
+ add(323);add(324);
+ add(326);add(327);
+ add(328);add(329);
+ add(330);add(332);
+ add(334);add(335);
+ add(336);add(337);
+ add(338);add(342);
+ add(343);add(344);
+ }};
+
+ public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{//218
+ add(302);add(304);
+ add(315);add(322);
+ add(324);add(330);
+ add(332);add(337);
+ }};
+
+ public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{//250
+ add(318);add(320);
+ add(343);
+ }};
+
+ //楂樹綆淇″彿绔欑偣
+ public static final ArrayList<Integer> locType1StaNos = new ArrayList<Integer>() {{
+ add(100);add(103);
+ add(105);add(200);
+ add(203);add(205);
+ add(300);add(341);
+ add(346);
+ }};
+
+ //鍑哄叆搴撴ā寮�
+ public static final ArrayList<Integer> outInModelStaNos = new ArrayList<Integer>() {{
+ add(100);add(103);
+ add(105);add(200);
+ add(203);add(205);
+ add(341);add(346);
+ }};
+
+ //鍑哄叆搴撶珯鐐规娴嬫姤璀︿俊鎭�
+ public static final ArrayList<Integer> outInAlarmStaNos = new ArrayList<Integer>(){{
+ add(101);add(102);add(104);
+ add(201);add(202);add(204);
+ add(340);add(345);
+ }};
+
+ public boolean charge0;
+ public boolean charge1;
public SiemensDevpThread(DevpSlave slave) {
this.slave = slave;
@@ -67,7 +139,8 @@
break;
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
- write((StaProtocol)task.getData());
+ write((StaProtocol) task.getData());
+ read();
break;
default:
break;
@@ -92,12 +165,12 @@
if(connect.IsSuccess){
result = true;
OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
} else {
OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
- siemensS7Net.ConnectClose();
+// siemensS7Net.ConnectClose();
return result;
}
@@ -105,9 +178,9 @@
* 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void read() throws InterruptedException {
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 140);
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB1000.0", (short) (staNos.size()*4));
if (result.IsSuccess) {
- for (int i = 0; i < 35; i++) {
+ for (int i = 0; i < staNos.size(); i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
StaProtocol staProtocol = station.get(siteId);
if (null == staProtocol) {
@@ -115,31 +188,16 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2)); // 宸ヤ綔鍙�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2 + 70)); // 鐩爣绔�
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4+2)); // 鐩爣绔�
}
}
- Thread.sleep(50);
- OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB100.180", (short) 28);
- if (result0.IsSuccess) {
- for (int i = 0; i < 7; i++) {
- Integer siteId = staNos.get(i + 35); // 绔欑偣缂栧彿
- StaProtocol staProtocol = station.get(siteId);
- if (null == staProtocol) {
- staProtocol = new StaProtocol();
- staProtocol.setSiteId(siteId);
- station.put(siteId, staProtocol);
- }
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 宸ヤ綔鍙�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2 + 14)); // 鐩爣绔�
- }
- }
- Thread.sleep(50);
- OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.140", (short) 35);
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB1001.0", (short) (staNos.size()*2));
if (result1.IsSuccess) {
- for (int i = 0; i < 35; i++) {
+ for (int i = 0; i < staNos.size(); i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i, 1);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
StaProtocol staProtocol = station.get(siteId);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
@@ -147,38 +205,149 @@
staProtocol.setOutEnable(status[3]);// 鍙嚭
staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
- staProtocol.setHigh(status[6]); // 楂樺簱浣�
- staProtocol.setLow(status[7]); // 浣庡簱浣�
+ staProtocol.setLiftArrival(status[6]); // 鎻愬崌鏈哄埌浣嶄俊鍙�
+ staProtocol.setShuttleTakeEnable(status[7]); // 鎻愬崌鏈哄彲鍙栦俊鍙�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
}
}
}
- Thread.sleep(50);
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.208", (short) 7);
+
+ //璇绘潯鐮�
+ Thread.sleep(100);
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB1000.200", (short) 98);
if (result2.IsSuccess) {
- for (int i = 0; i < 7; i++) {
- Integer siteId = staNos.get(i + 35); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result2.Content, i, 1);
- StaProtocol staProtocol = station.get(siteId);
- 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]); // 浣庡簱浣�
+ for (int i = 0; i < barcodeSize; i++) {
+ if (i >= 10) {
+ continue;
+ }
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
+ String barcode = null;
+ if (i == 8) {
+ barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,13, "UTF-8");
+ } else if (i == 9) {
+ barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8 + 6,13, "UTF-8");
+ } else {
+ barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ }
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
+ if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
}
}
}
- if (result.IsSuccess && result0.IsSuccess && result1.IsSuccess && result2.IsSuccess) {
+ //璇婚珮浣庝俊鍙�
+ Thread.sleep(100);
+ OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB1000.300", (short) (locType1StaNos.size()*2));
+ if (result3.IsSuccess) {
+ for (int i = 0; i < locType1StaNos.size(); i++) {
+ Integer siteId = locType1StaNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ staProtocol.setLocType1(siemensS7Net.getByteTransform().TransInt16(result3.Content, i * 2));//璇诲彇楂樹綆淇″彿
+ }
+ }
+ //璇诲嚭鍏ュ簱妯″紡
+ Thread.sleep(100);
+ OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB1002.0", (short) (outInModelStaNos.size()*2));
+ if (result4.IsSuccess) {
+ for (int i = 0; i < outInModelStaNos.size(); i++) {
+ Integer siteId = outInModelStaNos.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ staProtocol.setOutInModel(siemensS7Net.getByteTransform().TransInt16(result4.Content, i * 2));//璇诲彇鍑哄叆搴撴ā寮�
+ }
+ }
+
+// //鍑哄叆搴撶珯鐐规娴嬫姤璀︿俊鎭�
+// Thread.sleep(100);
+// for (Integer staNo : outInAlarmStaNos) {
+// OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".20.0", (short) 2);
+// if (result5.IsSuccess) {
+// if (staNo == 101 || staNo == 201) {
+// staNo--;
+// }else {
+// staNo++;
+// }
+// StaProtocol staProtocol = station.get(staNo);
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 2);
+// staProtocol.setBarcodeErr(status[4]);//鎵爜澶辫触
+// staProtocol.setFrontErr(status[8]);//鍓嶈秴闄�
+// staProtocol.setBackErr(status[9]);//鍚庤秴闄�
+// staProtocol.setLeftErr(status[10]);//宸﹁秴闄�
+// staProtocol.setRightErr(status[11]);//鍙宠秴闄�
+// staProtocol.setHighErr(status[12]);//瓒呴珮
+// staProtocol.setWeightErr(status[13]);//瓒呴噸
+// }
+// }
+//
+// Thread.sleep(100);
+// for (Integer staNo : staNos2) {
+// OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".0", (short) 48);
+// if (result5.IsSuccess) {
+// StaProtocol staProtocol = station.get(staNo);
+// StaProtocol staProtocol300 = station.get(300);
+// if (null == staProtocol) {
+// staProtocol = new StaProtocol();
+// staProtocol.setSiteId(staNo);
+// station.put(staNo, staProtocol);
+// }
+//
+// boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result5.Content, 1, 1);
+// staProtocol.setAutoing(staProtocol300.isAutoing()); // 鑷姩
+// staProtocol.setLoading(!status1[2]); // 鏈夌墿
+//
+// if (staNos3.contains(staNo) || staNos4.contains(staNo)) {
+// continue;
+// }
+// if (staNo == 344) {
+// staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result5.Content, 34)); // 宸ヤ綔鍙�
+// }else {
+// staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result5.Content, 22)); // 宸ヤ綔鍙�
+// }
+// }
+// }
+//
+// Thread.sleep(100);
+// for (Integer staNo : staNos3) {
+// OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".22.0", (short) 2);
+// OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB" + staNo + ".218.0", (short) 2);
+// if (result5.IsSuccess && result6.IsSuccess) {
+// StaProtocol staProtocol = station.get(staNo);
+// short wrkNo1 = siemensS7Net.getByteTransform().TransInt16(result5.Content, 0);
+// short wrkNo2 = siemensS7Net.getByteTransform().TransInt16(result6.Content, 0);
+// short wrkNo = 0;
+// if (wrkNo1 != 0) {
+// wrkNo = wrkNo1;
+// }
+// if (wrkNo2 != 0) {
+// wrkNo = wrkNo2;
+// }
+// staProtocol.setWorkNo(wrkNo); // 宸ヤ綔鍙�
+// }
+// }
+//
+// Thread.sleep(100);
+// for (Integer staNo : staNos4) {
+// OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB" + staNo + ".22.0", (short) 2);
+// OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB" + staNo + ".250.0", (short) 2);
+// if (result5.IsSuccess && result6.IsSuccess) {
+// StaProtocol staProtocol = station.get(staNo);
+// short wrkNo1 = siemensS7Net.getByteTransform().TransInt16(result5.Content, 0);
+// short wrkNo2 = siemensS7Net.getByteTransform().TransInt16(result6.Content, 0);
+// short wrkNo = 0;
+// if (wrkNo1 != 0) {
+// wrkNo = wrkNo1;
+// }
+// if (wrkNo2 != 0) {
+// wrkNo = wrkNo2;
+// }
+// staProtocol.setWorkNo(wrkNo); // 宸ヤ綔鍙�
+// }
+// }
+
+ if (result.IsSuccess && result1.IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
@@ -187,6 +356,7 @@
for (Integer siteId : staNos) {
StaProtocol staProtocol = station.get(siteId);
basDevps.add(staProtocol.toSqlModel());
+// log.info("杈撻�佺嚎淇″彿锛寋}", JSON.toJSONString(staProtocol));
}
BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
if (!basDevpService.updateBatchById(basDevps)) {
@@ -194,12 +364,12 @@
}
} catch (Exception e) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ News.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+// News.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
}
@@ -211,30 +381,74 @@
return;
}
int index = staNos.indexOf(staProtocol.getSiteId());
- OperateResult write;
- OperateResult write1;
- // 涓�鏈�
- if (staProtocol.getSiteId() < 300) {
- write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- Thread.sleep(100);
- write1 = siemensS7Net.Write("DB100." + (index*2 + 70), staProtocol.getStaNo()); // 鐩爣绔�
- // 浜屾湡
- } else {
- write = siemensS7Net.Write("DB100." + (index-35)*2 + 180, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- Thread.sleep(100);
- write1 = siemensS7Net.Write("DB100." + ((index-35)*2 + 14) + 180, staProtocol.getStaNo()); // 鐩爣绔�
+ short[] array = new short[2];
+ array[0] = staProtocol.getWorkNo();
+ array[1] = staProtocol.getStaNo();
+// OperateResult write = siemensS7Net.Write("DB100." + index*4, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+// Thread.sleep(500);
+// OperateResult write1 = siemensS7Net.Write("DB100." + (index*4+2), staProtocol.getStaNo()); // 鐩爣绔�
+
+ OperateResult writeResult;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
+ boolean writeFlag = false;
+ while(writeCount < 1){
+ writeResult = siemensS7Net.Write("DB1000." + index*4, array); // 宸ヤ綔鍙枫�佺洰鏍囩珯
+ if(writeResult.IsSuccess){
+ Thread.sleep(500);
+ OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
+ if(readResult.IsSuccess){
+ short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+ short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
+ if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
+ //浠诲姟鍛戒护鍐欏叆鎴愬姛
+ writeFlag = true;
+ log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ break;
+ } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+ writeCount++;
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
+ slave.getId(), JSON.toJSON(staProtocol),writeCount));
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } else {
+ writeCount++;
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
+ slave.getId(), JSON.toJSON(staProtocol), writeCount));
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } else {
+ writeCount++;
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
+ slave.getId(), JSON.toJSON(staProtocol),writeCount));
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ Thread.sleep(200);
}
- if (!write.IsSuccess || !write1.IsSuccess) {
+ //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡
+ if(!writeFlag){
staProtocol = station.get(staProtocol.getSiteId());
if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
staProtocol.setPakMk(true);
}
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+
+// //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
+// boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol));
+ read();//璇诲彇1娆¤澶囩姸鎬�
+ return;
} 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));
+ 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));
+
+ Integer siteId = staProtocol.getSiteId();
+ staProtocol = station.get(siteId);
+ if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
+ staProtocol.setPakMk(true);
+ }
}
}
@@ -249,7 +463,7 @@
}
OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
if (!write.IsSuccess) {
- log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+ News.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
}
}
@@ -270,15 +484,16 @@
}
public static void main(String[] args) {
+// System.out.println(staNos.indexOf(129));
System.out.println(staNos.size());
for (int i = 0; i<staNos.size(); i++) {
// System.out.println(i*2);
// System.out.println(i*2 + 200);
// System.out.println(i);
}
- int index = staNos.indexOf(128);
- System.out.println(index*2);
- System.out.println(index*2 + 200);
+// int index = staNos.indexOf(128);
+// System.out.println(index*2);
+// System.out.println(index*2 + 200);
}
// public static void main(String[] args) throws Exception {
--
Gitblit v1.9.1