From 16f724625149f6c1822785337ada5abe43bf1e2f Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 09 五月 2024 14:04:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
/dev/null | 88 -----------------
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java | 20 ----
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java | 12 ++
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java | 62 ++++--------
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java | 6 -
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java | 86 +++++++++++-----
6 files changed, 93 insertions(+), 181 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
deleted file mode 100644
index 0d60791..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.mes.device;
-
-import com.mes.tools.InitUtil;
-import org.springframework.context.annotation.Configuration;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class PLCAutoMes extends Thread {
-
- // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
- private Configuration config;
- private static InitUtil initUtil;
-
-
- // 鍗曚緥瀹炰緥
- private static PLCAutoMes instance;
- private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
- private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
- private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
- // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class
-// .getResource("/JsonFile/PlcParameter.json").getPath();
-// private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json")
-// .getPath();
-// private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json")
-// .getPath();
- private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
- // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
-
- // 璋冪敤initword鏂规硶
-
- //
- // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
- public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
- public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
- public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
-
- // 绉佹湁鏋勯�犲嚱鏁�
- public PLCAutoMes() throws IOException {
-
- initUtil = new InitUtil();
- }
-
- // 鑾峰彇鍗曚緥瀹炰緥
- public static synchronized PLCAutoMes getInstance() throws IOException {
- if (instance == null) {
- instance = new PLCAutoMes();
- }
- return instance;
- }
-
- @Override
- public void run() {
- while (this != null) {
- try {
- Thread.sleep(100);
-
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- // System.out.println(jsonFilePath);
-
- // readAndUpdateWordValues(PlcReadObject);
- InitUtil.readAndUpdateWordValues(PlcMesObject);
-// readAndUpdateWordValues(PlcframeObject);
- // readAndUpdateWordValues(PlcframeObject);
-
- // readAndUpdateWordValues(plcStateObject);
- // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
- // System.out.println(index);
- // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
- // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
- List<String> addresses = new ArrayList<>();
- addresses.add("FeedID");
- addresses.add("AddStart");
- // System.out.println(addresses);
- // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
- List<String> addresses2 = new ArrayList<>();
- addresses2.add("FeedID");
- addresses2.add("FeedCarStatus");
-
- // System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
-
- }
- }
-}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
index 3fefdac..bc14c50 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
+++ b/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) {
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
index 2a86a0f..f427416 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
+++ b/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璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
*/
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()));
}
}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
index 4969c73..7eae4c8 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
+++ b/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() {
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
index 2d34674..b32c593 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
+++ b/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;
}
-
+ /**
+ * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇浼犲叆鍙傛暟鐨刾lc鍦板潃
+ *
+ * @param codeIdList 鍙傛暟鏍囪瘑
+ * @return 浼犲叆鍙傛暟鐨刾lc鍦板潃
+ */
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璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
*/
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;
}
-
-
}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
index 0bf1a9f..733b805 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
+++ b/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);
- }
-
-
}
--
Gitblit v1.8.0