From 40b3f1131c5d88ddc900bcfc6e53dfb7c3997df5 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期四, 06 十月 2022 17:34:28 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 117 +++++++++++++++++++-------------------
src/main/java/com/zy/core/MainProcess.java | 3 +
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 19 ++---
3 files changed, 70 insertions(+), 69 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index b6c44c7..40dd22c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1989,63 +1989,23 @@
for (DevpSlave devp : slaveProperties.getDevp()) {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
if(null != devpThread){
- int channel = 0;
- for (int i = 0; i < 4; i++){
- switch (i){
- case 0:
- channel = devpThread.startSignal1;
- break;
- case 1:
- channel = devpThread.startSignal2;
- break;
- case 2:
- channel = devpThread.startSignal3;
- break;
- case 3:
- channel = devpThread.startSignal4;
- break;
- }
- if (channel == 1){
- TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
- .eq("channel",(i+1)).eq("status",0));
- if(null != testMast){
- Date now = new Date();
- //http璇锋眰娴嬭瘯
- TestDto testDto = new TestDto();
- testDto.setLocNo(testMast.getLocNo());
- testDto.setBarcode(testMast.getBarcode());
- testDto.setUserId(testMast.getUserId());
- testDto.setRequestTime(DateUtils.convert(now));
- String response = new HttpHandler.Builder()
- .setUri(testUrl)
- .setPath("/testUrlPath")
- .setJson(JSON.toJSONString(testDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- //鏇存柊娴嬭瘯琛ㄧ姸鎬�
- testMast.setStatus(1);
- testMast.setModiTime(now);
- if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
- .eq("channel",1).eq("status",0))){
- throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
- }
-// //鏇存柊搴撲綅鐘舵�侊紝閿佸畾pack鐘舵�侊紝绂佹鍏ュ嚭搴撲綔涓�
-// LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo()));
-// if(null != locMast){
-// locMast.setPackStatus(2);//娴嬭瘯涓�
-// locMast.setModiTime(now);
-// if(!locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",testMast.getLocNo()))){
-// throw new CoolException("浜у搧寮�濮嬫祴璇曪紝鏇存柊鐩爣搴撲綅閿佸畾鐘舵�佸け璐�");
-// }
-// }
- //澶嶄綅PLC淇″彿
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, i*2));
- } else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿},request锛歿},response锛歿}", testUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(testDto), response);
- }
-
+ for (int i = 0; i < 48; i++){
+ TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
+ .eq("channel",(i+1)).eq("status",0));//鏌ユ壘鍘熸潵鐨勭姸鎬�
+ if(null != testMast && devpThread.startSignal[i] == 1){
+ testMast.setStatus(3);
+ testMast.setModiTime(new Date());
+ if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
+ .eq("channel",(i+1)).eq("status",0))){
+ throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+ }
+ //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
+ StaProtocol staProtocol = new StaProtocol();
+ staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
+ staProtocol.setStaNo((short)2);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,浠�1鏀逛负2
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+ if(!result){
+ throw new CoolException("鍚姩娴嬭瘯淇″彿澶辫触===>>" + i);
}
}
@@ -2054,7 +2014,6 @@
}
}
-
} catch (Exception e) {
log.error("鍚姩娴嬭瘯 ===>> 鍚姩娴嬭瘯澶辫触", e);
e.printStackTrace();
@@ -2062,4 +2021,46 @@
}
}
+ /**
+ * 鏍规嵁PLC鎸夐挳娴嬭瘯淇″彿锛屽彂閫佸惎鍔ㄧ敵璇峰埌娴嬭瘯绯荤粺
+ */
+ @Transactional
+ public void finishTest() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ if(null != devpThread){
+ for (int i = 0; i < 48; i++){
+ TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
+ .eq("channel",(i+1)).eq("status",0));//鏌ユ壘鍘熸潵鐨勭姸鎬侊紝鏍规嵁涓氬姟閫昏緫淇敼
+ if(null != testMast && devpThread.startSignal[i] == 3){
+ testMast.setStatus(3);
+ testMast.setModiTime(new Date());
+ if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
+ .eq("channel",(i+1)).eq("status",0))){
+ throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+ }
+ //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
+ StaProtocol staProtocol = new StaProtocol();
+ staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
+ staProtocol.setStaNo((short)0);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,浠�3鏀逛负0
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+ if(!result){
+ throw new CoolException("瀹屾垚娴嬭瘯淇″彿澶辫触===>>" + i);
+ }
+ }
+
+ }
+
+ }
+
+ }
+ } catch (Exception e) {
+ log.error("瀹屾垚娴嬭瘯 ===>> 瀹屾垚娴嬭瘯澶辫触", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index ba3b5f1..48dcaa0 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -70,6 +70,9 @@
//鍚姩娴嬭瘯绯荤粺娴嬭瘯
mainService.startTest();
+ //娴嬭瘯绯荤粺瀹屾垚娴嬭瘯纭
+ mainService.finishTest();
+
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index c665daf..3e48d6f 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -53,10 +53,7 @@
private int barcodeSize = 1;
public IoModeType ioMode = IoModeType.NONE;
- public int startSignal1 = 0;
- public int startSignal2 = 0;
- public int startSignal3 = 0;
- public int startSignal4 = 0;
+ public int[] startSignal = new int[48];
public SiemensDevpThread(DevpSlave slave) {
this.slave = slave;
@@ -84,7 +81,8 @@
break;
//澶嶄綅娴嬭瘯淇″彿
case 3:
- siemensS7Net.Write("DB100." + (150 + (int)task.getData()), 0);
+ StaProtocol staProtocol = (StaProtocol)task.getData();
+ siemensS7Net.Write("DB200." + staProtocol.getSiteId(), staProtocol.getStaNo());
break;
default:
break;
@@ -190,12 +188,11 @@
}
Thread.sleep(200);
- OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.150", (short) 8);
+ OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB200.0", (short) 96);
if(result3.IsSuccess) {
- startSignal1 = siemensS7Net.getByteTransform().TransInt16(result.Content, 0);
- startSignal2 = siemensS7Net.getByteTransform().TransInt16(result.Content, 2);
- startSignal3 = siemensS7Net.getByteTransform().TransInt16(result.Content, 4);
- startSignal4 = siemensS7Net.getByteTransform().TransInt16(result.Content, 6);
+ for(int i=0; i<48; i++){
+ startSignal[i] = siemensS7Net.getByteTransform().TransInt16(result.Content, i*2);
+ }
}
// OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
// if (result2.IsSuccess) {
@@ -238,7 +235,7 @@
return;
}
int index = staNos.indexOf(staProtocol.getSiteId());
- short[] array = new short[10];
+ short[] array = new short[2];
array[0] = staProtocol.getWorkNo();
array[1] = staProtocol.getStaNo();
OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
--
Gitblit v1.9.1