From 928bc386bea03b9d3157e6d66dcb7afc843e9964 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 17 六月 2023 15:55:50 +0800 Subject: [PATCH] 小车从提升机移动出去增强管控 --- src/main/java/com/zy/core/thread/ShuttleThread.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java index d6e8c04..77dfe69 100644 --- a/src/main/java/com/zy/core/thread/ShuttleThread.java +++ b/src/main/java/com/zy/core/thread/ShuttleThread.java @@ -129,7 +129,7 @@ //鐢垫睜鐢甸噺鐧惧垎姣� shuttleProtocol.setBatteryPower(modbusTcpNet.getByteTransform().TransInt16(content,4)); //鐢垫睜娓╁害 - shuttleProtocol.setBatteryTemp(modbusTcpNet.getByteTransform().TransInt16(content,6)); + shuttleProtocol.setBatteryTemp(modbusTcpNet.getByteTransform().TransUInt16(content, 6)); //閿欒缂栧彿 shuttleProtocol.setErrorCode(modbusTcpNet.getByteTransform().TransInt16(content,8)); //Plc杈撳嚭鐘舵�両O @@ -150,7 +150,7 @@ //璇诲埌鐨勪簩缁寸爜Y鏂瑰悜鍋忕Щ閲� shuttleProtocol.setCodeOffsetY(modbusTcpNet.getByteTransform().TransInt16(content,20)); //褰撳墠鐨勭數鍘嬪�� - shuttleProtocol.setCurrentVoltage(modbusTcpNet.getByteTransform().TransInt16(content,22)); + shuttleProtocol.setCurrentVoltage(modbusTcpNet.getByteTransform().TransUInt16(content, 22)); //褰撳墠鐨勬ā鎷熼噺鍊� shuttleProtocol.setCurrentAnalogValue(modbusTcpNet.getByteTransform().TransInt16(content,24)); //褰撳墠鐨勫崌闄嶄己鏈嶉�熷害 @@ -525,8 +525,8 @@ //濡傛灉绌挎杞﹀湪鎻愬崌鏈哄唴锛岀Щ鍔ㄦ椂闇�瑕佸厛涓嬪彂鍑烘彁鍗囨満鍛戒护 if (liftProtocol.getBarcode().intValue() == shuttleProtocol.getCurrentCode().intValue()) { //绌挎杞﹀嚭鎻愬崌鏈� - Short liftLev = liftProtocol.getPositionArrivalFeedback();//鎻愬崌鏈轰綅缃� - String liftSiteLocNo = Utils.levToOutInStaLocNo(liftLev.intValue()); + Short liftArrival = liftProtocol.getPositionArrivalFeedback();//鎻愬崌鏈轰綅缃弽棣� + String liftSiteLocNo = Utils.liftArrivalToOutInStaLocNo(liftArrival); LocMast locMast1 = locMastService.selectById(liftSiteLocNo); ShuttleCommand moveCommand = getMoveCommand(liftProtocol.getBarcode(), Short.parseShort(locMast1.getQrCodeValue()), 1400, ShuttleRunDirection.BOTTOM.id, liftProtocol.getBarcode(), 1400, runSpeed); commands.add(moveCommand); @@ -745,6 +745,42 @@ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1); LiftProtocol liftProtocol = liftThread.getLiftProtocol(); + + + //鍒ゆ柇灏忚溅褰撳墠浜岀淮鐮佹槸鍚︿负鎻愬崌鏈轰簩缁寸爜 + if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) { + //灏忚溅褰撳墠鍛戒护璧峰浣嶇疆灏辨槸鎻愬崌鏈轰簩缁寸爜锛岃鏄庡皬杞﹂渶瑕佸悜鎻愬崌鏈哄绉诲姩锛屽垯闇�瑕佸垽鏂姸鎬佹槸鍚︽弧瓒� + if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()){ + //鎻愬崌鏈烘槸鍚︾┖闂诧紝鎻愬崌鏈烘槸鍚﹀埌杈剧洰鏍囨ゼ灞傦紝鐩爣妤煎眰鏄惁缁欏嚭鎻愬崌鏈哄埌浣嶄俊鍙蜂綅 + if (!liftProtocol.isIdle()) { + return false;//鎻愬崌鏈哄繖锛岀姝笅鍙戝懡浠� + } + + Short distCodeNum = command.getDistCodeNum();//鐩爣浜岀淮鐮� + BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); + BasDevp basDevp = basDevpService.queryByQrCode(distCodeNum.intValue());//鐩爣绔欑偣 + if (basDevp == null) { + return false;//鎵句笉鍒扮洰鏍囩珯锛岀姝笅鍙戝懡浠� + } + + int lev = Utils.getLev(basDevp.getLocNo());//鐩爣浜岀淮鐮佹墍鍦ㄦゼ灞� + int liftLev = liftProtocol.getLev().intValue();//鎻愬崌鏈烘墍鍦ㄦゼ灞� + if (liftLev != lev) { + return false;//鎻愬崌鏈轰笉鍦ㄧ洰鏍囨ゼ灞傦紝绂佹涓嬪彂鍛戒护 + } + + //鑾峰彇鐩爣绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + return false;//绔欑偣淇℃伅涓嶅瓨鍦紝绂佹涓嬪彂鍛戒护 + } + if (!staProtocol.isLiftArrival()) { + return false;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse锛岀姝笅鍙戝懡浠� + } + } + } + //涓嬪彂鍛戒护 if (!write(command)) { @@ -752,6 +788,12 @@ return false; } else { News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙戞垚鍔燂紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command)); + + try { + Thread.sleep(1000);//鍛戒护涓嬪彂瀹屽悗浼戠湢1s + } catch (InterruptedException e) { + throw new RuntimeException(e); + } //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚 if (commandStep < size - 1) { @@ -906,7 +948,7 @@ String shuttleLocNo = shuttleProtocol.getCurrentLocNo();//浜岀淮鐮佸搴斿簱浣嶅彿 Integer shuttleLocNoLev = shuttleLocNo == null ? 0 : Utils.getLev(shuttleLocNo);//搴撲綅鍙峰搴斿眰楂� - //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀湪鐩爣妤煎眰 + //鍒ゆ柇绌挎杞﹀拰鎻愬崌鏈烘槸鍚﹀湪鐩爣妤煎眰 if (shuttleLocNoLev >= 2) { shuttleLocNoLev++; } @@ -916,7 +958,7 @@ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); StaProtocol staProtocol = siemensDevpThread.getStation().get(siteNo); if (staProtocol.isLiftArrival() - && liftProtocol.getPositionArrivalFeedback().intValue() == shuttleLocNoLev) { + && liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) { //杈撻�佺嚎鍙嶉鎻愬崌鏈哄埌浣嶄笖鎻愬崌鏈烘ゼ灞傚弽棣堜负鍚屼竴灞傦紝鐩存帴鏀捐 return true; } -- Gitblit v1.9.1