封装初始化方法为工具类,方便调用, getPlcParameterValues getPlcBitValues 方法codeid 按照传入参数的顺序遍历 来获取值
18个文件已修改
2个文件已添加
825 ■■■■ 已修改文件
CanadaMes-ui/src/configuration/AutomaticParameterSetting.json 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/InteractionState.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter1.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ServoManualone.vue 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/ExcelToJsonConverter.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSettingReview.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSettingReview2.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1Review.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcBitObject.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/JsonFile/PlcParameter.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/JsonFile/PlcSign.json 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/JsonFile/PlcState.json 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
@@ -140,17 +140,7 @@
          
        }
      },
  {
    "name": "最高速度",
    "read": 33,
    "sending": 0,
    "type": "0",
    "unit": "m/min",
    "count":3,
    "value":0,
    "min": 0,
    "max": 60
  },
  {
    "name": "高速线速度",
    "read": 11,
@@ -192,17 +182,7 @@
        
      }
    },
{
  "name": "最高速度",
  "read": 33,
  "sending": 0,
  "type": "0",
  "unit": "m/min",
  "count":3,
  "value":0,
  "min": 0,
  "max": 60
},
{
  "name": "高速线速度",
  "read": 11,
@@ -242,17 +222,7 @@
      
    }
  },
{
"name": "最高速度",
"read": 33,
"sending": 0,
"type": "0",
"unit": "m/min",
"count":3,
"value":0,
"min": 0,
"max": 60
},
{
"name": "高速线速度",
"read": 11,
CanadaMes-ui/src/configuration/InteractionState.json
@@ -280,6 +280,16 @@
            "value":"",
            "min":0,
        "max":9999
          },
          {
            "name": "出片车请求",
            "read": 22,
            "sending": 0,
            "unit": "mm",
            "type": "0",
            "value":"",
            "min":0,
        "max":9999
          }
     
      
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -641,18 +641,49 @@
              }
              for (let i = 0; i < jsonData2.length; i++) {
                let arr4 = jsonData2[i];
                for (let j = 0; j < arr4.length; j++) {
                  let obj4 = arr4[j];
                  if (obj4.button && (obj4.button.name.includes("启动") || obj4.button.name.includes("Start"))) {
                    obj4.button.value = obj.qidong[0][i];
                    // console.log(obj2.button.value)
                  }
                }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("启动") || obj4.button.name.includes("Start"))) {
              //       obj4.button.value = obj.qidong[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              }
              // }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("复位") || obj4.button.name.includes("Reast"))) {
              //       obj4.button.value = obj.fuwei[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              // }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("回零") || obj4.button.name.includes("Home"))) {
              //       obj4.button.value = obj.huiling[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              // }
              for (let i = 2; i < jsonData2.length; i++) {
                let arr2 = jsonData2[i];
                for (let j = 2; j < arr2.length; j++) {
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -476,18 +476,62 @@
              }
              //启动
              for (let i = 0; i < jsonData2.length; i++) {
                let arr4 = jsonData2[i];
                for (let j = 0; j < arr4.length; j++) {
                  let obj4 = arr4[j];
                  if (obj4.button && (obj4.button.name.includes("启动") || obj4.button.name.includes("Start"))) {
                    obj4.button.value = obj.qidong[0][i];
                    // console.log(obj2.button.value)
                  }
                }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("启动") || obj4.button.name.includes("Start"))) {
              //       obj4.button.value = obj.qidong[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              }
              // }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("启动") || obj4.button.name.includes("Start"))) {
              //       obj4.button.value = obj.qidong[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              // }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("复位") || obj4.button.name.includes("Reast"))) {
              //       obj4.button.value = obj.fuwei[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              // }
              // for (let i = 0; i < jsonData2.length; i++) {
              //   let arr4 = jsonData2[i];
              //   for (let j = 0; j < arr4.length; j++) {
              //     let obj4 = arr4[j];
              //     if (obj4.button && (obj4.button.name.includes("回零") || obj4.button.name.includes("Home"))) {
              //       obj4.button.value = obj.huiling[0][i];
              //       // console.log(obj2.button.value)
              //     }
              //   }
              // }
              //改变未回零文字
for (let i = 0; i < jsonData2.length; i++) {
CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -78,6 +78,9 @@
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/parameter1'
import { throttle } from 'lodash';
// import {
// SelectPermissionByUserName, currentUsername
// } from "../../api/home";
let socket;
export default {
  name: "Parameter1",
CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -787,34 +787,34 @@
            }
            // 复位更新
            for (let i = 0; i < jsonData2.length; i++) {
              let arr = jsonData2[i];
              for (let j = 0; j < arr.length; j++) {
                let obj2 = arr[j];
                if (
                  obj2.button &&
                  (obj2.button.name === "复位" || obj2.button.name === "Reset")
                ) {
                  obj2.button.value = obj.fuwei[0][i];
                  //  console.log(obj2.button.value)
                }
              }
            }
            // for (let i = 0; i < jsonData2.length; i++) {
            //   let arr = jsonData2[i];
            //   for (let j = 0; j < arr.length; j++) {
            //     let obj2 = arr[j];
            //     if (
            //       obj2.button &&
            //       (obj2.button.name === "复位" || obj2.button.name === "Reset")
            //     ) {
            //       obj2.button.value = obj.fuwei[0][i];
            //       //  console.log(obj2.button.value)
            //     }
            //   }
            // }
            for (let i = 0; i < jsonData2.length; i++) {
              let arr = jsonData2[i];
              for (let j = 0; j < arr.length; j++) {
                let obj2 = arr[j];
                if (
                  obj2.button &&
                  (obj2.button.name === "回零" || obj2.button.name === "Home")
                ) {
                  obj2.button.value = obj.huiling[0][i];
                  //  console.log(obj2.button.value)
                }
              }
            }
            // for (let i = 0; i < jsonData2.length; i++) {
            //   let arr = jsonData2[i];
            //   for (let j = 0; j < arr.length; j++) {
            //     let obj2 = arr[j];
            //     if (
            //       obj2.button &&
            //       (obj2.button.name === "回零" || obj2.button.name === "Home")
            //     ) {
            //       obj2.button.value = obj.huiling[0][i];
            //       //  console.log(obj2.button.value)
            //     }
            //   }
            // }
            
springboot-vue3/src/main/java/com/example/springboot/component/ExcelToJsonConverter.java
@@ -12,9 +12,11 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
public class ExcelToJsonConverter {
    public static void main(String[] args) {
        String excelFilePath = "JsonFile/state.xlsx";
        String sheetName = "Sheet1";
@@ -27,13 +29,15 @@
        try (Workbook workbook = new HSSFWorkbook(new FileInputStream(excelFilePath))) {
            Sheet sheet = workbook.getSheet(sheetName);
            List<JSONObject> jsonList = new ArrayList<>();
            List<LinkedHashMap<String, Object>> jsonList = new ArrayList<>();
            Iterator<Row> rowIterator = sheet.iterator();
            // Skip the header row
            if (rowIterator.hasNext()) {
                rowIterator.next();
            }
            int plcAddressLength = 0; // 记录所有 addressLenght 的和
            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
@@ -48,17 +52,33 @@
                String addressIndex = extractAddressIndex(address);
                JSONObject jsonObject = new JSONObject();
                LinkedHashMap<String, Object> jsonObject = new LinkedHashMap<>();
                jsonObject.put("codeId", name);
                jsonObject.put("addressIndex", addressIndex);
                int addressLength = 0;
                if (address.contains("~")) {
                    addressLength = 14;
                } else {
                    addressLength = 2;
                }
                jsonObject.put("addressLenght", String.valueOf(addressLength));
                jsonObject.put("unit", unit);
                plcAddressLength += addressLength;
                jsonList.add(jsonObject);
            }
            LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>();
            resultObject.put("plcAddressBegin", "DB100.0");
            resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength));
            resultObject.put("dataType", "word");
            resultObject.put("parameteInfor", jsonList);
            Gson gson = new Gson();
            String jsonOutput = gson.toJson(jsonList);
            String jsonOutput = gson.toJson(resultObject);
            try (FileWriter fileWriter = new FileWriter(outputFilePath)) {
                fileWriter.write(jsonOutput);
@@ -81,6 +101,4 @@
        }
        return "";
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
@@ -10,6 +10,7 @@
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class InitUtil {
@@ -40,17 +41,22 @@
                String codeid = parameterObj.getStr("codeId");
                plcParameterInfo.setCodeId(codeid);
                plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
                plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
                //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;
    }
    public static PlcBitObject initbit(String jsonFilePath) {
        PlcBitObject plcBitObject = new PlcBitObject();
@@ -88,10 +94,33 @@
        } catch (IOException e) {
            e.printStackTrace();
        }
           //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);
        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, 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);
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSettingReview.java
@@ -26,9 +26,9 @@
        this.storageCageService = storageCageService;
        this.plcParameterObject = new PlcParameterObject();
        this.plcBitObject = new PlcBitObject();
        // String jsonFilePath = "JsonFile/PlcParameter.json";
        // String jsonFilePath = "/JsonFile/PlcParameter.json";
        // InitUtil.initword(jsonFilePath); // 初始化 PlcParameterObject
        // String jsonFilePath2 = "JsonFile/PlcSign.json";
        // String jsonFilePath2 = "/JsonFile/PlcSign.json";
        // InitUtil.initbit(jsonFilePath2); // 初始化 PlcSign
@@ -49,18 +49,22 @@
                e.printStackTrace();
            }
            byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
            //byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
            plcParameterObject.setPlcParameterList(getplcvlues);
            List<String> addresses = new ArrayList<>();
            addresses.add("A01turnAngle1");
            addresses.add("A01turnAngle2");
            addresses.add("A01turnAngle3");
            addresses.add("A01turnAngle4");
            addresses.add("A02turnAngle2");
            addresses.add("A02turnAngle3");
            addresses.add("A02turnAngle4");
            addresses.add("Minimumglasslength");
//            List<String> addresses = new ArrayList<>();
//            addresses.add("A01turnAngle1");
//            addresses.add("A01turnAngle2");
//            addresses.add("A01turnAngle3");
//            addresses.add("A01turnAngle4");
//            addresses.add("A02turnAngle2");
//            addresses.add("A02turnAngle3");
//            addresses.add("A02turnAngle4");
//            addresses.add("Minimumglasslength");
            //Auto.addresses=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.34,DB100.36,DB100.38,DB100.40
@@ -73,7 +77,6 @@
            Autoaddresses.add("A01A02conveyorVelocity(AutoFAST)");
            Autoaddresses.add("A01A02conveyorVelocity(AutoSLOW)");
            Autoaddresses.add("B01B02conveyorVelocity(Manual)");
            Autoaddresses.add("B01B02conveyorVelocity(Max)");
            Autoaddresses.add("B01B02conveyorVelocity(AutoFAST)");
            Autoaddresses.add("B01B02conveyorVelocity(AutoSLOW)");
@@ -109,13 +112,13 @@
            // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5}
            // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0}
//System.out.println(plcParameterObject.getPlcParameterValues(addresses));
            jsonObject.append("params",  plcParameterObject.getPlcParameterValues(addresses));
            jsonObject.append("dache1", plcParameterObject.getPlcParameter("A01A02TRAVELPOSVelocityAUTO").getValue());
            jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("B01B02TRAVELPOSVelocityAUTO").getValue());
            jsonObject.append("fanzhuan", plcParameterObject.getPlcParameter("A01A02TURNPOSVelocityAUTO").getValue());
            jsonObject.append("params2", plcParameterObject.getPlcParameterValues(Autoaddresses));
            jsonObject.append("fanzhuan2", plcParameterObject.getPlcParameter("A01A02TURNJOGVelocity").getValue());
            jsonObject.append("xiaoche2",  plcParameterObject.getPlcParameter("B01B02TRAVELJOGVelocity").getValue());
          //  jsonObject.append("params",  plcParameterObject.getPlcParameterValues(addresses));
