wuyouming666
2024-01-04 8c4537b96ee0fad740770fc044e02251d080b101
增加翻译
8个文件已修改
336 ■■■■■ 已修改文件
CanadaMes-ui/src/lang/locales/zh-CN.json 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/layout/index.vue 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -442,5 +442,12 @@
    "D04.State": "D04.状态",
    "D05.State": "D05.状态",
    "D06.State": "D06.状态"
  }
  },
  "Automatic State":"自动状态",
  "ManualJog":"开关控制",
  "ManualonePosition":"手动定位",
  "Servomanualone":"半自动",
  "Address parameter settings":"地址参数设置",
  "Speed parameter settings":"速度参数设置"
}
CanadaMes-ui/src/layout/index.vue
@@ -66,7 +66,7 @@
              <el-menu-item index="1-1" @click="logout">{{ $t('exit') }}</el-menu-item>
              <el-menu-item index="1-2" @click="showChangePasswordDialog">{{ $t('changePassword') }}</el-menu-item>
            </el-submenu>
          </template>
          <template>
            <el-dialog :title="$t('changePassword')" :visible.sync="dialogVisible" width="30%">
@@ -102,11 +102,19 @@
        <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column>
      </el-table>
    </el-dialog>
    <el-dialog :visible.sync="dialogFormVisible3" >
      <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{ $t('A01Abort/ResumeTasks') }}</el-button>
    <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{ $t('A02Abort/ResumeTasks') }}</el-button>
    <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
            <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
                <!-- {{ this.CountDowns }} -->
                {{ this.CountDowns }}
            </div>
        </el-dialog>
    <el-dialog :visible.sync="dialogFormVisible3">
      <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{
        $t('A01Abort/ResumeTasks') }}</el-button>
      <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{
        $t('A02Abort/ResumeTasks') }}</el-button>
    </el-dialog>
  </el-container>
@@ -131,8 +139,8 @@
    return {
      activeTag: '', // 当前激活的标签
      dialogVisible: false,
      receivedData:0,
      receivedData2:0,
      receivedData: 0,
      receivedData2: 0,
      formData: {
        oldPassword: '',
        newPassword: '',
@@ -149,7 +157,12 @@
      dialogFormVisible2: false,
      dialogFormVisible3: false,
      alarm: [],
      alarm2: []
      alarm2: [],
      CountDowns: "0",
      EmergencyStop: false,
      PromptSize: 250,
      dialogFormCountDown:false
    }
  },
  // components: {
@@ -157,8 +170,8 @@
  // },
  created() {
    selectList(this.menuListForm).then(res => {
      this.menuList = res.data
@@ -178,25 +191,25 @@
    toggleButtonValue(buttonNumber) {
      MessageBox.confirm(this.$t('Are you sure to perform this operation?'), this.$t('prompt'), {
    confirmButtonText: this.$t('confirm'),
    cancelButtonText: this.$t('cancel'),
    type: 'warning'
  }).then(() => {
    // 点击确认按钮后执行的操作
      if (buttonNumber === 1) {
        this.receivedData = this.receivedData === 0 ? 1 : 0;
      } else if (buttonNumber === 2) {
        this.receivedData2 = this.receivedData2 === 0 ? 1 : 0;
      }
console.log(this.receivedData,this.receivedData2)
        confirmButtonText: this.$t('confirm'),
        cancelButtonText: this.$t('cancel'),
        type: 'warning'
      }).then(() => {
        // 点击确认按钮后执行的操作
        if (buttonNumber === 1) {
          this.receivedData = this.receivedData === 0 ? 1 : 0;
        } else if (buttonNumber === 2) {
          this.receivedData2 = this.receivedData2 === 0 ? 1 : 0;
        }
        console.log(this.receivedData, this.receivedData2)
        const data3 = [];
        const resetButtonValues3 = [this.receivedData,this.receivedData2];
        const resetButtonValues3 = [this.receivedData, this.receivedData2];
        // 将得到的值添加到 data 数组中
        data3.push(resetButtonValues3.flat());
        // 在 data3 数组前面添加两个空数组
        // 创建 jsonObject3 对象,并添加 data3 属性
@@ -207,13 +220,13 @@
        console.log("急停后中止/继续选择:", jsonString3);
        socket?.send(jsonString3);
        setTimeout(() => {
      this.dialogFormVisible3 = false;
    }, 1000); // 延迟时间为1秒(1000毫秒)
          this.dialogFormVisible3 = false;
        }, 1000); // 延迟时间为1秒(1000毫秒)
      }).catch(() => {
    // 点击取消按钮后执行的操作
  });
        // 点击取消按钮后执行的操作
      });
    },
