wuyouming666
2023-12-15 46f29e79b43be98199d0727a71d85dddaa6e1fd4
增加A01 A02行走伺服回零  输入密码才能点击
16个文件已修改
710 ■■■■■ 已修改文件
CanadaMes-ui/src/configuration/ManualJog.json 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue 144 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualJog.vue 93 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Positioning1.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ServoManualone.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/device/talkvue.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/ManualJog.json
@@ -270,5 +270,29 @@
    }
   
   
  ],
  [
    {
      "button": {
        "name": "A01行走伺服回零",
        "value": 0,
        "value2": 0,
        "address": "DB10.0",
        "state": 1
      },
      "type": "3"
    },
    {
      "button": {
        "name": "A02行走伺服回零",
        "value": 0,
        "value2": 0,
        "address": "DB10.0",
        "state": 1
      },
      "type": "3"
    }
  ]
]
CanadaMes-ui/src/lang/locales/en-US.json
@@ -530,7 +530,9 @@
                "A01输送反向": "A01 VFD conveyor reverse",
                "A02输送反向": "A02 VFD conveyor reverse",
                "A01注电泵": "A01 oil pump",
                "A02注电泵": "A02 oil pump"
                "A02注电泵": "A02 oil pump",
                "A01行走伺服回零":"A01 SERVE TRAVEL Home",
                "A02行走伺服回零":"A02 SERVE TRAVEL Home"
              }
          
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -91,7 +91,7 @@
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/AutomaticParameterSetting'
import { throttle } from 'lodash';
let socket;
export default {
@@ -182,93 +182,83 @@
        // 收到消息
        socket.onmessage = (msg) => {
          if (!msg.data) {
            return; // 如果收到空数据,则直接返回,不执行后续逻辑
          }
  if (!msg.data) {
    return; // 如果收到空数据,则直接返回,不执行后续逻辑
  }
          let obj = JSON.parse(msg.data);
          const jsonData2 = this.jsonData;
          // console.log(obj);
          const handleMouseMove = throttle(function (event) {
  let obj = JSON.parse(msg.data);
  const jsonData2 = this.jsonData;
            const inputBox = document.querySelectorAll('.input-box');
            const target = event.target;
            if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
              const parms = obj.params;
              const fanzhuan = obj.fanzhuan;
              const xiaoche = obj.xiaoche;
              const dache = obj.dache1;
  const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
              const parms2 = obj.params2;
              const fanzhuan2 = obj.fanzhuan2;
              const xiaoche2 = obj.xiaoche2;
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
              // console.log('parms:', parms);
              // console.log('fanzhuan:', fanzhuan);
              // console.log('xiaoche:', xiaoche);
              // console.log('dache:', dache);
    if (!isMouseInInput) {
      const parms = obj.params;
      const fanzhuan = obj.fanzhuan;
      const xiaoche = obj.xiaoche;
      const dache = obj.dache1;
              let index = 0;
              for (let i = 0; i < jsonData2.length - 1; i++) {
                let arr = jsonData2[i];
      const parms2 = obj.params2;
      const fanzhuan2 = obj.fanzhuan2;
      const xiaoche2 = obj.xiaoche2;
                for (let j = 0; j < arr.length; j++) {
                  let obj = arr[j];
                  if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
                    if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
                      obj.value = parms[0][index];
                      index++;
                    }
                  }
                }
              }
              if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
                jsonData2[4][0]['value'] = fanzhuan[0][0];
              }
              if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
                jsonData2[3][0]['value'] = xiaoche[0][0];
              }
              if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
                jsonData2[2][0]['value'] = dache[0][0];
              }
      let index = 0;
      for (let i = 0; i < jsonData2.length - 1; i++) {
        let arr = jsonData2[i];
            let index2 = 0;
              for (let i =5; i < jsonData2.length; i++) {
                let arr = jsonData2[i];
                for (let j = 0; j < arr.length; j++) {
                  let obj2 = arr[j];
                  if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
                    if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
                      obj2.value = parms2[0][index2];
                      index2++;
                    }
                  }
                }
              }
              if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
                jsonData2[8][0]['value'] = fanzhuan2[0][0];
              }
              if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
                jsonData2[9][0]['value'] = xiaoche2[0][0];
              }
        for (let j = 0; j < arr.length; j++) {
          let obj = arr[j];
          if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
            if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
              obj.value = parms[0][index];
              index++;
            }
          }
        }
      }
      if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
        jsonData2[4][0]['value'] = fanzhuan[0][0];
      }
      if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
        jsonData2[3][0]['value'] = xiaoche[0][0];
      }
      if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
        jsonData2[2][0]['value'] = dache[0][0];
      }
      let index2 = 0;
      for (let i = 5; i < jsonData2.length; i++) {
        let arr = jsonData2[i];
        for (let j = 0; j < arr.length; j++) {
          let obj2 = arr[j];
          if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
            if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
              obj2.value = parms2[0][index2];
              index2++;
            }
          }
        }
      }
      if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
        jsonData2[8][0]['value'] = fanzhuan2[0][0];
      }
      if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
        jsonData2[9][0]['value'] = xiaoche2[0][0];
      }
    }
  };
  setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
          }, 50);
          document.addEventListener('mouseover', handleMouseMove);
        };
