本文说明如何在本地完成 DataAcquisition 的最小可运行验证,包括配置校验、Edge Agent 启动以及主采集链路验证。
- .NET 10 SDK
- Docker
- InfluxDB 2.x
如果你只是想先验证配置,不需要先准备 PLC。
在仓库根目录执行:
dotnet build DataAcquisition.sln项目附带了一个简单的 compose 文件:
docker compose -f docker-compose.tsdb.yml up -d如果你已经有自己的 InfluxDB,只需要确认 appsettings.json 里的 InfluxDB 配置正确即可。
默认设备配置目录是:
仓库里已经带了一个本地联调示例:
你也可以参考:
先确认配置本身是合法的:
dotnet run --project src/DataAcquisition.Edge.Agent -- --validate-configs如果你要校验其他目录:
dotnet run --project src/DataAcquisition.Edge.Agent -- --validate-configs --config-dir ./examples/device-configs校验通过后,你应该能看到类似输出:
[OK] .../TEST_PLC.json (TEST_PLC)
dotnet run --project src/DataAcquisition.Edge.Agent默认端口来自 appsettings.json 中的 Urls,默认是:
http://localhost:8001
启动后常用端点:
/health/metrics/api/logs/api/DataAcquisition/plc-connections
如果你想在本地做闭环联调,可以启动模拟器:
dotnet run --project src/DataAcquisition.Simulator模拟器默认监听 502 端口,并输出当前寄存器变化。详细说明见:
你可以从这几个角度确认:
curl http://localhost:8001/healthAgent 启动日志里应能看到配置校验成功和 PLC/通道启动相关信息。
默认运行目录下通常会出现:
Data/logs.dbData/acquisition-state.db
说明:
logs.db用于本地日志查询- 默认保留 30 天,可通过
Logging:RetentionDays调整;设置为<= 0时关闭清理 acquisition-state.db用于条件采集的 active cycle 状态恢复
如果 InfluxDB 可达,你应能在 bucket 中看到对应 measurement 的写入结果。
如果没有数据,请优先检查:
- Edge Agent 日志中的 TSDB 写入错误
/metrics中的错误指标InfluxDB:Url、Bucket、Org、Token是否正确
中心侧不是采集主链路的前置条件,但如果你要看注册、心跳和 Web 界面,可以继续启动:
dotnet run --project src/DataAcquisition.Central.Api如果要运行 Web:
cd src/DataAcquisition.Central.Web
pnpm install
pnpm run serve优先检查:
Driver是否为完整稳定名称ProtocolOptions是否包含当前驱动不支持的键PlcCode是否在多个文件中重复
这通常说明存储不可达,或者写入配置不正确。
优先检查:
- InfluxDB 服务是否启动
InfluxDB:Url是否正确Bucket、Org、Token是否匹配- Edge Agent 日志中是否出现写入错误
优先检查:
Host和Port- 现场网络连通性
- 驱动选择是否正确