@@ -238,40 +251,56 @@
        socket.onmessage = function (msg) {
          //console.log("收到数据====" + msg.data);
          let obj = JSON.parse(msg.data);
          if(obj.alarmmg){
          if (obj.alarmmg) {
          if (obj.alarmmg[0].length > 0) {
            if (this.alarm.length > 0) {
              if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length-1].id) {
            if (obj.alarmmg[0].length > 0) {
              if (this.alarm.length > 0) {
                if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
                  this.alarm = obj.alarmmg[0];
                  this.dialogFormVisible2 = true;
                }
              } else {
                this.alarm = obj.alarmmg[0];
                this.dialogFormVisible2 = true;
              }
            } else {
              this.alarm = obj.alarmmg[0];
              this.dialogFormVisible2 = true;
            }
          }else{
              this.alarm = obj.alarmmg[0];
              this.dialogFormVisible2 = false;
            }
            //是否急停
            if (obj.emergencystop != null) {
              this.EmergencyStop = obj.emergencystop[0];
            }
            //复位倒计时
            if (obj.countdown != null) {
              if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                this.CountDown();
              }
            }
            //复位完成信号
            if (obj.reset != null) {
              this.reset = obj.reset[0];
            }
          }
        }
if(obj.Abort){
          if (obj.Abort[0].length > 0) {
            this.receivedData=obj.Abort[0][0];
            this.receivedData2=obj.Abort[0][1];
           this.dialogFormVisible3 = true;
          if (obj.Abort) {
            if (obj.Abort[0].length > 0) {
              this.receivedData = obj.Abort[0][0];
              this.receivedData2 = obj.Abort[0][1];
              this.dialogFormVisible3 = true;
            }
          }
        }
        this.$forceUpdate();
          this.$forceUpdate();
        }.bind(this);
        //关闭事件
@@ -283,6 +312,36 @@
          console.log("websocket发生了错误");
        }
      }
    },
    //45秒复位倒数计时
    CountDown() {
      let count = 45;
      let timer = setInterval(
        () => {
          if (this.EmergencyStop == true) {
            this.dialogFormCountDown = false;
            clearInterval(timer);
            this.CountDowns = "0";
          } else {
            if (count > 0) {
              this.PromptSize = 500;
              this.CountDowns = count;
              count--;
              this.dialogFormCountDown = true;
            }
            else {
              this.PromptSize = 200;
              this.CountDowns = "Waiting for reset";
              if (this.reset == true) {
                clearInterval(timer);
                this.dialogFormCountDown = false;
              }
            }
          }
        },
        1000
      );
    },
    logout: function () {
      removeToken()
@@ -436,10 +495,12 @@
    margin-left: 10px;
  }
}
.blue-button {
  background-color: green;
  color: white;
}
.el-header {
  background-color: #576574;
springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
@@ -204,6 +204,17 @@
    public short[] convertBooleanListToShortArray(List<Boolean> booleanList) {
        short[] shortArray = new short[booleanList.size()];
        for (int i = 0; i < booleanList.size(); i++) {
            boolean value = booleanList.get(i);
            shortArray[i] = value ? (short) 1 : (short) 0;
        }
        return shortArray;
    }
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -206,7 +206,6 @@
                            // 写入A02
                            customS7Control.WriteWordToPLC(messageArray, addresses2, 1);
                            // 写入B01
                            customS7Control.WriteWordToPLC(messageArray, addresses3, 2);
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -15,20 +15,13 @@
import java.util.List;
public class PlcParameter2 extends Thread {
    @Autowired
    StorageCageService storageCageService;
    // 用于存储应用程序的配置信息
    private Configuration config;
    // 创建一个自定义的 S7 控制器消息处理器对象
    MessageHandler customS7Control = new MessageHandler();
    // 用于存储应用程序的配置信息
    private Configuration config;
    public PlcParameter2() throws IOException {
@@ -44,12 +37,12 @@
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService .class);
            storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
            //  id
            List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(","));
            List<String> paramlist = S7control.getinstance().readStrings(addressList1);
           // System.out.println("addressList:" + paramlist);
            // System.out.println(paramlist);
            //手动状态
            List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(","));
@@ -82,7 +75,7 @@
            List<Short> data4 = S7control.getinstance().readWords(addresses4);
            //System.out.println(data);
//      List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194"));
//      System.out.println("addressList:" + TIME2);
@@ -104,19 +97,22 @@
//      List<Short> data4 = new ArrayList<>(Arrays.asList(values4));
//
//
//            JSONObject jsonObject = new JSONObject();
//            short[] params = new short[data2.size()];
//            for (int i = 0; i < data2.size(); i++) {
//                boolean value = data2.get(i);
//                params[i] = value ? (short) 1 : (short) 0;
//            }
////
//            short[] anniuparams = new short[anniuread.size()];
//            for (int i = 0; i < anniuread.size(); i++) {
//                boolean value = anniuread.get(i);
//                anniuparams[i] = value ? (short) 1 : (short) 0;
//            }
            //boolean转为0 1
            short[] params = customS7Control.convertBooleanListToShortArray(data2);
            short[] anniuparams = customS7Control.convertBooleanListToShortArray(anniuread);
            JSONObject jsonObject = new JSONObject();
            short[] params = new short[data2.size()];
            for (int i = 0; i < data2.size(); i++) {
                boolean value = data2.get(i);
                params[i] = value ? (short) 1 : (short) 0;
            }
