19 KiB
测试工装DG430串口协议
DG430地感测试工装协议说明
(V2.0.3-20260531)
1 硬件介绍
接口:
IN1和GND:接地感的存在信号;
IN2和GND:接地感的脉冲信号;
IN3和COM:接按钮,按下开始测试;
IN4和COM:接按钮,按下复原位置;
PU+/PU-/DR+/DR-/MF+/MF-:接电机驱动器;
+5V/GND/NO/NC:接限位开关,有信号电机停转;
485A/485B:485信号,USB转485接电脑;
VCC/GND:电源输入,直流9-36V;
+5V/GND:5V直流电输出;
GND/LP:接地感线圈;
SW3:接激光探头;
拨码开关(对应地感测试正常不报警):
DIP1---OFF,DIP2---OFF:测试132系列地感;
DIP1---ON,DIP2---OFF:测试110系列地感;
数码管显示:
进入和离开对应地感的触发和释放距离,单位mm;
2 声音提示说明
2声-----工作频率和峰峰值不对,可能不在最低频;
3声-----灵敏度不对,可能不是最低灵敏度;
4声-----灵敏度提升不对,132的DIP5不在OFF;
5声-----不是离开脉冲;
6声-----脉冲继电器无输入;
3 数据显示
安装软件“dg430_tool”,可显示峰峰值、工作频率、出发距离、释放距离、故障信息、继电器输出等。
4 通讯方式
通信采用一问一答方式。即主机发送一个命令,从机返回应答;主机发送下一条命令,从机当前命令的应答。
RS485串口 通信波特率19200bps;8位数据位,1位停止位,无校验位。
TTL串口 通信波特率 115200;8位数据位,1位停止位,无校验位。
5 通讯数据包格式
| 起始字节 | 地址 | 数据长度 | 命令 | 命令数据 | 异或 | 和校验 | |
|---|---|---|---|---|---|---|---|
| 字段值 | STX | ADDR | LEN | CMD | DATA | XOR | SUM |
| 数据类型 | INT8U | INT8U | INT8U | INT8U | INT8U | INT8U | INT8U |
| 字节数 | 1字节 | 1字节 | 1字节 | 1字节 | LEN-1 | 1字节 | 1字节 |
STX: 单字节,表示数据包开始信息,用0x7F 表示。
ADDR:单字节,表示通信地址。
LEN: 单字节,表示数据包的有效数据长度,即命令和命令数据的总和。
CMD: 单字节,表示数据包的命令。
DATA: 多字节,表示数据包的命令数据,一个数据包中可以没有命令数据。
XOR: 异或校验,校验从地址开始,命令数据的最后一个字节结束。
SUM: 和校验,校验从地址开始,命令数据的最后一个字节结束。
5.1 开始测试指令,命令: 0xB0
上位机发送格式:
| 7Fh | 80h + ADD | 01h | B0h | XOR | SUM |
|---|
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并开始测试。
测试用例:7F 81 01 B0 30 32
设备返回格式:
| 7Fh | 80h + ADD | 02h | B0h | Flag | XOR | SUM |
|---|
说明:无论是按键开始测试还是发送协议开始测试都会返回该协议;
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 B0 00 33 33
5.2 测试复原位置指令,命令: 0xB1
上位机发送格式:
| 7Fh | 80h + ADD | 01h | B1h | XOR | SUM |
|---|
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并开始复原位置。
测试用例:7F 81 01 B1 31 33
返回格式:
| 7Fh | 80h + ADD | 02h | B1h | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 B1 00 32 34
5.3 上报状态指令,命令: 0xB2
设备上报格式:
| 7Fh | 80h + ADD | 15h | B2h | 状态内容 | XOR | SUM |
|---|
状态内容详细说明(20字节):
| 设备型号 | 测试模式 | 是否正常完成测试 | 是否有故障 | 继电器输出 | 峰峰值 | 开始工作频率 | 进入工作频率 | 离开工作频率 | 进入高度 | 离开高度 | 进入速度 | 离开速度 | RFU | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 字节数 | 1字节 | 1字节 | 1字节 | 1字节 | 1字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 | 2字节 |
例:7F 81 18 B2 01 00 00 0F 03 2F 0D EC C9 CC C9 EC C9 18 01 28 01 37 00 30 00 00 00 36 42
说明:该协议为每次测量完成后DG430主动上报,上位机无回复
设备型号:01-----PD132系列;
02-----DLD110系列;
测试模式:0 为灵敏度测试模式;1为波动测试模式
是否正常完成测试:00-----正常;
01----不正常,可能是复原位置或者继电器存在信号无输出;
02----地感死机,有进入高度,到复原位置的距离时地感死机导致继电器还没有断开;
是否故障: 00-----无故障;
BIT0-----为1时表示工作频率不是最低频;
BIT1-----为1时表示灵敏度不是最低灵敏度;
BIT2-----为1时表示灵敏度提升拨码没有在OFF;
BIT3-----为1时表示脉冲输出不是离开脉冲;
继电器输出:表示存在继电器信号和脉冲继电器信号是否有输出;
BIT0-----为1时表示存在继电器信号有输出,接DG430的IN1;
BIT1-----为1时表示脉冲继电器信号有输出,接DG430的IN2;
峰峰值:线圈无车LC震荡的峰峰值,误差±10%,小端模式,低字节在前,
高字节在后;计算公式(单位V):峰峰值=((X*3.3)/4095)*4;
开始工作频率:刚开始测试时,线圈无车LC震荡的工作频率,无误差,低字节在前,高字节在后;计算公式(单位HZ):工作频率=10*X;
进入工作频率:线圈从无车到有车时的工作频率;
离开工作频率:线圈从无车到有车时的工作频率;
进入高度:刚进入线圈有车时的高度,单位mm,小端模式;
离开高度:刚离开线圈无车时的高度,单位mm,小端模式;
进入速度:单位 分米/每秒,小端模式;
离开速度:单位 分米/每秒,小端模式;
RFU:保留字节;
5.4 更改RTC时间和日期,命令: 0xB3 (弃用)
上位机发送格式:
| 7Fh | 80h + ADD | 09h | B3h | 时间(4字节) | 日期(4字节) | XOR | SUM |
|---|
说明:时间和日期按照RTC寄存器格式发送,发送格式为上位机发给DG430,收到后DG430更改自己的RTC时间,小端模式,低字节在前,高字节在后;
例:7F 81 09 B3 00 12 14 00 28 67 21 00 53 13(时间:14:12:00,日期:2021-07-28)
返回格式:
| 7Fh | 80h + ADD | 02h | B3h | 01h | XOR | SUM |
|---|
例:7F 81 02 B3 01 31 37
5.4.1 波动测试上报指令,命令:0xB4 (V2.0.3 新增)
设备主动上报格式:
| 7Fh | 80h+ADD | 11h | B4h | 状态内容(16字节) | XOR | SUM |
|---|---|---|---|---|---|---|
| 1B | 1B | 1B | 1B | 16B | 1B | 1B |
说明:该协议为波动测试过程中 DG430 主动上报,上位机无回复。在以下三种情况触发上报:
- 金属板行驶到波动最近距离时
- 金属板行驶到波动最远距离时
- 波动的过程中车检器的输出状态发生变化时
状态内容详细说明(16字节,除 RemainCount 外均为小端模式):
| 字段 | 字节数 | 说明 |
|---|---|---|
| RemainCount | 1B | 当前剩余波动次数 |
| Relay | 1B | 继电器输出状态(同 0xB2 继电器输出字段):BIT0=存在继电器信号,BIT1=脉冲继电器信号 |
| WorkFreq | 2B | 工作频率,单位 Hz,计算公式:Freq = 10 × X |
| CurrDist | 2B | 当前距离/高度(激光检测值,未减皮距),单位 mm |
| Speed | 2B | 当前速度,单位 dm/s |
| NearDist | 2B | 波动最近距离(皮距 + 最近容差),单位 mm |
| FarDist | 2B | 波动最远距离(离开高度 + 皮距 - 最远容差),单位 mm |
| EnterDist | 2B | 进入高度(已减皮距),单位 mm |
| LeaveDist | 2B | 离开高度(已减皮距),单位 mm |
例:7F 81 13 B4 03 01 2F 0D 00 C8 01 28 64 00 20 03 A0 0F 28 00 3C 00 XX XX
解析: RemainCount=3(还剩3次波动),Relay=01(存在继电器有信号),WorkFreq=3375Hz, CurrDist=200mm,Speed=296dm/s,NearDist=800mm,FarDist=4000mm, EnterDist=40mm,LeaveDist=60mm。
5.5 电机前进指令,命令: 0xBA
上位机发送格式:
| 7Fh | 80h + ADD | 01h | BAh | XOR | SUM |
|---|
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并驱动电机前进。
测试用例:7F 81 01 BA 3A 3C
返回格式:
| 7Fh | 80h + ADD | 02h | BAh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 BA 00 39 3D
5.6 电机后退指令,命令: 0xBB
上位机发送格式:
| 7Fh | 80h + ADD | 01h | BBh | XOR | SUM |
|---|
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并开始复原位置。
测试用例:7F 81 01 BB 3B 3D
返回格式:
| 7Fh | 80h + ADD | 02h | BBh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 BB 00 38 3E
5.7 电机停止指令,命令: 0xBC
上位机发送格式:
| 7Fh | 80h + ADD | 01h | BCh | XOR | SUM |
|---|
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并开始复原位置。
测试用例:7F 81 01 BC 3C 3E
返回格式:
| 7Fh | 80h + ADD | 02h | BCh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 BC 00 3F 3F
5.8 获取设备版本号指令,命令:0x4A
| 7Fh | 80H +ADD | LEN | 4Ah | XOR | SUM |
|---|
获取控制卡的版本号
LEN: 0x01
eg: 7F 81 01 4A CA CC
返回格式::
| 7Fh | 80H +ADD | LEN | 4Ah + 00 + 硬件版本号+软件版本 | XOR | SUM |
|---|
LEN:0x08
硬件版本号:3个字节
软件版本号:3个字节
eg: 7F 81 08 4A 00 03 03 00 03 04 00 C4 E0, 表示硬件版本号3.3.0,固件版本为3.4.0
5.9 配置设备测试参数,命令: 0x4B
上位机发送格式:
| 7Fh | 80h+ADD | 17h | 4Bh | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 2B | 1B | 1B |
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并更新测试参数。
Addr:1Byte, 设备地址、485地址
DevType:1Byte, 设备型号
TestMode:1Byte, 测试模式,0 灵敏度测试模式;1 波动测试模式
ResetDis:复位距离,单位cm
MinusDis:皮距,激光到线圈的距离,测算的实际高度要减去这个皮距,单位cm
SensMin, SensMax:2Byte, 灵敏度最小、最大值(小端模式)
FreMin, FreMax:2Byte, 频率最小、最大值(小端模式)
PeakMin, PeakMax:2Byte, 峰峰值最小、最大值(小端模式)
FarTol:1Byte, 最远容差,波动测试时,离开高度+皮距-最远容差=波动最远距离,单位cm
NearTol:1Byte, 最近容差,皮距+最近容差=波动最近距离,单位cm
StepTol:1Byte, 步进容差,默认0。非0时每次波动后最远容差递加该值,最多(波动次数-1)次,单位cm
BackForth:1Byte, 来回次数,金属板从最远距离→最近距离→最远距离记为1次
NearStay:2Byte, 最近停留时间,到达波动最近距离后停留的时间,单位ms(小端模式)
FarStay:2Byte, 最远停留时间,到达波动最远距离后停留的时间,单位ms(小端模式)
测试用例:7F 81 19 4B 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 F4 01 2B 9F
用例说明:
Addr:0x01, DevType:0x01, TestMode:1(波动测试), ResetDis:48cm, MinusDis:13cm, SensMin:139, SensMax:230, Fre_Min:1910, FreMax:1750, PeakMin:2480, PeakMax:3100, FarTol:3cm, NearTol:2cm, StepTol:0cm, BackForth:5次, NearStay:200ms, FarStay:500ms。
返回格式:
| 7Fh | 80h + ADD | 02h | 4Bh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 4B 00 C8 CE
5.10 查询设备测试参数,命令: 0x4C
上位机发送格式:
| 7Fh | 80h + ADD | 01h | 4Ch | XOR | SUM |
|---|---|---|---|---|---|
| 1B | 1B | 1B | 1B | 1B | 1B |
说明:该指令为上位机发送给DG430。DG430接收到该指令后返回协议并开始复原位置。
测试用例:7F 81 01 4C CC CE
| 7Fh | 80h+ADD | 1Bh | 4Ch | Flag | Addr | DevType | TestMode | ResetDis | MinusDis | SensMin | SensMax | FreMin | FreMax | PeakMin | PeakMax | FarTol | NearTol | StepTol | BackForth | NearStay | FarStay | XOR | SUM | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 1B | 2B | 2B | 2B | 2B | 2B | 2B | 1B | 1B | 1B | 1B | 2B | 2B | 1B | 1B |
Flag:是否故障标志,00=正常,01=故障
Addr:设备地址
DevType:设备型号
TestMode:测试模式(0=灵敏度测试, 1=波动测试)
ResetDis:复位距离,单位cm
MinusDis:皮距,单位cm
SensMin, SensMax:灵敏度最小、最大值(小端模式)
FreMin, FreMax:频率最小、最大值(小端模式)
PeakMin, PeakMax:峰峰值最小、最大值(小端模式)
FarTol:最远容差,单位cm
NearTol:最近容差,单位cm
StepTol:步进容差,单位cm
BackForth:来回次数
NearStay:最近停留时间,单位ms(小端模式)
FarStay:最远停留时间,单位ms(小端模式)
测试用例:7F 81 1B 4C 00 01 01 01 30 0D 00 8B 00 E6 07 76 06 D6 09 B0 0C 1C 03 02 00 05 C8 00 F4 01 8A 5E
5.11 出厂初始化指令,命令:0x4D
| 7Fh | 80H +ADD | LEN | 4Dh | XOR | SUM |
|---|
上位机发送该指令后,DG430进行出厂初始化操作
LEN: 0x01
eg: 7F 81 01 4D CD CF
| 7Fh | 80h + ADD | 02h | 4Dh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 4D 00 CE D0
5.12 设备复位指令,命令:0x4E
| 7Fh | 80H +ADD | LEN | 4Eh | XOR | SUM |
|---|
LEN: 0x01 eg: 7F 81 01 4E CE D0
返回格式:
| 7Fh | 80h + ADD | 02h | 4Eh | Flag | XOR | SUM |
|---|
Flag:是否故障标志
00----正常
01----故障
测试用例:7F 81 02 4E 00 CD D1
6 波动测试模式说明
TestMode=1 为波动测试模式,用于模拟复杂的过车情况。
6.1 测试流程
电机前端有一个金属板,线圈在激光传感器和金属板之间,激光到线圈的距离为 MinusDis 皮距。线圈接到车检器上,车检器的输出信号接到测试工装的输入口。
- 初始阶段 — 开始测试时,金属板从设定的复位距离开始向线圈侧前进。
- 进入检测 — 金属板靠近线圈过程中,车检器输出信号(继电器吸合),此时测试工装记录激光检测的距离为进入距离/进入高度(需减去皮距)。电机立刻停止,然后反向运动(远离线圈)。
- 离开检测 — 车检器输出信号消失(继电器释放),此时测试工装记录激光检测的距离为离开距离/离开高度(需减去皮距)。测试工装上报测试数据(0xB2),数码管显示进入高度和离开高度。
- 计算波动范围:
- 波动最远距离 = 离开高度 + 皮距 − 最远容差
- 波动最近距离 = 皮距 + 最近容差
- 波动测试 — 金属板从波动最远距离开始,前进到波动最近距离,电机停止 → 上报 0xB4 → 等待最近停留时间 → 反向运动到波动最远距离 → 电机停止 → 上报 0xB4 → 等待最远停留时间。记为一次来回。
- 步进容差 — 若步进容差 ≠ 0,每次波动后最远容差递加步进容差值,最多递加 (波动次数 − 1) 次。
- 完成阶段 — 最后一次波动结束后,电机继续远离线圈运动,检测到车检器输出信号释放后再次上报 0xB2,电机回到复位距离位置,等待下一次开始测试指令。
6.2 关键参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 最远容差 (FarTol) | 1B, cm | 离开高度 + 皮距 − 该值 = 波动最远距离 |
| 最近容差 (NearTol) | 1B, cm | 皮距 + 该值 = 波动最近距离 |
| 步进容差 (StepTol) | 1B, cm | 默认0。非0时每次波动后最远容差递加 |
| 来回次数 (BackForth) | 1B | 波动来回次数 |
| 最近停留时间 (NearStay) | 2B, ms | 到达最近距离时停留的时间 |
| 最远停留时间 (FarStay) | 2B, ms | 到达最远距离时停留的时间 |
6.3 0xB4 上报时机
0xB4 在以下三种情况下触发:
- 金属板行驶到波动最近距离时上报
- 金属板行驶到波动最远距离时上报
- 波动的过程中车检器输出状态有变化时上报
更新记录
| 版本号 | 更新日期 | 状态 | 更新内容 | 更新人 |
|---|---|---|---|---|
| V1.0.6 | 2021-07-30 | 发布测试工装V1的协议。 | 何燕山 | |
| V2.0.0 | 2026-05-21 | 增加配置指令:电机前进、后退、停止指令,获取版本号、读写测试指令 | 王飞强 | |
| V2.0.1 | 2026-05-22 | 增加出厂初始化指令、设备复位指令 | 王飞强 | |
| V2.0.2 | 2026-05-25 | 增加测试模式,增加进入速度和离开速度 | 王飞强 | |
| V2.0.3 | 2026-05-31 | TestMode=1改为波动测试模式;0x4B/0x4C新增6个波动参数;新增0xB4波动测试上报指令 | 王飞强 | |