| | |
| | | public class MessageHandler {
|
| | | //写入byte
|
| | | 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);
|
| | | try {
|
| | | 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);
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing byte to PLC: " + e.getMessage());
|
| | | }
|
| | | byte[] bytes = Bytes.toArray(glassidlist);
|
| | | System.out.println("outmesidbytes:" + bytes.length);
|
| | | S7control.getinstance().WriteByte(address, bytes);
|
| | | }
|
| | |
|
| | | //写入bit
|
| | | public void writeBitToPLC( JSONArray messageArray,List<String> addresses, int index) {
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | List<Boolean> sValue = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | Object value = jsonArray.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 boolean 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | public void writeBitToPLC(JSONArray messageArray, List<String> addresses, int index) {
|
| | | try {
|
| | | // 检查索引是否有效
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | // 获取消息数组
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | // 创建一个布尔值列表
|
| | | List<Boolean> sValue = new ArrayList<>();
|
| | | // 遍历消息数组
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | // 获取消息数组中的值
|
| | | Object value = jsonArray.get(i);
|
| | | // 检查值是否有效
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | // 移除非数字和数字字符
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | // 解析为布尔值
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | // 将布尔值添加到布尔值列表中
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 boolean 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue.isEmpty()) {
|
| | | // 这里假设 S7control.getinstance().WriteBit 方法可以正确写入 sValue 到地址列表 addresses
|
| | | S7control.getinstance().WriteBit(addresses, sValue);
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | | }
|
| | | // 检查布尔值列表是否为空
|
| | | if (!sValue.isEmpty()) {
|
| | |
|
| | |
|
| | |
|
| | | //写入Word
|
| | | public void WriteWordToPLC( JSONArray messageArray,List<String> addresses, int index) {
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | List<Short> sValues = new ArrayList<>();
|
| | |
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | Object value = jsonArray.get(i);
|
| | |
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValues.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
|
| | | S7control.getinstance().WriteBit(addresses, sValue);
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | |
|
| | | if (!sValues.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addresses.get(index), sValues);
|
| | | System.out.println("Values " + sValues + " written to PLC at address " + addresses.get(index));
|
| | | }
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | | //写入String
|
| | | public void writeStringToPLC( JSONArray messageArray, String addresses,int index) {
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | |
|
| | | if (!jsonArray.isEmpty()) {
|
| | | String value = (String) jsonArray.get(0);
|
| | | outmesid(value.trim(), addresses);
|
| | | System.out.println("Value " + value + " written to PLC at address " + addresses);
|
| | | //不连续地址 写入Word
|
| | | public void WriteWordToPLC(JSONArray messageArray, List<String> addresses, int index) {
|
| | | try {
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | List<Short> sValues = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | Object value = jsonArray.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValues.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValues.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addresses, sValues);
|
| | | System.out.println("Values " + sValues + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing word to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | |
|
| | |
|
| | | } |
| | |
|
| | |
|
| | | public void WriteWordsToPLC(JSONArray jsonArray, String address,int index) {
|
| | | if (jsonArray.getJSONArray(index).size() > 0) {
|
| | | Object value = jsonArray.getJSONArray(index).get(0);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | short sValue = Short.parseShort(cleanedValue.trim());
|
| | | S7control.getinstance().WriteWord(address, Arrays.asList(sValue));
|
| | | System.out.println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + address);
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | public void Writetime(JSONArray jsonArray, String address,int index) {
|
| | | if (jsonArray.getJSONArray(index).size() > 0) {
|
| | | Object value = jsonArray.getJSONArray(index).get(0);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | long cleanedValue = Long.parseLong(value.toString().replaceAll("[^0-9-]", ""));
|
| | |
|
| | | S7control.getinstance().writetime(address, cleanedValue);
|
| | | System.out.println("messageValue:" + Arrays.asList(cleanedValue) + " written to PLC at address " + address);
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | //写入String
|
| | | public void writeStringToPLC(JSONArray messageArray, String addresses, int index) {
|
| | | try {
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | if (!jsonArray.isEmpty()) {
|
| | | String value = (String) jsonArray.get(0);
|
| | | outmesid(value.trim(), addresses);
|
| | | System.out.println("Value " + value + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing string to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | public void writeBitandrenwuToPLC(JSONArray messageArray, List<String> addresses, int index) {
|
| | | try {
|
| | | // 检查索引是否有效
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | // 获取消息数组
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | // 创建一个布尔值列表
|
| | | List<Boolean> sValue = new ArrayList<>();
|
| | | // 遍历消息数组
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | // 获取消息数组中的值
|
| | | Object value = jsonArray.get(i);
|
| | | // 检查值是否有效
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | // 移除非数字和数字字符
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | // 解析为布尔值
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | // 将布尔值添加到布尔值列表中
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
|
| | | if(sValue.get(1)){
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 boolean 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | // 检查布尔值列表是否为空
|
| | | if (!sValue.isEmpty()) {
|
| | |
|
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
|
| | | S7control.getinstance().WriteBit(addresses, sValue);
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | }
|