Files
vd_test_fixture/docs/VD测试工装V1.0培训手册.md

20 KiB
Raw Blame History

VD 测试工装 V1.0 培训手册

版本: V1.0
日期: 2026-05-31
作者: wangfq
适用对象: 测试工程师、生产操作员、系统管理员


目录

  1. 项目概述
  2. 系统架构
  3. 硬件环境
  4. EDC 服务
  5. EDC 管理系统
  6. 通信协议
  7. 操作指南
  8. 常见问题
  9. 附录

1. 项目概述

1.1 项目简介

VD 测试工装vd_test_fixture是一套车检器自动化测试系统用于批量检测车检器Vehicle Detector的核心性能指标

核心能力:

  • 灵敏度测试: 检测车检器对不同信号强度的响应
  • 产品一致性测试: 批量产品之间的性能差异分析
  • 自动化测试: 支持设定测试次数,自动循环执行,实时进度反馈
  • 工装配置管理: 支持 DG430 V2.0.x 协议的设备参数配置、版本查询、出厂初始化

1.2 术语说明

术语 全称 说明
EDC Edge Data Center 边缘数据中心,系统的核心服务
DNT Data Network Terminal 联网终端PGLC连接设备与 EDC
DG430 地感测试工装硬件,执行实际测试动作
VD Vehicle Detector 车检器(被测设备)
SerialNet Serial Network 串口网络透传,通过 UDP 将指令转发到 DG430 串口

1.3 系统组成

vd_test_fixture/
├── edc_server/          # EDC 边缘数据中心(后端服务)
│   ├── src/server.py    # UDP/TCP 异步网络服务
│   ├── src/handlers.py  # 业务处理 + 后台轮询
│   ├── src/models.py    # 数据库模型 (aiomysql)
│   ├── src/dg430.py     # DG430 二进制协议解析
│   └── src/protocol.py  # PGLC JSON 协议解析
├── edc-web/             # Flask Web 管理系统(前端)
│   ├── app/routes/      # 页面路由: 设备/测试/数据/工装/用户/日志
│   ├── app/templates/   # Jinja2 页面模板
│   └── app/static/      # CSS + JS
├── docs/                # 协议文档 + 培训手册
└── MySQL                # 共享数据库 (edc)

2. 系统架构

2.1 整体架构图

┌──────────────────┐         浏览器 HTTPS
│    edc-web       │ ◄────────────────────── 操作人员
│  Flask (Flask-Login) │
│  前端管理界面      │
└────────┬─────────┘
         │ pymysql (同步)
         ▼
┌──────────────────┐
│     MySQL        │
│  数据库: edc      │
│  (共享存储)       │
└────────┬─────────┘
         │ aiomysql (异步)
         ▼
┌──────────────────┐    UDP :4900     ┌──────────────┐   RS485/TTL   ┌────────────┐
│   edc_server     │ ◄──────────────► │ PGLC 联网终端  │ ◄───────────► │ DG430 工装  │
│  Python/uvloop   │  SerialNet 透传   │  (DNT)        │  串口协议      │ (测试硬件)  │
│                  │                  └──────────────┘               └──────┬─────┘
│ UDP :5500/:5505  │                                                       │
│ TCP :5550        │                                                       ▼
└──────────────────┘                                               ┌──────────────┐
                                                                    │   车检器(VD) │
                                                                    │  (被测设备)   │
                                                                    └──────────────┘

2.2 通信链路

操作员浏览器 → edc-web (Flask, port 5000) → MySQL → edc_server (asyncio) → DNT → DG430 → 车检器
                                                                              ↕
                                                                         MySQL (同步)

关键点:

  • edc_server 和 edc-web 共享同一 MySQL 数据库
  • edc_server 使用 aiomysql (异步)edc-web 使用 pymysql (同步),互不冲突
  • 前端通过 edc-web 的 REST API 下发指令,实际执行由 edc_server 的轮询任务完成

2.3 端口分配

端口 方向 协议 说明
5500 监听 UDP EDC 设备发现 / 心跳
5505 监听 UDP EDC 消息监听
5550 监听 TCP EDC 时间同步 / 数据上报 / 串口透传
4900 发送 UDP 向设备发送 SerialNet 透传指令
5550 发送 TCP 向设备发送 TCP 数据
5000 监听 HTTP edc-web Flask 管理界面

3. 硬件环境

3.1 DG430 地感测试工装

DG430 是执行测试的核心硬件,负责控制电机驱动模拟车辆经过地感线圈,并采集车检器的响应数据。

接口:

接口 连接 说明
IN1/GND 地感存在信号 检测线圈是否有车
IN2/GND 地感脉冲信号 检测脉冲继电器
IN3/COM 按钮 按下开始测试
IN4/COM 按钮 按下复原位置
PU+/PU-/DR+/DR-/MF+/MF- 电机驱动器 控制电机前进/后退
+5V/GND/NO/NC 限位开关 有信号电机停转
485A/485B RS485 接 PGLC 联网终端
GND/LP 地感线圈 模拟车辆通过
SW3 激光探头 检测进入/离开

