SAE J1939 采集
1. 创建节点
Section titled “1. 创建节点”(1) 进入 CommBridge 页面的【智慧孪生】,在左侧点击切换至【设备智联】。

(2) 依次拖拽 SAE J1939、数据处理和 MQTT 上传插件到插件工作区,分别生成三个节点。

(3) 依次连接三个节点,连接顺序:SAE J1939 → 数据处理 → MQTT 上传。

2. 创建方案
Section titled “2. 创建方案”(1) 双击 SAE J1939,点击【添加方案】按钮。

(2) 填写连接配置,导入 dbc 文件,点击【下一步】。

(3) 查看分组和点位信息。

(4) 点击【完成】,成功添加采集方案。

(5) 打开方案的开关,点击【保存】。

3. 查看结果
Section titled “3. 查看结果”(1) 点击【设备智联】的【部署】按钮,部署成功。

(2) 切换至【智慧孪生】,鼠标移动至 SAE J1939 节点,弹出节点信息列表。

(3) 点击方案,查看该方案下各分组的点位实时数据和历史数据。

4. 配置描述说明
Section titled “4. 配置描述说明”| 参数 | 前提条件 | 描述 | 格式 | 举例 | 备注 |
|---|---|---|---|---|---|
| 方案名称 | 用户自定义该方案的名称 | 非空 | 采集 can | ||
| CAN 接口 | 根据具体设备上的实际 CAN 口决定 | 下拉框选择 | vcan0 | ||
| DBC | 详见下文 | DBC 文件 | testType.dbc | ||
| 设置名称方式 | Hex Number | ||||
| 首选地址 | 下拉框选择 | 128 | |||
| 返回的数据类型 | 采集的实时数据的类型 | 下拉框选择 | Phy | ||
| Socketcand | 是否开启socketcand,Socketcand可通过网络接口访问计算机上的 CAN 接口。 | Yes、No | No | ||
| Socketcand 端口 | 用于远程调试数据 | 数字 | |||
| 名称 | 首选地址为Hex Number | 名称(Name)是一个64位(8字节)长的标签,为每个ECU赋予唯一的身份。 | 0x7758 | ||
| 自配置地址位 | 首选地址为Properties | 指明此ECU是否允許自動更换源地址,1為允許,0為固定 | 数字,0、1 | 0 | |
| 行业组 | 首选地址为Properties | 表示车辆所属行业类别 | 数字,范围:[0,7] | 0 | |
| 设备类实例 | 首选地址为Properties | 区分同一设备类下的实例号 | 数字,范围:[0,15] | 0 | |
| 设备类 | 首选地址为Properties | SAE 定义的7位“装置/系統”分類, | 数字,范围:[0,127] | 0 | |
| 功能码 | 首选地址为Properties | 定义了ECU在“车辆系统”内所执行的具体功能。 | 数字,范围:[0,255] | 0 | |
| 功能实例 | 首选地址为Properties | 同一功能下的实例号, 用于区分执行相同功能的多个ECU。 | 数字,范围:[0,31] | 0 | |
| ECU 实例 | 首选地址为Properties | 同一物理ECU型号的实例区分 | 数字,范围:[0,7] | 0 | |
| 制造商代码 | 首选地址为Properties | 由 SAE 分配的11位制造商标识 | 数字,范围:[0,2047] | 0 | |
| 身份编号 | 首选地址为Properties | 厂商自定义的21位序列号 | 数字,范围:[0,2097151] | 0 |
注意:
- DBC:是原始数据结构来源,同时应该注意,后面对分组(消息)和数据(信号)的所有修改都是进行合并操作到这个 dbc 结构中。
- 返回的数据类型:Raw 返回原始值;Phy 返回物理值;PhyWIthUnit 返回带单位的物理值。
- 通信协议使用 TCP/IP 连接和特定协议来传输 CAN 帧和控制命令。目前只支持经典 CAN(Classical CAN),不支持 CAN FD。
- 首选地址:Hex Number、Properties
- 在J1939网络中,不允许有两个节点使用相同的地址。为了防止地址冲突,J1939使用了一个64位的“名称”和一个8位的“地址”来共同标识一个节点。名称结构: 1. 任意地址位,长度1位;0: 表示该节点的地址是由网络管理员静态配置的。1: 表示该节点的地址是动态随机分配的。 2. 行业组,长度3位;常用值: 000(通用),001(高速公路车辆-卡车、巴士等),010(农业),011(建筑)等 3. 车辆系统实例,长度4位 4. 车辆系统,长度7位 5. 保留位 6. 功能,长度8位 7. 功能实例,长度5位 8. ECU 实例,长度3位 9. 制造商代码,长度11位 10. 身份编号,长度21位
| 参数 | 描述 | 格式 | 举例 |
|---|---|---|---|
| 分组名称 | 用户自定义该分组的名称 | 非空 | t_msg_1_unsigned |
| 消息名 | 消息的名称,用于描述该消息的功能或用途。 | 非空,只能包含字母数字和下划线,且不能以数字开头 | t_msg_1_unsigned |
| 优先级 | 3 | ||
| 参数组编号 | 0x0 | ||
| 数据长度代码 | 数据长度代码(DLC):经典 CAN 的 DLC 0 |
数据,范围:[0,8]或[0,15] | 8 |
| 发送节点 | 消息的发送方(Transmitter),即发送该消息的设备(Node) ; | 下拉框选择,默认Vector__XXX |
Vector__XXX |
| 消息描述 | 可选字段,用于解释消息的作用或功能,便于理解。 | 字符串 |
注意:
- 分组就是 dbc 文件的消息(Message)。
- 若该报文(分组)没有指定发送节点,则该值需设置为
Vector__XXX。
| 参数 | 前提 | 描述 | 格式 | 举例 |
|---|---|---|---|---|
| 信号名称 | 用户自定义该信号的名称,用于描述数据的功能 | |||
| 可疑参数编号 | ||||
| 信号模式 | 信号的传输模式 | 下拉框选择 | ||
| 起始位 | 信号在消息中的起始位置(Start Bit),从 0 开始计数,决定信号在 CAN 帧中的具体存储位置。 | 单位 bit | 0 | |
| 值类型 | 信号的数据类型 | 下拉框选择 | Intel | |
| 字节序 | 信号在消息中的存储顺序 。 | 下拉框选择 | ||
| 缩放因子 | 数据的物理值计算因子,用于将原始值转换为实际物理值。 | 浮点数 | ||
| 偏移 | 数据的物理值计算偏移量(offset)。 | 浮点数 | ||
| 最小值 | 信号物理值的最小值,用于限制信号范围。 | 浮点数 | ||
| 最大值 | 信号物理值的最大值,用于限制信号范围。 | 浮点数 | ||
| 单位 | 信号的物理单位 | 字符串 | ||
| 接收节点 | 接收该信号的节点名称(receiver),一个或多个,表示信号的目标设备。 | 下拉框选择,默认Vector__XXX |
||
| 描述 | 信号的物理单位,例如:km/h、°C、m/s。 | 字符串 | ||
| 计算 | 用户根据数据别名自定义公式。 | |||
| 长度 | 值类型为Unsigned/Signed | 信号所占用的位数(位长度) | 单位 bit,[1,64] | |
| 多路复用值 | 信号模式不为 Signal | 设置多路复用信号为什么值时该信号生效 |
注意:
- 信号模式: Signal、Multiplexor、Multiplexed 。
- 值类型:Unsigned(无符号整数)、Signed(有符号整数)、Float(单精度浮点数)、Double(双精度浮点数) 。
- 字节序:Intel 字节序(小端)、 Motorola 字节序(大端)。
- 起始位:信号最低有效位(LSB,Least Significant bit)所在位置。
- 结束位:信号最高有效位(MSB,Most Significant bit)所在位置。
- 分辨率&偏移量:用于转换物理值和网络值,网络值=(物理值-偏移量) ÷ 分辨率。
- 若信号没有指定接收节点,则必须设置为
Vector__XXX。
5. DBC 文件相关参数说明
Section titled “5. DBC 文件相关参数说明”DBC 文件(CAN Database File)是用于描述 CAN(Controller Area Network)总线中消息和信号定义的标准文件格式。
(1) Node(节点)
节点是网络中设备的逻辑表示。每个节点可能是消息的发送方或接收方。
1). DBC 文件格式:
BU_: Node1 Node2 Node3BU_:定义节点列表。- 后续列出所有节点名称,用空格分隔。
(2) Message(消息)
消息是 CAN 网络中传输的最小数据单位,包含多个信号,具有固定的 ID 和长度。
1). DBC 文件格式:
BO_ <消息 ID> <消息名>: <数据长度代码> <发送节点>2). 示例:
BO_ 1001 SpeedMessage: 8 Node1BO_:表示消息。1001:消息 ID。SpeedMessage:消息名称。8:数据长度代码(DLC)。Node1:发送节点。
(3) Signal(信号)
信号是消息中的数据单元,表示具体的物理量,例如速度、转速、温度等。
1). DBC 文件格式:
SG_ <信号名> : <起始位>|<长度>@<字节序><值类型符号> (<缩放因子>,<偏移>) [<最小值>|<最大值>] "<单位>" <接收节点>2). 示例:
SG_ Speed : 0|16@1+ (0.1,0) [0|200] "km/h" Node2BO_:表示消息。
部分参数解释
Section titled “部分参数解释”- d
| 63 (MSB) | 62-60 | 59-56 | 55-49 | 48 | 47-40 | 39-35 | 34-32 | 31-21 | 20-0 (LSB) |
|---|---|---|---|---|---|---|---|---|---|
| 任意地址 | 行业组 | 车辆系统实例 | 车辆系统 | 保留位 | 功能 | 功能实例 | ECU实例 | 制造商代码 | 身份编号 |
| 1 bit | 3 bits | 4 bits | 7 bits | 1 bit | 8 bits | 5 bits | 3 bits | 11 bits | 21 bits |
- 信号模式
| 信号模式 | 含义 |
|---|---|
| Signal | 普通信号,直接携带数据,无特殊标记或关系。 |
| Multiplexor | 复用器信号,作为复用标志,用于决定消息中携带的其他信号是哪组。例如,一个消息中可以包含多种数据格式,复用器用来选择具体的数据格式。 |
| Multiplexed | 被复用信号,与复用器信号绑定。复用器信号的值决定是否传输该信号。例如,复用器值为 1 时,传输某一组复用信号。 |