系统概述
本数据采集系统是数字化冲压车间中央控制室驾驶舱的核心组件,负责从车间内各类设备实时采集数据,包括传感器数据和数控设备数据。系统通过多种通信协议实现数据采集,并将数据存储到数据库中,为后续的数据分析和可视化提供支持。
支持的数据源
系统支持以下数据采集来源:
-
传感器数据采集
- 振动传感器 (x, y, z三轴加速度)
- 温度传感器
- 力传感器
- 位置传感器
-
OPC UA协议数据采集
- 连接数控设备的OPC UA服务器
- 采集CNC设备的实时工作参数
- 支持数据变化订阅
-
MQTT协议数据传输
- 用于传感器数据的无线传输
- 支持按主题分类接收数据
数据采集配置
数据采集的基础配置位于app/config/settings.py
文件中,您可以根据实际环境修改以下配置:
传感器配置
SENSORS = {
'vibration': {
'sampling_rate': 100, # Hz
'channels': ['x', 'y', 'z'],
'range': (-100, 100), # m/s²
'devices': ['press_01', 'press_02', 'press_03', 'press_04']
},
'temperature': {
'sampling_rate': 1, # Hz
'range': (0, 150), # °C
'devices': ['mold_01', 'mold_02', 'mold_03', 'tool_01', 'tool_02']
},
# 其他传感器配置...
}
OPC UA配置
OPC_SERVER = {
'url': os.getenv('OPC_SERVER_URL', 'opc.tcp://localhost:4840/'),
'namespace': os.getenv('OPC_NAMESPACE', 'http://press.shop/'),
'username': os.getenv('OPC_USERNAME', ''),
'password': os.getenv('OPC_PASSWORD', ''),
}
MQTT配置
MQTT = {
'broker': os.getenv('MQTT_BROKER', 'localhost'),
'port': int(os.getenv('MQTT_PORT', 1883)),
'username': os.getenv('MQTT_USERNAME', ''),
'password': os.getenv('MQTT_PASSWORD', ''),
'client_id': os.getenv('MQTT_CLIENT_ID', 'press_shop_client'),
'topics': {
'vibration': 'sensors/vibration/#',
'temperature': 'sensors/temperature/#',
# 其他主题...
}
}
启动数据采集
方法一:通过应用程序启动
系统启动后会自动初始化数据采集模块。您只需要执行以下命令启动应用程序:
python app/main.py
方法二:通过API控制
系统提供了REST API用于控制数据采集的启动和停止:
-
启动数据采集
POST http://localhost:5000/api/data-collection/start
-
停止数据采集
POST http://localhost:5000/api/data-collection/stop
数据存储
采集的数据会被存储到两个数据库中:
-
MySQL数据库:存储结构化数据,包括传感器记录和设备状态
- 表结构:
sensor_data
和device_status
- 主要用于查询历史记录和统计分析
- 表结构:
-
InfluxDB时序数据库:存储时间序列数据
- 支持高效的时间范围查询
- 适合存储大量传感器数据
- 支持数据聚合和降采样
数据采集状态监控
系统提供了多种方式监控数据采集状态:
- 控制台日志:系统运行时会在控制台输出详细日志
- 健康检查API:通过
GET /api/health
接口检查系统状态 - Web界面:在驾驶舱Web界面中查看数据采集状态
故障排除
如果遇到数据采集问题,请按以下步骤排查:
-
检查网络连接
- 确保能够访问OPC UA服务器
- 确保MQTT代理服务器正常运行
-
检查数据库连接
- 验证MySQL和InfluxDB服务是否正常运行
- 检查数据库连接配置是否正确
-
检查日志输出
- 查看控制台输出的错误信息
- 分析日志中的异常堆栈信息
-
重启服务
- 先停止数据采集 (
/api/data-collection/stop
) - 等待几秒钟后重新启动 (
/api/data-collection/start
)
- 先停止数据采集 (
高级配置
数据采集间隔调整
修改 app/config/settings.py
中的 DATA_COLLECTION_INTERVAL
参数可调整数据采集频率:
# 数据采集间隔 (秒)
DATA_COLLECTION_INTERVAL = 1.0 # 可根据需要调整
报警阈值设置
您可以根据实际生产需求调整传感器报警阈值:
ALARM_THRESHOLDS = {
'temperature': {
'warning': 70, # °C
'critical': 90, # °C
},
'vibration': {
'warning': 50, # m/s²
'critical': 80, # m/s²
},
# 其他传感器阈值...
}