拨码开关:

  • DIP1=OFF, DIP2=OFF → 测试 132 系列地感
  • DIP1=ON, DIP2=OFF → 测试 110 系列地感

声音提示:

声音 含义
2 声 工作频率/峰峰值异常
3 声 灵敏度异常
4 声 灵敏度提升异常 (132 DIP5)
5 声 非离开脉冲
6 声 脉冲继电器无输入

3.2 PGLC 联网终端 (DNT)

PGLC 终端是连接 EDC 服务和 DG430 工装的网络桥接设备:

  • 通过 RS485/TTL 串口 连接 DG430 工装
  • 通过 TCP/UDP 网络 连接 EDC 服务
  • 负责串口数据与网络数据的双向透传

4. EDC 服务 (edc_server)

4.1 功能概述

EDC 服务是整个系统的数据中枢,负责:

  1. 设备管理: 发现、注册、心跳检测、在线状态维护
  2. 数据采集: 接收设备上报的测试数据、原始传感数据
  3. 协议解析: 解析 DG430 二进制协议,提取测试结果
  4. 指令透传: SerialNet 透传机制,将前端指令下发给设备
  5. 后台轮询: 自动化测试调度、超时检测、状态流转

4.2 启动方式

cd edc_server
source .venv/bin/activate

# 配置环境变量
export EDC_MYSQL_HOST=127.0.0.1
export EDC_MYSQL_USER=dg
export EDC_MYSQL_PASSWORD=123456
export EDC_MYSQL_DB=edc

# 启动
python run.py

4.3 数据库表结构

表名 用途 关键字段
dnt_info 联网终端信息 serial(唯一), ip, state(在线/离线)
tb_state_tst 设备测试状态 dnt_id, pcnum, serialnum, ppvalue, idle_freq, enter_freq, exit_freq
tb_serialnet 透传发送队列 dnt_id, send_pkg, rcv_pkg, state(0未发→1已发→2已完成→3超时)
tb_fixture_param 工装测试参数 dnt_id(UNIQUE), dev_type, test_mode, sens_min/max, freq_min/max
tb_vechicle_base_test 车检器基准参数 type_num(编码), relay_exist, relay_pluse, sens_min/max 等
tb_user 用户账号 username, password_hash, role(admin/operator)
tb_log 操作日志 user_id, action_type, target, detail, result, ip
tb_collect_{DeviceID} 设备原始数据采集表 dat_type, raw_data, state(0未处理/1已处理)

4.4 关键流程

设备注册流程

设备上电 → TCP 时间同步 → UDP 上报 Count_Off → EDC 检查 serial
    ├─ 已注册 → 更新 IP/网关 + last_login
    └─ 未注册 → 插入 dnt_info + 创建 tb_collect_{DeviceID}

SerialNet 透传流程

前端 → edc-web → INSERT tb_serialnet (state=0)
    → serialnet_loop 轮询 → UDP 发送到设备 (state=1)
    → 设备回复 TSReport(dat_type=8 或 9)
    → parse_loop 解析 → UPDATE tb_serialnet (state=2, rcv_pkg=...)
    → 前端轮询 api/fixture/serialnet/{id} → 显示结果

超时检测

  • serialnet_loop 每轮检查 state=1update_time > 10s 的记录
  • 超时记录置为 state=3(超时)

5. EDC 管理系统 (edc-web)

5.1 功能概述

edc-web 是基于 Flask 的 Web 管理系统,提供图形化操作界面。

功能模块:

模块 URL 功能
登录 /login 用户认证 (Flask-Login)
设备管理 /devices 联网终端列表、在线状态、名称修改
测试操作 /test-op/<dnt_id> 单次测试、手动控制、自动化测试
测试数据 /test-data 历史测试数据查询、分页、导出
工装配置 /fixture/<dnt_id> DG430 V2.0 配置指令、参数管理
用户管理 /users 账号管理 (admin only)
操作日志 /logs 操作记录审计

5.2 启动方式

cd edc-web
source .venv/bin/activate

# 配置环境变量(与 edc_server 相同)
export EDC_MYSQL_HOST=127.0.0.1
export EDC_MYSQL_USER=dg
export EDC_MYSQL_PASSWORD=123456
export EDC_MYSQL_DB=edc

# 启动(默认 5000 端口)
python run.py

首次启动: 自动创建默认管理员 admin / admin123

5.3 用户角色

角色 权限
admin 全部功能:设备管理、测试操作、用户管理、日志查看
operator 受限功能:设备管理、测试操作

6. 通信协议

6.1 DG430 串口协议

