From ba55cbe0d61d473039a2d486d5a6fe26e4b6bf73 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 03 三月 2022 11:03:03 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/command/SteCommand.java | 109 +++++++++++++++++++++++++++
src/main/java/com/zy/core/thread/SteThread.java | 94 +++++++++++------------
2 files changed, 155 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java
new file mode 100644
index 0000000..4deb5d5
--- /dev/null
+++ b/src/main/java/com/zy/core/model/command/SteCommand.java
@@ -0,0 +1,109 @@
+package com.zy.core.model.command;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.zy.core.enums.CrnTaskModeType;
+import lombok.Data;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 绌挎杞﹀懡浠ゆ姤鏂�
+ * Created by vincent on 2020/8/11
+ */
+@Data
+public class SteCommand {
+
+ // 鍫嗗灈鏈哄彿
+ private Integer crnNo = 0;
+
+ // 浠诲姟瀹屾垚纭浣�
+ private Short ackFinish = 0;
+
+ // 浠诲姟鍙�
+ private Short taskNo = 0;
+
+ /**
+ * 浠诲姟妯″紡锛�
+ * 0 = 鏃�
+ * 1 = 鍏ュ簱 婧愬拰鐩爣閮藉彂
+ * 2 = 鍑哄簱 婧愬拰鐩爣閮藉彂
+ * 3 = 搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂
+ * 4 = 绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂
+ * 5 = 鍥炲師鐐� 涓嶇敤鍙�
+ * 6 = 鍘诲弽鍘熺偣 鐩爣鍙�
+ * 7 = 鍧愭爣绉昏 鐩爣鍙�
+ * 90 = 璁剧疆鏃堕棿
+ * 99 = 鍙栨秷褰撳墠浠诲姟
+ */
+ private Short taskMode = 0;
+
+ @JSONField(serialize = false)
+ private CrnTaskModeType taskModeType;
+
+ // 婧愪綅缃帓鍙�
+ private Short sourcePosX = 0;
+
+ // 婧愪綅缃垪鍙�
+ private Short sourcePosY = 0;
+
+ // 婧愪綅缃眰鍙�
+ private Short sourcePosZ = 0;
+
+ // 婧愮珯
+ private Short sourceStaNo = 0;
+
+ // 婧愬贩閬�
+ private Short sourceLane = 0;
+
+ // 鐩爣浣嶇疆鎺掑彿
+ private Short destinationPosX = 0;
+
+ // 鐩爣浣嶇疆鍒楀彿
+ private Short destinationPosY = 0;
+
+ // 鐩爣浣嶇疆灞傚彿
+ private Short destinationPosZ = 0;
+
+ // 鐩爣绔�
+ private Short destinationStaNo = 0;
+
+ // 鐩爣宸烽亾
+ private Short destinationLane = 0;
+
+ // 浠诲姟纭 0锛氭湭纭 1锛氬凡纭
+ private Short command = 0;
+
+ 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();
+ }
+
+ public static void main(String[] args) {
+ Date date = new Date();
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+
+ System.out.println(cal.get(Calendar.YEAR));
+ //榛樿浠�0-11
+ System.out.println(cal.get(Calendar.MONTH)+1);
+ System.out.println(cal.get(Calendar.DATE));
+ int hour = cal.get(Calendar.HOUR_OF_DAY);
+ System.out.println("鏃�");
+ System.out.println(hour);
+ int minute = cal.get(Calendar.MINUTE);
+ System.out.println("鍒�");
+ System.out.println(minute);
+ int second = cal.get(Calendar.SECOND);
+ System.out.println("绉�");
+ System.out.println(second);
+ int mm = cal.get(Calendar.DAY_OF_WEEK) - 1; // 鏄熸湡锛�0(鏃�)锝�6(鍏�)
+ System.out.println("绀兼嫓");
+ System.out.println(mm);
+ }
+}
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 049a874..c3e317a 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -17,11 +17,9 @@
import com.zy.core.enums.CrnStatusType;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
-import com.zy.core.model.CrnSlave;
import com.zy.core.model.SteSlave;
import com.zy.core.model.Task;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.SteProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -70,13 +68,13 @@
break;
// 鍐欏叆鏁版嵁
case 2:
- write((CrnCommand) task.getData());
+ write((SteCommand) task.getData());
break;
// 澶嶄綅
case 3:
- CrnCommand command = (CrnCommand) task.getData();
+ SteCommand command = (SteCommand) task.getData();
if (null == command) {
- command = new CrnCommand();
+ command = new SteCommand();
}
command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -159,40 +157,40 @@
// }
OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
if (result.IsSuccess) {
- if (null == crnProtocol) {
- crnProtocol = new CrnProtocol();
+ if (null == steProtocol) {
+ steProtocol = new SteProtocol();
}
- crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
- crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
- crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
- crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
- crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
- crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
- crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
- crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
- crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
- crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
- crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
- crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
- crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
- crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
- crnProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 28));
- crnProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 32));
- crnProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 36));
- crnProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 40));
- crnProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 44));
- crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 48));
- crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 52));
+ steProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
+ steProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
+ steProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
+ steProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
+ steProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
+ steProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
+ steProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
+ steProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
+ steProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
+ steProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
+ steProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
+ steProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
+ steProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
+ steProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
+ steProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 28));
+ steProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 32));
+ steProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 36));
+ steProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 40));
+ steProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 44));
+ steProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 48));
+ steProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 52));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
// 澶嶄綅淇″彿
- if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
- log.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),crnProtocol.getTaskNo());
+ if (steProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+ log.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),steProtocol.getTaskNo());
if (resetFlag) {
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setAckFinish((short)1);
- if (write(crnCommand)) {
+ SteCommand steCommand = new SteCommand();
+ steCommand.setAckFinish((short)1);
+ if (write(steCommand)) {
resetFlag = false;
}
}
@@ -202,9 +200,9 @@
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
BasCrnp basCrnp = new BasCrnp();
- basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue());
+ basCrnp.setCrnErr(steProtocol.getAlarm()==null?0:steProtocol.getAlarm().longValue());
basCrnp.setCrnNo(slave.getId());
- if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+ if (!basCrnpService.updateById(steProtocol.toSqlModel(basCrnp))){
log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
@@ -216,7 +214,7 @@
e.printStackTrace();
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());
- initCrn();
+ initSte();
}
}
@@ -224,7 +222,7 @@
/**
* 鍐欏叆鏁版嵁
*/
- private boolean write(CrnCommand command){
+ private boolean write(SteCommand command){
if (null == command) {
log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
@@ -307,16 +305,16 @@
/**************************************** 娴嬭瘯涓撶敤 *****************************************/
/*****************************************************************************************/
public static void main(String[] args) throws InterruptedException {
- CrnSlave slave = new CrnSlave();
- slave.setId(1);
- slave.setIp("192.168.3.39");
- slave.setPort(5015);
- slave.setRack(0);
- slave.setSlot(0);
- SteThread melsecCrnThread = new SteThread(slave);
- melsecCrnThread.connect();
- melsecCrnThread.readStatus();
- System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
+// CrnSlave slave = new CrnSlave();
+// slave.setId(1);
+// slave.setIp("192.168.3.39");
+// slave.setPort(5015);
+// slave.setRack(0);
+// slave.setSlot(0);
+// SteThread melsecCrnThread = new SteThread(slave);
+// melsecCrnThread.connect();
+// melsecCrnThread.readStatus();
+// System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
// 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
// CrnCommand command = new CrnCommand();
--
Gitblit v1.9.1