//            jsonObject.append("dache1", plcParameterObject.getPlcParameter("A01A02TRAVELPOSVelocityAUTO").getValue());
//            jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("B01B02TRAVELPOSVelocityAUTO").getValue());
//            jsonObject.append("fanzhuan", plcParameterObject.getPlcParameter("A01A02TURNPOSVelocityAUTO").getValue());
//            jsonObject.append("params2", plcParameterObject.getPlcParameterValues(Autoaddresses));
//            jsonObject.append("fanzhuan2", plcParameterObject.getPlcParameter("A01A02TURNJOGVelocity").getValue());
//            jsonObject.append("xiaoche2",  plcParameterObject.getPlcParameter("B01B02TRAVELJOGVelocity").getValue());
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting");
//            if (sendwServer != null) {
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSettingReview2.java
New file
@@ -0,0 +1,93 @@
package com.example.springboot.component;
import com.example.springboot.entity.device.PlcBitObject;
import com.example.springboot.entity.device.PlcParameterObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static com.example.springboot.component.InitUtil.readAndUpdateBitValues;
import static com.example.springboot.component.InitUtil.readAndUpdateWordValues;
public class PLCAutomaticParameterSettingReview2 extends Thread {
    // 用于存储应用程序的配置信息
    private Configuration config;
    private static InitUtil initUtil;
    // 创建一个自定义的 S7 控制器消息处理器对象
    MessageHandler customS7Control = new MessageHandler();
    // 单例实例
    private static PLCAutomaticParameterSettingReview2 instance;
    // 私有构造函数
    public PLCAutomaticParameterSettingReview2() throws IOException {
        config = new Configuration("config.properties");
        initUtil = new InitUtil();
    }
    // 获取单例实例
    public static synchronized PLCAutomaticParameterSettingReview2 getInstance() throws IOException {
        if (instance == null) {
            instance = new PLCAutomaticParameterSettingReview2();
        }
        return instance;
    }
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            String jsonFilePath = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
            String jsonFilePath2 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
            String jsonFilePath4 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
           //System.out.println(jsonFilePath4);
            // 调用initword方法
          PlcParameterObject plcParameterObject = initUtil.initword(jsonFilePath);
            PlcParameterObject plcStateObject = initUtil.initword(jsonFilePath4);
            // 调用initbit方法
            PlcBitObject plcBitObject = initUtil.initbit(jsonFilePath2);
            readAndUpdateBitValues(plcBitObject);
          readAndUpdateWordValues(plcParameterObject);
            readAndUpdateWordValues(plcStateObject);
           // int index = plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddressIndex();
         //   System.out.println(index);
           // plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddress(index);
            // System.out.println(plcParameterObject.getPlcParameter("A01A02conveyorVelocity(Max)").getAddress(index));
            // S7control.getinstance().WriteWord(plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddress(index), (short) 100);
     List<String> addresses = new ArrayList<>();
      addresses.add("conveyorVelocity(AutoFAST)");
      addresses.add("A02ID");
System.out.println(plcParameterObject.getPlcParameterValues(addresses));
            List<String> addresses2 = new ArrayList<>();
            addresses2.add("conveyorVelocity(AutoSLOW)");
            addresses2.add("D01.SRdec");
            System.out.println(plcBitObject.getPlcBitValues(addresses2));
            int index2 = plcBitObject.getPlcBit("DO1id").getAddressIndex();
            System.out.println(index2);
            plcBitObject.getPlcBit("DO1id").getAddress(index2);
            System.out.println(plcBitObject.getPlcBit("DO1id").getAddress(index2));
            List<String> addresses3 = new ArrayList<>();
            addresses3.add("A02ID1");
            addresses3.add("A01CurrentGrid");
            System.out.println(plcStateObject.getPlcParameterValues(addresses3));
        }
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1Review.java
@@ -93,18 +93,24 @@
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
     // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
     byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
      byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
      //byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
      plcParameterObject.setPlcParameterList(getplcvlues);
    //  int index = plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddressIndex();
     int index = plcParameterObject.getPlcParameter("A01ID").getAddressIndex();
      System.out.println(index);
      plcParameterObject.getPlcParameter("A01ID").getAddress(index);
      System.out.println(plcParameterObject.getPlcParameter("A01ID").getAddress(index));
     // S7control.getinstance().WriteWord(plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddress(index), (short) 100);
      List<String> addresses = new ArrayList<>();
      addresses.add("A01A02TURNPOSVelocityAUTO");
      addresses.add("conveyorVelocity(AutoFAST)");
      addresses.add("A01ID");
