From a32b1370e1c109dcc76eb7c739cf317b41e35984 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期三, 16 三月 2022 12:46:00 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 35 +++++++++++++++++ src/main/java/com/zy/core/enums/IoModeType.java | 32 ++++++++++++++++ src/main/java/com/zy/core/thread/SiemensDevpThread.java | 20 ++++++++++ 3 files changed, 87 insertions(+), 0 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 b3318a2..4ec61b3 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -37,6 +37,7 @@ import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.LedThread; +import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -1588,5 +1589,39 @@ } } + /** + * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� + */ + public void ioConvert() { + try { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + + WrkMast pakoutOf2F = wrkMastMapper.selectWorkingPakoutOf2F(); + if (pakoutOf2F != null) { + if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { + // 鍑哄簱鍒囨崲涓� + devpThread.ioMode = IoModeType.PAKOUT_BOOTING; + + WrkMast pakinOf2F = wrkMastMapper.selectWorkingPakinOf2F(); + if (pakinOf2F == null && !devpThread.getStation().get(201).isLoading() && !devpThread.getStation().get(202).isLoading()) { + // 鍑哄簱妯″紡 + devpThread.ioMode = IoModeType.PAKOUT_MODE; + } + } + } else { + // 鍏ュ簱妯″紡 + devpThread.ioMode = IoModeType.PAKIN_MODE; + } + } + + } 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 8880b46..6eb8cb3 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -12,6 +12,7 @@ import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; +import com.zy.core.enums.IoModeType; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; @@ -50,6 +51,8 @@ add(180);add(181);add(182);add(183);add(184);add(185);add(186);add(187);add(188);add(189); add(190);add(191);add(192); }}; + + public IoModeType ioMode = IoModeType.NONE; public SiemensDevpThread(DevpSlave slave) { this.slave = slave; @@ -111,6 +114,8 @@ * 璇诲彇鐘舵�� ====> 鏁村潡plc */ private void read() throws InterruptedException { + // 鏇存柊鍏ュ嚭搴撴ā寮� + updateIoMode(); OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 186); if (result.IsSuccess) { for (int i = 0; i < 83; i++) { @@ -158,6 +163,11 @@ staProtocol.setPakMk(true); } } + } + + OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0"); + if (result2.IsSuccess) { + this.ioMode = IoModeType.get(result2.Content); } if (result.IsSuccess && result0.IsSuccess && result1.IsSuccess) { @@ -211,6 +221,16 @@ } } + // 鏇存柊鍏ュ嚭搴撴ā寮� + private void updateIoMode() throws InterruptedException { + if (this.ioMode != IoModeType.NONE) { + if (!siemensS7Net.Write("DB200", this.ioMode.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎1F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + } + /** * 蹇冭烦 */ -- Gitblit v1.9.1