document.addEventListener('mousemove', event => handleMouseMove(event));
};
@@ -314,7 +304,7 @@
      });
      console.log(this.jsonData)
      //console.log(this.jsonData)
    }
CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -57,7 +57,7 @@
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" style="margin: 10px;">
              <el-button v-if="item.button"   v-model="item.button.value"   :name="item.button.name" style='width:200px;'
 :class="{ 'dow': item.button.value === 0, 'op': item.button.value === 1 }" class="action-button"
 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{
 @click="updateButtonValue(dataGroup, itemIndex);  submitDataToBackend(item.button.name);">{{
 item.button.name
 }}</el-button>
            </div>
@@ -72,16 +72,19 @@
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/ManualJog'
import {SelectPassword} from "../../api/home";
let socket;
export default {
  name: "ManualJog",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
      jsonData: data, // 加载整个data.json文件作为jsonData
      password: 1,
    }
  },
  activated () {
    this.initWebSocket();
    const language = this.$i18n.locale;
@@ -91,7 +94,10 @@
    }
    // this.$forceUpdate();
             SelectPassword().then(res => {
                this.password = res.data.password;
                console.log(this.password)
            });
  },
  methods: {
    closeSocket () {
@@ -107,25 +113,69 @@
    this.$set(dataGroup[itemIndex].button, 'value2', 0);
  }
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '3') {
            return { value: item.button.value2 };
    submitDataToBackend (currentButtonName) {
      if (currentButtonName === 'A01 SERVE TRAVEL Home' || currentButtonName === 'A02 SERVE TRAVEL Home' || currentButtonName === 'A01行走伺服回零' || currentButtonName === 'A02行走伺服回零') {
        this.$prompt(
          this.$t('Are you sure to perform this operation?'),
          this.$t('prompt'),
          {
            inputType: 'password',
            inputPlaceholder: this.$t('Please enter the password'),
            confirmButtonText: this.$t('Yes'),
            cancelButtonText: this.$t('No'),
            type: 'warning',
          }
          return null;
        ).then(({ value }) => {
          // 验证密码是否正确
          if (value !== this.password) {
            this.$message.error(this.$t('Incorrect password'));
            return;
          }
          // 密码正确,继续提交数据到后端
          const inputData = this.jsonData.map(dataGroup => {
            return dataGroup.map(item => {
              if (item.type === '3') {
                return { value: item.button.value2 };
              }
              return null;
            });
          });
          const values = inputData.flat().filter(item => item !== null).map(item => item.value);
          const jsonObject = { data: values };
          // 提交数据到后端
          const jsonString = JSON.stringify(jsonObject);
          console.log('Type为3的value:', jsonString);
          socket?.send(jsonString);
        }).catch(() => {
          // 取消操作
          console.log('取消');
        });
      });
      } else {
        // 如果不是 A01 SERVE TRAVEL Home 按钮,继续提交数据到后端
        const inputData = this.jsonData.map(dataGroup => {
          return dataGroup.map(item => {
            if (item.type === '3') {
              return { value: item.button.value2 };
            }
            return null;
          });
        });
      const values = inputData.flat().filter(item => item !== null).map(item => item.value);
        const values = inputData.flat().filter(item => item !== null).map(item => item.value);
      const jsonObject = { data: values };
        const jsonObject = { data: values };
      // 提交数据到后端
      const jsonString = JSON.stringify(jsonObject);
      console.log('Type为3的value:', jsonString);
      socket?.send(jsonString);
        // 提交数据到后端
        const jsonString = JSON.stringify(jsonObject);
        console.log('Type为3的value:', jsonString);
        socket?.send(jsonString);
      }
    },
    //根据读取PLC的值,根据名称改变颜色1打开,0关闭
