From f7e7529122c15b7bca7a6d58ff59eb5fb4c05d1e Mon Sep 17 00:00:00 2001 From: "wenkuan.shi" Date: Tue, 9 Jul 2024 14:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=96=87=E4=BB=B6=E5=A4=B9?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E7=BB=93=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++ .../entity/EquipmentFolderLocation.java | 13 ++++ .../GetInformationForExcelServiceImpl.java | 4 ++ .../impl/ModbusCommunicateServiceImpl.java | 60 ++++++++++++------- 4 files changed, 61 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index 8eb2c04b..ba40b138 100644 --- a/pom.xml +++ b/pom.xml @@ -318,6 +318,11 @@ j2mod 2.7.0 + + + + + diff --git a/src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java b/src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java index 9b00000d..c2d0dfef 100644 --- a/src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java +++ b/src/main/java/com/xujie/sys/modules/reader/entity/EquipmentFolderLocation.java @@ -23,5 +23,18 @@ public class EquipmentFolderLocation { //文件编号 private String fileNo; + //设备类型 + private String equipmentDesc; + private String ip; + private int port; + private int registerAddress; + private int registerNum; + private String registerNumColumntype; + + private int registerAddressInspection; + private int registerNumInspection; + private String registerNumInspectionColumntype; + private int unitId; + } diff --git a/src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java b/src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java index db796286..32dbc574 100644 --- a/src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/reader/service/impl/GetInformationForExcelServiceImpl.java @@ -74,6 +74,10 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EquipmentFolderLocation::getSuffix, "PLC"); + EquipmentFolderLocation folderLocation = equipmentFolderLocationService.getOne(queryWrapper); + ModbusCommunicateEntity one = this.getOne(new LambdaQueryWrapper<>()); - if (one==null){ + if (one == null) { log.info("设备信息未填"); return; } - String modbusIp = one.getModbusIp(); - int modbusPort = one.getModbusPort(); - int registerAddress = one.getRegisterAddress(); - int registerNum = one.getRegisterNum(); - int unitId = one.getUnitId(); - log.info("获取modbus设备ip-端口-地址值-数量-unitId:"+modbusIp+"-"+modbusPort+"-"+registerAddress+"-"+registerNum+"-"+unitId); + String modbusIp = folderLocation.getIp(); + int modbusPort = folderLocation.getPort(); + int registerAddress = folderLocation.getRegisterAddress(); + int registerNum = folderLocation.getRegisterNum(); + int unitId = folderLocation.getUnitId(); + + log.info("获取modbus设备ip-端口-地址值-数量-unitId:" + modbusIp + "-" + modbusPort + "-" + registerAddress + "-" + registerNum + "-" + unitId); try { InetAddress ipAddress = InetAddress.getByName(modbusIp); @@ -46,29 +57,35 @@ public class ModbusCommunicateServiceImpl extends ServiceImpl hex = new ArrayList<>(); + InputRegister[] registers = response.getRegisters(); + for (InputRegister register : registers) { + short value = register.toShort(); + int hexValue = value & 0xFFFF; + log.info("获取的值是: {},value: {}",hexValue,value); + hex.add(hexValue); + } + for (int i = 0; i < hex.size(); i+=2) { + int hexI= (hex.get(i) << 16 ) | ( hex.get(i+1)& 0xFFFF); + float floatValue = Float.intBitsToFloat(hexI); + log.info("最终值是: {}" ,floatValue); } } else { log.info("处理数据出现异常"); @@ -81,4 +98,5 @@ public class ModbusCommunicateServiceImpl extends ServiceImpl