CanadaMes-ui/src/lang/locales/en-US.json
@@ -1,6 +1,6 @@ { "Clear":"Clear", "ip":"localhost", "ip":"192.168.10.21", "systemTitle": "Login System", "usernamePlaceholder": "Please enter username", "passwordPlaceholder": "Please enter password", @@ -568,7 +568,8 @@ "A02行走伺服回零":"A02 SERVE TRAVEL Home" }, "A01行走伺服回零":"A01 SERVE TRAVEL Home", "A02行走伺服回零":"A02 SERVE TRAVEL Home" "A02行走伺服回零":"A02 SERVE TRAVEL Home", "Set":"Set" } CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,6 +1,6 @@ { "Clear":"清除", "ip":"localhost", "ip":"192.168.10.21", "systemTitle": "登录系统", "usernamePlaceholder": "请输入用户名", "passwordPlaceholder": "请输入密码", @@ -514,6 +514,7 @@ "Servomanualone":"半自动", "Address parameter settings":"地址参数设置", "Speed parameter settings":"速度参数设置", "InteractionState":"交互状态" "InteractionState":"交互状态", "Set":"设定" } CanadaMes-ui/src/layout/index.vue
@@ -310,10 +310,10 @@ } } }, //45秒复位倒数计时 //60秒复位倒数计时 CountDown() { clearInterval(timer); let count = 45; let count = 60; timer = setInterval( () => { if (this.EmergencyStop == true) { CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -114,13 +114,13 @@ > </el-breadcrumb> <el-row :gutter="18" class="card"> <el-row :gutter="18" class="card" style="width: 1400px"> <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex" > <el-card class="json-block"> <el-card class="json-block" style="width: 400px"> <div class="button-row" style="display: flex; justify-content: space-between" @@ -143,15 +143,17 @@ <span class="name" style="width: 250px">{{ item.name }}</span> <el-input v-if="item.type === '0'" style="width: 120px" v-model="item.value" class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" @keyup.enter.native="submitDataToBackend($event)" ></el-input> <span v-if="item.unit" :name="item.unit">{{ item.unit }}</span> <!-- <el-button v-if="item.type === '0' && item.name !== '格子间距' && item.name !== '出片接片地址' && item.name !== '存片接片地址'" class="input-box" @click="submitDataToBackend();">取地址</el-button> --> <el-button v-if="item.type === '0' && item.name !== '格子间距' && item.name !== 'GridSpacing' " class="input-box" @click="updateButtonValue(dataGroup, itemIndex,groupIndex);">{{ $t("Set") }}</el-button> </div> </div> </el-card> @@ -172,6 +174,12 @@ data() { return { jsonData: data, // 加载整个data.json文件作为jsonData A01:"", A02:"", B01:"", B02:"", jianju:"" }; }, activated() { @@ -184,8 +192,45 @@ this.$forceUpdate(); }, methods: { updateButtonValue(dataGroup, itemIndex) { this.$set(dataGroup[itemIndex].button, "value", 1); // 点击按钮后将值改为1 updateButtonValue(dataGroup, itemIndex,groupIndex) { if(groupIndex==1){ const value = parseFloat(this.A01); this.$set(dataGroup[itemIndex], "value", value); console.log(value) } if(groupIndex==2){ const value = parseFloat(this.A02) ; this.$set(dataGroup[itemIndex], "value", value); console.log(value) } if(groupIndex==3){ const value = parseFloat(this.A01) + parseFloat(this.jianju); this.$set(dataGroup[itemIndex], "value", value); console.log(value) } if(groupIndex==4){ const value=parseFloat(this.A02)+parseFloat(this.jianju) this.$set(dataGroup[itemIndex], "value", value); } if(groupIndex==5){ const value=parseFloat(this.B01)-parseFloat(this.jianju) this.$set(dataGroup[itemIndex], "value", value); } if(groupIndex==6){ const value=parseFloat(this.B02)+parseFloat(this.jianju) this.$set(dataGroup[itemIndex], "value", value); } this.submitDataToBackend(event); }, //提交数据到后端 submitDataToBackend(event) { @@ -287,6 +332,24 @@ } } } this.A01 = obj.shishi1[0][0]; this.A02 = obj.shishi1[0][1]; this.B01= obj.shishi1[0][2]; this.B02 = obj.shishi1[0][3]; this.jianju = obj.params[0][0]; } }; CanadaMes-ui/src/views/home/index.vue
@@ -375,6 +375,17 @@ <div class="device" :style="'top: 262px;left: 150px;background-color: ' + ShowDeviceList(8) + ';'">D05</div> <div class="device" :style="'top: 339px;left: 150px;background-color: ' + ShowDeviceList(9) + ';'">D06</div> <div class="device" :style="'top: 395px;left: 90px;background-color: ;'">E01</div> <div class="device" :style="'top: 395px;left: 243px;background-color: ;'">E02</div> <div class="device" :style="'top: 395px;left: 395px;background-color: ;'">E03</div> <div class="device" :style="'top: 345px;left: 655px;background-color: ;'">E04</div> <div class="device" :style="'top: 345px;left: 810px;background-color: ;'">E05</div> <div class="device" :style="'top: 345px;left: 960px;background-color: ;'">E06</div> <div class="device" :style="'top: 345px;left: 525px;background-color: ;'">J01</div> <div class="device" :style="'top: 345px;left: 1100px;background-color: ;'">F01</div> <div class="device" :style="'top: 275px;left: 1100px;background-color: ;'">G01</div> <div class="glass D01" style="top: 39px;left: 1055px;position: absolute;">{{ ShowGlassIdList(0) }} <br /> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.2', 0)"> @@ -405,13 +416,13 @@ <div class="glass A01" style="top: 315px;left: 289px;position: absolute;">A01.2:{{ ShowGlassIdList(5) }} <br /> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.1,5', 5)"> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.0', 5)"> {{ $t('Clear') }}</el-button> </div> <div class="glass A02" style="top: 360px;left: 289px;position: absolute;">A02:{{ ShowGlassIdList(6) }} <br /> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.2,6', 6)"> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.10.1', 6)"> {{ $t('Clear') }}</el-button> </div> @@ -599,12 +610,6 @@ <el-dialog :visible.sync="dialogFormVisible5" :title="$t('Please confirm the glass information')"> <el-form :model="form" label-width="100px" style="padding-right: 30px"> <div style="display: flex;justify-content: center;"> <!-- <el-form-item> <el-input style="width:50%;margin-left: 20%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid2"></el-input> <el-button type="primary" @click="SelectGlassByGlassIDs(1)">{{ $t('Query') }}</el-button> </el-form-item> --> <el-form-item> {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }} <el-button type="primary" @click="isConfirmState()"> @@ -723,22 +728,11 @@ </el-form-item> </div> <div style="display: flex;justify-content: right;"> <!-- <el-button @click="DeleteQueueGlasss(2)" type="primary">{{ $t('Clear Current') }}</el-button> <el-button @click="InsertQueueGlass(2)" type="primary" :disabled="disabled"> {{ $t('Confirm') }}</el-button> <el-button @click="DeleteQueueGlasss(1)" type="primary">{{ $t('Clear Current') }}</el-button> --> <el-button @click="InsertQueueGlass(1)" style="margin-right: 100px;" type="primary" :disabled="disabled1"> {{ $t('Confirm') }}</el-button> </div> </el-form> <!-- <template #footer> <span class="dialog-footer"> <el-button @click="cancel3()">{{ $t('cancel') }}</el-button> </span> </template> --> </el-dialog> <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Outing Queue')" top="5vh"> @@ -761,9 +755,6 @@ <label style="background-color:yellow;font-size: 23px;" for=""> {{ isQueueWarning == true ? $t('The cage is disabled') : "" }} </label> <!-- <span style="background-color:yellow;"> {{ isQueueWarning== true ? $t('The cage is disabled') : $t('The cage is disabled') }} </span> --> <div style="display:flex;"> <div style="width:70%;"> <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border @@ -793,45 +784,12 @@ }}</el-button> </template> </el-table-column> <!-- <el-table-column :min-width="300" prop="position" :label="$t('Position')" style="font-size: 20px;"> <template slot-scope='scope'> <div :style="'width:' + (scope.row.position == 1 ? '300' : '100') + 'px;height:' + (scope.row.position == 1 ? '100' : '200') + 'px;background-Color:gray;margin:0 auto;'"> </div> </template> </el-table-column> --> <!-- <el-table-column prop="position" :label="$t('Flipped')" :min-width="200"> <template slot-scope='scope'> {{ scope.row.flip == true ? $t('EXTERIQR OUT AND BYPASS TO THE LEFT') : $t('EXTERIQR OUT AND BYPASS TO THE RIGHT') }} </template> </el-table-column> --> <el-table-column :width="100" :label="$t('Operate')"> <template slot-scope='scope'> <!-- <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)" style="font-size: 15px;" :disabled="(scope.$index == 0 || isAllowReordering == true || scope.row.state == 1)"> {{ $t('Top') }} </el-button> <el-button type="text" size="small" @click="getUpMove(scope.row, scope.$index)" style="font-size: 15px;" :disabled="(scope.$index == 0 || isAllowReordering == true || scope.row.state == 1)"> {{ $t('Up') }} </el-button> <el-button type="text" size="small" @click="getDownMove(scope.row, scope.$index)" style="font-size: 15px;" :disabled="(OutSlice.length - 1 == scope.$index || isAllowReordering == true || scope.row.state == 1)"> {{ $t('Down') }} </el-button> --> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue" @click="deleteproductionqueueglass(scope.row.barcode)">{{ $t('Delete') }}</el-button> <!-- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue" @click="FrameStateUpdate(scope.row.barcode,scope.row.framestate)">{{ scope.row.framestate == 0 ? $t('Stop') : $t('Start') }}</el-button> --> </template> </el-table-column> </el-table> @@ -881,7 +839,6 @@ </template> </el-table-column> <!-- <el-table-column prop="Flip" :label="$t('Flipped')"></el-table-column> --> <el-table-column prop="out_slice.state" :label="$t('In the queue')"> <template slot-scope='scope'> {{ scope.row.out_slice != null ? $t('Yes') : $t('No') }} @@ -893,12 +850,6 @@ {{ scope.row.storageCage != null ? $t('Yes') : $t('No') }} </template> </el-table-column> <!-- <el-table-column :width="80" :label="$t('Operate')"> <template slot-scope='scope'> <el-checkbox label="" :disabled="!(scope.row.storageCage != null && scope.row.out_slice == null)" :checked="scope.row.isCheck" @change="CheckBoxchange(scope.row.barcode, $event)"></el-checkbox> </template> </el-table-column> --> </el-table> </el-dialog> <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh"> @@ -1019,6 +970,9 @@ }, created() { this.load(); }, activated() { this.init(); } , @@ -1045,14 +999,14 @@ //console.log("收到数据====" + msg.data); let obj = JSON.parse(msg.data); if (obj.params != null) { var zhi1=obj.params[0][0]; var zhi2=obj.params[0][1]; var zhi1 = obj.params[0][0]; var zhi2 = obj.params[0][1]; this.car1 = 145 + 8.15 * Math.abs(zhi1 - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100; this.car2 = 210 + 8.15 * Math.abs(zhi2 - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100; // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; } this.tableData = obj.tableData[0]; this.cagelist1 = obj.cagelist1[0]; this.cagelist2 = obj.cagelist2[0]; @@ -1074,11 +1028,11 @@ //查询当前铝框信息 this.CurrentFrame = obj.CurrentFrame; //获取设备状态 // if (obj.DeviceList != null) { // this.DeviceList = obj.DeviceList[0]; // } // 获取设备状态 if (obj.DeviceList != null) { this.DeviceList = obj.DeviceList[0]; } //获取设备上的玻璃id if (obj.GlassIdList != null) { this.GlassIdList = obj.GlassIdList[0]; @@ -1196,6 +1150,10 @@ socket.onerror = function () { console.log("websocket发生了错误"); } //跳转页面时关闭socket this.$router.afterEach(function () { socket.close(); }); } }, load() { @@ -1248,14 +1206,6 @@ this.cagelist3 = res.data.list3; this.cagelist4 = res.data.list4; }); // //加载进片任务数据 // loadtask(this.task1).then(res => { // this.tasklist1 = res.data.list; // }); // //加载进出片任务数据 // loadtask(this.task2).then(res => { // this.tasklist2 = res.data.list; // }); //加载报警信息 SelectAlarmmgInfo().then(res => { this.alarm = res.data.alarmmg; @@ -1296,7 +1246,6 @@ }, //手动上片 sbumitglassid() { console.log(1111111); if (this.form.order != "") { if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) { this.$message.error(this.$t('The glass size is not within the range')); @@ -1371,36 +1320,6 @@ //获取扫码位和上片位数据 SelectGlassByGlassIDs() { this.showform3(); // if (parameter == 1) { // SelectGlassByGlassID(this.glassid2).then(res => { // if (res.data.form != null) { // if (res.data.form.glassId != null) { // this.form4 = res.data.form; // this.$message.success(this.$t('query was successful')); // this.Sizerange(this.form4, 2); // } else { // this.$message.error(this.$t('There is no such glass')); // } // } else { // this.$message.error(this.$t('There is no such glass')); // } // }); // } else { // SelectGlassByGlassID(this.glassid1).then(res => { // if (res.data.form != null) { // if (res.data.form.glassId != null) { // this.form5 = res.data.form; // this.$message.success(this.$t('query was successful')); // this.Sizerange(this.form5, 1); // } else { // this.$message.error(this.$t('There is no such glass')); // } // } else { // this.$message.error(this.$t('There is no such glass')); // } // }); // } }, //查询客户玻璃信息 @@ -1426,16 +1345,6 @@ //查询铝框id对应玻璃信息 SelectAluminumFrameInfoById(this.framebarcode).then(res => { this.AluminumFrame = res.data.AluminumFrame; console.log(this.AluminumFrame); // this.AluminumFrame.forEach(item => { // if (item.storageCage != null && item.out_slice == null) { // item.isCheck = true; // } else { // item.isCheck = false; // } // item.Flip = res.data.flip; // item.FrameNo = this.framebarcode; // }); }); this.dialogFormVisible7 = true; }, @@ -1632,7 +1541,7 @@ DeleteProductionQueueGlass(id).then(res => { if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); }else{ } else { this.$message.error(this.$t('This frame has glass that is currently outing')); } }); @@ -1668,17 +1577,19 @@ InsertQueueGlass(parameter) { if (parameter == 1 && this.form5.glassId != "") { if (this.form5.glassId != this.form2.glassId && this.form5.glassId != this.form3.glassId) { InsertQueueGlassId(1, this.form5).then(res => { if (res.data.message == 200) { this.form5 = {}; this.$message.success(this.$t('Operation successful')); } else if (res.data.message == 400) { this.$message.error(this.$t('The glass size is not within the range')); } else { this.$message.error(this.$t('This glass ID already exists in the sorting cage')); } }); if (this.dialogFormVisible5 == true) { InsertQueueGlassId(1, this.form5).then(res => { if (res.data.message == 200) { this.form5 = {}; this.$message.success(this.$t('Operation successful')); } else if (res.data.message == 400) { this.$message.error(this.$t('The glass size is not within the range')); } else { this.$message.error(this.$t('This glass ID already exists in the sorting cage')); } }); } } else { this.$message.error(this.$t('The glass ID already exists in the loading queue')); } @@ -1854,7 +1765,7 @@ } this.UpdateSequence(Sequence); }, //修改顺序 //修改出片顺序 UpdateSequence(Sequence) { let i = 0; this.OutSlice.forEach(item => { @@ -1969,9 +1880,9 @@ } else { this.disabled = false; } if (position == 3 && this.isConfirm == true && this.D01RequestState == true) { this.InsertQueueGlass(1); } // if (position == 3 && this.isConfirm == true && this.D01RequestState == true && this.dialogFormVisible5 == true) { // this.InsertQueueGlass(1); // } } } }, @@ -1987,9 +1898,9 @@ } }); }, //45秒复位倒数计时 //60秒复位倒数计时 CountDown() { let count = 45; let count = 60; let timer = setInterval( () => { if (this.EmergencyStop == true) { @@ -2094,7 +2005,7 @@ type: 'warning' }).then(() => { ClearGlassId(position, this.GlassIdList[num]).then(res => { if (res.data.message3 == 200) { if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); } else { this.$message.success(this.$t('operation failed')); springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -15,11 +15,34 @@ // 用于存储应用程序的配置信息 private Configuration config; private static InitUtil initUtil; // public static PlcParameterObject PlcMesObject; // public static PlcParameterObject PlcReadObject; // public static PlcParameterObject PlcframeObject; // 创建一个自定义的 S7 控制器消息处理器对象 MessageHandler customS7Control = new MessageHandler(); // 单例实例 private static PLCAutoMes instance; private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath(); private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath(); private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath(); private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath(); private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath(); private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath(); // 调用initword方法 public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes); // 调用initbit方法 public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead); // // 调用initbit方法 public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe); public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter); public static PlcParameterObject plcStateObject = initUtil.initword(PlcSign); public static PlcBitObject plcBitObject = initUtil.initbit(PlcState); // 私有构造函数 public PLCAutoMes() throws IOException { @@ -39,51 +62,34 @@ public void run() { while (this != null) { try { Thread.sleep(1000); Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } String jsonFilePath = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath(); String jsonFilePath2 = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath(); // String jsonFilePath3 = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath(); // System.out.println(jsonFilePath); // 调用initword方法 PlcParameterObject PlcMesObject= initUtil.initword(jsonFilePath); // 调用initbit方法 PlcParameterObject PlcReadObject= initUtil.initword(jsonFilePath2); // // 调用initbit方法 // PlcParameterObject PlcframeObject= initUtil.initword(jsonFilePath3); readAndUpdateWordValues(PlcReadObject); readAndUpdateWordValues(PlcMesObject); readAndUpdateWordValues(PlcframeObject); // readAndUpdateWordValues(PlcframeObject); // readAndUpdateWordValues(plcStateObject); int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex(); //System.out.println(index); // System.out.println(index); PlcMesObject.getPlcParameter("AddStart").getAddress(index); //System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index)); // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index)); List<String> addresses = new ArrayList<>(); addresses.add("FeedID"); addresses.add("AddStart"); //System.out.println(addresses); //System.out.println(PlcMesObject.getPlcParameterValues(addresses)); // System.out.println(addresses); // System.out.println(PlcMesObject.getPlcParameterValues(addresses)); List<String> addresses2 = new ArrayList<>(); addresses2.add("FeedID"); addresses2.add("FeedCarStatus"); System.out.println(PlcReadObject.getPlcParameterValues(addresses2)); } } springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSettingReview2.java
@@ -52,42 +52,45 @@ // 调用initword方法 PlcParameterObject plcParameterObject = initUtil.initword(jsonFilePath); PlcParameterObject plcParameterObject = initUtil.initword(jsonFilePath); PlcParameterObject plcStateObject = initUtil.initword(jsonFilePath4); // 调用initbit方法 PlcBitObject plcBitObject = initUtil.initbit(jsonFilePath2); readAndUpdateBitValues(plcBitObject); readAndUpdateWordValues(plcParameterObject); readAndUpdateWordValues(plcParameterObject); readAndUpdateWordValues(plcStateObject); // List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength()); // plcBitObject.setPlcBitList(getplcvlues); // 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> 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"); addresses2.add("D01.SRinpos"); addresses2.add("D05.SRinpos"); System.out.println(plcBitObject.getPlcBitValues(addresses2)); int index2 = plcBitObject.getPlcBit("DO1id").getAddressIndex(); int index2 = plcBitObject.getPlcBit("D05.SRinpos").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)); plcBitObject.getPlcBit("D05.SRinpos").getAddress(index2); System.out.println(plcBitObject.getPlcBit("D05.SRinpos").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/PlcHoldNew.java
@@ -1,11 +1,13 @@ package com.example.springboot.component; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.service.JdbcConnections; import com.example.springboot.service.SpianService; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.entity.device.PlcParameterObject; import com.example.springboot.mapper.AlarmMapper; import com.example.springboot.mapper.SpianMapper; @@ -43,13 +45,21 @@ // // TODO Auto-generated catch block // e.printStackTrace(); // } // 出片任务//////////////////////////////// List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 出片车状态 List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 出片任务是否启动 boolean Plcout = spianService.listbool("DB106.64"); // 出片请求字 boolean Plcout2 = spianService.listbool("DB105.18"); // 出片启动 //读取DB105区文件 PlcParameterObject plcParameterObjects=PLCAutoMes.PlcMesObject; //读106 PlcParameterObject plcParameterObjects2=PLCAutoMes.PlcReadObject; // List<String> addresses105 = new ArrayList<>(); // addresses105.add("OutRequest");// 出片请求字 // List<String> addresses106 = new ArrayList<>(); // addresses106.add("OutActivate");// 出片启动 String Plcadd1131=plcParameterObjects2.getPlcParameter("conveyorVelocity(AutoFAST)").getValue(); // 出片任务 boolean Plcout = spianService.listbool("DB106.64"); boolean Plcout2 = spianService.listbool("DB105.18"); if (Plcout == false&&Plcout2==true) { S7control.getinstance().WriteWord("DB105.18", (short) 0);// 出片任务启动改为0 System.out.println("关闭出片启动" + LocalDateTime.now());// 出片任务发送字改为0 @@ -98,6 +108,7 @@ List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 获取prc进片请求数据 List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态 List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 获取进片车任务是否启动 boolean B01backs = spianService.listbool("DB106.60");// b01汇报 boolean B02backs = spianService.listbool("DB106.62");// b02汇报 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -49,12 +49,18 @@ // 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)); List<Short> arraylist5 = S7control.getinstance().ReadWord("DB106.0", 1); List<Short> arraylist6 = S7control.getinstance().ReadWord("DB106.12", 1); List<Short> arraylist7 = S7control.getinstance().ReadWord("DB106.40", 1); List<Short> arraylist8 = S7control.getinstance().ReadWord("DB106.50", 1); arraylist5.addAll(arraylist6); arraylist5.addAll(arraylist7); arraylist5.addAll(arraylist8); JSONObject jsonObject = new JSONObject(); jsonObject.append("params", arraylist); jsonObject.append("shishi1", arraylist5); // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1"); springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -12,6 +12,7 @@ import com.example.springboot.service.*; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.entity.Glass; import com.example.springboot.entity.Out_slice; import com.example.springboot.entity.Queue; import com.example.springboot.entity.StorageCage; @@ -45,6 +46,8 @@ private StorageCageService storageCageService; public static Boolean FeedState = false; // public Plchome() throws IOException { // config = new Configuration("config.properties"); // } @@ -58,225 +61,229 @@ try { Thread.sleep(1000); // 注入mapper homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class); north_Glass_Buffer1Service = WebSocketServer.applicationContext .getBean(North_Glass_Buffer1Service.class); storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class); north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class); storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); // 笼子使用情况 List<StorageCage> tableData = homeMapper.selectAll(); jsonObject.append("tableData", tableData); // 格理片笼格子状态 List<StorageCage> cagelist1 = homeMapper.selectRack1(); List<StorageCage> cagelist2 = homeMapper.selectRack2(); List<StorageCage> cagelist3 = homeMapper.selectRack3(); List<StorageCage> cagelist4 = homeMapper.selectRack4(); jsonObject.append("cagelist1", cagelist1); jsonObject.append("cagelist2", cagelist2); jsonObject.append("cagelist3", cagelist3); jsonObject.append("cagelist4", cagelist4); // 进出片任务 List<StorageCage> tasklist1 = homeMapper.selectinout(3); List<StorageCage> tasklist2 = homeMapper.selectinout(2); jsonObject.append("tasklist1", tasklist1); jsonObject.append("tasklist2", tasklist2); // 查询报警信息 List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); jsonObject.append("alarmmg", alarmmg); // 笼子使用情况 List<StorageCage> tableData = homeMapper.selectAll(); jsonObject.append("tableData", tableData); // 格理片笼格子状态 List<StorageCage> cagelist1 = homeMapper.selectRack1(); List<StorageCage> cagelist2 = homeMapper.selectRack2(); List<StorageCage> cagelist3 = homeMapper.selectRack3(); List<StorageCage> cagelist4 = homeMapper.selectRack4(); jsonObject.append("cagelist1", cagelist1); jsonObject.append("cagelist2", cagelist2); jsonObject.append("cagelist3", cagelist3); jsonObject.append("cagelist4", cagelist4); // 进出片任务 List<StorageCage> tasklist1 = homeMapper.selectinout(3); List<StorageCage> tasklist2 = homeMapper.selectinout(2); jsonObject.append("tasklist1", tasklist1); jsonObject.append("tasklist2", tasklist2); // 查询报警信息 List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); jsonObject.append("alarmmg", alarmmg); // 伍 获取进是否有待确认的玻璃id String queid = spianMapper.Selectqueueid(); int state = spianMapper.Selectqueuestate(); jsonObject.append("queid", queid); jsonObject.append("state", state); // 获取扫码位与上片位玻璃信息 Queue form2 = homeMapper.GetQueueInfo(2); Queue form3 = homeMapper.GetQueueInfo(1); if (form2.getglassId() != null && form2.getglassId() != "") { jsonObject.append("form2", form2); } if (form3.getglassId() != null && form3.getglassId() != "") { jsonObject.append("form3", form3); } // 获取出片队列信息 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue(); jsonObject.append("listoutslice", listoutslice); // 获取当前出片队列出片状态 jsonObject.append("isAllowQueue", Plchome.isAllowQueue); // 获取出片队列警告状态 jsonObject.append("isQueueWarning", Plchome.isQueueWarning); // 获取当前出片队列调序状态 jsonObject.append("isAllowReordering", Plchome.isAllowReordering); // 是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); // 查询当前铝框信息 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame(); jsonObject.append("CurrentFrame", CurrentFrame); // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14)); // 铝框线交互 if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(),"DB17.0"); } String E01id=S7controlLK.getinstance().readStrings("DB17.0"); String J01id=S7controlLK.getinstance().readStrings("DB17.22"); List<Short> liststates=S7controlLK.getinstance().ReadWord("DB17.38", 1); List<Short> liststate=S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); if (framerequest == 1) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); // 伍 获取进是否有待确认的玻璃id String queid = spianMapper.Selectqueueid(); int state = spianMapper.Selectqueuestate(); jsonObject.append("queid", queid); jsonObject.append("state", state); // 获取扫码位与上片位玻璃信息 Queue form2 = homeMapper.GetQueueInfo(2); Queue form3 = homeMapper.GetQueueInfo(1); if (form2.getglassId() != null && form2.getglassId() != "") { jsonObject.append("form2", form2); } if (S7control.getinstance().CheckConnected() == true) { // 获取当前扫码方式 List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1); if (Scanningmethods != null) { for (Boolean Scanningmethod : Scanningmethods) { jsonObject.append("Scanningmethod", Scanningmethod); } if (form3.getglassId() != null && form3.getglassId() != "") { jsonObject.append("form3", form3); } // 获取出片队列信息 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue(); jsonObject.append("listoutslice", listoutslice); // 获取当前出片队列出片状态 jsonObject.append("isAllowQueue", Plchome.isAllowQueue); // 获取出片队列警告状态 jsonObject.append("isQueueWarning", Plchome.isQueueWarning); // 获取当前出片队列调序状态 jsonObject.append("isAllowReordering", Plchome.isAllowReordering); // 是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); // 查询当前铝框信息 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame(); jsonObject.append("CurrentFrame", CurrentFrame); String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); jsonObject.append("CurrrentGlassId", CurrrentGlassId); // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14)); if (S7control.getinstance().CheckConnected() == true) { // 获取D01-D06,A01,A02,B01,B02状态 List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); jsonObject.append("DeviceList", DeviceList); // 获取D01-D06,A01,A02,B01,B02玻璃id List<String> GlassIdList = new ArrayList<String>(); GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString()); // 铝框线交互 if (S7controlLK.getinstance().CheckConnected() == true) { if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0"); } String E01id = S7controlLK.getinstance().readStrings("DB17.0"); String J01id = S7controlLK.getinstance().readStrings("DB17.22"); GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString()); jsonObject.append("GlassIdList", GlassIdList); // 读去Plc进片车与出片车位置W List<String> addressList = new ArrayList<String>(); addressList.add("DB106.12"); addressList.add("DB106.0"); List<Short> paramlist = S7control.getinstance().ReadWord(addressList); if (paramlist != null) { jsonObject.append("params", paramlist); } // 获取进片车状态 List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态 if (datas1ListState != null) { boolean exist1 = datas1ListState.contains((short) 0); jsonObject.append("zhuangtai", exist1); } // 获取进片玻璃信息 List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); if (inglassInfo != null) { if (inglassInfo.size() > 0) { jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); } } // // 获取铝框idDB106.DBW64,添加到出片队列 // String frameno="X21763329601FB"; String frameno = spianService.queGlassid("DB103.270", 14).toString(); if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; try { Short num = 0; List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service .SelectAluminumFrameInfoById(Plchome.FrameNo); for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { if (north_glass_buffer1.getstorageCage() == null) { break; List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); if (framerequest == 1) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } num++; Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); } if (num == north_glass_buffer1s.size()) { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } else { Plchome.AluminumFrame = north_glass_buffer1s; } // 获取当前扫码方式 List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1); if (Scanningmethods != null) { for (Boolean Scanningmethod : Scanningmethods) { jsonObject.append("Scanningmethod", Scanningmethod); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 获取当前扫码枪玻璃id String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); jsonObject.append("CurrrentGlassId", CurrrentGlassId); // 获取D01-D06,A01,A02,B01,B02状态 List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); jsonObject.append("DeviceList", DeviceList); // 获取D01-D06,A01,A02,B01,B02玻璃id List<String> GlassIdList = new ArrayList<String>(); GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString()); jsonObject.append("GlassIdList", GlassIdList); // 读去Plc进片车与出片车位置W List<String> addressList = new ArrayList<String>(); addressList.add("DB106.12"); addressList.add("DB106.0"); List<Short> paramlist = S7control.getinstance().ReadWord(addressList); if (paramlist != null) { jsonObject.append("params", paramlist); } // 获取进片车状态 List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态 if (datas1ListState != null) { boolean exist1 = datas1ListState.contains((short) 0); jsonObject.append("zhuangtai", exist1); } // 获取进片玻璃信息 List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); if (inglassInfo != null) { if (inglassInfo.size() > 0) { jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); } } // // 获取铝框idDB106.DBW64,添加到出片队列 // String frameno="X21763329601FB"; String frameno = spianService.queGlassid("DB103.270", 14).toString(); if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; try { Short num = 0; List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service .SelectAluminumFrameInfoById(Plchome.FrameNo); for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { if (north_glass_buffer1.getstorageCage() == null) { break; } num++; } if (num == north_glass_buffer1s.size()) { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } else { Plchome.AluminumFrame = north_glass_buffer1s; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (AluminumFrame != null) { jsonObject.append("AluminumFrame", AluminumFrame); } // 复位倒计时 // 地址104.9.6 List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1); for (Boolean countdowns : countdown) { jsonObject.append("countdown", countdowns); } // jsonObject.append("countdown", true); // 复位完成信号ss List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resetss) { jsonObject.append("reset", reset); } // 是否急停 List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); for (Boolean emergencystop : emergencystops) { jsonObject.append("emergencystop", emergencystop); } // 获取进片请求状态 List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1); boolean D01RequestState = D01Request.contains((short) 1); jsonObject.append("D01RequestState", D01RequestState); // 获取进片发送状态 List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1); boolean D01ResponseState = D01respnse.contains((short) 1); // jsonObject.append("D01RequestState", D01RequestState); // 自动进片 if ((form3.getglassheight() < 380 || form3.getglasswidth() < 390 || form3.getglassheight() > 1810 || form3.getglasswidth() > 2760) || (form3.getglassheight() < 390 || form3.getglasswidth() < 380 || form3.getglassheight() > 2760 || form3.getglasswidth() > 1810)) { if (isConfirm == true && D01RequestState == true && D01ResponseState == false) { storageCageService.InsertQueueGlassId((short) 1, form3); } } } if (AluminumFrame != null) { jsonObject.append("AluminumFrame", AluminumFrame); } // 获取进片请求状态 List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1); boolean D01RequestState = D01Request.contains((short) 1); // boolean D01RequestState =true; jsonObject.append("D01RequestState", D01RequestState); // 复位倒计时 // 地址104.9.6 List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1); for (Boolean countdowns : countdown) { jsonObject.append("countdown", countdowns); } // jsonObject.append("countdown", true); // 复位完成信号ss List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resetss) { jsonObject.append("reset", reset); } // 是否急停 List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); for (Boolean emergencystop : emergencystops) { jsonObject.append("emergencystop", emergencystop); } } } catch (InterruptedException e) { e.printStackTrace(); } boolean dbconnected = false; try { dbserve.getConn(); springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,7 +17,7 @@ // System.out.println("启动完成"); // new PlcHold().start(); new PlcHoldNew().start(); new PLCAutoMes().start(); // new PLCAutomaticParameterSettingReview2().start(); springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -274,24 +274,8 @@ // 手动添加扫码位玻璃 @PostMapping("/InsertQueueGlassId") public Result InsertQueueGlassId(Short id, @RequestBody Queue queue) { Map<String, Object> map = new HashMap<>(); Short zhi=200; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { map.put("message", "300"); } else { if (id == 1) { // 调用伍存储过程 zhi=spianService.selectAll(queue.getglassId()); if(zhi==200){ homeMapper.InsertQueueGlassId(queue, id); } } map.put("message",zhi); } return Result.success(map); return storageCageService.InsertQueueGlassId(id, queue); } // 确认扫码位玻璃信息 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -216,7 +216,7 @@ Out_slice SelectCurrentFrame(); //根据玻璃id查询任务信息 @Select("select task_type from storage_task where glass_id=#{glassid} and task_state!=2") @Select("select task_type from storage_task where glass_id=#{glassid} and task_state!=1") Short SelectTaskByGlassId(String glassid); //修改格子宽度 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -9,7 +9,9 @@ import org.springframework.stereotype.Service; import com.example.springboot.common.Result; import com.example.springboot.component.Plchome; import com.example.springboot.component.S7control; import com.example.springboot.entity.Queue; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.StorageTask; import com.example.springboot.mapper.HomeMapper; @@ -36,15 +38,16 @@ List<StorageTask> cageList = homeMapper.SelectTaskByState(types); for (StorageTask storageTask : cageList) { // 判断出片任务位置并清除对应玻璃id if ((storageTask.getGlassId().equals(A01glassid1)|| storageTask.getGlassId().equals(A01glassid2))&&DeviceList.get(4)==0) { if ((storageTask.getGlassId().equals(A01glassid1) || storageTask.getGlassId().equals(A01glassid2)) && DeviceList.get(4) == 0) { outSliceServive.StopTask(storageTask.getGlassId(), types); ClearGlassId("DB101.10.0"); } if (storageTask.getGlassId().equals(B01glassid)&&DeviceList.get(2)==0) { } if (storageTask.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) { outSliceServive.StopTask(storageTask.getGlassId(), types); ClearGlassId("DB101.10.2"); } if (storageTask.getGlassId().equals(B02glassid)&&DeviceList.get(3)==0) { } if (storageTask.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) { ClearGlassId("DB101.10.3"); outSliceServive.StopTask(storageTask.getGlassId(), types); } @@ -53,34 +56,34 @@ } else {// 终止出片任务 List<StorageTask> cageLists = homeMapper.SelectTaskByState(types); List<StorageTask> cageList2 = homeMapper.SelectTaskByState(2); if (cageList2.size()>0) { if (cageList2.size() > 0) { cageLists.add(cageList2.get(0)); } for (StorageTask cageList : cageLists) { if (cageList.getTaskType().equals("1")) { System.out.println(DeviceList.get(5)); if(cageList.getGlassId().equals(A02glassid1)&&DeviceList.get(5)==0){ if (cageList.getGlassId().equals(A02glassid1) && DeviceList.get(5) == 0) { outSliceServive.StopTask(cageList.getGlassId(), types); ClearGlassId("DB101.10.1"); } if(cageList.getGlassId().equals(B01glassid)&&DeviceList.get(2)==0){ if (cageList.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) { outSliceServive.StopTask(cageList.getGlassId(), types); ClearGlassId("DB101.10.2"); } if(cageList.getGlassId().equals(B02glassid)&&DeviceList.get(3)==0){ if (cageList.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) { outSliceServive.StopTask(cageList.getGlassId(), types); ClearGlassId("DB101.10.3"); } }else if (cageList.getTaskType().equals("2")) { if(cageList.getGlassId().equals(A02glassid1)&&DeviceList.get(5)==0){ } else if (cageList.getTaskType().equals("2")) { if (cageList.getGlassId().equals(A02glassid1) && DeviceList.get(5) == 0) { outSliceServive.StopTask(cageList.getGlassId(), 2); ClearGlassId("DB101.10.1"); } if(cageList.getGlassId().equals(B01glassid)&&DeviceList.get(2)==0){ if (cageList.getGlassId().equals(B01glassid) && DeviceList.get(2) == 0) { outSliceServive.StopTask(cageList.getGlassId(), 2); ClearGlassId("DB101.10.2"); } if(cageList.getGlassId().equals(B02glassid)&&DeviceList.get(3)==0){ if (cageList.getGlassId().equals(B02glassid) && DeviceList.get(3) == 0) { outSliceServive.StopTask(cageList.getGlassId(), 2); ClearGlassId("DB101.10.3"); } @@ -89,28 +92,29 @@ // List<StorageCage> storageCages = homeMapper.selectinout(3); // for (StorageCage storageCage : storageCages) { // List<StorageCage> storageCagess = homeMapper.SelectStoragesGlassById(storageCage.getGlassId()); // List<StorageCage> storageCagess = // homeMapper.SelectStoragesGlassById(storageCage.getGlassId()); // for (StorageCage storageCagez : storageCagess) { // for (StorageCage storageCagez : storageCagess) { // if (storageCagez.getState().equals("2")) {// 调拨进片 // outSliceServive.StopTask(storageCagez.getGlassId(), 0); // } else {// 出片 // outSliceServive.StopTask(storageCagez.getGlassId(), types); // } // if (storageCagez.getState().equals("2")) {// 调拨进片 // outSliceServive.StopTask(storageCagez.getGlassId(), 0); // } else {// 出片 // outSliceServive.StopTask(storageCagez.getGlassId(), types); // } // // 判断出片任务位置并清除对应玻璃id // if (storageCagez.getGlassId() == A02glassid1&&DeviceList.get(5)==0) { // outSliceServive.StopTask(storageCagez.getGlassId(), types); // ClearGlassId("DB101.10.1"); // } else if (storageCagez.getGlassId() == B01glassid&&DeviceList.get(2)==0) { // outSliceServive.StopTask(storageCagez.getGlassId(), types); // ClearGlassId("DB101.10.2"); // } else if (storageCagez.getGlassId() == B02glassid&&DeviceList.get(3)==0) { // ClearGlassId("DB101.10.3"); // outSliceServive.StopTask(storageCagez.getGlassId(), types); // } // } // // 判断出片任务位置并清除对应玻璃id // if (storageCagez.getGlassId() == A02glassid1&&DeviceList.get(5)==0) { // outSliceServive.StopTask(storageCagez.getGlassId(), types); // ClearGlassId("DB101.10.1"); // } else if (storageCagez.getGlassId() == B01glassid&&DeviceList.get(2)==0) { // outSliceServive.StopTask(storageCagez.getGlassId(), types); // ClearGlassId("DB101.10.2"); // } else if (storageCagez.getGlassId() == B02glassid&&DeviceList.get(3)==0) { // ClearGlassId("DB101.10.3"); // outSliceServive.StopTask(storageCagez.getGlassId(), types); // } // } // } } } @@ -175,4 +179,29 @@ return Result.success(map); } public Result InsertQueueGlassId(Short id, Queue queue) { Map<String, Object> map = new HashMap<>(); if (Plchome.FeedState == false) { Plchome.FeedState = true; Short zhi = 200; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { map.put("message", "300"); } else { if (id == 1) { // 调用伍存储过程 zhi = spianService.selectAll(queue.getglassId()); if (zhi == 200) { homeMapper.InsertQueueGlassId(queue, id); } } map.put("message", zhi); } Plchome.FeedState = false; } else { map.put("message", 200); } return Result.success(map); } } springboot-vue3/src/main/resources/JsonFile/PlcSign.json
@@ -1,5 +1,5 @@ { "plcAddressBegin":"DB100.0.0", "plcAddressBegin":"DB102.0.0", "plcAddressLenght":"11", "dataType":"bit", "parameteInfor":[ @@ -8,7 +8,7 @@ "addressIndex":"0" }, { "codeId": "conveyorVelocity(AutoSLOW)", "codeId": "D01.SRinpos", "addressIndex":"1" }, { @@ -40,7 +40,7 @@ "addressIndex":"9" }, { "codeId": "DO1id", "codeId": "D05.SRinpos", "addressIndex":"10" } ]