//     getStatusClass (zhuangtai) {
@@ -169,7 +219,8 @@
          const jsonData2 = this.jsonData;
          const parms = obj.params;
 console.log(obj)
//  console.log(obj)
//console.log(this.jsonData)
          if(parms){
          // 如果鼠标不在输入框内,更新输入框的值
          // this.submitDataToBackend()
@@ -181,10 +232,16 @@
            for (let j = 0; j < arr.length; j++) {
              let obj = arr[j];
              obj.button.value = parms[0][j];
              obj.button.value2 =obj.button.value;
            }
          }
        }
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -104,7 +104,7 @@
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Manualoneposition'
import { throttle } from 'lodash';
import ManualonePosition2 from './ManualonePosition2.vue';
let socket;
export default {
@@ -331,24 +331,25 @@
      }
      if (currentButtonName === '故障' || currentButtonName === 'Fault') {
        return false;
        const data2 = [];
        const resetButtonValues = this.jsonData.map(item => {
          // const buttonItem = item.find(subItem => subItem.button && subItem.button.name === '故障' || subItem.button.name === 'Fault');
          const buttonItem = item.find(subItem => subItem.button && ['故障', 'Fault'].includes(subItem.button.name));
          return buttonItem ? buttonItem.button.value : null;
        }).filter(value => value !== null);
        // const data2 = [];
        // const resetButtonValues = this.jsonData.map(item => {
        //   // const buttonItem = item.find(subItem => subItem.button && subItem.button.name === '故障' || subItem.button.name === 'Fault');
        //   const buttonItem = item.find(subItem => subItem.button && ['故障', 'Fault'].includes(subItem.button.name));
        //   return buttonItem ? buttonItem.button.value : null;
        // }).filter(value => value !== null);
        // 将得到的值添加到 data 数组中
        data2.push(...resetButtonValues);
        data2.unshift([], [], [], []);
        const jsonObject2 = { data:data2 };
        data.push([],[]);
        // // 将得到的值添加到 data 数组中
        // data2.push(...resetButtonValues);
        // data2.unshift([], [], [], []);
        // const jsonObject2 = { data:data2 };
        // data.push([],[]);
        // 提交数据到后端
        const jsonString2 = JSON.stringify(jsonObject2);
        console.log('所有故障的value:', jsonString2);
        socket?.send(jsonString2);
        // // 提交数据到后端
        // const jsonString2 = JSON.stringify(jsonObject2);
        // console.log('所有故障的value:', jsonString2);
        // socket?.send(jsonString2);
      }
@@ -436,13 +437,26 @@
          }
          let obj = JSON.parse(msg.data);
        // console.log(obj);
          const jsonData2 = this.jsonData;
          const weihuiling = obj.weihuiling;
          const handleMouseMove = throttle(function (event) {
            const inputBox = document.querySelectorAll('.el-card__body');
            const target = event.target;
            if (obj.zuhe1 &&inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
          const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    // console.log(obj);
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
    if (!isMouseInInput) {
  if(obj.zuhe1){
              // 执行更新逻辑
              for (let i = 0; i < 4; i++) {
                jsonData2[i].forEach((item, index) => {
@@ -451,17 +465,16 @@
                  }
                });
              }
            }
            }
          }, 50);
        }
          document.addEventListener('mouseover', handleMouseMove);
              // console.log(jsonData2);
              setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
document.addEventListener('mousemove', event => handleMouseMove(event));
if(obj.zuhe1){
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -87,7 +87,7 @@
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Manualoneposition2'
import { throttle } from 'lodash';
let socket;
export default {
  name: "ManualonePosition2",
@@ -224,24 +224,25 @@
      }
      if (currentButtonName === '故障' || currentButtonName === 'Fault') {
        return false;
        const data2 = [];
        const resetButtonValues = this.jsonData.map(item => {
          const buttonItem = item.find(subItem => subItem.button && ['故障', 'Fault'].includes(subItem.button.name));
        // const data2 = [];
        // const resetButtonValues = this.jsonData.map(item => {
        //   const buttonItem = item.find(subItem => subItem.button && ['故障', 'Fault'].includes(subItem.button.name));
          return buttonItem ? buttonItem.button.value : null;
        }).filter(value => value !== null);
        //   return buttonItem ? buttonItem.button.value : null;
        // }).filter(value => value !== null);
        // 将得到的值添加到 data 数组中
        data2.push(...resetButtonValues);
        data2.unshift([], []);
        const jsonObject2 = { data2 };
        data2.push([], []);
        // // 将得到的值添加到 data 数组中
        // data2.push(...resetButtonValues);
        // data2.unshift([], []);
        // const jsonObject2 = { data2 };
        // data2.push([], []);
        // 提交数据到后端
        const jsonString2 = JSON.stringify(jsonObject2);
        console.log('所有故障的value:', jsonString2);
        socket?.send(jsonString2);
        // // 提交数据到后端
        // const jsonString2 = JSON.stringify(jsonObject2);
        // console.log('所有故障的value:', jsonString2);
        // socket?.send(jsonString2);
      }
@@ -323,13 +324,26 @@
          }
          let obj = JSON.parse(msg.data);
          // console.log(obj)
          const jsonData2 = this.jsonData;
          const weihuiling = obj.weihuiling;
          const handleMouseMove = throttle(function (event) {
            const inputBox = document.querySelectorAll('.el-card__body');
            const target = event.target;
            if (obj.zuhe1 && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
            const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    // console.log(obj);
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
if (!isMouseInInput) {
            if (obj.zuhe1 ) {
              // 执行更新逻辑
              for (let i = 0; i < 2; i++) {
                jsonData2[i].forEach((item, index) => {
@@ -362,9 +376,15 @@
            }
          }, 50);
          document.addEventListener('mouseover', handleMouseMove);
          }
        }
              // console.log(jsonData2);
              setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
document.addEventListener('mousemove', event => handleMouseMove(event));
          if(obj.zuhe1){
CanadaMes-ui/src/views/Electrical/Parameter.vue
@@ -102,7 +102,7 @@
      if (typeof WebSocket === "undefined") {
        console.log("您的浏览器不支持WebSocket");
      } else {
        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
        let socketUrl = "ws://" + "192.168.10.21:8888" + "/springboot-vue3/api/talk/" + viewname;
        if (socket != null) {
          socket.close();
CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -206,7 +206,7 @@
      // 提交数据到后端
      const jsonString = JSON.stringify(jsonObject);
      // console.log('提交以下数据到后端:', jsonString);
       console.log('提交以下数据到后端:', jsonString);
      socket?.send(jsonString);
    },
    initWebSocket() {
@@ -237,25 +237,34 @@
        // 收到消息
        socket.onmessage = (msg) => {
          if (!msg.data) {
            return; // 如果收到空数据,则直接返回,不执行后续逻辑
          }
  if (!msg.data) {
    return; // 如果收到空数据,则直接返回,不执行后续逻辑
  }
          let obj = JSON.parse(msg.data);
          const jsonData2 = this.jsonData;
          document.addEventListener("mouseover", function (event) {
            const inputBox = document.querySelectorAll(".input-box");
            const target = event.target;
  let obj = JSON.parse(msg.data);
  const jsonData2 = this.jsonData;
  const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
    if (!isMouseInInput) {
            const parms = obj.params;
            if (
              parms &&
              inputBox &&
              Array.from(inputBox).every((box) => !box.contains(target))
            ) {
              // 如果鼠标不在输入框内,更新输入框的值
              // this.submitDataToBackend()
              // console.log(parms)
if(parms){
              let index = 0;
              for (let i = 0; i < jsonData2.length; i++) {
@@ -271,11 +280,16 @@
                  }
                }
              }
            }
          }
        }
              // console.log(jsonData2);
            }
          });
        };
              setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
document.addEventListener('mousemove', event => handleMouseMove(event));
};
        // 关闭事件
        socket.onclose = function () {
CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -85,7 +85,6 @@
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/ServoManualone'
import { throttle } from 'lodash';
let socket;
  export default {
@@ -432,14 +431,28 @@
  }
  let obj = JSON.parse(msg.data);
// console.log(obj)
const weihuiling=obj.weihuiling;
  const jsonData2 = this.jsonData;
  const handleMouseMove = (event) => {
    if (!event || !event.target) {
      return; // 如果 event 或 event.target 不存在,则直接返回,不执行后续逻辑
    }
  const handleMouseMove = throttle(function(event) {
  const inputBox = document.querySelectorAll('.el-card__body');
  const target = event.target;
  if (obj.zuhe1 && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
    const inputBox = document.querySelectorAll('.input-box');
    const target = event.target;
    // console.log(obj);
    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
    if (!isMouseInInput) {
  if (obj.zuhe1) {
    
    //启动按钮
 
@@ -479,10 +492,14 @@
  }
}, 50);
  document.addEventListener('mouseover', handleMouseMove);
}
      }
            // console.log(jsonData2);
            setInterval(() => handleMouseMove(event), 1000); // 每隔 1000ms 检测一次鼠标位置
document.addEventListener('mousemove', event => handleMouseMove(event));
  if (obj.qidong){
CanadaMes-ui/src/views/device/talkvue.vue
@@ -1,9 +1,10 @@
<template>
  <div class="container">
    <iframe src="http://localhost:8080/GERP/optimize/optimize/html/youhuacaidan.jsp"></iframe>
    <!-- <iframe src="http://localhost:8080/GERP/optimize/optimize/html/youhuacaidan.jsp"></iframe> -->
  </div>
</template>
<style>
.container {
  position: fixed;
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -11,8 +11,16 @@
public class PLCAutomaticParameterSetting extends Thread {
  // 用于存储应用程序的配置信息
  private Configuration config;
  // 创建一个自定义的 S7 控制器消息处理器对象
  MessageHandler customS7Control = new MessageHandler();
  public PLCAutomaticParameterSetting() throws IOException {
    config = new Configuration("config.properties");
  }
  @Override
  public void run() {
    while (this != null) {
@@ -25,23 +33,14 @@
      // System.out.println(stt);
      List<Short> arraylist = S7control.getinstance().ReadWord("DB100.120", 8);
      List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1);
      List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1);
      List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1);
      List<String> addresses = new ArrayList<>();
      addresses.add("DB100.0");
      addresses.add("DB100.2");
      addresses.add("DB100.4");
      addresses.add("DB100.6");
      addresses.add("DB100.26");
      addresses.add("DB100.28");
      addresses.add("DB100.30");
      addresses.add("DB100.32");
      addresses.add("DB100.34");
      addresses.add("DB100.36");
      addresses.add("DB100.38");
      addresses.add("DB100.40");
      List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(","));
      List<Short> arraylist2 = S7control.getinstance().readWords(addresses);
//翻转
      List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1);
@@ -131,20 +130,8 @@
                System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList1);
              }
              List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(","));
              List<String> waddresses1 = new ArrayList<>();
              waddresses1.add("DB100.0");
              waddresses1.add("DB100.2");
              waddresses1.add("DB100.4");
              waddresses1.add("DB100.6");
              waddresses1.add("DB100.26");
              waddresses1.add("DB100.28");
              waddresses1.add("DB100.30");
              waddresses1.add("DB100.32");
              waddresses1.add("DB100.34");
              waddresses1.add("DB100.36");
              waddresses1.add("DB100.38");
              waddresses1.add("DB100.40");
              String addressList22 = "DB100.8";
              String addressList33 = "DB100.12";
springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
@@ -33,26 +33,18 @@
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // this.readValue();
            // String PlcAddress = this.name;
            // Integer Plccount = this.count;
            // System.out.println(stt);
            List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
           List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
         List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
            List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
//             Boolean[] values1 = { false, true, true, true, false, false, true, false,
//             false, true, true, true, false, false,
//             true, false,false, true, true, true, false, false, true, false,
//                     false, true, false, true };
//             List<Boolean> arraylist = new ArrayList<>(Arrays.asList(values1));
            // Boolean[] values1 = { false, true, true, true, false, false, true, false,
            // false, true, true, true, false, false,
            // true, false };
            // List<Boolean> arraylist = new ArrayList<>(Arrays.asList(values1));
            // Boolean[] values2 = { false, true, true, true, false, false, true, false };
            // List<Boolean> arraylist2 = new ArrayList<>(Arrays.asList(values2));
            // Boolean[] values3 = { false, false };
            // List<Boolean> arraylist3 = new ArrayList<>(Arrays.asList(values3));
            JSONObject jsonObject = new JSONObject();
@@ -109,13 +101,13 @@
                            List<Boolean> bolList = new ArrayList<>();
                            for (int i = 0; i < 26 && i < messageBooleans.size(); i++) {
                            for (int i = 0; i < 28 && i < messageBooleans.size(); i++) {
                                bolList.add(messageBooleans.get(i));
                            }
                            if (!bolList.isEmpty()) {
                                S7control.getinstance().WriteBit(addressList21, bolList);
                           S7control.getinstance().WriteBit(addressList21, bolList);
                                System.out.println("messageValue:" + bolList + " written to PLC at address " + addressList21);
                            }
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -64,7 +64,7 @@
            addresses.add("DB100.116");
            addresses.add("DB100.16");
            addresses.add("DB103.20");
            addresses.add("DB106.2");
            List<Short> arraylist = S7control.getinstance().readWords(addresses);
            // System.out.println(arraylist);
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -13,10 +13,16 @@
public class PlcParameter2 extends Thread {
    // 用于存储应用程序的配置信息
    private Configuration config;
    // 创建一个自定义的 S7 控制器消息处理器对象
    MessageHandler customS7Control = new MessageHandler();
    public PlcParameter2() throws IOException {
        config = new Configuration("config.properties");
    }
    @Override
    public void run() {
@@ -29,74 +35,36 @@
            }
            //  id
            List<String> addressList1 = new ArrayList<>();
            addressList1.add("DB103.44");//D01
            addressList1.add("DB103.58");//D02
            addressList1.add("DB103.72");//D03
            addressList1.add("DB103.86");//D04
            addressList1.add("DB103.100");//D05
            addressList1.add("DB103.114");//D06
            addressList1.add("DB103.128");//A01
            addressList1.add("DB103.142");//A01 2
            addressList1.add("DB103.156");//A02
            addressList1.add("DB103.184");//B01
            addressList1.add("DB103.212");//B02
            List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(","));
            List<String> paramlist = S7control.getinstance().readStrings(addressList1);
            //手动状态
            List<String> addresses = new ArrayList<>();
            addresses.add("DB103.0");
            addresses.add("DB103.2");
            addresses.add("DB103.12");
            addresses.add("DB103.14");
            addresses.add("DB103.16");
            addresses.add("DB103.18");
            addresses.add("DB103.8");
            addresses.add("DB103.10");
            addresses.add("DB103.4");
            addresses.add("DB103.6");
            List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(","));
            List<Short> data = S7control.getinstance().readWords(addresses);
            //清除id
            List<String> addressList0 = new ArrayList<>();
            List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(","));
            addressList0.add("DB101.9.2");
            addressList0.add("DB101.9.3");
            addressList0.add("DB101.9.4");
            addressList0.add("DB101.9.5");
            addressList0.add("DB101.9.6");
            addressList0.add("DB101.9.7");
            addressList0.add("DB101.10.0");
            addressList0.add("DB101.10.1");
            addressList0.add("DB101.10.2");
            addressList0.add("DB101.10.3");
            // 扫码枪
            List<Boolean> data2 = S7control.getinstance().readBits(addressList0);
            List<String> addressList3 = new ArrayList<>();
            addressList3.add("DB103.256");
            addressList3.add("DB103.270");
            List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(","));
