package com.mes.common; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class InitUtil { //初始化word public static PlcParameterObject initword(String jsonFilePath) { try { FileReader fileReader = new FileReader(jsonFilePath); BufferedReader bufferedReader = new BufferedReader(fileReader); StringBuilder content = new StringBuilder(); String line; while ((line = bufferedReader.readLine()) != null) { content.append(line); } bufferedReader.close(); fileReader.close(); JSONObject jsonfileobj = new JSONObject(content.toString()); JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor"); PlcParameterObject plcParameterObject = new PlcParameterObject(); plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址 plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度 for (int i = 0; i < jsonArray.size(); i++) { JSONObject parameterObj = jsonArray.getJSONObject(i); PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例 String codeid = parameterObj.getStr("codeId"); plcParameterInfo.setCodeId(codeid); plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex"))); //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio"))); plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght"))); plcParameterInfo.setUnit(parameterObj.getStr("unit")); plcParameterObject.addPlcParameter(plcParameterInfo); } // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02}; // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); // plcParameterObject.setPlcParameterList(getplcvlues); return plcParameterObject; } catch (IOException e) { e.printStackTrace(); } return null; } //初始化bit public static PlcBitObject initbit(String jsonFilePath) { PlcBitObject plcBitObject = new PlcBitObject(); try { FileReader fileReader = new FileReader(jsonFilePath); BufferedReader bufferedReader = new BufferedReader(fileReader); StringBuilder content = new StringBuilder(); String line; while ((line = bufferedReader.readLine()) != null) { content.append(line); } bufferedReader.close(); fileReader.close(); JSONObject jsonfileobj = new JSONObject(content.toString()); JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor"); plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址 plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度 for (int i = 0; i < jsonArray.size(); i++) { JSONObject parameterObj = jsonArray.getJSONObject(i); PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例 String codeid = parameterObj.getStr("codeId"); plcBitInfo.setCodeId(codeid); plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex"))); plcBitObject.addPlcBit(plcBitInfo); } System.out.println(""); } catch (IOException e) { e.printStackTrace(); } //Boolean[] values1 = { false, true, true, true, false, false, true, false, // false, true ,true }; // List getplcvlues = new ArrayList<>(Arrays.asList(values1)); // List getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength()); // plcBitObject.setPlcBitList(getplcvlues); return plcBitObject; } // public static void readAndUpdateBitValues(PlcBitObject plcBitObject) { // Boolean[] values1 = { false, true, true, true, false, false, true, false, // false, true ,true }; // List getplcvlues = new ArrayList<>(Arrays.asList(values1)); List getplcvlues = S7object.getinstance().plccontrol.ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength()); plcBitObject.setPlcBitList(getplcvlues); } public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) { // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02}; byte[] getplcvlues = S7object.getinstance().plccontrol.ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); plcParameterObject.setPlcParameterList(getplcvlues); } }