| | |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.google.common.primitives.Bytes; |
| | | import org.apache.commons.io.FileUtils; |
| | | |
| | | import java.io.*; |
| | |
| | | |
| | | |
| | | |
| | | public void insertDataToList(List<Short> list, String rangeAddress, int insertIndex) { |
| | | if (list.size() >= insertIndex + 14) { |
| | | List<Short> rangeData = new ArrayList<>(); |
| | | byte[] byteData = S7control.getinstance().ReadByte(rangeAddress, 14); |
| | | if (byteData != null && byteData.length == 14) { |
| | | for (byte b : byteData) { |
| | | rangeData.add((short) b); |
| | | } |
| | | } else { |
| | | // 读取数据失败,添加默认值 |
| | | for (int i = 0; i < 14; i++) { |
| | | rangeData.add((short) -1); |
| | | } |
| | | } |
| | | // public void insertDataToList(List<Short> list, String rangeAddress, int insertIndex) { |
| | | // if (list.size() >= insertIndex + 14) { |
| | | // List<Short> rangeData = new ArrayList<>(); |
| | | // byte[] byteData = S7control.getinstance().ReadByte(rangeAddress, 14); |
| | | // if (byteData != null && byteData.length >= 13) { |
| | | // for (byte b : byteData) { |
| | | // rangeData.add((short) b); |
| | | // } |
| | | // } else { |
| | | // // 读取数据失败,添加默认值 |
| | | // for (int i = 0; i < 14; i++) { |
| | | // rangeData.add((short) -1); |
| | | // } |
| | | // } |
| | | // |
| | | // list.addAll(insertIndex, rangeData); |
| | | // }else{ |
| | | // List<Short> rangeData = new ArrayList<>(); |
| | | // rangeData.add((short) 0); |
| | | // list.addAll(insertIndex, rangeData); |
| | | // } |
| | | // } |
| | | |
| | | list.addAll(insertIndex, rangeData); |
| | | public StringBuilder queGlassid(String address,int count) { |
| | | StringBuilder writedstrIdOut = new StringBuilder(); |
| | | byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count); |
| | | if (writedglassidbytesOut != null) { |
| | | // 获取玻璃id |
| | | for (byte iditem : writedglassidbytesOut) { |
| | | writedstrIdOut.append((char) iditem); |
| | | } |
| | | } |
| | | return writedstrIdOut; |
| | | } |
| | | |
| | | public void outmesid(String glassid,String address) { |
| | | //System.out.println("outmesid:" + glassid); |
| | | List<Byte> glassidlist = new ArrayList(); |
| | | char ds[]=glassid.toCharArray(); |
| | | for (char iditem : ds) { |
| | | glassidlist.add((byte)iditem); |
| | | } |
| | | byte[] bytes = Bytes.toArray(glassidlist); |
| | | System.out.println("outmesidbytes:" + bytes.length); |
| | | S7control.getinstance().WriteByte(address, bytes);// 派发出片id |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | |
| | | List<String> addresses = new ArrayList<>(); |
| | | addresses.add("DB103.25"); |
| | | addresses.add("DB103.32"); |
| | | addresses.add("DB100.144"); |
| | | |
| | | addresses.add("DB100.184"); |
| | | addresses.add("DB100.186"); |
| | | addresses.add("DB100.180"); |
| | |
| | | List<Short> arraylist = S7control.getinstance().readWords(addresses); |
| | | |
| | | // String rangeAddress = "DB100.148-161"; |
| | | String rangeAddress = "DB100.148"; |
| | | int insertIndex = 2; |
| | | insertDataToList(arraylist, rangeAddress, insertIndex); |
| | | // String rangeAddress = "DB100.148"; |
| | | // int insertIndex = 2; |
| | | // insertDataToList(arraylist, rangeAddress, insertIndex); |
| | | |
| | | |
| | | List<String> addresses2 = new ArrayList<>(); |
| | |
| | | // addresses2.add("DB100.162-175"); |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses2); |
| | | // String rangeAddress2 = "DB100.148-161"; |
| | | String rangeAddress2 = "DB100.162"; |
| | | int insertIndex2 = 4; |
| | | insertDataToList(arraylist2, rangeAddress2, insertIndex2); |
| | | // String rangeAddress2 = "DB100.162"; |
| | | // int insertIndex2 = 4; |
| | | // insertDataToList(arraylist2, rangeAddress2, insertIndex2); |
| | | // System.out.println(arraylist2); |
| | | List<String> addresses3 = new ArrayList<>(); |
| | | addresses3.add("DB103.42"); |
| | |
| | | List<Short> arraylist5 = S7control.getinstance().ReadWord("DB103.27", 2); |
| | | List<Short> arraylist6 = S7control.getinstance().ReadWord("DB103.29", 2); |
| | | List<String> addresses7 = new ArrayList<>(); |
| | | addresses7.add("DB104.24"); |
| | | addresses7.add("DB104.26"); |
| | | addresses7.add("DB104.20"); |
| | | addresses7.add("DB104.22"); |
| | | addresses7.add("DB104.28"); |
| | | addresses7.add("DB104.30"); |
| | | List<Short> arraylist7 = S7control.getinstance().readWords(addresses7); |
| | | addresses7.add("DB104.1.4"); |
| | | addresses7.add("DB104.1.5"); |
| | | addresses7.add("DB104.1.2"); |
| | | addresses7.add("DB104.1.3"); |
| | | addresses7.add("DB104.1.6"); |
| | | addresses7.add("DB104.1.7"); |
| | | List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7); |
| | | |
| | | |
| | | short[] params2 = new short[arraylist7.size()]; |
| | | for (int i = 0; i < arraylist7.size(); i++) { |
| | | boolean value = arraylist7.get(i); |
| | | params2[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | List<String> addresses8 = new ArrayList<>(); |
| | | addresses8.add("DB101.3.7"); |
| | | addresses8.add("DB101.4.2"); |
| | | addresses8.add("DB101.4.5"); |
| | | addresses8.add("DB101.4.7"); |
| | | addresses8.add("DB104.9.0"); |
| | | addresses8.add("DB104.9.1"); |
| | | addresses8.add("DB104.9.0"); |
| | | addresses8.add("DB104.9.1"); |
| | | addresses8.add("DB104.9.4"); |
| | | addresses8.add("DB104.9.5"); |
| | | List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8); |
| | | short[] params = new short[arraylist8.size()]; |
| | | for (int i = 0; i < arraylist8.size(); i++) { |
| | | boolean value = arraylist8.get(i); |
| | | params[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | |
| | | StringBuilder queueid1 = queGlassid("DB100.148", 14); |
| | | StringBuilder queueid2 = queGlassid("DB100.162", 14); |
| | | |
| | | |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7}; |
| | |
| | | // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | // Short[] values6 = { 4,4}; |
| | | // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6)); |
| | | // Short[] values7 = { 1,1,1,1,1,1}; |
| | | // List<Short> arraylist7 = new ArrayList<>(Arrays.asList(values7)); |
| | | // Short[] values8 = { 1,1,1,1,1,1}; |
| | | // List<Short> arraylist8 = new ArrayList<>(Arrays.asList(values8)); |
| | | |
| | | // Boolean[] values7 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist7 = new ArrayList<>(Arrays.asList(values7)); |
| | | // Boolean[] values8 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist8 = new ArrayList<>(Arrays.asList(values8)); |
| | | // |
| | | // String queueid1 = "x1234567890123"; |
| | | // String queueid2 = "x1234567890123"; |
| | | // |
| | | // short[] params2 = new short[arraylist7.size()]; |
| | | // for (int i = 0; i < arraylist7.size(); i++) { |
| | | // boolean value = arraylist7.get(i); |
| | | // params2[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | // |
| | | // |
| | | // short[] params = new short[arraylist8.size()]; |
| | | // for (int i = 0; i < arraylist8.size(); i++) { |
| | | // boolean value = arraylist8.get(i); |
| | | // params[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | |
| | | jsonObject.append("zuhe4", arraylist4); |
| | | jsonObject.append("zuhe5", arraylist5); |
| | | jsonObject.append("zuhe6", arraylist6); |
| | | jsonObject.append("guzhang", arraylist7); |
| | | jsonObject.append("guzhang", params2); |
| | | jsonObject.append("weihuiling", params); |
| | | jsonObject.append("jinpianid", queueid1); |
| | | jsonObject.append("qupianid", queueid2); |
| | | |
| | | |
| | | |
| | |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | List<String> waddresses1 = new ArrayList<>(); |
| | | waddresses1.add("DB103.25"); |
| | | waddresses1.add("DB103.32"); |
| | | waddresses1.add("DB100.144"); |
| | | waddresses1.add("DB100.148-161"); |
| | | // waddresses1.add("DB100.148-161"); |
| | | waddresses1.add("DB100.184"); |
| | | waddresses1.add("DB100.186"); |
| | | waddresses1.add("DB100.180"); |
| | |
| | | waddresses2.add("DB100.188"); |
| | | waddresses2.add("DB100.190"); |
| | | waddresses2.add("DB100.146"); |
| | | waddresses2.add("DB100.162-175"); |
| | | // waddresses2.add("DB100.162-175"); |
| | | |
| | | List<String> waddresses3 = new ArrayList<>(); |
| | | waddresses3.add("DB101.4.0"); |
| | |
| | | |
| | | |
| | | |
| | | |
| | | String waddresses5="DB100.148"; |
| | | String waddresses6="DB100.162"; |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | if (messageArray.getJSONArray(4).size() > 0) { |
| | | // JSONArray jsonArray5 = messageArray.getJSONArray(4); |
| | | String jsonArray5 = String.valueOf(messageArray.getJSONArray(4)); |
| | | if (!jsonArray5.isEmpty()) { |
| | | // String value = (String) jsonArray5.get(0); |
| | | jsonArray5 = jsonArray5.replaceAll("[\\[\\]\"]", ""); // 去除方括号和双引号 |
| | | outmesid( jsonArray5,waddresses5); |
| | | System.out.println("Values " + jsonArray5 + " written to PLC at address " + waddresses5); |
| | | } |
| | | } |
| | | |
| | | if (messageArray.getJSONArray(5).size() > 0) { |
| | | JSONArray jsonArray6 = messageArray.getJSONArray(5); |
| | | |
| | | if (!jsonArray6.isEmpty()) { |
| | | String value2 = (String) jsonArray6.get(0); |
| | | outmesid( value2,waddresses6); |
| | | System.out.println("Values " + value2 + " written to PLC at address " + waddresses6); |
| | | } |
| | | } |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | } |