From 669f4a3c5480172a83b94f604f3cd0448ce8aad4 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期五, 03 三月 2023 15:48:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 66 ++++++++++++++++++++++++++------- 1 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 622cb1c..718f5af 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -8,6 +8,7 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SpringUtils; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.service.BasDevpService; import com.zy.core.DevpThread; @@ -43,10 +44,9 @@ private short heartBeatVal = 1; private int barcodeSize = 2; public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ - add(100);add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109); - add(110);add(111);add(112);add(113);add(114);add(115);add(116);add(117);add(118);add(119); - add(1000);add(2000); - add(200);add(201);add(202);add(203);add(204);add(205);add(206);add(207);add(208);add(209); + add(100);add(101);add(102); + add(200);add(201);add(202); + add(300);add(301);add(302); }}; public boolean charge0; @@ -76,6 +76,10 @@ // 鍐欐暟鎹� ID+鐩爣绔� case 2: write((StaProtocol)task.getData()); + break; + // 鍑哄叆搴撴ā寮� + case 3: + write3((int)task.getData()); break; default: break; @@ -113,7 +117,7 @@ * 璇诲彇鐘舵�� ====> 鏁村潡plc */ private void read() throws InterruptedException { - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 128); + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNos.size()*4)); if (result.IsSuccess) { for (int i = 0; i < staNos.size(); i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 @@ -128,11 +132,11 @@ } } Thread.sleep(200); - OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.0", (short) 128); + OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.100", (short) (staNos.size())); if (result1.IsSuccess) { for (int i = 0; i < staNos.size(); i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*4+2, 1); + boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setAutoing(status[0]); // 鑷姩 staProtocol.setLoading(status[1]); // 鏈夌墿 @@ -151,10 +155,10 @@ //璇绘潯鐮� Thread.sleep(100); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0",(short)31); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150",(short)24); if (result2.IsSuccess) { - for (int i = 0; i < barcodeSize; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*16,15, "UTF-8"); + 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); @@ -164,12 +168,17 @@ // 鍏呯數淇″彿浣� Thread.sleep(50); - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB102.128", (short)1); + OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB102.109", (short)1); if (result3.IsSuccess) { boolean[] status = siemensS7Net.getByteTransform().TransBool(result3.Content, 0, 1); charge0 = status[0]; - charge1 = status[1]; - charge2 = status[2]; + } + // 鍏呯數淇″彿浣� + Thread.sleep(50); + OperateResultExOne<byte[]> result31 = siemensS7Net.Read("DB100.201", (short)1); + if (result3.IsSuccess) { + boolean[] status = siemensS7Net.getByteTransform().TransBool(result31.Content, 0, 1); + charge1 = status[0]; } // 澶栧舰妫�娴� - 102 @@ -191,7 +200,7 @@ OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.130", (short)1); if (result5.IsSuccess) { boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 1); - StaProtocol staProtocol = station.get(203); + StaProtocol staProtocol = station.get(202); staProtocol.setFrontErr(status[0]); staProtocol.setBackErr(status[1]); staProtocol.setHighErr(status[2]); @@ -226,6 +235,35 @@ // News.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } } + /** + * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� + */ + private void write3(int outAndIn) throws InterruptedException{ + if (Cools.isEmpty(outAndIn)) { + return; + } + if (outAndIn==666){ + siemensS7Net.Write("DB100.200", (short) 1); + }else if (outAndIn==999){ + siemensS7Net.Write("DB100.200", (short) 0); + }else { + String Db=null; + if (outAndIn<20){ + Db="DB100.180"; + }else if (outAndIn<30){ + Db="DB100.182"; + }else { + Db="DB100.184"; + } + if (outAndIn == 11 || outAndIn == 21 || outAndIn == 31){ + siemensS7Net.Write(Db, (byte) 1); // 鍏ュ簱 + }else if (outAndIn == 12 || outAndIn == 22 || outAndIn == 32){ + siemensS7Net.Write(Db, (byte) 2); // 鍑哄簱 + }else if (outAndIn == 10 || outAndIn == 20 || outAndIn == 30){ + siemensS7Net.Write(Db, (byte) 0); // 鍑哄簱 + } + } + } /** * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� -- Gitblit v1.9.1