hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
File was deleted hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
@@ -54,19 +54,29 @@ */ public String getAddress(int index) { String[] stringdatas = this.startAddress.trim().split("\\."); if (stringdatas.length < 2) if (stringdatas.length < 2) { return null; } int dbwindex = 0; int bitindex = 0; if (stringdatas.length == 3) { dbwindex = Integer.parseInt(stringdatas[1]); bitindex = Integer.parseInt(stringdatas[2]); } else { return null; } dbwindex += index / 8; bitindex += index % 8; return stringdatas[0] + "." + dbwindex + "." + bitindex; } /** * 获取地址 * */ public String getAddress() { return getAddress(this.addressIndex); } public void setAddressIndex(int addressindex) { hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
@@ -1,9 +1,6 @@ package com.mes.device; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.*; public class PlcBitObject { @@ -11,7 +8,8 @@ private String plcAddressBegin; // 数据地址长度:第一参数到最后一个参数的长度 private int plcAddressLength; private ArrayList<PlcBitInfo> plcBitList; //private ArrayList<PlcBitInfo> plcBitList; private LinkedHashMap<String,PlcBitInfo> plcBitMap; /** * @return 数据区开始地址 @@ -44,8 +42,8 @@ /** * @return 获取参数实例集合 */ public ArrayList<PlcBitInfo> getBitList() { return plcBitList; public LinkedHashMap<String,PlcBitInfo> getBitMap() { return plcBitMap; } /** @@ -55,38 +53,29 @@ * @return 获取某个参数实例 */ public PlcBitInfo getPlcBit(String codeid) { if (plcBitList != null) { for (PlcBitInfo plcbitInfo : plcBitList) { if (plcBitMap != null) { /*for (PlcBitInfo plcbitInfo : plcBitList) { if (plcbitInfo.getCodeId().equals(codeid)) return plcbitInfo; } return null; }*/ return plcBitMap.get(codeid); } else { return null; } } /** * 根据参数标识 获取某个参数实例 * * @param codeid 参数标识 * @param codeids 参数标识 * @return 获取某个参数实例 */ public List<Boolean> getPlcBitValues(List<String> codeids) { List<Boolean> arrayList = new ArrayList<>(); if (plcBitList != null) { Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 for (PlcBitInfo plcBitInfo : plcBitList) { if (codeids.contains(plcBitInfo.getCodeId().toString())) { resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue()); } } if (plcBitMap != null) { for (String codeId : codeids) { // 按照传入参数的顺序遍历 Boolean value = resultMap.get(codeId); if (value != null) { arrayList.add(value); } else { arrayList.add(null); // 如果找不到对应的值,添加 null } arrayList.add(plcBitMap.get(codeId).getValue()); } } return arrayList; @@ -96,15 +85,7 @@ public List<String> getAddressListByCodeId(List<String> codeIdList) { List<String> addressList = new ArrayList<>(); for (String codeId : codeIdList) { for (PlcBitInfo plcBitInfo : plcBitList) { if (plcBitInfo.getCodeId().equals(codeId)) { int index = plcBitInfo.getAddressIndex(); String address = plcBitInfo.getAddress(index); if (address != null) { addressList.add(address); } } } addressList.add(plcBitMap.get(codeId).getAddress()); } return addressList; } @@ -116,11 +97,11 @@ * @param param 参数实例 */ public void addPlcBit(PlcBitInfo param) { if (plcBitList != null) plcBitList.add(param); if (plcBitMap != null) plcBitMap.put(param.getCodeId(),param); else { plcBitList = new ArrayList<PlcBitInfo>(); plcBitList.add(param); plcBitMap = new LinkedHashMap<String,PlcBitInfo>(); plcBitMap.put(param.getCodeId(),param); } } @@ -130,8 +111,9 @@ * @param plcValueArray PLC读取回来的byte类型数据集合 */ public void setPlcBitList(List<Boolean> plcValueArray) { if (plcBitList != null) { for (PlcBitInfo plcbitInfo : plcBitList) { if (plcBitMap != null) { Collection<PlcBitInfo> values=plcBitMap.values(); for (PlcBitInfo plcbitInfo : values) { plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex())); } } hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
@@ -100,6 +100,7 @@ * @param index 索引地址 */ public String getAddress(int index) { index=this.addressIndex; String[] stringdatas = this.startAddress.trim().split("\\."); int addressLength = this.addressLength; if (addressLength < 2) { @@ -118,11 +119,6 @@ return stringdatas[0] + "." + wordindex + "-" + newIndex; }*/ // return null; } public int getPlcAddress() { return addressIndex; } public String getAddress() { hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -2,10 +2,7 @@ import java.lang.reflect.Array; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.*; public class PlcParameterObject { @@ -13,7 +10,8 @@ private String plcAddressBegin; // 数据地址长度:第一参数到最后一个参数的长度 private int plcAddressLength; private ArrayList<PlcParameterInfo> plcParameterList; //private ArrayList<PlcParameterInfo> plcParameterList; private LinkedHashMap<String,PlcParameterInfo> plcParameterMap; /** @@ -47,8 +45,8 @@ /** * @return 获取参数实例集合 */ public ArrayList<PlcParameterInfo> getPlcParameterList() { return plcParameterList; public LinkedHashMap<String,PlcParameterInfo> getPlcParameterMap() { return plcParameterMap; } /** @@ -58,14 +56,19 @@ * @return 获取某个参数实例 */ public PlcParameterInfo getPlcParameter(String codeid) { if (plcParameterList != null) { if (plcParameterMap != null) { return plcParameterMap.get(codeid); } else { return null; } /*if (plcParameterList != null) { for (PlcParameterInfo plcParameterInfo : plcParameterList) { if (plcParameterInfo.getCodeId().equals(codeid)) return plcParameterInfo; } return null; } else return null; return null;*/ } @@ -77,15 +80,15 @@ */ public List<String> getPlcParameterValues(List<String> codeids) { List<String> arrayList = new ArrayList<>(); if (plcParameterList != null) { Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 if (plcParameterMap != null) { /*Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 for (PlcParameterInfo plcParameterInfo : plcParameterList) { if (codeids.contains(plcParameterInfo.getCodeId())) { resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo); } } }*/ for (String codeId : codeids) { // 按照传入参数的顺序遍历 PlcParameterInfo plcParameterInfo = resultMap.get(codeId); PlcParameterInfo plcParameterInfo = plcParameterMap.get(codeId); if (plcParameterInfo != null) { arrayList.add(plcParameterInfo.getValue()); } else { @@ -96,19 +99,22 @@ return arrayList; } /** * 根据参数标识 获取传入参数的plc地址 * * @param codeIdList 参数标识 * @return 传入参数的plc地址 */ public List<String> getAddressListByCodeId(List<String> codeIdList) { List<String> addressList = new ArrayList<>(); for (String codeId : codeIdList) { for (PlcParameterInfo plcParameterInfo : plcParameterList) { if (plcParameterInfo.getCodeId().equals(codeId)) { int index = plcParameterInfo.getAddressIndex(); String address = plcParameterInfo.getAddress(index); if (plcParameterMap!=null) { for (String codeId : codeIdList) { String address = plcParameterMap.get(codeId).getAddress(); if (address != null) { addressList.add(address); } } } } } return addressList; } @@ -120,12 +126,19 @@ * @param param 参数实例 */ public void addPlcParameter(PlcParameterInfo param) { if (plcParameterList != null) if (plcParameterMap != null) { plcParameterMap.put(param.getCodeId(), param); } else { plcParameterMap =new LinkedHashMap<String,PlcParameterInfo>(); plcParameterMap.put(param.getCodeId(), param); } /*if (plcParameterList != null) plcParameterList.add(param); else { plcParameterList = new ArrayList<PlcParameterInfo>(); plcParameterList.add(param); } }*/ } /** @@ -134,7 +147,28 @@ * @param plcValueArray PLC读取回来的byte类型数据集合 */ public void setPlcParameterList(byte[] plcValueArray) { if (plcParameterList != null) { if (plcParameterMap != null) { Collection<PlcParameterInfo> values= plcParameterMap.values(); for (PlcParameterInfo plcParameterInfo :values) { byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; // System.out.println(plcParameterInfo.getAddressLength()); for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); } if (plcParameterInfo.getAddressLength() == 2) { plcParameterInfo.setValue(String.valueOf(byte2short(valueList))); } else if (plcParameterInfo.getAddressLength() == 4) { plcParameterInfo.setValue(String.valueOf(byte2int(valueList))); } else if (plcParameterInfo.getAddressLength() >10) { plcParameterInfo.setValue((byteToHexString(valueList))); } else { String valuestr = new String(valueList); plcParameterInfo.setValue(valuestr); } } } /* if (plcParameterList != null) { for (PlcParameterInfo plcParameterInfo : plcParameterList) { @@ -158,7 +192,7 @@ plcParameterInfo.setValue(valuestr); } } } }*/ } /** @@ -206,6 +240,4 @@ String str = new String(bytes, StandardCharsets.UTF_8).trim(); return str; } } hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
@@ -104,24 +104,4 @@ // 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<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1)); //List<Boolean> getplcvlues = S7control.getinstance().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, 0x03}; // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); plcParameterObject.setPlcParameterList(getplcvlues); } }