From 1c54f1d09aa5c8af3823335ffd51e7a7af614092 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 06 九月 2023 08:47:54 +0800 Subject: [PATCH] # 显示屏 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 77 ++++++++++++++++++++++++++++++-------- 1 files changed, 61 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 3998985..8cfd820 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -206,14 +206,14 @@ Thread.sleep(200); //娴嬭瘯鏌滅姸鎬佽幏鍙� - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB38.0", (short) 96); + OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB38.0", (short) 48); //鍚姩绉诲簱鎸夐挳 OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB102.0", (short) 96); //娑堥槻鎶ヨ - OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB108.0", (short) 48); + OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB108.0", (short) 96); if(result3.IsSuccess) { for(int i=0; i<48; i++){ - startSignal[i][0] = siemensS7Net.getByteTransform().TransByte(result3.Content, i*2);//娴嬭瘯鏌滅姸鎬� + startSignal[i][0] = siemensS7Net.getByteTransform().TransByte(result3.Content, i);//娴嬭瘯鏌滅姸鎬� startSignal[i][1] = siemensS7Net.getByteTransform().TransBool(result4.Content, i)?1:0;//娑堥槻鐘舵�� startSignal[i][2] = siemensS7Net.getByteTransform().TransInt16(result6.Content, i*2);//鍚姩鎸夐挳鐘舵�� } @@ -277,29 +277,74 @@ if (null == staProtocol) { return; } + int staNoSize = staNos.size(); int index = staNos.indexOf(staProtocol.getSiteId()); short[] array = new short[2]; array[0] = staProtocol.getWorkNo(); array[1] = staProtocol.getStaNo(); - OperateResult write; - write = siemensS7Net.Write("DB100." + index*4, array); + //浠诲姟ID涓嬪彂娆℃暟 + int idCount = 0; + boolean idFlag = false; + OperateResult write; + while(idCount < 5){ + + write = siemensS7Net.Write("DB100." + index*4, array); // 鍐� + if(write.IsSuccess){ + Thread.sleep(200); + OperateResultExOne<byte[]> readId = siemensS7Net.Read("DB100." + index*4, (short) (staNoSize*2)); + if(readId.IsSuccess){ + if(staProtocol.getWorkNo()!=0&&staProtocol.getWorkNo()!=9999){ + if(!staProtocol.isInEnable()&&(staProtocol.getSiteId()==201||staProtocol.getSiteId()==206)){ + break; + } + } + short workNo = siemensS7Net.getByteTransform().TransInt16(readId.Content, 0); + if(staProtocol.getWorkNo().equals(workNo)){ + //宸ヤ綔鍙峰啓鍏ユ垚鍔� + idFlag = true; + break; + } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 + idCount++; + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎宸ヤ綔鍙峰悗杩斿洖鎴愬姛锛屼絾鏄鍙栧伐浣滃彿鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", + slave.getId(), JSON.toJSON(staProtocol),idCount)); + log.error("鍐欏叆杈撻�佺嚎宸ヤ綔鍙峰悗杩斿洖鎴愬姛锛屼絾鏄鍙栧伐浣滃彿鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), idCount); + } + } else { + idCount++; + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎宸ヤ綔鍙峰悗璇诲彇宸ヤ綔鍙峰け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", + slave.getId(), JSON.toJSON(staProtocol), idCount)); + log.error("鍐欏叆杈撻�佺嚎宸ヤ綔鍙峰悗璇诲彇宸ヤ綔鍙峰け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), idCount); + } + } else { + idCount++; + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎宸ヤ綔鍙峰け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", + slave.getId(), JSON.toJSON(staProtocol),idCount)); + log.error("鍐欏叆杈撻�佺嚎宸ヤ綔鍙峰け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), idCount); + } + Thread.sleep(200); + } + //鍐橧D灏濊瘯浜�5娆¤繕鏄け璐ヤ簡 + if(!idFlag){ + staProtocol = station.get(staProtocol.getSiteId()); + if (staProtocol.getWorkNo() == 9999 && staProtocol.getStaNo() ==0) { + staProtocol.setPakMk(true); + } + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎宸ヤ綔鍙峰皾璇�5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); + log.error("鍐欏叆杈撻�佺嚎宸ヤ綔鍙峰皾璇�5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); + + //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒� + boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol)); + read();//璇诲彇1娆¤澶囩姸鎬� + return; + } // OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� // Thread.sleep(500); // OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� - if (!write.IsSuccess) { - staProtocol = station.get(staProtocol.getSiteId()); - if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { - staProtocol.setPakMk(true); - } - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); - log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); - } else { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); - } + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂鎴愬姛 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); + log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂鎴愬姛锛� {}", slave.getId(), JSON.toJSON(staProtocol)); } // 鏇存柊鍏ュ嚭搴撴ā寮� -- Gitblit v1.9.1