70 KiB
LabVIEW数据上传接口规范文档
1. 概述
本文档规定了LabVIEW系统向MES车间设备状态记录表直接写入数据的格式规范和技术要求。LabVIEW系统将通过数据库直连的方式,将采集到的设备数据实时写入MES数据库中,无需通过HTTP API接口。本文档详细说明了数据库表结构、数据格式、状态判断逻辑以及完整的开发指南。
1.1 系统架构
LabVIEW数据采集系统 ──直接数据库连接──→ MES数据库 ──实时读取──→ MES前端系统
↑
状态记录表 + 智能状态判断逻辑
↓
车间设备管理 → 点位管理 → 状态记录监控
关键特点:
- 🔗 直连模式:LabVIEW直接向数据库写入数据,无需API调用
- 🧠 智能状态:MES系统自动判断设备连接状态(无连接检测)
- 📊 动态解析:前端自动解析JSON数据生成动态表格列,智能识别中文字段名
- ⚡ 实时显示:数据写入后立即在MES前端显示
- 🏭 工人友好:界面全中文显示,适合工厂现场使用
1.2 MES车间设备功能全流程
1.2.1 功能模块概览
| 功能模块 | 页面路径 | 主要功能 | 权限要求 |
|---|---|---|---|
| 车间设备管理 | /equipment/workshop/index |
设备CRUD、状态监控、自动刷新 | equipment:workshop:* |
| 点位管理 | /equipment/workshop/point/index |
点位配置、数据项管理 | equipment:workshop:point:* |
| 状态记录 | /equipment/workshop/record/index |
历史数据查看、动态列显示 | equipment:workshop:record:* |
1.2.2 完整使用流程
第一步:设备注册
┌─────────────────────────────────────────────┐
│ MES管理员在设备管理页面添加新设备 │
│ • 填写设备编号、名称、类型、工位 │
│ • 选择设备角色(采集/控制) │
│ • 设置状态为"启用" │
│ • 系统自动生成设备ID │
└─────────────────────────────────────────────┘
↓
第二步:点位配置(可选)
┌─────────────────────────────────────────────┐
│ 如需按具体测量点管理数据: │
│ • 进入点位管理页面 │
│ • 配置点位名称、类型、单位 │
│ • 设置采集间隔和上传策略 │
└─────────────────────────────────────────────┘
↓
第三步:LabVIEW配置
┌─────────────────────────────────────────────┐
│ LabVIEW开发人员配置数据上传: │
│ • 获取设备ID并配置数据库连接 │
│ • 按照键值对规范命名数据字段 │
│ • 实现定期数据上传 │
└─────────────────────────────────────────────┘
↓
第四步:数据监控
┌─────────────────────────────────────────────┐
│ 现场工人在状态记录页面查看: │
│ • 实时设备状态(运行/停机/故障/无连接) │
│ • 历史数据趋势和统计 │
│ • 动态生成的中文数据列 │
└─────────────────────────────────────────────┘
1.2 📋 快速导航
| 您需要了解的内容 | 跳转到章节 |
|---|---|
| 🔍 键值对Key如何显示(重要) | 第8章 键值对Key映射规则 |
| 🗃️ 数据库表结构和字段说明 | 第2章 数据库表结构 |
| 📝 数据格式(JSON/键值对/嵌套) | 第3章 数据格式规范 |
| 💻 LabVIEW程序架构和SQL模板 | 第4章 LabVIEW端开发指南 |
| ⚙️ MES系统配置步骤 | 第5章 MES系统端配置指南 |
| 🧪 测试用例和验收标准 | 第9章 联调测试和验收计划 |
2. 数据库表结构
2.1 目标表:dm_equipment_status_record_workshop(车间设备状态记录表)
这是存储所有设备运行数据的核心表,每条记录代表一次设备数据采集。
| 字段名 | 数据类型 | 说明 | 是否必填 | 示例值 | 备注 |
|---|---|---|---|---|---|
equipment_id |
bigint | 设备ID(关联设备主表) | 必填 | 5 |
需要提前在MES系统中注册设备 |
point_id |
bigint | 点位ID(具体测量点) | 可选 | 12 或 NULL |
如果是设备整体数据可为空 |
equipment_number |
varchar(64) | 设备编号(设备唯一标识) | 强烈推荐 | "EQ001" |
便于运维人员识别设备 |
equipment_name |
varchar(128) | 设备名称(设备中文名称) | 强烈推荐 | "配料机1005" |
便于现场操作人员识别 |
station_name |
varchar(128) | 工位名称(设备所在位置) | 强烈推荐 | "配料工位1" |
帮助定位设备物理位置 |
equipment_status |
int | 设备运行状态代码 | 必填 | 0 / 1 / 2 |
表示设备当前运行状态,与设备基本状态分离 |
value |
varchar(512) | 采集数据(JSON或键值对格式) | 必填 | 见下方详细说明 | 存储实际的传感器数据 |
record_time |
datetime | 数据记录时间 | 必填 | "2025-01-15 14:30:25" |
数据采集的准确时间戳 |
note |
text | 备注信息 | 可选 | "正常采集" |
可记录异常情况或特殊说明 |
2.2 设备状态代码详细说明
重要提醒:该状态代码是专门用于状态记录表的运行状态,与设备管理中的基本状态(启用0/停用1/故障2)是分离的概念。
2.2.1 状态记录表专用代码
| 状态代码 | 中文含义 | 前端显示颜色 | 使用场景 | 何时使用 |
|---|---|---|---|---|
0 |
运行中 | 🟢 绿色 | 设备正常运行状态 | 设备正在生产、所有系统正常工作 |
1 |
停机 | 🔘 灰色 | 设备停止运行但无故障 | 计划停机、换班停机、等待原料等 |
2 |
故障 | 🔴 浅红色 | 设备发生故障需要维修 | 设备报警、传感器异常、机械故障等 |
3 |
无连接 | 🟡 浅黄色 | 设备失去通信连接 | 系统自动判断,LabVIEW无需手动设置 |
2.2.2 无连接状态自动判断逻辑
关键说明:3-无连接状态由MES系统自动判断,LabVIEW 不需要 主动设置此状态。
自动判断规则:
- 如果最后一条记录的
equipment_status = 0(运行中),且距离当前时间超过30分钟,系统自动判断为3-无连接 - 如果最后一条记录的
equipment_status = 1(停机),且距离当前时间超过3小时,系统自动判断为3-无连接
实现逻辑(MES系统内部):
// 获取设备最新状态记录
Date currentTime = new Date();
long timeDiffMinutes = (currentTime.getTime() - recordTime.getTime()) / (1000 * 60);
Integer finalStatus = originalStatus;
if (originalStatus == 0 && timeDiffMinutes >= 30) {
finalStatus = 3; // 运行中超过30分钟 → 无连接
} else if (originalStatus == 1 && timeDiffMinutes >= 180) {
finalStatus = 3; // 停机超过3小时 → 无连接
}
2.2.3 与设备基本状态的区别
- 设备基本状态(设备管理页面):启用(0)/停用(1)/故障(2) - 控制设备是否可用
- 运行状态代码(状态记录表):运行中(0)/停机(1)/故障(2)/无连接(3) - 记录设备实时运行状况
2.2.4 状态切换逻辑
正常运行流程:
0(运行中) ──计划停机──→ 1(停机) ──重新启动──→ 0(运行中)
故障处理流程:
0(运行中) ──发生故障──→ 2(故障) ──维修完成──→ 0(运行中)
无连接检测(自动):
0(运行中) ──30分钟无数据──→ 3(无连接)
1(停机) ──3小时无数据───→ 3(无连接)
3. 数据格式规范
3.1 支持的数据格式(3种方式任选其一)
MES系统的前端解析器非常智能,可以自动识别并解析以下3种数据格式:
格式1:标准JSON格式(强烈推荐)
这是最灵活、最易读的格式,适合复杂的设备数据。
{
"temperature1": 25.5,
"temperature2": 28.3,
"pressure": 2.35,
"current": 15.2,
"voltage": 220.5,
"speed": 1450,
"weight": 1250.8,
"alarm_status": 0,
"flow_rate": 12.5
}
优点:
- 字段名直观,便于理解
- 支持不同数据类型(数字、字符串、布尔值)
- 前端会自动识别常用字段并生成中文列名
- 扩展性强,容易添加新字段
格式2:简化键值对格式
适合简单的数值型数据,节省存储空间。
"1:200,3:300,2:400,4:5"
说明:
- 格式:
key:value,用逗号分隔多个数据点 - 系统会自动将数字key转换为
数据点X的格式显示
前端显示效果:
| 输入格式 | key值 | 前端显示列名 | 显示值 | 说明 |
|---|---|---|---|---|
"1:200" |
1 |
数据点1 |
200.00 |
数字key自动转换 |
"3:25.5" |
3 |
数据点3 |
25.50 |
支持小数 |
"temp:45.2" |
temp |
温度 |
45.20°C |
智能识别温度关键词 |
"press:2.5" |
press |
压力 |
2.50bar |
智能识别压力关键词 |
"motor_speed:1450" |
motor_speed |
转速 |
1450rpm |
智能识别转速关键词 |
关键词智能识别规则:
- 包含
temperature或temp→ 显示为"温度",单位°C - 包含
pressure或press→ 显示为"压力",单位bar - 包含
current→ 显示为"电流",单位A - 包含
voltage→ 显示为"电压",单位V - 包含
weight→ 显示为"重量",单位kg - 包含
speed→ 显示为"转速",单位rpm - 包含
level→ 显示为"液位",单位% - 包含
flow→ 显示为"流量" - 包含
status→ 显示为"状态" - 包含
alarm→ 显示为"报警" - 其他情况 → 直接显示key值
适用场景:传统PLC或简单传感器数据
💡 详细的Key映射规则请参考:第8章 键值对Key映射规则详细说明
格式3:嵌套JSON格式
适合复杂设备,可以按功能模块分组数据。
{
"sensors": {
"temp1": 25.5,
"temp2": 28.3,
"pressure1": 2.35
},
"motors": {
"motor1_speed": 1450,
"motor1_current": 15.2,
"motor2_speed": 1200,
"motor2_current": 12.8
},
"alarms": {
"high_temp": false,
"low_pressure": false,
"overload": true
}
}
优点:
- 数据结构清晰,按功能分组
- 前端会自动扁平化处理,生成列名如:"传感器_温度1"、"电机_转速1"等
- 适合大型复杂设备
3.2 智能字段识别和中文显示
MES系统前端具有强大的智能识别功能,会自动将英文字段名转换为中文显示,并智能推测单位。
支持的智能识别字段
| 英文关键词 | 自动识别为中文 | 推荐命名示例 | 系统自动推测单位 | 说明 |
|---|---|---|---|---|
temperature |
温度 | temperature1, temp_inlet, temp_outlet |
°C | 温度相关传感器 |
pressure |
压力 | pressure1, press_main, hydraulic_pressure |
bar, MPa | 压力传感器数据 |
current |
电流 | current1, motor_current, pump_current |
A | 电流检测 |
voltage |
电压 | voltage1, main_voltage, control_voltage |
V | 电压监测 |
weight |
重量 | weight1, total_weight, batch_weight |
kg, t | 称重系统 |
speed |
转速 | speed1, motor_speed, fan_speed |
rpm | 转速监测 |
flow |
流量 | flow1, water_flow, material_flow |
L/min, m³/h | 流量计数据 |
level |
液位 | level1, tank_level, hopper_level |
m, mm, % | 液位/料位传感器 |
force |
力 | force1, clamp_force, press_force |
N, kN | 力传感器 |
position |
位置 | position1, valve_position, cylinder_position |
mm, ° | 位置传感器 |
frequency |
频率 | frequency1, motor_freq, vibration_freq |
Hz | 频率检测 |
power |
功率 | power1, motor_power, heating_power |
kW, W | 功率监测 |
energy |
能耗 | energy1, total_energy, daily_energy |
kWh | 能耗统计 |
count |
计数 | count1, product_count, cycle_count |
个, 次 | 计数器 |
time |
时间 | time1, cycle_time, process_time |
s, min | 时间测量 |
status |
状态 | pump_status, valve_status, motor_status |
- | 设备状态 |
alarm |
报警 | alarm1, high_temp_alarm, pressure_alarm |
- | 报警信息 |
智能单位检测规则
系统会根据数值大小自动推测合适的单位:
// 温度类数据
temperature: 25.5 → 自动显示为 "25.50°C"
temp_inlet: 85.2 → 自动显示为 "85.20°C"
// 压力类数据
pressure: 2.35 → 自动显示为 "2.35bar"
pressure: 0.25 → 自动显示为 "0.25MPa"
// 电流类数据
current: 15.2 → 自动显示为 "15.20A"
motor_current: 8.5 → 自动显示为 "8.50A"
// 重量类数据
weight: 1250.8 → 自动显示为 "1250.80kg"
weight: 15.2 → 自动显示为 "15.20kg"
// 转速类数据
speed: 1450 → 自动显示为 "1450rpm"
motor_speed: 2800 → 自动显示为 "2800rpm"
自定义字段命名建议
如果您的设备有特殊的测量点,建议按以下方式命名:
{
"设备功能_测量类型_编号": 数值,
"mixer_temperature_1": 45.2, // 混合器温度1
"conveyor_speed_main": 1200, // 主输送带转速
"tank_level_water": 85.5, // 水箱液位
"pump_pressure_inlet": 2.8, // 泵入口压力
"motor_current_drive": 12.3 // 驱动电机电流
}
4. LabVIEW端开发指南
4.1 前期准备工作
4.1.1 设备信息注册
在开始LabVIEW开发之前,必须在MES系统中注册设备信息:
-
登录MES系统管理后台
- 访问车间设备管理页面
- 点击"新增设备"按钮
-
填写设备基本信息
设备编号:EQ001(必须唯一,建议使用规范编号) 设备名称:配料机1005(便于现场识别) 设备类型:选择"采集终端"或"控制设备" 工位选择:选择设备所在的具体工位 状态:选择"启用" -
获取设备ID
- 保存后系统会自动分配设备ID(如:5)
- 记录此ID,LabVIEW程序中需要使用
4.1.2 LabVIEW配置文件设置
在LabVIEW项目中创建配置文件(建议使用INI格式):
[数据库连接配置]
ServerIP=192.168.1.100
ServerPort=3306
DatabaseName=mes_database
Username=labview_user
Password=your_password
[设备映射配置]
; 格式:设备编号=设备ID
EQ001=5
EQ002=6
EQ003=7
[设备详细信息]
; EQ001的详细信息
EQ001_Name=配料机1005
EQ001_Station=配料工位1
EQ001_Type=mixer
; EQ002的详细信息
EQ002_Name=破碎机2001
EQ002_Station=破碎工位1
EQ002_Type=crusher
[采集参数配置]
; 数据采集间隔(秒)
SampleInterval=5
; 上传批次大小
BatchSize=10
; 连接超时时间(秒)
ConnectionTimeout=30
4.2 LabVIEW程序架构建议
4.2.1 推荐的程序结构
LabVIEW项目结构:
├── Main.vi // 主程序
├── Config/
│ ├── LoadConfig.vi // 读取配置文件
│ └── equipment.ini // 设备配置文件
├── DataAcquisition/
│ ├── SensorRead.vi // 传感器数据读取
│ ├── DataFormat.vi // 数据格式化
│ └── StatusMonitor.vi // 状态监控
├── Database/
│ ├── DBConnection.vi // 数据库连接
│ ├── DataUpload.vi // 数据上传
│ └── ErrorHandler.vi // 错误处理
└── Utils/
├── TimeStamp.vi // 时间戳生成
├── JSONFormat.vi // JSON格式化
└── StatusMap.vi // 状态映射
4.2.2 核心VI功能说明
1. Main.vi(主程序)
- 初始化系统配置
- 启动数据采集循环
- 错误处理和日志记录
- 程序状态监控
2. SensorRead.vi(传感器读取)
- 读取各种传感器数据
- 数据有效性验证
- 单位转换处理
3. DataFormat.vi(数据格式化)
- 将原始数据转换为JSON格式
- 字段命名标准化
- 数据类型转换
4. DataUpload.vi(数据上传)
- 连接MES数据库
- 执行SQL插入操作
- 上传结果确认
4.3 数据上传SQL模板
以下是标准的SQL插入语句模板,可以在LabVIEW中使用:
4.3.1 完整字段插入模板
-- 标准模板(推荐)
INSERT INTO dm_equipment_status_record_workshop (
equipment_id,
point_id,
equipment_number,
equipment_name,
station_name,
equipment_status,
value,
record_time,
note,
create_by,
create_time
) VALUES (
?, -- 设备ID(从配置文件读取)
NULL, -- 点位ID(设备整体数据为NULL)
?, -- 设备编号
?, -- 设备名称
?, -- 工位名称
?, -- 设备状态(0/1/2,不要设置3)
?, -- JSON数据
NOW(), -- 记录时间(使用当前时间)
'自动采集', -- 备注
'labview_system', -- 创建者
NOW() -- 创建时间
);
4.3.2 简化插入模板(必填字段)
-- 简化模板(仅必填字段)
INSERT INTO dm_equipment_status_record_workshop (
equipment_id,
equipment_status,
value,
record_time
) VALUES (?, ?, ?, NOW());
4.3.3 实际数据示例
-- 配料机正常运行数据
INSERT INTO dm_equipment_status_record_workshop (
equipment_id,
point_id,
equipment_number,
equipment_name,
station_name,
equipment_status,
value,
record_time,
note,
create_by,
create_time
) VALUES (
5, -- equipment_id
NULL, -- point_id(设备整体数据)
'EQ001', -- equipment_number
'配料机1005', -- equipment_name
'配料工位1', -- station_name
0, -- equipment_status(运行中)
'{"temperature1":25.5,"pressure":2.35,"current":15.2,"weight":1250.8,"speed":1450}',
NOW(), -- record_time
'正常运行', -- note
'labview_system', -- create_by
NOW() -- create_time
);
-- 设备故障数据
INSERT INTO dm_equipment_status_record_workshop (
equipment_id,
equipment_number,
equipment_name,
station_name,
equipment_status,
value,
record_time,
note,
create_by,
create_time
) VALUES (
5, -- equipment_id
'EQ001', -- equipment_number
'配料机1005', -- equipment_name
'配料工位1', -- station_name
2, -- equipment_status(故障)
'{"temperature1":85.2,"alarm_status":1,"fault_code":"OVERHEAT"}',
NOW(), -- record_time
'高温故障', -- note
'labview_system', -- create_by
NOW() -- create_time
);
4.3.4 LabVIEW中的参数化查询
LabVIEW Database Connectivity Toolkit 使用示例:
1. 连接字符串:
"Driver={MySQL ODBC 8.0 Driver};Server=192.168.1.100;Database=mes_database;Uid=labview_user;Pwd=your_password;"
2. SQL语句:
"INSERT INTO dm_equipment_status_record_workshop (equipment_id, equipment_status, value, record_time) VALUES (?, ?, ?, NOW())"
3. 参数数组:
- 参数1:5 (Integer)
- 参数2:0 (Integer)
- 参数3:JSON字符串 (String)
4.4 数据采集和上传策略
4.4.1 采集频率建议
根据不同类型的数据特点,建议采用不同的采集频率:
| 数据类型 | 建议采集频率 | 上传策略 | 说明 |
|---|---|---|---|
| 关键安全参数 | 1-2秒 | 实时上传 | 温度、压力等关键参数 |
| 设备运行参数 | 5-10秒 | 批量上传 | 电流、转速、功率等 |
| 生产统计数据 | 30秒-1分钟 | 定期上传 | 产量、能耗等统计数据 |
| 状态变更 | 状态变化时 | 立即上传 | 设备启停、故障报警 |
| 维护信息 | 1次/小时 | 定期上传 | 设备健康度、运行时长 |
4.4.2 批量上传机制
为了提高效率,建议使用批量上传:
-- 批量插入模板(一次插入多条记录)
INSERT INTO dm_equipment_status_record_workshop
(equipment_id, equipment_number, equipment_name, station_name, equipment_status, value, record_time, note, create_by, create_time) VALUES
(5, 'EQ001', '配料机1005', '配料工位1', 0, '{"temperature1":25.5,"pressure":2.35}', NOW(), '正常', 'labview_system', NOW()),
(5, 'EQ001', '配料机1005', '配料工位1', 0, '{"temperature1":25.8,"pressure":2.32}', NOW(), '正常', 'labview_system', NOW()),
(5, 'EQ001', '配料机1005', '配料工位1', 0, '{"temperature1":26.1,"pressure":2.38}', NOW(), '正常', 'labview_system', NOW());
4.4.3 键值对格式的实际应用示例
示例1:传统PLC数据点
INSERT INTO dm_equipment_status_record_workshop
(equipment_id, equipment_status, value, record_time) VALUES
(5, 0, '1:200,2:300,3:25.5,4:1450', NOW());
前端显示效果:
- 列名:
数据点1,数据点2,数据点3,数据点4 - 值:
200.00,300.00,25.50,1450.00
示例2:带语义的键值对
INSERT INTO dm_equipment_status_record_workshop
(equipment_id, equipment_status, value, record_time) VALUES
(5, 0, 'temp:45.2,press:2.8,motor_speed:1450,tank_level:85', NOW());
前端显示效果:
- 列名:
温度,压力,转速,液位 - 值:
45.20°C,2.80bar,1450rpm,85.00%
4.4.4 键值对Key映射速查表
基础物理参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 温度相关 | temp, temperature1, temp_inlet |
温度 | °C | temp:25.5 → 温度: 25.50°C |
| 压力相关 | press, pressure1, hydraulic_pressure |
压力 | bar/MPa | press:2.35 → 压力: 2.35bar |
| 电流相关 | current, motor_current, amp |
电流 | A | current:15.2 → 电流: 15.20A |
| 电压相关 | voltage, main_voltage, volt |
电压 | V | voltage:220 → 电压: 220.00V |
| 重量相关 | weight, total_weight, load |
重量 | kg | weight:1250 → 重量: 1250.00kg |
| 转速相关 | speed, motor_speed, rpm |
转速 | rpm | motor_speed:1450 → 转速: 1450rpm |
| 液位相关 | level, tank_level, material_level |
液位 | % | tank_level:85 → 液位: 85.00% |
| 流量相关 | flow, water_flow, flow_rate |
流量 | L/min | flow:12.5 → 流量: 12.50 |
机械设备参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 振动相关 | vibration, vib, oscillation |
振动 | mm/s | vibration:2.5 → 振动: 2.50mm/s |
| 位置相关 | position, pos, displacement |
位置 | mm | position:125.5 → 位置: 125.50mm |
| 角度相关 | angle, rotation, degree |
角度 | ° | angle:45.2 → 角度: 45.20° |
| 扭矩相关 | torque, moment, twist |
扭矩 | N·m | torque:350.8 → 扭矩: 350.80N·m |
| 力相关 | force, thrust, push_force |
力 | N | force:1250 → 力: 1250.00N |
| 加速度相关 | acceleration, accel, g_force |
加速度 | m/s² | acceleration:9.8 → 加速度: 9.80m/s² |
工艺过程参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 浓度相关 | concentration, conc, strength |
浓度 | % | concentration:15.5 → 浓度: 15.50% |
| pH值相关 | ph, ph_value, acidity |
pH值 | pH | ph:7.2 → pH值: 7.20pH |
| 粘度相关 | viscosity, visc, thickness |
粘度 | cP | viscosity:250.5 → 粘度: 250.50cP |
| 密度相关 | density, specific_gravity, sg |
密度 | kg/m³ | density:1250.8 → 密度: 1250.80kg/m³ |
| 湿度相关 | humidity, moisture, rh |
湿度 | %RH | humidity:65.2 → 湿度: 65.20%RH |
| 电导率相关 | conductivity, conduct, resistance |
电导率 | µS/cm | conductivity:1250 → 电导率: 1250.00µS/cm |
环境监测参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 噪音相关 | noise, sound, decibel |
噪音 | dB | noise:65.5 → 噪音: 65.50dB |
| 光照相关 | light, illuminance, lux |
光照 | lux | light:500 → 光照: 500.00lux |
| 粉尘相关 | dust, particle, pm25 |
粉尘 | µg/m³ | dust:35.2 → 粉尘: 35.20µg/m³ |
| 气体相关 | gas, co2, oxygen |
气体 | ppm | gas:400 → 气体: 400.00ppm |
能耗与效率参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 功率相关 | power, watt, kw |
功率 | kW | power:15.5 → 功率: 15.50kW |
| 能耗相关 | energy, kwh, electricity |
能耗 | kWh | energy:125.8 → 能耗: 125.80kWh |
| 效率相关 | efficiency, eff, performance |
效率 | % | efficiency:85.2 → 效率: 85.20% |
| 频率相关 | frequency, freq, hz |
频率 | Hz | frequency:50.0 → 频率: 50.00Hz |
| 产能相关 | capacity, output, throughput |
产能 | 件/h | capacity:120 → 产能: 120.00件/h |
生产统计参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 计数相关 | count, quantity, pieces |
计数 | 个 | count:1250 → 计数: 1250个 |
| 速率相关 | rate, speed_production, velocity |
速率 | 件/min | rate:25.5 → 速率: 25.50件/min |
| 周期时间相关 | cycle_time, duration, period |
周期时间 | s | cycle_time:45.2 → 周期时间: 45.20s |
| 批次相关 | batch, lot, group |
批次 | 批 | batch:12 → 批次: 12批 |
| 废料相关 | waste, scrap, defect |
废料 | kg | waste:2.5 → 废料: 2.50kg |
| 良品率相关 | yield, output_ratio, success_rate |
良品率 | % | yield:98.5 → 良品率: 98.50% |
设备健康与维护参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 磨损相关 | wear, abrasion, erosion |
磨损 | % | wear:15.2 → 磨损: 15.20% |
| 寿命相关 | lifetime, lifespan, remaining_life |
寿命 | h | lifetime:8500 → 寿命: 8500.00h |
| 可靠性相关 | mttf, mtbf, reliability |
可靠性 | h | mttf:2500 → 可靠性: 2500.00h |
| 故障代码相关 | fault_code, error_code, diagnostic |
故障代码 | - | fault_code:E001 → 故障代码: E001 |
| 维护相关 | maintenance, service, repair |
维护 | - | maintenance:1 → 维护: 1 |
状态与报警参数
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 状态相关 | status, state, condition |
状态 | - | status:1 → 状态: 1 |
| 报警相关 | alarm, alert, warning |
报警 | - | alarm:0 → 报警: 0 |
| 启用相关 | enable, disable, on_off |
启用 | - | enable:1 → 启用: 1 |
| 就绪相关 | ready, busy, idle |
就绪 | - | ready:1 → 就绪: 1 |
| 急停相关 | emergency, estop, safety |
急停 | - | emergency:0 → 急停: 0 |
数字编号Key
| 您想监控的参数 | 建议使用的Key | 系统显示名称 | 推荐单位 | 示例 |
|---|---|---|---|---|
| 传统PLC点位 | 1, 2, 3, 4... |
数据点X | 自动推测 | 1:200 → 数据点1: 200.00 |
4.4.3 错误处理和重试机制
错误处理流程:
1. 数据采集失败 → 记录错误日志 → 重试3次 → 跳过本次采集
2. 数据库连接失败 → 缓存数据到本地 → 定期重试连接
3. 上传失败 → 记录失败数据 → 重新上传(最多重试5次)
4. 网络中断 → 启用本地缓存模式 → 网络恢复后批量同步
5. MES系统端配置指南
5.1 设备基础信息配置
5.1.1 设备信息录入流程
在MES系统中需要按以下步骤配置设备信息:
第一步:添加设备
- 登录MES系统管理后台
- 导航至:
设备管理→车间设备→新增 - 填写以下必要信息:
| 字段名称 | 填写内容 | 说明 | 示例 |
|---|---|---|---|
| 设备编号 | 唯一标识符 | 与LabVIEW配置一致 | EQ001 |
| 设备名称 | 中文名称 | 便于现场识别 | 配料机1005 |
| 设备类型 | 选择类型 | 根据实际功能选择 | 采集终端 |
| 工位 | 下拉选择 | 设备实际位置 | 配料工位1 |
| 设备角色 | 选择角色 | collector(采集)/controller(控制) | collector |
| 状态 | 启用状态 | 必须选择"启用" | 启用 |
第二步:配置点位信息(可选) 如果需要按具体测量点分别管理数据:
- 进入:
设备管理→点位管理→新增 - 关联刚创建的设备
- 配置点位详细信息:
| 点位字段 | 说明 | 示例 |
|---|---|---|
| 点位名称 | 测量点中文名称 | 温度传感器1 |
| 点位编码 | 英文标识(可选) | temp_sensor_1 |
| 数值类型 | 选择数据类型 | 模拟量 |
| 单位 | 测量单位 | °C |
| 采集间隔 | 采集频率(秒) | 5 |
5.1.2 权限配置
确保相关用户具有查看权限:
- 进入:
系统管理→用户管理→角色管理 - 为相关角色分配以下权限:
equipment:workshop:list(设备列表查看)equipment:workshop:query(设备信息查询)equipment:workshop:record(状态记录查看)
5.2 前端显示效果预览
5.2.1 设备列表页面显示
配置完成后,车间设备主页将显示设备卡片:
┌─────────────────────────────────┐
│ 配料机1005 (EQ001) │
│ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │
│ 工位: 配料工位1 │
│ 类型: 采集终端 │
│ 状态: [启用] 🟢 │
│ 模拟量: 5个 数字量: 3个 │
│ ─────────────────────────────── │
│ [点位管理] [状态记录] │
└─────────────────────────────────┘
5.2.2 状态记录页面动态列显示
系统会根据上传的JSON数据自动生成动态列:
| 设备信息 | 点位信息 | 设备状态 | 温度1 | 温度2 | 压力 | 电流 | 重量 | 转速 | 记录时间 |
|---|---|---|---|---|---|---|---|---|---|
| 配料机1005 EQ001 工位: 配料工位1 |
设备整体 | 🟢 运行中 | 25.50°C | 28.30°C | 2.35bar | 15.20A | 1250.80kg | 1450rpm | 2025-01-15 14:30:25 |
| 配料机1005 EQ001 工位: 配料工位1 |
设备整体 | 🟢 运行中 | 26.20°C | 29.10°C | 2.41bar | 15.80A | 1248.30kg | 1455rpm | 2025-01-15 14:30:35 |
显示特点:
- ✅ 设备信息:自动显示设备名称、编号、工位
- ✅ 状态显示:A=🟢运行中,B=🟠停机,C=🔴故障,D=🔵维修
- ✅ 动态列:根据JSON字段自动生成列
- ✅ 智能单位:自动识别并显示合适的单位
- ✅ 缺失数据:某个设备没有的字段显示"-"
5.2.3 数据详情弹窗
点击任意记录可查看详细信息:
┌─────────── 设备状态详情 ───────────┐
│ 设备: 配料机1005 (EQ001) │
│ 状态: 🟢 运行中 │
│ 时间: 2025-01-15 14:30:25 │
│ ─────────────────────────────── │
│ 📊 采集数据: │
│ ┌─────────────────────────────┐ │
│ │ { │ │
│ │ "temperature1": 25.5, │ │
│ │ "temperature2": 28.3, │ │
│ │ "pressure": 2.35, │ │
│ │ "current": 15.2, │ │
│ │ "weight": 1250.8, │ │
│ │ "speed": 1450 │ │
│ │ } │ │
│ └─────────────────────────────┘ │
│ │
│ [显示原始数据] [关闭] │
└─────────────────────────────────┘
6. 数据验证和错误处理指南
6.1 必须遵守的数据验证规则
6.1.1 必填字段验证
上传数据前,请确保以下字段符合要求:
| 字段名 | 验证规则 | 错误后果 | 解决方法 |
|---|---|---|---|
equipment_id |
必须是有效的数字,且在设备表中存在 | 数据插入失败 | 检查设备是否已在MES中注册 |
equipment_status |
只能是 A、B、C、D 之一 | 状态显示异常 | 使用标准状态代码 |
value |
不能为空字符串或NULL | 无法生成动态列 | 至少传输一个有效数据 |
record_time |
必须是有效的日期时间格式 | 时间显示错误 | 使用 YYYY-MM-DD HH:mm:ss 格式 |
6.1.2 数据格式验证
JSON格式检查:
# 示例验证代码(Python伪代码)
import json
def validate_json_data(value_string):
try:
# 尝试解析JSON
data = json.loads(value_string)
# 检查数据类型
if not isinstance(data, dict):
return False, "JSON必须是对象格式"
# 检查字段值
for key, val in data.items():
if not isinstance(val, (int, float, str, bool)):
return False, f"字段{key}的值类型不支持"
return True, "验证通过"
except json.JSONDecodeError as e:
return False, f"JSON格式错误: {e}"
键值对格式检查:
def validate_keyvalue_data(value_string):
try:
# 检查格式:数字:数字,数字:数字
pairs = value_string.split(',')
for pair in pairs:
if ':' not in pair:
return False, "缺少冒号分隔符"
key, value = pair.split(':')
if not key.strip().isdigit():
return False, "键必须是数字"
float(value.strip()) # 检查值是否为数字
return True, "验证通过"
except ValueError as e:
return False, f"数值格式错误: {e}"
6.2 完整的错误处理体系
6.2.1 创建错误记录表
为了更好地监控和调试,建议创建专门的错误记录表:
-- 创建错误记录表
CREATE TABLE labview_upload_errors (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
equipment_number VARCHAR(64) COMMENT '设备编号',
equipment_name VARCHAR(128) COMMENT '设备名称',
error_type VARCHAR(32) COMMENT '错误类型:VALIDATION/CONNECTION/FORMAT/OTHER',
error_message TEXT COMMENT '详细错误信息',
original_data TEXT COMMENT '原始数据(用于问题排查)',
error_time DATETIME DEFAULT NOW() COMMENT '发生时间',
retry_count INT DEFAULT 0 COMMENT '重试次数',
is_resolved TINYINT(1) DEFAULT 0 COMMENT '是否已解决',
resolved_time DATETIME COMMENT '解决时间',
INDEX idx_equipment_error_time (equipment_number, error_time),
INDEX idx_error_type (error_type)
) COMMENT='LabVIEW上传错误记录表';
6.2.2 常见错误类型和解决方案
| 错误类型 | 错误信息示例 | 可能原因 | 解决方案 |
|---|---|---|---|
| 数据库连接 | Connection refused |
网络问题、服务器停机 | 检查网络连接,确认数据库服务状态 |
| 权限错误 | Access denied for user |
数据库用户权限不足 | 联系管理员分配正确的数据库权限 |
| 字段不存在 | Unknown column 'xxx' |
数据库表结构与程序不匹配 | 更新数据库表结构或修改程序 |
| 数据过长 | Data too long for column |
字符串超过字段长度限制 | 截断数据或扩大字段长度 |
| JSON格式错误 | Invalid JSON format |
JSON语法错误 | 检查JSON格式,确保语法正确 |
| 设备不存在 | Equipment ID not found |
设备未在MES中注册 | 先在MES中添加设备信息 |
| 状态码无效 | Invalid status code |
使用了非标准状态码 | 仅使用A、B、C、D状态码 |
6.2.3 LabVIEW端错误处理代码示例
LabVIEW错误处理流程:
┌─────────────────┐
│ 数据采集 │
└─────┬───────────┘
│
▼
┌─────────────────┐
│ 数据验证 │ ── 验证失败 ──→ ┌─────────────────┐
└─────┬───────────┘ │ 记录错误日志 │
│ └─────────────────┘
▼ 验证通过
┌─────────────────┐
│ 数据库连接 │ ── 连接失败 ──→ ┌─────────────────┐
└─────┬───────────┘ │ 启用缓存模式 │
│ └─────────────────┘
▼ 连接成功
┌─────────────────┐
│ 执行INSERT │ ── 执行失败 ──→ ┌─────────────────┐
└─────┬───────────┘ │ 重试机制 │
│ └─────────────────┘
▼ 成功
┌─────────────────┐
│ 确认上传 │
└─────────────────┘
7. 完整测试用例和示例数据
7.1 标准测试用例
7.1.1 配料机完整测试数据
-- 测试用例1:标准JSON格式数据
INSERT INTO dm_equipment_status_record_workshop VALUES
(NULL, 5, NULL, 'EQ001', '配料机1005', '配料工位1', 'A',
'{"temperature1":25.5,"temperature2":28.3,"pressure":2.35,"current":15.2,"weight":1250.8,"speed":1450,"flow_rate":12.5,"alarm_status":0}',
'2025-01-15 14:30:25', '正常运行', 'labview_system', NOW(), NULL, NULL),
-- 测试用例2:设备状态变化数据
(NULL, 5, NULL, 'EQ001', '配料机1005', '配料工位1', 'C',
'{"temperature1":85.2,"temperature2":87.3,"pressure":0.15,"current":0,"weight":1248.3,"speed":0,"alarm_status":1,"fault_code":"OVERHEAT"}',
'2025-01-15 14:32:15', '高温故障', 'labview_system', NOW(), NULL, NULL),
-- 测试用例3:维修状态数据
(NULL, 5, NULL, 'EQ001', '配料机1005', '配料工位1', 'D',
'{"maintenance_type":"preventive","technician":"张工","start_time":"2025-01-15 15:00:00","estimated_duration":120}',
'2025-01-15 15:00:00', '计划维护', 'maintenance_system', NOW(), NULL, NULL);
7.1.2 简化格式测试数据
-- 测试用例4:简化键值对格式
INSERT INTO dm_equipment_status_record_workshop VALUES
(NULL, 6, NULL, 'EQ002', '破碎机2001', '破碎工位1', 'A',
'1:200,2:300,3:400,4:5,5:1450,6:15.2',
'2025-01-15 14:31:00', '数据点采集', 'labview_system', NOW(), NULL, NULL),
-- 测试用例5:嵌套JSON格式
(NULL, 7, NULL, 'EQ003', '包装机3001', '包装工位1', 'A',
'{"sensors":{"temp1":45.2,"temp2":47.8,"humidity":65},"motors":{"motor1_speed":1200,"motor1_current":8.5},"counters":{"total_packages":1250,"current_batch":125}}',
'2025-01-15 14:32:00', '正常生产', 'labview_system', NOW(), NULL, NULL);
7.2 边界和异常测试用例
-- 测试用例6:空数据处理
INSERT INTO dm_equipment_status_record_workshop VALUES
(NULL, 5, NULL, 'EQ001', '配料机1005', '配料工位1', 'B',
'{"status":"idle","message":"waiting_for_material"}',
'2025-01-15 14:35:00', '等待原料', 'labview_system', NOW(), NULL, NULL),
-- 测试用例7:大数值测试
INSERT INTO dm_equipment_status_record_workshop VALUES
(NULL, 5, NULL, 'EQ001', '配料机1005', '配料工位1', 'A',
'{"total_production":999999.99,"energy_consumption":123456.78,"operating_hours":87654.32}',
'2025-01-15 14:36:00', '累计数据', 'labview_system', NOW(), NULL, NULL);
8. LabVIEW键值对改写完整指导
8.1 🔄 键值对改写原则
LabVIEW开发人员应该根据以下原则来命名数据字段,确保前端能正确识别并显示为合适的中文名称:
8.1.1 命名原则优先级
- 工厂工人友好性:优先考虑现场工人能否理解
- 系统智能识别:使用系统预定义的关键词
- 描述性清晰:字段名要能明确表达测量内容
- 一致性标准:同类设备使用相同的命名规范
8.1.2 推荐的命名格式
格式:[设备部件]_[测量类型]_[编号/位置]
优秀示例:
- motor_temp_bearing1 → 电机轴承1温度
- pump_pressure_outlet → 泵出口压力
- tank_level_water → 水罐液位
- conveyor_speed_main → 主输送带转速
- mixer_current_drive → 混合器驱动电流
8.2 🔧 LabVIEW实际改写案例
8.2.1 改写前后对比
| 改写前(不好的命名) | 改写后(推荐命名) | 前端显示效果 | 说明 |
|---|---|---|---|
AI_001 |
motor_temp |
电机温度 | 使用语义化命名 |
DO_002 |
pump_status |
泵状态 | 明确设备和参数类型 |
temp1, temp2 |
inlet_temp, outlet_temp |
进口温度, 出口温度 | 区分不同位置的温度 |
pressure |
hydraulic_pressure |
液压压力 | 明确压力类型 |
speed |
motor_speed, fan_speed |
电机转速, 风扇转速 | 区分不同设备的转速 |
value1, value2 |
flow_rate, tank_level |
流量, 罐液位 | 使用具体的测量参数名 |
8.2.2 完整的设备改写示例
配料机设备改写示例:
// 改写前:传统PLC风格命名
{
"AI001": 45.2,
"AI002": 48.5,
"AI003": 2.35,
"AI004": 15.2,
"DI001": 1,
"DI002": 0
}
// 改写后:智能识别命名
{
"motor_temp": 45.2,
"bearing_temp": 48.5,
"hydraulic_pressure": 2.35,
"motor_current": 15.2,
"pump_status": 1,
"emergency_stop": 0
}
前端显示效果对比:
| 改写前显示 | 改写后显示 |
|---|---|
| AI001: 45.20 | 电机温度: 45.20°C |
| AI002: 48.50 | 轴承温度: 48.50°C |
| AI003: 2.35 | 液压压力: 2.35bar |
| AI004: 15.20 | 电机电流: 15.20A |
| DI001: 1 | 泵状态: 1 |
| DI002: 0 | 急停: 0 |
8.3 🏭 按设备类型的改写指导
8.3.1 配料机设备
{
"motor_temp": 65.5, // 电机温度
"bearing1_temp": 55.2, // 轴承1温度
"bearing2_temp": 58.3, // 轴承2温度
"gearbox_temp": 48.5, // 减速器温度
"hydraulic_pressure": 2.35, // 液压压力
"motor_current": 15.2, // 电机电流
"motor_voltage": 220, // 电机电压
"mixer_speed": 1450, // 搅拌转速
"material_weight": 1250.8, // 物料重量
"tank_level": 85.2, // 料罐液位
"conveyor_speed": 120, // 输送带转速
"vibration_alarm": 0, // 振动报警
"emergency_stop": 0 // 急停状态
}
8.3.2 泵类设备
{
"pump_pressure_inlet": 1.8, // 泵进口压力
"pump_pressure_outlet": 4.2, // 泵出口压力
"motor_temp": 62.3, // 电机温度
"pump_temp": 45.8, // 泵体温度
"motor_current": 18.5, // 电机电流
"pump_speed": 2850, // 泵转速
"flow_rate": 25.6, // 流量
"vibration": 2.1, // 振动值
"seal_pressure": 0.5, // 密封压力
"cooling_temp": 35.2, // 冷却水温度
"run_status": 1, // 运行状态
"fault_alarm": 0 // 故障报警
}
8.3.3 风机设备
{
"motor_temp": 58.7, // 电机温度
"bearing_temp_front": 52.3, // 前轴承温度
"bearing_temp_rear": 54.1, // 后轴承温度
"motor_current": 22.8, // 电机电流
"fan_speed": 1425, // 风机转速
"air_pressure": 1.2, // 风压
"air_flow": 850, // 风量
"vibration_x": 1.8, // X轴振动
"vibration_y": 2.1, // Y轴振动
"noise_level": 68.5, // 噪音水平
"filter_pressure": 0.05, // 过滤器压差
"damper_position": 75 // 风门开度
}
8.4 📝 LabVIEW代码实现指导
8.4.1 JSON字符串构建
// LabVIEW中构建JSON字符串的推荐方式
String concatenation method:
motor_temp_str = Format Into String("%.2f", motor_temp_value)
bearing_temp_str = Format Into String("%.2f", bearing_temp_value)
pressure_str = Format Into String("%.2f", pressure_value)
json_string = "{" +
"\"motor_temp\":" + motor_temp_str + "," +
"\"bearing_temp\":" + bearing_temp_str + "," +
"\"hydraulic_pressure\":" + pressure_str + "," +
"\"motor_current\":" + current_str + "," +
"\"pump_status\":" + status_str +
"}"
8.4.2 数据库插入代码模板
-- LabVIEW数据库插入的标准SQL模板
INSERT INTO dm_equipment_status_record_workshop (
equipment_id,
equipment_number,
equipment_name,
station_name,
equipment_status,
value,
record_time,
note,
create_by,
create_time
) VALUES (
5, -- 设备ID(从MES系统获取)
'EQ001', -- 设备编号
'配料机1005', -- 设备名称
'配料工位1', -- 工位名称
0, -- 设备状态(0-运行中)
?, -- JSON数据(参数化查询)
NOW(), -- 记录时间
'自动采集', -- 备注
'labview_system', -- 创建者
NOW() -- 创建时间
);
8.4.3 键值对格式实现
// 如果使用简单的键值对格式
key_value_string = "motor_temp:" + motor_temp_str + "," +
"bearing_temp:" + bearing_temp_str + "," +
"hydraulic_pressure:" + pressure_str + "," +
"motor_current:" + current_str + "," +
"pump_status:" + status_str
// 前端显示效果:
// 电机温度: 65.50°C
// 轴承温度: 55.20°C
// 液压压力: 2.35bar
// 电机电流: 15.20A
// 泵状态: 1
9. 键值对Key映射规则详细说明
9.1 🔧 智能识别关键词
当key中包含以下关键词时,系统会自动识别并显示对应的中文名称:
9.1.1 基础物理参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
temp, temperature, temperature1 |
温度 | 温度 | °C | temp:25.5 → 温度: 25.50°C |
press, pressure, pressure1, hydraulic_pressure |
压力 | 压力 | bar | press:2.35 → 压力: 2.35bar |
current, motor_current, amp, amperage |
电流 | 电流 | A | current:15.2 → 电流: 15.20A |
voltage, main_voltage, volt, v_supply |
电压 | 电压 | V | voltage:220 → 电压: 220.00V |
weight, total_weight, mass, load |
重量 | 重量 | kg | weight:1250 → 重量: 1250.00kg |
speed, motor_speed, rpm, revolution |
转速 | 转速 | rpm | motor_speed:1450 → 转速: 1450rpm |
level, tank_level, liquid_level, material_level |
液位 | 液位 | % | tank_level:85 → 液位: 85.00% |
flow, water_flow, flow_rate, flowmeter |
流量 | 流量 | L/min | flow:12.5 → 流量: 12.50 |
9.1.2 机械设备参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
vibration, vib, oscillation, shake |
振动 | 振动 | mm/s | vibration:2.5 → 振动: 2.50mm/s |
position, pos, displacement, distance |
位置 | 位置 | mm | position:125.5 → 位置: 125.50mm |
angle, rotation, degree, angular |
角度 | 角度 | ° | angle:45.2 → 角度: 45.20° |
torque, moment, twist, rotation_force |
扭矩 | 扭矩 | N·m | torque:350.8 → 扭矩: 350.80N·m |
force, thrust, push_force, pull_force |
力 | 力 | N | force:1250 → 力: 1250.00N |
acceleration, accel, g_force, shock |
加速度 | 加速度 | m/s² | acceleration:9.8 → 加速度: 9.80m/s² |
9.1.3 工艺过程参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
concentration, conc, density_ratio, strength |
浓度 | 浓度 | % | concentration:15.5 → 浓度: 15.50% |
ph, ph_value, acidity, alkalinity |
pH值 | pH值 | pH | ph:7.2 → pH值: 7.20pH |
viscosity, visc, thickness, consistency |
粘度 | 粘度 | cP | viscosity:250.5 → 粘度: 250.50cP |
density, specific_gravity, sg, bulk_density |
密度 | 密度 | kg/m³ | density:1250.8 → 密度: 1250.80kg/m³ |
humidity, moisture, water_content, rh |
湿度 | 湿度 | %RH | humidity:65.2 → 湿度: 65.20%RH |
conductivity, conduct, resistance, impedance |
电导率 | 电导率 | µS/cm | conductivity:1250 → 电导率: 1250.00µS/cm |
9.1.4 环境监测参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
noise, sound, decibel, acoustic |
噪音 | 噪音 | dB | noise:65.5 → 噪音: 65.50dB |
light, illuminance, brightness, lux |
光照 | 光照 | lux | light:500 → 光照: 500.00lux |
dust, particle, pm25, pollution |
粉尘 | 粉尘 | µg/m³ | dust:35.2 → 粉尘: 35.20µg/m³ |
gas, co2, oxygen, o2, emission |
气体 | 气体 | ppm | gas:400 → 气体: 400.00ppm |
radiation, radioactivity, dose, exposure |
辐射 | 辐射 | mSv | radiation:0.05 → 辐射: 0.05mSv |
9.1.5 能耗与效率参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
power, watt, consumption, kw |
功率 | 功率 | kW | power:15.5 → 功率: 15.50kW |
energy, kwh, electricity, consumption_total |
能耗 | 能耗 | kWh | energy:125.8 → 能耗: 125.80kWh |
efficiency, eff, performance, utilization |
效率 | 效率 | % | efficiency:85.2 → 效率: 85.20% |
frequency, freq, hz, cycles |
频率 | 频率 | Hz | frequency:50.0 → 频率: 50.00Hz |
capacity, output, throughput, production_rate |
产能 | 产能 | 件/h | capacity:120 → 产能: 120.00件/h |
9.1.6 生产统计参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
count, quantity, pieces, total_count |
计数 | 计数 | 个 | count:1250 → 计数: 1250个 |
rate, speed_production, velocity, pace |
速率 | 速率 | 件/min | rate:25.5 → 速率: 25.50件/min |
cycle_time, duration, period, interval |
周期时间 | 周期时间 | s | cycle_time:45.2 → 周期时间: 45.20s |
batch, lot, group, batch_size |
批次 | 批次 | 批 | batch:12 → 批次: 12批 |
waste, scrap, defect, reject |
废料 | 废料 | kg | waste:2.5 → 废料: 2.50kg |
yield, output_ratio, success_rate, pass_rate |
良品率 | 良品率 | % | yield:98.5 → 良品率: 98.50% |
9.1.7 设备健康与维护参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
wear, abrasion, erosion, degradation |
磨损 | 磨损 | % | wear:15.2 → 磨损: 15.20% |
lifetime, lifespan, remaining_life, hours |
寿命 | 寿命 | h | lifetime:8500 → 寿命: 8500.00h |
mttf, mtbf, reliability, uptime |
可靠性 | 可靠性 | h | mttf:2500 → 可靠性: 2500.00h |
fault_code, error_code, diagnostic, trouble |
故障代码 | 故障代码 | - | fault_code:E001 → 故障代码: E001 |
maintenance, service, repair, check |
维护 | 维护 | - | maintenance:1 → 维护: 1 |
9.1.8 状态与报警参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
status, state, condition, mode |
状态 | 状态 | - | status:1 → 状态: 1 |
alarm, alert, warning, fault |
报警 | 报警 | - | alarm:0 → 报警: 0 |
enable, disable, on_off, switch |
启用 | 启用 | - | enable:1 → 启用: 1 |
ready, busy, idle, working |
就绪 | 就绪 | - | ready:1 → 就绪: 1 |
emergency, estop, safety, interlock |
急停 | 急停 | - | emergency:0 → 急停: 0 |
9.2 🔢 数字Key处理
| 输入Key | 前端显示列名 | 示例 |
|---|---|---|
1 |
数据点1 | 1:200 → 数据点1: 200.00 |
2 |
数据点2 | 2:300 → 数据点2: 300.00 |
100 |
数据点100 | 100:45.5 → 数据点100: 45.50 |
9.3 📝 其他Key处理
如果key不包含任何识别关键词,系统会直接显示key值作为列名:
| 输入Key | 前端显示列名 | 示例 |
|---|---|---|
xyz |
xyz | xyz:123 → xyz: 123.00 |
custom_data |
custom_data | custom_data:456 → custom_data: 456.00 |
9.4 💡 最佳实践建议
推荐命名格式:设备功能_测量类型_编号
优秀示例:
- mixer_temperature_1 → 温度: XX.XX°C
- pump_pressure_inlet → 压力: XX.XXbar
- motor_current_drive → 电流: XX.XXA
- tank_level_water → 液位: XX.XX%
- conveyor_speed_main → 转速: XX.XXrpm
避免的命名方式:
- 纯数字(除非是传统PLC点位):
123:value - 无意义缩写:
abc:value,xyz:value - 中文key:系统支持但不推荐
9.5 🏭 行业专用关键词扩展
9.5.1 化工行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
catalyst, cat_activity, catalyst_temp |
催化剂 | 催化剂 | % | catalyst:95.2 → 催化剂: 95.20% |
reaction_temp, reactor_temp, furnace_temp |
反应温度 | 反应温度 | °C | reaction_temp:450 → 反应温度: 450.00°C |
distillation, column_temp, reflux_ratio |
蒸馏 | 蒸馏 | - | reflux_ratio:3.5 → 蒸馏: 3.50 |
crystallization, crystal_size, purity |
结晶 | 结晶 | % | purity:99.8 → 结晶: 99.80% |
polymerization, molecular_weight, conversion |
聚合 | 聚合 | % | conversion:85.5 → 聚合: 85.50% |
9.5.2 食品行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
baking_temp, oven_temp, cooking_temp |
烘烤温度 | 烘烤温度 | °C | baking_temp:180 → 烘烤温度: 180.00°C |
fermentation, yeast_activity, ph_ferment |
发酵 | 发酵 | pH | ph_ferment:4.2 → 发酵: 4.20pH |
sterilization, pasteur_temp, sterile_time |
杀菌 | 杀菌 | °C | pasteur_temp:72 → 杀菌: 72.00°C |
packaging, seal_pressure, vacuum_level |
包装 | 包装 | kPa | vacuum_level:85 → 包装: 85.00kPa |
shelf_life, expiry, freshness |
保质期 | 保质期 | 天 | shelf_life:30 → 保质期: 30.00天 |
9.5.3 纺织行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
tension, yarn_tension, fabric_tension |
张力 | 张力 | N | yarn_tension:15.5 → 张力: 15.50N |
weaving, warp_speed, weft_speed |
织造 | 织造 | m/min | warp_speed:120 → 织造: 120.00m/min |
dyeing, dye_concentration, color_depth |
染色 | 染色 | % | dye_concentration:2.5 → 染色: 2.50% |
finishing, resin_content, shrinkage |
整理 | 整理 | % | shrinkage:3.2 → 整理: 3.20% |
quality_grade, fabric_defect, gsm |
质量等级 | 质量等级 | g/m² | gsm:180 → 质量等级: 180.00g/m² |
9.5.4 制药行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
api_content, active_ingredient, assay |
活性成分 | 活性成分 | % | api_content:98.5 → 活性成分: 98.50% |
tablet_weight, capsule_weight, uniformity |
片重 | 片重 | mg | tablet_weight:250 → 片重: 250.00mg |
dissolution, release_rate, bioavailability |
溶出度 | 溶出度 | % | dissolution:95.2 → 溶出度: 95.20% |
sterility, bioburden, endotoxin |
无菌 | 无菌 | CFU/ml | bioburden:10 → 无菌: 10.00CFU/ml |
stability, degradation, shelf_study |
稳定性 | 稳定性 | % | degradation:0.5 → 稳定性: 0.50% |
9.5.5 金属加工行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
cutting_speed, spindle_speed, feed_rate |
切削速度 | 切削速度 | m/min | cutting_speed:150 → 切削速度: 150.00m/min |
tool_wear, cutting_force, surface_finish |
刀具磨损 | 刀具磨损 | µm | tool_wear:50.5 → 刀具磨损: 50.50µm |
hardness, tensile_strength, yield_strength |
硬度 | 硬度 | HRC | hardness:45 → 硬度: 45.00HRC |
heat_treatment, quench_temp, tempering_temp |
热处理 | 热处理 | °C | quench_temp:850 → 热处理: 850.00°C |
coating, plating_thickness, corrosion_rate |
涂层 | 涂层 | µm | plating_thickness:25 → 涂层: 25.00µm |
9.5.6 塑料行业专用参数
| 输入Key | 系统识别为 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
melt_temp, barrel_temp, nozzle_temp |
熔融温度 | 熔融温度 | °C | melt_temp:230 → 熔融温度: 230.00°C |
injection_pressure, hold_pressure, back_pressure |
注射压力 | 注射压力 | MPa | injection_pressure:80 → 注射压力: 80.00MPa |
mold_temp, cooling_time, cycle_time_injection |
模具温度 | 模具温度 | °C | mold_temp:60 → 模具温度: 60.00°C |
shrinkage_rate, warpage, flash |
收缩率 | 收缩率 | % | shrinkage_rate:1.2 → 收缩率: 1.20% |
mfi, melt_flow_index, viscosity_melt |
熔融指数 | 熔融指数 | g/10min | mfi:25 → 熔融指数: 25.00g/10min |
9.6 🔧 复合关键词智能识别
系统支持复合关键词识别,可以同时匹配多个含义:
| 输入Key | 识别关键词 | 前端显示列名 | 自动单位 | 示例 |
|---|---|---|---|---|
motor_temp_bearing |
motor + temp + bearing | 电机轴承温度 | °C | motor_temp_bearing:65.5 → 电机轴承温度: 65.50°C |
pump_pressure_outlet |
pump + pressure + outlet | 泵出口压力 | bar | pump_pressure_outlet:2.8 → 泵出口压力: 2.80bar |
tank_level_chemical |
tank + level + chemical | 化工罐液位 | % | tank_level_chemical:75 → 化工罐液位: 75.00% |
conveyor_speed_main |
conveyor + speed + main | 主输送带转速 | m/min | conveyor_speed_main:45 → 主输送带转速: 45.00m/min |
reactor_temp_jacket |
reactor + temp + jacket | 反应器夹套温度 | °C | reactor_temp_jacket:120 → 反应器夹套温度: 120.00°C |
9.7 🌐 多语言Key支持
系统同时支持英文和中文拼音关键词:
| 英文Key | 中文拼音Key | 前端显示列名 | 示例 |
|---|---|---|---|
temperature |
wendu, wd |
温度 | wendu:25.5 → 温度: 25.50°C |
pressure |
yali, yl |
压力 | yali:2.35 → 压力: 2.35bar |
current |
dianliu, dl |
电流 | dianliu:15.2 → 电流: 15.20A |
voltage |
dianya, dy |
电压 | dianya:220 → 电压: 220.00V |
speed |
zhuansu, zs |
转速 | zhuansu:1450 → 转速: 1450rpm |