| | |
| | | {
|
| | | "Clear":"Clear",
|
| | | "ip":"10.168.10.21",
|
| | | "ip":"localhost",
|
| | | "systemTitle": "Login System",
|
| | | "usernamePlaceholder": "Please enter username",
|
| | | "passwordPlaceholder": "Please enter password",
|
| | |
| | | {
|
| | | "Clear":"清除",
|
| | | "ip":"10.168.10.21",
|
| | | "ip":"localhost",
|
| | | "systemTitle": "登录系统",
|
| | | "usernamePlaceholder": "请输入用户名",
|
| | | "passwordPlaceholder": "请输入密码",
|
| | |
| | | </label>
|
| | | </div>
|
| | | </div>
|
| | | <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;">
|
| | | <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
|
| | | <!-- <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"
|
| | | :class="ManuallyInfeedGlass == true ? 'hide' : ''"></el-input> -->
|
| | | <el-button type="primary" @click="SelectGlassByGlassIDs()" :disabled="ManuallyInfeedGlass"
|
| | |
| | | {{ $t('Manually Infeed Glass') }}</el-button>
|
| | | <el-button type="primary" @click="showform2()" :disabled="OrderInfo"
|
| | | :class="OrderInfo == true ? 'hide' : ''">{{ $t('Order Info')
|
| | | }}</el-button>
|
| | | <el-button type="primary" @click="showcageinfo(1)" :disabled="OrderInfo"
|
| | | :class="CageDetails == true ? 'hide' : ''">{{ $t('Cage Details')
|
| | | }}</el-button>
|
| | | <el-button type="primary" @click="showform6()" :disabled="OutingQueue"
|
| | | :class="OutingQueue == true ? 'hide' : ''">
|
| | |
| | | <el-table-column :min-width="180" prop="glassId"
|
| | | :label="$t('Outfeed glass barcode')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')">
|
| | | <template slot-scope='scope'>
|
| | | {{ (scope.row.cage - 1) * 21 + scope.row.cell }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
|
| | |
| | | <el-table-column :min-width="180" prop="glassId"
|
| | | :label="$t('Infeed glass barcode')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')">
|
| | | <template slot-scope='scope'>
|
| | | {{ (scope.row.cage - 1) * 21 + scope.row.cell }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
|
| | |
| | | <el-table :data="cageinfo.slice((currentPages - 1) * pagesizes, currentPages * pagesizes)" :height="700"
|
| | | border style="width: 100%;overflow: auto;">
|
| | | <el-table-column :min-width="50" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')">
|
| | | <template slot-scope='scope'>
|
| | | {{ (scope.row.cage - 1) * 21 + scope.row.cell }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :min-width="55" prop="tier" :label="$t('The Side')">
|
| | | <template slot-scope='scope'>
|
| | | {{
|
| | |
| | | {{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }}</el-button>
|
| | | </el-form-item>
|
| | | <el-form-item>
|
| | | {{ $t('Current State') }}:{{ this.Scanningmethod == false ? $t('Automatic') : |
| | | $t('Hand Movement') }}
|
| | | {{ $t('Current State') }}:{{ this.Scanningmethod == false ? $t('Automatic') :
|
| | | $t('Hand Movement') }}
|
| | | <el-button type="primary" @click="SwitchScanMethod()">{{ $t('Switch')
|
| | | }}</el-button>
|
| | | </el-form-item>
|
| | |
| | | <el-table-column prop="glasslength" :label="$t('Length')"></el-table-column>
|
| | | <el-table-column prop="glassheight" :label="$t('Width')"></el-table-column>
|
| | | <el-table-column prop="storageCage.cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.cell" :label="$t('Slot No')">
|
| | | <template slot-scope='scope'>
|
| | | {{ (scope.row.cage - 1) * 21 + scope.row.cell }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="storageCage.tier" :label="$t('The Side')">
|
| | | <template slot-scope='scope'>
|
| | | {{
|
| | |
| | | DeviceList: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
| | | GlassIdList: [],
|
| | | Scanningmethod: true,
|
| | | CurrrentGlassId: ""
|
| | | CurrrentGlassId: "",
|
| | | feedglassid:"",
|
| | | count1:0,
|
| | | count2:1
|
| | | };
|
| | | },
|
| | | created() {
|
| | | this.load();
|
| | |
|
| | | // setInterval(() => {
|
| | | // if(this.count1<this.count2){
|
| | | // this.count1=this.count2;
|
| | | // }else{
|
| | | // const now = new Date();
|
| | | // console.log(now);
|
| | | // alert("websocket停止"+now);
|
| | | // }
|
| | | // }, 3000);
|
| | | },
|
| | | activated() {
|
| | | this.init();
|
| | |
| | | };
|
| | | // 浏览器端收消息,获得从服务端发送过来的文本消息
|
| | | socket.onmessage = function (msg) {
|
| | | this.count2=this.count2+1;
|
| | | //console.log("收到数据====" + msg.data);
|
| | | let obj = JSON.parse(msg.data);
|
| | | if (obj.params != null) {
|
| | |
| | | }
|
| | | //获取待确认的铝框玻璃信息
|
| | | if (obj.AluminumFrame != null) {
|
| | | |
| | | this.AluminumFrame = obj.AluminumFrame[0];
|
| | | if (this.dialogFormVisible6 == true) {
|
| | | this.dialogFormVisible7 = true;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | if(obj.feedglassid!=null){
|
| | | this.feedglassid=obj.feedglassid[0];
|
| | | }
|
| | |
|
| | | // if (obj.alarmmg[0].length > 0) {
|
| | | // if (this.alarm.length > 0) {
|
| | |
| | | //手动上片
|
| | | sbumitglassid() {
|
| | | if (this.form.order != "") {
|
| | | if (this.form.height < 380 || this.form.width < 390 || this.form.height > 1810 || this.form.width > 2760) {
|
| | | let width=0;
|
| | | let height=0;
|
| | | if(this.form.glassheight<this.form.glasswidth){
|
| | | width=this.form.glasswidth;
|
| | | height=this.form.glassheight;
|
| | | }else{
|
| | | height=this.form.glasswidth;
|
| | | width=this.form.glassheight;
|
| | | }
|
| | | if (height < 380 || width < 380 || height > 1810 || width > 2760) {
|
| | | this.$message.error(this.$t('The glass size is not within the range'));
|
| | | } else {
|
| | | if (this.zhuangtai == true) {
|
| | |
| | | },
|
| | | //显示客户玻璃信息
|
| | | showform2() {
|
| | | SelectGlass(this.orderid).then(res => {
|
| | | this.GlassInfo = res.data.glass;
|
| | | });
|
| | | // SelectGlass(this.orderid).then(res => {
|
| | | // this.GlassInfo = res.data.glass;
|
| | | // });
|
| | | this.dialogFormVisible4 = true;
|
| | | },
|
| | | //显示出片队列
|
| | |
| | | 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'));
|
| | | this.$message.error(this.$t('There is no such slot'));
|
| | | } else {
|
| | | this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
|
| | | }
|
| | |
| | | },
|
| | | //判断玻璃是否超出范围
|
| | | Sizerange(Glass, position) {
|
| | | console.log(position);
|
| | | if (this.ManuallyInfeedGlass == false) {
|
| | | if ((Glass.glassheight < 380 || Glass.glasswidth < 390 || Glass.glassheight > 1810 || Glass.glasswidth > 2760) || (Glass.glassheight < 390 || Glass.glasswidth < 380 || Glass.glassheight > 2760 || Glass.glasswidth > 1810)) {
|
| | | let width=0;
|
| | | let height=0;
|
| | | if(Glass.glassheight<Glass.glasswidth){
|
| | | width=Glass.glasswidth;
|
| | | height=Glass.glassheight;
|
| | | }else{
|
| | | height=Glass.glasswidth;
|
| | | width=Glass.glassheight;
|
| | | }
|
| | | if (height < 380 || width < 380 || height > 1810 || width > 2760) {
|
| | | this.$alert(this.$t('The glass size is not within the range'), this.$t('confirm'), {
|
| | | confirmButtonText: this.$t('Yes'),
|
| | | type: 'info',
|
| | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | |
| | | |
| | | public PLCAutomaticParameterSetting() throws IOException { |
| | | config = new Configuration("config.properties"); |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | // System.out.println(stt); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<Short> arraylist = S7control.getinstance().ReadWord("DB100.120", 8); |
| | | List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1); |
| | | List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1); |
| | | List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1); |
| | | List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(",")); |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses); |
| | | // System.out.println("lastMessage:" + arraylist2); |
| | | // 翻转 |
| | | List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1); |
| | | List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1); |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
| | | // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1)); |
| | | // Short[] fanzhuan = { 4 }; |
| | | // List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan)); |
| | | // Short[] dache = { 5 }; |
| | | // List<Short> dache1 = new ArrayList<>(Arrays.asList(dache)); |
| | | // Short[] xiaoche = { 6 }; |
| | | // List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche)); |
| | | // |
| | | // Short[] values2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; |
| | | // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // Short[] fanzhuan22 = { 4 }; |
| | | // List<Short> fanzhuan2 = new ArrayList<>(Arrays.asList(fanzhuan22)); |
| | | // Short[] xiaoche22 = {5}; |
| | | // List<Short> xiaoche2 = new ArrayList<>(Arrays.asList(xiaoche22)); |
| | | |
| | | // System.out.println(stt); |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5} |
| | | // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0} |
| | | |
| | | List<Short> arraylist = S7control.getinstance().ReadWord("DB100.120", 8); |
| | | List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1); |
| | | List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1); |
| | | List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1); |
| | | List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(",")); |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses); |
| | | //System.out.println("lastMessage:" + arraylist2); |
| | | //翻转 |
| | | List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1); |
| | | List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1); |
| | | jsonObject.append("params", arraylist); |
| | | jsonObject.append("dache1", dache1); |
| | | jsonObject.append("xiaoche", xiaoche1); |
| | | jsonObject.append("fanzhuan", fanzhuan1); |
| | | jsonObject.append("params2", arraylist2); |
| | | jsonObject.append("fanzhuan2", fanzhuan2); |
| | | jsonObject.append("xiaoche2", xiaoche2); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
| | | // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1)); |
| | | // Short[] fanzhuan = { 4 }; |
| | | // List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan)); |
| | | // Short[] dache = { 5 }; |
| | | // List<Short> dache1 = new ArrayList<>(Arrays.asList(dache)); |
| | | // Short[] xiaoche = { 6 }; |
| | | // List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche)); |
| | | // |
| | | // Short[] values2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; |
| | | // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // Short[] fanzhuan22 = { 4 }; |
| | | // List<Short> fanzhuan2 = new ArrayList<>(Arrays.asList(fanzhuan22)); |
| | | // Short[] xiaoche22 = {5}; |
| | | // List<Short> xiaoche2 = new ArrayList<>(Arrays.asList(xiaoche22)); |
| | | // WebSocketServer webSocketServer = |
| | | // WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | String addressList1 = "DB100.120"; |
| | | String addressList2 = "DB100.18"; |
| | | String addressList3 = "DB100.22"; |
| | | String addressList4 = "DB100.14"; |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5} |
| | | // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0} |
| | | |
| | | jsonObject.append("params", arraylist); |
| | | jsonObject.append("dache1", dache1); |
| | | jsonObject.append("xiaoche", xiaoche1); |
| | | jsonObject.append("fanzhuan", fanzhuan1); |
| | | jsonObject.append("params2", arraylist2); |
| | | jsonObject.append("fanzhuan2", fanzhuan2); |
| | | jsonObject.append("xiaoche2", xiaoche2); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | String addressList1 = "DB100.120"; |
| | | String addressList2 = "DB100.18"; |
| | | String addressList3 = "DB100.22"; |
| | | String addressList4 = "DB100.14"; |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | // 整合第 1 到 2 个数组并去掉 null 元素 |
| | | List<Short> mergedList = new ArrayList<>(); |
| | | for (int i = 0; i < 2; i++) { |
| | | JSONArray sublist = messageArray.getJSONArray(i); |
| | | for (int j = 0; j < sublist.size(); j++) { |
| | | Object value = sublist.get(j); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | mergedList.add(sValue); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | System.out.println(messageArray); |
| | | // 写入第一个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList2,2); |
| | | // 写入第二个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList3,3); |
| | | // 写入第三个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList4,4); |
| | | // 写入第四个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addressList1, mergedList); |
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList1); |
| | | } |
| | | |
| | | List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(",")); |
| | | String addressList22 = "DB100.8"; |
| | | String addressList33 = "DB100.12"; |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList2 = new ArrayList<>(); |
| | | for (int i = 5; i < 8; i++) { |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | // 整合第 1 到 2 个数组并去掉 null 元素 |
| | | List<Short> mergedList = new ArrayList<>(); |
| | | for (int i = 0; i < 2; i++) { |
| | | JSONArray sublist = messageArray.getJSONArray(i); |
| | | for (int j = 0; j < sublist.size(); j++) { |
| | | Object value = sublist.get(j); |
| | |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | mergedList2.add(sValue); |
| | | mergedList.add(sValue); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第伍个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList22,8); |
| | | // 写入第六个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList33,9); |
| | | // 写入第七个地址 |
| | | if (!mergedList2.isEmpty()) { |
| | | S7control.getinstance().WriteWord(waddresses1, mergedList2); |
| | | System.out.println("messageValue:" + mergedList2 + " written to PLC at address " + waddresses1); |
| | | System.out.println(messageArray); |
| | | // 写入第一个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList2, 2); |
| | | // 写入第二个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList3, 3); |
| | | // 写入第三个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList4, 4); |
| | | // 写入第四个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addressList1, mergedList); |
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList1); |
| | | } |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | |
| | | List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(",")); |
| | | String addressList22 = "DB100.8"; |
| | | String addressList33 = "DB100.12"; |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList2 = new ArrayList<>(); |
| | | for (int i = 5; i < 8; i++) { |
| | | JSONArray sublist = messageArray.getJSONArray(i); |
| | | for (int j = 0; j < sublist.size(); j++) { |
| | | Object value = sublist.get(j); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | mergedList2.add(sValue); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第伍个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList22, 8); |
| | | // 写入第六个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList33, 9); |
| | | // 写入第七个地址 |
| | | if (!mergedList2.isEmpty()) { |
| | | S7control.getinstance().WriteWord(waddresses1, mergedList2); |
| | | System.out.println("messageValue:" + mergedList2 + " written to PLC at address " + waddresses1); |
| | | } |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | |
| | | while (this != null) {
|
| | | try {
|
| | | Thread.sleep(500);
|
| | |
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
|
| | | List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
|
| | | List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
|
| | |
|
| | |
|
| | |
| | | }
|
| | |
|
| | | }
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | |
| | |
|
| | | }
|
| | | }
|
| | |
| | | import java.sql.SQLException; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.ArrayList; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.example.springboot.service.JdbcConnections; |
| | | import com.example.springboot.service.SpianService; |
| | | |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.north_glass_buffer1; |
| | | import com.example.springboot.mapper.AlarmMapper; |
| | | import com.example.springboot.mapper.SpianMapper; |
| | | |
| | | public class PlcHold extends Thread { |
| | | |
| | | private AlarmMapper alarmMapper; |
| | | |
| | | @Autowired |
| | | private JdbcConnections jdbcConnections; |
| | |
| | | |
| | | while (this != null) { |
| | | try { |
| | | |
| | | Thread.sleep(100); |
| | | } catch (InterruptedException e) { |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // if (S7control.getinstance().CheckConnected() == false) { |
| | | spianService.result=new ArrayList<>(); |
| | | Thread.sleep(300); |
| | | // if (S7control.getinstance().CheckConnected() == false) { |
| | | spianService = WebSocketServer.applicationContext.getBean(SpianService.class); |
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); |
| | | |
| | |
| | | // // TODO Auto-generated catch block |
| | | // e.printStackTrace(); |
| | | // } |
| | | //spianService.selectout2("X12345610102GV"); |
| | | |
| | | |
| | | // 出片任务//////////////////////////////// |
| | | //spianService.selectout2("X21942613103GV"); |
| | | |
| | | // spianService.selectout2("X21942610602GV"); |
| | | |
| | | List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 出片车状态 |
| | | List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 出片任务是否启动 |
| | | |
| | |
| | | // 当有待出片的玻璃时 |
| | | if (outglassid != null) { |
| | | // 获取该玻璃是否被禁用 |
| | | int glassdisabled = spianMapper.SelectCageGlassState(outglassid); |
| | | // 未禁用下发任务 |
| | | if (glassdisabled == 0) { |
| | | StorageCage glassdisabled = spianMapper.SelectCageGlassState(outglassid); |
| | | if(glassdisabled!=null){ |
| | | // 未禁用下发任务 |
| | | if (glassdisabled.getDisabled() == 0) { |
| | | spianService.selectout2(outglassid); |
| | | Plchome.isQueueWarning = false; |
| | | } else { // 禁用更改状态弹出提示 |
| | | Plchome.isQueueWarning = true; |
| | | System.out.println("禁用" + outglassid); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | if (HB > 0) { |
| | | // 当B01小车汇报完成时更改玻璃状态 为1 |
| | | S7control.getinstance().WriteWord("DB105.48", (short) 1);// 恢复B01小车应答改为1 |
| | | boolean yingda = spianService.listbool("DB105.48");// b01汇报 |
| | | boolean yingda = spianService.listbool("DB105.48");// b01应答 |
| | | if (yingda == true) { |
| | | spianService.overtask(B01glassid.toString());// 完成任务 |
| | | } |
| | | System.out.println("汇报时B01|第" + aaa + "次" + B01glassid + "应答" + yingda); |
| | | aaa += 1; |
| | | System.out.println("汇报时B01|" + B01glassid + "应答" + yingda); |
| | | Plchome.feedglassid=B01glassid; |
| | | }else{ |
| | | S7control.getinstance().WriteWord("DB105.48", (short) 1);// 恢复B01小车应答改为1 |
| | | System.out.println("HB:|" + HB+"glassid|"+B01glassid); |
| | | } |
| | | |
| | | }else{ |
| | |
| | | if (B02backs == true) { |
| | | // 判断是否汇报正确的id |
| | | int HB = spianMapper.SelectHB(B02glassid.toString()); |
| | | System.out.println("汇报时B02|" + B02glassid); |
| | | System.out.println("huibaoshiB02ID|" + B02glassid); |
| | | if (HB > 0) { |
| | | // 当B02小车汇报完成时更改玻璃状态为0 |
| | | |
| | | S7control.getinstance().WriteWord("DB105.50", (short) 1);// 恢复B02小车应答改为1 |
| | | System.out.println("汇报时B02ID|" + B02glassid); |
| | | boolean yingda = spianService.listbool("DB105.50");// b02汇报 |
| | | if (yingda == true) { |
| | | if (yingda == true) { |
| | | spianService.overtask(B02glassid.toString());// 完成任务 |
| | | } |
| | | System.out.println("汇报时B02|第" + aaa + "次" + B02glassid + "应答" + yingda); |
| | | System.out.println("汇报时B02|" + B02glassid + "应答" + yingda); |
| | | Plchome.feedglassid=B01glassid; |
| | | }else{ |
| | | S7control.getinstance().WriteWord("DB105.50", (short) 1);// 恢复B02小车应答改为1 |
| | | System.out.println("HB:|" + HB+"glassid|"+B02glassid); |
| | | } |
| | | }else{ |
| | | S7control.getinstance().WriteWord("DB105.50", (short) 0);// 恢复B02小车应答改为0 |
| | |
| | | StringBuilder queueid2 = spianService.queGlassid("DB103.58", 14); |
| | | |
| | | int questate = spianMapper.Selectquecount(queueid1.toString());// 判断扫码位是否有玻璃已确认 |
| | | // queueid1.toString().isEmpty() |
| | | //queueid1.toString().isEmpty(); |
| | | // north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());// D01的玻璃信息 |
| | | // north_glass_buffer1 glass2 = spianMapper.selectGlass(queueid2.toString());// D02玻璃信息 |
| | | north_glass_buffer1 glass1=null; |
| | | north_glass_buffer1 glass2=null; |
| | | |
| | | north_glass_buffer1 glass1 =new north_glass_buffer1(); |
| | | north_glass_buffer1 glass2 =new north_glass_buffer1(); |
| | | |
| | | try { |
| | | glass1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queueid1.toString(),"","");// D01玻璃信息 |
| | | glass2 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queueid2.toString(),"","");// D02玻璃信息 |
| | | if(queueid1.toString()!=""){ |
| | | glass1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid1.toString(),"","");// D01玻璃信息 |
| | | } |
| | | if(queueid2.toString()!=""){ |
| | | glass2 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid2.toString(),"","");// D02玻璃信息 |
| | | } |
| | | |
| | | } catch (SQLException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | // 当扫码位玻璃id为空时 宽度为0 |
| | | if (queueid1 != null && questate == 0) { |
| | | // 写入D01的数据到上片队列表 |
| | | if (glass1 == null) { // 当没有值时传空 |
| | | if (glass1 == null ||glass1.getordernumber()==null) { // 当没有值时传空 |
| | | spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 1); |
| | | } else { |
| | | |
| | |
| | | |
| | | if (queueid2 != null) { |
| | | // 写入D02的数据到上片队列表 |
| | | if (glass2 == null) { |
| | | if (glass2 == null ||glass2.getordernumber()==null) { |
| | | spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 2); |
| | | } else { |
| | | spianMapper.Updatequeue(queueid2.toString(), glass2.getordernumber(), glass2.getlistnumber(), |
| | |
| | | } |
| | | |
| | | } |
| | | System.out.println(spianService.result); |
| | | |
| | | // 查询数据库 |
| | | // 推送到前端 |
| | | |
| | | // } |
| | | } catch (InterruptedException e) { |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | config = new Configuration("config.properties"); |
| | | } |
| | | |
| | | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(100); |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | |
| | | List<String> addresses = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.MESImporttask").split(",")); |
| | | |
| | | List<String> arraylist = S7control.getinstance().readStringsandword(addresses); |
| | | // System.out.println(arraylist); |
| | | List<String> addresses2 = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.PLCImporttask").split(",")); |
| | | |
| | | List<String> arraylist2 = S7control.getinstance().readStringsandword(addresses2); |
| | | |
| | | List<String> addresses3 = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.MESProductiontask").split(",")); |
| | | |
| | | List<String> arraylist3 = S7control.getinstance().readStringsandword(addresses3); |
| | | |
| | | List<String> addresses4 = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.PLCProductiontask").split(",")); |
| | | |
| | | List<String> arraylist4 = S7control.getinstance().readStringsandword(addresses4); |
| | | |
| | | List<String> addresses5 = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.MEStaskinformation").split(",")); |
| | | List<String> arraylist5 = S7control.getinstance().readStringsandword(addresses5); |
| | | |
| | | List<String> addresses6 = Arrays |
| | | .asList(config.getProperty("PlcInteractionState.MEStaskinformation2").split(",")); |
| | | List<String> arraylist6 = S7control.getinstance().readStringsandword(addresses6); |
| | | |
| | | // String[] values = { ".x11","x21 ","x21 ","x21 ","x21 ","x21"}; |
| | | // List<String> arraylist = new ArrayList<>(Arrays.asList(values)); |
| | | // String[] values2 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // String[] values3 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // String[] values4 = { ".x11 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // String[] values5 = { ".x11 ","x21 ","x21 ","b02","x21 ","x21 "}; |
| | | // List<String> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | // |
| | | // String[] values6 = { "x21 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist6 = new ArrayList<>(Arrays.asList(values6)); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // System.out.println(arraylist6); |
| | | JSONArray jsonArray = new JSONArray(); |
| | | jsonArray.put(arraylist); |
| | | jsonArray.put(arraylist2); |
| | | jsonArray.put(arraylist3); |
| | | jsonArray.put(arraylist4); |
| | | jsonArray.put(arraylist5); |
| | | jsonArray.put(arraylist6); |
| | | jsonObject.put("zuhe1", jsonArray); |
| | | |
| | | // WebSocketServer sendwServer = |
| | | // WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("InteractionState"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | |
| | | |
| | | |
| | | List<String> addresses = Arrays.asList(config.getProperty("PlcInteractionState.MESImporttask").split(",")); |
| | | |
| | | List<String> arraylist = S7control.getinstance().readStringsandword(addresses); |
| | | // System.out.println(arraylist); |
| | | List<String> addresses2 = Arrays.asList(config.getProperty("PlcInteractionState.PLCImporttask").split(",")); |
| | | |
| | | List<String> arraylist2 = S7control.getinstance().readStringsandword(addresses2); |
| | | |
| | | List<String> addresses3 = Arrays.asList(config.getProperty("PlcInteractionState.MESProductiontask").split(",")); |
| | | |
| | | List<String> arraylist3 = S7control.getinstance().readStringsandword(addresses3); |
| | | |
| | | |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("PlcInteractionState.PLCProductiontask").split(",")); |
| | | |
| | | List<String> arraylist4 = S7control.getinstance().readStringsandword(addresses4); |
| | | |
| | | |
| | | List<String> addresses5 = Arrays.asList(config.getProperty("PlcInteractionState.MEStaskinformation").split(",")); |
| | | List<String> arraylist5 = S7control.getinstance().readStringsandword(addresses5); |
| | | |
| | | List<String> addresses6 = Arrays.asList(config.getProperty("PlcInteractionState.MEStaskinformation2").split(",")); |
| | | List<String> arraylist6 = S7control.getinstance().readStringsandword(addresses6); |
| | | |
| | | |
| | | // String[] values = { ".x11","x21 ","x21 ","x21 ","x21 ","x21"}; |
| | | // List<String> arraylist = new ArrayList<>(Arrays.asList(values)); |
| | | // String[] values2 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // String[] values3 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // String[] values4 = { ".x11 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // String[] values5 = { ".x11 ","x21 ","x21 ","b02","x21 ","x21 "}; |
| | | // List<String> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | // |
| | | // String[] values6 = { "x21 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist6 = new ArrayList<>(Arrays.asList(values6)); |
| | | |
| | | |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // System.out.println(arraylist6); |
| | | JSONArray jsonArray = new JSONArray(); |
| | | jsonArray.put(arraylist); |
| | | jsonArray.put(arraylist2); |
| | | jsonArray.put(arraylist3); |
| | | jsonArray.put(arraylist4); |
| | | jsonArray.put(arraylist5); |
| | | jsonArray.put(arraylist6); |
| | | jsonObject.put("zuhe1", jsonArray); |
| | | |
| | | |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("InteractionState"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // 注入mapper |
| | | |
| | | // 注入mapper |
| | | homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); |
| | | |
| | | homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); |
| | | if (S7control.getinstance().CheckConnected() == true) { |
| | | |
| | | // 查询报警信息 |
| | | List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); |
| | | jsonObject.append("alarmmg", alarmmg); |
| | | |
| | | if (S7control.getinstance().CheckConnected() == true) { |
| | | |
| | | |
| | | |
| | | // 查询报警信息 |
| | | List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); |
| | | jsonObject.append("alarmmg", alarmmg); |
| | | // 复位倒计时 |
| | | // 地址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); |
| | | } |
| | | |
| | | // 复位倒计时 |
| | | // 地址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); |
| | | } |
| | | |
| | | } |
| | | |
| | | // jsonObject.append("params", new short[] { 30, 40, }); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | if (webserver != null) { |
| | | |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // // 将最后一个消息转换为整数类型的列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | |
| | | // 是否急停 |
| | | List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); |
| | | for (Boolean emergencystop : emergencystops) { |
| | | jsonObject.append("emergencystop", emergencystop); |
| | | } |
| | | |
| | | } |
| | | |
| | | // jsonObject.append("params", new short[] { 30, 40, }); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | if (webserver != null) { |
| | | |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // // 将最后一个消息转换为整数类型的列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(500); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | // this.readValue(); |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | while (this != null) {
|
| | | try {
|
| | | Thread.sleep(500);
|
| | |
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | // this.readValue();
|
| | | // this.readValue();
|
| | | // String PlcAddress = this.name;
|
| | | // Integer Plccount = this.count;
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | |
| | | }
|
| | | }
|
| | | }
|
| | |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | |
| | | public class PlcParameter2 extends Thread { |
| | | @Autowired |
| | | StorageCageService storageCageService; |
| | |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | | |
| | | |
| | | public PlcParameter2() throws IOException { |
| | | config = new Configuration("config.properties"); |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | 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(paramlist); |
| | | // 手动状态 |
| | | List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(",")); |
| | | List<Short> data = S7control.getinstance().readWords(addresses); |
| | | // 清除id |
| | | List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(",")); |
| | | // 扫码枪 |
| | | List<Boolean> data2 = S7control.getinstance().readBits(addressList0); |
| | | List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(",")); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | 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(paramlist); |
| | | //手动状态 |
| | | List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(",")); |
| | | List<Short> data = S7control.getinstance().readWords(addresses); |
| | | //清除id |
| | | List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(",")); |
| | | // 扫码枪 |
| | | List<Boolean> data2 = S7control.getinstance().readBits(addressList0); |
| | | List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(",")); |
| | | // 急停按钮 |
| | | List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(",")); |
| | | List<String> timeout = Arrays.asList(config.getProperty("Parameter2.timeout").split(",")); |
| | | String timeout2 = config.getProperty("Parameter2.timeout"); |
| | | |
| | | //急停按钮 |
| | | List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(",")); |
| | | List<String> timeout = Arrays.asList(config.getProperty("Parameter2.timeout").split(",")); |
| | | String timeout2 = config.getProperty("Parameter2.timeout"); |
| | | Long readtimeout = S7control.getinstance().readtime(timeout2); |
| | | List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); |
| | | List<String> data3 = S7control.getinstance().readStrings(addressList3); |
| | | // A01 A02 B01 B02 |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(",")); |
| | | 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); |
| | | |
| | | Long readtimeout = S7control.getinstance().readtime(timeout2); |
| | | List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); |
| | | List<String> data3 = S7control.getinstance().readStrings(addressList3); |
| | | // A01 A02 B01 B02 |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(",")); |
| | | 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); |
| | | // |
| | | |
| | | // |
| | | // String[] values6 = { ".x1 ","x2 |
| | | // ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"}; |
| | | // List<String> paramlist = new ArrayList<>(Arrays.asList(values6)); |
| | | // Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}; |
| | | // List<Short> data = new ArrayList<>(Arrays.asList(values1)); |
| | | // Boolean[] value4 = { false, false, false, false, false, false, false, false, |
| | | // false, |
| | | // false}; |
| | | // List<Boolean> data2 = new ArrayList<>(Arrays.asList(value4)); |
| | | // String[] values3 = { ".x11 ","x21 "}; |
| | | // List<String> data3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // Short[] values4 = { 2,2,3,4}; |
| | | // 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(); |
| | | jsonObject.append("params", params); |
| | | jsonObject.append("params", paramlist); |
| | | jsonObject.append("params", data); |
| | | jsonObject.append("params", data3); |
| | | jsonObject.append("params", data4); |
| | | jsonObject.append("jiting", anniuparams); |
| | | jsonObject.append("timeout", readtimeout); |
| | | |
| | | // |
| | | // WebSocketServer sendwServer = |
| | | // WebSocketServer.getWebSocketServer("Parameter2"); |
| | | // if (sendwServer != null) { |
| | | // JSONObject jsonObject = new JSONObject(); |
| | | // jsonObject.set("message", "Hello, Parameter2!"); |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | // HomeController controller = new HomeController(); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // |
| | | // String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"}; |
| | | // List<String> paramlist = new ArrayList<>(Arrays.asList(values6)); |
| | | // Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}; |
| | | // List<Short> data = new ArrayList<>(Arrays.asList(values1)); |
| | | // Boolean[] value4 = { false, false, false, false, false, false, false, false, false, |
| | | // false}; |
| | | // List<Boolean> data2 = new ArrayList<>(Arrays.asList(value4)); |
| | | // String[] values3 = { ".x11 ","x21 "}; |
| | | // List<String> data3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // Short[] values4 = { 2,2,3,4}; |
| | | // 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(); |
| | | jsonObject.append("params", params); |
| | | jsonObject.append("params", paramlist); |
| | | jsonObject.append("params", data); |
| | | jsonObject.append("params", data3); |
| | | jsonObject.append("params", data4); |
| | | jsonObject.append("jiting", anniuparams); |
| | | jsonObject.append("timeout", readtimeout); |
| | | if (webserver != null) { |
| | | |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | // WebSocketServer sendwServer = WebSocketServer.getWebSocketServer("Parameter2"); |
| | | // if (sendwServer != null) { |
| | | // JSONObject jsonObject = new JSONObject(); |
| | | // jsonObject.set("message", "Hello, Parameter2!"); |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | // HomeController controller = new HomeController(); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | 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); |
| | | |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(0).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(0); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println( |
| | | "messageValue: " + Arrays.asList(val) |
| | | + " added to the list"); |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | // 完成出片 |
| | | 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); |
| | | // 判断是否自动状态 |
| | | 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 (webserver != null) { |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | 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); |
| | | |
| | | |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(0).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(0); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list"); |
| | | |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(addressList0, sValue); |
| | | System.out |
| | | .println("Values " + sValue + " written to PLC at address " |
| | | + addressList0); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //完成出片 |
| | | 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); |
| | | //判断是否自动状态 |
| | | 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; |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | } |
| | | |
| | | // 急停 |
| | | // customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1); |
| | | |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(1); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println( |
| | | "messageValue: " + Arrays.asList(val) |
| | | + " added to the list"); |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | // 终止进片任务 |
| | | boolean Value1 = sValue.get(0); |
| | | boolean Value2 = sValue.get(1); |
| | | |
| | | if (Value1) { |
| | | storageCageService.EndTask(0); |
| | | |
| | | } |
| | | if (Value2) { |
| | | storageCageService.EndTask(1); |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | 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(niuanaddressList3, sValue); |
| | | System.out.println( |
| | | "Values " + sValue + " written to PLC at address " |
| | | + niuanaddressList3); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | |
| | | // 存片等待延迟 |
| | | customS7Control.Writetime(messageArray, timeout2, 2); |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | |
| | | |
| | | //急停 |
| | | // customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1); |
| | | |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(1); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list"); |
| | | |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | // 终止进片任务 |
| | | boolean Value1 = sValue.get(0); |
| | | boolean Value2 = sValue.get(1); |
| | | |
| | | if (Value1) { |
| | | storageCageService.EndTask(0); |
| | | |
| | | } |
| | | if (Value2) { |
| | | storageCageService.EndTask(1); |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(niuanaddressList3, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + niuanaddressList3); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | } |
| | | |
| | | |
| | | //存片等待延迟 |
| | | customS7Control.Writetime(messageArray, timeout2, 2); |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象
|
| | | MessageHandler customS7Control = new MessageHandler();
|
| | |
|
| | |
|
| | | public PlcPositioning1() throws IOException {
|
| | | config = new Configuration("config.properties");
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void run() {
|
| | | while (this != null) {
|
| | | try {
|
| | | Thread.sleep(1000);
|
| | |
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | |
|
| | | // System.out.println(stt);
|
| | | //存片格 出片格读取
|
| | | // System.out.println(stt);
|
| | | // 存片格 出片格读取
|
| | |
|
| | | String address = config.getProperty("PlcPositioning1.address");
|
| | | List<Short> arraylist = S7control.getinstance().ReadWord(address, 33);
|
| | | // System.out.println(arraylist);
|
| | | List<Short> arraylist = S7control.getinstance().ReadWord(address, 33);
|
| | | // System.out.println(arraylist);
|
| | |
|
| | |
|
| | | // 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));
|
| | | // 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);
|
| | |
| | | arraylist5.addAll(arraylist8);
|
| | | JSONObject jsonObject = new JSONObject();
|
| | |
|
| | |
|
| | | jsonObject.append("params", arraylist);
|
| | | jsonObject.append("shishi1", arraylist5);
|
| | |
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | |
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | |
|
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | // WebSocketServer webSocketServer =
|
| | | // WebSocketServer.sessionMap.get("Positioning1");
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | if (sendwServer != null) {
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | |
| | |
|
| | | if (webserver != null) {
|
| | | List<String> messages = webserver.getMessages();
|
| | | //存片格 出片格地址
|
| | |
|
| | | // 存片格 出片格地址
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | |
|
| | | // 整合第 1 到 3 个数组并去掉 null 元素
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | // 写入存片格 出片格位置设定数据
|
| | | // 写入存片格 出片格位置设定数据
|
| | | if (!mergedList.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(address, mergedList);
|
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + address);
|
| | | System.out.println(
|
| | | "messageValue:" + mergedList + " written to PLC at address " + address);
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | |
| | | }
|
| | | }
|
| | | }
|
| | |
| | | |
| | | public class PlcServoManualone extends Thread { |
| | | |
| | | |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | |
| | | |
| | | public PlcServoManualone() throws IOException { |
| | | config = new Configuration("config.properties"); |
| | | } |
| | | |
| | | //将布尔列表转换为二进制的 short 数组 |
| | | // 将布尔列表转换为二进制的 short 数组 |
| | | public static class PLCBooleanConverter { |
| | | |
| | | public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) { |
| | |
| | | } |
| | | } |
| | | |
| | | //读取id |
| | | // 读取id |
| | | public StringBuilder queGlassid(String address, int count) { |
| | | StringBuilder writedstrIdOut = new StringBuilder(); |
| | | byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count); |
| | |
| | | return writedstrIdOut; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | // A01组合中地址表集合 |
| | | List<String> addresses = Arrays.asList(config.getProperty("A01.addresses").split(",")); |
| | | // System.out.println(addresses); |
| | | |
| | | List<Short> arraylist = S7control.getinstance().readWords(addresses); |
| | | |
| | | // A02组合中地址表集合 |
| | | List<String> addresses2 = Arrays.asList(config.getProperty("A02.addresses").split(",")); |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses2); |
| | | |
| | | // A01翻转地址 |
| | | List<String> addresses3 = Arrays.asList(config.getProperty("A01.flipAddress")); |
| | | List<Short> arraylist3 = S7control.getinstance().readWords(addresses3); |
| | | |
| | | // A02翻转地址 |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("A02.flipAddress")); |
| | | |
| | | List<Short> arraylist4 = S7control.getinstance().readWords(addresses4); |
| | | // B01组合中地址 |
| | | String b01Address = config.getProperty("B01.address"); |
| | | List<Short> arraylist5 = S7control.getinstance().ReadWord(b01Address, 2); |
| | | // B02组合地址 |
| | | String b02Address = config.getProperty("B02.address"); |
| | | List<Short> arraylist6 = S7control.getinstance().ReadWord(b02Address, 2); |
| | | // System.out.println(b02Address); |
| | | // 所有故障按钮地址 |
| | | List<String> addresses7 = Arrays.asList(config.getProperty("faultButtonAddresses").split(",")); |
| | | List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7); |
| | | |
| | | // A01启动地址 |
| | | List<String> A01start = Arrays.asList(config.getProperty("A01start")); |
| | | // A02启动地址 |
| | | List<String> A02start = Arrays.asList(config.getProperty("A02start")); |
| | | // A01半自动地址 |
| | | List<String> A01Bstart = Arrays.asList(config.getProperty("A01Bstart")); |
| | | // A02半自动地址 |
| | | List<String> A02Bstart = Arrays.asList(config.getProperty("A02Bstart")); |
| | | // |
| | | List<String> abortresumeTasks = Arrays.asList(config.getProperty("abortresumeTasks")); |
| | | // 回零按钮地址 |
| | | List<String> waddresses4 = Arrays.asList(config.getProperty("HomedButtonAddresses").split(",")); |
| | | // 所有复位按钮地址 |
| | | List<String> Reset = Arrays.asList(config.getProperty("resetButtonAddresses").split(",")); |
| | | // System.out.println(Reset); |
| | | // 所有未回零按钮地址 |
| | | List<String> addresses8 = Arrays.asList(config.getProperty("notHomedButtonAddresses").split(",")); |
| | | // 进片id地址 |
| | | String inputGlassIdAddress = config.getProperty("inputGlassIdAddress"); |
| | | String outputGlassIdAddress = config.getProperty("outputGlassIdAddress"); |
| | | StringBuilder queueid1 = queGlassid(inputGlassIdAddress, 14); |
| | | // 存片id地址 |
| | | StringBuilder queueid2 = queGlassid(outputGlassIdAddress, 14); |
| | | // A01 A02启动 半自动启动 |
| | | List<Boolean> A01readstart = S7control.getinstance().readBits(A01start); |
| | | List<Boolean> A02readstart = S7control.getinstance().readBits(A02start); |
| | | List<Boolean> A01readBstart = S7control.getinstance().readBits(A01Bstart); |
| | | List<Boolean> A02readsBtart = S7control.getinstance().readBits(A02Bstart); |
| | | |
| | | List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks); |
| | | |
| | | short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray( |
| | | A01readBstart, A01readstart, A02readsBtart, A02readstart); |
| | | |
| | | // 回零地址 |
| | | |
| | | List<Boolean> readhuiling = S7control.getinstance().readBits(waddresses4); |
| | | short[] huiling7 = PlcManualonePosition.PLCBooleanConverter.convertListsToBinaryShortArray(readhuiling); |
| | | |
| | | // System.out.println(A01readBstart); |
| | | |
| | | // 所有故障按钮转换为1和0 |
| | | short[] params2 = new short[arraylist7.size()]; |
| | | for (int i = 0; i < arraylist7.size(); i++) { |
| | | boolean value = arraylist7.get(i); |
| | | params2[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | // 急停中止按钮 |
| | | short[] resumeTask = new short[resumeTasks.size()]; |
| | | for (int i = 0; i < resumeTasks.size(); i++) { |
| | | boolean value = resumeTasks.get(i); |
| | | resumeTask[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | List<Boolean> Reset1 = S7control.getinstance().readBits(Reset); |
| | | // System.out.println(Reset1); |
| | | // 所有故障按钮转换为1和0 |
| | | short[] rReset = new short[Reset1.size()]; |
| | | for (int i = 0; i < Reset1.size(); i++) { |
| | | boolean value = Reset1.get(i); |
| | | rReset[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | // 所有未回零按钮转换为1和0 |
| | | List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8); |
| | | short[] params = new short[arraylist8.size()]; |
| | | for (int i = 0; i < arraylist8.size(); i++) { |
| | | boolean value = arraylist8.get(i); |
| | | params[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7}; |
| | | // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1)); |
| | | // Short[] values2 = { 1, 2, 3, 4, 5}; |
| | | // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // |
| | | // Short[] values3 = {1}; |
| | | // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // Short[] values4 = {2}; |
| | | // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // Short[] values5 = {3,3}; |
| | | // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | // Short[] values6 = { 4,4}; |
| | | // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6)); |
| | | // Boolean[] values7 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist7 = new ArrayList<>(Arrays.asList(values7)); |
| | | // Boolean[] values8 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist8 = new ArrayList<>(Arrays.asList(values8)); |
| | | // |
| | | // String queueid1 = "x1234567890123"; |
| | | // String queueid2 = "x1234567890123"; |
| | | // |
| | | // short[] params2 = new short[arraylist7.size()]; |
| | | // for (int i = 0; i < arraylist7.size(); i++) { |
| | | // boolean value = arraylist7.get(i); |
| | | // params2[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | // |
| | | // |
| | | // short[] params = new short[arraylist8.size()]; |
| | | // for (int i = 0; i < arraylist8.size(); i++) { |
| | | // boolean value = arraylist8.get(i); |
| | | // params[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | | jsonObject.append("zuhe1", arraylist); |
| | | jsonObject.append("zuhe2", arraylist2); |
| | | jsonObject.append("zuhe3", arraylist3); |
| | | jsonObject.append("zuhe4", arraylist4); |
| | | jsonObject.append("zuhe5", arraylist5); |
| | | jsonObject.append("zuhe6", arraylist6); |
| | | jsonObject.append("guzhang", params2); |
| | | jsonObject.append("weihuiling", params); |
| | | jsonObject.append("jinpianid", queueid1); |
| | | jsonObject.append("qupianid", queueid2); |
| | | jsonObject.append("fuwei", rReset); |
| | | jsonObject.append("qidong", combinedBinaryShortArray); |
| | | jsonObject.append("huiling", huiling7); |
| | | |
| | | jsonObject.append("resumeTasks", resumeTask); |
| | | |
| | | // WebSocketServer sendwServer = |
| | | // WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | // 写入AO1组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses, 0); |
| | | |
| | | // 写入AO2组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses2, 1); |
| | | |
| | | // 复位按钮写入 |
| | | customS7Control.writeBitToPLC(messageArray, Reset, 2); |
| | | |
| | | // 回零按钮写入 |
| | | customS7Control.writeBitToPLC(messageArray, waddresses4, 3); |
| | | |
| | | // 进片ID写入 |
| | | customS7Control.writeStringToPLC(messageArray, inputGlassIdAddress, 4); |
| | | // 取片ID写入 |
| | | customS7Control.writeStringToPLC(messageArray, outputGlassIdAddress, 5); |
| | | |
| | | // A01半自动 |
| | | customS7Control.writeBitToPLC(messageArray, A01Bstart, 6); |
| | | // A02半自动 |
| | | customS7Control.writeBitToPLC(messageArray, A02Bstart, 7); |
| | | // A01半自动启动 |
| | | customS7Control.writeBitToPLC(messageArray, A01start, 8); |
| | | // A02半自动启动 |
| | | customS7Control.writeBitToPLC(messageArray, A02start, 9); |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | //A01组合中地址表集合 |
| | | List<String> addresses = Arrays.asList(config.getProperty("A01.addresses").split(",")); |
| | | //System.out.println(addresses); |
| | | |
| | | List<Short> arraylist = S7control.getinstance().readWords(addresses); |
| | | |
| | | //A02组合中地址表集合 |
| | | List<String> addresses2 = Arrays.asList(config.getProperty("A02.addresses").split(",")); |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses2); |
| | | |
| | | //A01翻转地址 |
| | | List<String> addresses3 = Arrays.asList(config.getProperty("A01.flipAddress")); |
| | | List<Short> arraylist3 = S7control.getinstance().readWords(addresses3); |
| | | |
| | | //A02翻转地址 |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("A02.flipAddress")); |
| | | |
| | | List<Short> arraylist4 = S7control.getinstance().readWords(addresses4); |
| | | //B01组合中地址 |
| | | String b01Address = config.getProperty("B01.address"); |
| | | List<Short> arraylist5 = S7control.getinstance().ReadWord(b01Address, 2); |
| | | //B02组合地址 |
| | | String b02Address = config.getProperty("B02.address"); |
| | | List<Short> arraylist6 = S7control.getinstance().ReadWord(b02Address, 2); |
| | | // System.out.println(b02Address); |
| | | // 所有故障按钮地址 |
| | | List<String> addresses7 = Arrays.asList(config.getProperty("faultButtonAddresses").split(",")); |
| | | List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7); |
| | | |
| | | //A01启动地址 |
| | | List<String> A01start = Arrays.asList(config.getProperty("A01start")); |
| | | //A02启动地址 |
| | | List<String> A02start = Arrays.asList(config.getProperty("A02start")); |
| | | //A01半自动地址 |
| | | List<String> A01Bstart = Arrays.asList(config.getProperty("A01Bstart")); |
| | | //A02半自动地址 |
| | | List<String> A02Bstart = Arrays.asList(config.getProperty("A02Bstart")); |
| | | // |
| | | List<String> abortresumeTasks = Arrays.asList(config.getProperty("abortresumeTasks")); |
| | | //回零按钮地址 |
| | | List<String> waddresses4 = Arrays.asList(config.getProperty("HomedButtonAddresses").split(",")); |
| | | // 所有复位按钮地址 |
| | | List<String> Reset = Arrays.asList(config.getProperty("resetButtonAddresses").split(",")); |
| | | // System.out.println(Reset); |
| | | // 所有未回零按钮地址 |
| | | List<String> addresses8 = Arrays.asList(config.getProperty("notHomedButtonAddresses").split(",")); |
| | | // 进片id地址 |
| | | String inputGlassIdAddress = config.getProperty("inputGlassIdAddress"); |
| | | String outputGlassIdAddress = config.getProperty("outputGlassIdAddress"); |
| | | StringBuilder queueid1 = queGlassid(inputGlassIdAddress, 14); |
| | | // 存片id地址 |
| | | StringBuilder queueid2 = queGlassid(outputGlassIdAddress, 14); |
| | | //A01 A02启动 半自动启动 |
| | | List<Boolean> A01readstart = S7control.getinstance().readBits(A01start); |
| | | List<Boolean> A02readstart = S7control.getinstance().readBits(A02start); |
| | | List<Boolean> A01readBstart = S7control.getinstance().readBits(A01Bstart); |
| | | List<Boolean> A02readsBtart = S7control.getinstance().readBits(A02Bstart); |
| | | |
| | | List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks); |
| | | |
| | | short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray( |
| | | A01readBstart, A01readstart, A02readsBtart, A02readstart |
| | | ); |
| | | |
| | | |
| | | // 回零地址 |
| | | |
| | | List<Boolean> readhuiling = S7control.getinstance().readBits(waddresses4); |
| | | short[] huiling7 = PlcManualonePosition.PLCBooleanConverter.convertListsToBinaryShortArray(readhuiling); |
| | | |
| | | // System.out.println(A01readBstart); |
| | | |
| | | // 所有故障按钮转换为1和0 |
| | | short[] params2 = new short[arraylist7.size()]; |
| | | for (int i = 0; i < arraylist7.size(); i++) { |
| | | boolean value = arraylist7.get(i); |
| | | params2[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | //急停中止按钮 |
| | | short[] resumeTask = new short[resumeTasks.size()]; |
| | | for (int i = 0; i < resumeTasks.size(); i++) { |
| | | boolean value = resumeTasks.get(i); |
| | | resumeTask[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | List<Boolean> Reset1 = S7control.getinstance().readBits(Reset); |
| | | // System.out.println(Reset1); |
| | | // 所有故障按钮转换为1和0 |
| | | short[] rReset = new short[Reset1.size()]; |
| | | for (int i = 0; i < Reset1.size(); i++) { |
| | | boolean value = Reset1.get(i); |
| | | rReset[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | |
| | | //所有未回零按钮转换为1和0 |
| | | List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8); |
| | | short[] params = new short[arraylist8.size()]; |
| | | for (int i = 0; i < arraylist8.size(); i++) { |
| | | boolean value = arraylist8.get(i); |
| | | params[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | |
| | | // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7}; |
| | | // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1)); |
| | | // Short[] values2 = { 1, 2, 3, 4, 5}; |
| | | // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // |
| | | // Short[] values3 = {1}; |
| | | // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // Short[] values4 = {2}; |
| | | // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // Short[] values5 = {3,3}; |
| | | // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | // Short[] values6 = { 4,4}; |
| | | // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6)); |
| | | // Boolean[] values7 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist7 = new ArrayList<>(Arrays.asList(values7)); |
| | | // Boolean[] values8 = { false, true, true, true, true, true}; |
| | | // List<Boolean> arraylist8 = new ArrayList<>(Arrays.asList(values8)); |
| | | // |
| | | // String queueid1 = "x1234567890123"; |
| | | // String queueid2 = "x1234567890123"; |
| | | // |
| | | // short[] params2 = new short[arraylist7.size()]; |
| | | // for (int i = 0; i < arraylist7.size(); i++) { |
| | | // boolean value = arraylist7.get(i); |
| | | // params2[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | // |
| | | // |
| | | // short[] params = new short[arraylist8.size()]; |
| | | // for (int i = 0; i < arraylist8.size(); i++) { |
| | | // boolean value = arraylist8.get(i); |
| | | // params[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | | jsonObject.append("zuhe1", arraylist); |
| | | jsonObject.append("zuhe2", arraylist2); |
| | | jsonObject.append("zuhe3", arraylist3); |
| | | jsonObject.append("zuhe4", arraylist4); |
| | | jsonObject.append("zuhe5", arraylist5); |
| | | jsonObject.append("zuhe6", arraylist6); |
| | | jsonObject.append("guzhang", params2); |
| | | jsonObject.append("weihuiling", params); |
| | | jsonObject.append("jinpianid", queueid1); |
| | | jsonObject.append("qupianid", queueid2); |
| | | jsonObject.append("fuwei", rReset); |
| | | jsonObject.append("qidong", combinedBinaryShortArray); |
| | | jsonObject.append("huiling", huiling7); |
| | | |
| | | jsonObject.append("resumeTasks", resumeTask); |
| | | |
| | | |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | |
| | | // 写入AO1组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses, 0); |
| | | |
| | | |
| | | // 写入AO2组合 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses2, 1); |
| | | |
| | | |
| | | // 复位按钮写入 |
| | | customS7Control.writeBitToPLC(messageArray, Reset, 2); |
| | | |
| | | //回零按钮写入 |
| | | customS7Control.writeBitToPLC(messageArray, waddresses4, 3); |
| | | |
| | | // 进片ID写入 |
| | | customS7Control.writeStringToPLC(messageArray, inputGlassIdAddress, 4); |
| | | //取片ID写入 |
| | | customS7Control.writeStringToPLC(messageArray, outputGlassIdAddress, 5); |
| | | |
| | | //A01半自动 |
| | | customS7Control.writeBitToPLC(messageArray, A01Bstart, 6); |
| | | //A02半自动 |
| | | customS7Control.writeBitToPLC(messageArray, A02Bstart, 7); |
| | | //A01半自动启动 |
| | | customS7Control.writeBitToPLC(messageArray, A01start, 8); |
| | | //A02半自动启动 |
| | | customS7Control.writeBitToPLC(messageArray, A02start, 9); |
| | | |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | this.readValue(); |
| | | this.readValue(); |
| | | String PlcAddress = this.name; |
| | | Integer Plccount = this.count; |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | import java.util.Map;
|
| | |
|
| | | import com.example.springboot.service.*;
|
| | |
|
| | | import org.apache.ibatis.annotations.Result;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | |
|
| | | import com.example.springboot.entity.Glass;
|
| | |
| | |
|
| | | public static Boolean FeedState = false;
|
| | |
|
| | | public static StringBuilder feedglassid;
|
| | |
|
| | | // public Plchome() throws IOException {
|
| | | // config = new Configuration("config.properties");
|
| | | // }
|
| | |
| | | public void run() {
|
| | | while (this != null) {
|
| | | JSONObject jsonObject = new JSONObject();
|
| | | jsonObject.append("feedglassid", feedglassid);
|
| | | try {
|
| | | Thread.sleep(1000);
|
| | | // 注入mapper
|
| | |
| | | // }
|
| | | // // 获取铝框idDB106.DBW64,添加到出片队列
|
| | | // String frameno="X21763329601FB";
|
| | | String frameno = spianService.queGlassid("DB103.270", 14).toString();
|
| | | String frameno = spianService.queGlassid("DB103.270", 11).toString();
|
| | | if (!frameno.equals(Plchome.FrameNo)) {
|
| | | Plchome.FrameNo = frameno;
|
| | | try {
|
| | |
| | | // jsonObject.append("D01RequestState", D01RequestState);
|
| | | // 自动进片
|
| | | if (isConfirm == true && form3.getglassId() != null && form3.getglassId() != "") {
|
| | | 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)) {
|
| | | double width = 0;
|
| | | double height = 0;
|
| | | if (form3.getglassheight() < form3.getglasswidth()) {
|
| | | height = form3.getglassheight();
|
| | | width = form3.getglasswidth();
|
| | | } else {
|
| | | height = form3.getglasswidth();
|
| | | width = form3.getglassheight();
|
| | | }
|
| | | if (height < 380 || width < 380 || height > 1810 || width > 2760) {
|
| | | FeedState = true;
|
| | | jsonObject.append("FeedState", FeedState);
|
| | | FeedState = false;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | boolean dbconnected = false;
|
| | | try {
|
| | | dbserve.getConn();
|
| | | dbconnected = true;
|
| | | } catch (Exception e) {
|
| | | // TODO: handle exception
|
| | | dbconnected = false;
|
| | | }
|
| | | jsonObject.append("dbconnected", dbconnected);
|
| | | // jsonObject.append("params", new short[] { 30, 40, });
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
|
| | | if (sendwServer != null) {
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | if (webserver != null) {
|
| | |
|
| | | boolean dbconnected = false;
|
| | | try {
|
| | | dbserve.getConn();
|
| | | dbconnected = true;
|
| | | } catch (Exception e) {
|
| | | // TODO: handle exception
|
| | | dbconnected = false;
|
| | | }
|
| | | jsonObject.append("dbconnected", dbconnected);
|
| | | // jsonObject.append("params", new short[] { 30, 40, });
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
|
| | | if (sendwServer != null) {
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | | List<String> messages = webserver.getMessages();
|
| | |
|
| | | if (webserver != null) {
|
| | | if (!messages.isEmpty()) {
|
| | | // // 将最后一个消息转换为整数类型的列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | |
|
| | | List<String> messages = webserver.getMessages();
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // // 将最后一个消息转换为整数类型的列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | | } catch (InterruptedException | SQLException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } catch (SQLException e) { |
| | | // TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | boolean dbconnected = false; |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(10); |
| | | } catch (InterruptedException e) { |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); |
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); |
| | | spianService = WebSocketServer.applicationContext.getBean(SpianService.class); |
| | | StringBuilder B01glassid = spianService.queGlassid("DB103.184", 14);// BO1的玻璃id |
| | | StringBuilder B02glassid = spianService.queGlassid("DB103.212", 14);// B02的玻璃id |
| | |
| | | } |
| | | b02 = B02backs; |
| | | } |
| | | } catch (InterruptedException e) { |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | // System.out.println(PlcAddress); |
| | | |
| | | // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, |
| | | // Plccount); |
| | | List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112); |
| | | |
| | | // Boolean[] values = { true, true, true, true, true, false, true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, true, false, true, false, |
| | | // true, false, true, false, true, |
| | | // false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, null, |
| | | // true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, }; |
| | | // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values)); |
| | | |
| | | if (plclist != null) { |
| | | // 将获取的布尔类型转换为整数类型 |
| | | List<Integer> Intlist = new ArrayList<>(); |
| | | for (Boolean value : plclist) { |
| | | if (value != null) { |
| | | Intlist.add(value == true ? 0 : 1); |
| | | } |
| | | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sig", Intlist); |
| | | // WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign"); |
| | | // if (sendwServer3 != null) { |
| | | // sendwServer3.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Sign"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | // System.out.println(PlcAddress); |
| | | |
| | | // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount); |
| | | List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112); |
| | | |
| | | // Boolean[] values = { true, true, true, true, true, false, true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, true, false, true, false, |
| | | // true, false, true, false, true, |
| | | // false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, null, |
| | | // true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, }; |
| | | // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values)); |
| | | |
| | | if (plclist != null) { |
| | | // 将获取的布尔类型转换为整数类型 |
| | | List<Integer> Intlist = new ArrayList<>(); |
| | | for (Boolean value : plclist) { |
| | | if (value != null) { |
| | | Intlist.add(value == true ? 0 : 1); |
| | | } |
| | | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sig", Intlist); |
| | | // WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign"); |
| | | // if (sendwServer3 != null) { |
| | | // sendwServer3.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Sign"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | // System.out.println(PlcAddress); |
| | | |
| | | // 读取状态数据 |
| | | List<Short> plclist = S7control.getinstance().ReadWord("DB103.0", 44); |
| | | // Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0, |
| | | // 1, 0, }; |
| | | // List<Short> plclist = new ArrayList<>(Arrays.asList(values)); |
| | | if (plclist != null) { |
| | | |
| | | List<String> Intlist = new ArrayList<>(); |
| | | for (Short value : plclist) { |
| | | Intlist.add(value == 1 ? "AUTO" : "Manual"); |
| | | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sta", Intlist); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | // System.out.println(PlcAddress); |
| | | |
| | | //读取状态数据 |
| | | List<Short> plclist = S7control.getinstance().ReadWord("DB103.0", 44); |
| | | // Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0, |
| | | // 1, 0, }; |
| | | // List<Short> plclist = new ArrayList<>(Arrays.asList(values)); |
| | | if (plclist != null) { |
| | | |
| | | List<String> Intlist = new ArrayList<>(); |
| | | for (Short value : plclist) { |
| | | Intlist.add(value == 1 ? "AUTO" : "Manual"); |
| | | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sta", Intlist); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | // |
| | | System.out.println("启动完成"); |
| | | |
| | | new PlcHoldNew().start(); |
| | | new PlcHold().start(); |
| | | new Plchome().start(); |
| | | new PlcLayout().start(); |
| | | new Plcalarm().start(); |
| | |
| | | new PlcManualonePosition2().start(); |
| | | new PlcServoManualone().start(); |
| | | new PLCManualJog().start(); |
| | | new Plclog().start(); |
| | | |
| | | |
| | | |
| | | // new PlcInteractionState().start(); |
| | | // new PlcParameter1Review().start(); |
| | | // new PLCAutomaticParameterSettingReview2().start(); |
| | | // new PLCManualJogReview().start(); |
| | | |
| | | new PlcInteractionState().start(); |
| | | } |
| | | } |
| | |
| | | |
| | | // 手动添加扫码位玻璃 |
| | | @PostMapping("/InsertQueueGlassId") |
| | | public Result InsertQueueGlassId(Short id, @RequestBody Queue queue) { |
| | | public Result InsertQueueGlassId(Short id, @RequestBody Queue queue) throws SQLException { |
| | | return storageCageService.InsertQueueGlassId(id, queue); |
| | | |
| | | } |
| | |
| | | // public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws |
| | | // SQLException { |
| | | north_Glass_Buffer1Service.AddOutSliceS(FrameNo); |
| | | Plchome.AluminumFrame = null; |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | |
| | | |
| | | public interface SpianMapper { |
| | | // 判断相邻笼子是否有空格 |
| | | @Select("select COUNT(if(a.state1=0,cell,0))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) and disabled=0 GROUP BY cage ORDER BY cell desc LIMIT 1") |
| | | int selectCage(int cage1); |
| | | @Select("select COUNT(if(a.state1=0,cell,0))as cell from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1 or a.cage=#{cage1})and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) and disabled=0 GROUP BY cage ORDER BY cell desc LIMIT 1") |
| | | StorageCage selectCage(int cage1); |
| | | // 获取笼子号订单号排序的空订单笼子 |
| | | @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,max(a.state)as state2,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c on a.cage=c.cage where (order_id=#{orderids} or ''='') and a.disabled=0 GROUP BY cage,cell HAVING state1=0 ORDER BY shu desc,shu2,state2 asc,cage asc;") |
| | | List<StorageCage> selectAll(String orderids,String Fbarcode); |
| | |
| | | void UpdataAddCage(String orderid, String glassid, double width, int cage, int cell, int id, int state); |
| | | |
| | | @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.frameBarcode} where id=#{id};") |
| | | void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state); |
| | | void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state,Double widths); |
| | | |
| | | // 修改笼子信息(多片进片) |
| | | @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where cage=#{cage} and cell=#{cell} and tier=#{tier};") |
| | |
| | | // 调拨更换笼子信息 |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=2,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}") |
| | | void UpdateDBCage(int id1, int cage, int cell, int tier); |
| | | // 进片更换笼子信息 |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}") |
| | | void UpdateDBCageAdd(int id1, int cage, int cell, int tier); |
| | | |
| | | // @Insert("insert into user(name, date, address, user_no) values (#{name}, |
| | | // #{date}, #{address}, #{userNo})") |
| | |
| | | north_glass_buffer1 SelectDBOut(); |
| | | |
| | | // 根据笼子格子层数获取玻璃id |
| | | @Select("select glass_id from storage_cage where cage=#{cage} and cell=#{cell} and tier=2;") |
| | | String SelectGlassid(int cage, int cell); |
| | | @Select("select glass_id,glasswidth from storage_cage where cage=#{cage} and cell=#{cell} and tier=2;") |
| | | StorageCage SelectGlassid(int cage, int cell); |
| | | |
| | | // 判断有几块玻璃还在出片中 |
| | | @Select("SELECT COUNT(*) FROM `storage_cage` where state=3;") |
| | |
| | | int SelectCageTask(int state,int cage1,int cage2); |
| | | //判断玻璃是否禁用 |
| | | @Select(" select disabled from storage_cage where glass_id=#{glassid} limit 1;") |
| | | int SelectCageGlassState(String glassid); |
| | | StorageCage SelectCageGlassState(String glassid); |
| | | //判断汇报的id是否正确 |
| | | @Select("SELECT count(*) FROM `storage_cage` where state!=0 and glass_id=#{glassid}") |
| | | int SelectHB(String glassid); |
| | |
| | | private static final String USERNAME = "root"; |
| | | private static final String PASSWORD = "beibo.123/"; |
| | | |
| | | private static Connection conn = null; |
| | | private static Connection conns = null; |
| | | private static PreparedStatement ps = null; |
| | | private static ResultSet rs = null; |
| | | private static ResultSet rss = null; |
| | | |
| | | public north_glass_buffer1 selectGlass(int glassid) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | String sql = "select ordernumber from north_glass_buffer1 where glassid=?"; |
| | | ps = conn.prepareStatement(sql); |
| | | ps.setInt(1, glassid); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | glass.setordernumber(rs.getString("ordernumber")); |
| | | } |
| | |
| | | } |
| | | |
| | | public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameId(String glassid,String orderid,String frameid) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); |
| | | String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; |
| | | ps = conn.prepareStatement(sql); |
| | | ps.setString(1, glassid); |
| | | ps.setString(2, orderid); |
| | | ps.setString(3, frameid); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | north_glass_buffer1s.setId(rs.getInt("Id")); |
| | | north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); |
| | |
| | | north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); |
| | | north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); |
| | | } |
| | | // conn.close(); |
| | | conn.close(); |
| | | return north_glass_buffer1s; |
| | | } |
| | | |
| | | public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdplchold(String glassid,String orderid,String frameid) throws SQLException { |
| | | Connection conn = getConn(); |
| | | north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); |
| | | String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; |
| | | ps = conn.prepareStatement(sql); |
| | | ps.setString(1, glassid); |
| | | ps.setString(2, orderid); |
| | | ps.setString(3, frameid); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | north_glass_buffer1s.setId(rs.getInt("Id")); |
| | | north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); |
| | | north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); |
| | | north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); |
| | | north_glass_buffer1s.setbarcode(rs.getString("barcode")); |
| | | north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); |
| | | north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); |
| | | north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); |
| | | north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); |
| | | north_glass_buffer1s.setitemtype(rs.getString("itemtype")); |
| | | north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); |
| | | north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); |
| | | north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); |
| | | north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); |
| | | } |
| | | conn.close(); |
| | | return north_glass_buffer1s; |
| | | } |
| | | |
| | | //根据玻璃id,订单id,铝框id查询客户玻璃信息 |
| | | public Queue SelectGlassByGlassIdOrderIdFrameIdQueue(String glassid,String orderid,String frameid) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | Queue queue=new Queue(); |
| | | String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; |
| | | ps = conn.prepareStatement(sql); |
| | | ps.setString(1, glassid); |
| | | ps.setString(2, orderid); |
| | | ps.setString(3, frameid); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | queue.setid(rs.getInt("Id")); |
| | | queue.setorderId(rs.getString("ordernumber")); |
| | |
| | | |
| | | //根据玻璃id,订单id,铝框id查询客户玻璃信息 |
| | | public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIds(String glassid,String orderid,String frameid) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | List<north_glass_buffer1> glass=new ArrayList<north_glass_buffer1>(); |
| | | String sql = "select * from north_glass_buffer1 where position(? in barcode) and position(? in ordernumber) and position(? in FrameBarcode)"; |
| | |
| | | ps.setString(1, glassid); |
| | | ps.setString(2, orderid); |
| | | ps.setString(3, frameid); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); |
| | | |
| | |
| | | |
| | | //根据铝框id查询客户玻璃信息 |
| | | public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIdss(String frameid) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | List<north_glass_buffer1> glass=new ArrayList<north_glass_buffer1>(); |
| | | String sql = "select * from north_glass_buffer1 where FrameBarcode=?"; |
| | | ps = conn.prepareStatement(sql); |
| | | ps.setString(1, frameid); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); |
| | | |
| | |
| | | |
| | | //根据铝框id查询l铝框是否翻转 |
| | | public String SelectFlipByFrameBarcode(String frameBarcode) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | String flip=""; |
| | | String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; |
| | | ps = conn.prepareStatement(sql1); |
| | | ps.setString(1, frameBarcode); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | flip=rs.getString("Flip"); |
| | | |
| | |
| | | } |
| | | //根据铝框id查询是否铝框摆放 |
| | | public String SelectPositionByFrameBarcode(String frameBarcode) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | String position=""; |
| | | String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; |
| | | ps = conn.prepareStatement(sql1); |
| | | ps.setString(1, frameBarcode); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | position=rs.getString("position"); |
| | | position=rs.getString("flip"); |
| | | } |
| | | conn.close(); |
| | | return position; |
| | |
| | | |
| | | //根据铝框id查询铝框宽 |
| | | public String SelectFrameLengthByFrameBarcode(String frameBarcode) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | String position=""; |
| | | String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; |
| | | ps = conn.prepareStatement(sql1); |
| | | ps.setString(1, frameBarcode); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | position=rs.getString("framelength"); |
| | | } |
| | |
| | | |
| | | //根据铝框id查询铝框高 |
| | | public String SelectFrameHeightByFrameBarcode(String frameBarcode) throws SQLException { |
| | | conn = getConn(); |
| | | Connection conn = getConn(); |
| | | // north_glass_buffer1 glass=new north_glass_buffer1(); |
| | | String position=""; |
| | | String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; |
| | | ps = conn.prepareStatement(sql1); |
| | | ps.setString(1, frameBarcode); |
| | | rs= ps.executeQuery(); |
| | | ResultSet rs= ps.executeQuery(); |
| | | while (rs.next()) { |
| | | position=rs.getString("frameheight"); |
| | | } |
| | |
| | | public static Connection getConn() throws SQLException { |
| | | Connection conn = null; |
| | | conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/"); |
| | | // conn = DriverManager.getConnection("jdbc:mysql://192.168.102.9:3306/production?serverTimezone=GMT%2B8&characterEncoding=utf-8", "northglass", "n0rthgla55"); |
| | | return conn; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | import java.io.InputStreamReader; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import com.example.springboot.mapper.SpianMapper; |
| | | import com.google.common.primitives.Bytes; |
| | | |
| | | |
| | | @Service |
| | | public class SpianService { |
| | | @Autowired |
| | | private SpianMapper spianMapper; |
| | | |
| | | public static List<String> result=new ArrayList<String>(); |
| | | // @GetMapping("/all") |
| | | public Short selectAll(north_glass_buffer1 glasslist) { |
| | | |
| | | try { |
| | | |
| | | |
| | | int cage1 = 0; |
| | | int cells; |
| | | int ids; |
| | |
| | | int prctier; |
| | | double width; |
| | | double minwidth = 0; |
| | | |
| | | //north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 获取玻璃参数 |
| | | double widths; |
| | | // north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 获取玻璃参数 |
| | | // 如果没有此id时 |
| | | if (glasslist == null) { |
| | | return (300); |
| | | } |
| | | if(glasslist.getglasslengthmm()>glasslist.getglassheightmm()) { |
| | | widths= glasslist.getglasslengthmm(); |
| | | }else{ |
| | | widths= glasslist.getglassheightmm(); |
| | | } |
| | | // Map result=new HashMap(); |
| | | |
| | | |
| | | double widths = glasslist.getglasslengthmm(); |
| | | String orderids = glasslist.getordernumber(); |
| | | String FrameBarcode = glasslist.getFrameBarcode(); |
| | | String glassid=glasslist.getbarcode(); |
| | | String glassid = glasslist.getbarcode(); |
| | | List<String> adddresslist = new ArrayList<>(); |
| | | adddresslist.add("DB105.0");// 进片车起始位置 |
| | | adddresslist.add("DB105.2");// 进片车目标位置 |
| | |
| | | // 保存订单优先顺序笼子号 |
| | | cage1 = storageCage2.getCage(); |
| | | // 判断该笼子号相邻最大的空格数 |
| | | int cages = spianMapper.selectCage(cage1); |
| | | StorageCage cages = spianMapper.selectCage(cage1); |
| | | |
| | | // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400 |
| | | if (cages == 0) { |
| | | if (cages == null) { |
| | | return (400); |
| | | } |
| | | StorageCage cages1; |
| | |
| | | } |
| | | // 判断选中笼子是否有合适宽度空格 |
| | | // 有合适空格时进片 |
| | | if (cages1 != null && cages >= 1 && storageCage2.getDisabled() == 0) { |
| | | if (cages1 != null && cages.getCell() >= 1 && storageCage2.getDisabled() == 0) { |
| | | ids = cages1.getId();// 数据库ID |
| | | tiers = cages1.getTier();// 内外片 |
| | | cells = cages1.getCell();// 格子号 |
| | | prcid = cages1.getPrcId();// 传给prc的目标地id |
| | | width = cages1.getWidth();// 格子剩余宽度 |
| | | widths = glasslist.getglasslengthmm(); |
| | | |
| | | |
| | | // 执行进片 |
| | | datas.add((short) 1000);// 起始位置 |
| | |
| | | // 获取该格子内是否有玻璃 |
| | | int cellint = spianMapper.selectcell(cage1, cells); |
| | | if (cellint == 1) { |
| | | // 将外片玻璃的数据更新到内片 |
| | | spianMapper.UpdateDBCage(ids, cage1, cells, 1); |
| | | // 将新入的玻璃存入外片 |
| | | |
| | | spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids - 1, 2); |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | |
| | | result.add("进片任务|feedstart1:" + datas+ LocalDateTime.now()); |
| | | outmesid(glassid, "DB105.20"); |
| | | S7control.getinstance().WriteWord(adddresslist, datas); |
| | | boolean qidong = listbool("DB105.16"); |
| | | int qidong2 = 0; |
| | | if (qidong == true) { |
| | | qidong2 = 1; |
| | | }else{ |
| | | } 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); |
| | | // 将外片玻璃的数据更新到内片 |
| | | spianMapper.UpdateDBCageAdd(ids, cage1, cells, 1); |
| | | // 将新入的玻璃存入外片 |
| | | spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids - 1, 2,widths); |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier, qidong2);// 新增任务 |
| | | result.add("进片任务|feedend1" + datas+ LocalDateTime.now()); |
| | | |
| | | |
| | | } else { |
| | | // 数据库修改笼子表新增一条玻璃 |
| | | |
| | | spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids, 2); |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | |
| | | S7control.getinstance().WriteWord(adddresslist, datas); |
| | | result.add("进片任务|feedstart2" + datas+ LocalDateTime.now()); |
| | | outmesid(glassid, "DB105.20"); |
| | | S7control.getinstance().WriteWord(adddresslist, datas); |
| | | boolean qidong = listbool("DB105.16"); |
| | | 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); |
| | | spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids, 2,widths); |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier, qidong2);// 新增任务 |
| | | result.add("进片任务|feedend2" + datas+ LocalDateTime.now()); |
| | | |
| | | } |
| | | outmesid(glassid, "DB105.20"); |
| | | |
| | | return (200); |
| | | |
| | | } |
| | | |
| | | } |
| | | return (400); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return (500); |
| | | // TODO: handle exception |
| | | } |
| | | |
| | | } |
| | | |
| | | public Short selectout2(String glassid) { |
| | | try { |
| | | // 定义PRC数据传送数组 |
| | | List<String> adddresslist = new ArrayList<>(); |
| | | char[] a = glassid.toCharArray(); |
| | |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 更改笼子表的玻璃状态 |
| | | |
| | | System.out.println("出片任务|" + datas); |
| | | result.add("出片任务|outstart1" + datas+ LocalDateTime.now()); |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | | S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | //S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | boolean qidong = listbool("DB105.18"); |
| | | int qidong2 = 0; |
| | | if (qidong == true) { |
| | | qidong2 = 1; |
| | | }else{ |
| | | } 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 |
| | | |
| | | result.add("出片任务|outend1" + datas+ LocalDateTime.now()); |
| | | return (200);// 结束 |
| | | } else { |
| | | // 获取格子的玻璃数量 |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) 1); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | |
| | | System.out.println("出片任务|" + datas); |
| | | result.add("出片任务|outstart2" + datas+ LocalDateTime.now()); |
| | | outmesid(glassid, "DB105.34");// 派发出片ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | | S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | //S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | boolean qidong = listbool("DB105.18"); |
| | | int qidong2 = 0; |
| | | if (qidong == true) { |
| | | qidong2 = 1; |
| | | }else{ |
| | | } else { |
| | | while (qidong) { |
| | | S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | qidong = listbool("DB105.18"); |
| | | } |
| | | } |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1, qidong2);// 新增任务 |
| | | result.add("出片任务|outend2" + datas+ LocalDateTime.now()); |
| | | return (200);// 结束 |
| | | |
| | | } else { |
| | |
| | | datas.add((short) 2); |
| | | datas.add((short) 1); |
| | | // 更换玻璃的笼子 |
| | | String glassids = spianMapper.SelectGlassid(cage, cell); // 获取被调拨的玻璃id |
| | | spianMapper.UpdataGlassCageState(glassids, 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里 |
| | | spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 减少新格子宽度 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | // 传输mes数据,坐标,数据 |
| | | System.out.println("出片任务|" + datas); |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | | S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | outmesid(glassids, "DB105.34");// 派发调拨玻璃ID |
| | | StorageCage glassids = spianMapper.SelectGlassid(cage, cell); // 获取被调拨的玻璃id |
| | | |
| | | // 传输mes数据,坐标,数据 |
| | | result.add("出片任务|outstart3" + datas+ LocalDateTime.now()); |
| | | outmesid(glassids.getGlassId(), "DB105.34");// 派发调拨玻璃ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | | //S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | boolean qidong = listbool("DB105.18"); |
| | | int qidong2 = 0; |
| | | if (qidong == true) { |
| | | qidong2 = 1; |
| | | }else{ |
| | | } 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);// 新增调度任务 |
| | | |
| | | spianMapper.UpdataGlassCageState(glassids.getGlassId(), 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里 |
| | | spianMapper.UpdataAddCage1(glassids.getGlassWidth(), cages, cells);// 减少新格子宽度 |
| | | spianMapper.UpdataOutCage1(glassids.getGlassWidth(), cage, cell);// 增加原格子宽度 |
| | | spianMapper.Inserttask(2, 0, cageout.getId(), ids, glassids.getGlassId(), 2, qidong2);// 新增调度任务 |
| | | result.add("出片任务|outend3" + datas+ LocalDateTime.now()); |
| | | return (200); // 结束 |
| | | |
| | | } else {// 笼子号大于5时 |
| | |
| | | datas.add((short) prcid2); |
| | | datas.add((short) 2); |
| | | datas.add((short) 1); |
| | | String glassids = spianMapper.SelectGlassid(cage, cell); // 获取被调拨的玻璃id |
| | | StorageCage glassids = spianMapper.SelectGlassid(cage, cell); // 获取被调拨的玻璃id |
| | | // 传输mes数据,坐标,数据 |
| | | System.out.println("出片任务|" + datas); |
| | | result.add("出片任务|outstart4" + datas+ LocalDateTime.now()); |
| | | outmesid(glassids.getGlassId(), "DB105.34");// 派发调拨玻璃ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | | S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | |
| | | outmesid(glassids, "DB105.34");// 派发调拨玻璃ID |
| | | spianMapper.UpdataGlassCageState(glassids, 3);// 更改笼子表的玻璃状态 |
| | | //S7control.getinstance().WriteWord("DB105.18", (short) 1);// 出片任务发送字改为1 |
| | | boolean qidong = listbool("DB105.18"); |
| | | int qidong2 = 2; |
| | | if (qidong == true) { |
| | | qidong2 = 1; |
| | | }else{ |
| | | } 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.UpdataGlassCageState(glassids.getGlassId(), 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里 |
| | | spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 减少新格子宽度 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | |
| | | spianMapper.UpdataAddCage1(glassids.getGlassWidth(), cages, cells);// 减少新格子宽度 |
| | | spianMapper.UpdataOutCage1(glassids.getGlassWidth(), cage, cell);// 增加原格子宽度 |
| | | spianMapper.Inserttask(2, 0, cageout.getId() + 1, ids, glassids.getGlassId(), 2, qidong2);// 新增调度任务 |
| | | result.add("出片任务|outend4" + datas+ LocalDateTime.now()); |
| | | return (200);// 结束 |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return (500); |
| | | // TODO: handle exception |
| | | } |
| | | } |
| | | |
| | | // 派发任务玻璃id |
| | | public void outmesid(String glassid, String address) { |
| | | try { |
| | | |
| | | |
| | | // System.out.println("outmesid:" + glassid); |
| | | List<Byte> glassidlist = new ArrayList(); |
| | | char ds[] = glassid.toCharArray(); |
| | |
| | | byte[] bytes = Bytes.toArray(glassidlist); |
| | | System.out.println("outmesidbytes:" + bytes.length); |
| | | S7control.getinstance().WriteByte(address, bytes);// 派发出片id |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | // 获取地址内的玻璃id转字符串 |
| | |
| | | String A02glassid1 = spianService.queGlassid("DB103.156", 14).toString(); |
| | | String B01glassid = spianService.queGlassid("DB103.184", 14).toString(); |
| | | String B02glassid = spianService.queGlassid("DB103.212", 14).toString(); |
| | | String D02glassid = spianService.queGlassid("DB103.58", 14).toString(); |
| | | List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); |
| | | if (types == 0) {// 终止进片任务 |
| | | List<StorageTask> cageList = homeMapper.SelectTaskByState(types); |
| | |
| | | ClearGlassId("DB101.10.3"); |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | } |
| | | if (storageTask.getGlassId().equals(D02glassid) && DeviceList.get(1) == 0) { |
| | | ClearGlassId("DB101.9.3"); |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | } |
| | | } |
| | | // 发送终止进片任务信号 |
| | | } else {// 终止出片任务 |