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.
|
|
# 设备数据采集服务 (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数据库连接:
```yamlspring: datasource: druid: url: jdbc:sqlserver://192.168.1.90:1433;databaseName=ckp-tid username: sa password: XJsoft123```
### Redis配置
```yamlspring: data: redis: host: 192.168.1.83 port: 6379 password: xujieredis```
### 采集间隔配置
在`DeviceRunner`类中,`CHECK_INTERVAL`常量控制采集间隔(默认50毫秒)。
## 数据库表结构
### device_info
设备信息表,存储设备配置信息,包括:- IP地址和端口- 卷A/B的地址和数量- 信号地址- 总数地址- 不良数量地址等
### device_gather
设备采集数据表,存储采集到的数据:- 卷号信息- 总数和不良数量- 采集时间- 状态信息等
## 运行方式
### 1. 使用Maven编译
```bashcd device-collectormvn clean package```
### 2. 运行应用
```bashjava -jar target/device-collector-1.0.0.jar```
或者使用Maven直接运行:
```bashmvn 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`中配置。
## 许可证
本项目为内部使用项目。
|