//
            short[] anniuparams = new short[anniuread.size()];
            for (int i = 0; i < anniuread.size(); i++) {
                boolean value = anniuread.get(i);
                anniuparams[i] = value ? (short) 1 : (short) 0;
            }
            jsonObject.append("params", params);
            jsonObject.append("params", paramlist);
            jsonObject.append("params", data);
@@ -142,16 +138,15 @@
                    if (webserver != null) {
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
                            // 将最后一个消息转换为整数类型的列表
                            String lastMessage = messages.get(messages.size() - 1);
//        System.out.println("lastMessage:" + lastMessage);
                            JSONArray messageArray = new JSONArray(lastMessage);
                            //清除ID
                           // customS7Control.writeBitToPLC(messageArray, addressList0, 0);
                            // customS7Control.writeBitToPLC(messageArray, addressList0, 0);
                            try {
@@ -177,10 +172,6 @@
                                                System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                                            } catch (NumberFormatException e) {
                                                // 如果无法解析为 boolean 类型,则忽略该部分
                                                System.err.println("Could not parse value: " + value);
@@ -191,47 +182,44 @@
                                    boolean containsOne = data.stream().anyMatch(number -> number == 1);
                                    for (int i = 1; i <= 5; i++) {
                                        boolean value = sValue.get(i);
                                        String id=paramlist.get(i);
                                        String id = paramlist.get(i);
                                        //判断是否自动状态
                                       if(!containsOne) {
                                     //判断id是否包含数字
                                      if(id.matches(".*\\d.*")){
                                          //判断清楚id是否true
                                          if (value) {
                                           System.out.println(id);
                                            switch (i) {
                                                case 1:
                                                    storageCageService.UpdateTask(2, 0, paramlist.get(i));
                                                    break;
                                                case 2:
                                                case 3:
                                                case 4:
                                                case 5:
                                                    storageCageService.UpdateTask(3, 0, paramlist.get(i));
                                                    break;
                                                default:
                                                    // 处理索引值不在范围内的情况
                                                    break;
                                        if (!containsOne) {
                                            //判断id是否包含数字
                                            if (id.matches(".*\\d.*")) {
                                                //判断清楚id是否true
                                                if (value) {
                                                    System.out.println(id);
                                                    switch (i) {
                                                        case 1:
                                                            storageCageService.UpdateTask(2, 0, paramlist.get(i));
                                                            break;
                                                        case 2:
                                                        case 3:
                                                        case 4:
                                                        case 5:
                                                            storageCageService.UpdateTask(3, 0, paramlist.get(i));
                                                            break;
                                                        default:
                                                            // 处理索引值不在范围内的情况
                                                            break;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                        // 检查布尔值列表是否为空
                                        if (!sValue.isEmpty()) {
                                    }
                                    // 检查布尔值列表是否为空
                                    if (!sValue.isEmpty()) {
                                        // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
                                        S7control.getinstance().WriteBit(addressList0, sValue);
                                        System.out.println("Values " + sValue + " written to PLC at address " + addressList0);
                                    }
                                            // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
                                            S7control.getinstance().WriteBit(addressList0, sValue);
                                            System.out.println("Values " + sValue + " written to PLC at address " + addressList0);
                                        }
                                    }
                                }
                            } catch (Exception e) {
                                System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
                            }
                            //急停
@@ -289,8 +277,6 @@
                            } catch (Exception e) {
                                System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
                            }
                            //存片等待延迟
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -353,7 +353,7 @@
    try {
        return s7PLC.readTime(address);
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("读取 " + address + " 失败:" + e.getMessage());
        return null;
    }
}
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -19,22 +19,22 @@
 //new PlcHold().start();
//        new Plchome().start();
//
//           new Plcalarm().start();
//
//           new Plcsign().start();
//
//
//           new Plcstate().start();
//           new PlcPositioning1().start();
//
//          new PlcParameter2().start();
//
//           new PLCAutomaticParameterSetting().start();
//           new PlcManualonePosition().start();
//           new PlcManualonePosition2().start();
//           new PlcServoManualone().start();
//           new PLCManualJog().start();
        new Plchome().start();
           new Plcalarm().start();
           new Plcsign().start();
           new Plcstate().start();
           new PlcPositioning1().start();
          new PlcParameter2().start();
           new PLCAutomaticParameterSetting().start();
           new PlcManualonePosition().start();
           new PlcManualonePosition2().start();
           new PlcServoManualone().start();
           new PLCManualJog().start();
    }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -35,6 +35,8 @@
  @Select("SELECT case when tier=1 then cage else 0 end as cage,case when tier=1 then state else 0 end as state,sum(case when tier=1 then glasswidth/2750*2 else 0 end) as glasswidth,sum(case when tier=2 then glasswidth/2750*2 else 0 end) as width  from storage_cage where cage<=5  group by cage,cell order by cage desc,cell desc")
  List<StorageCage> selectRack4();
  // 根据任务类型查询当前正在出片,进片的玻璃信息
  @Select("select * from storage_cage where state=#{task_type}")
  List<StorageCage> selectinout(@Param("task_type") Integer task_type);