clll
2023-09-12 715416ffffca786c83eeb0d12bde008ee8e5403b
将获取的PLc数据类型转换成需要使用的类型
5个文件已修改
313 ■■■■ 已修改文件
CanadaMes-ui/src/views/Electrical/Sign.vue 207 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/State.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -37,99 +37,99 @@
        params: [1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
          1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,],
        xyData: [
          { name: 'D01.SR dec', value: 0 },
          { name: "D01.SR in pos", value: 0 },
          { name: "D02.SR dec", value: 0 },
          { name: "D02.SR in pos", value: 0 },
          { name: "D03.SR into", value: 0 },
          { name: "D03.SR dec", value: 0 },
          { name: 'D03.SR in pos', value: 0 },
          { name: "D04.SR dec", value: 0 },
          { name: "D04.SR in pos", value: 0 },
          { name: "D05.SR dec", value: 0 },
          { name: "D05.SR in pos", value: 0 },
          { name: "D06.SR dec", value: 0 },
          { name: 'D06.SR in pos', value: 0 },
          { name: "B01.SR out dec", value: 0 },
          { name: "B01.SR out in pos", value: 0 },
          { name: "B01.SR in dec", value: 0 },
          { name: "B01.SR in in pos", value: 0 },
          { name: "B01.SR turn on", value: 0 },
          { name: 'B01.SR turn off', value: 0 },
          { name: "B01.SR up", value: 0 },
          { name: "B01.SR down", value: 0 },
          { name: "B02.SR out dec", value: 0 },
          { name: "B02.SR out in pos", value: 0 },
          { name: "B02.SR in dec", value: 0 },
          { name: 'B02.SR in in pos', value: 0 },
          { name: "B02.SR turn on", value: 0 },
          { name: "B02.SR turn off", value: 0 },
          { name: "B02.SR up", value: 0 },
          { name: "B02.SR down", value: 0 },
          { name: "B01.SR out safety", value: 0 },
          { name: "B01.SR in safety", value: 0 },
          { name: "B02.SR out safety", value: 0 },
          { name: "SB.start(+)", value: 0 },
          { name: "SB.stop(1)", value: 0 },
          { name: "SB.reset", value: 0 },
          { name: "SB.auto/manul", value: 0 },
          { name: "SB.pause", value: 0 },
          { name: "SB.emg", value: 0 },
          { name: "D01.SB.start", value: 0 },
          { name: "D06.SB.start", value: 0 },
          { name: "B02.SR in safety", value: 0 },
          { name: "SAFETYDOOR.requset", value: 0 },
          { name: "SAFETYDOOR.confirm", value: 0 },
          { name: "SAFETYDOOR.reset", value: 0 },
          { name: "LED.red", value: 0 },
          { name: "LED.green", value: 0 },
          { name: "LED.yellow", value: 0 },
          { name: "D01.LED.green", value: 0 },
          { name: "D06.LED.green", value: 0 },
          { name: "B01.YV.turn", value: 0 },
          { name: "B01.YV.up down", value: 0 },
          { name: "B01.YV.gassing", value: 0 },
          { name: "B02.YV.turn", value: 0 },
          { name: "B02.YV.up down", value: 0 },
          { name: "B02.YV.gassing", value: 0 },
          { name: "SAFETYDOOR.led", value: 0 },
          { name: "SAFETYDOOR.open", value: 0 },
          { name: 'D01.SR dec', value: 1 },
          { name: "D01.SR in pos", value: 1 },
          { name: "D02.SR dec", value: 1 },
          { name: "D02.SR in pos", value: 1 },
          { name: "D03.SR into", value: 1 },
          { name: "D03.SR dec", value: 1 },
          { name: 'D03.SR in pos', value: 1 },
          { name: "D04.SR dec", value: 1 },
          { name: "D04.SR in pos", value: 1 },
          { name: "D05.SR dec", value: 1 },
          { name: "D05.SR in pos", value: 1 },
          { name: "D06.SR dec", value: 1 },
          { name: 'D06.SR in pos', value: 1 },
          { name: "B01.SR out dec", value: 1 },
          { name: "B01.SR out in pos", value: 1 },
          { name: "B01.SR in dec", value: 1 },
          { name: "B01.SR in in pos", value: 1 },
          { name: "B01.SR turn on", value: 1 },
          { name: 'B01.SR turn off', value: 1 },
          { name: "B01.SR up", value: 1 },
          { name: "B01.SR down", value: 1 },
          { name: "B02.SR out dec", value: 1 },
          { name: "B02.SR out in pos", value: 1 },
          { name: "B02.SR in dec", value: 1 },
          { name: 'B02.SR in in pos', value: 1 },
          { name: "B02.SR turn on", value: 1 },
          { name: "B02.SR turn off", value: 1 },
          { name: "B02.SR up", value: 1 },
          { name: "B02.SR down", value: 1 },
          { name: "B01.SR out safety", value: 1 },
          { name: "B01.SR in safety", value: 1 },
          { name: "B02.SR out safety", value: 1 },
          { name: "SB.start(+)", value: 1 },
          { name: "SB.stop(1)", value: 1 },
          { name: "SB.reset", value: 1 },
          { name: "SB.auto/manul", value: 1 },
          { name: "SB.pause", value: 1 },
          { name: "SB.emg", value: 1 },
          { name: "D01.SB.start", value: 1 },
          { name: "D06.SB.start", value: 1 },
          { name: "B02.SR in safety", value: 1 },
          { name: "SAFETYDOOR.requset", value: 1 },
          { name: "SAFETYDOOR.confirm", value: 1 },
          { name: "SAFETYDOOR.reset", value: 1 },
          { name: "LED.red", value: 1 },
          { name: "LED.green", value: 1 },
          { name: "LED.yellow", value: 1 },
          { name: "D01.LED.green", value: 1 },
          { name: "D06.LED.green", value: 1 },
          { name: "B01.YV.turn", value: 1 },
          { name: "B01.YV.up down", value: 1 },
          { name: "B01.YV.gassing", value: 1 },
          { name: "B02.YV.turn", value: 1 },
          { name: "B02.YV.up down", value: 1 },
          { name: "B02.YV.gassing", value: 1 },
          { name: "SAFETYDOOR.led", value: 1 },
          { name: "SAFETYDOOR.open", value: 1 },
        ],
        // canshu: [
        //   'D01.SR dec',
        //   'D01.SR in pos',
        //   'D02.SR dec',
        //   'D02.SR in pos',
        //   'D03.SR into',
        //   'D03.SR dec',
        //   'D03.SR in pos',
        //   'D04.SR dec',
        //   'D04.SR in pos',
        //   'D05.SR dec',
        //   'D05.SR in pos',
        //   'D06.SR dec',
        //   'D06.SR in pos',
        //   'B01.SR out dec',
        //   'B01.SR out in pos',
        //   'B01.SR in dec',
        //   'B01.SR in in pos',
        //   'B01.SR turn on',
        //   'B01.SR turn off',
        //   'B01.SR up',
        //   'B01.SR down',
        //   'B02.SR out dec',
        //   'B02.SR out in pos',
        //   'B02.SR in dec',
        //   'B02.SR in in pos',
        //   'B02.SR turn on',
        //   'B02.SR turn off',
        //   'B02.SR up',
        //   'B02.SR down',
        //   'LED.red',
        //   'LED.green',
        //   'LED.yellow',
        // ],
        canshu: [
          'D01.SR dec',
          'D01.SR in pos',
          'D02.SR dec',
          'D02.SR in pos',
          'D03.SR into',
          'D03.SR dec',
          'D03.SR in pos',
          'D04.SR dec',
          'D04.SR in pos',
          'D05.SR dec',
          'D05.SR in pos',
          'D06.SR dec',
          'D06.SR in pos',
          'B01.SR out dec',
          'B01.SR out in pos',
          'B01.SR in dec',
          'B01.SR in in pos',
          'B01.SR turn on',
          'B01.SR turn off',
          'B01.SR up',
          'B01.SR down',
          'B02.SR out dec',
          'B02.SR out in pos',
          'B02.SR in dec',
          'B02.SR in in pos',
          'B02.SR turn on',
          'B02.SR turn off',
          'B02.SR up',
          'B02.SR down',
          'LED.red',
          'LED.green',
          'LED.yellow',
        ],
      },