//急停按钮
            List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
            List<String> niuanaddressList3 = new ArrayList<>();
            niuanaddressList3.add("DB101.10.4");
            List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
            List<String> data3 = S7control.getinstance().readStrings(addressList3);
// A01 A02 B01 B02
            List<String> addresses4 = new ArrayList<>();
            addresses4.add("DB103.32");
            addresses4.add("DB103.34");
            addresses4.add("DB103.36");
            addresses4.add("DB103.40");
            List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(","));
            List<Short> data4 = S7control.getinstance().readWords(addresses4);
@@ -160,18 +128,6 @@
                        List<String> messages = webserver.getMessages();
                        List<String> addressList = new ArrayList<>();
                        addressList.add("DB101.9.2");
                        addressList.add("DB101.9.3");
                        addressList.add("DB101.9.4");
                        addressList.add("DB101.9.5");
                        addressList.add("DB101.9.6");
                        addressList.add("DB101.9.7");
                        addressList.add("DB101.10.0");
                        addressList.add("DB101.10.1");
                        addressList.add("DB101.10.2");
                        addressList.add("DB101.10.3");
                        if (!messages.isEmpty()) {
@@ -180,11 +136,9 @@
//        System.out.println("lastMessage:" + lastMessage);
                            JSONArray messageArray = new JSONArray(lastMessage);
                            //清除ID
                            customS7Control.writeBitToPLC(messageArray, addressList, 0);
                            customS7Control.writeBitToPLC(messageArray, addressList0, 0);
                            //急停
                            customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1);
                            // 清空消息列表
                            webserver.clearMessages();
                        }
springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -32,15 +32,11 @@
            // System.out.println(stt);
            //存片格  出片格读取
            List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 33);
          List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 33);
//            System.out.println(arraylist);
//            Short[] 存片 = { 1 };
//            List<Short> 存片1 = new ArrayList<>(Arrays.asList(存片));
//            Short[] 接片 = { 1 };
//            List<Short> 接片1 = new ArrayList<>(Arrays.asList(接片));
//            Short[] 间距 = { 1 };
//            List<Short> 间距1 = new ArrayList<>(Arrays.asList(间距));
//            Short[] values1 = {1,1,1, 1,2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12,13,14,15,16,17,18,19,20 };
//            Short[] values1 = {1,1,1, 1,2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12,13,14,15,16,17,18,19,20,11, 12,13,14,15,16,17,18,19,20 };
//            List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
springboot-vue3/src/main/resources/config.properties
@@ -57,12 +57,45 @@
#Parameter2--------------------------
#id
#addressList1.add("DB103.44");//D01
#addressList1.add("DB103.58");//D02
#addressList1.add("DB103.72");//D03
#addressList1.add("DB103.86");//D04
#addressList1.add("DB103.100");//D05
#addressList1.add("DB103.114");//D06
#addressList1.add("DB103.128");//A01
#addressList1.add("DB103.142");//A01 2
#addressList1.add("DB103.156");//A02
#addressList1.add("DB103.184");//B01
#addressList1.add("DB103.212");//B02
Parameter2.id=DB103.44,DB103.58,DB103.72,DB103.86,DB103.100,DB103.114,DB103.128,DB103.142,DB103.156,DB103.184,DB103.212
#state
#addresses.add("DB103.0");
#addresses.add("DB103.2");
#addresses.add("DB103.12");
#addresses.add("DB103.14");
#addresses.add("DB103.16");
#addresses.add("DB103.18");
#addresses.add("DB103.8");
#addresses.add("DB103.10");
#addresses.add("DB103.4");
#addresses.add("DB103.6");
Parameter2.state=DB103.0,DB103.2,DB103.12,DB103.14,DB103.16,DB103.18,DB103.8,DB103.10,DB103.4,DB103.6
#清除id
#addressList0.add("DB101.9.2");
#addressList0.add("DB101.9.3");
#addressList0.add("DB101.9.4");
#addressList0.add("DB101.9.5");
#addressList0.add("DB101.9.6");
#addressList0.add("DB101.9.7");
#
#addressList0.add("DB101.10.0");
#addressList0.add("DB101.10.1");
#addressList0.add("DB101.10.2");
#addressList0.add("DB101.10.3");
Parameter2.cleanid=DB101.9.2,DB101.9.3,DB101.9.4,DB101.9.5,DB101.9.6,DB101.9.7,DB101.10.0,DB101.10.1,DB101.10.2,DB101.10.3
#扫码枪
Parameter2.scanner=DB103.256,DB103.270
@@ -102,4 +135,38 @@
#addressList21.add("DB101.3.1");
#addressList21.add("DB101.3.3");
#按钮
PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.0.6,DB101.3.4,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.7,DB101.3.5,DB101.1.5,DB101.1.3,DB101.5.3,DB101.1.0,DB101.1.6,DB101.2.6,DB101.2.7,DB101.3.2,DB101.1.1,DB101.1.7,DB101.3.0,DB101.3.1,DB101.3.3
PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.0.6,DB101.3.4,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.7,DB101.3.5,DB101.1.5,DB101.1.3,DB101.5.3,DB101.1.0,DB101.1.6,DB101.2.6,DB101.2.7,DB101.3.2,DB101.1.1,DB101.1.7,DB101.3.0,DB101.3.1,DB101.3.3,DB101.10.5,DB101.10.6
#AUto----------------------------------------------------------------
#List<String> addresses = new ArrayList<>();
#addresses.add("DB100.0");
#addresses.add("DB100.2");
#addresses.add("DB100.4");
#addresses.add("DB100.6");
#addresses.add("DB100.26");
#addresses.add("DB100.28");
#addresses.add("DB100.30");
#addresses.add("DB100.32");
#addresses.add("DB100.34");
#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.36,DB100.38,DB100.40
#List<String> waddresses1 = new ArrayList<>();
#waddresses1.add("DB100.0");
#waddresses1.add("DB100.2");
#waddresses1.add("DB100.4");
#waddresses1.add("DB100.6");
#waddresses1.add("DB100.26");
#waddresses1.add("DB100.28");
#waddresses1.add("DB100.30");
#waddresses1.add("DB100.32");
#waddresses1.add("DB100.34");
#waddresses1.add("DB100.36");
#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