Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes
# Conflicts:
# CanadaMes-ui/src/layout/index.vue
# springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
# springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
| | |
| | | { |
| | | "java.configuration.updateBuildConfiguration": "interactive", |
| | | "java.debug.settings.onBuildFailureProceed": true |
| | | "java.debug.settings.onBuildFailureProceed": true, |
| | | "java.compile.nullAnalysis.mode": "automatic" |
| | | } |
New file |
| | |
| | | [
|
| | | |
| | | |
| | | |
| | | [
|
| | | {
|
| | | "title": {
|
| | | "name": "MES进片任务"
|
| | | |
| | | }, "type": "1"
|
| | | |
| | | },
|
| | | {
|
| | | "name": "进片车起始位",
|
| | | "read": 33,
|
| | | "sending": 0,
|
| | | "type": "0",
|
| | | "unit": "mm",
|
| | | "value":"0",
|
| | | "address":"DB100.48",
|
| | | "count":10,
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片车目标位",
|
| | | "read": 11,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片玻璃长度",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片玻璃宽度",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片笼玻璃数",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片ID",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | }
|
| | | |
| | | |
| | | |
| | | ],
|
| | | |
| | | [
|
| | | {
|
| | | "title": {
|
| | | "name": "PLC进片任务"
|
| | | |
| | | },"type": "1",
|
| | | "value":"0"
|
| | | },
|
| | | {
|
| | | "name": "进片车状态",
|
| | | "read": 33,
|
| | | "sending": 0,
|
| | | "type": "0" ,
|
| | | "unit": "mm",
|
| | | "value":"0",
|
| | | "address":"DB100.68",
|
| | | "count":10,
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片车当前任务起始位",
|
| | | "read": 11,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片车当前任务终点位",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片请求",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "进片ID",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "D01 ID",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | },
|
| | | {
|
| | | "name": "D02 ID",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0" ,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":22000
|
| | | }
|
| | | |
| | | |
| | | ],
|
| | | [
|
| | | {
|
| | | "title": {
|
| | | "name": "MES出片任务"
|
| | | |
| | | }, "type": "1"
|
| | | },
|
| | | {
|
| | | "name": "出片车起始位",
|
| | | "read": 33,
|
| | | "sending": 0,
|
| | | "type": "0",
|
| | | "unit": "mm",
|
| | | "address":"DB100.0",
|
| | | "count":3,
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片车目标位",
|
| | | "read": 11,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片笼玻璃数",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "进片任务启动",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片任务启动",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片ID",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | }
|
| | | |
| | | |
| | | |
| | | ],
|
| | | |
| | | [
|
| | | {
|
| | | "title": {
|
| | | "name": "PLC出片任务"
|
| | | |
| | | }, "type": "1"
|
| | | },
|
| | | {
|
| | | "name": "出片车状态",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片车当前任务起始位",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "出片车当前任务终点位",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "A02 ID1",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | }
|
| | | |
| | | |
| | | |
| | | ],
|
| | | [
|
| | | {
|
| | | "title": {
|
| | | "name": "MES任务信息"
|
| | | |
| | | }, "type": "1"
|
| | | },
|
| | | {
|
| | | "name": "B01汇报应答",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B02汇报应答",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B01小车当前任务位",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B01小车任务状态",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B02小车当前位置",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B02小车任务状态",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "A01 ID1",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "A01 ID2",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "A02 ID1",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B01 ID1",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | },
|
| | | {
|
| | | "name": "B02 ID1",
|
| | | "read": 22,
|
| | | "sending": 0,
|
| | | "unit": "mm",
|
| | | "type": "0",
|
| | | "value":"0",
|
| | | "min":0,
|
| | | "max":9999
|
| | | }
|
| | | |
| | | |
| | | |
| | | ]
|
| | | |
| | | |
| | | |
| | | ]
|
| | | |
| | | |
| | |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.0" |
| | | }, |
| | | { |
| | | "name": "D01.SR in pos", |
| | | "value": "0", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.1" |
| | | }, |
| | | { |
| | | "name": "D02.SR dec", |
| | | "value": "0", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.2" |
| | | |
| | | }, |
| | | { |
| | | "name": "D02.SR in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.3" |
| | | }, |
| | | { |
| | | "name": "D03.SR into", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.4" |
| | | }, |
| | | { |
| | | "name": "D03.SR dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.5" |
| | | }, |
| | | { |
| | | "name": "D03.SR in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.6" |
| | | }, |
| | | { |
| | | "name": "D04.SR dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I10.7" |
| | | }, |
| | | { |
| | | "name": "D04.SR in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.0" |
| | | |
| | | }, |
| | | { |
| | | "name": "D05.SR dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.1" |
| | | }, |
| | | { |
| | | "name": "D05.SR in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.2" |
| | | }, |
| | | { |
| | | "name": "D06.SR dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.3" |
| | | }, |
| | | { |
| | | "name": "D06.SR in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR out dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR out in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.4" |
| | | }, |
| | | { |
| | | "name": "B01.SR in dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.5" |
| | | }, |
| | | { |
| | | "name": "B01.SR in in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I11.6" |
| | | }, |
| | | { |
| | | "name": "B01.SR out dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I11.7" |
| | | }, |
| | | { |
| | | "name": "B01.SR out in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I124.0" |
| | | |
| | | }, |
| | | { |
| | | "name": "B01.SR turn on", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.1" |
| | | }, |
| | | { |
| | | "name": "B01.SR turn off", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.2" |
| | | }, |
| | | { |
| | | "name": "B01.SR up", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.3" |
| | | }, |
| | | { |
| | | "name": "B01.SR down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.4" |
| | | }, |
| | | { |
| | | "name": "B02.SR out dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.5" |
| | | }, |
| | | { |
| | | "name": "B02.SR out in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.6" |
| | | }, |
| | | { |
| | | "name": "B02.SR in dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I124.7" |
| | | }, |
| | | { |
| | | "name": "B02.SR in in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.0" |
| | | }, |
| | | { |
| | | "name": "B02.SR turn on", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.1" |
| | | }, |
| | | { |
| | | "name": "B02.SR turn off", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.2" |
| | | }, |
| | | { |
| | | "name": "B02.SR up", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.3" |
| | | }, |
| | | { |
| | | "name": "B02.SR down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR out safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.4" |
| | | }, |
| | | { |
| | | "name": "B01.SR in safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.5" |
| | | }, |
| | | { |
| | | "name": "B02.SR out safety", |
| | | "name": "B01.SR out safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.start(+)", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.stop(1)", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.reset", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.auto/manul", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.pause", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SB.emg", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D01.SB.start", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D06.SB.start", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.6" |
| | | }, |
| | | { |
| | | "name": "B02.SR in safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I125.7" |
| | | }, |
| | | { |
| | | "name": "SAFETYDOOR.requset", |
| | | "name": "SB.start(+)", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I126.0" |
| | | }, |
| | | { |
| | | "name": "SAFETYDOOR.confirm", |
| | | "name": "SB.stop(1)", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I126.1" |
| | | }, |
| | | { |
| | | "name": "SAFETYDOOR.reset", |
| | | "name": "SB.reset", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"I126.2" |
| | | }, |
| | | { |
| | | "name": "SB.auto/manul", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I126.3" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I126.4" |
| | | }, |
| | | { |
| | | "name": "SB.emg", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I126.5" |
| | | }, |
| | | { |
| | | "name": "D01.SB.start", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I126.6" |
| | | }, |
| | | { |
| | | "name": "D06.SB.start", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I126.7" |
| | | }, |
| | | { |
| | | "name": "B02.SR out safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.0" |
| | | }, |
| | | { |
| | | "name": "SafetyDoor.requset", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.1" |
| | | }, |
| | | { |
| | | "name": "SafetyDoor.confirm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.2" |
| | | }, |
| | | { |
| | | "name": "SafetyDoor.reset", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.3" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.4" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.5" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.6" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I127.7" |
| | | }, |
| | | { |
| | | "name": "A01.SR left dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.0" |
| | | }, |
| | | { |
| | | "name": "A01.SR left in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.1" |
| | | }, |
| | | { |
| | | "name": "A01.SR left safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.2" |
| | | }, |
| | | { |
| | | "name": "A01.SR right dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.3" |
| | | }, |
| | | { |
| | | "name": "A01.SR right in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.4" |
| | | }, |
| | | { |
| | | "name": "A01.SR right safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.5" |
| | | }, |
| | | { |
| | | "name": "A01.SR turn home", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.6" |
| | | }, |
| | | { |
| | | "name": "A01.SR turn up", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I128.7" |
| | | }, |
| | | { |
| | | "name": "A01.SR turn down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.0" |
| | | }, |
| | | { |
| | | "name": "A01.SR travel home", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.1" |
| | | }, |
| | | { |
| | | "name": "A01.SR travel left dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.2" |
| | | }, |
| | | { |
| | | "name": "A01.SR travel left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.3" |
| | | }, |
| | | { |
| | | "name": "A01.SR travel right dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.4" |
| | | }, |
| | | { |
| | | "name": "A01.SR travel right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.5" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.6" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I129.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR left dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR left in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR left safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR right dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR right in pos", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.4" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR right safety", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.5" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR turn home", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.6" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR turn up", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I130.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR turn down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR travel home", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR travel left dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR travel left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR travel right dec", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.4" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02.SR travel right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.5" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.6" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I131.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "B01.SR origin", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "B01.SR left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "B01.SR right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.SR origin", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.SR left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.4" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.SR right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.5" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.6" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"I132.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "LED.red", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "LED.green", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "LED.yellow", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "D01.LED.green", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "D06.LED.green", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"Q4.4" |
| | | }, |
| | | { |
| | | "name": "B01.YV.turn", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.5" |
| | | } |
| | | , |
| | | { |
| | | "name": "B01.YV.up down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.6" |
| | | } |
| | | , |
| | | { |
| | | "name": "B01.YV.gassing", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q4.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.YV.turn", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q5.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.YV.up down", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | "page": "1", |
| | | "unit":"Q5.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "B02.YV.gassing", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SAFETYDOOR.led", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "SAFETYDOOR.open", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR origin", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR origin", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR left limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR right limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1" |
| | | "page": "1", |
| | | "unit":"Q5.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "SafetyDoor.Led", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q5.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "SafetyDoor.open", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q5.4" |
| | | } |
| | | , |
| | | { |
| | | "name": "D01 SB.confirm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q5.5" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q5.6" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q5.7" |
| | | } |
| | | , |
| | | { |
| | | "name": "A01 oilPump", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q126.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "A01 motorCtr", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q126.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q126.2" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q126.3" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02 oilPump", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q127.0" |
| | | } |
| | | , |
| | | { |
| | | "name": "A02 motorCtr", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q127.1" |
| | | } |
| | | , |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q127.2" |
| | | }, |
| | | { |
| | | "name": "space", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "1", |
| | | "page": "1", |
| | | "unit":"Q127.3" |
| | | } |
| | | |
| | | |
| | | ], |
| | | "address": [ |
| | | { |
| | |
| | | } |
| | | |
| | | |
| | | ] |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "软急停", |
| | | "value":0, |
| | | "address":"DB10.0", |
| | | "type":"66" |
| | | } |
| | | }] |
| | | |
| | | ] |
| | |
| | | "急停后中止/继续选择": "Abort/ResumeTasks",
|
| | | "A01终止/继续": "A01Abort/ResumeTasks",
|
| | | "A02终止/继续": "A02Abort/ResumeTasks",
|
| | | "存片等待延时": "Storage wait delay"
|
| | | "存片等待延时": "Storage wait delay",
|
| | | "软急停": "emgHMI"
|
| | |
|
| | | },
|
| | | "langPositioning1": {
|
| | |
| | | "B02 OUT pos error": "B02 OUT pos 错误"
|
| | | },
|
| | | "Electrical": "设备管理",
|
| | | "Parameter": "参数下发",
|
| | | "Parameter": "参数设置",
|
| | | "Action": "开关控制",
|
| | | "Sign": "IO状态",
|
| | | "State": "设备状态",
|
| | |
| | | "D05.SR in pos": "D05.到位传感器",
|
| | | "D06.SR dec": "D06.减速传感器",
|
| | | "D06.SR in pos": "D06.到位传感器",
|
| | | "B01.SR out dec": "B01.出片减速传感器",
|
| | | "B01.SR out in pos": "B01.出片到位传感器",
|
| | | "B01.SR in dec": "B01.进片减速传感器",
|
| | | "B01.SR in in pos": "B01.进片到位传感器",
|
| | | "B01.SR out dec": "B01.出片减速传感器",
|
| | | "B01.SR out in pos": "B01.出片到位传感器",
|
| | | "B01.SR turn on": "B01.翻转上到位传感器",
|
| | | "B01.SR turn off": "B01.翻转下到位传感器",
|
| | | "B01.SR up": "B01.上升到位传感器",
|
| | |
| | | "B02.SR turn off": "B02.翻转下到位传感器",
|
| | | "B02.SR up": "B02.上升到位传感器",
|
| | | "B02.SR down": "B02.下降到位传感器",
|
| | | "B01.SR out safety": "B01.出片安全传感器",
|
| | | "B01.SR in safety": "B01.进片安全传感器",
|
| | | "B02.SR out safety": "B02.出片安全传感器",
|
| | | "B01.SR out safety": "B01.出片安全传感器",
|
| | | "B02.SR in safety": "B02.进片安全传感器",
|
| | | "SB.start(+)": "SB.启动(+)按钮",
|
| | | "SB.stop(1)": "SB.停止(-)按钮",
|
| | | "SB.reset": "SB.复位按钮",
|
| | | "SB.auto/manul": "SB.手/自切换按钮",
|
| | | "SB.pause": "SB.暂停按钮",
|
| | | "D01.SB.confirm": "玻璃信息确认",
|
| | | "SB.emg": "SB.急停按钮",
|
| | | "D01.SB.start": "D01.启动",
|
| | | "D06.SB.start": "D06.启动",
|
| | | "B02.SR in safety": "B02.进片安全传感器",
|
| | | "SAFETYDOOR.requset": "安全门请求进入",
|
| | | "SAFETYDOOR.confirm": "安全门确认",
|
| | | "SAFETYDOOR.reset": "安全门复位",
|
| | | "B02.SR out safety ": "B02.出片安全传感器",
|
| | | "SafetyDoor.requset": "安全门请求进入",
|
| | | "SafetyDoor.confirm": "安全门确认",
|
| | | "SafetyDoor.reset": "安全门复位",
|
| | | "A01.SR left dec":"A01左键速",
|
| | | "A01.SR left in pos":"A01左到位",
|
| | | "A01.SR left safety":"A01左安全",
|
| | | "A01.SR right dec":"A01右键速",
|
| | | "A01.SR right in pos":"A01右到位",
|
| | | "A01.SR right safety":"A01右安全",
|
| | | "A01.SR turn home":"A01翻转原点",
|
| | | "A01.SR turn up":"A01翻转上极限",
|
| | | "A01.SR turn down":"A01翻转下极限",
|
| | | "A01.SR travel home":"A01行走原点",
|
| | | "A01.SR travel left dec":"A01行走左减速",
|
| | | "A01.SR travel left limit":"A01行走左极限",
|
| | | "A01.SR travel right dec":"A01行走右减速",
|
| | | "A01.SR travel right limit":"A01行走右极限",
|
| | | "A02.SR left dec":"A02左键速",
|
| | | "A02.SR left in pos":"A02左到位",
|
| | | "A02.SR left safety":"A02左安全",
|
| | | "A02.SR right dec":"A02右键速",
|
| | | "A02.SR right in pos":"A02右到位",
|
| | | "A02.SR right safety":"A02右安全",
|
| | | "A02.SR turn home":"A02翻转原点",
|
| | | "A02.SR turn up":"A02翻转上极限",
|
| | | "A02.SR turn down":"A02翻转下极限",
|
| | | "A02.SR travel home":"A02行走原点",
|
| | | "A02.SR travel left dec":"A02行走左减速",
|
| | | "A02.SR travel left limit":"A02行走左极限",
|
| | | "A02.SR travel right dec":"A02行走右减速",
|
| | | "A02.SR travel right limit":"A02行走右极限",
|
| | | "B01.SR origin":"B01.原点",
|
| | | "B01.SR left limit":"B01.左极限",
|
| | | "B01.SR right limit":"B01.右极限",
|
| | | "B02.SR origin":"B02.原点",
|
| | | "B02.SR left limit":"B02.左极限",
|
| | | "B02.SR right limit":"B02.右极限",
|
| | | "LED.red": "三色灯红",
|
| | | "LED.green": "三色灯绿",
|
| | | "LED.yellow": "三色灯黄",
|
| | |
| | | "B02.YV.turn": "B02.电磁阀翻转",
|
| | | "B02.YV.up down": "B02.电磁阀上升下降",
|
| | | "B02.YV.gassing": "B02.电磁阀吹气",
|
| | | "SAFETYDOOR.led": "安全门状态灯",
|
| | | "SAFETYDOOR.open": "安全门打开"
|
| | | "SafetyDoor.Led": "安全门状态灯",
|
| | | "SafetyDoor.open": "安全门打开",
|
| | | "D01 SB.confirm":"玻璃信息确认指示灯",
|
| | | "A01 oilPump":"A01注油泵",
|
| | | "A01 motorCtr":"A01电机控制",
|
| | | "A02 oilPump":"A02注油泵",
|
| | | "A02 motorCtr":"A02电机控制",
|
| | | "space":"备用"
|
| | |
|
| | | },
|
| | | "Statelang": {
|
| | | "D01.State": "D01.状态",
|
| | |
| | | "ManualonePosition":"手动定位",
|
| | | "Servomanualone":"半自动",
|
| | | "Address parameter settings":"地址参数设置",
|
| | | "Speed parameter settings":"速度参数设置"
|
| | | "Speed parameter settings":"速度参数设置",
|
| | | "InteractionState":"交互状态"
|
| | |
|
| | | } |
| | |
| | | { |
| | | path: '/Electrical/ManualJog', |
| | | component: () => import('../views/Electrical/ManualJog') |
| | | }, |
| | | { |
| | | path: '/Electrical/InteractionState', |
| | | component: () => import('../views/Electrical/InteractionState') |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ] |
| | | } |
| | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualJog') |
| | | }}</router-link> |
| | | }}</router-link> --> |
| | | |
| | | <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition') |
| | |
| | | <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Speed parameter settings') |
| | | }}</router-link> |
| | | |
| | | <router-link |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | |
| | | </el-breadcrumb> |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="app"> |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link |
| | | to="/Electrical/alarm" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Alarm") }}</router-link |
| | | > |
| | | <router-link |
| | | to="/Electrical/State" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("State") }}</router-link |
| | | > |
| | | <!-- <router-link |
| | | to="/Electrical/Action" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Action") }}</router-link |
| | | > --> |
| | | <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') |
| | | }}</router-link> --> |
| | | <router-link |
| | | to="/Electrical/Sign" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Sign") }}</router-link |
| | | > |
| | | <router-link |
| | | to="/Electrical/Servomanual" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Parameter") }}</router-link |
| | | > |
| | | </el-breadcrumb> |
| | | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link |
| | | to="/Electrical/Parameter2" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Automatic State") }}</router-link |
| | | > |
| | | <!-- <router-link |
| | | to="/Electrical/ManualJog" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualJog") }}</router-link |
| | | > --> |
| | | |
| | | <router-link |
| | | to="/Electrical/ManualonePosition" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualonePosition") }}</router-link |
| | | > |
| | | |
| | | <router-link |
| | | to="/Electrical/Servomanualone" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Servomanualone") }}</router-link |
| | | > |
| | | <!-- <router-link |
| | | to="/Electrical/Parameter1" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Parameter1") }}</router-link |
| | | > --> |
| | | |
| | | <router-link |
| | | to="/Electrical/Positioning1" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Address parameter settings") }}</router-link |
| | | > |
| | | <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Positioning2') |
| | | }}</router-link> --> |
| | | |
| | | <!-- <router-link |
| | | to="/Electrical/ManualonePosition2" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualonePosition2") }}</router-link |
| | | > --> |
| | | <router-link |
| | | to="/Electrical/AutomaticParameterSetting" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Speed parameter settings") }}</router-link |
| | | > |
| | | <router-link |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | |
| | | |
| | | </el-breadcrumb> |
| | | |
| | | <el-row :gutter="30" class="card"> |
| | | <el-col |
| | | :span="6" |
| | | v-for="(dataGroup, groupIndex) in jsonData" |
| | | :key="groupIndex" |
| | | > |
| | | <el-card class="json-block" style="width: 300px; margin-bottom: 2px;height:500px" > |
| | | <div |
| | | class="button-row" |
| | | style="display: flex; justify-content: space-between" |
| | | > |
| | | <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex"> |
| | | <span |
| | | v-if="item.title" |
| | | :name="item.title.name" |
| | | class="action-button" |
| | | >{{ item.title.name }}</span |
| | | > |
| | | </div> |
| | | </div> |
| | | <div |
| | | v-for="(item, itemIndex) in dataGroup" |
| | | :key="itemIndex" |
| | | class="item-container" |
| | | > |
| | | <div class="item-row"> |
| | | <span class="name" style="width: 150px">{{ item.name }}</span> |
| | | <el-input |
| | | v-if="item.type === '0'" |
| | | v-model="item.value" |
| | | class="input-box" |
| | | readonly="readonly" style="width: 200px" |
| | | ></el-input> |
| | | |
| | | |
| | | <!-- <el-button |
| | | v-if="item.type === '0' && item.name !== '格子间距' && item.name !== '出片接片地址' && item.name !== '存片接片地址'" |
| | | class="input-box" @click="submitDataToBackend();">取地址</el-button> --> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | let socket; |
| | | import LanguageMixin from "../../lang/LanguageMixin"; |
| | | import data from "../../configuration/InteractionState"; |
| | | |
| | | export default { |
| | | name: "InteractionState", |
| | | mixins: [LanguageMixin], |
| | | data() { |
| | | return { |
| | | jsonData: data, // 加载整个data.json文件作为jsonData |
| | | }; |
| | | }, |
| | | activated() { |
| | | this.initWebSocket(); |
| | | const language = this.$i18n.locale; |
| | | console.log(language); |
| | | if (language === "en-US") { |
| | | this.replaceChineseWithEnglish(); |
| | | } |
| | | this.$forceUpdate(); |
| | | }, |
| | | methods: { |
| | | |
| | | |
| | | initWebSocket() { |
| | | let viewname = "InteractionState"; |
| | | |
| | | if (typeof WebSocket === "undefined") { |
| | | console.log("您的浏览器不支持WebSocket"); |
| | | } else { |
| | | let socketUrl = |
| | | "ws://" + |
| | | this.$t("ip") + |
| | | ":8888" + |
| | | "/springboot-vue3/api/talk/" + |
| | | viewname; |
| | | |
| | | if (socket != null) { |
| | | socket.close(); |
| | | socket = null; |
| | | } |
| | | |
| | | // 开启一个websocket服务 |
| | | socket = new WebSocket(socketUrl); |
| | | |
| | | // 打开事件 |
| | | socket.onopen = function () { |
| | | console.log("websocket已打开"); |
| | | }; |
| | | |
| | | |
| | | |
| | | socket.onmessage = (msg) => { |
| | | if (!msg.data) { |
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑 |
| | | } |
| | | |
| | | |
| | | let obj = JSON.parse(msg.data); |
| | | const jsondata2 = this.jsonData; |
| | | |
| | | const zuhe1=obj.zuhe1; |
| | | |
| | | |
| | | if(obj.zuhe1){ |
| | | |
| | | //console.log(obj); |
| | | |
| | | for (let i = 0; i < jsondata2.length; i++) { |
| | | const item = jsondata2[i]; |
| | | for (let j = 1; j < item.length; j++) { |
| | | const subitem = item[j]; |
| | | if (subitem.type === '0' ) { |
| | | if (j - 1 < zuhe1[i].length) { |
| | | subitem.value = zuhe1[i][j - 1]; |
| | | } else { |
| | | subitem.value = 'N/A'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | }; |
| | | |
| | | |
| | | // 关闭事件 |
| | | socket.onclose = function () { |
| | | console.log("websocket已关闭"); |
| | | }; |
| | | |
| | | // 发生错误事件 |
| | | socket.onerror = function () { |
| | | console.log("websocket发生了错误"); |
| | | }; |
| | | this.$router.afterEach(function () { |
| | | socket.close(); |
| | | }); |
| | | } |
| | | }, |
| | | //语言替换 |
| | | replaceChineseWithEnglish() { |
| | | const nameMap = this.$t("langPositioning1"); |
| | | this.jsonData = this.jsonData.map((item) => { |
| | | return item.map((obj) => { |
| | | if (obj.name) { |
| | | const newName = nameMap[obj.name] || obj.name; |
| | | return { ...obj, name: newName }; |
| | | } else if (obj.button && obj.button.name) { |
| | | const newName = nameMap[obj.button.name] || obj.button.name; |
| | | return { ...obj, button: { ...obj.button, name: newName } }; |
| | | } else if (obj.title && obj.title.name) { |
| | | const newName = nameMap[obj.title.name] || obj.title.name; |
| | | return { ...obj, title: { ...obj.title, name: newName } }; |
| | | } else { |
| | | return obj; |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | // console.log(this.jsonData) |
| | | }, |
| | | send() { |
| | | socket?.send(JSON.stringify(this.messagepack)); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .item-row { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 5px; |
| | | /* 调整每个项目之间的间距 */ |
| | | } |
| | | |
| | | .action-button { |
| | | margin-right: 30px; |
| | | background: #66b1ff; |
| | | color: #fff; |
| | | } |
| | | |
| | | .blue-button { |
| | | background-color: skyblue; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="app"> |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <!-- <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') |
| | | }}</router-link> |
| | | <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') |
| | | }}</router-link> --> |
| | | <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') |
| | | }}</router-link> --> |
| | | |
| | | <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Parameter') |
| | | }}</router-link> |
| | | </el-breadcrumb> |
| | | </el-breadcrumb> --> |
| | | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <!-- <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | |
| | | <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Servomanualone') |
| | | }}</router-link> |
| | | <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1') |
| | | }}</router-link> --> |
| | | |
| | | |
| | | <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Address parameter settings') |
| | | }}</router-link> |
| | | <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Positioning2') |
| | | }}</router-link> --> |
| | | |
| | | <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition2') |
| | | }}</router-link> --> |
| | | <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Speed parameter settings') |
| | | }}</router-link> |
| | | |
| | | </el-breadcrumb> |
| | | </el-breadcrumb> --> |
| | | |
| | | <el-row :gutter="40" > |
| | | <el-col :span="26" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex"> |
| | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
|
| | | <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
|
| | | }}</router-link>
|
| | | <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
|
| | | <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('ManualJog')
|
| | | }}</router-link>
|
| | | }}</router-link> -->
|
| | |
|
| | | <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('ManualonePosition')
|
| | | }}</router-link>
|
| | |
|
| | | <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('Servomanualone')
|
| | | }}</router-link>
|
| | | <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
|
| | | }}</router-link> -->
|
| | | <router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
|
| | | {{ $t('Servomanualone') }}
|
| | | </router-link>
|
| | | |
| | |
|
| | | <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
|
| | | <router-link v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('Address parameter settings')
|
| | | }}</router-link>
|
| | | <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('Positioning2')
|
| | | }}</router-link> -->
|
| | | |
| | | <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('ManualonePosition2')
|
| | | }}</router-link> -->
|
| | | <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
|
| | | |
| | | <router-link v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
|
| | | $t('Speed parameter settings')
|
| | | }}</router-link>
|
| | |
|
| | | <router-link v-if="hasPermission"
|
| | | to="/Electrical/InteractionState"
|
| | | tag="el-button"
|
| | | type="text"
|
| | | active-class="blue-button"
|
| | | >{{ $t("InteractionState") }}</router-link
|
| | | >
|
| | |
|
| | | </el-breadcrumb>
|
| | |
|
| | |
| | | <div class="container">
|
| | |
|
| | | <component :is="embeddedComponent"></component>
|
| | | <component :is="embeddedComponent2"></component>
|
| | | </div>
|
| | |
|
| | | <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
|
| | |
| | | import data from '../../configuration/Manualoneposition'
|
| | |
|
| | | import ManualonePosition2 from './ManualonePosition2.vue';
|
| | | import ManualJog from './ManualJog.vue';
|
| | | import {
|
| | | SelectPermissionByUserName, currentUsername
|
| | | } from "../../api/home";
|
| | | // import { createWebSocket } from '../../api/websocket.js';
|
| | | let socket;
|
| | | export default {
|
| | |
| | | jsonData: data,
|
| | | language: this.$i18n.locale,
|
| | | embeddedComponent: ManualonePosition2,
|
| | | embeddedComponent2: ManualJog,
|
| | | hasPermission: false // 默认没有权限
|
| | |
|
| | | // 加载整个data.json文件作为jsonData
|
| | | }
|
| | |
| | | this.replaceChineseWithEnglish();
|
| | | }
|
| | | this.$forceUpdate();
|
| | | currentUsername().then(res => {
|
| | | SelectPermissionByUserName(res.data).then(res => {
|
| | | res.data.permission.forEach(item => {
|
| | | if (item.permissionId == "36" && item.state == 1) {
|
| | | this.hasPermission = true;
|
| | | }
|
| | | |
| | | });
|
| | | });
|
| | |
|
| | | });
|
| | |
|
| | | },
|
| | | methods: {
|
| | |
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | event.target.blur(); // 取消输入框焦点
|
| | |
|
| | |
|
| | |
|
| | | },
|
| | | A02start(event){
|
| | | const data = [];
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString2 = JSON.stringify(jsonObject2);
|
| | | console.log('所有复位的value:', jsonString2);
|
| | | socket?.send(jsonString2);
|
| | | // setTimeout(() =>
|
| | | // window.location.reload(), 2000
|
| | | // )
|
| | | setTimeout(() => {
|
| | | const reversedData = data2.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString2 = JSON.stringify(jsonObject2);
|
| | | console.log('所有回零的value:', jsonString2);
|
| | | socket?.send(jsonString2);
|
| | | setTimeout(() => {
|
| | | const reversedData = data2.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | | // setTimeout(() =>
|
| | | // window.location.reload(), 2000
|
| | | // )
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | setTimeout(() => {
|
| | | const reversedData = data.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | | }
|
| | |
|
| | |
| | | const jsonString2 = JSON.stringify(jsonObject2);
|
| | | console.log('所有Type为0的value:', jsonString2);
|
| | | socket?.send(jsonString2);
|
| | | setTimeout(() => {
|
| | | const reversedData = data2.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | |
|
| | | }
|
| | |
| | | const jsonString2 = JSON.stringify(jsonObject2);
|
| | | console.log('所有Type为0的value:', jsonString2);
|
| | | socket?.send(jsonString2);
|
| | | setTimeout(() => {
|
| | | const reversedData = data2.map(values => values.map(value => {
|
| | | return (!value || value === 1) ? 0 : 0 ;
|
| | | }));
|
| | |
|
| | | const reversedJsonObject = { data: reversedData };
|
| | |
|
| | | // 提交数据到后端
|
| | | const reversedJsonString = JSON.stringify(reversedJsonObject);
|
| | | console.log('反转后:', reversedJsonString);
|
| | | socket?.send(reversedJsonString);
|
| | | }, 1000);
|
| | |
|
| | |
|
| | | }
|
| | |
| | | active-class="blue-button" |
| | | >{{ $t("Automatic State") }}</router-link |
| | | > |
| | | <router-link |
| | | <!-- <router-link |
| | | to="/Electrical/ManualJog" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualJog") }}</router-link |
| | | > |
| | | > --> |
| | | |
| | | <router-link |
| | | to="/Electrical/ManualonePosition" |
| | |
| | | >{{ $t("ManualonePosition") }}</router-link |
| | | > |
| | | |
| | | <router-link |
| | | to="/Electrical/Servomanualone" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Servomanualone") }}</router-link |
| | | > |
| | | <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1') |
| | | }}</router-link> --> |
| | | <router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button"> |
| | | {{ $t('Servomanualone') }} |
| | | </router-link> |
| | | |
| | | |
| | | <router-link v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Address parameter settings') |
| | | }}</router-link> |
| | | |
| | | <router-link v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Speed parameter settings') |
| | | }}</router-link> |
| | | |
| | | <router-link |
| | | to="/Electrical/Positioning1" |
| | | <router-link v-if="hasPermission" |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Address parameter settings") }}</router-link |
| | | > |
| | | <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Positioning2') |
| | | }}</router-link> --> |
| | | <!-- |
| | | <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition2') |
| | | }}</router-link> --> |
| | | <router-link |
| | | to="/Electrical/AutomaticParameterSetting" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Speed parameter settings") }}</router-link |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | </el-breadcrumb> |
| | | |
| | |
| | | item.button.value === 2 && item.button.name !== 'Clear ID', |
| | | 'yellow-button': |
| | | item.button.value === 1 && item.button.name !== 'Clear ID', |
| | | id: |
| | | 'id': |
| | | item.button.value === 1 && item.button.name === 'Clear ID', |
| | | 'A01jiting':item.button.value === 0 && item.button.name === 'A01Abort/ResumeTasks', |
| | | 'A02jiting':item.button.value === 0 && item.button.name === 'A02Abort/ResumeTasks', |
| | | 'emgHMI':item.button.value === 0 && item.button.name === 'emgHMI', |
| | | 'GA01jiting':item.button.value ===1 && item.button.name === 'A01Abort/ResumeTasks', |
| | | 'GA02jiting':item.button.value === 1 && item.button.name === 'A02Abort/ResumeTasks', |
| | | 'GemgHMI':item.button.value === 1 && item.button.name === 'emgHMI' |
| | | |
| | | }" |
| | | >{{ item.button.name }}</el-button |
| | | > |
| | |
| | | item.button.value === 2 && item.button.name !== '清除ID', |
| | | 'yellow-button': |
| | | item.button.value === 1 && item.button.name !== '清除ID', |
| | | id: item.button.value === 1 && item.button.name === '清除ID', |
| | | 'id': item.button.value === 1 && item.button.name === '清除ID', |
| | | 'A01jiting':item.button.value === 0 && item.button.name === 'A01终止/继续', |
| | | 'A02jiting':item.button.value === 0 && item.button.name === 'A02终止/继续', |
| | | 'emgHMI':item.button.value === 0 && item.button.name === '软急停', |
| | | 'GA01jiting':item.button.value === 1 && item.button.name === 'A01终止/继续', |
| | | 'GA02jiting':item.button.value === 1 && item.button.name === 'A02终止/继续', |
| | | 'GemgHMI':item.button.value === 1 && item.button.name === '软急停' |
| | | |
| | | }" |
| | | >{{ item.button.name }}</el-button |
| | | > |
| | |
| | | <script> |
| | | import LanguageMixin from "../../lang/LanguageMixin"; |
| | | import data from "../../configuration/parameter2"; |
| | | import { |
| | | SelectPermissionByUserName, currentUsername |
| | | } from "../../api/home"; |
| | | // import { throttle } from 'lodash'; |
| | | let socket; |
| | | |
| | |
| | | jsonData: data, |
| | | inputValue: "", |
| | | language: this.$i18n.locale, |
| | | |
| | | |
| | | hasPermission: false // 默认没有权限 |
| | | |
| | | // 加载整个data.json文件作为jsonData |
| | | }; |
| | |
| | | this.replaceChineseWithEnglish(); |
| | | } |
| | | this.$forceUpdate(); |
| | | currentUsername().then(res => { |
| | | SelectPermissionByUserName(res.data).then(res => { |
| | | res.data.permission.forEach(item => { |
| | | if (item.permissionId == "36" && item.state == 1) { |
| | | this.hasPermission = true; |
| | | } |
| | | |
| | | }); |
| | | }); |
| | | |
| | | }); |
| | | }, |
| | | |
| | | computed: {}, |
| | |
| | | const jsonString2 = JSON.stringify(jsonObject2); |
| | | console.log("所有Type为0的value:", jsonString2); |
| | | socket?.send(jsonString2); |
| | | |
| | | // 延迟2秒发送指定内容 |
| | | setTimeout(() => { |
| | | const jsonObject = { data: [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [], []] }; |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log("发送的内容:", jsonString); |
| | | socket?.send(jsonString); |
| | | }, 1000); |
| | | |
| | | } |
| | | |
| | | if ( |
| | | currentButtonName === "A01Abort/ResumeTasks" || |
| | | currentButtonName === "A01终止/继续" || |
| | | currentButtonName === "A02Abort/ResumeTasks" || |
| | | currentButtonName === "A02终止/继续" |
| | | currentButtonName === "A02终止/继续" || |
| | | currentButtonName === "软急停" || |
| | | currentButtonName === "emgHMI" |
| | | ) { |
| | | const data3 = []; |
| | | const resetButtonValues3 = [this.jsonData[13][0].button.value2,this.jsonData[14][0].button.value2]; |
| | | const resetButtonValues3 = [this.jsonData[13][0].button.value2,this.jsonData[14][0].button.value2,this.jsonData[16][0].button.value2]; |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data3.push(resetButtonValues3.flat()); |
| | |
| | | const jsonString3 = JSON.stringify(jsonObject3); |
| | | console.log("急停后中止/继续选择:", jsonString3); |
| | | socket?.send(jsonString3); |
| | | |
| | | setTimeout(() => { |
| | | const jsonObject = { data: [ [],[0, 0, 0], []] }; |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log("发送的回弹内容:", jsonString); |
| | | socket?.send(jsonString); |
| | | }, 1000); |
| | | |
| | | |
| | | |
| | | // setTimeout(()=> |
| | | // window.location.reload(),2000 |
| | | // ) |
| | |
| | | //急停按钮 |
| | | jsonData2[13][0].button.value = obj.jiting[0][0]; |
| | | jsonData2[14][0].button.value = obj.jiting[0][1]; |
| | | jsonData2[16][0].button.value = obj.jiting[0][2]; |
| | | |
| | | |
| | | |
| | |
| | | .id { |
| | | background-color: green; |
| | | } |
| | | .A02jiting{ |
| | | |
| | | background-color: #66b1ff; |
| | | } |
| | | .A01jiting{ |
| | | |
| | | background-color: #66b1ff; |
| | | } |
| | | .emgHMI{ |
| | | |
| | | background-color: #66b1ff; |
| | | } |
| | | .GA02jiting{ |
| | | |
| | | background-color: green; |
| | | } |
| | | .GA01jiting{ |
| | | background-color: green; |
| | | } |
| | | .GemgHMI{ |
| | | background-color: green; |
| | | } |
| | | </style> |
| | |
| | | active-class="blue-button" |
| | | >{{ $t("Automatic State") }}</router-link |
| | | > |
| | | <router-link |
| | | <!-- <router-link |
| | | to="/Electrical/ManualJog" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualJog") }}</router-link |
| | | > |
| | | > --> |
| | | |
| | | <router-link |
| | | to="/Electrical/ManualonePosition" |
| | |
| | | active-class="blue-button" |
| | | >{{ $t("Speed parameter settings") }}</router-link |
| | | > |
| | | |
| | | <router-link |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | </el-breadcrumb> |
| | | |
| | | <el-row :gutter="18" class="card"> |
| | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualJog') |
| | | }}</router-link> |
| | | }}</router-link> --> |
| | | |
| | | <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition') |
| | |
| | | active-class="blue-button" |
| | | >{{ $t("Automatic State") }}</router-link |
| | | > |
| | | <router-link |
| | | <!-- <router-link |
| | | to="/Electrical/ManualJog" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("ManualJog") }}</router-link |
| | | > |
| | | > --> |
| | | |
| | | <router-link |
| | | to="/Electrical/ManualonePosition" |
| | |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("Speed parameter settings") }}</router-link |
| | | > |
| | | |
| | | <router-link |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | </el-breadcrumb> |
| | | |
| | |
| | | } |
| | | |
| | | if (currentButtonName === "回零" || currentButtonName === "Home") { |
| | | const data3 = []; |
| | | |
| | | const resetButtonValues3 = this.jsonData |
| | | .map((item) => { |
| | | const buttonItem3 = item.find( |
| | |
| | | .filter((value) => value !== null); |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data3.push(resetButtonValues3.flat()); |
| | | data.push(resetButtonValues3.flat()); |
| | | |
| | | // 在 data3 数组前面添加两个空数组 |
| | | data3.unshift([], [], []); |
| | | data3.push([], [], [], []); |
| | | data.unshift([], [], []); |
| | | data.push([], [], [], []); |
| | | |
| | | // 创建 jsonObject3 对象,并添加 data3 属性 |
| | | jsonObject = { data: data3 }; |
| | | jsonObject = { data }; |
| | | } |
| | | if ( |
| | | currentButtonName === "A01半自动" || |
| | |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log("所有Type为0的value:", jsonString); |
| | | socket?.send(jsonString); |
| | | |
| | | setTimeout(() => { |
| | | const reversedData = data.map(values => values.map(value => { |
| | | return (!value || value === 0) ? 0 : 0 ; |
| | | })); |
| | | |
| | | const reversedJsonObject = { data: reversedData }; |
| | | |
| | | // 提交数据到后端 |
| | | const reversedJsonString = JSON.stringify(reversedJsonObject); |
| | | console.log('反转后:', reversedJsonString); |
| | | socket?.send(reversedJsonString); |
| | | }, 1000); |
| | | }, |
| | | |
| | | initWebSocket() { |
| | |
| | | <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb"> |
| | | <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State') |
| | | }}</router-link> |
| | | <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualJog') |
| | | }}</router-link> |
| | | }}</router-link> --> |
| | | |
| | | <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition') |
| | | }}</router-link> |
| | | |
| | | <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Servomanualone') |
| | | }}</router-link> |
| | | <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1') |
| | | }}</router-link> --> |
| | | <router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button"> |
| | | {{ $t('Servomanualone') }} |
| | | </router-link> |
| | | |
| | | |
| | | <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{ |
| | | <router-link v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Address parameter settings') |
| | | }}</router-link> |
| | | <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Positioning2') |
| | | }}</router-link> --> |
| | | |
| | | <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('ManualonePosition2') |
| | | }}</router-link> --> |
| | | <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{ |
| | | |
| | | <router-link v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{ |
| | | $t('Speed parameter settings') |
| | | }}</router-link> |
| | | |
| | | <router-link v-if="hasPermission" |
| | | to="/Electrical/InteractionState" |
| | | tag="el-button" |
| | | type="text" |
| | | active-class="blue-button" |
| | | >{{ $t("InteractionState") }}</router-link |
| | | > |
| | | |
| | | </el-breadcrumb> |
| | | |
| | |
| | | <script> |
| | | import LanguageMixin from '../../lang/LanguageMixin' |
| | | import data from '../../configuration/ServoManualone' |
| | | import { |
| | | SelectPermissionByUserName, currentUsername |
| | | } from "../../api/home"; |
| | | |
| | | export default { |
| | | name: "Servomanual", |
| | | mixins: [LanguageMixin], |
| | | |
| | | data () { |
| | | return { |
| | | jsonData: data // 加载整个data.json文件作为jsonData |
| | | jsonData: data, |
| | | |
| | | hasPermission: false // 默认没有权限 |
| | | } |
| | | }, |
| | | created () { |
| | | // 通过路由跳转到/Electrical/Servomanualone页面 |
| | | this.$router.push('/Electrical/Servomanualone'); |
| | | this.$router.push('/Electrical/Parameter2'); |
| | | |
| | | currentUsername().then(res => { |
| | | SelectPermissionByUserName(res.data).then(res => { |
| | | res.data.permission.forEach(item => { |
| | | if (item.permissionId == "36" && item.state == 1) { |
| | | this.hasPermission = true; |
| | | } |
| | | |
| | | }); |
| | | }); |
| | | |
| | | }); |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
|
| | | <div class="kuai_sb" v-for="item in record.xyData" :key="item.name">
|
| | | <el-col class="deng" :class="getStatusClass(item.value)"></el-col>
|
| | | <el-input v-model="item.name" style="width: 100%;" class="in_mc"></el-input>
|
| | | <span style="width: 100%;" class="in_mc">{{
|
| | | item.unit
|
| | | }}</span>
|
| | | <span style="width: 100%;" class="in_mc">{{
|
| | | item.name
|
| | | }}</span>
|
| | |
|
| | | </div>
|
| | |
|
| | |
| | | },
|
| | | activated(){
|
| | | this.init();
|
| | |
|
| | | this.record.xyData = this.jsonData.sign;
|
| | | const language = this.$i18n.locale;
|
| | | if (language === 'zh-CN') {
|
| | | this.replaceChineseWithEnglish();
|
| | | } else {
|
| | | this.localizedRoles = [...this.record.xyData];
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | showdata () {
|
| | |
| | |
|
| | |
|
| | | const language = this.$i18n.locale;
|
| | | if (language === 'en-US') {
|
| | | if (language === 'zh-CN') {
|
| | | this.replaceChineseWithEnglish();
|
| | | } else {
|
| | | this.localizedRoles = [...this.record.xyData];
|
| | |
| | | const translation = this.$t('Signlang');
|
| | |
|
| | | if (translation != null) {
|
| | | this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value }; });
|
| | | this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value,unit:item.unit }; });
|
| | | //console.log(translation);
|
| | | }
|
| | |
|
| | |
| | |
|
| | | .kuai_sb {
|
| | | text-align: center;
|
| | | width: 15%;
|
| | | margin-bottom: 15px;
|
| | | width:18%;
|
| | | margin-bottom: 5px;
|
| | | }
|
| | |
|
| | | .el-input {
|
| | |
| | | }
|
| | |
|
| | | .in_mc {
|
| | | .el-input__inner {
|
| | | border: none;
|
| | | }
|
| | | font-size: 13px;
|
| | | }
|
| | |
|
| | | .deng {
|
| | | margin-left: 40%;
|
| | | margin-left: 1%;
|
| | | display: inline-block;
|
| | | background: #A0A0A0;
|
| | | border: 0.1875em solid white;
|
| | | border-radius: 50%;
|
| | | height: 4em;
|
| | | width: 4em;
|
| | | height: 2em;
|
| | | width: 2em;
|
| | | box-shadow: 0.375em 0.375em 0 0 rgba(214, 214, 214, 0.125);
|
| | | }
|
| | |
|
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <project version="4">
|
| | | <component name="Palette2">
|
| | | <group name="Swing">
|
| | | <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
| | | </item>
|
| | | <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
| | | </item>
|
| | | <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
| | | </item>
|
| | | <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
| | | <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
| | | </item>
|
| | | <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
| | | <initial-values>
|
| | | <property name="text" value="Button" />
|
| | | </initial-values>
|
| | | </item>
|
| | | <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
| | | <initial-values>
|
| | | <property name="text" value="RadioButton" />
|
| | | </initial-values>
|
| | | </item>
|
| | | <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
| | | <initial-values>
|
| | | <property name="text" value="CheckBox" />
|
| | | </initial-values>
|
| | | </item>
|
| | | <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
| | | <initial-values>
|
| | | <property name="text" value="Label" />
|
| | | </initial-values>
|
| | | </item>
|
| | | <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
| | | <preferred-size width="150" height="-1" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
| | | <preferred-size width="150" height="-1" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
| | | <preferred-size width="150" height="-1" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
| | | </item>
|
| | | <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
| | | <preferred-size width="150" height="50" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
| | | <preferred-size width="200" height="200" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
| | | <preferred-size width="200" height="200" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
| | | </item>
|
| | | <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
| | | </item>
|
| | | <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
| | | </item>
|
| | | <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
| | | </item>
|
| | | <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
| | | <preferred-size width="-1" height="20" />
|
| | | </default-constraints>
|
| | | </item>
|
| | | <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
| | | <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
| | | </item>
|
| | | <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
| | | <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
| | | </item>
|
| | | </group>
|
| | | </component>
|
| | | </project> |
New file |
| | |
| | | FROM openjdk:8-jdk-alpine
|
| | | VOLUME /tmp
|
| | | ARG JAR_FILE
|
| | | COPY ${JAR_FILE} springboot-vue3-0.0.1-SNAPSHOT.jar
|
| | | EXPOSE 8888
|
| | | ENTRYPOINT ["java","-jar","/springboot-vue3-0.0.1-SNAPSHOT.jar"] |
New file |
| | |
| | | { |
| | | "plcAddressBegin":"DB100.0", |
| | | "plcAddressLenght":"86", |
| | | "dataType":"word", |
| | | "parameteInfor":[ |
| | | { |
| | | "codeId": "conveyorVelocity(Max)", |
| | | "addressIndex":"0", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"2", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"4", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(Manual)", |
| | | "addressIndex":"6", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNJOGVelocity", |
| | | "addressIndex":"8", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELJOGVelocity", |
| | | "addressIndex":"10", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELJOGVelocity", |
| | | "addressIndex":"12", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocityAUTO", |
| | | "addressIndex":"14", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01TURNPOSVelocitymanual", |
| | | "addressIndex":"16", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"18", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01TRAVELPOSVelocitymanual", |
| | | "addressIndex":"20", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"22", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01TRAVELPOSVelocitymanual", |
| | | "addressIndex":"24", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(Max)", |
| | | "addressIndex":"26", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"28", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"30", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Manual)", |
| | | "addressIndex":"32", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Max)", |
| | | "addressIndex":"34", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"36", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"38", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Manual)", |
| | | "addressIndex":"40", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "gridspacing", |
| | | "addressIndex":"42", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01Spliceaddresssetting", |
| | | "addressIndex":"44", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02Spliceaddresssetting", |
| | | "addressIndex":"46", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A011#gridaddress", |
| | | "addressIndex":"48", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0122#gridaddress", |
| | | "addressIndex":"50", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0143#gridaddress", |
| | | "addressIndex":"52", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0164#gridaddress", |
| | | "addressIndex":"54", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0185#gridaddress", |
| | | "addressIndex":"56", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01106#gridaddress", |
| | | "addressIndex":"58", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01127#gridaddress", |
| | | "addressIndex":"60", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01148#gridaddress", |
| | | "addressIndex":"62", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01169#gridaddress", |
| | | "addressIndex":"64", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01190#gridaddress", |
| | | "addressIndex":"66", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A021#gridaddress", |
| | | "addressIndex":"68", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0222#gridaddress", |
| | | "addressIndex":"70", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0243#gridaddress", |
| | | "addressIndex":"72", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0264#gridaddress", |
| | | "addressIndex":"74", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0285#gridaddress", |
| | | "addressIndex":"76", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02106#gridaddress", |
| | | "addressIndex":"78", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02127#gridaddress", |
| | | "addressIndex":"80", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02148#gridaddress", |
| | | "addressIndex":"82", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02169#gridaddress", |
| | | "addressIndex":"84", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02190#gridaddress", |
| | | "addressIndex":"86", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B011#gridaddress", |
| | | "addressIndex":"88", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0122#gridaddress", |
| | | "addressIndex":"90", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0143#gridaddress", |
| | | "addressIndex":"92", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0164#gridaddress", |
| | | "addressIndex":"94", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0185#gridaddress", |
| | | "addressIndex":"96", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02106#gridaddress", |
| | | "addressIndex":"98", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02127#gridaddress", |
| | | "addressIndex":"100", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02148#gridaddress", |
| | | "addressIndex":"102", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02169#gridaddress", |
| | | "addressIndex":"104", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02190#gridaddress", |
| | | "addressIndex":"106", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01Targetgrid(Manual)", |
| | | "addressIndex":"108", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": " A02Targetgrid(Manual)", |
| | | "addressIndex":"110", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B01Targetgrid(Manual)", |
| | | "addressIndex":"112", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B02Targetgrid(Manual)", |
| | | "addressIndex":"114", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01turnTargetAngle(Manual)", |
| | | "addressIndex":"116", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnTargetAngle(Manual)", |
| | | "addressIndex":"118", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle1", |
| | | "addressIndex":"120", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle2", |
| | | "addressIndex":"122", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle3", |
| | | "addressIndex":"124", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle4", |
| | | "addressIndex":"126", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle1", |
| | | "addressIndex":"128", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle2", |
| | | "addressIndex":"130", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle3", |
| | | "addressIndex":"132", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle4", |
| | | "addressIndex":"134", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "Minimumglasslength", |
| | | "addressIndex":"136", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Minimumglassheight", |
| | | "addressIndex":"138", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Maximumglasslength", |
| | | "addressIndex":"140", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Maximumglassheight", |
| | | "addressIndex":"142", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01cellsGlassNum", |
| | | "addressIndex":"144", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02cellsGlassNum", |
| | | "addressIndex":"146", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01ID", |
| | | "addressIndex":"148", |
| | | "addressLenght":"14", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02ID", |
| | | "addressIndex":"162", |
| | | "addressLenght":"14", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02TRAVELPOSVelocitymanual", |
| | | "addressIndex":"176", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B02TRAVELPOSVelocitymanual", |
| | | "addressIndex":"178", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Startingpositionofthefeedca", |
| | | "addressIndex":"180", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Targetpositionofthefeedcar", |
| | | "addressIndex":"182", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Lengthofincomingglass", |
| | | "addressIndex":"184", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Widthofincomingglass", |
| | | "addressIndex":"186", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Startingpositionoftheexitcar", |
| | | "addressIndex":"188", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, { |
| | | "codeId": "Exitcartargetposition", |
| | | "addressIndex":"190", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | , { |
| | | "codeId": "A02TURNPOSVelocitymanual", |
| | | "addressIndex":"192", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | , { |
| | | "codeId": "A01delayTime", |
| | | "addressIndex":"194", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | |
| | | |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "plcAddressBegin":"DB100.0.0", |
| | | "plcAddressLenght":"20", |
| | | "dataType":"bit", |
| | | "parameteInfor":[ |
| | | { |
| | | "codeId": "D01.SRdec", |
| | | "addressIndex":"0" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"1" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(Manual)", |
| | | "addressIndex":"2" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNJOGVelocity", |
| | | "addressIndex":"3" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELJOGVelocity", |
| | | "addressIndex":"4" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELJOGVelocity", |
| | | "addressIndex":"5" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocityAUTO", |
| | | "addressIndex":"12" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocitymanual", |
| | | "addressIndex":"14" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"16" |
| | | }, |
| | | { |
| | | "codeId": "DO1id", |
| | | "addressIndex":"18" |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | package com.example.springboot.component;
|
| | | import cn.hutool.json.JSONArray;
|
| | | import cn.hutool.json.JSONObject;
|
| | | import com.example.springboot.entity.device.PlcBitInfo;
|
| | | import com.example.springboot.entity.device.PlcBitObject;
|
| | | import com.example.springboot.entity.device.PlcParameterInfo;
|
| | | import com.example.springboot.entity.device.PlcParameterObject;
|
| | |
|
| | | import java.io.BufferedReader;
|
| | | import java.io.FileReader;
|
| | | import java.io.IOException;
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | | public class InitUtil {
|
| | | public static PlcParameterObject initword(String jsonFilePath) {
|
| | | try {
|
| | | FileReader fileReader = new FileReader(jsonFilePath);
|
| | | BufferedReader bufferedReader = new BufferedReader(fileReader);
|
| | |
|
| | | StringBuilder content = new StringBuilder();
|
| | | String line;
|
| | |
|
| | | while ((line = bufferedReader.readLine()) != null) {
|
| | | content.append(line);
|
| | | }
|
| | |
|
| | | bufferedReader.close();
|
| | | fileReader.close();
|
| | |
|
| | | JSONObject jsonfileobj = new JSONObject(content.toString());
|
| | | JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
|
| | | PlcParameterObject plcParameterObject = new PlcParameterObject();
|
| | | plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址
|
| | | plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度
|
| | |
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | JSONObject parameterObj = jsonArray.getJSONObject(i);
|
| | | PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例
|
| | | String codeid = parameterObj.getStr("codeId");
|
| | | plcParameterInfo.setCodeId(codeid);
|
| | | plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
|
| | | plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
|
| | | plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
|
| | | plcParameterInfo.setUnit(parameterObj.getStr("unit"));
|
| | | plcParameterObject.addPlcParameter(plcParameterInfo);
|
| | | }
|
| | | return plcParameterObject;
|
| | | } catch (IOException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | return null;
|
| | | }
|
| | |
|
| | | public static PlcBitObject initbit(String jsonFilePath) {
|
| | | PlcBitObject plcBitObject = new PlcBitObject();
|
| | |
|
| | | try {
|
| | | FileReader fileReader = new FileReader(jsonFilePath);
|
| | | BufferedReader bufferedReader = new BufferedReader(fileReader);
|
| | |
|
| | | StringBuilder content = new StringBuilder();
|
| | | String line;
|
| | |
|
| | | while ((line = bufferedReader.readLine()) != null) {
|
| | | content.append(line);
|
| | | }
|
| | |
|
| | | bufferedReader.close();
|
| | | fileReader.close();
|
| | |
|
| | | JSONObject jsonfileobj = new JSONObject(content.toString());
|
| | | JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
|
| | | plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址
|
| | | plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度
|
| | |
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | JSONObject parameterObj = jsonArray.getJSONObject(i);
|
| | |
|
| | | PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例
|
| | | String codeid = parameterObj.getStr("codeId");
|
| | | plcBitInfo.setCodeId(codeid);
|
| | | plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
|
| | |
|
| | | plcBitObject.addPlcBit(plcBitInfo);
|
| | | }
|
| | | System.out.println("");
|
| | | } catch (IOException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | return plcBitObject;
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | //写入bit
|
| | | public void writeBitToPLC(JSONArray messageArray, List<String> addresses, int index) {
|
| | | try {
|
| | |
| | | List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1); |
| | | List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1); |
| | | List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1); |
| | | |
| | | List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(",")); |
| | | |
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses); |
| | | //System.out.println("lastMessage:" + arraylist2); |
| | | |
| | | //翻转 |
| | | List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1); |
| | | List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1); |
| | |
| | | System.out.println(messageArray); |
| | | // 写入第一个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList2,2); |
| | | |
| | | // 写入第二个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList3,3); |
| | | |
| | | |
| | | // 写入第三个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList4,4); |
| | | |
| | | |
| | | // 写入第四个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addressList1, mergedList); |
| | |
| | | } |
| | | |
| | | List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(",")); |
| | | |
| | | |
| | | String addressList22 = "DB100.8"; |
| | | String addressList33 = "DB100.12"; |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | |
| | | |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList2 = new ArrayList<>(); |
| | | for (int i = 5; i < 8; i++) { |
| | |
| | | |
| | | // 写入第伍个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList22,8); |
| | | |
| | | |
| | | // 写入第六个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList33,9); |
| | | |
| | | // 写入第七个地址 |
| | | if (!mergedList2.isEmpty()) { |
| | | S7control.getinstance().WriteWord(waddresses1, mergedList2); |
| | | System.out.println("messageValue:" + mergedList2 + " written to PLC at address " + waddresses1); |
| | | } |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
New file |
| | |
| | | package com.example.springboot.component; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.example.springboot.service.StorageCageService; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.example.springboot.entity.device.PlcParameterObject; |
| | | import com.example.springboot.entity.device.PlcBitObject; |
| | | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | @Component |
| | | public class PLCAutomaticParameterSettingReview extends Thread { |
| | | |
| | | private StorageCageService storageCageService = new StorageCageService(); |
| | | private final PlcParameterObject plcParameterObject; |
| | | private final PlcBitObject plcBitObject; |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | @Autowired |
| | | public PLCAutomaticParameterSettingReview() { |
| | | this.storageCageService = storageCageService; |
| | | this.plcParameterObject = new PlcParameterObject(); |
| | | this.plcBitObject = new PlcBitObject(); |
| | | String jsonFilePath = "JsonFile/PlcParameter.json"; |
| | | InitUtil.initword(jsonFilePath); // 初始化 PlcParameterObject |
| | | String jsonFilePath2 = "JsonFile/PlcSign.json"; |
| | | InitUtil.initbit(jsonFilePath2); // 初始化 PlcSign |
| | | |
| | | |
| | | } |
| | | |
| | | // 单例模式 线程安全 |
| | | public static PLCAutomaticParameterSettingReview getInstance(StorageCageService storageCageService) { |
| | | return new PLCAutomaticParameterSettingReview(); |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | } catch (InterruptedException e) { |
| | | Thread.currentThread().interrupt(); |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | List<String> addresses = new ArrayList<>(); |
| | | addresses.add("A01turnAngle1"); |
| | | addresses.add("A01turnAngle2"); |
| | | addresses.add("A01turnAngle3"); |
| | | addresses.add("A01turnAngle4"); |
| | | addresses.add("A02turnAngle2"); |
| | | addresses.add("A02turnAngle3"); |
| | | addresses.add("A02turnAngle4"); |
| | | addresses.add("Minimumglasslength"); |
| | | |
| | | |
| | | //Auto.addresses=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.34,DB100.36,DB100.38,DB100.40 |
| | | List<String> Autoaddresses = new ArrayList<>(); |
| | | Autoaddresses.add("conveyorVelocity(Max)"); |
| | | Autoaddresses.add("conveyorVelocity(AutoFAST)"); |
| | | Autoaddresses.add("conveyorVelocity(AutoSLOW)"); |
| | | Autoaddresses.add("conveyorVelocity(Manual)"); |
| | | Autoaddresses.add("A01A02conveyorVelocity(Max)"); |
| | | Autoaddresses.add("A01A02conveyorVelocity(AutoFAST)"); |
| | | Autoaddresses.add("A01A02conveyorVelocity(AutoSLOW)"); |
| | | Autoaddresses.add("B01B02conveyorVelocity(Manual)"); |
| | | |
| | | Autoaddresses.add("B01B02conveyorVelocity(Max)"); |
| | | Autoaddresses.add("B01B02conveyorVelocity(AutoFAST)"); |
| | | Autoaddresses.add("B01B02conveyorVelocity(AutoSLOW)"); |
| | | Autoaddresses.add("B01B02conveyorVelocity(Manual)"); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | String addressList1 = "DB100.120"; |
| | | String addressList2 = "DB100.18"; |
| | | String addressList3 = "DB100.22"; |
| | | String addressList4 = "DB100.14"; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1); |
| | | // List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1); |
| | | // List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1); |
| | | // List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(",")); |
| | | // List<Short> arraylist2 = S7control.getinstance().readWords(addresses); |
| | | //System.out.println("lastMessage:" + arraylist2); |
| | | //翻转 |
| | | //List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1); |
| | | // List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1); |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5} |
| | | // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0} |
| | | |
| | | jsonObject.append("params", plcParameterObject.getPlcParameterValues(addresses)); |
| | | jsonObject.append("dache1", plcParameterObject.getPlcParameter("A01A02TRAVELPOSVelocityAUTO").getValue()); |
| | | jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("B01B02TRAVELPOSVelocityAUTO").getValue()); |
| | | jsonObject.append("fanzhuan", plcParameterObject.getPlcParameter("A01A02TURNPOSVelocityAUTO").getValue()); |
| | | jsonObject.append("params2", plcParameterObject.getPlcParameterValues(Autoaddresses)); |
| | | jsonObject.append("fanzhuan2", plcParameterObject.getPlcParameter("A01A02TURNJOGVelocity").getValue()); |
| | | jsonObject.append("xiaoche2", plcParameterObject.getPlcParameter("B01B02TRAVELJOGVelocity").getValue()); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); |
| | | if (webserver != null) { |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | String lastMessage = messages.get(messages.size() - 1); |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | |
| | | // 整合第 1 到 2 个数组并去掉 null 元素 |
| | | List<Short> mergedList = new ArrayList<>(); |
| | | for (int i = 0; i < 2; i++) { |
| | | JSONArray sublist = messageArray.getJSONArray(i); |
| | | for (int j = 0; j < sublist.size(); j++) { |
| | | Object value = sublist.get(j); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | mergedList.add(sValue); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | System.out.println(messageArray); |
| | | // 写入第一个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList2,2); |
| | | // 写入第二个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList3,3); |
| | | // 写入第三个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList4,4); |
| | | // 写入第四个地址 |
| | | if (!mergedList.isEmpty()) { |
| | | S7control.getinstance().WriteWord(addressList1, mergedList); |
| | | System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList1); |
| | | } |
| | | |
| | | //List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(",")); |
| | | String addressList22 = "DB100.8"; |
| | | String addressList33 = "DB100.12"; |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为 short 类型的列表 |
| | | // 整合第 1 到 3 个数组并去掉 null 元素 |
| | | List<Short> mergedList2 = new ArrayList<>(); |
| | | for (int i = 5; i < 8; i++) { |
| | | JSONArray sublist = messageArray.getJSONArray(i); |
| | | for (int j = 0; j < sublist.size(); j++) { |
| | | Object value = sublist.get(j); |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | short sValue = Short.parseShort(cleanedValue.trim()); |
| | | mergedList2.add(sValue); |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 short 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 写入第伍个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList22,8); |
| | | // 写入第六个地址 |
| | | customS7Control.WriteWordsToPLC(messageArray, addressList33,9); |
| | | // 写入第七个地址 |
| | | // plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddress(index) |
| | | if (!mergedList2.isEmpty()) { |
| | | //S7control.getinstance().WriteWord(plcParameterObject.getPlcParameter(Autoaddresses), mergedList2); |
| | | // System.out.println("messageValue:" + mergedList2 + " written to PLC at address " + waddresses1); |
| | | } |
| | | // 清空消息列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | if (S7control.getinstance().CheckConnected() == true) { |
| | | if (S7control.getinstance().CheckConnected() == false) { |
| | | spianService = WebSocketServer.applicationContext.getBean(SpianService.class); |
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); |
| | | jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); |
| | |
| | | // // TODO Auto-generated catch block |
| | | // e.printStackTrace(); |
| | | // } |
| | | // spianService.selectAll("X12345610402GV"); |
| | | spianService.selectAll("X21942610402GV"); |
| | | // 出片任务//////////////////////////////// |
| | | List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 出片车状态 |
| | | List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 出片任务是否启动 |
New file |
| | |
| | | package com.example.springboot.component; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | public class PlcInteractionState extends Thread { |
| | | private Configuration config; |
| | | |
| | | public PlcInteractionState() throws IOException { |
| | | config = new Configuration("config.properties"); |
| | | } |
| | | |
| | | |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(500); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | |
| | | |
| | | |
| | | List<String> addresses = Arrays.asList(config.getProperty("PlcInteractionState.MESImporttask").split(",")); |
| | | |
| | | List<String> arraylist = S7control.getinstance().readStringsandword(addresses); |
| | | // System.out.println(arraylist); |
| | | List<String> addresses2 = Arrays.asList(config.getProperty("PlcInteractionState.PLCImporttask").split(",")); |
| | | |
| | | List<String> arraylist2 = S7control.getinstance().readStringsandword(addresses2); |
| | | |
| | | List<String> addresses3 = Arrays.asList(config.getProperty("PlcInteractionState.MESProductiontask").split(",")); |
| | | |
| | | List<String> arraylist3 = S7control.getinstance().readStringsandword(addresses3); |
| | | |
| | | |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("PlcInteractionState.PLCProductiontask").split(",")); |
| | | |
| | | List<String> arraylist4 = S7control.getinstance().readStringsandword(addresses4); |
| | | |
| | | |
| | | List<String> addresses5 = Arrays.asList(config.getProperty("PlcInteractionState.MEStaskinformation").split(",")); |
| | | List<String> arraylist5 = S7control.getinstance().readStringsandword(addresses5); |
| | | |
| | | |
| | | // String[] values = { ".x11","x21 ","x21 ","x21 ","x21 ","x21"}; |
| | | // List<String> arraylist = new ArrayList<>(Arrays.asList(values)); |
| | | // String[] values2 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist2 = new ArrayList<>(Arrays.asList(values2)); |
| | | // String[] values3 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist3 = new ArrayList<>(Arrays.asList(values3)); |
| | | // String[] values4 = { ".x11 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // String[] values5 = { ".x11 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 ","x21 "}; |
| | | // List<String> arraylist5 = new ArrayList<>(Arrays.asList(values5)); |
| | | |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | // System.out.println(arraylist6); |
| | | JSONArray jsonArray = new JSONArray(); |
| | | jsonArray.put(arraylist); |
| | | jsonArray.put(arraylist2); |
| | | jsonArray.put(arraylist3); |
| | | jsonArray.put(arraylist4); |
| | | jsonArray.put(arraylist5); |
| | | jsonObject.put("zuhe1", jsonArray); |
| | | |
| | | |
| | | // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); |
| | | // if (sendwServer != null) { |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("InteractionState"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.example.springboot.component; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import org.apache.commons.io.FileUtils; |
| | | import org.apache.tomcat.jni.Lock; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | |
| | | import java.io.*; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | import org.springframework.core.io.Resource; |
| | | import org.springframework.core.io.ResourceLoader; |
| | | |
| | | import com.example.springboot.entity.device.PlcParameterObject; |
| | | import com.example.springboot.entity.device.PlcParameterInfo; |
| | | |
| | | public class PlcParameter1Review extends Thread { |
| | | |
| | | @Autowired |
| | | private ResourceLoader resourceLoader; |
| | | private volatile static PlcParameter1Review instance = null; |
| | | |
| | | private PlcParameter1Review() { |
| | | init(); |
| | | } |
| | | |
| | | // 单例模式 线程安全 |
| | | public static PlcParameter1Review getInstance() { |
| | | if (instance == null) { |
| | | synchronized (PlcParameter1Review.class) { |
| | | if (instance == null) { |
| | | instance = new PlcParameter1Review(); |
| | | } |
| | | } |
| | | } |
| | | return instance; |
| | | } |
| | | |
| | | PlcParameterObject plcParameterObject = new PlcParameterObject();//该DB区数据实例 |
| | | |
| | | private void init() { |
| | | try { |
| | | String jsonfilename = PlcParameter1Review.class.getResource("/JsonFile/PlcParameter.json").getFile(); |
| | | FileReader fileReader = new FileReader(jsonfilename); |
| | | BufferedReader bufferedReader = new BufferedReader(fileReader); |
| | | |
| | | StringBuilder content = new StringBuilder(); |
| | | String line; |
| | | |
| | | while ((line = bufferedReader.readLine()) != null) { |
| | | content.append(line); |
| | | } |
| | | |
| | | bufferedReader.close(); |
| | | fileReader.close(); |
| | | |
| | | JSONObject jsonfileobj = new JSONObject(content.toString()); |
| | | JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor"); |
| | | plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址 |
| | | plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度 |
| | | |
| | | |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | JSONObject parameterObj = jsonArray.getJSONObject(i); |
| | | |
| | | PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例 |
| | | String codeid = parameterObj.getStr("codeId"); |
| | | plcParameterInfo.setCodeId(codeid); |
| | | plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex"))); |
| | | plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio"))); |
| | | plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght"))); |
| | | plcParameterInfo.setUnit(parameterObj.getStr("unit")); |
| | | plcParameterObject.addPlcParameter(plcParameterInfo); |
| | | } |
| | | System.out.println(""); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); |
| | | plcParameterObject.setPlcParameterList(getplcvlues); |
| | | int index = plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddressIndex(); |
| | | S7control.getinstance().WriteWord(plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getAddress(index), (short) 100); |
| | | |
| | | List<String> addresses = new ArrayList<>(); |
| | | addresses.add("conveyorVelocity(AutoFAST)"); |
| | | addresses.add("conveyorVelocity(AutoSLOW)"); |
| | | addresses.add("conveyorVelocity(Manual)"); |
| | | addresses.add("A01A02TURNJOGVelocity"); |
| | | addresses.add("A01A02TRAVELJOGVelocity"); |
| | | |
| | | plcParameterObject.getPlcParameterValues(addresses); |
| | | |
| | | JSONObject jsonObject = new JSONObject(); |
| | | |
| | | jsonObject.append("params", plcParameterObject.getPlcParameterValues(addresses)); |
| | | jsonObject.append("fanzhuan", plcParameterObject.getPlcParameter("conveyorVelocity(AutoFAST)").getValue()); |
| | | jsonObject.append("xiaoche", plcParameterObject.getPlcParameter("").getValue()); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | 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"); |
| | | |
| | | String addressList2 = "DB100.8"; |
| | | String addressList3 = "DB100.12"; |
| | | |
| | | 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(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(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); |
| | | // id |
| | | List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(",")); |
| | | |
| | | List<String> paramlist = S7control.getinstance().readStrings(addressList1); |
| | | // System.out.println(paramlist); |
| | | |
| | | //手动状态 |
| | | List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(",")); |
| | | |
| | | List<Short> data = S7control.getinstance().readWords(addresses); |
| | | |
| | | |
| | | //清除id |
| | | List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(",")); |
| | | |
| | | |
| | | // 扫码枪 |
| | | List<Boolean> data2 = S7control.getinstance().readBits(addressList0); |
| | | List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(",")); |
| | |
| | | List<String> timeout = Arrays.asList(config.getProperty("Parameter2.timeout").split(",")); |
| | | String timeout2 = config.getProperty("Parameter2.timeout"); |
| | | |
| | | |
| | | Long readtimeout = S7control.getinstance().readtime(timeout2); |
| | | List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); |
| | | |
| | | |
| | | List<String> data3 = S7control.getinstance().readStrings(addressList3); |
| | | // A01 A02 B01 B02 |
| | | |
| | | List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(",")); |
| | | |
| | | |
| | | List<Short> data4 = S7control.getinstance().readWords(addresses4); |
| | | //System.out.println(data); |
| | | // List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194")); |
| | |
| | | if (!containsOne) { |
| | | //判断id是否包含数字 |
| | | if (id.matches(".*\\d.*")) { |
| | | //判断清楚id是否true |
| | | //判断清除id是否true |
| | | if (value) { |
| | | System.out.println(id); |
| | | switch (i) { |
| | |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | |
| | | S7control.getinstance().WriteBit(addressList0, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addressList0); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | FileInputStream fileInputStream; |
| | | try { |
| | | // 从文件中读取字节数据存入 fileInputStream |
| | | fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json"); |
| | | fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); |
| | | // 读取 fileInputStream 中字节并将其解码为字符 |
| | | InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); |
| | | // 提高读取效率,在 BufferedReader 内包装 InputStreamReader |
| | |
| | | // System.out.println(PlcAddress); |
| | | |
| | | // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount); |
| | | List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 64); |
| | | List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112); |
| | | |
| | | // Boolean[] values = { true, true, true, true, true, false, true, false, |
| | | // true, false, true, false, true, false, |
New file |
| | |
| | | package com.example.springboot.component; |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | |
| | | import java.io.BufferedReader; |
| | | import java.io.FileReader; |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import com.example.springboot.entity.device.PlcBitObject; |
| | | import com.example.springboot.entity.device.PlcBitInfo; |
| | | |
| | | public class PlcsignReview extends Thread { |
| | | String name = ""; |
| | | Integer count = 0; |
| | | private volatile static PlcsignReview instance = null; |
| | | |
| | | private PlcsignReview() { |
| | | init(); |
| | | } |
| | | |
| | | // 单例模式 线程安全 |
| | | public static PlcsignReview getInstance() { |
| | | if (instance == null) { |
| | | synchronized (PlcsignReview.class) { |
| | | if (instance == null) { |
| | | instance = new PlcsignReview(); |
| | | } |
| | | } |
| | | } |
| | | return instance; |
| | | } |
| | | |
| | | PlcBitObject plcBitObject = new PlcBitObject();//该DB区数据实例 |
| | | |
| | | private void init() { |
| | | try { |
| | | String jsonfilename = PlcsignReview.class.getResource("/JsonFile/PlcSign.json").getFile(); |
| | | FileReader fileReader = new FileReader(jsonfilename); |
| | | BufferedReader bufferedReader = new BufferedReader(fileReader); |
| | | |
| | | StringBuilder content = new StringBuilder(); |
| | | String line; |
| | | |
| | | while ((line = bufferedReader.readLine()) != null) { |
| | | content.append(line); |
| | | } |
| | | |
| | | bufferedReader.close(); |
| | | fileReader.close(); |
| | | |
| | | JSONObject jsonfileobj = new JSONObject(content.toString()); |
| | | JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor"); |
| | | plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//设置起始位地址 |
| | | plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//设置地址长度 |
| | | |
| | | |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | JSONObject parameterObj = jsonArray.getJSONObject(i); |
| | | |
| | | PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例 |
| | | String codeid = parameterObj.getStr("codeId"); |
| | | plcBitInfo.setCodeId(codeid); |
| | | plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex"))); |
| | | |
| | | plcBitObject.addPlcBit(plcBitInfo); |
| | | } |
| | | System.out.println(""); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void run() { |
| | | while (this != null) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<Boolean> getplcbits = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength()); |
| | | plcBitObject.setPlcBitList(getplcbits); |
| | | // this.readValue(); |
| | | // String PlcAddress = this.name; |
| | | // Integer Plccount = this.count; |
| | | // System.out.println(PlcAddress); |
| | | |
| | | // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount); |
| | | List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 64); |
| | | |
| | | // Boolean[] values = { true, true, true, true, true, false, true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, true, false, true, false, |
| | | // true, false, true, false, true, |
| | | // false, true, false, true, false, |
| | | // true, false, true, false, true, false, true, false, null, |
| | | // true, false, |
| | | // true, false, true, false, true, false, |
| | | // true, false, true, false, true, }; |
| | | // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values)); |
| | | |
| | | if (plclist != null) { |
| | | // 将获取的布尔类型转换为整数类型 |
| | | List<Integer> Intlist = new ArrayList<>(); |
| | | for (Boolean value : plclist) { |
| | | if (value != null) { |
| | | Intlist.add(value == true ? 0 : 1); |
| | | } |
| | | |
| | | } |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.append("sig", Intlist); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | |
| | | |
| | | if (webserver != null) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public List<String> readStringsandword(List<String> addressList) { |
| | | if (s7PLC == null) { |
| | | return null; |
| | | } |
| | | List<String> result = new ArrayList<>(); |
| | | for (String address : addressList) { |
| | | try { |
| | | if (address.contains("-")) { |
| | | address = address.substring(0, address.indexOf("-")); |
| | | |
| | | byte[] bytes = s7PLC.readByte(address, 14); |
| | | if (bytes != null) { |
| | | String str = new String(bytes, StandardCharsets.UTF_8); |
| | | result.add(str); |
| | | } |
| | | |
| | | } else { |
| | | Short value = s7PLC.readInt16(address); |
| | | result.add(value.toString()); |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | System.out.println("读取 " + address + " 失败:" + e.getMessage()); |
| | | result.add(null); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | //不连续地址写入Word |
| | | public void WriteWord(List<String> address, List<Short> datas) { |
| | | if (s7PLC == null) |
| | |
| | | // |
| | | System.out.println("启动完成"); |
| | | |
| | | // new PlcHold().start(); |
| | | // new PlcHold().start(); |
| | | |
| | | new Plchome().start(); |
| | | |
| | | // new Plcalarm().start(); |
| | | new Plcalarm().start(); |
| | | |
| | | // new Plcsign().start(); |
| | | new Plcsign().start(); |
| | | |
| | | // new Plcstate().start(); |
| | | // new PlcPositioning1().start(); |
| | | new Plcstate().start(); |
| | | new PlcPositioning1().start(); |
| | | |
| | | // new PlcParameter2().start(); |
| | | new PlcParameter2().start(); |
| | | |
| | | // new PLCAutomaticParameterSetting().start(); |
| | | new PLCAutomaticParameterSetting().start(); |
| | | |
| | | // new PlcManualonePosition().start(); |
| | | // new PlcManualonePosition2().start(); |
| | | // new PlcServoManualone().start(); |
| | | // new PLCManualJog().start(); |
| | | // new Plclog().start(); |
| | | new PlcManualonePosition().start(); |
| | | new PlcManualonePosition2().start(); |
| | | new PlcServoManualone().start(); |
| | | new PLCManualJog().start(); |
| | | new Plclog().start(); |
| | | |
| | | new PlcInteractionState().start(); |
| | | |
| | | // new PLCAutomaticParameterSettingReview().start(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.example.springboot.entity.device; |
| | | |
| | | import com.example.springboot.component.S7control; |
| | | |
| | | public class PlcBitInfo { |
| | | |
| | | public PlcBitInfo(String startAddress) { |
| | | this.startAddress = startAddress; |
| | | } |
| | | private String startAddress; |
| | | // 参数标识 |
| | | private String codeId; |
| | | |
| | | // 参数名称 |
| | | private String name; |
| | | |
| | | // 读取 参数值 |
| | | private Boolean value; |
| | | // 参数地址 |
| | | private int addressIndex; |
| | | |
| | | public String getCodeId() { |
| | | return this.codeId; |
| | | } |
| | | |
| | | public void setCodeId(String codeId) { |
| | | this.codeId = codeId; |
| | | } |
| | | |
| | | public String getName() { |
| | | return this.name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Boolean getValue() { |
| | | return this.value; |
| | | } |
| | | |
| | | public void setValue(Boolean value) { |
| | | this.value = value; |
| | | } |
| | | |
| | | |
| | | public int getAddressIndex() { |
| | | return this.addressIndex; |
| | | } |
| | | /** |
| | | * 获取地址 |
| | | * |
| | | * @param index 索引地址 |
| | | */ |
| | | public String getAddress(int index) { |
| | | String[] stringdatas = this.startAddress.trim().split("\\."); |
| | | if (stringdatas.length < 2 ) |
| | | return null; |
| | | int dbwindex = 0; |
| | | int bitindex = 0; |
| | | if (stringdatas.length == 3) { |
| | | dbwindex = Integer.parseInt(stringdatas[1]); |
| | | bitindex = Integer.parseInt(stringdatas[2]); |
| | | } else |
| | | return null; |
| | | dbwindex+=index/8; |
| | | bitindex+=index%8; |
| | | return stringdatas[0]+"."+dbwindex+"."+bitindex; |
| | | } |
| | | |
| | | public void setAddressIndex(int addressindex) { |
| | | this.addressIndex = addressindex; |
| | | } |
| | | } |
New file |
| | |
| | | package com.example.springboot.entity.device; |
| | | |
| | | import java.lang.reflect.Array; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class PlcBitObject { |
| | | |
| | | // 该模块数据类型,数据起始位置 |
| | | private String plcAddressBegin; |
| | | // 数据地址长度:第一参数到最后一个参数的长度 |
| | | private int plcAddressLength; |
| | | private ArrayList<PlcBitInfo> plcBitList; |
| | | |
| | | /** |
| | | * @return 数据区开始地址 |
| | | */ |
| | | public String getPlcAddressBegin() { |
| | | return plcAddressBegin; |
| | | } |
| | | |
| | | /** |
| | | * @param plcAddressBegin 设置数据区开始地址 |
| | | */ |
| | | public void setPlcAddressBegin(String plcAddressBegin) { |
| | | this.plcAddressBegin = plcAddressBegin; |
| | | } |
| | | |
| | | /** |
| | | * @return 数据区 读取所有数据所需的长度(以byte类型为基准) |
| | | */ |
| | | public int getPlcAddressLength() { |
| | | return plcAddressLength; |
| | | } |
| | | |
| | | /** |
| | | * @return 设置:数据区 读取所有数据所需的长度(以byte类型为基准) |
| | | */ |
| | | public void setPlcAddressLength(int plcAddressLength) { |
| | | this.plcAddressLength = plcAddressLength; |
| | | } |
| | | |
| | | /** |
| | | * @return 获取参数实例集合 |
| | | */ |
| | | public ArrayList<PlcBitInfo> getBitList() { |
| | | return plcBitList; |
| | | } |
| | | |
| | | /** |
| | | * 根据参数标识 获取某个参数实例 |
| | | * |
| | | * @param codeid 参数标识 |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public PlcBitInfo getPlcBit(String codeid) { |
| | | if (plcBitList != null) { |
| | | for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | if (plcbitInfo.getCodeId().equals(codeid)) |
| | | return plcbitInfo; |
| | | } |
| | | return null; |
| | | } else |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 根据参数标识 获取某个参数实例 |
| | | * |
| | | * @param codeid 参数标识 |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public List<Boolean> getPlcBitValues(List<String> codeids) { |
| | | List<Boolean> arrayList = new ArrayList(); |
| | | if (plcBitList != null) { |
| | | for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | if (codeids.contains(plcbitInfo.getCodeId().toString())) |
| | | arrayList.add(plcbitInfo.getValue()); |
| | | } |
| | | } |
| | | return arrayList; |
| | | } |
| | | |
| | | /** |
| | | * 添加参数实例 |
| | | * |
| | | * @param param 参数实例 |
| | | */ |
| | | public void addPlcBit(PlcBitInfo param) { |
| | | if (plcBitList != null) |
| | | plcBitList.add(param); |
| | | else { |
| | | plcBitList = new ArrayList<PlcBitInfo>(); |
| | | plcBitList.add(param); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据PLC返回的数据 给参数实例赋值 |
| | | * |
| | | * @param plcValueArray PLC读取回来的byte类型数据集合 |
| | | */ |
| | | public void setPlcBitList(List<Boolean> plcValueArray) { |
| | | if (plcBitList != null) { |
| | | for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex())); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.example.springboot.entity.device; |
| | | public class PlcParameterInfo { |
| | | public PlcParameterInfo(String startAddress) { |
| | | this.startAddress = startAddress; |
| | | } |
| | | private String startAddress; |
| | | // 参数标识 |
| | | private String codeId; |
| | | |
| | | // 参数名称 |
| | | private String name; |
| | | |
| | | // 读取 参数值 |
| | | private String value; |
| | | |
| | | // // 写入 参数值 |
| | | // private String writeValue; |
| | | |
| | | // 参数单位 |
| | | private String unit; |
| | | |
| | | // 参数值转换系数 |
| | | private int ratio; |
| | | |
| | | // 参数地址 |
| | | private int addressIndex; |
| | | |
| | | // 参数地址位长度 |
| | | private int addressLength; |
| | | |
| | | public String getCodeId() { |
| | | return this.codeId; |
| | | } |
| | | |
| | | public void setCodeId(String codeId) { |
| | | this.codeId = codeId; |
| | | } |
| | | |
| | | public String getName() { |
| | | return this.name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getValue() { |
| | | return this.value; |
| | | } |
| | | |
| | | public void setValue(String value) { |
| | | this.value = value; |
| | | } |
| | | |
| | | // public String getWriteValue() { |
| | | // return this.writeValue; |
| | | // } |
| | | |
| | | // public void setWriteValue(String writeValue) { |
| | | // this.writeValue = writeValue; |
| | | // } |
| | | |
| | | public String getUnit() { |
| | | return this.unit; |
| | | } |
| | | |
| | | public void setUnit(String unit) { |
| | | this.unit = unit; |
| | | } |
| | | |
| | | public int getAddressIndex() { |
| | | return this.addressIndex; |
| | | } |
| | | |
| | | public void setAddressIndex(int addressindex) { |
| | | this.addressIndex = addressindex; |
| | | } |
| | | |
| | | public int getAddressLength() { |
| | | return this.addressLength; |
| | | } |
| | | |
| | | public void setAddressLength(int addresslength) { |
| | | this.addressLength = addresslength; |
| | | } |
| | | |
| | | public int getRatio() { |
| | | return this.ratio; |
| | | } |
| | | |
| | | public void setRatio(int ratio) { |
| | | this.ratio = ratio; |
| | | } |
| | | |
| | | /** |
| | | * 获取地址 |
| | | * |
| | | * @param index 索引地址 |
| | | */ |
| | | public String getAddress(int index) { |
| | | String[] stringdatas = this.startAddress.trim().split("\\."); |
| | | if (stringdatas.length < 2 ) |
| | | return null; |
| | | int dbwindex = 0; |
| | | int bitindex = 0; |
| | | if (stringdatas.length == 2) { |
| | | dbwindex = Integer.parseInt(stringdatas[1]); |
| | | } else |
| | | return null; |
| | | return stringdatas[0]+"."+dbwindex+bitindex; |
| | | } |
| | | |
| | | public int getPlcAddress() { |
| | | |
| | | return addressIndex; |
| | | } |
| | | } |
New file |
| | |
| | | package com.example.springboot.entity.device; |
| | | |
| | | import java.lang.reflect.Array; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | public class PlcParameterObject { |
| | | |
| | | // 该模块数据类型,数据起始位置 |
| | | private String plcAddressBegin; |
| | | // 数据地址长度:第一参数到最后一个参数的长度 |
| | | private int plcAddressLength; |
| | | private ArrayList<PlcParameterInfo> plcParameterList; |
| | | |
| | | /** |
| | | * @return 数据区开始地址 |
| | | */ |
| | | public String getPlcAddressBegin() { |
| | | return plcAddressBegin; |
| | | } |
| | | |
| | | /** |
| | | * @param plcAddressBegin 设置数据区开始地址 |
| | | */ |
| | | public void setPlcAddressBegin(String plcAddressBegin) { |
| | | this.plcAddressBegin = plcAddressBegin; |
| | | } |
| | | |
| | | /** |
| | | * @return 数据区 读取所有数据所需的长度(以byte类型为基准) |
| | | */ |
| | | public int getPlcAddressLength() { |
| | | return plcAddressLength; |
| | | } |
| | | |
| | | /** |
| | | * @return 设置:数据区 读取所有数据所需的长度(以byte类型为基准) |
| | | */ |
| | | public void setPlcAddressLength(int plcAddressLength) { |
| | | this.plcAddressLength = plcAddressLength; |
| | | } |
| | | |
| | | /** |
| | | * @return 获取参数实例集合 |
| | | */ |
| | | public ArrayList<PlcParameterInfo> getPlcParameterList() { |
| | | return plcParameterList; |
| | | } |
| | | |
| | | /** |
| | | * 根据参数标识 获取某个参数实例 |
| | | * |
| | | * @param codeid 参数标识 |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public PlcParameterInfo getPlcParameter(String codeid) { |
| | | if (plcParameterList != null) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (plcParameterInfo.getCodeId().equals(codeid)) |
| | | return plcParameterInfo; |
| | | } |
| | | return null; |
| | | } else |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据参数标识 获取某个参数实例 |
| | | * |
| | | * @param codeid 参数标识 |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public List<String> getPlcParameterValues(List<String> codeids) { |
| | | List<String> arrayList = new ArrayList(); |
| | | if (plcParameterList != null) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (codeids.contains(plcParameterInfo.getCodeId().toString())) |
| | | arrayList.add(plcParameterInfo.getValue()); |
| | | } |
| | | } |
| | | return arrayList; |
| | | } |
| | | |
| | | |
| | | public List<String> getPlcAddressList(String codeid) { |
| | | List<String> addressList = new ArrayList<>(); |
| | | if (plcParameterList != null) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (plcParameterInfo.getCodeId().equals(codeid)) { |
| | | int plcAddress = plcParameterInfo.getPlcAddress(); |
| | | if (!addressList.contains(plcAddress)) { |
| | | addressList.add(String.valueOf(plcAddress)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return addressList; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 添加参数实例 |
| | | * |
| | | * @param param 参数实例 |
| | | */ |
| | | public void addPlcParameter(PlcParameterInfo param) { |
| | | if (plcParameterList != null) |
| | | plcParameterList.add(param); |
| | | else { |
| | | plcParameterList = new ArrayList<PlcParameterInfo>(); |
| | | plcParameterList.add(param); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据PLC返回的数据 给参数实例赋值 |
| | | * |
| | | * @param plcValueArray PLC读取回来的byte类型数据集合 |
| | | */ |
| | | public void setPlcParameterList(byte[] plcValueArray) { |
| | | if (plcParameterList != null) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; |
| | | for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { |
| | | Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); |
| | | } |
| | | if (plcParameterInfo.getAddressLength()==2) { |
| | | plcParameterInfo.setValue(String.valueOf(byte2short(valueList))); |
| | | } |
| | | else |
| | | { |
| | | String valuestr = new String(valueList); |
| | | plcParameterInfo.setValue(valuestr); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * short类型转byte[] |
| | | * |
| | | * @param s short类型值 |
| | | */ |
| | | public static byte[] short2byte(short s){ |
| | | byte[] b = new byte[2]; |
| | | for(int i = 0; i < 2; i++){ |
| | | int offset = 16 - (i+1)*8; //因为byte占4个字节,所以要计算偏移量 |
| | | b[i] = (byte)((s >> offset)&0xff); //把16位分为2个8位进行分别存储 |
| | | } |
| | | return b; |
| | | } |
| | | /** |
| | | * byte[]类型转short |
| | | * |
| | | * @param b byte[]类型值 |
| | | */ |
| | | public static short byte2short(byte[] b){ |
| | | short l = 0; |
| | | for (int i = 0; i < 2; i++) { |
| | | l<<=8; //<<=和我们的 +=是一样的,意思就是 l = l << 8 |
| | | l |= (b[i] & 0xff); //和上面也是一样的 l = l | (b[i]&0xff) |
| | | } |
| | | return l; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import java.util.List; |
| | | |
| | | import javax.print.DocFlavor.STRING; |
| | | |
| | | @Mapper |
| | | |
| | |
| | | // 判断相邻笼子是否有空格 |
| | | @Select("select COUNT(if(a.state1=0,cell,0))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) and disabled=0 GROUP BY cage ORDER BY cell desc LIMIT 1") |
| | | int selectCage(int cage1); |
| | | // 获取订单号排序的空订单笼子 |
| | | @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY (FrameBarcode=#{Fbarcode} or ''='') desc,shu desc,shu2,cage asc; ") |
| | | // 获取笼子号订单号排序的空订单笼子 |
| | | @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,max(a.state)as state2,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY (FrameBarcode=#{Fbarcode} or ''='') desc,shu desc,shu2,state2 asc,cage asc;") |
| | | List<StorageCage> selectAll(String orderids,String Fbarcode); |
| | | |
| | | //优先判断一次是否有同铝框的空位 |
| | | @Select("select *,min(state) state1 from storage_cage GROUP BY cage,cell HAVING state1=0 and FrameBarcode=#{FrameBarcode} LIMIT 1;") |
| | | List<StorageCage> selectAllFbarcode(String Fbarcode); |
| | | // 获取判断该格子是否需要把外片推入内片位置 |
| | | @Select("select state from storage_cage where cage=#{cage} and cell=#{cell} and tier=1;") |
| | | int selectcell(int cage, int cell); |
| | |
| | | @Select("select COUNT(tier)as tier from storage_cage where cage=#{cage} and cell=#{cell} and state!=0 and state!=3;") |
| | | int selectsum(int cage, int cell); |
| | | |
| | | // 完成进片中的玻璃状态 |
| | | // 完成出片中的玻璃状态 |
| | | @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=3;") |
| | | void UpdateCageOver(String glassid, int state); |
| | | |
| | | // 完成进片中的玻璃状态 |
| | | @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=2;") |
| | | void UpdateCageadd(String glassid, int state); |
| | | |
| | | //查询是否有该类型的任务还未完成 |
| | | // 判断出片为1时,是否可直接出片 |
| | | @Select("select COUNT(state) from storage_cage where state=#{state}") |
| | | int SelectCageState(int state); |
| | | // 获取玻璃信息 |
| | | @Select("select *,ordernumber ,glasslength_mm as glasslengthmm,glassheight_mm as glassheightmm,barcode,listnumber,boxnumber,glasslength,glassheight,FrameBarcode from north_glass_buffer1 where barcode=#{glassid}") |
| | | north_glass_buffer1 selectGlass(String glassid); |
| | |
| | | int Selectqueuestate(); |
| | | |
| | | // 判断铝框出片表是否有玻璃需要出 |
| | | @Select("SELECT glassid FROM `out_slice` where state=0 and framestate!=1 order by sequence,id limit 1;") |
| | | @Select("SELECT glassid FROM `out_slice` where state=0 order by sequence,id limit 1;") |
| | | String SelectOutSlice(); |
| | | |
| | | // 判断铝框出片表是否有玻璃正在出片中 |
| | |
| | | double minwidth = 0; |
| | | |
| | | north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 获取玻璃参数 |
| | | //如果没有此id时 |
| | | if (glasslist == null) { |
| | | return (300); |
| | | } |
| | | //判断是否还有进片任务未完成的 |
| | | int cagestate=spianMapper.SelectCageState(2); |
| | | //有进片任务未完成时返回不进片 |
| | | if(cagestate>0){ |
| | | return (300); |
| | | } |
| | | double widths = glasslist.getglasslengthmm(); |
| | | String orderids = glasslist.getordernumber(); |
| | | String FrameBarcode=glasslist.getFrameBarcode(); |
| | | String FrameBarcode = glasslist.getFrameBarcode(); |
| | | |
| | | List<String> adddresslist = new ArrayList<>(); |
| | | adddresslist.add("DB105.0");// 进片车起始位置 |
| | |
| | | |
| | | // String orderid="A001"; |
| | | // 获取订单相关度最高的笼子排序 |
| | | List<StorageCage> storageCage = spianMapper.selectAll(orderids,FrameBarcode); |
| | | List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode); |
| | | if (storageCage.size() == 0) { |
| | | storageCage = spianMapper.selectAll(orderids, FrameBarcode); |
| | | } |
| | | |
| | | if (storageCage == null) { |
| | | return (400); |
| | | } |
| | |
| | | cage1 = storageCage2.getCage(); |
| | | // 判断该笼子号相邻最大的空格数 |
| | | int cages = spianMapper.selectCage(cage1); |
| | | |
| | | |
| | | // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400 |
| | | if (cages == 0) { |
| | | return (400); |
| | |
| | | int cells; |
| | | double glasswidth = cageout.getGlassWidth(); |
| | | |
| | | |
| | | // 判断玻璃内外片 |
| | | if (tier == 2) { |
| | | int state = spianMapper.selectGlassState(cage, cell);// 获取格子数量 |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) state); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 更改笼子表的玻璃状态 |
| | | |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) 1); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1);// 新增任务 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | |
| | | |
| | | System.out.println("出片任务|" + datas); |
| | | outmesid(glassid, "DB105.34");// 派发出片ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | |
| | | } else { |
| | | // 玻璃需要调拨时,判断属于哪个半区的笼子 |
| | | if (cage < 6) { |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6,cell); |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6, cell); |
| | | if (cagecell == null) { |
| | | return (300); |
| | | } |
| | |
| | | return (200); // 结束 |
| | | |
| | | } else {// 笼子号大于5时 |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11,cell); |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11, cell); |
| | | if (cagecell == null) { |
| | | return (300); |
| | | } |
| | |
| | | public void overtask(String glassid) { |
| | | |
| | | spianMapper.UpdatetaskOut(glassid.toString());// 完成上一次 出片或者进片任务 |
| | | spianMapper.OverOutSlice(glassid.toString(), 2,1);// 完成出片队列任务 |
| | | spianMapper.OverOutSlice(glassid.toString(), 2, 1);// 完成出片队列任务 |
| | | spianMapper.UpdataGlassCage(glassid.toString(), 0);// 清除出片格子玻璃信息 |
| | | spianMapper.UpdateCageOver(glassid.toString(), 0);// 更改笼子表出片状态 |
| | | spianMapper.UpdateCageadd(glassid.toString(), 1);// 更改笼子表进片状态 |
| | | String barcode = spianMapper.SelectBarcode(glassid.toString());// 获取该玻璃的铝框id |
| | | spianMapper.UpdateAddQueue(glassid.toString());// 把进片的玻璃更新到出片队列中 |
| | | // if (barcode != null) { |
| | | // int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态 |
| | | // if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据 |
| | | // spianMapper.DeleteQueue(barcode); |
| | | // } |
| | | // int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态 |
| | | // if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据 |
| | | // spianMapper.DeleteQueue(barcode); |
| | | // } |
| | | // } |
| | | |
| | | } |
New file |
| | |
| | | { |
| | | "plcAddressBegin":"DB100.0", |
| | | "plcAddressLenght":"86", |
| | | "dataType":"word", |
| | | "parameteInfor":[ |
| | | { |
| | | "codeId": "conveyorVelocity(Max)", |
| | | "addressIndex":"0", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"2", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"4", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(Manual)", |
| | | "addressIndex":"6", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNJOGVelocity", |
| | | "addressIndex":"8", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELJOGVelocity", |
| | | "addressIndex":"10", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELJOGVelocity", |
| | | "addressIndex":"12", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocityAUTO", |
| | | "addressIndex":"14", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01TURNPOSVelocitymanual", |
| | | "addressIndex":"16", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"18", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01TRAVELPOSVelocitymanual", |
| | | "addressIndex":"20", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"22", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "B01TRAVELPOSVelocitymanual", |
| | | "addressIndex":"24", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm/S" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(Max)", |
| | | "addressIndex":"26", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"28", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "A01A02conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"30", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Manual)", |
| | | "addressIndex":"32", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Max)", |
| | | "addressIndex":"34", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(AutoFAST)", |
| | | "addressIndex":"36", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"38", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "B01B02conveyorVelocity(Manual)", |
| | | "addressIndex":"40", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"m/min" |
| | | }, |
| | | { |
| | | "codeId": "gridspacing", |
| | | "addressIndex":"42", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01Spliceaddresssetting", |
| | | "addressIndex":"44", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02Spliceaddresssetting", |
| | | "addressIndex":"46", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A011#gridaddress", |
| | | "addressIndex":"48", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0122#gridaddress", |
| | | "addressIndex":"50", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0143#gridaddress", |
| | | "addressIndex":"52", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0164#gridaddress", |
| | | "addressIndex":"54", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0185#gridaddress", |
| | | "addressIndex":"56", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01106#gridaddress", |
| | | "addressIndex":"58", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01127#gridaddress", |
| | | "addressIndex":"60", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01148#gridaddress", |
| | | "addressIndex":"62", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01169#gridaddress", |
| | | "addressIndex":"64", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01190#gridaddress", |
| | | "addressIndex":"66", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A021#gridaddress", |
| | | "addressIndex":"68", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0222#gridaddress", |
| | | "addressIndex":"70", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0243#gridaddress", |
| | | "addressIndex":"72", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0264#gridaddress", |
| | | "addressIndex":"74", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A0285#gridaddress", |
| | | "addressIndex":"76", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02106#gridaddress", |
| | | "addressIndex":"78", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02127#gridaddress", |
| | | "addressIndex":"80", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02148#gridaddress", |
| | | "addressIndex":"82", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02169#gridaddress", |
| | | "addressIndex":"84", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A02190#gridaddress", |
| | | "addressIndex":"86", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B011#gridaddress", |
| | | "addressIndex":"88", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0122#gridaddress", |
| | | "addressIndex":"90", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0143#gridaddress", |
| | | "addressIndex":"92", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0164#gridaddress", |
| | | "addressIndex":"94", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B0185#gridaddress", |
| | | "addressIndex":"96", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02106#gridaddress", |
| | | "addressIndex":"98", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02127#gridaddress", |
| | | "addressIndex":"100", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02148#gridaddress", |
| | | "addressIndex":"102", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02169#gridaddress", |
| | | "addressIndex":"104", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "B02190#gridaddress", |
| | | "addressIndex":"106", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"mm" |
| | | }, |
| | | { |
| | | "codeId": "A01Targetgrid(Manual)", |
| | | "addressIndex":"108", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": " A02Targetgrid(Manual)", |
| | | "addressIndex":"110", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B01Targetgrid(Manual)", |
| | | "addressIndex":"112", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B02Targetgrid(Manual)", |
| | | "addressIndex":"114", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01turnTargetAngle(Manual)", |
| | | "addressIndex":"116", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnTargetAngle(Manual)", |
| | | "addressIndex":"118", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle1", |
| | | "addressIndex":"120", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle2", |
| | | "addressIndex":"122", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle3", |
| | | "addressIndex":"124", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A01turnAngle4", |
| | | "addressIndex":"126", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle1", |
| | | "addressIndex":"128", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle2", |
| | | "addressIndex":"130", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle3", |
| | | "addressIndex":"132", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "A02turnAngle4", |
| | | "addressIndex":"134", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"°" |
| | | }, |
| | | { |
| | | "codeId": "Minimumglasslength", |
| | | "addressIndex":"136", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Minimumglassheight", |
| | | "addressIndex":"138", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Maximumglasslength", |
| | | "addressIndex":"140", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Maximumglassheight", |
| | | "addressIndex":"142", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01cellsGlassNum", |
| | | "addressIndex":"144", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02cellsGlassNum", |
| | | "addressIndex":"146", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A01ID", |
| | | "addressIndex":"148", |
| | | "addressLenght":"14", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02ID", |
| | | "addressIndex":"162", |
| | | "addressLenght":"14", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "A02TRAVELPOSVelocitymanual", |
| | | "addressIndex":"176", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "B02TRAVELPOSVelocitymanual", |
| | | "addressIndex":"178", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Startingpositionofthefeedca", |
| | | "addressIndex":"180", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Targetpositionofthefeedcar", |
| | | "addressIndex":"182", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Lengthofincomingglass", |
| | | "addressIndex":"184", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Widthofincomingglass", |
| | | "addressIndex":"186", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, |
| | | { |
| | | "codeId": "Startingpositionoftheexitcar", |
| | | "addressIndex":"188", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | }, { |
| | | "codeId": "Exitcartargetposition", |
| | | "addressIndex":"190", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | , { |
| | | "codeId": "A02TURNPOSVelocitymanual", |
| | | "addressIndex":"192", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | , { |
| | | "codeId": "A01delayTime", |
| | | "addressIndex":"194", |
| | | "addressLenght":"2", |
| | | "ratio":"1" |
| | | |
| | | } |
| | | |
| | | |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "plcAddressBegin":"DB100.0.0", |
| | | "plcAddressLenght":"20", |
| | | "dataType":"bit", |
| | | "parameteInfor":[ |
| | | { |
| | | "codeId": "D01.SRdec", |
| | | "addressIndex":"0" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(AutoSLOW)", |
| | | "addressIndex":"1" |
| | | }, |
| | | { |
| | | "codeId": "conveyorVelocity(Manual)", |
| | | "addressIndex":"2" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNJOGVelocity", |
| | | "addressIndex":"3" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELJOGVelocity", |
| | | "addressIndex":"4" |
| | | }, |
| | | { |
| | | "codeId": "B01B02TRAVELJOGVelocity", |
| | | "addressIndex":"5" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocityAUTO", |
| | | "addressIndex":"12" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TURNPOSVelocitymanual", |
| | | "addressIndex":"14" |
| | | }, |
| | | { |
| | | "codeId": "A01A02TRAVELPOSVelocityAUTO", |
| | | "addressIndex":"16" |
| | | }, |
| | | { |
| | | "codeId": "DO1id", |
| | | "addressIndex":"18" |
| | | } |
| | | ] |
| | | } |
| | |
| | | #扫码枪
|
| | | Parameter2.scanner=DB103.256,DB103.270
|
| | | #急停
|
| | | Parameter2.stop=DB101.10.4,DB101.11.2
|
| | | Parameter2.stop=DB101.10.4,DB101.11.2,DB101.11.3
|
| | |
|
| | | Parameter2.timeout=DB100.194
|
| | | #当前格子
|
| | |
| | |
|
| | |
|
| | |
|
| | | #----------------------------PlcInteractionState
|
| | | #进片
|
| | | PlcInteractionState.MESImporttask=DB105.0,DB105.2,DB105.4,DB105.6,DB105.8,DB105.20-33
|
| | |
|
| | | PlcInteractionState.PLCImporttask=DB106.8,DB106.4,DB106.6,DB106.24,DB106.26-39,DB103.40-57,DB103.58-71
|
| | | #出片任务
|
| | | PlcInteractionState.MESProductiontask=DB105.10,DB105.12,DB105.14,DB105.16,DB105.18,DB105.34-47
|
| | |
|
| | | PlcInteractionState.PLCProductiontask=DB106.20,DB106.16,DB106.18,DB103.156-169
|
| | |
|
| | | #任务信息
|
| | | PlcInteractionState.MEStaskinformation=DB105.48,DB105.50,DB106.42,DB106.48,DB106.50,DB106.58,DB103.128-141,DB103.142-155,DB103.156-169,DB103.184-197,DB103.212-225
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|