modbus采集,停机采集和三合一采集服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shenzhouyu 0b80b90c2f 三合一 2 weeks ago
..
src/main 三合一 2 weeks ago
.gitignore 三合一 2 weeks ago
README.md 三合一 2 weeks ago
pom.xml 三合一 2 weeks ago

README.md

设备数据采集服务 (Device Collector)

这是一个独立的Spring Boot项目,用于从Modbus设备采集数据并进行处理。

项目结构

device-collector/
├── pom.xml                          # Maven配置文件
├── README.md                        # 项目说明文档
└── src/
    └── main/
        ├── java/
        │   └── com/xujie/devicecollector/
        │       ├── DeviceCollectorApplication.java    # 主启动类
        │       ├── config/
        │       │   └── RedisConfig.java             # Redis配置
        │       ├── dao/                             # 数据访问层
        │       │   ├── DeviceInfoDao.java
        │       │   ├── DeviceGatherDao.java
        │       │   ├── ProcedureDao.java
        │       │   └── impl/
        │       ├── entity/                          # 实体类
        │       │   ├── DeviceInfo.java
        │       │   └── DeviceGather.java
        │       ├── runner/                          # 数据采集运行器
        │       │   └── DeviceRunner.java
        │       ├── service/                         # 服务层
        │       │   ├── DeviceInfoService.java
        │       │   ├── DeviceGatherService.java
        │       │   └── impl/
        │       └── util/                            # 工具类
        │           ├── CollectUtil.java
        │           └── DateUtils.java
        └── resources/
            └── application.yml                      # 配置文件

功能说明

核心功能

  1. 设备数据采集 (DeviceRunner)

    • 定时从Modbus设备读取线圈状态和寄存器数据
    • 处理换卷信号(卷A和卷B)
    • 处理设备数据(总数、不良数量等)
    • 通过Redis缓存设备状态
  2. 数据处理

    • 扫描卷处理:当检测到换卷信号时,调用存储过程处理
    • 下机卷处理:当检测到总数归零时,处理小卷分切数据

主要类说明

  • DeviceRunner: 实现CommandLineRunner接口,应用启动时自动执行数据采集任务
  • CollectUtil: Modbus TCP通信工具类,用于读取线圈和寄存器数据
  • DeviceInfoService: 设备信息服务,查询设备配置信息
  • DeviceGatherService: 设备采集服务,处理采集到的数据并调用存储过程

技术栈

  • Spring Boot 3.1.5
  • Java 21
  • Maven
  • SQL Server (通过Druid连接池)
  • Redis
  • Modbus TCP (j2mod库)

配置说明

数据库配置

application.yml中配置SQL Server数据库连接:

spring:
  datasource:
    druid:
      url: jdbc:sqlserver://192.168.1.90:1433;databaseName=ckp-tid
      username: sa
      password: XJsoft123

Redis配置

spring:
  data:
    redis:
      host: 192.168.1.83
      port: 6379
      password: xujieredis

采集间隔配置

DeviceRunner类中,CHECK_INTERVAL常量控制采集间隔(默认50毫秒)。

数据库表结构

device_info

设备信息表,存储设备配置信息,包括:

  • IP地址和端口
  • 卷A/B的地址和数量
  • 信号地址
  • 总数地址
  • 不良数量地址等

device_gather

设备采集数据表,存储采集到的数据:

  • 卷号信息
  • 总数和不良数量
  • 采集时间
  • 状态信息等

运行方式

1. 使用Maven编译

cd device-collector
mvn clean package

2. 运行应用

java -jar target/device-collector-1.0.0.jar

或者使用Maven直接运行:

mvn spring-boot:run

依赖说明

主要依赖包括:

  • spring-boot-starter-web: Web支持
  • spring-boot-starter-jdbc: JDBC支持
  • spring-boot-starter-data-redis: Redis支持
  • druid-spring-boot-3-starter: Druid连接池
  • mssql-jdbc: SQL Server驱动
  • j2mod: Modbus TCP通信库
  • fastjson2: JSON处理

注意事项

  1. 确保数据库和Redis服务已启动并可访问
  2. 确保Modbus设备网络可达
  3. 根据实际环境修改配置文件中的连接信息
  4. 确保数据库中存在必要的表结构和存储过程:
    • device_info
    • device_gather
    • sIn1HandleMainRoll存储过程
    • sIn1CreateRoll存储过程

日志

应用使用SLF4J进行日志记录,日志级别可在application.yml中配置。

许可证

本项目为内部使用项目。