From 9f9961b2061f7abb44ff69083154403a15e26363 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期五, 16 八月 2024 16:38:49 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/core/MainProcess.java | 1
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 53 +++++++++++--
3 files changed, 209 insertions(+), 12 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 09879c4..1504420 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -141,6 +141,24 @@
News.error("MainServiceImpl generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
continue;
}
+ if ( inSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)114);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"103涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( inSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)214);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl generateStoreWrkFile"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
}
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
@@ -1424,6 +1442,14 @@
}
if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
News.error("MainServiceImpl locToCrnStn"+"203闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+ return false;
+ }
+ if (wrkMast.getStaNo() == 113 && devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"113闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
+ return false;
+ }
+ if (wrkMast.getStaNo() == 213 && devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+ News.error("MainServiceImpl locToCrnStn"+"213闈炲嚭搴撴ā寮忥紝绂佹鍑哄簱銆備换鍔″彿:{}锛侊紒锛�",wrkMast.getWrkNo());
return false;
}
@@ -3969,6 +3995,24 @@
News.error("MainServiceImpl storeEmptyPlt"+"203涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
continue;
}
+ if ( emptyInSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)100);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"113涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
+ if ( emptyInSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) {
+ //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+ staProtocol.setWorkNo((short) 9999);
+ staProtocol.setStaNo((short)200);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ News.error("MainServiceImpl storeEmptyPlt"+"213涓哄嚭搴撴ā寮忥紝绂佹鍏ュ簱锛岄��鍥炲叆搴撳彛銆傦紒锛侊紒");
+ continue;
+ }
}
// 绔欑偣鏉′欢鍒ゆ柇
@@ -4735,10 +4779,10 @@
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
for (DevpSlave.Sta inSta : devp.getInSta()) {
- Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
+ Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : inSta.getStaNo()==113 ? 104 : 204;
WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
switch (inSta.getStaNo()) {
- case 103://1F
+ case 103://1F1
if (pakout != null) {
if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
@@ -4756,7 +4800,7 @@
devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
}
break;
- case 203://2F
+ case 203://1F2
if (pakout != null) {
if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
// 鍑哄簱鍒囨崲涓�
@@ -4774,6 +4818,123 @@
devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
}
break;
+// case 113://2F1
+// if (pakout != null) {
+// if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+//// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+//// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+//// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+//// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+//// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+//// // 鍑哄簱妯″紡
+// devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE;
+//// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf3F = IoModeType.PAKIN_MODE;
+// }
+// break;
+// case 213://2F2
+// if (pakout != null) {
+// if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+// // 鍑哄簱鍒囨崲涓�
+//// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+//// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+//// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+//// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+//// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+//// // 鍑哄簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
+//// }
+// }
+// } else {
+// // 鍏ュ簱妯″紡
+// devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+// }
+// break;
+ }
+ }
+
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ public synchronized void ioConvert2F() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId() == 1){
+ continue;
+ }
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : inSta.getStaNo()==113 ? 104 : 204;
+ WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
+ boolean sign = true;
+ int[] staNos = new int[3];
+
+ switch (inSta.getStaNo()) {
+ case 113://2F1
+ staNos = new int[]{112,113,114};
+ for (int staNo : staNos){
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()){
+ sign = false;
+ }
+ }
+ if (sign){
+ if (pakout != null) {
+ if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
+
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf3F = IoModeType.PAKIN_MODE;
+
+ }
+ }
+ break;
+ case 213://2F2
+ staNos = new int[]{212,213,214};
+ for (int staNo : staNos){
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()){
+ sign = false;
+ }
+ }
+ if (sign){
+ if (pakout != null) {
+ if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+// // 鍑哄簱妯″紡
+ devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf4F = IoModeType.PAKIN_MODE;
+ }
+ }
+ break;
}
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 0395f70..8aa518c 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -83,6 +83,7 @@
i++;
if (i > 1) {
mainService.ioConvert();
+ mainService.ioConvert2F();
i = 0;
}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 1f3dd61..eac5390 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -77,6 +77,12 @@
*/
public IoModeType ioModeOf1F = IoModeType.NONE;
public IoModeType ioModeOf2F = IoModeType.NONE;
+ public IoModeType ioModeOf3F = IoModeType.NONE;
+ public short ioModeOf3FX = 0;
+ public short ioModeOf3FD = 0;
+ public IoModeType ioModeOf4F = IoModeType.NONE;
+ public short ioModeOf4FX = 0;
+ public short ioModeOf4FD = 0;
private ArrayList<Integer> getStaNo() {
switch (slave.getId()) {
@@ -179,6 +185,19 @@
station.put(siteId, staProtocol);
}
staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 鐩爣绔�
+ }
+ }
+ if (slave.getId()!=1){
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result2F = siemensS7Net.Read("DB102.50", (short) (4));
+ if (result2F.IsSuccess) {
+ if (slave.getId()==2){
+ this.ioModeOf3FX = siemensS7Net.getByteTransform().TransInt16(result2F.Content, 0);
+ this.ioModeOf3FD = siemensS7Net.getByteTransform().TransInt16(result2F.Content, 2);
+ } if (slave.getId()==3){
+ this.ioModeOf4FX = siemensS7Net.getByteTransform().TransInt16(result2F.Content, 0);
+ this.ioModeOf4FD = siemensS7Net.getByteTransform().TransInt16(result2F.Content, 2);
+ }
}
}
Thread.sleep(200);
@@ -416,16 +435,32 @@
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
- if (this.ioModeOf1F != IoModeType.NONE) {
- if (!siemensS7Net.Write("DB100.180", this.ioModeOf1F.id).IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
- News.error("鍐欏叆杈撻�佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ if (slave.getId()==1){
+ if (this.ioModeOf1F != IoModeType.NONE) {
+ if (!siemensS7Net.Write("DB100.180", this.ioModeOf1F.id).IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+ News.error("鍐欏叆杈撻�佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ }
}
- }
- if (this.ioModeOf2F != IoModeType.NONE) {
- if (!siemensS7Net.Write("DB100.182", this.ioModeOf2F.id).IsSuccess) {
- OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
- News.error("鍐欏叆杈撻�佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ if (this.ioModeOf2F != IoModeType.NONE) {
+ if (!siemensS7Net.Write("DB100.182", this.ioModeOf2F.id).IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+ News.error("鍐欏叆杈撻�佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ }
+ }
+ } else if (slave.getId()==2){
+ if (this.ioModeOf3F != IoModeType.NONE && this.ioModeOf3F.id/2 != this.ioModeOf3FX) {
+ if (!siemensS7Net.Write("DB102.50", (short) (this.ioModeOf3F.id/2)).IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎113鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+ News.error("鍐欏叆杈撻�佺嚎113鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ }
+ }
+ } else if (slave.getId()==3){
+ if (this.ioModeOf4F != IoModeType.NONE && this.ioModeOf4F.id/2 != this.ioModeOf4FX) {
+ if (!siemensS7Net.Write("DB102.50", (short) (this.ioModeOf4F.id/2)).IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎213鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+ News.error("鍐欏叆杈撻�佺嚎213鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+ }
}
}
}
--
Gitblit v1.9.1