From fd5d26ae0d1dbf71f90b99ef84d09a34e2d10d83 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 07 一月 2025 10:45:50 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java | 4 src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 4 src/main/java/com/zy/asrs/controller/ShuttleController.java | 18 ++-- src/main/java/com/zy/core/action/ShuttleAction.java | 10 +- src/main/java/com/zy/core/action/ForkLiftAction.java | 6 src/main/java/com/zy/core/model/ForkLiftSlave.java | 4 + src/main/java/com/zy/asrs/controller/ForkLiftController.java | 16 ++-- src/main/java/com/zy/core/enums/RedisKeyType.java | 7 + src/main/resources/application.yml | 2 src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java | 27 ++++++ src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java | 94 +++++++++++++++++++++-- 11 files changed, 151 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ForkLiftController.java b/src/main/java/com/zy/asrs/controller/ForkLiftController.java index b42a56f..f9e1d89 100644 --- a/src/main/java/com/zy/asrs/controller/ForkLiftController.java +++ b/src/main/java/com/zy/asrs/controller/ForkLiftController.java @@ -164,7 +164,7 @@ @RequestMapping(value = "/command/query") public R liftCommandQuery(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -176,13 +176,13 @@ @RequestMapping(value = "/command/rollback") public R liftCommandRollback(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep) { - Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } LiftRedisCommand redisCommand = JSON.parseObject(o.toString(), LiftRedisCommand.class); redisCommand.setCommandStep(commandStep); - redisUtil.set(RedisKeyType.LIFT.key + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } @@ -191,7 +191,7 @@ public R liftCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep , @RequestParam("complete") Integer complete) { - Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -200,14 +200,14 @@ List<ForkLiftCommand> commands = assignCommand.getCommands(); ForkLiftCommand command = commands.get(commandStep); command.setComplete(complete != 0); - redisUtil.set(RedisKeyType.LIFT.key + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } //閲嶅惎浠诲姟(鍛戒护) @RequestMapping(value = "/command/restart") public R liftCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -232,11 +232,11 @@ //鍒犻櫎浠诲姟(鍛戒护) @RequestMapping(value = "/command/del") public R liftCommandDel(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.LIFT.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } - redisUtil.del(RedisKeyType.LIFT.key + wrkNo); + redisUtil.del(RedisKeyType.FORK_LIFT_WORK_FLAG.key + wrkNo); return R.ok(); } diff --git a/src/main/java/com/zy/asrs/controller/ShuttleController.java b/src/main/java/com/zy/asrs/controller/ShuttleController.java index 4e03ad6..30d15d4 100644 --- a/src/main/java/com/zy/asrs/controller/ShuttleController.java +++ b/src/main/java/com/zy/asrs/controller/ShuttleController.java @@ -81,7 +81,7 @@ shuttleData.put("moveAdvancePath", null);//绌挎杞﹂璁¤矾寰� if (shuttleProtocol.getTaskNo() != 0) { //瀛樺湪浠诲姟锛岃幏鍙栨寚浠� - Object object = redisUtil.get(RedisKeyType.SHUTTLE.key + shuttleProtocol.getTaskNo()); + Object object = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + shuttleProtocol.getTaskNo()); if (object != null) { ShuttleRedisCommand redisCommand = JSON.parseObject(object.toString(), ShuttleRedisCommand.class); shuttleData.put("moveAdvancePath", redisCommand.getAssignCommand().getNodes());//绌挎杞﹂璁¤矾寰� @@ -165,7 +165,7 @@ @RequestMapping(value = "/command/query") public R shuttleCommandQuery(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -177,13 +177,13 @@ @RequestMapping(value = "/command/rollback") public R shuttleCommandRollback(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } ShuttleRedisCommand redisCommand = JSON.parseObject(o.toString(), ShuttleRedisCommand.class); redisCommand.setCommandStep(commandStep); - redisUtil.set(RedisKeyType.SHUTTLE.key + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } @@ -192,7 +192,7 @@ public R shuttleCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo , @RequestParam("commandStep") Integer commandStep , @RequestParam("complete") Integer complete) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -201,14 +201,14 @@ List<ShuttleCommand> commands = assignCommand.getCommands(); ShuttleCommand command = commands.get(commandStep); command.setComplete(complete != 0); - redisUtil.set(RedisKeyType.SHUTTLE.key + wrkNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo, JSON.toJSONString(redisCommand)); return R.ok(); } //閲嶅惎浠诲姟(鍛戒护) @RequestMapping(value = "/command/restart") public R shuttleCommandCompleteSwitch(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } @@ -230,11 +230,11 @@ //鍒犻櫎浠诲姟(鍛戒护) @RequestMapping(value = "/command/del") public R liftCommandDel(@RequestParam("wrkNo") Integer wrkNo) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + wrkNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); if (o == null) { return R.error(); } - redisUtil.del(RedisKeyType.SHUTTLE.key + wrkNo); + redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + wrkNo); return R.ok(); } diff --git a/src/main/java/com/zy/core/action/ForkLiftAction.java b/src/main/java/com/zy/core/action/ForkLiftAction.java index c72deec..3c412e4 100644 --- a/src/main/java/com/zy/core/action/ForkLiftAction.java +++ b/src/main/java/com/zy/core/action/ForkLiftAction.java @@ -50,7 +50,7 @@ redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭 redisCommand.setAssignCommand(assignCommand);//鍛戒护 //浠诲姟鏁版嵁淇濆瓨鍒皉edis - if (redisUtil.set(RedisKeyType.FORK_LIFT.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) { + if (redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) { forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo().intValue()); return true; } @@ -58,7 +58,7 @@ } public synchronized boolean executeWork(Integer liftNo, Integer taskNo) { - Object obj = redisUtil.get(RedisKeyType.FORK_LIFT.key + taskNo); + Object obj = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + taskNo); if (obj == null) { return false; } @@ -125,7 +125,7 @@ //鏇存柊redis鏁版嵁 redisCommand.setCommandStep(commandStep); // 鏇存柊redis鏁版嵁 - redisUtil.set(RedisKeyType.FORK_LIFT.key + taskNo, JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + taskNo, JSON.toJSONString(redisCommand)); } return true; diff --git a/src/main/java/com/zy/core/action/ShuttleAction.java b/src/main/java/com/zy/core/action/ShuttleAction.java index fb12232..a083581 100644 --- a/src/main/java/com/zy/core/action/ShuttleAction.java +++ b/src/main/java/com/zy/core/action/ShuttleAction.java @@ -61,7 +61,7 @@ redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭 redisCommand.setAssignCommand(assignCommand);//鍛戒护 //浠诲姟鏁版嵁淇濆瓨鍒皉edis - if (redisUtil.set(RedisKeyType.SHUTTLE.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand, SerializerFeature.DisableCircularReferenceDetect))) { + if (redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand, SerializerFeature.DisableCircularReferenceDetect))) { shuttleThread.setSyncTaskNo(assignCommand.getTaskNo()); return true; } @@ -69,7 +69,7 @@ } public synchronized boolean executeWork(Integer shuttleNo, Integer taskNo) { - Object obj = redisUtil.get(RedisKeyType.SHUTTLE.key + taskNo); + Object obj = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + taskNo); if (obj == null) { return false; } @@ -192,7 +192,7 @@ if(updateCommand) { // 鏇存柊redis鏁版嵁 - redisUtil.set(RedisKeyType.SHUTTLE.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand, SerializerFeature.DisableCircularReferenceDetect)); + redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand, SerializerFeature.DisableCircularReferenceDetect)); } if (!command.getComplete()) { @@ -226,7 +226,7 @@ } //鍒犻櫎redis - redisUtil.del(RedisKeyType.SHUTTLE.key + redisCommand.getWrkNo()); + redisUtil.del(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo()); return false;//绂佹鍐嶄笅鍙戝懡浠� } } @@ -264,7 +264,7 @@ //鏇存柊redis鏁版嵁 redisCommand.setCommandStep(commandStep); //浠诲姟鏁版嵁淇濆瓨鍒皉edis - redisUtil.set(RedisKeyType.SHUTTLE.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand)); + redisUtil.set(RedisKeyType.SHUTTLE_WORK_FLAG.key + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand)); return true; } diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java index 2a9af30..821dc8e 100644 --- a/src/main/java/com/zy/core/enums/RedisKeyType.java +++ b/src/main/java/com/zy/core/enums/RedisKeyType.java @@ -2,9 +2,10 @@ public enum RedisKeyType { - SHUTTLE("shuttle_wrk_no_"), - LIFT("lift_wrk_no_"), - FORK_LIFT("fork_lift_wrk_no_"), + SHUTTLE_WORK_FLAG("shuttle_wrk_no_"), + SHUTTLE_FLAG("shuttle_"), + FORK_LIFT_WORK_FLAG("fork_lift_wrk_no_"), + FORK_LIFT_FLAG("fork_lift_"), MAP("realtimeBasMap_"), BASIC_MAP("basicMap_"), ; diff --git a/src/main/java/com/zy/core/model/ForkLiftSlave.java b/src/main/java/com/zy/core/model/ForkLiftSlave.java index f8102fe..cc901ae 100644 --- a/src/main/java/com/zy/core/model/ForkLiftSlave.java +++ b/src/main/java/com/zy/core/model/ForkLiftSlave.java @@ -11,6 +11,10 @@ @Data public class ForkLiftSlave extends Slave { + private Integer rack; + + private Integer slot; + //鎻愬崌鏈虹珯鐐� private List<Sta> sta = new ArrayList<>(); diff --git a/src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java b/src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java index fdbaa2a..9d6ecb5 100644 --- a/src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/ForkLiftProtocol.java @@ -1,11 +1,14 @@ package com.zy.core.model.protocol; +import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.entity.BasLiftErr; import com.zy.asrs.service.BasLiftErrService; +import com.zy.common.utils.RedisUtil; import com.zy.core.enums.ForkLiftIoModeType; import com.zy.core.enums.ForkLiftProtocolStatusType; import com.zy.core.enums.ForkLiftTaskModeType; +import com.zy.core.enums.RedisKeyType; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -30,6 +33,11 @@ * 浠诲姟鍙� */ private Integer taskNo = 0; + + /** + * PLC浠诲姟鍙� + */ + private Integer wrkNo; /** * 浠诲姟鐘舵�� @@ -159,6 +167,25 @@ return basLiftErr.getErrName(); } + public Integer getTaskNo() { + RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); + if (null != redisUtil) { + Object o = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + this.liftNo); + if (!Cools.isEmpty(o)) { + this.taskNo = Integer.parseInt(String.valueOf(o)); + } + } + return this.taskNo == null ? 0 : this.taskNo; + } + + public synchronized void setSyncTaskNo(Integer taskNo) { + RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); + if (null != redisUtil) { + redisUtil.set(RedisKeyType.FORK_LIFT_FLAG.key + this.liftNo, taskNo); + this.taskNo = taskNo; + } + } + @Override public ForkLiftProtocol clone() { try { diff --git a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java index 932cd79..003af3f 100644 --- a/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java @@ -195,7 +195,7 @@ public Integer getTaskNo() { RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); if (null != redisUtil) { - Object o = redisUtil.get(RedisKeyType.SHUTTLE.key + this.shuttleNo); + Object o = redisUtil.get(RedisKeyType.SHUTTLE_FLAG.key + this.shuttleNo); if (!Cools.isEmpty(o)) { this.taskNo = Integer.parseInt(String.valueOf(o)); } @@ -206,7 +206,7 @@ public synchronized void setSyncTaskNo(Integer taskNo) { RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class); if (null != redisUtil) { - redisUtil.set(RedisKeyType.SHUTTLE.key + this.shuttleNo, taskNo); + redisUtil.set(RedisKeyType.SHUTTLE_FLAG.key + this.shuttleNo, taskNo); this.taskNo = taskNo; } } diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index b70f987..dd31655 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -106,7 +106,7 @@ continue; } - Object object = redisUtil.get(RedisKeyType.SHUTTLE.key + slave.getId()); + Object object = redisUtil.get(RedisKeyType.SHUTTLE_FLAG.key + slave.getId()); if (object == null) { continue; } @@ -713,7 +713,7 @@ ArrayList<NavigateNode> path = new ArrayList<>(); if (shuttleProtocol.getTaskNo() != 0) { //瀛樺湪浠诲姟锛岃幏鍙栨寚浠� - Object object = redisUtil.get(RedisKeyType.SHUTTLE.key + shuttleProtocol.getTaskNo()); + Object object = redisUtil.get(RedisKeyType.SHUTTLE_WORK_FLAG.key + shuttleProtocol.getTaskNo()); if (object != null) { ShuttleRedisCommand redisCommand = null; try { diff --git a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java index 82bc397..03ebd42 100644 --- a/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java +++ b/src/main/java/com/zy/core/thread/impl/ZyForkLiftThread.java @@ -1,6 +1,8 @@ package com.zy.core.thread.impl; +import HslCommunication.Core.Types.OperateResult; import HslCommunication.Core.Types.OperateResultExOne; +import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -14,9 +16,12 @@ import com.zy.common.ExecuteSupport; import com.zy.common.utils.RedisUtil; import com.zy.core.News; +import com.zy.core.action.ForkLiftAction; +import com.zy.core.action.ShuttleAction; import com.zy.core.cache.OutputQueue; import com.zy.core.enums.ForkLiftProtocolStatusType; import com.zy.core.enums.ForkLiftTaskModeType; +import com.zy.core.enums.RedisKeyType; import com.zy.core.model.CommandResponse; import com.zy.core.model.ForkLiftSlave; import com.zy.core.model.command.ForkLiftCommand; @@ -56,7 +61,21 @@ @Override public boolean connect() { - return false; + boolean result = false; + siemensS7Net = new SiemensS7Net(SiemensPLCS.S1500, slave.getIp()); + siemensS7Net.setRack(slave.getRack().byteValue()); + siemensS7Net.setSlot(slave.getSlot().byteValue()); + OperateResult connect = siemensS7Net.ConnectServer(); + if(connect.IsSuccess){ + result = true; + OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + News.info("璐у弶鎻愬崌鏈鸿繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + } else { + OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣揣鍙夋彁鍗囨満杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + News.error("璐у弶鎻愬崌鏈鸿繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + } + // siemensS7Net.ConnectClose(); + return result; } @Override @@ -72,9 +91,28 @@ try { read(); Thread.sleep(200); + execute(); } catch (Exception e) { e.printStackTrace(); } + } + } + + private void execute() { + ForkLiftAction forkLiftAction = SpringUtils.getBean(ForkLiftAction.class); + if (forkLiftAction == null) { + return; + } + + Object object = redisUtil.get(RedisKeyType.FORK_LIFT_FLAG.key + slave.getId()); + if (object == null) { + return; + } + + Integer taskNo = Integer.valueOf(String.valueOf(object)); + if (taskNo != 0) { + //瀛樺湪浠诲姟闇�瑕佹墽琛� + boolean result = forkLiftAction.executeWork(slave.getId(), taskNo); } } @@ -109,8 +147,8 @@ //----------璇诲彇鎻愬崌鏈虹姸鎬�----------- //妯″紡 forkLiftProtocol.setModel((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 0)); - //浠诲姟鍙� - forkLiftProtocol.setTaskNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4)); + //PLC浠诲姟鍙� + forkLiftProtocol.setWrkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 4)); //浠诲姟鐘舵�� forkLiftProtocol.setProtocolStatus((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, 8)); //浠诲姟妯″紡 @@ -194,22 +232,59 @@ @Override public CommandResponse pickAndPut(ForkLiftCommand command) { - return null; + CommandResponse response = new CommandResponse(false); + + short[] array = new short[4]; + array[0] = command.getTaskNo();//浠诲姟鍙� + array[1] = command.getMode();//浠诲姟妯″紡 + array[2] = command.getPick();//鍙栬揣鏁版嵁 + array[3] = command.getPut();//鏀捐揣鏁版嵁 + OperateResult result = siemensS7Net.Write("DB103.0", array); + if (result.IsSuccess) { + OperateResult result2 = siemensS7Net.Write("DB103.16", command.getConfirm()); + if (result2.IsSuccess) { + response.setResult(true); + } + } + return response; } @Override public CommandResponse shuttleSwitch(ForkLiftCommand command) { - return null; + CommandResponse response = new CommandResponse(false); + + short[] array = new short[4]; + array[0] = command.getTaskNo();//浠诲姟鍙� + array[1] = command.getMode();//浠诲姟妯″紡 + array[2] = command.getPick();//鍙栬揣鏁版嵁 + array[3] = command.getPut();//鏀捐揣鏁版嵁 + OperateResult result = siemensS7Net.Write("DB103.0", array); + if (result.IsSuccess) { + OperateResult result2 = siemensS7Net.Write("DB103.16", command.getConfirm()); + if (result2.IsSuccess) { + response.setResult(true); + } + } + return response; } @Override public CommandResponse reset(ForkLiftCommand command) { - return null; + CommandResponse response = new CommandResponse(false); + return response; } @Override public boolean isIdle() { - return false; + if (this.forkLiftProtocol.getTaskNo() == null + || this.forkLiftProtocol.getProtocolStatus() == null + ) { + return false; + } + + boolean res = this.forkLiftProtocol.getProtocolStatus() == ForkLiftProtocolStatusType.IDLE.id + && this.forkLiftProtocol.getTaskNo() == 0; + return res; } @Override @@ -229,12 +304,13 @@ @Override public boolean setSyncTaskNo(Integer taskNo) { - return false; + this.forkLiftProtocol.setSyncTaskNo(taskNo); + return true; } @Override public int generateDeviceTaskNo(int taskNo, ForkLiftTaskModeType type) { - return 0; + return taskNo; } @Override diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 45b0c92..db898dd 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -163,6 +163,8 @@ id: 1 ip: 10.10.10.131 port: 102 + rack: 0 + slot: 0 staRow: 13 staBay: 22 sta[0]: -- Gitblit v1.9.1