DG430 与 PGLC 终端之间的通信协议,采用一问一答方式。

数据包格式 (7 字节):

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│ STX  │ ADDR │ LEN  │ CMD  │ DATA │ XOR  │ SUM  │
│ 0x7F │ 1B   │ 1B   │ 1B   │ LEN-1│ 1B   │ 1B   │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┘

测试操作指令 (V1.0)

指令 CMD Hex (addr=0x01) 说明
开始测试 B0 7F 81 01 B0 30 32 启动一次测试流程
测试复原 B1 7F 81 01 B1 31 33 恢复到初始位置
电机前进 BA 7F 81 01 BA 3A 3C 电机正转
电机后退 BB 7F 81 01 BB 3B 3D 电机反转
电机停止 BC 7F 81 01 BC 3C 3E 电机停止

工装配置指令 (V2.0.x) NEW

指令 CMD 说明
获取版本号 4A 查询 DG430 固件和硬件版本
配置测试参数 4B 下发工装参数(动态构造)
查询测试参数 4C 查询当前全部参数
出厂初始化 4D 恢复出厂设置
设备复位 4E 重启 DG430 设备

⚠️ 端序注意: B2 上报和 0x4B/0x4C 的 2 字节字段统一用小端 (_le16)。协议文档测试用例写的是大端,但实际硬件发送小端。

B2 状态上报

设备完成测试后自动上报状态数据包,包含:

字段 说明 范围
State 设备状态 正常/故障
Mode 工作模式
Sens 灵敏度 实际值
PPValue 峰峰值 mV
IdleFreq 开始工作频率 kHz
EnterFreq 进入工作频率 kHz
EnterDist 进入距离 mm
ExitDist 离开距离 mm
EnterSpeed 进入速度 dm/s
ExitSpeed 离开速度 dm/s

6.2 PGLC 网络接口协议

EDC 服务与 PGLC 终端之间的 JSON 协议。

主要方法

Method 方向 说明
TimeStamp 设备→EDC 时间同步请求
Count_Off 设备→EDC 设备注册/发现
TSReport 设备→EDC 子设备数据上报
SerialNet EDC→设备 串口透传指令下发
Heartbeat 设备→EDC 心跳包

SerialNet 透传格式

{
  "Method": "SerialNet",
  "Params": {
    "Addr": 1,
    "SerialCmd": "7F8101B03032",
    "SerialDat": "",
    "WorkMode": 1
  }
}

7. 操作指南

7.1 登录系统

  1. 浏览器访问 http://<服务器IP>:5000/login
  2. 默认账号: admin / admin123
  3. 登录后跳转到设备管理页

7.2 设备管理

查看设备列表:

  • 首页展示所有联网终端
  • 显示序列号、名称、IP、在线状态

修改设备名称:

  • 点击设备行的名称编辑图标
  • 输入新名称后提交保存

进入测试:

  • 点击设备行右侧的 「测试」 按钮

7.3 手动测试操作

在测试操作页面:

  1. 单次测试: 点击 「开始测试」 按钮DG430 执行一次完整测试流程
  2. 手动控制 (仅 admin):
    • 测试复原: 恢复初始位置
    • 电机前进/后退/停止: 手动控制电机
  3. 实时数据: 页面自动显示设备上报的最新测试数据

7.4 自动化测试

  1. 在测试次数输入框中填入测试次数(如 10
  2. 点击 「开始」 按钮
    • 进度条显示 已完成/总数
    • 成功/失败计数实时更新
    • 平均值区域持续刷新
  3. 如需中途停止,点击 「结束」 按钮

自动化流程:

开始 → INSERT tb_serialnet (0xB0, state=0)
     → serialnet_loop 发送 UDP (state=1)
     → 等待设备 B2 上报
     → parse_loop 解析存入 tb_state_tst
     → 匹配 serialnet 记录 (state=2)
     → 前端轮询进度 → 自动发送下一次 0xB0
     → ...重复...
     → 全部完成 / 超时(fail) / 手动结束

超时处理: 单次测试超时 10 秒,超时计入失败,自动继续下一次。

7.5 工装配置管理 (V2.0 新增)

  1. 从设备页面进入 「工装配置」

工装参数设置:

  • 选择设备类型、测试模式
  • 配置灵敏度范围、频率范围、峰峰值范围
  • 配置 / 查询 / 初始化操作

DG430 版本查询:

  • 点击 「获取设备版本号」,查看硬件/固件版本

通信日志:

  • 每次指令发送后,下方自动显示通信日志
  • → 发送 (绿色): 发出的指令 hex
  • ← 收到 (橙色): 设备返回的 hex
  • ✓ 成功 / ✗ 失败: 解析结果

7.6 测试数据查询

  1. 点击 「测试信息」 菜单
  2. 功能:
    • 分页浏览: 翻页查看历史数据
    • 关键字搜索: 按设备编码、批次号搜索
    • 日期筛选: 按日期范围过滤
    • 导出: 导出测试数据

7.7 用户管理 (admin only)

  1. 点击 「用户管理」 菜单
  2. 功能:
    • 添加新用户(用户名、密码、角色)
    • 修改用户角色
    • 删除用户

7.8 操作日志

  1. 点击 「操作日志」 菜单
  2. 记录类型:
    • login / logout: 登录/登出记录
    • command: 指令下发记录

8. 常见问题

8.1 设备离线

现象: 设备列表显示"离线"

排查:

  1. 检查设备供电是否正常
  2. 检查网络连接ping 设备 IP
  3. 查看 edc_server 日志,确认是否收到心跳
  4. 设备超时阈值: 默认 120 秒(EDC_DEVICE_TIMEOUT

8.2 测试超时

现象: 自动化测试中连续超时

排查:

  1. 检查 DG430 工装是否正常上电
  2. 检查 RS485 连接是否正确
  3. 在工装配置页发送「获取设备版本号」,验证通信链路
  4. 超时阈值: 10 秒

8.3 速度显示异常

现象: 速度值看起来偏大 10 倍

原因: DG430 协议存储的是 dm/s分米/秒),系统已自动转换为 m/s米/秒)。如果发现显示值异常,检查转换逻辑。

