From df26b160d396492bf73325a6f76dac9933e7cd81 Mon Sep 17 00:00:00 2001 From: "wenkuan.shi" Date: Fri, 21 Jun 2024 09:40:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9txt=E6=96=87=E4=BB=B6=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E8=BF=9B=E8=A1=8C=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96,=E8=AF=BB=E5=8F=96modbus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++ .../reader/dao/ModbusCommunicateMapper.java | 9 ++ .../entity/ModbusCommunicateEntity.java | 17 ++++ .../service/ModbusCommunicateService.java | 9 ++ .../GetInformationForExcelServiceImpl.java | 93 +++++++------------ .../impl/ModbusCommunicateServiceImpl.java | 71 ++++++++++++++ .../mapper/reader/ModbusCommunicateMapper.xml | 6 ++ 7 files changed, 154 insertions(+), 57 deletions(-) create mode 100644 src/main/java/com/xujie/sys/modules/reader/dao/ModbusCommunicateMapper.java create mode 100644 src/main/java/com/xujie/sys/modules/reader/entity/ModbusCommunicateEntity.java create mode 100644 src/main/java/com/xujie/sys/modules/reader/service/ModbusCommunicateService.java create mode 100644 src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java create mode 100644 src/main/resources/mapper/reader/ModbusCommunicateMapper.xml diff --git a/pom.xml b/pom.xml index 2acf835a..8eb2c04b 100644 --- a/pom.xml +++ b/pom.xml @@ -312,6 +312,12 @@ org.springframework.boot spring-boot-starter-mail + + + com.ghgande + j2mod + 2.7.0 + diff --git a/src/main/java/com/xujie/sys/modules/reader/dao/ModbusCommunicateMapper.java b/src/main/java/com/xujie/sys/modules/reader/dao/ModbusCommunicateMapper.java new file mode 100644 index 00000000..f306846b --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/reader/dao/ModbusCommunicateMapper.java @@ -0,0 +1,9 @@ +package com.xujie.sys.modules.reader.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xujie.sys.modules.reader.entity.ModbusCommunicateEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ModbusCommunicateMapper extends BaseMapper { +} diff --git a/src/main/java/com/xujie/sys/modules/reader/entity/ModbusCommunicateEntity.java b/src/main/java/com/xujie/sys/modules/reader/entity/ModbusCommunicateEntity.java new file mode 100644 index 00000000..90a2b230 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/reader/entity/ModbusCommunicateEntity.java @@ -0,0 +1,17 @@ +package com.xujie.sys.modules.reader.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("Equipment_PLC_location") +public class ModbusCommunicateEntity { + private int id; + + private String modbusIp; + private int modbusPort; + private int registerAddress; + private int registerNum; + private int unitId; + +} diff --git a/src/main/java/com/xujie/sys/modules/reader/service/ModbusCommunicateService.java b/src/main/java/com/xujie/sys/modules/reader/service/ModbusCommunicateService.java new file mode 100644 index 00000000..3b6a830d --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/reader/service/ModbusCommunicateService.java @@ -0,0 +1,9 @@ +package com.xujie.sys.modules.reader.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xujie.sys.modules.reader.entity.ModbusCommunicateEntity; + +public interface ModbusCommunicateService extends IService { + + void getInfoByModbus(); +} 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 d3f68124..223792d5 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 @@ -49,7 +49,6 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl { try { //对文件夹下的文件进行读取并保存 @@ -57,7 +56,6 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl imageFiles = new ArrayList<>(); - //对图片删除 - List deleteFile = new ArrayList<>(); - if (fileInfo != null && files != null) { Path folderPath = Paths.get(folderFiler); try (DirectoryStream stream = Files.newDirectoryStream(folderPath)) { @@ -101,23 +96,9 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl1){ + equipmentDataDetail.setValue1(data[1]); + } + if (data.length>2){ + equipmentDataDetail.setValue2(data[2]); + } + if (data.length>3){ + equipmentDataDetail.setValue3(data[3]); + } + if (data.length>4){ + equipmentDataDetail.setValue4(data[4]); + } + if (data.length>5){ + equipmentDataDetail.setValue5(data[5]); + } + if (data.length>6){ + equipmentDataDetail.setValue6(data[6]); + } + if (data.length>7){ + equipmentDataDetail.setValue7(data[7]); + } + if (data.length>8){ + equipmentDataDetail.setValue8(data[8]); + } + if (data.length>9){ + equipmentDataDetail.setValue9(data[9]); + } equipmentDataDetail.setNum(index); equipmentDataDetails.add(equipmentDataDetail); index++; @@ -431,9 +430,15 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl1){ + equipmentDataDetail.setValue1(data[1]); + } + if (data.length>2){ + equipmentDataDetail.setValue2(data[2]); + } + if (data.length>3){ + equipmentDataDetail.setValue3(data[3]); + } equipmentDataDetail.setNum(index); detailList.add(equipmentDataDetail); index++; @@ -502,31 +507,5 @@ public class GetInformationForExcelServiceImpl extends ServiceImpl stream = Files.newDirectoryStream(folderPath)) { - for (Path file : stream) { - String contentType = Files.probeContentType(file); - if (contentType != null && contentType.startsWith("image")) { -// // 图片类型文件 -// // 处理图片文件的逻辑 - String timestamp = String.valueOf(System.currentTimeMillis()); -// // 指定新的文件名(这里示例加上前缀) -// Path newFilePath = folderPath.resolve(timestamp + "$" + file.getFileName()); -// // 重命名文件 -// Files.move(file, newFilePath, StandardCopyOption.REPLACE_EXISTING); -// String s = newFilePath.toString(); - Path s = file.getFileName(); - System.out.println("新图片名: " + s); - String s1 = file.getFileName().toString(); - System.out.println("旧图片名" + timestamp + "$" + s1); - } - } - } catch (IOException | DirectoryIteratorException e) { - e.printStackTrace(); - } - } } diff --git a/src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java b/src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java new file mode 100644 index 00000000..9b07e012 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/reader/service/impl/ModbusCommunicateServiceImpl.java @@ -0,0 +1,71 @@ +package com.xujie.sys.modules.reader.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ghgande.j2mod.modbus.io.ModbusTCPTransaction; +import com.ghgande.j2mod.modbus.msg.ReadInputRegistersRequest; +import com.ghgande.j2mod.modbus.msg.ReadInputRegistersResponse; +import com.ghgande.j2mod.modbus.net.TCPMasterConnection; +import com.ghgande.j2mod.modbus.procimg.InputRegister; +import com.xujie.sys.modules.reader.dao.ModbusCommunicateMapper; +import com.xujie.sys.modules.reader.entity.ModbusCommunicateEntity; +import com.xujie.sys.modules.reader.service.ModbusCommunicateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.net.InetAddress; + +@Service +public class ModbusCommunicateServiceImpl extends ServiceImpl implements ModbusCommunicateService { + + @Autowired + private ModbusCommunicateMapper modbusCommunicateMapper; + + + @Override + public void getInfoByModbus() { + ModbusCommunicateEntity one = this.getOne(new LambdaQueryWrapper<>()); + String modbusIp = one.getModbusIp(); + int modbusPort = one.getModbusPort(); + int registerAddress = one.getRegisterAddress(); + int registerNum = one.getRegisterNum(); + try { + InetAddress ipAddress = InetAddress.getByName(modbusIp); + // 连接到Modbus设备 + TCPMasterConnection connection = new TCPMasterConnection(ipAddress); + connection.setPort(modbusPort); + connection.connect(); + + // 创建一个Modbus TCP请求 + //ReadInputRegistersRequest(寄存器起始地址值,寄存器个数) + ReadInputRegistersRequest request = new ReadInputRegistersRequest(registerAddress, registerNum); + request.setUnitID(1); // 设置Modbus设备的Unit ID + + // 创建一个Modbus TCP事务 + ModbusTCPTransaction transaction = new ModbusTCPTransaction(connection); + transaction.setRequest(request); + + // 执行Modbus TCP事务 + transaction.execute(); + + // 获取响应 + ReadInputRegistersResponse response = (ReadInputRegistersResponse) transaction.getResponse(); + if (response != null) { + // 处理响应数据 + InputRegister[] registers1 = response.getRegisters(); + for (InputRegister inputRegister : registers1) { + int value = inputRegister.getValue(); + System.out.println("Register value: " + value); + } + + } else { + System.out.println("No response received."); + } + // 关闭连接 + connection.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/src/main/resources/mapper/reader/ModbusCommunicateMapper.xml b/src/main/resources/mapper/reader/ModbusCommunicateMapper.xml new file mode 100644 index 00000000..3feac8f9 --- /dev/null +++ b/src/main/resources/mapper/reader/ModbusCommunicateMapper.xml @@ -0,0 +1,6 @@ + + + + + +