diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 387a0db..f542ad7 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -2048,6 +2048,15 @@ #\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 THXC.ACU301.FJSTAT.WORDCOUNT = 3 +#\u6C34\u6CF5\u6570\u91CF +THXC.ACU301.SB.COUNT = 4 +#\u6C34\u6CF5\u7F16\u7801\u5217\u8868 +THXC.ACU301.SB.ZC.LIST = THXC.ACU301.P.ZSB01;THXC.ACU301.P.ZSB02;THXC.ACU301.P.DSB01;THXC.ACU301.P.DSB02 +#\u6C34\u6CF5\u72B6\u6001\u8D77\u59CB\u5730\u5740 +THXC.ACU301.SBSTAT.START = 1100 +#\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 +THXC.ACU301.SBSTAT.WORDCOUNT = 12 + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 387a0db..f542ad7 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -2048,6 +2048,15 @@ #\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 THXC.ACU301.FJSTAT.WORDCOUNT = 3 +#\u6C34\u6CF5\u6570\u91CF +THXC.ACU301.SB.COUNT = 4 +#\u6C34\u6CF5\u7F16\u7801\u5217\u8868 +THXC.ACU301.SB.ZC.LIST = THXC.ACU301.P.ZSB01;THXC.ACU301.P.ZSB02;THXC.ACU301.P.DSB01;THXC.ACU301.P.DSB02 +#\u6C34\u6CF5\u72B6\u6001\u8D77\u59CB\u5730\u5740 +THXC.ACU301.SBSTAT.START = 1100 +#\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 +THXC.ACU301.SBSTAT.WORDCOUNT = 12 + diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java index fb1c0c9..a41f3d9 100644 --- a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -1,6 +1,7 @@ package com.szpg.plc.message.response.read; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -142,40 +143,36 @@ return; } zcList = zcListStr.split(";"); - + + // 初始化结果集合 + fjRun = Arrays.asList(new Boolean[zcList.length]); + fjFlt = Arrays.asList(new Boolean[zcList.length]); + // 解析风机运行状态 for (int i = 0; i < zcList.length; i++) { String zcbh = zcList[i]; // 解析风机运行状态 PgHjsbbl runBlObj = blDao.findBlByBh(zcbh + ".Run"); - if (null == runBlObj) { - getFjRun().add(null); - getFjFlt().add(null); - continue; + if (null != runBlObj) { + int rkszdz = runBlObj.getKszdz(); //开始字地址 + int roffset = rkszdz - start; //与开始字的偏移量 + int rbit = runBlObj.getSzw(); //所在位 + + char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 + getFjRun().set(i, runBt == '1' ? true : false); } - - int rkszdz = runBlObj.getKszdz(); //开始字地址 - int roffset = rkszdz - start; //与开始字的偏移量 - int rbit = runBlObj.getSzw(); //所在位 - - char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 - getFjRun().add(runBt == '1' ? true : false); - + // 解析风机故障报警状态 PgHjsbbl fltBlObj = blDao.findBlByBh(zcbh + ".Flt"); - if (null == fltBlObj) { - getFjFlt().add(null); - continue; - } - - int fkszdz = fltBlObj.getKszdz(); //开始字地址 - int foffset = fkszdz - start; //与开始字的偏移量 - int fbit = fltBlObj.getSzw(); //所在位 - - char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 - getFjFlt().add(fltBt == '1' ? true : false); + if (null != fltBlObj) { + int fkszdz = fltBlObj.getKszdz(); //开始字地址 + int foffset = fkszdz - start; //与开始字的偏移量 + int fbit = fltBlObj.getSzw(); //所在位 + char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 + getFjFlt().set(i, fltBt == '1' ? true : false); + } } logger.info("解析[读取风机状态]响应指令结束"); diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 387a0db..f542ad7 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -2048,6 +2048,15 @@ #\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 THXC.ACU301.FJSTAT.WORDCOUNT = 3 +#\u6C34\u6CF5\u6570\u91CF +THXC.ACU301.SB.COUNT = 4 +#\u6C34\u6CF5\u7F16\u7801\u5217\u8868 +THXC.ACU301.SB.ZC.LIST = THXC.ACU301.P.ZSB01;THXC.ACU301.P.ZSB02;THXC.ACU301.P.DSB01;THXC.ACU301.P.DSB02 +#\u6C34\u6CF5\u72B6\u6001\u8D77\u59CB\u5730\u5740 +THXC.ACU301.SBSTAT.START = 1100 +#\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 +THXC.ACU301.SBSTAT.WORDCOUNT = 12 + diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java index fb1c0c9..a41f3d9 100644 --- a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -1,6 +1,7 @@ package com.szpg.plc.message.response.read; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -142,40 +143,36 @@ return; } zcList = zcListStr.split(";"); - + + // 初始化结果集合 + fjRun = Arrays.asList(new Boolean[zcList.length]); + fjFlt = Arrays.asList(new Boolean[zcList.length]); + // 解析风机运行状态 for (int i = 0; i < zcList.length; i++) { String zcbh = zcList[i]; // 解析风机运行状态 PgHjsbbl runBlObj = blDao.findBlByBh(zcbh + ".Run"); - if (null == runBlObj) { - getFjRun().add(null); - getFjFlt().add(null); - continue; + if (null != runBlObj) { + int rkszdz = runBlObj.getKszdz(); //开始字地址 + int roffset = rkszdz - start; //与开始字的偏移量 + int rbit = runBlObj.getSzw(); //所在位 + + char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 + getFjRun().set(i, runBt == '1' ? true : false); } - - int rkszdz = runBlObj.getKszdz(); //开始字地址 - int roffset = rkszdz - start; //与开始字的偏移量 - int rbit = runBlObj.getSzw(); //所在位 - - char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 - getFjRun().add(runBt == '1' ? true : false); - + // 解析风机故障报警状态 PgHjsbbl fltBlObj = blDao.findBlByBh(zcbh + ".Flt"); - if (null == fltBlObj) { - getFjFlt().add(null); - continue; - } - - int fkszdz = fltBlObj.getKszdz(); //开始字地址 - int foffset = fkszdz - start; //与开始字的偏移量 - int fbit = fltBlObj.getSzw(); //所在位 - - char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 - getFjFlt().add(fltBt == '1' ? true : false); + if (null != fltBlObj) { + int fkszdz = fltBlObj.getKszdz(); //开始字地址 + int foffset = fkszdz - start; //与开始字的偏移量 + int fbit = fltBlObj.getSzw(); //所在位 + char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 + getFjFlt().set(i, fltBt == '1' ? true : false); + } } logger.info("解析[读取风机状态]响应指令结束"); diff --git a/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java index 595afb6..069ae1d 100644 --- a/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java @@ -1,6 +1,7 @@ package com.szpg.plc.message.response.read; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -111,7 +112,7 @@ } // 如果单泵或者双泵有任意一个故障则都报警 - if (sb1Flt.get(i) == true || (null != sb2Flt.get(i) && sb2Flt.get(i) == true)) { + if ((null != sb1Flt.get(i) && sb1Flt.get(i) == true) || (null != sb2Flt.get(i) && sb2Flt.get(i) == true)) { PgAlarm alarm = new PgAlarm(); alarm.setActive(1); alarm.setAlarm_date(this.getTime().getTime()); @@ -171,63 +172,59 @@ } zcList = zcListStr.split(";"); + // 初始化结果集合 + sb1Run = Arrays.asList(new Boolean[zcList.length]); + sb1Flt = Arrays.asList(new Boolean[zcList.length]); + sb2Run = Arrays.asList(new Boolean[zcList.length]); + sb2Flt = Arrays.asList(new Boolean[zcList.length]); + // 解析水泵运行状态 for (int i = 0; i < zcList.length; i++) { String zcbh = zcList[i]; // 解析水泵1运行状态 PgHjsbbl run1BlObj = blDao.findBlByBh(zcbh + ".Run1"); - if (null == run1BlObj) { - continue; + if (null != run1BlObj) { + int r1kszdz = run1BlObj.getKszdz(); // 开始字地址 + int r1offset = r1kszdz - start; // 与开始字的偏移量 + int r1bit = run1BlObj.getSzw(); // 所在位 + + char run1Bt = dataStr.charAt(dataStr.length() - 1 - r1offset * 16 - r1bit); // 水泵1运行状态标志位 + getSb1Run().set(i, run1Bt == '1' ? true : false); } - int r1kszdz = run1BlObj.getKszdz(); // 开始字地址 - int r1offset = r1kszdz - start; // 与开始字的偏移量 - int r1bit = run1BlObj.getSzw(); // 所在位 - - char run1Bt = dataStr.charAt(dataStr.length() - 1 - r1offset * 16 - r1bit); // 水泵1运行状态标志位 - // 解析水泵2运行状态 PgHjsbbl run2BlObj = blDao.findBlByBh(zcbh + ".Run2"); - if (null == run2BlObj) { - getSb2Run().add(null); - } else { + if (null != run2BlObj) { int r2kszdz = run2BlObj.getKszdz(); // 开始字地址 int r2offset = r2kszdz - start; // 与开始字的偏移量 int r2bit = run2BlObj.getSzw(); // 所在位 char run2Bt = dataStr.charAt(dataStr.length() - 1 - r2offset * 16 - r2bit); // 水泵2运行状态标志位 - getSb2Run().add(run2Bt == '1' ? true : false); + getSb2Run().set(i, run2Bt == '1' ? true : false); } // 解析水泵1故障报警状态 PgHjsbbl flt1BlObj = blDao.findBlByBh(zcbh + ".Flt1"); - if (null == flt1BlObj) { - continue; + if (null != flt1BlObj) { + int f1kszdz = flt1BlObj.getKszdz(); // 开始字地址 + int f1offset = f1kszdz - start; // 与开始字的偏移量 + int f1bit = flt1BlObj.getSzw(); // 所在位 + + char flt1Bt = dataStr.charAt(dataStr.length() - 1 - f1offset * 16 - f1bit); // 水泵1故障报警标志位 + getSb1Flt().set(i, flt1Bt == '1' ? true : false); } - int f1kszdz = flt1BlObj.getKszdz(); // 开始字地址 - int f1offset = f1kszdz - start; // 与开始字的偏移量 - int f1bit = flt1BlObj.getSzw(); // 所在位 - - char flt1Bt = dataStr.charAt(dataStr.length() - 1 - f1offset * 16 - f1bit); // 水泵1故障报警标志位 - // 解析水泵2故障报警状态 PgHjsbbl flt2BlObj = blDao.findBlByBh(zcbh + ".Flt2"); - if (null == flt2BlObj) { - getSb2Flt().add(null); - } else { - + if (null != flt2BlObj) { int f2kszdz = flt2BlObj.getKszdz(); // 开始字地址 int f2offset = f2kszdz - start; // 与开始字的偏移量 int f2bit = flt2BlObj.getSzw(); // 所在位 - + char flt2Bt = dataStr.charAt(dataStr.length() - 1 - f2offset * 16 - f2bit); // 水泵1故障报警标志位 - getSb2Flt().add(flt2Bt == '1' ? true : false); + getSb2Flt().set(i, flt2Bt == '1' ? true : false); } - - getSb1Flt().add(flt1Bt == '1' ? true : false); - getSb1Run().add(run1Bt == '1' ? true : false); } logger.info("解析[读取水泵状态]响应指令结束"); diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 387a0db..f542ad7 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -2048,6 +2048,15 @@ #\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 THXC.ACU301.FJSTAT.WORDCOUNT = 3 +#\u6C34\u6CF5\u6570\u91CF +THXC.ACU301.SB.COUNT = 4 +#\u6C34\u6CF5\u7F16\u7801\u5217\u8868 +THXC.ACU301.SB.ZC.LIST = THXC.ACU301.P.ZSB01;THXC.ACU301.P.ZSB02;THXC.ACU301.P.DSB01;THXC.ACU301.P.DSB02 +#\u6C34\u6CF5\u72B6\u6001\u8D77\u59CB\u5730\u5740 +THXC.ACU301.SBSTAT.START = 1100 +#\u98CE\u673A\u72B6\u6001\u6240\u5360\u5B57\u6570 +THXC.ACU301.SBSTAT.WORDCOUNT = 12 + diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java index fb1c0c9..a41f3d9 100644 --- a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -1,6 +1,7 @@ package com.szpg.plc.message.response.read; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -142,40 +143,36 @@ return; } zcList = zcListStr.split(";"); - + + // 初始化结果集合 + fjRun = Arrays.asList(new Boolean[zcList.length]); + fjFlt = Arrays.asList(new Boolean[zcList.length]); + // 解析风机运行状态 for (int i = 0; i < zcList.length; i++) { String zcbh = zcList[i]; // 解析风机运行状态 PgHjsbbl runBlObj = blDao.findBlByBh(zcbh + ".Run"); - if (null == runBlObj) { - getFjRun().add(null); - getFjFlt().add(null); - continue; + if (null != runBlObj) { + int rkszdz = runBlObj.getKszdz(); //开始字地址 + int roffset = rkszdz - start; //与开始字的偏移量 + int rbit = runBlObj.getSzw(); //所在位 + + char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 + getFjRun().set(i, runBt == '1' ? true : false); } - - int rkszdz = runBlObj.getKszdz(); //开始字地址 - int roffset = rkszdz - start; //与开始字的偏移量 - int rbit = runBlObj.getSzw(); //所在位 - - char runBt = dataStr.charAt(dataStr.length() - 1 - roffset * 16 - rbit); // 风机运行状态标志位 - getFjRun().add(runBt == '1' ? true : false); - + // 解析风机故障报警状态 PgHjsbbl fltBlObj = blDao.findBlByBh(zcbh + ".Flt"); - if (null == fltBlObj) { - getFjFlt().add(null); - continue; - } - - int fkszdz = fltBlObj.getKszdz(); //开始字地址 - int foffset = fkszdz - start; //与开始字的偏移量 - int fbit = fltBlObj.getSzw(); //所在位 - - char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 - getFjFlt().add(fltBt == '1' ? true : false); + if (null != fltBlObj) { + int fkszdz = fltBlObj.getKszdz(); //开始字地址 + int foffset = fkszdz - start; //与开始字的偏移量 + int fbit = fltBlObj.getSzw(); //所在位 + char fltBt = dataStr.charAt(dataStr.length() - 1 - foffset * 16 - fbit); // 风机故障报警标志位 + getFjFlt().set(i, fltBt == '1' ? true : false); + } } logger.info("解析[读取风机状态]响应指令结束"); diff --git a/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java index 595afb6..069ae1d 100644 --- a/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadSbStatCommandResponse.java @@ -1,6 +1,7 @@ package com.szpg.plc.message.response.read; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -111,7 +112,7 @@ } // 如果单泵或者双泵有任意一个故障则都报警 - if (sb1Flt.get(i) == true || (null != sb2Flt.get(i) && sb2Flt.get(i) == true)) { + if ((null != sb1Flt.get(i) && sb1Flt.get(i) == true) || (null != sb2Flt.get(i) && sb2Flt.get(i) == true)) { PgAlarm alarm = new PgAlarm(); alarm.setActive(1); alarm.setAlarm_date(this.getTime().getTime()); @@ -171,63 +172,59 @@ } zcList = zcListStr.split(";"); + // 初始化结果集合 + sb1Run = Arrays.asList(new Boolean[zcList.length]); + sb1Flt = Arrays.asList(new Boolean[zcList.length]); + sb2Run = Arrays.asList(new Boolean[zcList.length]); + sb2Flt = Arrays.asList(new Boolean[zcList.length]); + // 解析水泵运行状态 for (int i = 0; i < zcList.length; i++) { String zcbh = zcList[i]; // 解析水泵1运行状态 PgHjsbbl run1BlObj = blDao.findBlByBh(zcbh + ".Run1"); - if (null == run1BlObj) { - continue; + if (null != run1BlObj) { + int r1kszdz = run1BlObj.getKszdz(); // 开始字地址 + int r1offset = r1kszdz - start; // 与开始字的偏移量 + int r1bit = run1BlObj.getSzw(); // 所在位 + + char run1Bt = dataStr.charAt(dataStr.length() - 1 - r1offset * 16 - r1bit); // 水泵1运行状态标志位 + getSb1Run().set(i, run1Bt == '1' ? true : false); } - int r1kszdz = run1BlObj.getKszdz(); // 开始字地址 - int r1offset = r1kszdz - start; // 与开始字的偏移量 - int r1bit = run1BlObj.getSzw(); // 所在位 - - char run1Bt = dataStr.charAt(dataStr.length() - 1 - r1offset * 16 - r1bit); // 水泵1运行状态标志位 - // 解析水泵2运行状态 PgHjsbbl run2BlObj = blDao.findBlByBh(zcbh + ".Run2"); - if (null == run2BlObj) { - getSb2Run().add(null); - } else { + if (null != run2BlObj) { int r2kszdz = run2BlObj.getKszdz(); // 开始字地址 int r2offset = r2kszdz - start; // 与开始字的偏移量 int r2bit = run2BlObj.getSzw(); // 所在位 char run2Bt = dataStr.charAt(dataStr.length() - 1 - r2offset * 16 - r2bit); // 水泵2运行状态标志位 - getSb2Run().add(run2Bt == '1' ? true : false); + getSb2Run().set(i, run2Bt == '1' ? true : false); } // 解析水泵1故障报警状态 PgHjsbbl flt1BlObj = blDao.findBlByBh(zcbh + ".Flt1"); - if (null == flt1BlObj) { - continue; + if (null != flt1BlObj) { + int f1kszdz = flt1BlObj.getKszdz(); // 开始字地址 + int f1offset = f1kszdz - start; // 与开始字的偏移量 + int f1bit = flt1BlObj.getSzw(); // 所在位 + + char flt1Bt = dataStr.charAt(dataStr.length() - 1 - f1offset * 16 - f1bit); // 水泵1故障报警标志位 + getSb1Flt().set(i, flt1Bt == '1' ? true : false); } - int f1kszdz = flt1BlObj.getKszdz(); // 开始字地址 - int f1offset = f1kszdz - start; // 与开始字的偏移量 - int f1bit = flt1BlObj.getSzw(); // 所在位 - - char flt1Bt = dataStr.charAt(dataStr.length() - 1 - f1offset * 16 - f1bit); // 水泵1故障报警标志位 - // 解析水泵2故障报警状态 PgHjsbbl flt2BlObj = blDao.findBlByBh(zcbh + ".Flt2"); - if (null == flt2BlObj) { - getSb2Flt().add(null); - } else { - + if (null != flt2BlObj) { int f2kszdz = flt2BlObj.getKszdz(); // 开始字地址 int f2offset = f2kszdz - start; // 与开始字的偏移量 int f2bit = flt2BlObj.getSzw(); // 所在位 - + char flt2Bt = dataStr.charAt(dataStr.length() - 1 - f2offset * 16 - f2bit); // 水泵1故障报警标志位 - getSb2Flt().add(flt2Bt == '1' ? true : false); + getSb2Flt().set(i, flt2Bt == '1' ? true : false); } - - getSb1Flt().add(flt1Bt == '1' ? true : false); - getSb1Run().add(run1Bt == '1' ? true : false); } logger.info("解析[读取水泵状态]响应指令结束"); diff --git a/src/com/szpg/rmi/RemoteSBCommandAction.java b/src/com/szpg/rmi/RemoteSBCommandAction.java index 39eab90..9d090ef 100644 --- a/src/com/szpg/rmi/RemoteSBCommandAction.java +++ b/src/com/szpg/rmi/RemoteSBCommandAction.java @@ -100,12 +100,28 @@ String dest = client.getNet() + client.getNode() + client.getUnit(); command.setDestinationId(dest); command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); //按字读取内容 + // 二期水泵状态所在内存区域为D区 + if (client.getFlag().equals("23") || client.getFlag().equals("24")) { + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + } try { + // 没有找到对应的配置项,直接返回 + String start = Configure.getProperty("acubl", client.getAcucode() + ".SBSTAT.START"); + String countWord = Configure.getProperty("acubl", client.getAcucode() + ".SBSTAT.WORDCOUNT"); + if (null == start || start.equals("")) { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("resaon", UnicodeConvertor.string2Unicode("未找到对应的变量配置项")); + + returnToFront(jResult); + return null; + } + // 设置读取的地址范围 // 从配置文件读取而来 - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".SBSTAT.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".SBSTAT.WORDCOUNT"))); + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(start), 2)) + "00"); + command.setCountWord(Integer.parseInt(countWord)); // 调用服务过程执行命令发送服务 ReadControllerStatusService service = new ReadControllerStatusService();