Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes
# Conflicts:
# springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
# springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
| | |
| | | })
|
| | | }
|
| | |
|
| | | export function CompleteQueue(id,frameid) {
|
| | | export function CompleteQueue(id,frameid,glassid) {
|
| | | return request({
|
| | | url: '/home/CompleteQueue?id=' + id+'&frameid='+frameid,
|
| | | url: '/home/CompleteQueue?id=' + id+'&frameid='+frameid+'&glassid='+glassid,
|
| | | method: 'post',
|
| | | data:""
|
| | | })
|
| | |
| | | {
|
| | | "button": {
|
| | | "name": "未回零",
|
| | | "value": 0,
|
| | | "value": 1,
|
| | | "address": "DB10.0",
|
| | | "state": 1
|
| | | }
|
| | |
| | | {
|
| | | "button": {
|
| | | "name": "未回零",
|
| | | "value": 0,
|
| | | "value": 1,
|
| | | "address": "DB10.0",
|
| | | "state": 1
|
| | | }
|
| | |
| | | {
|
| | | "button": {
|
| | | "name": "未回零",
|
| | | "value": 0,
|
| | | "value": 1,
|
| | | "address": "DB10.0",
|
| | | "state": 1
|
| | | }
|
| | |
| | | {
|
| | | "button": {
|
| | | "name": "未回零",
|
| | | "value": 0,
|
| | | "value": 1,
|
| | | "address": "DB10.0",
|
| | | "state": 1
|
| | | }
|
| | |
| | | { |
| | | "button": { |
| | | "name": "未回零", |
| | | "value":0, |
| | | "value":1, |
| | | "address":"DB10.0", |
| | | "type":"66" |
| | | } |
| | |
| | | { |
| | | "button": { |
| | | "name": "未回零", |
| | | "value":0, |
| | | "value":1, |
| | | "address":"DB10.0", |
| | | "type":"66" |
| | | } |
| | |
| | | "button": { |
| | | "name": "未回零", |
| | | |
| | | "value":0, |
| | | "value":1, |
| | | "address":"DB10.0", |
| | | "type":"66" |
| | | } |
| | |
| | | } ,{ |
| | | "button": { |
| | | "name": "未回零", |
| | | "value":0, |
| | | "value":1, |
| | | "address":"DB10.0", |
| | | "type":"66" |
| | | } |
| | |
| | | "Unable to find whether the aluminum frame is flipped or not":"Unable to find whether the aluminum frame is flipped or not",
|
| | | "You do not have this permission":"You do not have this permission",
|
| | | "This glass is already in the Queue":"This glass is already in the Queue",
|
| | | "complete":"complete",
|
| | | "Complete":"Complete",
|
| | | "Not Allow":"Not Allow",
|
| | | "ServoManualone": {
|
| | | "A01 所在格子": "A01 Current Grid",
|
| | | "数量": "Quantity",
|
| | |
| | | "Unable to find the placement method of the aluminum frame":"查询不到铝框摆放方式",
|
| | | "Unable to find whether the aluminum frame is flipped or not":"查询不到铝框是否翻转",
|
| | | "This glass is already in the Queue":"此玻璃已在出片队列中",
|
| | | "complete":"完成",
|
| | | "Complete":"完成",
|
| | | "Not Allow":"不允许",
|
| | | "langparameter": {
|
| | | "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
|
| | | "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
|
| | |
| | | }); |
| | | } |
| | | }, |
| | | watch: { |
| | | '$route'(to) { |
| | | // 切换路由时更新激活的标签 |
| | | const tag = this.menuList.some(item => item.menuLists.some(menu => '/' + menu.router === to.path)); |
| | | if (tag) { |
| | | this.activeTag = tag; |
| | | } |
| | | } |
| | | } |
| | | // watch: { |
| | | // '$route'(to) { |
| | | // // 切换路由时更新激活的标签 |
| | | // const tag = this.menuList.some(item => item.menuLists.some(menu => '/' + menu.router === to.path)); |
| | | // if (tag) { |
| | | // this.activeTag = tag; |
| | | // } |
| | | // } |
| | | // } |
| | | } |
| | | </script> |
| | | |
| | |
| | | |
| | | </el-breadcrumb> |
| | | |
| | | <el-row :gutter="1"> |
| | | <el-col :span="24" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex"> |
| | | <el-row :gutter="40" style="width:100%;"> |
| | | <el-col :span="18" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex"> |
| | | <el-card class="json-block" style="width:100%;"> |
| | | |
| | | <div class="button-row" style="display: flex; justify-content: flex-start;flex-wrap:wrap;"> |
| | |
| | | |
| | | }, |
| | | //根据读取PLC的值,根据名称改变颜色1打开,0关闭 |
| | | getStatusClass (zhuangtai) { |
| | | // console.log(zhuangtai); |
| | | if (zhuangtai === 1) { |
| | | return "op"; |
| | | } |
| | | else { |
| | | return "dow"; |
| | | } |
| | | // getStatusClass (zhuangtai) { |
| | | // // console.log(zhuangtai); |
| | | // if (zhuangtai === 1) { |
| | | // return "op"; |
| | | // } |
| | | // else { |
| | | // return "dow"; |
| | | // } |
| | | |
| | | }, |
| | | // }, |
| | | initWebSocket () { |
| | | let viewname = "ManualJog"; |
| | | |
| | |
| | |
|
| | | <el-row :gutter="10">
|
| | | <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
|
| | | <el-card class="json-block" style="width:585px;">
|
| | | <el-card class="json-block" style="width:585px;margin-bottom: 10px;">
|
| | | <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
|
| | | <div class="item-row">
|
| | | <span class="name" style="width:300px;">{{ item.name }}</span>
|
| | |
| | | <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
|
| | | <el-button v-if="item.button && language === 'en-US' && item.state != 0" :name="item.button.name"
|
| | | v-model="item.button.value"
|
| | | :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
|
| | | :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
|
| | | @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
|
| | | item.button.name }}</el-button>
|
| | | <el-button v-if="item.button && language === 'zh-CN' && item.state != 0" :name="item.button.name"
|
| | | v-model="item.button.value"
|
| | | :class="{ 'action-button': true, 'error-button': item.button.name === '故障' && item.button.value === 1, 'error-button2': item.button.name === '未回零' && item.button.value === 0,'greenbutton': item.button.name !== '未回零' && item.button.name !== '故障' && item.button.value === 1 }"
|
| | | :class="{ 'action-button': true, 'error-button': item.button.name === '故障' && item.button.value === 1, 'error-button2': item.button.name === '未回零' && item.button.value === 0,'error-button3': item.button.name === '未回零' && item.button.value === 1,'greenbutton': item.button.name !== '未回零' && item.button.name !== '故障' && item.button.value === 1 }"
|
| | | @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
|
| | | item.button.name }}</el-button>
|
| | | </div>
|
| | |
| | | });
|
| | | }
|
| | |
|
| | | //更新实时位置
|
| | | jsonData2.forEach((item) => {
|
| | | |
| | |
|
| | | //改变状态文字
|
| | | // for (let i = 2; i < jsonData2.length; i++) {
|
| | | // let arr6 = jsonData2[i];
|
| | | // for (let j = 2; j < arr6.length; j++) {
|
| | | // let obj6 = arr6[j];
|
| | | // if (obj6.button&& (obj6.button.name === "未回零" || obj6.button.name === "NotZero")) {
|
| | | // if ( obj6.button.name.includes("未")&& this.language==="zh-CN") {
|
| | | // console.log(obj6.button.name)
|
| | | // obj6.button.name =obj6.button.name.replace("未","已") ;
|
| | | // }
|
| | | // if ( obj6.button.name.includes("NotZero")) {
|
| | | // obj6.button.name =obj6.button.name.replace("NotZero","Zero") ;
|
| | | // }
|
| | | // }
|
| | |
|
| | | |
| | | // }
|
| | | // }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | }
|
| | | }, 50);
|
| | |
|
| | | document.addEventListener('mouseover', handleMouseMove);
|
| | |
|
| | |
|
| | |
|
| | | //更新实时位置
|
| | | jsonData2.forEach((item) => {
|
| | | item.forEach((subItem) => {
|
| | | if (subItem.sending === 4) {
|
| | | subItem.value = obj.shishi1[0][0];
|
| | |
| | | }
|
| | |
|
| | |
|
| | | //改变未回零文字
|
| | | for (let i = 0; i < jsonData2.length; i++) {
|
| | | let arr = jsonData2[i];
|
| | | for (let j = 0; j < arr.length; j++) {
|
| | | let obj = arr[j];
|
| | | if (obj.button && obj.button.value===1) {
|
| | | if ( obj.button.name.includes("未回零")&& this.language==="zh-CN") {
|
| | | obj.button.name =obj.button.name.replace("未回零","已回零") ;
|
| | | }
|
| | | if ( obj.button.name.includes("NotZero")) {
|
| | | obj.button.name =obj.button.name.replace("NotZero","Zero") ;
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | }, 200);
|
| | |
|
| | | document.addEventListener('mouseover', handleMouseMove);
|
| | | };
|
| | |
|
| | |
|
| | |
| | |
|
| | | background-color: green;
|
| | | }
|
| | | .error-button3{
|
| | | background-color: green;
|
| | |
|
| | | }
|
| | | </style> |
| | |
| | |
|
| | |
|
| | | },
|
| | | //提交方法
|
| | | submitDataToBackend (currentButtonName) {
|
| | | if (currentButtonName === 'A01翻转启动' || currentButtonName === 'A01 SERVE TURN') {
|
| | | const data = [];
|
| | |
| | | });
|
| | | });
|
| | |
|
| | | // 遍历guzhang数组
|
| | | for (let i = 0; i < jsonData2.length; i++) {
|
| | | |
| | |
|
| | |
|
| | |
|
| | |
|
| | | }
|
| | | }, 50);
|
| | |
|
| | | document.addEventListener('mouseover', handleMouseMove);
|
| | |
|
| | | // 遍历guzhang数组
|
| | | for (let i = 0; i < jsonData2.length; i++) {
|
| | | let arr = jsonData2[i];
|
| | | for (let j = 0; j < arr.length; j++) {
|
| | | let obj2 = arr[j];
|
| | |
| | |
|
| | |
|
| | |
|
| | |
|
| | | //未回零
|
| | | for (let i = 0; i < jsonData2.length; i++) {
|
| | | let arr2 = jsonData2[i];
|
| | | for (let j = 0; j < arr2.length; j++) {
|
| | |
| | |
|
| | | }
|
| | |
|
| | | //改变未回零文字
|
| | | for (let i = 0; i < jsonData2.length; i++) {
|
| | | let arr = jsonData2[i];
|
| | | for (let j = 0; j < arr.length; j++) {
|
| | | let obj = arr[j];
|
| | | if (obj.button && obj.button.value===1) {
|
| | | if ( obj.button.name.includes("未回零")&& this.language==="zh-CN") {
|
| | | obj.button.name =obj.button.name.replace("未回零","已回零") ;
|
| | | }
|
| | | if ( obj.button.name.includes("NotZero")) {
|
| | | obj.button.name =obj.button.name.replace("NotZero","Zero") ;
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | }, 50);
|
| | |
|
| | | document.addEventListener('mouseover', handleMouseMove);
|
| | | };
|
| | |
|
| | |
|
| | |
| | | const parms = obj.params; |
| | | |
| | | |
| | | // console.log(obj); |
| | | console.log(obj); |
| | | |
| | | |
| | | |
| | |
| | | |
| | | // if (parms && inputBox && Array.from(inputBox).every(box => !box.contains(target))) { |
| | | //急停按钮 |
| | | jsonData2[13][0].button.value = obj.jiting[0][0]; |
| | | |
| | | // jsonData2[13][0].button.value = obj.jiting[0][0]; |
| | | |
| | | //清除id |
| | | |
| | |
| | | |
| | | }, |
| | | send () { |
| | | |
| | | |
| | | socket?.send(JSON.stringify(this.messagepack)); |
| | | } |
| | |
| | | </el-row> |
| | | <div class="button-row" style="display: flex; justify-content: space-between;"> |
| | | <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex"> |
| | | <el-button v-if="item.button && language === 'en-US' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1,'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button> |
| | | <el-button v-if="item.button && language === 'zh-CN' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === '故障' && item.button.value === 1,'error-button2': item.button.name === '未回零' && item.button.value === 0,'fuwei': item.button.name === '复位' && item.button.value === 1,'huiling': item.button.name === '回零' && item.button.value === 1,'qidong': item.button.name === 'A01半自动' && item.button.value === 1,'qidong2': item.button.name === 'A02半自动' && item.button.value === 1,'qidong3': item.button.name === 'A01半自动启动' && item.button.value === 1,'qidong4': item.button.name === 'A02半自动启动' && item.button.value === 1,'qidong5': item.button.name === 'A02半自动' && item.button.value === 1,'jiting': item.button.name === '急停后中止/继续选择' && item.button.value === 1 }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button> |
| | | <el-button v-if="item.button && language === 'en-US' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1,'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button> |
| | | <el-button v-if="item.button && language === 'zh-CN' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === '故障' && item.button.value === 1,'error-button3': item.button.name === '未回零' && item.button.value === 1,'error-button2': item.button.name === '未回零' && item.button.value === 0,'fuwei': item.button.name === '复位' && item.button.value === 1,'huiling': item.button.name === '回零' && item.button.value === 1,'qidong': item.button.name === 'A01半自动' && item.button.value === 1,'qidong2': item.button.name === 'A02半自动' && item.button.value === 1,'qidong3': item.button.name === 'A01半自动启动' && item.button.value === 1,'qidong4': item.button.name === 'A02半自动启动' && item.button.value === 1,'qidong5': item.button.name === 'A02半自动' && item.button.value === 1,'jiting': item.button.name === '急停后中止/继续选择' && item.button.value === 1 }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | |
| | | data.push(values); |
| | | |
| | | } |
| | | data.push([],[], [],); |
| | | data.push([], [],[]); |
| | | |
| | | |
| | | const jsonObject = { data }; |
| | |
| | | } |
| | | data2.unshift([]); |
| | | |
| | | data2.push([], []); |
| | | data2.push([], [],[]); |
| | | |
| | | for (let i = 1; i < 2; i++) { |
| | | const inputData = this.jsonData[i].filter(item => item.type === '0' && item.read == 8888).map(item => { |
| | |
| | | const values2 = inputData.map(item => item.value); |
| | | |
| | | data2.push(values2); |
| | | data2.push([], [],[], []); |
| | | data2.push( [],[], []); |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | let obj = JSON.parse(msg.data); |
| | | console.log(obj) |
| | | // console.log(obj) |
| | | const weihuiling=obj.weihuiling; |
| | | const jsonData2 = this.jsonData; |
| | | |
| | |
| | | if (obj.zuhe1 && inputBox && Array.from(inputBox).every(box => !box.contains(target))) { |
| | | |
| | | //启动按钮 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | jsonData2[0][9].button.value = obj.qidong[0][0]; // 第一个子数组中第一个 type=66 的 button |
| | | jsonData2[0][10].button.value = obj.qidong[0][1]; // 第一个子数组中第二个 type=66 的 button |
| | | jsonData2[1][7].button.value = obj.qidong[0][2]; // 第二个子数组中第一个 type=66 的 button |
| | | jsonData2[1][8].button.value = obj.qidong[0][3]; |
| | | |
| | | |
| | | |
| | | // 输出更新后的 jsonData2 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // 执行更新逻辑 |
| | | for (let i = 0; i < 6; i++) { |
| | |
| | | }); |
| | | } |
| | | |
| | | //进片id |
| | | jsonData2.forEach((item) => { |
| | | item.forEach((subItem) => { |
| | | if (subItem.read === 9999) { |
| | | subItem.value = obj.jinpianid[0]; |
| | | } |
| | | }); |
| | | }); |
| | | //取片id |
| | | jsonData2.forEach((item) => { |
| | | item.forEach((subItem) => { |
| | | if (subItem.read === 8888) { |
| | | subItem.value = obj.qupianid[0]; |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | //故障更新 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | }, 50); |
| | | |
| | | document.addEventListener('mouseover', handleMouseMove); |
| | | |
| | | |
| | | |
| | | |
| | | jsonData2[0][9].button.value = obj.qidong[0][0]; // 第一个子数组中第一个 type=66 的 button |
| | | jsonData2[0][10].button.value = obj.qidong[0][1]; // 第一个子数组中第二个 type=66 的 button |
| | | jsonData2[1][7].button.value = obj.qidong[0][2]; // 第二个子数组中第一个 type=66 的 button |
| | | jsonData2[1][8].button.value = obj.qidong[0][3]; |
| | | //故障更新 |
| | | |
| | | for (let i = 0; i < jsonData2.length; i++) { |
| | | let arr = jsonData2[i]; |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //未回零更新 |
| | | |
| | | jsonData2[2][3].button.value = weihuiling[0][0]; |
| | |
| | | jsonData2[4][4].button.value = weihuiling[0][2]; |
| | | jsonData2[5][4].button.value = weihuiling[0][3]; |
| | | |
| | | // for (let i = 3; i < jsonData2.length; i++) { |
| | | // let arr2 = jsonData2[i]; |
| | | // for (let j = 3; j < arr2.length; j++) { |
| | | // let obj3 = arr2[j]; |
| | | // if(obj3.button){ |
| | | // if (obj3.button && (obj3.button.name === "未回零" || obj3.button.name === "NotZero" )) { |
| | | // obj3.button.value = weihuiling[0][i]; |
| | | // // console.log(obj3.button.value) |
| | | // } |
| | | |
| | | // } |
| | | |
| | | // } |
| | | // if(jsonData2[2][3].button.value===1){ |
| | | |
| | | |
| | | // jsonData2[2][3].button.name.replace("未回零","回零") ; |
| | | // } |
| | | // console.log(jsonData2) |
| | | //进片id |
| | | jsonData2.forEach((item) => { |
| | | item.forEach((subItem) => { |
| | | if (subItem.read === 9999) { |
| | | subItem.value = obj.jinpianid[0]; |
| | | } |
| | | }); |
| | | }); |
| | | //取片id |
| | | jsonData2.forEach((item) => { |
| | | item.forEach((subItem) => { |
| | | if (subItem.read === 8888) { |
| | | subItem.value = obj.qupianid[0]; |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | |
| | | //急停 |
| | | // console.log(jsonData2[5][4].button.value) |
| | | if(jsonData2[2][3].button.value===1){ |
| | | jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("未回零","已回零") ; |
| | | jsonData2[2][3].button.name=jsonData2[2][3].button.name.replace("NotZero","Zero") ; |
| | | } |
| | | if(jsonData2[3][3].button.value===1){ |
| | | jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("未回零","已回零") ; |
| | | jsonData2[3][3].button.name=jsonData2[3][3].button.name.replace("NotZero","Zero") ; |
| | | } |
| | | if(jsonData2[4][4].button.value===1){ |
| | | jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("未回零","已回零") ; |
| | | jsonData2[4][4].button.name=jsonData2[4][4].button.name.replace("NotZero","Zero") ; |
| | | } |
| | | if(jsonData2[5][4].button.value===1){ |
| | | jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("未回零","已回零") ; |
| | | jsonData2[5][4].button.name=jsonData2[5][4].button.name.replace("NotZero","Zero") ; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | }, 50); |
| | | |
| | | document.addEventListener('mouseover', handleMouseMove); |
| | | |
| | | }; |
| | | |
| | |
| | | .jiting{ |
| | | background-color: green; |
| | | } |
| | | |
| | | .error-button3{ |
| | | background-color: green; |
| | | |
| | | } |
| | | </style> |
| | |
| | | <el-button type="primary" @click="isAllowReorderingState()" :disabled="this.isAllowQueue">{{
|
| | | this.isAllowReordering == true ? $t('Not Allow') : $t('Allow')
|
| | | }}</el-button>
|
| | | <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border
|
| | | <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border :cell-style="cellStyle"
|
| | | style="width: 100%;overflow: auto;">
|
| | | <el-table-column prop="glassId" :label="$t('Barcode')"></el-table-column>
|
| | | <el-table-column prop="storageCage.orderId" :label="$t('Order No')"></el-table-column>
|
| | |
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
|
| | | <el-table-column prop="position" :label="$t('Position')"></el-table-column>
|
| | | <el-table-column prop="position" :label="$t('Position')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.position==1?$t('Yes'):$t('No') }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="position" :label="$t('Flip')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.flip==1?$t('Yes'):$t('No') }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
|
| | |
|
| | | <el-table-column prop="barcode" :label="$t('Complete')">
|
| | | <template slot-scope='scope'>
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="!isAllowQueue"
|
| | | @click="CompleteQueue(scope.row.id,scope.row.barcode)">{{ $t('Complete') }}</el-button>
|
| | | @click="CompleteQueue(scope.row.id,scope.row.barcode,scope.row.glassId)">{{ $t('Complete') }}</el-button>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :width="280" :label="$t('Operate')">
|
| | |
| | | ManuallyInfeedGlass: true,
|
| | | OutingQueue: true,
|
| | | OrderInfo: true,
|
| | | CageDetails: true
|
| | | CageDetails: true,
|
| | | |
| | | };
|
| | | },
|
| | | created() {
|
| | | this.load();
|
| | | this.init();
|
| | | },
|
| | | }
|
| | | ,
|
| | | methods: {
|
| | | |
| | | |
| | | init() {
|
| | | let viewname = "Home";
|
| | | if (typeof (WebSocket) == "undefined") {
|
| | |
| | | if (item.permissionId == "32" && item.state == 1) {
|
| | | this.ManuallyInfeedGlass = false;
|
| | | }
|
| | | if (item.permissionId == "32" && item.state == 1) {
|
| | | if (item.permissionId == "33" && item.state == 1) {
|
| | | this.OutingQueue = false;
|
| | | }
|
| | | if (item.permissionId == "33" && item.state == 1) {
|
| | | if (item.permissionId == "34" && item.state == 1) {
|
| | | this.OrderInfo = false;
|
| | | }
|
| | | if (item.permissionId == "34" && item.state == 1) {
|
| | | if (item.permissionId == "35" && item.state == 1) {
|
| | | this.CageDetails = false;
|
| | | }
|
| | | });
|
| | |
| | | });
|
| | | }
|
| | | ,
|
| | | cellStyle({ row, column, rowIndex, columnIndex }) {
|
| | | // console.log(row, column, "ss");
|
| | | column=rowIndex;
|
| | | rowIndex=column;
|
| | | let style="";
|
| | | if (columnIndex === 8&&row.position==1) {
|
| | | style="background-Color:yellow;";
|
| | | }
|
| | | if (columnIndex === 9&&row.flip==1) {
|
| | | style="background-Color:yellow;";
|
| | | }
|
| | | return style;
|
| | | }
|
| | | ,
|
| | | //合并行
|
| | | objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
| | | // console.log(row, column, "ss");
|
| | |
| | | if (rowIndex != 0) {
|
| | | barcode2 = arrOutSlice[rowIndex - 1].barcode;
|
| | | }
|
| | | if (columnIndex === 11) {
|
| | | if (columnIndex === 12) {
|
| | | if (barcode != barcode2) {
|
| | | // this.FrameNoFlag = barcode;
|
| | | for (let i = rowIndex; i < this.OutSlice.length; i++) {
|
| | |
| | | this.form5 = {};
|
| | | },
|
| | | //手动完成出片任务
|
| | | CompleteQueue(id,frameid) {
|
| | | CompleteQueue(id,frameid).then(res => {
|
| | | CompleteQueue(id,frameid,glassid) {
|
| | | CompleteQueue(id,frameid,glassid).then(res => {
|
| | | if (res.data.message == 200) {
|
| | | this.$message.success(this.$t('Operation successful'));
|
| | | }
|
| | |
| | | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| | | import org.springframework.context.ConfigurableApplicationContext; |
| | | |
| | | import com.example.springboot.component.WebSocketServer; |
| | | import com.example.springboot.component.*; |
| | | |
| | | |
| | | @SpringBootApplication |
| | |
| | | jsonObject.append("dache1", dache1); |
| | | jsonObject.append("xiaoche", xiaoche1); |
| | | jsonObject.append("fanzhuan", fanzhuan1); |
| | | |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | // |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | // 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"; |
| | |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList2); |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList2); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList3); |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList3); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList4, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList4); |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList4); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | |
| | | } |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | webserver.clearMessages(); |
| | | } |
| | | }} |
| | | |
| | | } |
| | | |
| | |
| | | jsonObject.append("params", params);
|
| | |
|
| | | // System.out.println("messageValue:" + arraylist +"messageValue2:" + arraylist2 );
|
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualJog");
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualJog");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | |
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualJog");
|
| | | if (sendwServer != null) {
|
| | | sendwServer.sendMessage(jsonObject.toString());
|
| | | }
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
|
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
|
| | |
|
| | | if (webSocketServer != null) {
|
| | | // String addressList1 = "DB101.0.0";
|
| | | if (webserver != null) {
|
| | | // String addressList1 = "DB101.0.0";
|
| | | // String addressList2 = "DB101.2.6";
|
| | | String addressList3 = "DB101.5.2";
|
| | | String addressList3 = "DB101.5.2";
|
| | |
|
| | |
|
| | | List<String> addressList2 = new ArrayList<>();
|
| | | addressList2.add("DB101.2.6");
|
| | | addressList2.add("DB101.2.7");
|
| | | addressList2.add("DB101.3.0");
|
| | | addressList2.add("DB101.3.1");
|
| | | addressList2.add("DB101.3.2");
|
| | | addressList2.add("DB101.3.3");
|
| | | addressList2.add("DB101.3.4");
|
| | | addressList2.add("DB101.3.5");
|
| | | List<String> addressList2 = new ArrayList<>();
|
| | | addressList2.add("DB101.2.6");
|
| | | addressList2.add("DB101.2.7");
|
| | | addressList2.add("DB101.3.0");
|
| | | addressList2.add("DB101.3.1");
|
| | | addressList2.add("DB101.3.2");
|
| | | addressList2.add("DB101.3.3");
|
| | | addressList2.add("DB101.3.4");
|
| | | addressList2.add("DB101.3.5");
|
| | |
|
| | |
|
| | | List<String> addressList211 = new ArrayList<>();
|
| | | addressList211.add("DB101.0.0");
|
| | | addressList211.add("DB101.0.1");
|
| | | addressList211.add("DB101.0.2");
|
| | | addressList211.add("DB101.0.3");
|
| | | addressList211.add("DB101.0.4");
|
| | | addressList211.add("DB101.0.5");
|
| | | addressList211.add("DB101.0.6");
|
| | | addressList211.add("DB101.0.7");
|
| | | addressList211.add("DB101.1.0");
|
| | | addressList211.add("DB101.1.1");
|
| | | addressList211.add("DB101.1.2");
|
| | | addressList211.add("DB101.1.3");
|
| | | addressList211.add("DB101.1.4");
|
| | | addressList211.add("DB101.1.5");
|
| | | addressList211.add("DB101.1.6");
|
| | | addressList211.add("DB101.1.7");
|
| | | List<String> addressList211 = new ArrayList<>();
|
| | | addressList211.add("DB101.0.0");
|
| | | addressList211.add("DB101.0.1");
|
| | | addressList211.add("DB101.0.2");
|
| | | addressList211.add("DB101.0.3");
|
| | | addressList211.add("DB101.0.4");
|
| | | addressList211.add("DB101.0.5");
|
| | | addressList211.add("DB101.0.6");
|
| | | addressList211.add("DB101.0.7");
|
| | | addressList211.add("DB101.1.0");
|
| | | addressList211.add("DB101.1.1");
|
| | | addressList211.add("DB101.1.2");
|
| | | addressList211.add("DB101.1.3");
|
| | | addressList211.add("DB101.1.4");
|
| | | addressList211.add("DB101.1.5");
|
| | | addressList211.add("DB101.1.6");
|
| | | addressList211.add("DB101.1.7");
|
| | |
|
| | | List<String> addressList311 = new ArrayList<>();
|
| | | addressList311.add("DB101.5.2");
|
| | | addressList311.add("DB101.5.3");
|
| | | List<String> addressList311 = new ArrayList<>();
|
| | | addressList311.add("DB101.5.2");
|
| | | addressList311.add("DB101.5.3");
|
| | |
|
| | | List<String> messages = webSocketServer.getMessages();
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为整数类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("messages:" + messages);
|
| | | String[] parts = lastMessage.split(",");
|
| | | List<Integer> messageValues = new ArrayList<>();
|
| | | for (String part : parts) {
|
| | | try {
|
| | | // 使用正则表达式清除非数字字符
|
| | | String cleanedPart = part.replaceAll("[^0-9-]", "");
|
| | | Integer value = Integer.parseInt(cleanedPart.trim());
|
| | | messageValues.add(value);
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为整数类型,则忽略该部分
|
| | | // e.printStackTrace();
|
| | | List<String> messages = webserver.getMessages();
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为整数类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("messages:" + messages);
|
| | | String[] parts = lastMessage.split(",");
|
| | | List<Integer> messageValues = new ArrayList<>();
|
| | | for (String part : parts) {
|
| | | try {
|
| | | // 使用正则表达式清除非数字字符
|
| | | String cleanedPart = part.replaceAll("[^0-9-]", "");
|
| | | Integer value = Integer.parseInt(cleanedPart.trim());
|
| | | messageValues.add(value);
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为整数类型,则忽略该部分
|
| | | // e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | | // 将消息值转换为布尔列表
|
| | | List<Boolean> messageBooleans = new ArrayList<>();
|
| | | for (Integer value : messageValues) {
|
| | | messageBooleans.add(value == 1 ? true : false);
|
| | | }
|
| | | // System.out.println(messageBooleans);
|
| | | List<Boolean> bolList = new ArrayList<>();
|
| | | List<Boolean> bolList2 = new ArrayList<>();
|
| | | List<Boolean> bolList3 = new ArrayList<>();
|
| | |
|
| | | for (int i = 0; i < 16 && i < messageBooleans.size(); i++) {
|
| | | bolList.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | for (int i = 16; i < 24 && i < messageBooleans.size(); i++) {
|
| | | bolList2.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | for (int i = 24; i < 26 && i < messageBooleans.size(); i++) {
|
| | | bolList3.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | // System.out.println(bolList);
|
| | | // System.out.println(bolList2);
|
| | | // System.out.println(bolList3);
|
| | | if (!bolList.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList211, bolList);
|
| | | System.out.println("messageValue:" + bolList + " written to PLC at address " + addressList211);
|
| | | }
|
| | | if (!bolList2.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList2, bolList2);
|
| | | System.out.println("messageValue:" + bolList2 + " written to PLC at address " + addressList2);
|
| | | }
|
| | | if (!bolList3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList311, bolList3);
|
| | | System.out.println("messageValue:" + bolList3 + " written to PLC at address " + addressList311);
|
| | | }
|
| | | webserver.clearMessages();
|
| | | }
|
| | |
|
| | | }
|
| | | // 将消息值转换为布尔列表
|
| | | List<Boolean> messageBooleans = new ArrayList<>();
|
| | | for (Integer value : messageValues) {
|
| | | messageBooleans.add(value == 1 ? true : false);
|
| | | }
|
| | | // System.out.println(messageBooleans);
|
| | | List<Boolean> bolList = new ArrayList<>();
|
| | | List<Boolean> bolList2 = new ArrayList<>();
|
| | | List<Boolean> bolList3 = new ArrayList<>();
|
| | |
|
| | | for (int i = 0; i < 16 && i < messageBooleans.size(); i++) {
|
| | | bolList.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | for (int i = 16; i < 24 && i < messageBooleans.size(); i++) {
|
| | | bolList2.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | for (int i = 24; i < 26 && i < messageBooleans.size(); i++) {
|
| | | bolList3.add(messageBooleans.get(i));
|
| | | }
|
| | |
|
| | | // System.out.println(bolList);
|
| | | // System.out.println(bolList2);
|
| | | // System.out.println(bolList3);
|
| | | if (!bolList.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList211, bolList);
|
| | | System.out.println("messageValue:" + bolList + " written to PLC at address " + addressList211);
|
| | | }
|
| | | if (!bolList2.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList2, bolList2);
|
| | | System.out.println("messageValue:" + bolList2 + " written to PLC at address " + addressList2);
|
| | | }
|
| | | if (!bolList3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(addressList311, bolList3);
|
| | | System.out.println("messageValue:" + bolList3 + " written to PLC at address " + addressList311);
|
| | | }
|
| | | webSocketServer.clearMessages();
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | // // TODO Auto-generated catch block |
| | | // e.printStackTrace(); |
| | | // } |
| | | spianService.selectAll("X12345610102GV"); |
| | | //spianService.selectAll("X12345610102GV"); |
| | | List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 获取prc进片请求数据 |
| | | List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态 |
| | | List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 获取进片车任务是否启动 |
| | |
| | | addresses4.add("DB103.40"); |
| | | List<Short> arraylist4 = S7control.getinstance().readWords(addresses4); |
| | | |
| | | List<Short> arraylist5 = S7control.getinstance().ReadWord("DB103.40", 1); |
| | | List<Short> arraylist6 = S7control.getinstance().ReadWord("DB103.44", 1); |
| | | List<Short> arraylist7 = S7control.getinstance().ReadWord("DB103.48", 1); |
| | | List<Short> arraylist8 = S7control.getinstance().ReadWord("DB103.50", 1); |
| | | List<Short> arraylist5 = S7control.getinstance().ReadWord("DB106.0", 1); |
| | | List<Short> arraylist6 = S7control.getinstance().ReadWord("DB106.12", 1); |
| | | List<Short> arraylist7 = S7control.getinstance().ReadWord("DB106.40", 1); |
| | | List<Short> arraylist8 = S7control.getinstance().ReadWord("DB106.50", 1); |
| | | List<String> addresses9 = new ArrayList<>(); |
| | | addresses9.add("DB104.1.2"); |
| | | addresses9.add("DB104.1.3"); |
| | |
| | | List<Boolean> B01readstart = S7control.getinstance().readBits(B01start); |
| | | List<Boolean> B02readstart = S7control.getinstance().readBits(B02start); |
| | | |
| | | short[] combinedBinaryShortArray = PlcManualonePosition.PLCBooleanConverter.convertListsToBinaryShortArray( |
| | | short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray( |
| | | A01readstart, A02readstart,B01readstart, B02readstart |
| | | ); |
| | | |
| | |
| | | jsonObject.append("weihuiling", params3); |
| | | jsonObject.append("qidong", combinedBinaryShortArray); |
| | | |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | List<String> waddresses1 = new ArrayList<>(); |
| | | waddresses1.add("DB100.108"); |
| | | waddresses1.add("DB100.20"); |
| | |
| | | List<String> waddresses2 = new ArrayList<>(); |
| | | waddresses2.add("DB100.110"); |
| | | waddresses2.add("DB100.176"); |
| | | waddresses2.add("DB103.34"); |
| | | waddresses2.add("DB103.34"); |
| | | |
| | | List<String> waddresses3 = new ArrayList<>(); |
| | | waddresses3.add("DB100.112"); |
| | | waddresses3.add("DB100.24"); |
| | | waddresses3.add("DB103.36"); |
| | | waddresses3.add("DB103.36"); |
| | | |
| | | List<String> waddresses4 = new ArrayList<>(); |
| | | waddresses4.add("DB100.114"); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | System.out.println("Values " + sValue + " written to PLC at address " + waddresses1); |
| | | } |
| | | } |
| | | |
| | | // 写入A02 |
| | | |
| | | if ( messageArray.getJSONArray(1).size() > 0) { |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | JSONArray jsonArray = messageArray.getJSONArray(1); |
| | | List<Short> sValue2 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | |
| | | // 写入新的位值列表 |
| | | S7control.getinstance().WriteBit(A02start, a02startval); |
| | | } |
| | | |
| | | |
| | | |
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2); |
| | |
| | | } |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | webserver.clearMessages(); |
| | | } |
| | | }} |
| | | } |
| | | } |
| | | } |
| | |
| | | List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
|
| | |
|
| | |
|
| | | short[] combinedBinaryShortArray = PlcManualonePosition2.PLCBooleanConverter.convertListsToBinaryShortArray(
|
| | | short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
|
| | | A01readstart, A02readstart
|
| | | );
|
| | |
|
| | |
| | | jsonObject.append("weihuiling", params3);
|
| | | jsonObject.append("qidong", combinedBinaryShortArray);
|
| | | // System.out.println(jsonObject);
|
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
|
| | | if (sendwServer != null) {
|
| | | sendwServer.sendMessage(jsonObject.toString());
|
| | | }
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
|
| | | if (webSocketServer != null) {
|
| | | List<String> messages = webSocketServer.getMessages();
|
| | | List<String> waddresses1 = new ArrayList<>();
|
| | | waddresses1.add("DB100.116");
|
| | | waddresses1.add("DB100.16");
|
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
|
| | | if (webserver != null) {
|
| | | List<String> messages = webserver.getMessages();
|
| | | List<String> waddresses1 = new ArrayList<>();
|
| | | waddresses1.add("DB100.116");
|
| | | waddresses1.add("DB100.16");
|
| | |
|
| | |
|
| | | List<String> waddresses2 = new ArrayList<>();
|
| | | waddresses2.add("DB100.118");
|
| | | waddresses2.add("DB100.192");
|
| | | List<String> waddresses2 = new ArrayList<>();
|
| | | waddresses2.add("DB100.118");
|
| | | waddresses2.add("DB100.192");
|
| | |
|
| | |
|
| | | // 故障地址
|
| | | List<String> waddresses3 = new ArrayList<>();
|
| | | waddresses3.add("DB103.242");
|
| | | waddresses3.add("DB103.248");
|
| | | // 故障地址
|
| | | List<String> waddresses3 = new ArrayList<>();
|
| | | waddresses3.add("DB103.242");
|
| | | waddresses3.add("DB103.248");
|
| | |
|
| | | // 复位地址
|
| | | List<String> waddresses4 = new ArrayList<>();
|
| | | waddresses4.add("DB101.3.6");
|
| | | waddresses4.add("DB101.4.1");
|
| | | // 复位地址
|
| | | List<String> waddresses4 = new ArrayList<>();
|
| | | waddresses4.add("DB101.3.6");
|
| | | waddresses4.add("DB101.4.1");
|
| | |
|
| | | // 回零地址
|
| | | List<String> waddresses5 = new ArrayList<>();
|
| | | waddresses5.add("DB101.3.7");
|
| | | waddresses5.add("DB101.4.2");
|
| | | // 回零地址
|
| | | List<String> waddresses5 = new ArrayList<>();
|
| | | waddresses5.add("DB101.3.7");
|
| | | waddresses5.add("DB101.4.2");
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | |
|
| | | // A01下发
|
| | | if (messageArray.getJSONArray(0).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(0);
|
| | | List<Short> 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | // A01下发
|
| | | if (messageArray.getJSONArray(0).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(0);
|
| | | List<Short> 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses1, sValue);
|
| | | if (A01readstart != null && !A01readstart.isEmpty()) {
|
| | | // 创建一个新的列表用于写入新值
|
| | | List<Boolean> a01startval = new ArrayList<>();
|
| | | // 遍历所有读取到的位值
|
| | | for (Boolean bit : A01readstart) {
|
| | | // 取反当前位的值并添加到新的列表中
|
| | | a01startval.add(!bit);
|
| | | }
|
| | | // 写入新的位值列表
|
| | | S7control.getinstance().WriteBit(A01start, a01startval);
|
| | | }
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses1, sValue);
|
| | | if (A01readstart != null && !A01readstart.isEmpty()) {
|
| | | // 创建一个新的列表用于写入新值
|
| | | List<Boolean> a01startval = new ArrayList<>();
|
| | | // 遍历所有读取到的位值
|
| | | for (Boolean bit : A01readstart) {
|
| | | // 取反当前位的值并添加到新的列表中
|
| | | a01startval.add(!bit);
|
| | |
|
| | | // A02下发
|
| | | if (messageArray.getJSONArray(1).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(1);
|
| | | List<Short> sValue2 = 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue2.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | // 写入新的位值列表
|
| | | S7control.getinstance().WriteBit(A01start, a01startval);
|
| | | if (!sValue2.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses2, sValue2);
|
| | | if (A02readstart != null && !A02readstart.isEmpty()) {
|
| | | // 创建一个新的列表用于写入新值
|
| | | List<Boolean> a02startval = new ArrayList<>();
|
| | | // 遍历所有读取到的位值
|
| | | for (Boolean bit : A02readstart) {
|
| | | // 取反当前位的值并添加到新的列表中
|
| | | a02startval.add(!bit);
|
| | | }
|
| | | // 写入新的位值列表
|
| | | S7control.getinstance().WriteBit(A02start, a02startval);
|
| | | }
|
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
|
| | | }
|
| | | }
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
|
| | |
|
| | | // 写入故障地址
|
| | | if (messageArray.getJSONArray(2).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(2);
|
| | | List<Short> sValue2 = 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue2.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue2.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses3, sValue2);
|
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
|
| | | }
|
| | | }
|
| | |
|
| | | // 写入复位地址
|
| | | if (messageArray.getJSONArray(3).size() > 0) {
|
| | | JSONArray jsonArray3 = messageArray.getJSONArray(3);
|
| | | List<Boolean> sValue3 = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray3.size(); i++) {
|
| | | Object value = jsonArray3.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | sValue3.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);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(waddresses4, sValue3);
|
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses4);
|
| | | }
|
| | | }
|
| | |
|
| | | // 写入回零地址
|
| | | if (messageArray.getJSONArray(4).size() > 0) {
|
| | | JSONArray jsonArray3 = messageArray.getJSONArray(4);
|
| | | List<Boolean> sValue3 = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray3.size(); i++) {
|
| | | Object value = jsonArray3.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | sValue3.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);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(waddresses5, sValue3);
|
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses5);
|
| | | }
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | | }
|
| | |
|
| | | // A02下发
|
| | | if (messageArray.getJSONArray(1).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(1);
|
| | | List<Short> sValue2 = 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue2.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue2.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses2, sValue2);
|
| | | if (A02readstart != null && !A02readstart.isEmpty()) {
|
| | | // 创建一个新的列表用于写入新值
|
| | | List<Boolean> a02startval = new ArrayList<>();
|
| | | // 遍历所有读取到的位值
|
| | | for (Boolean bit : A02readstart) {
|
| | | // 取反当前位的值并添加到新的列表中
|
| | | a02startval.add(!bit);
|
| | | }
|
| | | // 写入新的位值列表
|
| | | S7control.getinstance().WriteBit(A02start, a02startval);
|
| | | }
|
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
|
| | | }
|
| | | }
|
| | |
|
| | | // 写入故障地址
|
| | | if (messageArray.getJSONArray(2).size() > 0) {
|
| | | JSONArray jsonArray = messageArray.getJSONArray(2);
|
| | | List<Short> sValue2 = 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-]", "");
|
| | | short val = Short.parseShort(cleanedValue.trim());
|
| | | sValue2.add(val);
|
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list");
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 short 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue2.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(waddresses3, sValue2);
|
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
|
| | | }
|
| | | }
|
| | |
|
| | | // 写入复位地址
|
| | | if (messageArray.getJSONArray(3).size() > 0) {
|
| | | JSONArray jsonArray3 = messageArray.getJSONArray(3);
|
| | | List<Boolean> sValue3 = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray3.size(); i++) {
|
| | | Object value = jsonArray3.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | sValue3.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);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(waddresses4, sValue3);
|
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses4);
|
| | | }
|
| | | }
|
| | |
|
| | | // 写入回零地址
|
| | | if (messageArray.getJSONArray(4).size() > 0) {
|
| | | JSONArray jsonArray3 = messageArray.getJSONArray(4);
|
| | | List<Boolean> sValue3 = new ArrayList<>();
|
| | | for (int i = 0; i < jsonArray3.size(); i++) {
|
| | | Object value = jsonArray3.get(i);
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | sValue3.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);
|
| | | }
|
| | | }
|
| | | }
|
| | | if (!sValue3.isEmpty()) {
|
| | | S7control.getinstance().WriteBit(waddresses5, sValue3);
|
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses5);
|
| | | }
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webSocketServer.clearMessages();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | jsonObject.append("params", arraylist); |
| | | jsonObject.append("state", state); |
| | | // jsonObject.append("action", sholist); |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter"); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter"); |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter"); |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | String addressList = "DB100.0"; |
| | | String addressList = "DB100.0"; |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | System.out.println("messages:" + messages); |
| | | String[] parts = lastMessage.split(","); |
| | | List<Short> messageValues = new ArrayList<>(); |
| | | for (String part : parts) { |
| | | try { |
| | | // 使用正则表达式清除非数字字符 |
| | | String cleanedPart = part.replaceAll("[^0-9-]", ""); |
| | | short value = Short.parseShort(cleanedPart.trim()); |
| | | messageValues.add(value); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | System.out.println("messages:" + messages); |
| | | String[] parts = lastMessage.split(","); |
| | | List<Short> messageValues = new ArrayList<>(); |
| | | for (String part : parts) { |
| | | try { |
| | | // 使用正则表达式清除非数字字符 |
| | | String cleanedPart = part.replaceAll("[^0-9-]", ""); |
| | | short value = Short.parseShort(cleanedPart.trim()); |
| | | messageValues.add(value); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | |
| | | e.printStackTrace(); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | // 将消息值写入 PLC |
| | | S7control.getinstance().WriteWord(addressList, messageValues); |
| | | System.out.println("messageValues:" + messageValues); |
| | | System.out.println("addressList:" + addressList); |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | |
| | | // 将消息值写入 PLC |
| | | S7control.getinstance().WriteWord(addressList, messageValues); |
| | | System.out.println("messageValues:" + messageValues); |
| | | System.out.println("addressList:" + addressList); |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | |
| | | jsonObject.append("fanzhuan", fanzhuan1); |
| | | jsonObject.append("xiaoche", xiaoche1); |
| | | |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | List<String> waddresses1 = new ArrayList<>(); |
| | | waddresses1.add("DB100.0"); |
| | | waddresses1.add("DB100.2"); |
| | | waddresses1.add("DB100.4"); |
| | | waddresses1.add("DB100.6"); |
| | | waddresses1.add("DB100.26"); |
| | | waddresses1.add("DB100.28"); |
| | | waddresses1.add("DB100.30"); |
| | | waddresses1.add("DB100.32"); |
| | | waddresses1.add("DB100.34"); |
| | | waddresses1.add("DB100.36"); |
| | | waddresses1.add("DB100.38"); |
| | | waddresses1.add("DB100.40"); |
| | | |
| | | String addressList2 = "DB100.8"; |
| | | String addressList3 = "DB100.12"; |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | List<String> waddresses1 = new ArrayList<>(); |
| | | waddresses1.add("DB100.0"); |
| | | waddresses1.add("DB100.2"); |
| | | waddresses1.add("DB100.4"); |
| | | waddresses1.add("DB100.6"); |
| | | waddresses1.add("DB100.26"); |
| | | waddresses1.add("DB100.28"); |
| | | waddresses1.add("DB100.30"); |
| | | waddresses1.add("DB100.32"); |
| | | waddresses1.add("DB100.34"); |
| | | waddresses1.add("DB100.36"); |
| | | waddresses1.add("DB100.38"); |
| | | waddresses1.add("DB100.40"); |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | String addressList2 = "DB100.8"; |
| | | String addressList3 = "DB100.12"; |
| | | |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList = new ArrayList<>(); |
| | | for (int i = 0; i < 3; 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); |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList = new ArrayList<>(); |
| | | for (int i = 0; i < 3; 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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第一个地址 |
| | | if (messageArray.getJSONArray(3).size() > 0) { |
| | | Object value = messageArray.getJSONArray(3).get(0); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList2); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | // 写入第一个地址 |
| | | if (messageArray.getJSONArray(3).size() > 0) { |
| | | Object value = messageArray.getJSONArray(3).get(0); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList2); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第二个地址 |
| | | if (messageArray.getJSONArray(4).size() > 0) { |
| | | Object value = messageArray.getJSONArray(4).get(0); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList3); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | // 写入第二个地址 |
| | | if (messageArray.getJSONArray(4).size() > 0) { |
| | | Object value = messageArray.getJSONArray(4).get(0); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue)); |
| | | System.out |
| | | .println("messageValue:" + Arrays.asList(sValue) + " written to PLC at address " + addressList3); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第三个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(waddresses1, mergedList); |
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + waddresses1); |
| | | } |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | |
| | | // 写入第三个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(waddresses1, mergedList); |
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + waddresses1); |
| | | } |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | } |
| | | |
| | | } |
| | |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | |
| | | public class PlcParameter2 extends Thread { |
| | | String name = ""; |
| | | Integer count = 0; |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // 手动状态地址 |
| | | // 手动状态地址 |
| | | List<String> addressList1 = new ArrayList<>(); |
| | | |
| | | addressList1.add("DB103.44");//D01 |
| | |
| | | List<String> data3 = S7control.getinstance().readStrings(addressList3); |
| | | // A01 A02 B01 B02 |
| | | List<String> addresses4 = new ArrayList<>(); |
| | | addresses4.add("DB103.52"); |
| | | addresses4.add("DB103.54"); |
| | | addresses4.add("DB103.56"); |
| | | addresses4.add("DB103.60"); |
| | | addresses4.add("DB103.32"); |
| | | addresses4.add("DB103.34"); |
| | | addresses4.add("DB103.36"); |
| | | addresses4.add("DB103.40"); |
| | | |
| | | List<Short> data4 = S7control.getinstance().readWords(addresses4); |
| | | |
| | |
| | | jsonObject.append("jiting", anniuparams); |
| | | |
| | | |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (webSocketServer != null) { |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | |
| | | |
| | | |
| | | List<String> messages = webserver.getMessages(); |
| | | List<String> addressList = new ArrayList<>(); |
| | | |
| | | addressList.add("DB101.9.2"); |
| | |
| | | } |
| | | } |
| | | if (!sValue3.isEmpty()) { |
| | | S7control.getinstance().WriteBit(addressList, sValue3); |
| | | S7control.getinstance().WriteBit(addressList, sValue3); |
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | if (!sValue3.isEmpty()) { |
| | | S7control.getinstance().WriteBit(niuanaddressList3, sValue3); |
| | | S7control.getinstance().WriteBit(niuanaddressList3, sValue3); |
| | | |
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3); |
| | | } |
| | |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | jsonObject.append("params", arraylist);
|
| | |
|
| | |
|
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | |
|
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | if (sendwServer != null) {
|
| | | sendwServer.sendMessage(jsonObject.toString());
|
| | | }
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning1");
|
| | | if (webSocketServer != null) {
|
| | | List<String> messages = webSocketServer.getMessages();
|
| | | //存片格 出片格地址
|
| | | String addressList3 = "DB100.42";
|
| | | if (webserver != null) {
|
| | | List<String> messages = webserver.getMessages();
|
| | | //存片格 出片格地址
|
| | | String addressList3 = "DB100.42";
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | |
|
| | | // 整合第 1 到 3 个数组并去掉 null 元素
|
| | | List<Short> mergedList = new ArrayList<>();
|
| | | for (int i = 0; i < 5; 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);
|
| | | // 整合第 1 到 3 个数组并去掉 null 元素
|
| | | List<Short> mergedList = new ArrayList<>();
|
| | | for (int i = 0; i < 5; 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);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | // 写入存片格 出片格位置设定数据
|
| | | if (!mergedList.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addressList3, mergedList);
|
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList3);
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | // 写入存片格 出片格位置设定数据
|
| | | if (!mergedList.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addressList3, mergedList);
|
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList3);
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webSocketServer.clearMessages();
|
| | | }
|
| | |
|
| | |
|
| | |
| | | jsonObject.append("params", arraylist);
|
| | |
|
| | |
|
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning2");
|
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning2");
|
| | | // if (sendwServer != null) {
|
| | | // sendwServer.sendMessage(jsonObject.toString());
|
| | | // }
|
| | |
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Positioning2");
|
| | | if (sendwServer != null) {
|
| | | sendwServer.sendMessage(jsonObject.toString());
|
| | | }
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning2");
|
| | | if (webSocketServer != null) {
|
| | | List<String> messages = webSocketServer.getMessages();
|
| | | //B01 B02 地址
|
| | | String addressList3 = "DB100.88";
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | if (webserver != null) {
|
| | | List<String> messages = webserver.getMessages();
|
| | | //B01 B02 地址
|
| | | String addressList3 = "DB100.88";
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // 将最后一个消息转换为 short 类型的列表
|
| | | String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | | JSONArray messageArray = new JSONArray(lastMessage);
|
| | |
|
| | | // 整合第 1 到 3 个数组并去掉 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);
|
| | | // 整合第 1 到 3 个数组并去掉 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);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | // 写入b01 b02地址
|
| | | if (!mergedList.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addressList3, mergedList);
|
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList3);
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | | // 写入b01 b02地址
|
| | | if (!mergedList.isEmpty()) {
|
| | | S7control.getinstance().WriteWord(addressList3, mergedList);
|
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList3);
|
| | | }
|
| | |
|
| | | // 清空消息列表
|
| | | webSocketServer.clearMessages();
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | |
| | | |
| | | |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | |
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ServoManualone"); |
| | | if (webSocketServer != null) { |
| | | List<String> messages = webSocketServer.getMessages(); |
| | | 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); |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | |
| | | // 写入AO1组合 |
| | | if (messageArray.getJSONArray(0).size() > 0 ) { |
| | | JSONArray jsonArray = messageArray.getJSONArray(0); |
| | | List<Short> 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-]", ""); |
| | | short val = Short.parseShort(cleanedValue.trim()); |
| | | sValue.add(val); |
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list"); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | // 写入AO1组合 |
| | | if (messageArray.getJSONArray(0).size() > 0) { |
| | | JSONArray jsonArray = messageArray.getJSONArray(0); |
| | | List<Short> 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-]", ""); |
| | | short val = Short.parseShort(cleanedValue.trim()); |
| | | sValue.add(val); |
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list"); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | S7control.getinstance().WriteWord(addresses, sValue); |
| | | // 检查是否读取到了位值,并且列表不为空 |
| | | if (A01readstart != null && !A01readstart.isEmpty()) { |
| | | // 创建一个新的列表用于写入新值 |
| | | List<Boolean> a01startval = new ArrayList<>(); |
| | | // 遍历所有读取到的位值 |
| | | for (Boolean bit : A01readstart) { |
| | | // 取反当前位的值并添加到新的列表中 |
| | | a01startval.add(!bit); |
| | | } |
| | | // 写入新的位值列表 |
| | | S7control.getinstance().WriteBit(A01start, a01startval); |
| | | } |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | S7control.getinstance().WriteWord(addresses, sValue); |
| | | // 检查是否读取到了位值,并且列表不为空 |
| | | if (A01readstart != null && !A01readstart.isEmpty()) { |
| | | // 创建一个新的列表用于写入新值 |
| | | List<Boolean> a01startval = new ArrayList<>(); |
| | | // 遍历所有读取到的位值 |
| | | for (Boolean bit : A01readstart) { |
| | | // 取反当前位的值并添加到新的列表中 |
| | | a01startval.add(!bit); |
| | | |
| | | //// 写入AO2组合 |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | JSONArray jsonArray2 = messageArray.getJSONArray(1); |
| | | List<Short> sValue2 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray2.size(); i++) { |
| | | Object value = jsonArray2.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short val = Short.parseShort(cleanedValue.trim()); |
| | | sValue2.add(val); |
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list"); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | // 写入新的位值列表 |
| | | S7control.getinstance().WriteBit(A01start, a01startval); |
| | | } |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses); |
| | | } |
| | | } |
| | | if (!sValue2.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addresses2, sValue2); |
| | | |
| | | |
| | | //// 写入AO2组合 |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | JSONArray jsonArray2 = messageArray.getJSONArray(1); |
| | | List<Short> sValue2 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray2.size(); i++) { |
| | | Object value = jsonArray2.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short val = Short.parseShort(cleanedValue.trim()); |
| | | sValue2.add(val); |
| | | System.out.println("messageValue:" + Arrays.asList(val) + " added to the list"); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | if (A02readstart != null && !A02readstart.isEmpty()) { |
| | | // 创建一个新的列表用于写入新值 |
| | | List<Boolean> a02startval = new ArrayList<>(); |
| | | // 遍历所有读取到的位值 |
| | | for (Boolean bit : A02readstart) { |
| | | // 取反当前位的值并添加到新的列表中 |
| | | a02startval.add(!bit); |
| | | } |
| | | // 写入新的位值列表 |
| | | S7control.getinstance().WriteBit(A02start, a02startval); |
| | | } |
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + addresses2); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue2.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addresses2, sValue2); |
| | | |
| | | if (A02readstart != null && !A02readstart.isEmpty()) { |
| | | // 创建一个新的列表用于写入新值 |
| | | List<Boolean> a02startval = new ArrayList<>(); |
| | | // 遍历所有读取到的位值 |
| | | for (Boolean bit : A02readstart) { |
| | | // 取反当前位的值并添加到新的列表中 |
| | | a02startval.add(!bit); |
| | | |
| | | // 复位按钮写入 |
| | | if (messageArray.getJSONArray(2).size() > 0) { |
| | | JSONArray jsonArray3 = messageArray.getJSONArray(2); |
| | | List<Boolean> sValue3 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray3.size(); i++) { |
| | | Object value = jsonArray3.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValue3.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(A02start, a02startval); |
| | | } |
| | | System.out.println("Values " + sValue2 + " written to PLC at address " + addresses2); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 复位按钮写入 |
| | | if (messageArray.getJSONArray(2).size() > 0) { |
| | | JSONArray jsonArray3 = messageArray.getJSONArray(2); |
| | | List<Boolean> sValue3 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray3.size(); i++) { |
| | | Object value = jsonArray3.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValue3.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); |
| | | if (!sValue3.isEmpty()) { |
| | | S7control.getinstance().WriteBit(Reset, sValue3); |
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + Reset); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue3.isEmpty()) { |
| | | S7control.getinstance().WriteBit(Reset, sValue3); |
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + Reset); |
| | | } |
| | | } |
| | | |
| | | //回零按钮写入 |
| | | if (messageArray.getJSONArray(3).size() > 0) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(3); |
| | | List<Boolean> sValue4 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValue4.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); |
| | | //回零按钮写入 |
| | | if (messageArray.getJSONArray(3).size() > 0) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(3); |
| | | List<Boolean> sValue4 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValue4.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); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue4.isEmpty()) { |
| | | S7control.getinstance().WriteBit(waddresses4, sValue4); |
| | | System.out.println("Values " + sValue4 + " written to PLC at address " + waddresses4); |
| | | } |
| | | } |
| | | } |
| | | if (!sValue4.isEmpty()) { |
| | | S7control.getinstance().WriteBit(waddresses4, sValue4); |
| | | System.out.println("Values " + sValue4 + " written to PLC at address " + waddresses4); |
| | | } |
| | | } |
| | | |
| | | |
| | | //进片ID写入 |
| | | if (messageArray.getJSONArray(4).size() > 0) { |
| | | //取片ID写入 |
| | | if (messageArray.getJSONArray(5).size() > 0) { |
| | | // JSONArray jsonArray5 = messageArray.getJSONArray(4); |
| | | String jsonArray5 = String.valueOf(messageArray.getJSONArray(4)); |
| | | if (!jsonArray5.isEmpty()) { |
| | | String jsonArray5 = String.valueOf(messageArray.getJSONArray(5)); |
| | | if (!jsonArray5.isEmpty()) { |
| | | // String value = (String) jsonArray5.get(0); |
| | | jsonArray5 = jsonArray5.replaceAll("[\\[\\]\"]", ""); // 去除方括号和双引号 |
| | | outmesid( jsonArray5,inputGlassIdAddress); |
| | | System.out.println("Values " + jsonArray5 + " written to PLC at address " + inputGlassIdAddress); |
| | | } |
| | | } |
| | | // 存片ID写入 |
| | | if (messageArray.getJSONArray(5).size() > 0) { |
| | | JSONArray jsonArray6 = messageArray.getJSONArray(5); |
| | | |
| | | if (!jsonArray6.isEmpty()) { |
| | | String value2 = (String) jsonArray6.get(0); |
| | | outmesid( value2,outputGlassIdAddress); |
| | | System.out.println("Values " + value2 + " written to PLC at address " + outputGlassIdAddress); |
| | | } |
| | | } |
| | | if (messageArray.getJSONArray(6).size() > 0) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(6); |
| | | List<Boolean> sValueb4 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValueb4.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); |
| | | jsonArray5 = jsonArray5.replaceAll("[\\[\\]\"]", ""); // 去除方括号和双引号 |
| | | outmesid(jsonArray5, outputGlassIdAddress); |
| | | System.out.println("Values1 " + jsonArray5 + " written to PLC at address " + outputGlassIdAddress); |
| | | } |
| | | } |
| | | } |
| | | if (!sValueb4.isEmpty()) { |
| | | // 进片ID写入 |
| | | if (messageArray.getJSONArray(4).size() > 0) { |
| | | JSONArray jsonArray6 = messageArray.getJSONArray(4); |
| | | |
| | | S7control.getinstance().WriteBit(A01Bstart, sValueb4); |
| | | System.out.println("Values " + sValueb4 + " written to PLC at address " + A01Bstart); |
| | | } |
| | | } |
| | | |
| | | |
| | | if (messageArray.getJSONArray(7).size() > 0) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(7); |
| | | List<Boolean> sValueb5 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValueb5.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); |
| | | if (!jsonArray6.isEmpty()) { |
| | | String value2 = (String) jsonArray6.get(0); |
| | | outmesid(value2.trim(), inputGlassIdAddress); |
| | | System.out.println("Values2 " + value2 + " written to PLC at address " + inputGlassIdAddress); |
| | | } |
| | | } |
| | | } |
| | | if (!sValueb5.isEmpty()) { |
| | | |
| | | S7control.getinstance().WriteBit(A02Bstart, sValueb5); |
| | | System.out.println("Values " + sValueb5 + " written to PLC at address " + A02Bstart); |
| | | |
| | | if (messageArray.getJSONArray(6).size() > 0) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(6); |
| | | List<Boolean> sValueb4 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValueb4.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); |
| | | } |
| | | } |
| | | } |
| | | if (!sValueb4.isEmpty()) { |
| | | |
| | | S7control.getinstance().WriteBit(A01Bstart, sValueb4); |
| | | System.out.println("Values " + sValueb4 + " written to PLC at address " + A01Bstart); |
| | | } |
| | | } |
| | | |
| | | |
| | | if (messageArray.getJSONArray(7).size() > 0 && !messageArray.isNull(7)) { |
| | | JSONArray jsonArray4 = messageArray.getJSONArray(7); |
| | | List<Boolean> sValueb5 = new ArrayList<>(); |
| | | for (int i = 0; i < jsonArray4.size(); i++) { |
| | | Object value = jsonArray4.get(i); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | sValueb5.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); |
| | | } |
| | | } |
| | | } |
| | | if (!sValueb5.isEmpty()) { |
| | | |
| | | S7control.getinstance().WriteBit(A02Bstart, sValueb5); |
| | | System.out.println("Values " + sValueb5 + " written to PLC at address " + A02Bstart); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | |
| | | // if (messageArray.getJSONArray(8).size() > 0 ) { |
| | | // JSONArray jsonArray5 = messageArray.getJSONArray(8); |
| | | // List<Boolean> sValueb5 = new ArrayList<>(); |
| | | // for (int i = 0; i < jsonArray5.size(); i++) { |
| | | // Object value = jsonArray5.get(i); |
| | | // if (value != null && !value.toString().equals("null")) { |
| | | // try { |
| | | // String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // boolean val = "1".equals(cleanedValue.trim()); |
| | | // sValueb5.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); |
| | | // } |
| | | // } |
| | | // } |
| | | // if (!sValueb5.isEmpty()) { |
| | | // |
| | | // S7control.getinstance().WriteBit(abortresumeTasks, sValueb5); |
| | | // System.out.println("Values " + sValueb5 + " written to PLC at address " + A02Bstart); |
| | | // } |
| | | // } |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | |
| | |
|
| | | JSONObject jsonObject = new JSONObject();
|
| | | jsonObject.append("params", params);
|
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
|
| | | if (sendwServer != null) {
|
| | | sendwServer.sendMessage(jsonObject.toString());
|
| | | }
|
| | | }
|
| | |
|
| | | WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
|
| | | if (webSocketServer != null) {
|
| | |
|
| | | List<String> messages = webSocketServer.getMessages();
|
| | |
|
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("action");
|
| | | if (sendwServer != null) {
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | List<String> messages = webserver.getMessages();
|
| | |
|
| | | String addressList = "DB2.0.0";
|
| | |
|
| | |
| | | System.out.println("messageValues:" + messageBooleans);
|
| | | System.out.println("addressList:" + addressList);
|
| | | // 清空消息列表
|
| | | webSocketServer.clearMessages();
|
| | | webserver.clearMessages();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | FileInputStream fileInputStream; |
| | | try { |
| | | // 从文件中读取字节数据存入 fileInputStream |
| | | fileInputStream = new FileInputStream("src/main/resources/Alarm.json"); |
| | | fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); |
| | | // 读取 fileInputStream 中字节并将其解码为字符 |
| | | InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); |
| | | // 提高读取效率,在 BufferedReader 内包装 InputStreamReader |
| | |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("params", plclist); |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("alarm"); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("alarm"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // 将获取的布尔类型转换为整数类型 |
| | | List<Integer> Intlist = new ArrayList<>(); |
| | | for (Boolean value : plclist) { |
| | | Intlist.add(value == true ? 1 : 0); |
| | | |
| | | } |
| | | // 将获取的布尔类型转换为整数类型 |
| | | List<Integer> Intlist = new ArrayList<>(); |
| | | for (Boolean value : plclist) { |
| | | Intlist.add(value == true ? 1 : 0); |
| | | |
| | | // 将Intlist转换为数组 |
| | | // System.out.println(Intlist); |
| | | Integer[] shuzu1 = Intlist.toArray(new Integer[0]); |
| | | } |
| | | |
| | | // 定义的报警内容数组,获取json返回的集合 |
| | | List<String> myCollection; |
| | | myCollection = readValue(); |
| | | String[] array1 = myCollection.toArray(new String[myCollection.size()]); |
| | | // System.out.println(array1.length); |
| | | alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class); |
| | | for (short i = 0; i < array1.length; i++) { |
| | | // 查询对应报警信息结束时间为null的条数 |
| | | short result = alarmMapper.selectnullti(array1[i]); |
| | | // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0 |
| | | // System.out.println(result); |
| | | if (shuzu1[i] == 1 && result == 0) { |
| | | // 填加一条报警信息,有开始时间 |
| | | alarmMapper.Insertalarm(array1[i]); |
| | | } else if (shuzu1[i] == 0 && result > 0) { |
| | | // 修改该条报警信息的结束时间 |
| | | alarmMapper.updatealarm(array1[i]); |
| | | // 将Intlist转换为数组 |
| | | // System.out.println(Intlist); |
| | | Integer[] shuzu1 = Intlist.toArray(new Integer[0]); |
| | | |
| | | // 定义的报警内容数组,获取json返回的集合 |
| | | List<String> myCollection; |
| | | myCollection = readValue(); |
| | | String[] array1 = myCollection.toArray(new String[myCollection.size()]); |
| | | // System.out.println(array1.length); |
| | | alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class); |
| | | for (short i = 0; i < array1.length; i++) { |
| | | // 查询对应报警信息结束时间为null的条数 |
| | | short result = alarmMapper.selectnullti(array1[i]); |
| | | // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0 |
| | | // System.out.println(result); |
| | | if (shuzu1[i] == 1 && result == 0) { |
| | | // 填加一条报警信息,有开始时间 |
| | | alarmMapper.Insertalarm(array1[i]); |
| | | } else if (shuzu1[i] == 0 && result > 0) { |
| | | // 修改该条报警信息的结束时间 |
| | | alarmMapper.updatealarm(array1[i]); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.example.springboot.service.OutSliceServive; |
| | | import com.example.springboot.service.SpianService; |
| | | |
| | | |
| | | public class Plchome extends Thread { |
| | | |
| | | @Autowired |
| | |
| | | private SpianService spianService; |
| | | private North_Glass_Buffer1Service north_Glass_Buffer1Service; |
| | | private JdbcConnections dbserve; |
| | | //出片队列是否允许出片 |
| | | public static Boolean isAllowQueue=true; |
| | | //铝框id |
| | | // 出片队列是否允许出片 |
| | | public static Boolean isAllowQueue = true; |
| | | // 铝框id |
| | | public static String FrameNo; |
| | | //是否需要手动确认玻璃 |
| | | public static Boolean isConfirm=false; |
| | | // 是否需要手动确认玻璃 |
| | | public static Boolean isConfirm = false; |
| | | |
| | | // public static Map b=new HashMap<>(); |
| | | // b.put() |
| | | @Override |
| | |
| | | // 查询报警信息 |
| | | List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); |
| | | jsonObject.append("alarmmg", alarmmg); |
| | | // 读去Plc进片车与出片车位置W |
| | | List<String> addressList = new ArrayList<String>(); |
| | | addressList.add("DB106.12"); |
| | | addressList.add("DB106.0"); |
| | | List<Short> paramlist = S7control.getinstance().ReadWord(addressList); |
| | | if (paramlist != null) { |
| | | jsonObject.append("params", paramlist); |
| | | } |
| | | // 获取进片车状态 |
| | | List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", |
| | | 1);// 获取进片车状态 |
| | | boolean exist1 = datas1ListState.contains((short) 0); |
| | | jsonObject.append("zhuangtai", exist1); |
| | | //获取进片玻璃信息 |
| | | List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); |
| | | if (inglassInfo != null) { |
| | | if (inglassInfo.size() > 0) |
| | | jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); |
| | | } |
| | | |
| | | // // 读去Plc进片车与出片车位置W |
| | | // List<String> addressList = new ArrayList<String>(); |
| | | // addressList.add("DB106.12"); |
| | | // addressList.add("DB106.0"); |
| | | // List<Short> paramlist = S7control.getinstance().ReadWord(addressList); |
| | | // if (paramlist != null) { |
| | | // jsonObject.append("params", paramlist); |
| | | // } |
| | | // // 获取进片车状态 |
| | | // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", |
| | | // 1);// 获取进片车状态 |
| | | // boolean exist1 = datas1ListState.contains((short) 0); |
| | | // jsonObject.append("zhuangtai", exist1); |
| | | // // 获取进片玻璃信息 |
| | | // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); |
| | | // if (inglassInfo != null) { |
| | | // if (inglassInfo.size() > 0) |
| | | // jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); |
| | | // } |
| | | |
| | | // 伍 获取进是否有待确认的玻璃id |
| | | String queid = spianMapper.Selectqueueid(); |
| | | int state = spianMapper.Selectqueuestate(); |
| | |
| | | // 获取扫码位与上片位玻璃信息 |
| | | Queue form2 = homeMapper.GetQueueInfo(2); |
| | | Queue form3 = homeMapper.GetQueueInfo(1); |
| | | if(form2.getglassId()!=null&&form2.getglassId()!=""){ |
| | | if (form2.getglassId() != null && form2.getglassId() != "") { |
| | | jsonObject.append("form2", form2); |
| | | } |
| | | if(form3.getglassId()!=null&&form3.getglassId()!=""){ |
| | | if (form3.getglassId() != null && form3.getglassId() != "") { |
| | | jsonObject.append("form3", form3); |
| | | } |
| | | // 获取出片队列信息 |
| | | List<Out_slice> listoutslice=outSliceServive.SelectProductionqueue(); |
| | | List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue(); |
| | | // List<Out_slice> listoutslice = homeMapper.SelectProductionqueue(); |
| | | // for (Out_slice out_slice : listoutslice) { |
| | | // out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId())); |
| | | // out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId())); |
| | | // } |
| | | jsonObject.append("listoutslice", listoutslice); |
| | | //获取当前出片队列状态 |
| | | jsonObject.append("isAllowQueue",Plchome.isAllowQueue); |
| | | // 获取当前出片队列状态 |
| | | jsonObject.append("isAllowQueue", Plchome.isAllowQueue); |
| | | |
| | | //获取铝框idDB106.DBW64 |
| | | // // 获取铝框idDB106.DBW64 |
| | | // String frameno=spianService.queGlassid("DB106.24",14).toString(); |
| | | // if(frameno!=Plchome.FrameNo){ |
| | | // Plchome.FrameNo=frameno; |
| | | // Plchome.FrameNo=frameno; |
| | | // } |
| | | // Plchome.FrameNo="123"; |
| | | // try { |
| | | // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); |
| | | // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); |
| | | // } catch (SQLException e) { |
| | | // // TODO Auto-generated catch block |
| | | // e.printStackTrace(); |
| | | // // TODO Auto-generated catch block |
| | | // e.printStackTrace(); |
| | | // } |
| | | //是否需要人工确认上片玻璃 |
| | | // 是否需要人工确认上片玻璃 |
| | | jsonObject.append("isConfirm", isConfirm); |
| | | |
| | | //铝框线交互 |
| | | // 铝框线交互 |
| | | |
| | | // //铝框id请求字 |
| | | // List<Short> framerequest = S7control.getinstance().ReadWord("铝框id请求字地址", 1); |
| | | // if(framerequest!=null){ |
| | | // //铝框id |
| | | // String franmeno= spianService.queGlassid("铝框id地址", 14).toString(); |
| | | // String position; |
| | | // try { |
| | | // position=dbserve.SelectPositionByFrameBarcode(franmeno); |
| | | // } catch (SQLException e) { |
| | | // // TODO Auto-generated catch block |
| | | // position="0"; |
| | | // e.printStackTrace(); |
| | | // } |
| | | // Short send; |
| | | // if(position=="0"){ |
| | | // send=0; |
| | | // }else{ |
| | | // send=1; |
| | | // } |
| | | // S7control.getinstance().WriteWord("铝框翻转发送地址", (short)send); |
| | | // //铝框id |
| | | // String franmeno= spianService.queGlassid("铝框id地址", 14).toString(); |
| | | // String position; |
| | | // try { |
| | | // position=dbserve.SelectPositionByFrameBarcode(franmeno); |
| | | // } catch (SQLException e) { |
| | | // // TODO Auto-generated catch block |
| | | // position="0"; |
| | | // e.printStackTrace(); |
| | | // } |
| | | |
| | | // Short send; |
| | | // if(position=="0"){ |
| | | // send=0; |
| | | // }else{ |
| | | // send=1; |
| | | // } |
| | | // S7control.getinstance().WriteWord("铝框翻转发送地址", (short)send); |
| | | // } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); |
| | | boolean dbconnected = false; |
| | | try { |
| | |
| | | } |
| | | jsonObject.append("dbconnected", dbconnected); |
| | | // jsonObject.append("params", new short[] { 30, 40, }); |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Home"); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sig", Intlist); |
| | | WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign"); |
| | | if (sendwServer3 != null) { |
| | | sendwServer3.sendMessage(jsonObject.toString()); |
| | | } |
| | | // 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()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sta", Intlist); |
| | | WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("State"); |
| | | if (sendwServer != null) { |
| | | sendwServer.sendMessage(jsonObject.toString()); |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | package com.example.springboot.component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | |
| | | import javax.websocket.OnClose; |
| | | import javax.websocket.OnError; |
| | | import javax.websocket.OnMessage; |
| | | import javax.websocket.OnOpen; |
| | | import javax.websocket.Session; |
| | | import javax.websocket.server.PathParam; |
| | | import javax.websocket.server.ServerEndpoint; |
| | | |
| | | import org.springframework.context.ConfigurableApplicationContext; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | |
| | | @ServerEndpoint(value = "/api/talk/{username}") |
| | | @Component |
| | | public class WebSocketServer { |
| | | |
| | | // @Autowired |
| | | // HomeMapper homeMapper; |
| | | |
| | | static ConfigurableApplicationContext applicationContext; |
| | | |
| | | //解决无法注入mapper问题 //使用方法 homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class); |
| | | public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) { |
| | | WebSocketServer.applicationContext = configurableApplicationContext; |
| | | } |
| | | |
| | | |
| | | private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class); |
| | | private List<String> messages; |
| | | /** |
| | | * 记录当前在线连接数 |
| | | */ |
| | | public static final Map<String, WebSocketServer> sessionMap = new ConcurrentHashMap<>(); |
| | | |
| | | String username; |
| | | Session session; |
| | | public WebSocketServer() { |
| | | this.messages = new ArrayList<>(); |
| | | } |
| | | /** |
| | | * 连接建立成功调用的方法 |
| | | */ |
| | | @OnOpen |
| | | public void onOpen(Session session, @PathParam("username") String username) { |
| | | this.username=username; |
| | | this.session=session; |
| | | sessionMap.put(username, this); |
| | | log.info("有新用户加入,username={}, 当前在线人数为:{}", username, sessionMap.size()); |
| | | |
| | | // JSONObject result = new JSONObject(); |
| | | // JSONArray array = new JSONArray(); |
| | | // result.set("users", array); |
| | | // for (Object key : sessionMap.keySet()) { |
| | | // JSONObject jsonObject = new JSONObject(); |
| | | // jsonObject.set("username", key); |
| | | // array.add(jsonObject); |
| | | // } |
| | | |
| | | //sendAllMessage(JSONUtil.toJsonStr(result)); // 后台发送消息给所有的客户端 |
| | | } |
| | | |
| | | /** |
| | | * 连接关闭调用的方法 |
| | | */ |
| | | @OnClose |
| | | public void onClose(Session session, @PathParam("username") String username) { |
| | | sessionMap.remove(username); |
| | | log.info("有一连接关闭,移除username={}的用户session, 当前在线人数为:{}", username, sessionMap.size()); |
| | | } |
| | | |
| | | /** |
| | | * 收到客户端消息后调用的方法 |
| | | * 后台收到客户端发送过来的消息 |
| | | * onMessage 是一个消息的中转站 |
| | | * 接受 浏览器端 socket.send 发送过来的 json数据 |
| | | * @param message 客户端发送过来的消息 |
| | | */ |
| | | @OnMessage |
| | | public void onMessage(String message, Session session, @PathParam("username") String username) { |
| | | log.info("服务端收到用户username={}的消息:{}", username, message); |
| | | JSONObject obj = JSONUtil.parseObj(message); |
| | | String text = obj.getStr("data"); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.set("message", text); |
| | | this.messages.add(text); |
| | | this.sendMessage(jsonObject.toString()); //JSONUtil.toJsonStr(jsonObject) |
| | | |
| | | } |
| | | |
| | | @OnError |
| | | public void onError(Session session, Throwable error) { |
| | | log.error("发生错误"); |
| | | error.printStackTrace(); |
| | | } |
| | | |
| | | /** |
| | | * 服务端发送消息给客户端 |
| | | */ |
| | | public void sendMessage(String message) { |
| | | try { |
| | | // log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message); |
| | | this.session.getBasicRemote().sendText(message); |
| | | } catch (Exception e) { |
| | | log.error("服务端发送消息给客户端失败", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 服务端发送消息给所有客户端 |
| | | */ |
| | | public void sendAllMessage(String message) { |
| | | try { |
| | | for (WebSocketServer webSocketServer : sessionMap.values()) { |
| | | //log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message); |
| | | webSocketServer.sendMessage(message); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("服务端发送消息给客户端失败", e); |
| | | } |
| | | } |
| | | |
| | | public List<String> getMessages() { |
| | | return messages; |
| | | |
| | | } |
| | | |
| | | public void clearMessages() { |
| | | messages.clear(); |
| | | } |
| | | } |
| | | package com.example.springboot.component;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | | import java.util.concurrent.ConcurrentHashMap;
|
| | |
|
| | | import org.slf4j.Logger;
|
| | | import org.slf4j.LoggerFactory;
|
| | |
|
| | | import javax.websocket.OnClose;
|
| | | import javax.websocket.OnError;
|
| | | import javax.websocket.OnMessage;
|
| | | import javax.websocket.OnOpen;
|
| | | import javax.websocket.Session;
|
| | | import javax.websocket.server.PathParam;
|
| | | import javax.websocket.server.ServerEndpoint;
|
| | |
|
| | | import org.springframework.context.ConfigurableApplicationContext;
|
| | | import org.springframework.stereotype.Component;
|
| | |
|
| | | import cn.hutool.json.JSONObject;
|
| | | import cn.hutool.json.JSONUtil;
|
| | |
|
| | | @ServerEndpoint(value = "/api/talk/{username}")
|
| | | @Component
|
| | | public class WebSocketServer {
|
| | |
|
| | | // @Autowired
|
| | | // HomeMapper homeMapper;
|
| | |
|
| | | static ConfigurableApplicationContext applicationContext;
|
| | |
|
| | | // 解决无法注入mapper问题 //使用方法
|
| | | // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
|
| | | public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) {
|
| | | WebSocketServer.applicationContext = configurableApplicationContext;
|
| | | }
|
| | |
|
| | | private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
|
| | | private List<String> messages;
|
| | | /**
|
| | | * 记录当前在线连接数
|
| | | */
|
| | | public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
|
| | |
|
| | | String username;
|
| | | Session session;
|
| | |
|
| | | public WebSocketServer() {
|
| | | this.messages = new ArrayList<>();
|
| | | }
|
| | |
|
| | | /**
|
| | | * 连接建立成功调用的方法
|
| | | */
|
| | | @OnOpen
|
| | | public void onOpen(Session session, @PathParam("username") String username) {
|
| | | this.username = username;
|
| | | this.session = session;
|
| | | List<WebSocketServer> webSocketServers = sessionMap.get(username);
|
| | | if (webSocketServers == null) {
|
| | | ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
|
| | | arrayListwebserver.add(this);
|
| | | sessionMap.put(username, arrayListwebserver);
|
| | | } else {
|
| | | webSocketServers.add(this);
|
| | | }
|
| | | |
| | | log.info("有新用户加入,username={}, 当前在线人数为:{}", username, sessionMap.get(username).size());
|
| | |
|
| | | // JSONObject result = new JSONObject();
|
| | | // JSONArray array = new JSONArray();
|
| | | // result.set("users", array);
|
| | | // for (Object key : sessionMap.keySet()) {
|
| | | // JSONObject jsonObject = new JSONObject();
|
| | | // jsonObject.set("username", key);
|
| | | // array.add(jsonObject);
|
| | | // }
|
| | |
|
| | | // sendAllMessage(JSONUtil.toJsonStr(result)); // 后台发送消息给所有的客户端
|
| | | }
|
| | |
|
| | | /**
|
| | | * 连接关闭调用的方法
|
| | | */
|
| | | @OnClose
|
| | | public void onClose(Session session, @PathParam("username") String username) {
|
| | | List<WebSocketServer> webSocketServers = sessionMap.get(username);
|
| | | ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
|
| | | if (webSocketServers.size()>1) {
|
| | | for (WebSocketServer webSocketServer : webSocketServers) {
|
| | | if(webSocketServer!=this){
|
| | | arrayListwebserver.add(webSocketServer);
|
| | | }
|
| | | }
|
| | | sessionMap.put(username, arrayListwebserver);
|
| | | log.info("移除username={}一名用户session, {}的当前在线人数为:{}", username, username, sessionMap.get(username).size());
|
| | | }else{
|
| | | sessionMap.remove(username);
|
| | | log.info("移除username={}一名用户session, {}连接关闭, 当前连接数为:{}", username, username, sessionMap.size());
|
| | | }
|
| | | |
| | | }
|
| | |
|
| | | /**
|
| | | * 收到客户端消息后调用的方法
|
| | | * 后台收到客户端发送过来的消息
|
| | | * onMessage 是一个消息的中转站
|
| | | * 接受 浏览器端 socket.send 发送过来的 json数据
|
| | | * |
| | | * @param message 客户端发送过来的消息
|
| | | */
|
| | | @OnMessage
|
| | | public void onMessage(String message, Session session, @PathParam("username") String username) {
|
| | | log.info("服务端收到用户username={}的消息:{}", username, message);
|
| | | JSONObject obj = JSONUtil.parseObj(message);
|
| | | String text = obj.getStr("data");
|
| | |
|
| | | JSONObject jsonObject = new JSONObject();
|
| | | jsonObject.set("message", text);
|
| | | this.messages.add(text);
|
| | | this.sendMessage(jsonObject.toString()); // JSONUtil.toJsonStr(jsonObject)
|
| | |
|
| | | }
|
| | |
|
| | | @OnError
|
| | | public void onError(Session session, Throwable error) {
|
| | | log.error("发生错误");
|
| | | error.printStackTrace();
|
| | | }
|
| | |
|
| | | /**
|
| | | * 服务端发送消息给客户端
|
| | | */
|
| | | public void sendMessage(String message) {
|
| | | try {
|
| | | // log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message);
|
| | | this.session.getBasicRemote().sendText(message);
|
| | | } catch (Exception e) {
|
| | | log.error("服务端发送消息给客户端失败", e);
|
| | | }
|
| | | }
|
| | |
|
| | | // /**
|
| | | // * 服务端发送消息给所有客户端
|
| | | // */
|
| | | // public void sendAllMessage(String message) {
|
| | | // try {
|
| | | // for (WebSocketServer webSocketServer : sessionMap.values()) {
|
| | | // // log.info("服务端给客户端[{}]发送消息{}", this.session.getId(), message);
|
| | | // webSocketServer.sendMessage(message);
|
| | | // }
|
| | | // } catch (Exception e) {
|
| | | // log.error("服务端发送消息给客户端失败", e);
|
| | | // }
|
| | | // }
|
| | |
|
| | | public List<String> getMessages() {
|
| | | return messages;
|
| | |
|
| | | }
|
| | |
|
| | | public void clearMessages() {
|
| | | messages.clear();
|
| | | }
|
| | | }
|
| | |
| | | // |
| | | System.out.println("启动完成"); |
| | | |
| | | new PlcHold().start(); |
| | | //new PlcHold().start(); |
| | | // |
| | | // |
| | | // |
| | | //new PlcPositioning2().start(); |
| | | new Plchome().start(); |
| | | // // |
| | | // new PlcParameter().start(); |
| | | // // |
| | | // new Plcalarm().start(); |
| | | // // |
| | | // new Plcsign().start(); |
| | | // // |
| | | // new Plcaction().start(); |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | // new PlcPositioning2().start(); |
| | | // new PlcParameter2().start(); |
| | | // new PlcParameter1().start(); |
| | | // new PLCAutomaticParameterSetting().start(); |
| | | |
| | | // new PlcManualonePosition().start(); |
| | | // new PlcManualonePosition2().start(); |
| | | // new PlcServoManualone().start(); |
| | | // new PLCManualJog().start(); |
| | | new Plchome().start(); |
| | | //// // |
| | | // new PlcParameter().start(); |
| | | // // |
| | | // new Plcalarm().start(); |
| | | // // |
| | | // new Plcsign().start(); |
| | | // // |
| | | // new Plcaction().start(); |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | // new PlcPositioning2().start(); |
| | | // new PlcParameter2().start(); |
| | | // new PlcParameter1().start(); |
| | | // new PLCAutomaticParameterSetting().start(); |
| | | // |
| | | // new PlcManualonePosition().start(); |
| | | // new PlcManualonePosition2().start(); |
| | | // new PlcServoManualone().start(); |
| | | // new PLCManualJog().start(); |
| | | } |
| | | } |
| | |
| | | @GetMapping("/UpdateTask") |
| | | public Result UpdateTask(Integer types, Integer shelfrack, String glassid) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | homeMapper.UpdateTask(types); |
| | | homeMapper.UpdateTask(types,glassid); |
| | | StorageCage glass = homeMapper.SelectGlassInfo(glassid); |
| | | if (types == 0) { |
| | | homeMapper.UpdateCageTask1(glassid); |
| | |
| | | |
| | | //手动完成任务 |
| | | @PostMapping("/CompleteQueue") |
| | | public Result CompleteQueue(String id,String frameid) { |
| | | return outSliceServive.CompleteQueue(id,frameid); |
| | | public Result CompleteQueue(String id,String frameid,String glassid) { |
| | | return outSliceServive.CompleteQueue(id,frameid,glassid); |
| | | |
| | | } |
| | | |
| | |
| | | short SelectInTask(); |
| | | |
| | | // 手动完成任务 |
| | | @Update("update storage_task set task_state=1 where task_type=#{task_type} and task_state=0") |
| | | void UpdateTask(@Param("task_type") Integer task_type); |
| | | @Update("update storage_task set task_state=1 where task_type=#{task_type} and task_state=0 and glass_id=#{glassid}") |
| | | void UpdateTask(@Param("task_type") Integer task_type,String glassid); |
| | | |
| | | // 手动完成进片任务修改笼子数据 |
| | | @Update("update storage_cage set state=1 where glass_id=#{glassid} and state=2") |
| | |
| | | @Select("select ifnull(max(sequence),0)+1 from out_slice ") |
| | | Short SelectMaxSquence(); |
| | | //查询用户权限 |
| | | @Select("select rp.* from role_permission rp inner join role r on rp.role_id=r.id and r.name=#{token} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)") |
| | | List<RolePermission> SelectPermissionByUserName(String token); |
| | | @Select("select rp.* from role_permission rp inner join user r on rp.role_id=r.role_id and r.username=#{username} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)") |
| | | List<RolePermission> SelectPermissionByUserName(String username); |
| | | //完成出片任务 |
| | | @Update("update out_slice set state=2 where id=#{id}") |
| | | void CompleteQueue(String id); |
| | |
| | | import java.util.Map; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoProperties.Storage; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.example.springboot.common.Result; |
| | | import com.example.springboot.component.S7control; |
| | | import com.example.springboot.entity.Out_slice; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import com.example.springboot.mapper.SpianMapper; |
| | | |
| | | @Service |
| | | public class OutSliceServive { |
| | | |
| | | @Autowired |
| | | private HomeMapper homeMapper; |
| | | @Autowired |
| | | private SpianMapper spianMapper; |
| | | |
| | | @Autowired |
| | | private JdbcConnections jdbcConnections; |
| | |
| | | return listoutslice; |
| | | } |
| | | |
| | | public Result CompleteQueue(String id, String frameid) { |
| | | homeMapper.CompleteQueue(id); |
| | | Short num=homeMapper.SelectCountByFrameNo(frameid); |
| | | if(num==0){ |
| | | homeMapper.CompleteQueueByFrameNo(frameid); |
| | | public Result CompleteQueue(String id, String frameid, String glassid) { |
| | | homeMapper.CompleteQueue(id); |
| | | Short num = homeMapper.SelectCountByFrameNo(frameid); |
| | | if (num == 0) { |
| | | homeMapper.CompleteQueueByFrameNo(frameid); |
| | | } |
| | | StorageCage storageCage = homeMapper.SelectGlassInfo(glassid); |
| | | spianMapper.UpdataOutCage1(storageCage.getGlassWidth(), storageCage.getCage(), storageCage.getCell()); |
| | | |
| | | homeMapper.UpdateCageTask2(glassid); |
| | | S7control.getinstance().WriteWord("DB105.12", (short) 0); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | } |
| | |
| | | #PlcServoManualone 地址 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| | | # A01组合中地址表集合 |
| | | A01.addresses=DB103.32,DB100.144,DB100.184,DB100.186,DB100.180,DB100.182 |
| | | # A02组合中地址表集合 |
| | | A02.addresses=DB103.26,DB100.188,DB100.190,DB100.146 |
| | | # A01翻转地址 |
| | | A01.flipAddress=DB103.42 |
| | | # A02翻转地址 |
| | | A02.flipAddress=DB103.46 |
| | | # B01组合中地址 |
| | | B01.address=DB103.27 |
| | | # B02组合地址 |
| | | B02.address=DB103.29 |
| | | # 所有故障按钮地址 |
| | | faultButtonAddresses=DB104.1.4,DB104.1.5,DB104.1.2,DB104.1.3,DB104.1.6,DB104.1.7 |
| | | # 复位按钮地址 |
| | | resetButtonAddresses=DB101.4.0,DB101.4.3,DB101.3.6,DB101.4.1,DB101.4.4,DB101.4.6 |
| | | # 所有未回零按钮地址 |
| | | notHomedButtonAddresses=DB104.9.0,DB104.9.1,DB104.9.4,DB104.9.5 |
| | | # 进片id地址 |
| | | |
| | | inputGlassIdAddress=DB100.148 |
| | | # 存片id地址 |
| | | outputGlassIdAddress=DB100.162 |
| | | #回零按钮地址 |
| | | HomedButtonAddresses=DB101.3.7,DB101.4.2,DB101.4.5,DB101.4.7 |
| | | #A02start |
| | | A02start=DB101.5.1 |
| | | #A01start |
| | | A01start=DB101.5.0 |
| | | #A02start |
| | | A02Bstart=DB101.11.1 |
| | | #A01start |
| | | A01Bstart=DB101.11.0 |
| | | #abort/resumeTasks |
| | | abortresumeTasks=DB101.10.4 |
| | | #------------------------------------------------------------ |
| | | |
| | | |
| | | #A02start |
| | | mlp.A02start=DB101.2.3 |
| | | #A01start |
| | | mlp.A01start=DB101.2.2 |
| | | #A02start |
| | | mlp.B02start=DB101.2.5 |
| | | #A01start |
| | | mlp.B01start=DB101.2.4 |
| | | |
| | | #-------------------------- |
| | | #A02start |
| | | mlp2.A02start=DB101.2.1 |
| | | #A01start |
| | | mlp2.A01start=DB101.2.0 |
| | | |
| | | |
| | | |
| | | #PlcServoManualone 地址 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
| | | # A01组合中地址表集合
|
| | | A01.addresses=DB103.32,DB100.144,DB100.184,DB100.186,DB100.180,DB100.182
|
| | | # A02组合中地址表集合
|
| | | A02.addresses=DB103.34,DB100.188,DB100.190,DB100.146
|
| | | # A01翻转地址
|
| | | A01.flipAddress=DB106.2
|
| | | # A02翻转地址
|
| | | A02.flipAddress=DB106.14
|
| | | # B01组合中地址
|
| | | B01.address=DB103.36
|
| | | # B02组合地址
|
| | | B02.address=DB103.40
|
| | | # 所有故障按钮地址
|
| | | faultButtonAddresses=DB104.1.4,DB104.1.5,DB104.1.2,DB104.1.3,DB104.1.6,DB104.1.7
|
| | | # 复位按钮地址
|
| | | resetButtonAddresses=DB101.4.0,DB101.4.3,DB101.3.6,DB101.4.1,DB101.4.4,DB101.4.6
|
| | | # 所有未回零按钮地址
|
| | | notHomedButtonAddresses=DB104.9.0,DB104.9.1,DB104.9.4,DB104.9.5
|
| | | # 进片id地址
|
| | | inputGlassIdAddress=DB100.148
|
| | | # 存片id地址
|
| | | outputGlassIdAddress=DB100.162
|
| | | #回零按钮地址
|
| | | HomedButtonAddresses=DB101.3.7,DB101.4.2,DB101.4.5,DB101.4.7
|
| | | #A02start
|
| | | A02start=DB101.5.1
|
| | | #A01start
|
| | | A01start=DB101.5.0
|
| | | #A02start
|
| | | A02Bstart=DB101.11.1
|
| | | #A01start
|
| | | A01Bstart=DB101.11.0
|
| | | #abort/resumeTasks
|
| | | abortresumeTasks=DB101.10.4
|
| | | #------------------------------------------------------------
|
| | |
|
| | |
|
| | | #A02start
|
| | | mlp.A02start=DB101.2.3
|
| | | #A01start
|
| | | mlp.A01start=DB101.2.2
|
| | | #A02start
|
| | | mlp.B02start=DB101.2.5
|
| | | #A01start
|
| | | mlp.B01start=DB101.2.4
|
| | |
|
| | | #--------------------------
|
| | | #A02start
|
| | | mlp2.A02start=DB101.2.1
|
| | | #A01start
|
| | | mlp2.A01start=DB101.2.0
|
| | |
|
| | |
|
| | |
|
| | | #PLCManualJog-------------------------- |