CanadaMes-ui/src/lang/locales/en-US.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CanadaMes-ui/src/lang/locales/zh-CN.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CanadaMes-ui/src/layout/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CanadaMes-ui/src/views/home/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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", CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,6 +1,6 @@ { "Clear":"清除", "ip":"localhost", "ip":"192.168.10.21", "systemTitle": "登录系统", "usernamePlaceholder": "请输入用户名", "passwordPlaceholder": "请输入密码", 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/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/Plcalarm.java
@@ -28,7 +28,7 @@ FileInputStream fileInputStream; try { // 从文件中读取字节数据存入 fileInputStream fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json"); fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); // 读取 fileInputStream 中字节并将其解码为字符 InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); // 提高读取效率,在 BufferedReader 内包装 InputStreamReader @@ -37,7 +37,7 @@ // 将 bufferedReader 内容一行一行赋值给str while ((line = bufferedReader.readLine()) != null) { str += line; } }S // 将str字符串格式转为json JSONObject jsonObject = new JSONObject(str); @@ -87,7 +87,7 @@ // Integer Plccount = this.count; // 根据地址读取PCL数据 List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 71); List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 91); // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount); // System.out.println(plclist); // Boolean[] values = { false, false, true, false, true, false, true, false, 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,228 @@ 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)); // 获取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 (S7control.getinstance().CheckConnected() == true) { GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.212", 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.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/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/SpianService.java
@@ -117,6 +117,11 @@ int qidong2 = 0; if (qidong == true) { qidong2 = 1; }else{ while (qidong) { S7control.getinstance().WriteWord("DB105.16", (short) 1);// 出片任务发送字改为1 qidong = listbool("DB105.16"); } } spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier,qidong2);// 新增任务 System.out.println("进片任务|" + datas); @@ -193,6 +198,11 @@ int qidong2 = 0; if (qidong == true) { qidong2 = 1; }else{ while (qidong) { S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 qidong = listbool("DB105.18"); } } spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state, qidong2);// 新增任务 outmesid(glassid, "DB105.34");// 派发出片ID @@ -221,6 +231,11 @@ int qidong2 = 0; if (qidong == true) { qidong2 = 1; }else{ while (qidong) { S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 qidong = listbool("DB105.18"); } } spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1, qidong2);// 新增任务 return (200);// 结束 @@ -259,6 +274,11 @@ int qidong2 = 0; if (qidong == true) { qidong2 = 1; }else{ while (qidong) { S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 qidong = listbool("DB105.18"); } } spianMapper.Inserttask(2, 0, cageout.getId(), ids, glassids, 2, qidong2);// 新增调度任务 @@ -291,6 +311,11 @@ int qidong2 = 2; if (qidong == true) { qidong2 = 1; }else{ while (qidong) { S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 qidong = listbool("DB105.18"); } } spianMapper.Inserttask(2, 0, cageout.getId() + 1, ids, glassids, 2, qidong2);// 新增调度任务 spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里 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); } }