|
@@ -368,6 +368,74 @@ public class ModbusTask {
|
|
|
|
|
|
|
|
|
|
|
|
+ public void gainModbusData1() {
|
|
|
+ try {
|
|
|
+ /**
|
|
|
+ * 根据sql查询所有总集合
|
|
|
+ */
|
|
|
+ List<DmModbusDriveDto> dmModbusDriveDtos = dmModbusDriveService.queryAll(null);
|
|
|
+ //进行遍历
|
|
|
+ dmModbusDriveDtos.forEach(drive->{
|
|
|
+ /**
|
|
|
+ * 获取所有的信道集合 channels.size>0 进行遍历
|
|
|
+ */
|
|
|
+ Set<DmModbusChannel> channels = drive.getChannels();
|
|
|
+ if (!channels.isEmpty()){
|
|
|
+ channels.forEach(channel->{
|
|
|
+ /**
|
|
|
+ * 获取信道下的所有设备集合 dmModbusDevice.size>0 进行遍历
|
|
|
+ */
|
|
|
+ Set<DmModbusDevice> dmModbusDevice = channel.getDmModbusDevice();
|
|
|
+ if (!dmModbusDevice.isEmpty()){
|
|
|
+ dmModbusDevice.forEach(device->{
|
|
|
+ /**
|
|
|
+ * 获取设备下的所有分组 dmModbusGroup.size>0 进行遍历
|
|
|
+ */
|
|
|
+ Set<DmModbusGroup> dmModbusGroup = device.getDmModbusGroup();
|
|
|
+ if (!dmModbusGroup.isEmpty()){
|
|
|
+ dmModbusGroup.forEach(group->{
|
|
|
+ /**
|
|
|
+ * 获取分组下的所有所有数据 dmModbusData.size>0 进行遍历
|
|
|
+ */
|
|
|
+ List<DmModbusData> dmModbusData = group.getDmModbusData();
|
|
|
+ if (!dmModbusData.isEmpty()){
|
|
|
+ //已经确认 空气质量统一用3X(Input Register) 数据类型为short
|
|
|
+ dmModbusData.forEach(data->{
|
|
|
+ try {
|
|
|
+ switch (data.getSoftwareRegisterType()){
|
|
|
+ default:
|
|
|
+ //默认使用 3X(Input Register)
|
|
|
+// log.info("调用读取InputRegisters模拟量数据");
|
|
|
+ // 读取数据 数据类型为 float Integer.valueOf(data.getSoftwareRegisterAddress())
|
|
|
+ Number number = readInputRegisters(Integer.valueOf(data.getSoftwareRegisterAddress())-1, 4, modbusSalveId);
|
|
|
+ //获取点名 例如 1F_CO2
|
|
|
+ String callTheRoll = data.getCallTheRoll();
|
|
|
+// System.out.println("name:"+callTheRoll+" lable:"+data.getSoftwareRegisterAddress()+" value:"+number.toString());
|
|
|
+ log.info("name:{}, lable:{}, value:{}", callTheRoll,data.getSoftwareRegisterAddress(),number.toString());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }catch (Exception e) {
|
|
|
+ log.error("调用读取InputRegisters模拟量数据,modbus读取数据失败,失败原因:{}",e.getMessage());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("modbus获取失败,失败原因:{}",e.getMessage());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/***
|
|
|
* 释放资源
|
|
|
*/
|