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