@@ -150,27 +150,12 @@
  methods: {
    //根据读取PLC的值,根据名称改变颜色
    getStatusClass (zhuangtai) {
      // if (mc === "LED.green" && zhuangtai === 0) {
      //   return "green";
      // }
      // if (mc === "LED.red" && zhuangtai === 0) {
      //   return "red";
      // }
      // if (mc === "LED.yellow" && zhuangtai === 0) {
      //   return "yellow"
      // }
      if (zhuangtai === 0) {
        return "op";
      }
      else {
        return "dow";
      }
    },
    init () {
@@ -197,14 +182,16 @@
          //console.log("收到数据====" + msg.data);
          let obj = JSON.parse(msg.data);
          //this.$set(this.record.params, 0, obj.params[0]);
          this.record.params[0] = obj.sig[0];
          for (let a = 0; a <= this.record.xyData[0] - 1; a++) {
          for (let a = 0; a < this.record.params[0].length; a++) {
            if (!this.record.xyData[a]) {
              this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
            } else {
              this.record.xyData[a].value = this.record.params[0][a];
            }
          }
          this.$forceUpdate();
@@ -220,10 +207,6 @@
        }
      }
    },
    send () {
      this.messagepack.data = { taskname: "前端到后台" };
      socket?.send(JSON.stringify(this.messagepack));  // 将组装好的json发送给服务端,由服务端进行转发
    }
  }
}
CanadaMes-ui/src/views/Electrical/State.vue
@@ -17,7 +17,7 @@
      <div class="kuai_div" v-for="item in this.record.xyData" :key="item.name">
        <el-input style="width: 280px;" class="in_mc" v-model="item.name"></el-input>
        <el-input v-model.number="item.value" style="width: 80px;"></el-input>
        <el-input v-model="item.value" readonly="readonly" style="width: 80px;"></el-input>
      </div>
