From 4790be9d288a84a38b10e143c8433b7becc62404 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 11 十二月 2025 13:10:42 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 407 +++++++++++++++++++++++++++++++++++----------------------
1 files changed, 248 insertions(+), 159 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index fabc856..7c0ab41 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -7,7 +7,6 @@
import com.alibaba.fastjson.JSON;
import com.core.common.Cools;
import com.core.common.DateUtils;
-import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.service.BasDevpService;
@@ -20,6 +19,7 @@
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaError1;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -43,42 +43,40 @@
private SiemensS7Net siemensS7Net;
private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
private short heartBeatVal = 1;
-// public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
-//
-// }};
+ private StaError1 staError1;
+
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(159);
- add(160);add(161);
- add(200);add(201);add(202);
+ add(1001);
+ add(1002);
+ add(1003);
+ add(1004);
+ add(1005);
+ add(1006);
+ add(1007);
+
+ }};
+
+ public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+
+ add(101);
+ add(102);
+ add(103);
+ add(104);
+ add(105);
+ add(106);
+ add(107);
+ add(108);
}};
public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
- add(0); add(1); add(2);
- }};
- public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
- add(106); add(107); add(159);
+ add(1);
}};
- private Integer count=0;
/**
* 鏉$爜鏁伴噺
*/
- private int barcodeSize = 6;
+ private int barcodeSize = 2;
/**
* 鍏ュ嚭搴撴ā寮�
@@ -89,7 +87,7 @@
* 4.鍑哄簱妯″紡
*/
public IoModeType ioModeOf2F = IoModeType.NONE;
-// public IoModeType ioMode = IoModeType.NONE;
+ // public IoModeType ioMode = IoModeType.NONE;
public IoModeType ioModeOf4F = IoModeType.NONE;
// public IoModeType ioMode = IoModeType.NONE;
@@ -124,48 +122,55 @@
break;
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
- write((StaProtocol)task.getData());
+ write((StaProtocol) task.getData());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
+ break;
+ // 鍐欐暟鎹� ID+鐩爣绔�
+ case 3:
+ write2((StaProtocol) task.getData());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护3锛�");
+ break;
+ case 4:
+ write4((StaProtocol) task.getData());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护4锛�");
break;
default:
break;
}
// 蹇冭烦
// heartbeat();
- Thread.sleep(300);
+ Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}
}
+
/**
* 鍒濆鍖栫珯鐐圭姸鎬�
*/
private void initSite() {
- count ++;
ArrayList<Integer> staNos = getStaNo();
- if(count > 77) {
- // 绔欑偣缂栧彿
- for (Integer siteId : staNos) {
- StaProtocol staProtocol = station.get(siteId);
- if (null == staProtocol) {
- staProtocol = new StaProtocol();
- staProtocol.setSiteId(siteId);
- station.put(siteId, staProtocol);
- }
- staProtocol.setWorkNo(0); // ID
- staProtocol.setAutoing(false); // 鑷姩
- staProtocol.setLoading(false); // 鏈夌墿
- staProtocol.setInEnable(false); // 鍙叆
- staProtocol.setOutEnable(false); // 鍙嚭
- staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
- staProtocol.setStaNo((short) 0); // 鐩爣绔�
-
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
- staProtocol.setPakMk(true);
- }
+ // 绔欑偣缂栧彿
+ for (Integer siteId : staNos) {
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
}
- count = 0;
+ staProtocol.setWorkNo(0); // ID
+ staProtocol.setAutoing(false); // 鑷姩
+ staProtocol.setLoading(false); // 鏈夌墿
+ staProtocol.setInEnable(false); // 鍙叆
+ staProtocol.setOutEnable(false); // 鍙嚭
+ staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
+ staProtocol.setStaNo((short) 0); // 鐩爣绔�
+
+ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ staProtocol.setPakMk(true);
+ }
}
}
@@ -176,13 +181,13 @@
siemensS7Net.setRack(slave.getRack().byteValue());
siemensS7Net.setSlot(slave.getSlot().byteValue());
OperateResult connect = siemensS7Net.ConnectServer();
- if(connect.IsSuccess){
+ 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()));
- News.info("SiemensDevp"+" - 1"+" - 杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ 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()));
+ News.info("SiemensDevp" + " - 1" + " - 杈撻�佺嚎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()));
- News.error("SiemensDevp"+" - 2"+" - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ 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()));
+ News.error("SiemensDevp" + " - 2" + " - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
siemensS7Net.ConnectClose();
initSite();
@@ -197,7 +202,8 @@
// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 2));
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.0", (short) (staNoSize * 4));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -207,11 +213,12 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo(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, 2);
+ boolean[] status = null;
+ if (i < 7) {
+ staProtocol.setWorkNo((int) siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 4));
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 4 + 2));
+ }
+ status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 2, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
@@ -226,87 +233,128 @@
}
}
}
-// OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4));
-//// OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB100.2", (short) (staNoSize*2));
-// 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(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙�
-//
-// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 鐩爣绔�
-// }
-// }
-//
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) (staNoSize * 4));
-// if (result1.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*4, 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.getStamp()>=2 && !staProtocol.isLoading()){
-// staProtocol.setStamp(0);
-// }else if (staProtocol.getStamp()<2 && staProtocol.isLoading()){
-// //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱
-// staProtocol.setStamp(staProtocol.getStamp()+1);
-// }
-// }
-// }
+ ArrayList<Integer> staNosxx = staNos2;
+ int size = staNosxx.size();
+ OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB101.14", (short) (size * 2));
+ if (result3.IsSuccess) {
+ for (int i = 0; i < size; i++) {
+ Integer siteId = staNosxx.get(i); // 绔欑偣缂栧彿
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ boolean[] status = null;
+ status = siemensS7Net.getByteTransform().TransBool(result3.Content, i * 2, 2);
+ 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);
+ }
+ }
+ }
+
+ OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB102.0", (short) 2);
+ if (result4.IsSuccess) {
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
+ if (status[0] && status[1]) {
+ StaProtocol staProtocol = station.get(1007);
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ log.info("澶嶄綅1007");
+ }
+ }
//鏉$爜鎵弿鍣�
ArrayList<Integer> barcodeList = BarcodeList;
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8));
- if (result2.IsSuccess) {
+ OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB101.102", (short) (barcodeList.size() * 8));
+ if (result5.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 + 1);
- if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ String barcode = siemensS7Net.getByteTransform().TransString(result5.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);
+ log.info("鏂欑鐮侊細{}",barcode);
}
}
}
//澶栧舰妫�娴�
- ArrayList<Integer> staNoErrs = staNosErrList;
- int staNoErrsSize = staNoErrs.size();
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8));
- if (resultErr.IsSuccess){
- for (int i = 0;i<3;i++){
- Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
- StaProtocol staProtocol = station.get(siteId);
- 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]);
- }
- }
+// ArrayList<Integer> staNoErrs = staNosErrList;
+// int staNoErrsSize = staNoErrs.size();
+// OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1608", (short) (staNoErrsSize * 8));
+// if (resultErr.IsSuccess) {
+// for (int i = 0; i < 2; i++) {
+// Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4 + 2, 1);
+// StaProtocol staProtocol = station.get(siteId);
+// 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]);
+// }
+// }
+
+ //plc鏁呴殰
+// OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize * 4));
+// if (resultErr2.IsSuccess) {
+// for (int i = 0; i < staNoSize; i++) {
+// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i * 4, 1);
+// StaProtocol staProtocol = station.get(siteId);
+// staProtocol.setBreakerErr(status[0]);
+// staProtocol.setInfraredErr(status[1]);
+// staProtocol.setOutTimeErr(status[2]);
+// staProtocol.setSeizeSeatErr(status[3]);
+// staProtocol.setWrkYgoodsN(status[4]);
+// staProtocol.setInverterErr(status[5]);
+// staProtocol.setContactErr(status[6]);
+// staProtocol.setUpcontactErr(status[7]);
+//
+// }
+// }
+// OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
+// if (resultErr3.IsSuccess) {
+// if (staError1 == null) {
+// staError1 = new StaError1();
+// }
+// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
+// staError1.setEMERGENCY_Stop_Core(status[0]);
+// staError1.setEMERGENCY_STOP1(status[1]);
+// staError1.setEMERGENCY_STOP2(status[2]);
+// staError1.setEMERGENCY_STOP3(status[3]);
+// staError1.setEMERGENCY_STOP4(status[4]);
+//
+// staError1.setDoor_EMERGENCY_STOP1(status[5]);
+// staError1.setDoor_EMERGENCY_STOP2(status[6]);
+// staError1.setDoor_EMERGENCY_STOP3(status[7]);
+// staError1.setDoor_EMERGENCY_STOP4(status[8]);
+// staError1.setDoor_EMERGENCY_STOP5(status[9]);
+// staError1.setDoor_EMERGENCY_STOP6(status[10]);
+//
+// staError1.setDoor_Open_Err1(status[11]);
+// staError1.setDoor_Open_Err1(status[12]);
+// staError1.setDoor_Open_Err1(status[13]);
+// staError1.setDoor_Open_Err1(status[14]);
+// staError1.setDoor_Open_Err1(status[15]);
+// staError1.setDoor_Open_Err1(status[16]);
+//
+// }
+
if (result.IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
try {
@@ -315,8 +363,8 @@
StaProtocol staProtocol = station.get(siteId);
basDevps.add(staProtocol.toSqlModel());
}
-
- BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ BasDevpService basDevpService = SpringContextUtil.getBean(BasDevpService.class);
+ //BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
}
@@ -324,7 +372,7 @@
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());
+ News.error("SiemensDevp" + " - 3" + " - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
} else {
@@ -342,41 +390,82 @@
}
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
-// short[] array = new short[2];
-// array[0] = staProtocol.getWorkNo();
-// array[1] = staProtocol.getStaNo();
-// OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
OperateResult write = null;
OperateResult write1 = null;
//浠诲姟涓嬪彂娆℃暟
int writeCount = 0;
do {
-// write = siemensS7Net.Write("DB100.0" + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
-// Thread.sleep(500);
-// write1 = siemensS7Net.Write("DB100.0" + index*2+2, staProtocol.getStaNo()); // 鐩爣绔�
- write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- Thread.sleep(500);
- write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
- if(write.IsSuccess && write1.IsSuccess){
+ write = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo().shortValue()); // 宸ヤ綔鍙�
+ Thread.sleep(200);
+ write1 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
+ if (write.IsSuccess && write1.IsSuccess) {
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
break;
- }
- else {
+ } else {
writeCount++;
log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
}
- }while (writeCount<5);
+ } while (writeCount < 5);
if (!write.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
- if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎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)));
- News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
+ private void write2(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult write = null;
+ boolean[] array = new boolean[1];
+ array[0] = true;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB102.0", array);
+ if (write.IsSuccess) {
+ log.error("鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ break;
+ } else {
+ writeCount++;
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } while (writeCount < 5);
+
+ if (!write.IsSuccess) {
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
+ private void write4(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult write = null;
+ boolean[] array = new boolean[2];
+ array[0] = false;
+ array[1] = false;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB102.0", array);
+ if (write.IsSuccess) {
+ log.error("44鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ break;
+ } else {
+ writeCount++;
+ log.error("44鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } while (writeCount < 5);
+
+ if (!write.IsSuccess) {
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
}
}
@@ -385,7 +474,7 @@
if (this.ioModeOf2F != IoModeType.NONE) {
if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
- News.error("SiemensDevp"+" - 6"+" - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ News.error("SiemensDevp" + " - 6" + " - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
}
}
}
@@ -393,7 +482,7 @@
/**
* 蹇冭烦
*/
- private void heartbeat(){
+ private void heartbeat() {
if (heartBeatVal == 1) {
heartBeatVal = 2;
} else {
@@ -401,7 +490,7 @@
}
OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
if (!write.IsSuccess) {
- News.error("SiemensDevp"+" - 7"+" - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+ News.error("SiemensDevp" + " - 7" + " - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
}
}
@@ -424,14 +513,14 @@
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++) {
+ 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);
+ System.out.println(index * 2);
+ System.out.println(index * 2 + 200);
}
// public static void main(String[] args) throws Exception {
--
Gitblit v1.9.1