From 81a7e447d470981ec8a660cae362d732c5175f8c Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 29 十一月 2023 15:16:57 +0800 Subject: [PATCH] #指令更新 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 202 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 170 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 32873e4..33aa4f8 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -9,6 +9,7 @@ import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.core.exception.CoolException; +import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.entity.CommandInfo; import com.zy.asrs.entity.CommandInfoLog; @@ -18,6 +19,7 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.CommandStatusType; import com.zy.core.enums.IoModeType; import com.zy.core.enums.SlaveType; import com.zy.core.model.DevpSlave; @@ -72,7 +74,7 @@ /** * 鏉$爜鏁伴噺 */ - private int barcodeSize = 3; + private int barcodeSize = 7; /** * 鍏ュ嚭搴撴ā寮� @@ -222,7 +224,7 @@ staProtocol.setOutEnable(status[3]);// 鍙嚭 staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� - staProtocol.setHigh(status[6]); // 楂樺簱浣� + staProtocol.setCar(status[6]); // 鏄惁鏈夎溅 staProtocol.setLow(status[7]); // 浣庡簱浣� if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { @@ -231,37 +233,140 @@ } } -// //鏉$爜 -// Thread.sleep(200); -// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.160",(short)4); -// if (result2.IsSuccess) { -// for (int i = 0; i < barcodeSize; i++) { -// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); -// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); -// if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { -// barcodeThread.setBarcode(barcode); -// } -// } -// -// } - //RGV鍙拌溅浣嶇疆 - Thread.sleep(200); - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); - if (result3.IsSuccess) { - for (int i = 0; i < 2; i++) { - Integer siteId = i==0 ? 112 : 212; // 绔欑偣缂栧彿 - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); + if (slave.getId() == 1){ + //鏉$爜 + Thread.sleep(200); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)60); + if (result2.IsSuccess) { + for (int i = 0; i < 6; i++) { + String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,8, "UTF-8"); + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); + if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { + barcodeThread.setBarcode(barcode); + } } - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2))); -// String aa = staProtocol.getNearbySta(); -// System.out.println(siteId + "===>>" + staProtocol.getNearbySta()); + } + + // 澶栧舰妫�娴� - 102 + Thread.sleep(100); + OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.150", (short)1); + if (result4.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1); + StaProtocol staProtocol = station.get(103); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + // 澶栧舰妫�娴� - 107 + Thread.sleep(50); + OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB101.154", (short)1); + if (result5.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 1); + StaProtocol staProtocol = station.get(107); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + // 澶栧舰妫�娴� - 111 + Thread.sleep(50); + OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB101.158", (short)1); + if (result6.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result6.Content, 0, 1); + StaProtocol staProtocol = station.get(111); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + // 澶栧舰妫�娴� - 115 + Thread.sleep(50); + OperateResultExOne<byte[]> result7 = siemensS7Net.Read("DB101.162", (short)1); + if (result7.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result7.Content, 0, 1); + StaProtocol staProtocol = station.get(115); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + // 澶栧舰妫�娴� - 119 + Thread.sleep(50); + OperateResultExOne<byte[]> result8 = siemensS7Net.Read("DB101.166", (short)1); + if (result8.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result8.Content, 0, 1); + StaProtocol staProtocol = station.get(119); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + // 澶栧舰妫�娴� - 123 + Thread.sleep(50); + OperateResultExOne<byte[]> result9 = siemensS7Net.Read("DB101.170", (short)1); + if (result9.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result9.Content, 0, 1); + StaProtocol staProtocol = station.get(123); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); + } + } else if (slave.getId() == 3) { + // 澶栧舰妫�娴� - 111 + Thread.sleep(50); + OperateResultExOne<byte[]> result10 = siemensS7Net.Read("DB101.26", (short)1); + if (result10.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result10.Content, 0, 1); + StaProtocol staProtocol = station.get(301); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); } } + + +// //RGV鍙拌溅浣嶇疆 +// Thread.sleep(200); +// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); +// if (result3.IsSuccess) { +// for (int i = 0; i < 2; i++) { +// Integer siteId = i==0 ? 1 : 2; // 绔欑偣缂栧彿 +// StaProtocol staProtocol = station.get(siteId); +// if (null == staProtocol) { +// staProtocol = new StaProtocol(); +// staProtocol.setSiteId(siteId); +// station.put(siteId, staProtocol); +// } +// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2))); +//// String aa = staProtocol.getNearbySta(); +//// System.out.println(siteId + "===>>" + staProtocol.getNearbySta()); +// } +// } // OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0"); // if (result2.IsSuccess) { @@ -321,6 +426,22 @@ CommandInfo commandInfo = commandInfoService.selectById(staProtocol.getCommandId()); CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); commandInfoLog.setId(null); +// CommandInfoLog commandInfoLog = new CommandInfoLog(); +// if (commandInfo != null) { +// commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); +// commandInfoLog.setId(null); +// }else { +// Date now = new Date(); +// commandInfoLog.setCommand(JSON.toJSONString(staProtocol)); +// commandInfoLog.setCommandStatus(3); +// commandInfoLog.setStartTime(now); +// commandInfoLog.setExecuteTime(now); +// commandInfoLog.setCompleteTime(now); +// commandInfoLog.setDevice(SlaveType.Devp.toString()); +// commandInfoLog.setWrkNo(9999); +// commandInfoLog.setTaskNo("9999"); +// commandInfoLog.setCommandDesc("鎵嬪姩鍛戒护"); +// } OperateResult writeResult; //浠诲姟涓嬪彂娆℃暟 @@ -329,9 +450,6 @@ boolean writeFlag = false; while(writeCount < 5){ writeResult = siemensS7Net.Write("DB100." + index*4, array); // 宸ヤ綔鍙枫�佺洰鏍囩珯 - //鏇存柊鎸囦护鏃ュ織 - commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛"); - commandInfoLogService.insert(commandInfoLog); if(writeResult.IsSuccess){ Thread.sleep(200); @@ -343,12 +461,32 @@ //浠诲姟鍛戒护鍐欏叆鎴愬姛 writeFlag = true; log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + + //鏇存柊鎸囦护鐘舵�� + commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//杈撻�佺嚎鐩存帴瀹屾垚鐘舵�� + commandInfoService.updateById(commandInfo); + + //鏇存柊鎸囦护鏃ュ織 + commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛"); + commandInfoLogService.insert(commandInfoLog); + + //鏇存柊浠诲姟姝ュ簭 + TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); + TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue()); + if (taskWrk != null) { + taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭 + taskWrkService.updateById(taskWrk); + } + break; } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 writeCount++; OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", slave.getId(), JSON.toJSON(staProtocol),writeCount)); log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + //鏇存柊鎸囦护鏃ュ織 + commandInfoLog.setDeviceLog("鎸囦护涓嬪彂澶辫触"); + commandInfoLogService.insert(commandInfoLog); } } else { writeCount++; -- Gitblit v1.9.1