From 098343a983ceba34ee253453c45b903b95d8e877 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 04 十二月 2023 08:02:26 +0800 Subject: [PATCH] #输送线plc异常显示 --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 53 +++++++++++++ src/main/java/com/zy/asrs/controller/SiteController.java | 81 ++++++++++++++++---- src/main/java/com/zy/asrs/utils/Utils.java | 27 +++++- src/main/webapp/views/realtimeWatch/crn2.html | 18 ++-- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 22 +++++ 5 files changed, 170 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java index 9cc5b94..216bbae 100644 --- a/src/main/java/com/zy/asrs/controller/SiteController.java +++ b/src/main/java/com/zy/asrs/controller/SiteController.java @@ -126,28 +126,75 @@ for(Map.Entry<Integer, StaProtocol> entry : station.entrySet()) { StaProtocol staProtocol = entry.getValue(); -// if (staProtocol) { -// PlcErrorTableVo vo = new PlcErrorTableVo(); -// vo.setNo(entry.getKey()); // 搴忓彿 -// -// vo.setPlcDesc(""); // todo:luxiaotao plc閿欒鎻忚堪 -// vo.setError(""); // todo:luxiaotao 寮傚父淇℃伅 -// list.add(vo); -// } + if (staProtocol.getBreakerErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鏂矾鍣ㄦ晠闅�"); // todo:luxiaotao plc閿欒鎻忚堪 + vo.setError("鏂矾鍣ㄦ晠闅�"); // todo:luxiaotao 寮傚父淇℃伅 + list.add(vo); + } + if (staProtocol.getInfraredErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鍏夌數寮傚父"); + vo.setError("鍏夌數寮傚父"); + list.add(vo); + } + if (staProtocol.getOutTimeErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("杩愯瓒呮椂"); + vo.setError("杩愯瓒呮椂"); + list.add(vo); + } + if (staProtocol.getSeizeSeatErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鍗犱綅瓒呮椂"); + vo.setError("鍗犱綅瓒呮椂"); + list.add(vo); + } + if (staProtocol.getWrkYgoodsN()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鏈変换鍔℃棤璐ф晠闅�"); + vo.setError("鏈変换鍔℃棤璐ф晠闅�"); + list.add(vo); + } + if (staProtocol.getInverterErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鍙橀鍣ㄦ晠闅�"); + vo.setError("鍙橀鍣ㄦ晠闅�"); + list.add(vo); + } + if (staProtocol.getContactErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + vo.setError("鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + list.add(vo); + } + if (staProtocol.getUpcontactErr()){ + PlcErrorTableVo vo = new PlcErrorTableVo(); + vo.setNo(entry.getKey()); // 搴忓彿 + + vo.setPlcDesc("椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + vo.setError("椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅�"); + list.add(vo); + } } } - list.sort((o1, o2) -> { - if (o1.getNo().compareTo(o2.getNo()) > 0){ - return 1; - }else if (o1.getNo().compareTo(o2.getNo()) < 0){ - return 0; - }else{ - return -1; - } - }); return R.ok().add(list); } diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index b1b7e5c..8b9a9f0 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -27,17 +27,34 @@ if (split[3].equals("01")){ ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2); if (split[4].equals("01")){ - ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); + if (ints.length<2){ + + }else { + ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length); + } }else { - ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2); + if (ints.length<2){ + + }else { + ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); + } } }else { ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2-1,wcsRow.length-1 ); if (split[4].equals("01")){ + if (ints.length<2){ - ints = Arrays.copyOfRange(ints, 0, ints.length / 2); + }else { + ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); + } }else { - ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); + if (ints.length<2){ + + }else { + ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length); + } + + } } int i = ints[0]; @@ -313,7 +330,7 @@ // slaveProperties.setGroupCount(4); // Integer deepRow = getDeepRow(slaveProperties, 6); // System.out.println(deepRow); - String wcsLocNo = getWcsLocNo("06-52-01-01-01"); + String wcsLocNo = getWcsLocNo("02-01-01-02-01"); System.out.println(wcsLocNo); } } diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 8dbd9ce..ebd4ab8 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -4,6 +4,9 @@ import com.zy.asrs.entity.CommandInfo; import lombok.Data; +import java.util.ArrayList; +import java.util.List; + /** * 杈撻�佺嚎plc鍗曚釜绔欑偣璇︾粏淇℃伅 * Created by vincent on 2020/8/6 @@ -85,6 +88,56 @@ // 鎵爜澶辫触 private boolean barcodeErr; + //鏁呴殰----------------------------------------------------------------------- + private Boolean breakerErr = false; //鏂矾鍣ㄦ晠闅� + + private Boolean infraredErr = false; //鍏夌數寮傚父 + + private Boolean outTimeErr = false; //杩愯瓒呮椂 + + private Boolean seizeSeatErr = false; //鍗犱綅瓒呮椂 + + private Boolean wrkYgoodsN = false;//鏈変换鍔℃棤璐ф晠闅� + + private Boolean inverterErr = false; //鍙橀鍣ㄦ晠闅� + + private Boolean contactErr = false; //鐢垫満鎺ヨЕ鍣ㄦ晠闅� + + private Boolean upcontactErr = false; //椤跺崌鐢垫満鎺ヨЕ鍣ㄦ晠闅� + + private List<Integer> alarm; + + + public List<Integer> getAlarm(){ + List<Integer> alarm = new ArrayList<>(); + if (breakerErr){ + alarm.add(1); + } + if (infraredErr){ + alarm.add(2); + } + if (outTimeErr){ + alarm.add(3); + } + if (seizeSeatErr){ + alarm.add(4); + } + if (wrkYgoodsN){ + alarm.add(5); + } + if (inverterErr){ + alarm.add(6); + } + if (contactErr){ + alarm.add(7); + } + if (upcontactErr){ + alarm.add(8); + } + return alarm; + } + + public BasDevp toSqlModel(){ BasDevp basDevp = new BasDevp(); diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 619b4d1..f4c283d 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -346,10 +346,32 @@ staProtocol.setRightErr(status[4]); staProtocol.setWeightErr(status[5]); staProtocol.setBarcodeErr(status[6]); + } } + OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) 100); + if (resultErr.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1); + StaProtocol staProtocol = station.get(siteId); + staProtocol.setBreakerErr(status[0]); + staProtocol.setInfraredErr(status[1]); + staProtocol.setOutTimeErr(status[2]); + staProtocol.setSeizeSeatErr(status[3]); + staProtocol.setWrkYgoodsN(status[4]); + staProtocol.setInverterErr(status[5]); + staProtocol.setContactErr(status[6]); + staProtocol.setUpcontactErr(status[7]); + + } + } + + + + // //RGV鍙拌溅浣嶇疆 // Thread.sleep(200); // OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); diff --git a/src/main/webapp/views/realtimeWatch/crn2.html b/src/main/webapp/views/realtimeWatch/crn2.html index 4c4a3a4..95b21cf 100644 --- a/src/main/webapp/views/realtimeWatch/crn2.html +++ b/src/main/webapp/views/realtimeWatch/crn2.html @@ -42,50 +42,50 @@ </head> <body> <div style="padding: 10px;height: 100%;float: left;width: 6%"> - <div class="button-window"></div> +<!-- <div class="button-window"></div>--> </div> <div style="height: 100%;padding-left: 6%"> <div style="padding: 10px;height: 100%"> <!-- 鏃ュ織鐩戞帶鏉� --> - <div class="log-board"> + <div class="log-board" > <!-- 鎵ц鍛戒护 --> <!-- 鎵ц鍛戒护 --> - <div class="command-log"> + <div class="command-log" style="overflow: auto;"> <h3>鎵ц涓殑鍛戒护</h3> <div class="crn-command-item"> <label>1#</label> - <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn1" disabled="disabled"> </div> <div class="crn-command-item"> <label>2#</label> - <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn2" disabled="disabled"> </div> <div class="crn-command-item"> <label>3#</label> - <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn3" disabled="disabled"> </div> <div class="crn-command-item"> <label>4#</label> - <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn4" disabled="disabled"> </div> <div class="crn-command-item"> <label>5#</label> - <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn5" disabled="disabled"> </div> <div class="crn-command-item"> <label>6#</label> - <button id="demoBtn-6" class="demoBtn" onclick="demoSwitch(this.id)"> - </button> +<!-- <button id="demoBtn-6" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>--> <!-- <span> </span>--> <input id="crn6" disabled="disabled"> </div> -- Gitblit v1.9.1