From 3c4373138377314b4a67528b24b107e18b11326e Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期三, 01 二月 2023 10:06:20 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 59 +++++++++++++++++++
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 3 +
src/main/resources/mapper/WrkMastMapper.xml | 15 +++++
src/main/java/com/zy/core/MainProcess.java | 9 +++
src/main/java/com/zy/core/enums/IoModeType.java | 32 ++++++++++
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 30 ++++++++++
6 files changed, 148 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 30d03ff..7937184 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -116,4 +116,7 @@
List<WrkMast> selectWrkStsAndIoType(@Param("sour")Integer sour);
List<WrkMast> selectWrkStsAndIoType0(@Param("sour")Integer sour);
+
+ WrkMast selectWorkingPakin(@Param("sourceStaNo")Integer sourceStaNo);
+ WrkMast selectWorkingPakout(@Param("sourceStaNo")Integer sourceStaNo);
}
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 6a2a8b3..47ac1b3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3863,4 +3863,63 @@
}
}
+ /**
+ * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+ */
+ public synchronized void ioConvert() {
+ try {
+ // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+ for (DevpSlave.Sta inSta : devp.getInSta()) {
+ Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
+ WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
+ switch (inSta.getStaNo()) {
+ case 103://1F
+ if (pakout != null) {
+ if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+ // 鍑哄簱鍒囨崲涓�
+// devpThread.ioModeOf1F = 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.ioModeOf1F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ case 203://2F
+ if (pakout != null) {
+ if (devpThread.ioModeOf2F != 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.ioModeOf2F = IoModeType.PAKOUT_MODE;
+// }
+ }
+ } else {
+ // 鍏ュ簱妯″紡
+ devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+ }
+ break;
+ }
+ }
+
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index ad7fb74..09dc1b0 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -22,6 +22,8 @@
private MainServiceImpl mainService;
// 鎵�灞炵嚎绋�
private Thread thread;
+ // 棰戠巼
+ private int i = 0;
/**
* =====>> 寮�濮嬪伐浣�
@@ -75,6 +77,13 @@
// 绌挎杞� ===>> 灏忚溅鐢甸噺妫�娴嬪厖鐢�
mainService.loopSteCharge();
+ // 鍏朵粬 ===>> 鍏ュ嚭搴撴ā寮忓垏鎹�
+ i++;
+ if (i > 1) {
+ mainService.ioConvert();
+ i = 0;
+ }
+
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/main/java/com/zy/core/enums/IoModeType.java b/src/main/java/com/zy/core/enums/IoModeType.java
new file mode 100644
index 0000000..6fe2be5
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/IoModeType.java
@@ -0,0 +1,32 @@
+package com.zy.core.enums;
+
+/**
+ * 鍏ュ嚭搴撴ā寮忔灇涓�
+ */
+public enum IoModeType {
+
+ NONE((short) 0, "鏈煡"),
+ PAKIN_BOOTING((short) 1, "鍏ュ簱鍚姩涓�"),
+ PAKIN_MODE((short) 2, "鍏ュ簱妯″紡"),
+ PAKOUT_BOOTING((short) 3, "鍑哄簱鍚姩涓�"),
+ PAKOUT_MODE((short) 4, "鍑哄簱妯″紡"),
+ ;
+
+ public Short id;
+ public String desc;
+
+ IoModeType(Short id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static IoModeType get(Short id) {
+ for (IoModeType type : IoModeType.values()) {
+ if (id.equals(type.id)) {
+ return type;
+ }
+ }
+ return IoModeType.NONE;
+ }
+
+}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 497ca67..2636d7a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -15,6 +15,7 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.IoModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
@@ -57,6 +58,17 @@
public SiemensDevpThread(DevpSlave slave) {
this.slave = slave;
}
+
+ /**
+ * 鍏ュ嚭搴撴ā寮�
+ * 0锛氭湭鐭�
+ * 1锛氬叆搴撳惎鍔ㄤ腑
+ * 2.鍏ュ簱妯″紡
+ * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
+ * 4.鍑哄簱妯″紡
+ */
+ public IoModeType ioModeOf1F = IoModeType.NONE;
+ public IoModeType ioModeOf2F = IoModeType.NONE;
@Override
@SuppressWarnings("InfiniteLoopStatement")
@@ -114,6 +126,8 @@
* 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void read() throws InterruptedException {
+ // 鏇存柊鍏ュ嚭搴撴ā寮�
+ updateIoMode();
OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 50);
if (result.IsSuccess) {
for (int i = 0; i < 25; i++) {
@@ -238,6 +252,22 @@
}
}
+ // 鏇存柊鍏ュ嚭搴撴ā寮�
+ 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 (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());
+ }
+ }
+ }
+
/**
* 蹇冭烦
*/
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index e68efe0..0217c86 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -209,4 +209,19 @@
</if>
</select>
+
+ <!-- 鍏ュ嚭搴撴ā寮忕浉鍏� -->
+ <select id="selectWorkingPakin" resultMap="BaseResultMap">
+ select top 1 * from dbo.asr_wrk_mast where wrk_sts in (2,3,4) and io_type != 11 and source_sta_no = #{sourceStaNo} order by io_time,wrk_no
+ </select>
+
+ <select id="selectWorkingPakout" resultMap="BaseResultMap">
+ select top 1 *
+ from dbo.asr_wrk_mast
+ where wrk_sts > 10
+ and io_type > 100 and io_type != 11
+ and source_sta_no = #{sourceStaNo}
+ order by io_time,wrk_no
+ </select>
+
</mapper>
--
Gitblit v1.9.1