@@ -39,18 +39,18 @@
  data () {
    return {
      record: {
        params: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,],
        params: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1,],
        xyData: [
          { name: 'D01.State', value: 0 },
          { name: 'D02.State', value: 0 },
          { name: 'B01.State', value: 0 },
          { name: 'B02.State', value: 0 },
          { name: 'A01.State', value: 0 },
          { name: 'A02.State', value: 0 },
          { name: 'D03.State', value: 0 },
          { name: 'D04.State', value: 0 },
          { name: 'D05.State', value: 0 },
          { name: 'D06.State', value: 0 },
          { name: 'D01.State', value: "自动" },
          { name: 'D02.State', value: "自动" },
          { name: 'B01.State', value: "自动" },
          { name: 'B02.State', value: "自动" },
          { name: 'A01.State', value: "自动" },
          { name: 'A02.State', value: "自动" },
          { name: 'D03.State', value: "自动" },
          { name: 'D04.State', value: "自动" },
          { name: 'D05.State', value: "自动" },
          { name: 'D06.State', value: "自动" },
        ],
        // canshu: [
        //   'D01.State',
@@ -107,8 +107,9 @@
          //console.log("收到数据====" + msg.data);
          let obj = JSON.parse(msg.data);
          this.record.params[0] = obj.sta[0];
          console.log(this.record.params[0]);
          //将读取到的PLC的数据,与定义的xyData,组合成新的数组
          for (let a = 0; a <= this.record.xyData[0].length - 1; a++) {
          for (let a = 0; a < this.record.params[0].length; a++) {
            if (!this.record.xyData[a]) {
              this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
            } else {
@@ -134,6 +135,15 @@
      console.log(this.messagepack);
      socket?.send(JSON.stringify(this.messagepack));
    },
    valuezhi (zhi) {
      if (zhi == 1) {
        return "自动";
      }
      else {
        return "手动";
      }
    }
  }
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -3,6 +3,7 @@
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.example.springboot.mapper.AlarmMapper;
@@ -20,9 +21,14 @@
      }
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.DBx0.0", 40);
      if (plclist == null) {
      } else {
      // Boolean[] values = { true, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
      // true, false, true, false, true, false, true, false, true, false, true, false,
      // true, false, true, false, true,
      // false, true, false, true, false,
      // true, false, true, false };
      // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        JSONObject jsonObject = new JSONObject();
@@ -31,13 +37,15 @@
        if (sendwServer != null) {
          sendwServer.sendMessage(jsonObject.toString());
        }
        // 将读取plc数据的plclist转换为数组
        Short[] shuzu1 = plclist.toArray(new Short[0]);
        // Short[] shuzu1 = {
        // 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
        // 1, 0, 1, 0, 0,
        // 1, 0, 1, 0, 1, 0, 1, 0, 1,
        // };
        // 将获取的布尔类型转换为整数类型
        List<Integer> Intlist = new ArrayList<>();
        for (Boolean value : plclist) {
          Intlist.add(value == true ? 1 : 0);
        }
        // 将Intlist转换为数组
        Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
        String[] shuzu = {
            "D01 VFD error",
@@ -82,7 +90,7 @@
            "B02 OUT pos error",
        };
        alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
        for (short i = 0; i < shuzu1.length; i++) {
        for (short i = 0; i < shuzu.length; i++) {
          short result = alarmMapper.selectnullti(shuzu[i]);
          if (shuzu1[i] == 1 && result == 0) {
            alarmMapper.Insertalarm(shuzu[i]);
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -4,6 +4,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class Plcsign extends Thread {
  @Override
@@ -16,16 +17,24 @@
      }
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.DBX0.0", 58);
      if (plclist == null) {
      // Boolean[] values = { true, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
      // true, false, true, false, true, false, true, false, true, false, true, false,
      // true, false, true, false, true,
      // false, true, false, true, false,
      // true, false, true, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
      // true, false, true, false, true, };
      // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        // 将获取的布尔类型转换为整数类型
        List<Integer> Intlist = new ArrayList<>();
        for (Boolean value : plclist) {
          Intlist.add(value == true ? 0 : 1);
      } else {
        }
        JSONObject jsonObject = new JSONObject();
        // jsonObject3.append("sig",
        // new short[] { 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
        // 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
        // 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
        // });
        jsonObject.append("sig", plclist);
        jsonObject.append("sig", Intlist);
        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
        if (sendwServer3 != null) {
          sendwServer3.sendMessage(jsonObject.toString());
springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -4,6 +4,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class Plcstate extends Thread {
  @Override
@@ -16,14 +17,18 @@
      }
      List<Short> plclist = S7control.getinstance().ReadWord("DB103.DBW0", 10);
      if (plclist == null) {
      // Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0,
      // 1, 0, };
      // List<Short> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
      } else {
        List<String> Intlist = new ArrayList<>();
        for (Short value : plclist) {
          Intlist.add(value == 1 ? "自动" : "手动");
        }
        JSONObject jsonObject = new JSONObject();
        // jsonObject.append("sta",
        // new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, });
        jsonObject.append("sta", plclist);
        jsonObject.append("sta", Intlist);
        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State");
        if (sendwServer != null) {
          sendwServer.sendMessage(jsonObject.toString());