From 09c4b134bf8b8221635a06bd7ee3064c759b7dcf Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 24 三月 2023 12:57:06 +0800
Subject: [PATCH] 提升机代码部分
---
src/main/java/com/zy/core/properties/SlaveProperties.java | 2
src/main/java/com/zy/core/model/command/ShuttleCommand.java | 3
src/main/java/com/zy/core/thread/LiftThread.java | 237 ++++++++++++++++++++++++++
src/main/java/com/zy/core/model/command/LiftCommand.java | 67 +++++++
src/main/java/com/zy/core/thread/ShuttleThread.java | 12 -
src/main/java/com/zy/core/enums/SlaveType.java | 1
src/main/java/com/zy/core/cache/OutputQueue.java | 2
src/main/java/com/zy/core/model/LiftSlave.java | 37 ++++
src/main/java/com/zy/core/model/protocol/LiftProtocol.java | 164 ++++++++++++++++++
src/main/java/com/zy/core/ServerBootstrap.java | 7
10 files changed, 521 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 6d94ede..024304c 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -98,6 +98,13 @@
new Thread((Runnable) devpThread).start();
SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
}
+ // 鍒濆鍖栨彁鍗囨満
+ News.info("鍒濆鍖栨彁鍗囨満........................................................");
+ for (LiftSlave liftSlave : slaveProperties.getLift()) {
+ LiftThread liftThread = new LiftThread(liftSlave);
+ new Thread(liftThread).start();
+ SlaveConnection.put(SlaveType.Lift, liftSlave.getId(), liftThread);
+ }
// 鍒濆鍖栧洓鍚戠┛姊溅
News.info("鍒濆鍖栧洓鍚戠┛姊溅......................................................");
for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) {
diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java
index 6a18ab3..e3f2d37 100644
--- a/src/main/java/com/zy/core/cache/OutputQueue.java
+++ b/src/main/java/com/zy/core/cache/OutputQueue.java
@@ -19,5 +19,7 @@
public static ArrayBlockingQueue<String> STE = new ArrayBlockingQueue<>(32);
//鍥涘悜绌挎杞﹁緭鍑烘棩蹇�
public static ArrayBlockingQueue<String> SHUTTLE = new ArrayBlockingQueue<>(32);
+ //鎻愬崌鏈鸿緭鍑烘棩蹇�
+ public static ArrayBlockingQueue<String> LIFT = new ArrayBlockingQueue<>(32);
}
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 86d676a..f2e1999 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -10,6 +10,7 @@
Car,
Ste,
Shuttle,
+ Lift,
;
public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/model/LiftSlave.java b/src/main/java/com/zy/core/model/LiftSlave.java
new file mode 100644
index 0000000..79bf2a4
--- /dev/null
+++ b/src/main/java/com/zy/core/model/LiftSlave.java
@@ -0,0 +1,37 @@
+package com.zy.core.model;
+
+import com.zy.core.Slave;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class LiftSlave extends Slave {
+
+ private Integer rack;
+
+ private Integer slot;
+
+ private Boolean demo;
+
+ @Data
+ public static class Sta {
+
+ // 杈撻�佺嚎plc缂栧彿
+ private Integer devpPlcId;
+
+ // 绌挎杞︾珯鐐圭紪鍙�
+ private Integer staNo;
+
+ // 鎺�
+ private Integer row;
+
+ // 鍒�
+ private Integer bay;
+
+ // 灞�
+ private Integer lev;
+
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/command/LiftCommand.java b/src/main/java/com/zy/core/model/command/LiftCommand.java
new file mode 100644
index 0000000..173e7a0
--- /dev/null
+++ b/src/main/java/com/zy/core/model/command/LiftCommand.java
@@ -0,0 +1,67 @@
+package com.zy.core.model.command;
+
+import lombok.Data;
+
+
+/**
+ * 鎻愬崌鏈哄懡浠ゆ姤鏂�
+ */
+@Data
+public class LiftCommand {
+
+ /**
+ * 鎻愬崌鏈哄彿
+ */
+ private Integer liftNo = 0;
+
+ /**
+ * 浠诲姟鍙�
+ */
+ private Integer taskNo = 0;
+
+ /**
+ * 浣滀笟绫诲瀷
+ */
+ private Short taskMode = 0;
+
+ /**
+ * 浠诲姟纭 false锛氭湭纭 true锛氬凡纭
+ */
+ private Boolean complete = Boolean.FALSE;
+
+ /**
+ * 寮�濮嬭繍琛�
+ */
+ private Short run;
+
+ /**
+ * 鐩爣浣嶇疆
+ */
+ private Short distPosition;
+
+ /**
+ * 杩愯閫熷害
+ */
+ private Short speed;
+
+ /**
+ * 浜屽眰楂樺害璁惧畾
+ */
+ private Short height2;
+
+ /**
+ * 涓夊眰楂樺害璁惧畾
+ */
+ private Short height3;
+
+ /**
+ * 鍥涘眰楂樺害璁惧畾
+ */
+ private Short height4;
+
+ /**
+ * 鎻愬崌鏈洪攣瀹�
+ */
+ private Short liftLock;
+
+}
diff --git a/src/main/java/com/zy/core/model/command/ShuttleCommand.java b/src/main/java/com/zy/core/model/command/ShuttleCommand.java
index 17534f0..2701793 100644
--- a/src/main/java/com/zy/core/model/command/ShuttleCommand.java
+++ b/src/main/java/com/zy/core/model/command/ShuttleCommand.java
@@ -2,6 +2,9 @@
import lombok.Data;
+/**
+ * 鍥涘悜绌挎杞﹀懡浠ゆ姤鏂�
+ */
@Data
public class ShuttleCommand {
diff --git a/src/main/java/com/zy/core/model/protocol/LiftProtocol.java b/src/main/java/com/zy/core/model/protocol/LiftProtocol.java
new file mode 100644
index 0000000..bbdc2f7
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/LiftProtocol.java
@@ -0,0 +1,164 @@
+package com.zy.core.model.protocol;
+
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 鎻愬崌鏈�
+ */
+@Slf4j
+@Data
+public class LiftProtocol {
+
+ /**
+ * 鎻愬崌鏈哄彿
+ */
+ private Short liftNo;
+
+ /**
+ * 浠诲姟鍙�
+ */
+ private Short taskNo = 0;
+
+ /**
+ * 灞�
+ */
+ private Short lev;
+
+ /**
+ * 鎻愬崌鏈洪攣瀹�
+ */
+ private Short liftLock;
+
+ /**
+ * 浣嶇疆鍒拌揪鍙嶉
+ */
+ private Short positionArrivalFeedback;
+
+ /**
+ * 鍑嗗灏辩华
+ * 灏辩华涓�1锛屾湭灏辩华涓�0
+ */
+ private Boolean ready;
+
+ /**
+ * 杩愯涓�
+ * 杩愯涓负1锛屾湭杩愯涓�0
+ */
+ private Boolean running;
+
+ /**
+ * 鑱旀満/鍗曟満
+ * 鑱旀満涓�1锛屽崟鏈轰负0
+ */
+ private Boolean mode;
+
+ /**
+ * 杈撻�佺嚎鍓嶇鍏夌數鏈夎揣
+ * 鏈夎揣涓�1锛屾棤璐т负0锛堝墠绔寚闈犺繎璐ф灦渚э級
+ */
+ private Boolean lineFrontHasStock;
+
+ /**
+ * 杈撻�佺嚎姝h浆鍙嶉
+ * 姝h浆杩愯涓�1锛屽惁鍒欎负0
+ */
+ private Boolean forwardRotationFeedback;
+
+ /**
+ * 杈撻�佺嚎鍙嶈浆鍙嶉
+ * 鍙嶈浆杩愯涓�1锛屽惁鍒欎负0
+ */
+ private Boolean reverseFeedback;
+
+ /**
+ * 杈撻�佺嚎鐢垫満杩囪浇
+ * 杩囪浇涓�0锛屾甯镐负1
+ */
+ private Boolean motorOverload;
+
+ /**
+ * 杈撻�佺嚎鏈鍏夌數鏈夎揣
+ * 鏈夎揣涓�1锛屾棤璐т负0
+ */
+ private Boolean lineEndHasStock;
+
+ /**
+ * 杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�
+ * 鎶ヨ涓�1锛屾湭鎶ヨ涓�0
+ */
+ private Boolean inConveyLineCardTrayAlarm;
+
+ /**
+ * 鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�
+ * 鎶ヨ涓�1锛屾湭鎶ヨ涓�0
+ */
+ private Boolean outConveyLineCardTrayAlarm;
+
+ /**
+ * 骞冲彴浣嶇疆鍋忓樊鎶ヨ
+ * 鎶ヨ涓�1锛屾湭鎶ヨ涓�0
+ */
+ private Boolean platPositionDeviationAlarm;
+
+ /**
+ * 骞冲彴鎵煩鍋忓樊鎶ヨ
+ * 鎶ヨ涓�1锛屾湭鎶ヨ涓�0
+ */
+ private Boolean platTorqueDeviationAlarm;
+
+ /**
+ * 骞冲彴鍥涘悜杞︽娴�
+ * 鏈夎溅涓�1锛屾棤杞︿负0
+ */
+ private Boolean platShuttleCheck;
+
+ /**
+ * 鏈氨缁姸鎬�
+ * 1. 涓嶅湪鎸囧畾灞�
+ * 2. 鍥涜酱涓嶅悓姝�
+ * 3. 骞冲彴鍓嶉檺鍏夌數琚尅鍒帮紙闈犺繎璐ф灦锛�
+ * 4. 骞冲彴鍚庨檺鍏夌數琚尅鍒帮紙杩滅璐ф灦锛�
+ * 5. 骞冲彴涓婇檺浣嶆姤璀�
+ * 6. 骞冲彴涓嬮檺浣嶆姤璀�
+ * 7. 鐢垫煖鎬ュ仠鎶ヨ
+ * 8. 杈撻�佺嚎鍓嶉檺浣嶈鎸″埌锛堥潬杩戣揣鏋讹級
+ * 9. 杈撻�佺嚎鍚庨檺浣嶈鎸″埌锛堣繙绂昏揣鏋讹級
+ * 10. 瑙︽懜灞忕揣鎬ュ仠姝㈣鎸変笅
+ * 11. 鍥涜酱鍔ㄥ姏绾挎柇绾�
+ * 12. 鍗曟満妯″紡
+ * 13. 鍥涜酱鎶ヨ
+ * 14. 浣嶇疆鍋忓樊杩囧ぇ
+ * 15. 鎵煩鍋忓樊杩囧ぇ
+ * 16. 杈撻�佺嚎杩囪浇
+ * 17. 杩涙彁鍗囨満鍗℃墭鐩�
+ * 18. 鍑烘彁鍗囨満鍗℃墭鐩�
+ */
+ private Short notReady;
+
+ /**
+ * 浼烘湇1閿欒
+ */
+ private Short servoError1;
+
+ /**
+ * 浼烘湇2閿欒
+ */
+ private Short servoError2;
+
+ /**
+ * 浼烘湇3閿欒
+ */
+ private Short servoError3;
+
+ /**
+ * 浼烘湇4閿欒
+ */
+ private Short servoError4;
+
+ /**
+ * 鎻愬崌鏈哄疄闄呴�熷害鍙嶉
+ */
+ private Short liftActualSpeed;
+
+}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index 4d026aa..b905e0b 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -41,4 +41,6 @@
private List<ShuttleSlave> shuttle = new ArrayList<>();
+ private List<LiftSlave> lift = new ArrayList<>();
+
}
diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java
new file mode 100644
index 0000000..f67aa95
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/LiftThread.java
@@ -0,0 +1,237 @@
+package com.zy.core.thread;
+
+import HslCommunication.Core.Transfer.DataFormat;
+import HslCommunication.Core.Types.OperateResult;
+import HslCommunication.Core.Types.OperateResultExOne;
+import HslCommunication.ModBus.ModbusTcpNet;
+import com.alibaba.fastjson.JSON;
+import com.core.common.DateUtils;
+import com.core.exception.CoolException;
+import com.zy.core.News;
+import com.zy.core.ThreadHandler;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.LiftSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.LiftCommand;
+import com.zy.core.model.protocol.LiftProtocol;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
+
+/**
+ * 鎻愬崌鏈虹嚎绋�
+ */
+@Data
+@Slf4j
+public class LiftThread implements Runnable, ThreadHandler {
+
+ private ModbusTcpNet modbusTcpNet;
+ private LiftSlave slave;
+ private LiftProtocol liftProtocol;
+
+ public LiftThread(LiftSlave slave) {
+ this.slave = slave;
+ }
+
+ @Override
+ public void run() {
+ this.connect();
+ while (true) {
+ try {
+ int step = 1;
+ Task task = MessageQueue.poll(SlaveType.Lift, slave.getId());
+ if (task != null) {
+ step = task.getStep();
+ }
+ switch (step) {
+ // 璇绘暟鎹�
+ case 1:
+ readStatus();
+ break;
+ // 鍐欏叆鏁版嵁
+ case 2:
+ write((LiftCommand) task.getData());
+ break;
+ default:
+ break;
+ }
+ Thread.sleep(500);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public boolean connect() {
+ boolean result = false;
+ //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
+ modbusTcpNet = new ModbusTcpNet(slave.getIp(), slave.getPort(), (byte) 0x01);
+ // 褰撲綘闇�瑕佹寚瀹氭牸寮忕殑鏁版嵁瑙f瀽鏃讹紝灏遍渶瑕佽缃笅闈㈢殑杩欎釜淇℃伅
+ modbusTcpNet.setDataFormat(DataFormat.ABCD);
+ OperateResult connect = modbusTcpNet.ConnectServer();
+ if(connect.IsSuccess){
+ result = true;
+ OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戞彁鍗囨満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.info("鎻愬崌鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
+ } else {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("鎻愬崌鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] ", slave.getId(), slave.getIp(), slave.getPort());
+ }
+ modbusTcpNet.ConnectClose();
+ //-------------------------鎻愬崌鏈鸿繛鎺ユ柟娉�------------------------//
+ return result;
+ }
+
+ @Override
+ public void close() {
+ modbusTcpNet.ConnectClose();
+ }
+
+ private void readStatus() {
+ try {
+ OperateResultExOne<byte[]> result = modbusTcpNet.Read("29", (short) 17);
+ if (result.IsSuccess) {
+ if (null == liftProtocol) {
+ liftProtocol = new LiftProtocol();
+ liftProtocol.setLiftNo(slave.getId().shortValue());
+ }
+
+ //----------璇诲彇鎻愬崌鏈虹姸鎬�-----------
+ //鑾峰彇鏁版嵁
+ byte[] content = result.Content;
+ //鎻愬崌鏈洪攣瀹�
+ liftProtocol.setLiftLock(modbusTcpNet.getByteTransform().TransInt16(content,0));
+ //浣嶇疆鍒拌揪鍙嶉
+ liftProtocol.setPositionArrivalFeedback(modbusTcpNet.getByteTransform().TransInt16(content,2));
+ //鍑嗗灏辩华
+ liftProtocol.setReady(modbusTcpNet.getByteTransform().TransBool(content,3));
+ //杩愯涓�
+ liftProtocol.setRunning(modbusTcpNet.getByteTransform().TransBool(content,4));
+ //鑱旀満/鍗曟満
+ liftProtocol.setMode(modbusTcpNet.getByteTransform().TransBool(content,5));
+ //杈撻�佺嚎鍓嶇鍏夌數鏈夎揣
+ liftProtocol.setLineFrontHasStock(modbusTcpNet.getByteTransform().TransBool(content,6));
+ //杈撻�佺嚎姝h浆鍙嶉
+ liftProtocol.setForwardRotationFeedback(modbusTcpNet.getByteTransform().TransBool(content,7));
+ //杈撻�佺嚎鍙嶈浆鍙嶉
+ liftProtocol.setReverseFeedback(modbusTcpNet.getByteTransform().TransBool(content,8));
+ //杈撻�佺嚎鐢垫満杩囪浇
+ liftProtocol.setMotorOverload(modbusTcpNet.getByteTransform().TransBool(content,9));
+ //杈撻�佺嚎鏈鍏夌數鏈夎揣
+ liftProtocol.setLineEndHasStock(modbusTcpNet.getByteTransform().TransBool(content,10));
+ //杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�
+ liftProtocol.setInConveyLineCardTrayAlarm(modbusTcpNet.getByteTransform().TransBool(content,11));
+ //鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�
+ liftProtocol.setOutConveyLineCardTrayAlarm(modbusTcpNet.getByteTransform().TransBool(content,12));
+ //骞冲彴浣嶇疆鍋忓樊鎶ヨ
+ liftProtocol.setPlatPositionDeviationAlarm(modbusTcpNet.getByteTransform().TransBool(content,13));
+ //骞冲彴鎵煩鍋忓樊鎶ヨ
+ liftProtocol.setPlatTorqueDeviationAlarm(modbusTcpNet.getByteTransform().TransBool(content,14));
+ //骞冲彴鍥涘悜杞︽娴�
+ liftProtocol.setPlatShuttleCheck(modbusTcpNet.getByteTransform().TransBool(content,15));
+ //鏈氨缁姸鎬�
+ liftProtocol.setNotReady(modbusTcpNet.getByteTransform().TransInt16(content,16));
+ //浼烘湇1閿欒
+ liftProtocol.setServoError1(modbusTcpNet.getByteTransform().TransInt16(content,17));
+ //浼烘湇2閿欒
+ liftProtocol.setServoError2(modbusTcpNet.getByteTransform().TransInt16(content,18));
+ //浼烘湇3閿欒
+ liftProtocol.setServoError3(modbusTcpNet.getByteTransform().TransInt16(content,19));
+ //浼烘湇4閿欒
+ liftProtocol.setServoError4(modbusTcpNet.getByteTransform().TransInt16(content,20));
+ //鎻愬崌鏈哄疄闄呴�熷害鍙嶉
+ liftProtocol.setLiftActualSpeed(modbusTcpNet.getByteTransform().TransInt16(content,21));
+
+ ///璇诲彇鎻愬崌鏈虹姸鎬�-end
+
+ OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+ log.info(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ //.....
+
+ }else {
+ OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆憑1}鎻愬崌鏈簆lc鐘舵�佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
+ throw new CoolException(MessageFormat.format( "鎻愬崌鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
+ }
+ } catch (Exception e) {
+ OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戞彁鍗囨満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ initLift();
+ }
+ }
+
+ private boolean write(LiftCommand command){
+ if (null == command) {
+ News.error("鎻愬崌鏈哄啓鍏ュ懡浠や负绌�");
+ return false;
+ }
+
+ command.setLiftNo(slave.getId());
+ // 寮�濮嬩换鍔�
+ short[] array = new short[30];
+ //寮�濮嬭繍琛�
+ array[0] = command.getRun();
+ //鐩爣浣嶇疆
+ array[1] = command.getDistPosition();
+ //杩愯閫熷害
+ array[2] = command.getSpeed();
+ //浜屽眰楂樺害璁惧畾
+ array[3] = command.getHeight2();
+ //涓夊眰楂樺害璁惧畾
+ array[4] = command.getHeight3();
+ //鍥涘眰楂樺害璁惧畾
+ array[5] = command.getHeight4();
+ //鎻愬崌鏈洪攣瀹�
+ array[29] = command.getLiftLock();
+
+ OperateResult result = modbusTcpNet.Write("0", array);;
+ if (result != null && result.IsSuccess) {
+ News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+ OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+ return true;
+ } else {
+ OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ return false;
+ }
+ }
+
+ /**
+ * 鍒濆鍖栨彁鍗囨満
+ */
+ private void initLift() {
+ if (null == liftProtocol) {
+ liftProtocol = new LiftProtocol();
+ }
+ }
+
+ /******************************************************************************************/
+ /**************************************** 娴嬭瘯涓撶敤 *****************************************/
+ /*****************************************************************************************/
+ public static void main(String[] args) throws InterruptedException {
+ LiftSlave slave = new LiftSlave();
+ slave.setId(1);
+ slave.setIp("192.168.4.24");
+ slave.setPort(502);
+ LiftThread thread = new LiftThread(slave);
+ thread.connect();
+ thread.readStatus();
+
+ LiftCommand command = new LiftCommand();
+ command.setRun((short) 0);
+ command.setDistPosition((short) 12);
+ command.setSpeed((short) 300);
+ command.setHeight2((short) 100);
+ command.setHeight3((short) 200);
+ command.setHeight4((short) 303);
+ command.setLiftLock((short) 1);
+ thread.write(command);
+
+ }
+
+}
diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java
index 1e3d471..cbc2bf8 100644
--- a/src/main/java/com/zy/core/thread/ShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -4,32 +4,24 @@
import HslCommunication.Core.Types.OperateResult;
import HslCommunication.Core.Types.OperateResultExOne;
import HslCommunication.ModBus.ModbusTcpNet;
-import HslCommunication.Profinet.Siemens.SiemensPLCS;
-import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.core.common.DateUtils;
-import com.core.common.RadixTools;
import com.core.exception.CoolException;
import com.zy.common.utils.CommonUtils;
import com.zy.core.News;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.ShuttleStatusType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.SteSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.ShuttleCommand;
-import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.ShuttleProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
import java.util.Date;
-import java.util.Random;
/**
* 鍥涘悜绌挎杞︾嚎绋�
@@ -41,7 +33,6 @@
private ModbusTcpNet modbusTcpNet;
private ShuttleSlave slave;
private ShuttleProtocol shuttleProtocol;
- private SiemensS7Net siemensS7Net;
public ShuttleThread(ShuttleSlave slave) {
this.slave = slave;
@@ -99,7 +90,7 @@
@Override
public void close() {
-
+ modbusTcpNet.ConnectClose();
}
private void readStatus() {
@@ -175,7 +166,6 @@
command.setShuttleNo(slave.getId());
// 寮�濮嬩换鍔�
- //...
short[] array = new short[17];
//鎺у埗鎸囦护瀛�
array[0] = command.getCommandWord();
--
Gitblit v1.9.1