前言
已知通过 zcanpro 采集到某设备的数据,数据如下。

而且已知 D7 00 00 00 显示数字大小, C3 00 00 00 固定显示。
接下来需要解析 D7 00 00 00 C3 00 00 00 ,并可以实时显示数字曲线图。
编辑 DBC 文件
软件使用 CANdb++Editor ,通过该软件编辑生成 DBC 文件。
file -> create database创建新的 DBC 文件。

- 选择高亮的模版。

- 自定义文件名和路径。

得到下图,该图为overall view视图。

- 左键选中
Signal,右键点击new。在对话框中进行下图设置。

| 项目 | 说明 |
|---|---|
| Name | 这个 signal 名称 |
| Length | D7 00 00 00 C3 00 00 00 的最左是最低的1个字节,最右是最高的1个字节,有效数据段是低4个字节 D7 00 00 00 ,换算为 bit 就是32 |
| Byte Order | 字节序设置。Intel字节序为小端字节序,LSB在低地址,MSB在高地址。上面提到的图片中,D7 00 00 00 C3 00 00 00 就是Intel字节序。所以, D7 的最低位在8位中的最左,最高位在8位的最右。D7 00 00 00 C3 00 00 00 的最低字节在8字节中最左,最高字节在8字节最右。 |
| Unit | 这个 signal 对应的物理量单位 |
| Value Type | Signed 是符号型数据,包括正负数 |
| Factor | 系数 |
| Offest | 偏置。物理量 = 数据帧原码 * 系数 + 偏置 |
| Minimum | 最小值 |
| Maximum | 最大值。当 Factor 和 Offest 及其上面的配置完成后,点击 Maximum 下方的 Calculate minimum and Maximum,可以自动计算并填写 Minimum 和 Maximum |
| Value Table | 数据枚举,取值范围被特定定义 |
进行上述 definition 设置后,点击对话框的 comment 选项,可以在文本框中自定义注释。

overall view视图中,左键选中Message,右键点击new,得到下图。

灰色为不可编辑,其他设置为:
| 项目 | 说明 |
|---|---|
| Name | 该 Message 的名称 |
| Type | can报文类型 |
| ID | 报文ID号 |
| DLC | 有效数据长度,单位字节。message 会包含 signal ,signal 是 32 位,这里就是 4 字节 |
-
对话框中设置好
Definition选项卡后,可以在Comment选项卡中添加注释,我这里填写为设备力值数据帧_0x1C6 -
对话框中选择
Signals选项卡,点击Add为当前 message 添加 signal 。
-
完成以上设置后,可以得到下图。到此完成编辑 DBC 文件,我这里命名为
test.dbc。
Zcanpro 设置
- 打开软件并开始采集数据。
- 点击
新建视图 -> 新建DBC视图,在新的视图框中,点击加载DBC,选择编辑好的test.dbc,得到下图。

- 软件
Zcanpro点击高级功能 -> 实时曲线分析,在新对话框中,点击文件 -> 新建工程,并且保存,这里自定义文件名为test.zpo,路径自定义。界面右侧点击加载DBC,选择编辑好的test.dbc。得到下图。

- 在下图的图标控件中,选中从左往右数第四个图标,拖拽到下面空白区域,得到曲线图控件。将这个控件看做word文档中的图片,点击边框拖动,可以调整界面显示范围大小。


之后选中右侧协议面板中的DeviceData,拖拽到曲线图控件左侧的消息/信号列表中,得到下图。

- 点击下图三角,即可开始采集数据。

- 设置多数据在同一时间轴上显示。

- 允许同时放缩横纵坐标轴。

- 设置y轴自适应。

- 设置曲线图控件显示实时数值。另外,信号时间差是CAN从机设备的数据上传周期,一般在固定值附近波动。

- 界面右侧面板也可以进行以上设置,也有其他设置可以自行探索。注意修改刷新周期为20ms ,默认为100ms。

在本界面中,鼠标停留在纵轴上,滑动滚轮,可以调整纵轴步进值。横轴同理。
Zcanpro 曲线图缺点
- 无法像
Modbus Poll那样,一边采集数据曲线,一边用鼠标自由移动曲线。 - 功能
X-差值测量在开启采集数据后才可以用鼠标自由拖动左右定位线。