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.
4.4 KiB
4.4 KiB
设备数据采集服务 (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 # 配置文件
功能说明
核心功能
-
设备数据采集 (
DeviceRunner)- 定时从Modbus设备读取线圈状态和寄存器数据
- 处理换卷信号(卷A和卷B)
- 处理设备数据(总数、不良数量等)
- 通过Redis缓存设备状态
-
数据处理
- 扫描卷处理:当检测到换卷信号时,调用存储过程处理
- 下机卷处理:当检测到总数归零时,处理小卷分切数据
主要类说明
- 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处理
注意事项
- 确保数据库和Redis服务已启动并可访问
- 确保Modbus设备网络可达
- 根据实际环境修改配置文件中的连接信息
- 确保数据库中存在必要的表结构和存储过程:
device_info表device_gather表sIn1HandleMainRoll存储过程sIn1CreateRoll存储过程
日志
应用使用SLF4J进行日志记录,日志级别可在application.yml中配置。
许可证
本项目为内部使用项目。