//      addresses.add("conveyorVelocity(AutoSLOW)");
//      addresses.add("conveyorVelocity(Manual)");
//      addresses.add("A01A02TURNJOGVelocity");
//      addresses.add("A01A02TRAVELJOGVelocity");
@@ -116,7 +122,8 @@
      jsonObject.append("params", plcParameterObject.getPlcParameterValues(addresses));
      jsonObject.append("fanzhuan", plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getValue());
      jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("").getValue());
     // jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("").getValue());
      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1");
      if (sendwServer != null) {
@@ -125,6 +132,7 @@
          webserver.sendMessage(jsonObject.toString());
          if (webserver != null) {
            List<String> messages = webserver.getMessages();
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -28,7 +28,7 @@
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json");
      fileInputStream = new FileInputStream("D:/canadames/Alarm.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
@@ -82,12 +82,12 @@
        e.printStackTrace();
      }
//      this.readValue();
//      String PlcAddress = this.name;
//      Integer Plccount = this.count;
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
      // 根据地址读取PCL数据
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 71);
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", Plccount);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      // System.out.println(plclist);
      // Boolean[] values = { false, false, true, false, true, false, true, false,
@@ -118,6 +118,7 @@
            // 将Intlist转换为数组
            // System.out.println(Intlist);
//     System.out.println(Intlist.toArray().length);
            Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
            // 定义的报警内容数组,获取json返回的集合
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,29 +17,29 @@
        //
        System.out.println("启动完成");
        //  new PlcHold().start();
         new PlcHold().start();
        new Plchome().start();
        // new PlcLayout().start();
        // new Plcalarm().start();
         new PlcLayout().start();
         new Plcalarm().start();
        // new Plcsign().start();
         new Plcsign().start();
        // new Plcstate().start();
        // new PlcPositioning1().start();
         new Plcstate().start();
         new PlcPositioning1().start();
        // new PlcParameter2().start();
         new PlcParameter2().start();
        // new PLCAutomaticParameterSetting().start();
         new PLCAutomaticParameterSetting().start();
        // new PlcManualonePosition().start();
        // new PlcManualonePosition2().start();
        // new PlcServoManualone().start();
        // new PLCManualJog().start();
        // new Plclog().start();
         new PlcManualonePosition().start();
         new PlcManualonePosition2().start();
         new PlcServoManualone().start();
         new PLCManualJog().start();
         new Plclog().start();
        // new PlcInteractionState().start();
         new PlcInteractionState().start();
        //new PlcParameter1Review().start();
       // new PLCAutomaticParameterSettingReview().start();
       // new PLCAutomaticParameterSettingReview2().start();
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcBitObject.java
@@ -2,7 +2,9 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class PlcBitObject {
@@ -71,11 +73,21 @@
     * @return 获取某个参数实例
     */
    public List<Boolean> getPlcBitValues(List<String> codeids) {
        List<Boolean> arrayList = new ArrayList();
        List<Boolean> arrayList = new ArrayList<>();
        if (plcBitList != null) {
            for (PlcBitInfo plcbitInfo : plcBitList) {
                if (codeids.contains(plcbitInfo.getCodeId().toString()))
                    arrayList.add(plcbitInfo.getValue());
            Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序
            for (PlcBitInfo plcBitInfo : plcBitList) {
                if (codeids.contains(plcBitInfo.getCodeId().toString())) {
                    resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
                }
            }
            for (String codeId : codeids) { // 按照传入参数的顺序遍历
                Boolean value = resultMap.get(codeId);
                if (value != null) {
                    arrayList.add(value);
                } else {
                    arrayList.add(null); // 如果找不到对应的值,添加 null
                }
            }
        }
        return arrayList;
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java
@@ -101,13 +101,10 @@
        String[] stringdatas = this.startAddress.trim().split("\\.");
        if (stringdatas.length < 2 )
            return null;
        int dbwindex = 0;
        int bitindex = 0;
         if (stringdatas.length == 2) {
            dbwindex = Integer.parseInt(stringdatas[1]);
        } else
            return null;
        return stringdatas[0]+"."+dbwindex+bitindex;
        int bitindex = index;
        return stringdatas[0]+"."+bitindex;
    }
    public int getPlcAddress() {
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterObject.java
@@ -1,8 +1,11 @@
package com.example.springboot.entity.device;
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;
public class PlcParameterObject {
@@ -73,11 +76,21 @@
     * @return 获取某个参数实例
     */
    public List<String> getPlcParameterValues(List<String> codeids) {
        List<String> arrayList = new ArrayList();
        List<String> arrayList = new ArrayList<>();
        if (plcParameterList != null) {
            Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序
            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
                if (codeids.contains(plcParameterInfo.getCodeId()))
                if (codeids.contains(plcParameterInfo.getCodeId())) {
                    resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo);
                }
            }
            for (String codeId : codeids) { // 按照传入参数的顺序遍历
                PlcParameterInfo plcParameterInfo = resultMap.get(codeId);
                if (plcParameterInfo != null) {
                    arrayList.add(plcParameterInfo.getValue());
                } else {
                    arrayList.add(null); // 如果找不到对应的值,添加 null
                }
            }
        }
        return arrayList;
@@ -111,12 +124,21 @@
        if (plcParameterList != null) {
            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
                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()==14) {
                    plcParameterInfo.setValue((byteToHexString(valueList)));
                }
                else
                {
                    String valuestr = new String(valueList);
@@ -152,5 +174,11 @@
       return l;
   }
    public static String byteToHexString(byte[] bytes) {
        String str = new String(bytes, StandardCharsets.UTF_8);
        return str;
    }
   
}
springboot-vue3/src/main/resources/JsonFile/PlcParameter.json
@@ -1,6 +1,6 @@
{
   "plcAddressBegin":"DB100.0",
   "plcAddressLenght":"86",
   "plcAddressLenght":"198",
   "dataType":"word",
   "parameteInfor":[
      {
springboot-vue3/src/main/resources/JsonFile/PlcSign.json
@@ -1,6 +1,6 @@
{
   "plcAddressBegin":"DB100.0.0",
   "plcAddressLenght":"20",
  "plcAddressLenght":"11",
   "dataType":"bit",
   "parameteInfor":[
      {
@@ -29,19 +29,19 @@
       },
       {
          "codeId": "A01A02TURNPOSVelocityAUTO",
          "addressIndex":"12"
      "addressIndex":"7"
       },
       {
          "codeId": "A01A02TURNPOSVelocitymanual",
          "addressIndex":"14"
      "addressIndex":"8"
       },
       {
          "codeId": "A01A02TRAVELPOSVelocityAUTO",
          "addressIndex":"16"
      "addressIndex":"9"
       },
       {
         "codeId": "DO1id",
         "addressIndex":"18"
      "addressIndex":"10"
      }
  ]
}
springboot-vue3/src/main/resources/JsonFile/PlcState.json
New file
@@ -0,0 +1,272 @@
{
  "plcAddressBegin": "DB103.0",
  "plcAddressLenght": "256",
  "dataType": "word",
  "parameteInfor": [
    {
      "codeId": "D01.State",
      "addressIndex": "0",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D02.State",
      "addressIndex": "2",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01.State",
      "addressIndex": "4",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02.State",
      "addressIndex": "6",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01.State",
      "addressIndex": "8",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02.State",
      "addressIndex": "10",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D03.State",
      "addressIndex": "12",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D04.State",
      "addressIndex": "14",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D05.State",
      "addressIndex": "16",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D06.State",
      "addressIndex": "18",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01tavelActualPosition",
      "addressIndex": "20",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnActualangle",
      "addressIndex": "22",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02tavelActualPosition",
      "addressIndex": "24",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnActualangle",
      "addressIndex": "26",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01tavelActualPosition",
      "addressIndex": "28",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02tavelActualPosition",
      "addressIndex": "30",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01CurrentGrid",
      "addressIndex": "32",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02CurrentGrid",
      "addressIndex": "34",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01CurrentGrid",
      "addressIndex": "36",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01TargetGrid",
      "addressIndex": "38",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02CurrentGrid",
      "addressIndex": "40",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02TargetGrid",
      "addressIndex": "42",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "D01ID",
      "addressIndex": "44",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D02ID",
      "addressIndex": "58",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D03ID",
      "addressIndex": "72",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D04ID",
      "addressIndex": "86",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D05ID",
      "addressIndex": "100",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "D06ID",
      "addressIndex": "114",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID1",
      "addressIndex": "128",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01ID2",
      "addressIndex": "142",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID1",
      "addressIndex": "156",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A02ID2",
      "addressIndex": "170",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID1",
      "addressIndex": "184",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B01ID2",
      "addressIndex": "198",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID1",
      "addressIndex": "212",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "B02ID2",
      "addressIndex": "226",
      "addressLenght": "14",
      "unit": ""
    },
    {
      "codeId": "A01conveyorFaultcodes",
      "addressIndex": "240",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01turnservoFaultcodes",
      "addressIndex": "242",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A01travelservoFaultcodes",
      "addressIndex": "244",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02conveyorFaultcodes",
      "addressIndex": "246",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02turnservoFaultcodes",
      "addressIndex": "248",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "A02travelservoFaultcodes",
      "addressIndex": "250",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B01travelservoFaultcodes",
      "addressIndex": "252",
      "addressLenght": "2",
      "unit": ""
    },
    {
      "codeId": "B02travelservoFaultcodes",
      "addressIndex": "254",
      "addressLenght": "2",
      "unit": ""
    }
  ]
}
springboot-vue3/src/main/resources/config.properties
@@ -155,7 +155,7 @@
#addresses.add("DB100.36");
#addresses.add("DB100.38");
#addresses.add("DB100.40");
Auto.addresses=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.34,DB100.36,DB100.38,DB100.40
Auto.addresses=DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
#List<String> waddresses1 = new ArrayList<>();
#waddresses1.add("DB100.0");
@@ -171,7 +171,7 @@
#waddresses1.add("DB100.38");
#waddresses1.add("DB100.40");
Auto.shusong=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.34,DB100.36,DB100.38,DB100.40
Auto.shusong=DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
#-----PlcPositioning1-------------------------
@@ -215,7 +215,7 @@
#出片任务
PlcInteractionState.MESProductiontask=DB105.10,DB105.12,DB105.14,DB105.16,DB105.18,DB105.34-47
PlcInteractionState.PLCProductiontask=DB106.20,DB106.16,DB106.18,DB103.156-169
PlcInteractionState.PLCProductiontask=DB106.20,DB106.16,DB106.18,DB103.156-169,DB106.64
#任务信息
PlcInteractionState.MEStaskinformation=DB105.48,DB105.50,DB105.48,DB105.50,DB106.42,DB106.48