From 62af9acaccedaea4c4c7efd4e68c8b702cf5a27d Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 22 六月 2024 13:35:02 +0800
Subject: [PATCH] # 捷众二期开发
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 466 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 256 insertions(+), 210 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index b56a2cd..a2528c8 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -41,27 +41,30 @@
private DevpSlave slave;
private SiemensS7Net siemensS7Net;
+
+ public boolean[] startSignal = new boolean[8];
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
// public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
//
// }};
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
- 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);
+ add(100);add(101);add(102);add(103);add(104);
+ add(200);add(201);add(202);add(203);add(204);
+ }};
+ public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+ add(300);add(301);add(302);add(303);add(304);
}};
+ public static final ArrayList<Integer> barcode1 = new ArrayList<Integer>() {{
+ add(1); add(2);
+ }};
-
+ public static final ArrayList<Integer> barcode2 = new ArrayList<Integer>() {{
+ add(3);
+ }};
private Integer count=0;
-
- /**
- * 鏉$爜鏁伴噺
- */
- private int barcodeSize = 6;
/**
* 鍏ュ嚭搴撴ā寮�
@@ -84,6 +87,8 @@
switch (slave.getId()) {
case 1:
return staNos1;
+ case 2:
+ return staNos2;
default:
throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
}
@@ -152,6 +157,17 @@
}
}
+ private ArrayList<Integer> getBarcodeList() {
+ switch (slave.getId()) {
+ case 1:
+ return barcode1;
+ case 2:
+ return barcode2;
+ default:
+ throw new CoolException("鑾峰彇鏉$爜鎵弿鍣ㄥけ璐ワ紒");
+ }
+ }
+
@Override
public boolean connect() {
boolean result = false;
@@ -178,28 +194,105 @@
private void read() throws InterruptedException {
// // 鏇存柊鍏ュ嚭搴撴ā寮�
// updateIoMode();
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*2));
- OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2));
- if (result.IsSuccess && result4.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(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2)); // 宸ヤ綔鍙�
+ if (slave.getId() == 1) {
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result4.Content, i*2)); // 鐩爣绔�
+ } else if (slave.getId() == 2) {
+ OperateResultExOne<byte[]> 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, 1);
+ 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]); // 浣庡簱浣�
+// staProtocol.setWeight(status[8]); //鏄惁涓洪噸璐�
+ if (!staProtocol.isPakMk() && staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
+ }
+
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ try {
+ List<BasDevp> basDevps = new ArrayList<>();
+ for (Integer siteId : staNos) {
+ StaProtocol staProtocol = station.get(siteId);
+ basDevps.add(staProtocol.toSqlModel());
+ }
+
+ BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+ throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ 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()));
+ News.error(methodName + ":鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [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}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
}
+
+ //澶栧舰妫�娴�
+ OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.42", (short) 8);
+ if (resultErr.IsSuccess){
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, 0, 1);
+ StaProtocol staProtocol = station.get(303);
+ staProtocol.setFrontErr(status[0]);
+ staProtocol.setBackErr(status[1]);
+ staProtocol.setHighErr(status[2]);
+ staProtocol.setLeftErr(status[3]);
+ staProtocol.setRightErr(status[4]);
+ staProtocol.setWeightErr(status[5]);
+ staProtocol.setBarcodeErr(status[6]);
+ }
+
+ //鏉$爜鎵弿鍣�
+ Thread.sleep(200);
+ ArrayList<Integer> barcodeList = getBarcodeList();
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.60", (short) (barcodeList.size() * 8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < barcodeList.size(); i++) {
+ Integer barcodeId = barcodeList.get(i);
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+ if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
+ }
+
+// //鏉$爜鎵弿鍣�
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.60",(short)8);
+// if (result2.IsSuccess) {
+// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,0,8, "UTF-8");
+// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 3);
+// if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+// barcodeThread.setBarcode(barcode);
+// }
+// }
}
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186);
-// if (result0.IsSuccess) {
-// for (int i = 0; i < 93; i++) {
+
+//
+// if (result.IsSuccess) {
+// for (int i = 0; i < staNoSize; i++) {
// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
// StaProtocol staProtocol = station.get(siteId);
// if (null == staProtocol) {
@@ -207,142 +300,88 @@
// staProtocol.setSiteId(siteId);
// station.put(siteId, staProtocol);
// }
-// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 鐩爣绔�
+// staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙�
+//
+// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4+2)); // 鐩爣绔�
// }
// }
- //鏉$爜鎵弿鍣�
- Thread.sleep(200);
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.200",(short)(barcodeSize/2*8));
- if (result2.IsSuccess) {
- if (slave.getId()==1){
- for (int i = 0; i < barcodeSize/2; i++) {
- String 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)){
-// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) {
- barcodeThread.setBarcode(barcode);
- }
- }
- }else if (slave.getId()==2){
- for (int i = barcodeSize/2; i < barcodeSize; i++) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-barcodeSize/2)*8,8, "UTF-8");
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
- if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){
-// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) {
- barcodeThread.setBarcode(barcode);
- }
- }
- }
- }
- Thread.sleep(200);
- OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.100", (short) (staNoSize * 2));
- if (result1.IsSuccess) {
- for (int i = 0; i < staNoSize; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 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]); // 浣庡簱浣�
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
- }
-
- if (!staProtocol.isLoading()){
- staProtocol.setStamp(0);
- }
- if (staProtocol.getStamp()<2 && staProtocol.isLoading()){
- //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱
- staProtocol.setStamp(staProtocol.getStamp()+1);
- }
-
-// //20230110锛屾棩蹇楁墦鍗帮紝纭鏀跺埌鍏ュ簱绔欏彲鍏ヤ俊鍙锋椂锛屽搴旀潯鐮佹暟鎹槸鍚﹀凡鏈�
-// if ((siteId==101 || siteId==109 || siteId==117 || siteId==201 || siteId==207 || siteId==213)
-// && staProtocol.isInEnable()){
-// Integer barcodeId = 0;
-// switch (siteId){
-// case 101:
-// barcodeId=1;
-// break;
-// case 109:
-// barcodeId=2;
-// break;
-// case 117:
-// barcodeId=3;
-// break;
-// case 201:
-// barcodeId=4;
-// break;
-// case 207:
-// barcodeId=5;
-// break;
-// case 213:
-// barcodeId=6;
-// break;
-// }
-// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
-// if(barcodeThread!=null){
-// //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱
-// staProtocol.setStamp(staProtocol.getStamp()+1);
-// News.info("{}绔欐湁鍙叆淇″彿鏃讹紝鏉$爜鍊间负{}", siteId, barcodeThread.getBarcode());
-// if(Cools.isEmpty(barcodeThread.getBarcode())){
-// staProtocol.setInEnable(false);//鏉$爜鏁版嵁涓虹┖鏃讹紝鍏堟竻涓�娆″唴瀛樼殑绔欑偣鍙叆淇″彿锛岀瓑寰呬笅涓�娆¤幏鍙栧彲鍏ヤ俊鍙�
-// }
-// }
-// }
- }
- }
-
-// //RGV灏忚溅
// Thread.sleep(200);
-// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.160",(short)2);
-// if (result3.IsSuccess) {
-// Integer siteId = 16;
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
+// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.60", (short) (staNoSize * 2));
+// if (result1.IsSuccess) {
+// for (int i = 0; i < staNoSize; i++) {
+// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
+// boolean[] status2 = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2+1, 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.setLow(status[6]); // 浣庡簱浣�
+// staProtocol.setMedium(status[7]); // 涓簱浣�
+// staProtocol.setMedium_high(status2[0]); //涓珮搴撲綅
+// staProtocol.setHigh(status2[1]); // 楂樺簱浣�
+// if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+// staProtocol.setPakMk(true);
+// }
+//
+// if (!staProtocol.isLoading()){
+// staProtocol.setStamp(0);
+// }
// }
-// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 0)));
+// }
+
+ //鎺ユ敹瓒呭瓒呴珮娌℃壂鍒版潯鐮佹姤璀�
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.34",(short)(1));
+// if (result4.IsSuccess) {
+// startSignal = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
// }
+ //鏉$爜鎵弿鍣�
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.60",(short)(barcodeSize*8));
+// if (result2.IsSuccess) {
+// for (int i = 0; i < barcodeSize; i++) {
+// String 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 && result1.IsSuccess) {
-
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- try {
- List<BasDevp> basDevps = new ArrayList<>();
- for (Integer siteId : staNos) {
- StaProtocol staProtocol = station.get(siteId);
- basDevps.add(staProtocol.toSqlModel());
- }
-
- BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
- if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
- throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
- }
- } catch (Exception e) {
- initSite();
- e.printStackTrace();
- 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()));
- News.error("SiemensDevp"+" - 3"+" - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [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());
- }
+// if (result.IsSuccess && result1.IsSuccess) {
+//
+// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+//
+// // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+// try {
+// List<BasDevp> basDevps = new ArrayList<>();
+// for (Integer siteId : staNos) {
+// StaProtocol staProtocol = station.get(siteId);
+// basDevps.add(staProtocol.toSqlModel());
+// }
+//
+// BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+// if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+// throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+// }
+// } catch (Exception e) {
+// initSite();
+// e.printStackTrace();
+// 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()));
+// News.error("SiemensDevp"+" - 3"+" - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [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());
+// }
}
/**
@@ -361,37 +400,38 @@
OperateResult write = null;
OperateResult write1 = null;
- //浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- do {
- write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+// //浠诲姟涓嬪彂娆℃暟
+// int writeCount = 0;
+// do {
+ write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 鐩爣绔�
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);
+ write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
+
+// if(write.IsSuccess || write1.IsSuccess){
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*4, (short) 2);
+// OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index*4+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 || !write1.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
@@ -447,38 +487,44 @@
siemensS7Net.ConnectClose();
}
- public static void main(String[] args) {
- System.out.println(staNos1.indexOf(129));
- System.out.println(staNos1.size());
- for (int i = 0; i<staNos1.size(); i++) {
-// System.out.println(i*2);
-// System.out.println(i*2 + 200);
-// System.out.println(i);
- }
- int index = staNos1.indexOf(128);
- System.out.println(index*2);
- System.out.println(index*2 + 200);
- }
+// public static void main(String[] args) {
+// System.out.println(staNos1.indexOf(129));
+// System.out.println(staNos1.size());
+// for (int i = 0; i<staNos1.size(); i++) {
+//// System.out.println(i*2);
+//// System.out.println(i*2 + 200);
+//// System.out.println(i);
+// }
+// int index = staNos1.indexOf(128);
+// System.out.println(index*2);
+// System.out.println(index*2 + 200);
+// }
-// public static void main(String[] args) throws Exception {
-// DevpSlave slave = new DevpSlave();
-// slave.setIp("192.168.2.125");
-// SiemensDevpThread devpThread = new SiemensDevpThread(slave);
-// devpThread.connect();
-// devpThread.read();
-// // 鍐�
-// StaProtocol staProtocol = devpThread.getStation().get(1);
-// staProtocol.setWorkNo((short) 232);
-// staProtocol.setStaNo((short) 6);
+ public static void main(String[] args) throws Exception {
+ DevpSlave slave = new DevpSlave();
+ slave.setId(1);
+ slave.setIp("10.10.10.100");
+ slave.setPort(0);
+ slave.setRack(0);
+ slave.setSlot(0);
+// slave.setIp("10.10.10.130");
+ SiemensDevpThread devpThread = new SiemensDevpThread(slave);
+ devpThread.connect();
+ devpThread.read();
+ // 鍐�
+// StaProtocol staProtocol = devpThread.getStation().get(300);
+// staProtocol.setWorkNo((short) 3002);
+// staProtocol.setStaNo((short) 301);
// staProtocol.setAutoing(true);
// staProtocol.setEmptyMk(true);
// staProtocol.setInEnable(true);
+// staProtocol.setOutEnable(true);
// devpThread.write(staProtocol);
// System.out.println("----------------------------------------");
-// // 璇�
+ // 璇�
// devpThread.read();
-// System.out.println(JSON.toJSONString(devpThread.station));
-//
-// }
+ System.out.println(JSON.toJSONString(devpThread.station));
+
+ }
}
--
Gitblit v1.9.1