8.4 首次启动无管理员

现象: 无法登录

解决方案: edc-web 首次启动时自动创建 admin / admin123。如果手动清空过 tb_user 表,重启 edc-web 即可重新创建。

8.5 串口通信失败

现象: 工装配置指令无响应

排查:

  1. 确认 PGLC 终端固件支持 SerialNet 透传
  2. 确认 RS485 波特率: 19200TTL 波特率: 115200
  3. 确认 0x4B/0x4C 指令使用了小端字节序

9. 附录

A. DG430 指令速查

┌─────────────────────────────────────────────────────────────┐
│                     DG430 指令速查表                          │
├────────┬──────────┬─────────────────────────────────────────┤
│  CMD   │  指令     │  Hex (addr=0x01)                        │
├────────┼──────────┼─────────────────────────────────────────┤
│  0xB0  │ 开始测试  │  7F 81 01 B0 30 32                       │
│  0xB1  │ 测试复原  │  7F 81 01 B1 31 33                       │
│  0xBA  │ 电机前进  │  7F 81 01 BA 3A 3C                       │
│  0xBB  │ 电机后退  │  7F 81 01 BB 3B 3D                       │
│  0xBC  │ 电机停止  │  7F 81 01 BC 3C 3E                       │
│  0x4A  │ 版本查询  │  7F 81 01 4A CA CC                       │
│  0x4B  │ 配置参数  │  动态构造                                 │
│  0x4C  │ 查询参数  │  7F 81 01 4C CC CE                       │
│  0x4D  │ 出厂初始化 │  7F 81 01 4D CD CF                       │
│  0x4E  │ 设备复位  │  7F 81 01 4E CE D0                       │
└────────┴──────────┴─────────────────────────────────────────┘

B. 环境变量速查

变量 默认值 说明
EDC_MYSQL_HOST 127.0.0.1 MySQL 地址
EDC_MYSQL_PORT 3306 MySQL 端口
EDC_MYSQL_USER dg 数据库用户
EDC_MYSQL_PASSWORD 123456 数据库密码
EDC_MYSQL_DB edc 数据库名
EDC_UDP_PORT 5500 UDP 设备发现
EDC_UDP_MSG_PORT 5505 UDP 消息监听
EDC_TCP_PORT 5550 TCP 数据上报
EDC_DEVICE_UDP_PORT 4900 设备端 UDP
EDC_DEVICE_TCP_PORT 5550 设备端 TCP
EDC_DEVICE_TIMEOUT 120 设备离线超时(秒)
EDC_PARSE_POLL_INTERVAL 0.5 解析轮询间隔(秒)
EDC_LOG_LEVEL INFO 日志级别
EDC_WEB_PORT 5000 Web 管理端口

C. 数据库快速参考

-- 查看在线设备
SELECT serial, name, ip, state, last_login FROM dnt_info WHERE state=1;

-- 查看最近测试数据
SELECT s.*, d.serial, d.name 
FROM tb_state_tst s 
JOIN dnt_info d ON s.dnt_id = d.id 
ORDER BY s.create_time DESC LIMIT 20;

-- 查看待发送指令
SELECT * FROM tb_serialnet WHERE state=0;

-- 查看操作日志
SELECT l.*, u.username 
FROM tb_log l 
JOIN tb_user u ON l.user_id = u.id 
ORDER BY l.create_time DESC LIMIT 50;

D. 修订历史

版本 日期 说明 作者
V1.0 2026-05-31 初始版本 wangfq