From e89d0cdf971ecb56d4d323f17afff2e3e139a58d Mon Sep 17 00:00:00 2001 From: L <L@132> Date: 星期二, 15 七月 2025 13:00:00 +0800 Subject: [PATCH] * --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index b6671ec..527d5e1 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -283,11 +283,6 @@ return false; } CrnErrCache.updateCrnErr(slave.getId(), "-"); - try{ - DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); - deviceErrorService.addDeviceError("crnWrite", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈烘寚浠や笅鍙�:"+JSON.toJSONString(command.getNowTask())); - } catch (Exception e2){ - } // try{ // BasErrLogService basErrLogService = SpringUtils.getBean(BasErrLogService.class); // BasErrLog basErrLog = new BasErrLog(command,"","浠诲姟涓嬪彂璁板綍"); @@ -297,6 +292,43 @@ // } catch (Exception e3){ // } // convertRow(command); + if (command.getAckFinish() == 0){ + try{ + Thread.sleep(100L); + OperateResultExOne<byte[]> resultReadNOW = siemensNet.Read("DB100.0", (short) 20); + if (resultReadNOW.IsSuccess) { + CrnCommand one = new CrnCommand(); + one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 2)); + one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 4)); + one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 6)); + one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 8)); + one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 10)); + one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 12)); + one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 14)); + one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 16)); + if (one.getTaskNo()>0 + || one.getTaskMode()>0 + || one.getSourcePosX()!=0 + || one.getSourcePosY()!=0 + || one.getSourcePosZ()!=0 + || one.getDestinationPosX()!=0 + || one.getDestinationPosY()!=0 + || one.getDestinationPosZ()!=0 + ){ + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆鍙栨秷锛寃cs涓嬪彂鍦板潃瀛樺湪鏁版嵁:"+JSON.toJSONString(command.getNowTask())); + } catch (Exception e2){ + } + return true; + } + } + } catch (Exception eNow){ + + } + } + + command.setCrnNo(slave.getId()); short[] array = new short[10]; array[0] = command.getAckFinish(); @@ -311,6 +343,11 @@ // array[9] = command.getCommand(); array[9] = (short)0; OperateResult result18 = siemensNet.Write("DB100.18", (short)0); + + if (command.getAckFinish() == 0) { + OperateResult result100 = siemensNet.Write("DB100.0", (short)0); + } + try{ Thread.sleep(50L); } catch (Exception e){} @@ -363,6 +400,11 @@ } result = siemensNet.Write("DB100.0", array); }else{ + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("crnWrite", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈烘寚浠や笅鍙�:"+JSON.toJSONString(command.getNowTask())); + } catch (Exception e2){ + } break; } } -- Gitblit v1.9.1