From b2658337c8b37a745415e672074c86f43ca09d5e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 11 八月 2020 13:39:32 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/enums/CrnTaskModeType.java | 42 +++++++++++++++++++++ src/main/java/com/zy/core/model/command/CrnCommand.java | 13 ++++++ src/main/java/com/zy/core/thread/CrnThread.java | 29 ++++++++++++-- src/main/java/com/zy/core/model/Task.java | 6 +- src/main/resources/application.yml | 2 5 files changed, 84 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/core/enums/CrnTaskModeType.java b/src/main/java/com/zy/core/enums/CrnTaskModeType.java new file mode 100644 index 0000000..c6fca8a --- /dev/null +++ b/src/main/java/com/zy/core/enums/CrnTaskModeType.java @@ -0,0 +1,42 @@ +package com.zy.core.enums; + +public enum CrnTaskModeType { + + NONE(0), // 鏃� + PAKIN(1), // 鍏ュ簱 + PAKOUT(2), // 鍑哄簱 + LOC_MOVE(3), // 搴撲綅绉昏浆 + SITE_MOVE(4), // 绔欎綅绉昏浆 + ORIGIN(5), // 鍥炲師鐐� + ; + + public Integer id; + CrnTaskModeType(Integer id) { + this.id = id; + } + + public static CrnTaskModeType get(Short id) { + if (null == id) { + return null; + } + for (CrnTaskModeType type : CrnTaskModeType.values()) { + if (type.id.equals(id.intValue())) { + return type; + } + } + return null; + } + + public static CrnTaskModeType get(CrnTaskModeType type) { + if (null == type) { + return null; + } + for (CrnTaskModeType crnTaskModeType : CrnTaskModeType.values()) { + if (crnTaskModeType == type) { + return crnTaskModeType; + } + } + return null; + } + +} diff --git a/src/main/java/com/zy/core/model/Task.java b/src/main/java/com/zy/core/model/Task.java index c337aed..c3cf784 100644 --- a/src/main/java/com/zy/core/model/Task.java +++ b/src/main/java/com/zy/core/model/Task.java @@ -6,16 +6,16 @@ * Created by vincent on 2020/8/5 */ @Data -public class Task<T> { +public class Task { private Integer step; - private T data; + private Object data; public Task() { } - public Task(Integer step, T data) { + public Task(Integer step, Object data) { this.step = step; this.data = data; } diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java index 3b89cb4..dc97b19 100644 --- a/src/main/java/com/zy/core/model/command/CrnCommand.java +++ b/src/main/java/com/zy/core/model/command/CrnCommand.java @@ -1,5 +1,6 @@ package com.zy.core.model.command; +import com.zy.core.enums.CrnTaskModeType; import lombok.Data; /** @@ -31,6 +32,8 @@ */ private Short taskMode; + private CrnTaskModeType taskModeType; + // 婧愪綅缃帓鍙� private Short sourcePosX; @@ -49,4 +52,14 @@ // 鐩爣浣嶇疆灞傚彿 private Short destinationPosZ; + public void setTaskMode(Short taskMode){ + this.taskMode = taskMode; + this.taskModeType = CrnTaskModeType.get(taskModeType); + } + + public void setTaskMode(CrnTaskModeType type) { + this.taskModeType = type; + this.taskMode = CrnTaskModeType.get(type).id.shortValue(); + } + } diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java index 6545d5b..4839c5b 100644 --- a/src/main/java/com/zy/core/thread/CrnThread.java +++ b/src/main/java/com/zy/core/thread/CrnThread.java @@ -44,10 +44,11 @@ switch (step) { // 璇绘暟鎹� case 1: - readStatus(); // 璇诲彇鐘舵�� + readStatus(); break; + // 鍐欏叆鏁版嵁 case 2: - CrnCommand command = (CrnCommand) task.getData(); + write((CrnCommand) task.getData()); break; case 3: break; @@ -86,7 +87,7 @@ * 璇诲彇鐘舵�� */ private void readStatus(){ - OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 10); + OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46); if (result.IsSuccess) { if (null == crnProtocol) { crnProtocol = new CrnProtocol(); @@ -120,7 +121,27 @@ * 鍐欏叆鏁版嵁 */ private void write(CrnCommand command){ - + if (null == command) { + log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); + return; + } + command.setCrnNo(slave.getId()); + short[] array = new short[9]; + array[0] = command.getAckFinish(); + array[1] = command.getTaskNo(); + array[2] = command.getTaskMode(); + array[3] = command.getSourcePosX(); + array[4] = command.getSourcePosY(); + array[5] = command.getSourcePosZ(); + array[6] = command.getDestinationPosX(); + array[7] = command.getDestinationPosY(); + array[8] = command.getDestinationPosZ(); + OperateResult result = siemensNet.Write("DB8.0", array); + if (result.IsSuccess) { + readStatus(); + } else { + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } } @Override diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 85a7adb..61553ea 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -38,7 +38,7 @@ # 鍫嗗灈鏈� crn[0]: id: 1 - ip: 192.168.6.1 + ip: 192.168.6.10 port: 102 rack: 0 slot: 2 -- Gitblit v1.9.1