跳转到内容
返回官网

CAN 采集

(1) 进入 CommBridge 页面的【智慧孪生】,在左侧点击切换至【设备智联】。

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

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

(1) 双击 SocketCAN,点击【添加方案】按钮。

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

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

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

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

(1) 点击【设备智联】的【部署】按钮,部署成功。

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

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

参数 描述 格式 举例 备注
方案名称 用户自定义该方案的名称 非空 采集 can
Can 接口 根据具体设备上的实际 CAN 口决定 下拉框选择 vcan0
DBC 详见下文 DBC 文件 testType.dbc
返回的数据类型 采集的实时数据的类型 下拉框选择 Phy
节流时间 跳过节流时间内的重复帧直到超过节流时间或者数据变化,设置为0表示不进行节流 非空,数字,范围:[0,2147483647] Phy
Socketcand 是否开启 socketcand,Socketcand 可通过网络接口访问计算机上的 CAN 接口。 Yes、No No
Socketcand 端口 用于远程调试数据 数字

注意:

  1. DBC:是原始数据结构来源,同时应该注意,后面对分组(消息)和数据(信号)的所有修改都是进行合并操作到这个 dbc 结构中。
  2. 返回的数据类型:Raw 返回原始值;Phy 返回物理值;PhyWIthUnit 返回带单位的物理值。
  3. 通信协议使用 TCP/IP 连接和特定协议来传输 CAN 帧和控制命令。目前只支持经典 CAN(Classical CAN),不支持 CAN FD。
参数 描述 格式 举例
分组名称 用户自定义该分组的名称 非空 t_msg_1_unsigned
消息名 消息的名称,用于描述该消息的功能或用途。 非空,只能包含字母数字和下划线,且不能以数字开头 t_msg_1_unsigned
消息 ID 消息的唯一标识符,用于在 CAN 总线中区分消息 非空,数字或者 16 进制数,范围:[0x0-0xffffffff] 0
数据长度代码 数据长度代码(DLC):经典 CAN 的 DLC 08 对应 08 字节;CAN FD 的 DLC 08 同样对应 08 字节,DLC 9~15 依次对应 12、16、20、24、32、48、64 字节。协议长度定义不代表当前插件已支持 CAN FD。 数据,范围:[0,8]或[0,15] 8
发送节点 消息的发送方(Transmitter),即发送该消息的设备(Node) ; 下拉框选择,默认Vector__XXX Vector__XXX
消息描述 可选字段,用于解释消息的作用或功能,便于理解。 字符串

注意:

  1. 分组就是 dbc 文件的消息(Message)。
  2. 消息 ID 通常为一个 11 位(标准帧)或 29 位(扩展帧)的数字。
  3. 若该报文(分组)没有指定发送节点,则该值需设置为Vector__XXX 。
参数 前提 描述 格式 举例
信号名称 用户自定义该信号的名称,用于描述数据的功能
信号模式 信号的传输模式 下拉框选择
起始位 信号在消息中的起始位置(Start Bit),从 0 开始计数,决定信号在 CAN 帧中的具体存储位置。 单位 bit 0
值类型 信号的数据类型 下拉框选择 Intel
字节序 信号在消息中的存储顺序 。 下拉框选择
缩放因子 数据的物理值计算因子,用于将原始值转换为实际物理值。 浮点数
偏移 数据的物理值计算偏移量(offset)。 浮点数
最小值 信号物理值的最小值,用于限制信号范围。 浮点数
最大值 信号物理值的最大值,用于限制信号范围。 浮点数
单位 信号的物理单位 字符串
接收节点 接收该信号的节点名称(receiver),一个或多个,表示信号的目标设备。 下拉框选择,默认Vector__XXX
描述 信号的物理单位,例如:km/h、°C、m/s。 字符串
计算 用户根据数据别名自定义公式。
长度 值类型为Unsigned/Signed 信号所占用的位数(位长度) 单位 bit,[1,64]
多路复用值 信号模式不为 Signal 设置多路复用信号为什么值时该信号生效

注意:

  1. 信号模式: Signal、Multiplexor、Multiplexed 。
  2. 值类型:Unsigned(无符号整数)、Signed(有符号整数)、Float(单精度浮点数)、Double(双精度浮点数) 。
  3. 字节序:Intel 字节序(小端)、 Motorola 字节序(大端)。
  4. 起始位:信号最低有效位(LSB,Least Significant bit)所在位置。
  5. 结束位:信号最高有效位(MSB,Most Significant bit)所在位置。
  6. 分辨率&偏移量:用于转换物理值和网络值,网络值=(物理值-偏移量) ÷ 分辨率。
  7. 若信号没有指定接收节点,则必须设置为Vector__XXX。

DBC 文件(CAN Database File)是用于描述 CAN(Controller Area Network)总线中消息和信号定义的标准文件格式。

(1) Node(节点)

节点是网络中设备的逻辑表示。每个节点可能是消息的发送方或接收方。

1). DBC 文件格式:

BU_: Node1 Node2 Node3
  • BU_:定义节点列表。
  • 后续列出所有节点名称,用空格分隔。

(2) Message(消息)

消息是 CAN 网络中传输的最小数据单位,包含多个信号,具有固定的 ID 和长度。

1). DBC 文件格式:

BO_ <消息 ID> <消息名>: <数据长度代码> <发送节点>

2). 示例:

BO_ 1001 SpeedMessage: 8 Node1
  • BO_:表示消息。
  • 1001:消息 ID。
  • SpeedMessage:消息名称。
  • 8:数据长度代码(DLC)。
  • Node1:发送节点。

(3) Signal(信号)

信号是消息中的数据单元,表示具体的物理量,例如速度、转速、温度等。

1). DBC 文件格式:

SG_ <信号名> : <起始位>|<长度>@<字节序><值类型符号> (<缩放因子>,<偏移>) [<最小值>|<最大值>] "<单位>" <接收节点>

2). 示例:

SG_ Speed : 0|16@1+ (0.1,0) [0|200] "km/h" Node2
  • BO_:表示消息。

(1) 信号模式

信号模式 含义
Signal 普通信号,直接携带数据,无特殊标记或关系。
Multiplexor 复用器信号,作为复用标志,用于决定消息中携带的其他信号是哪组。例如,一个消息中可以包含多种数据格式,复用器用来选择具体的数据格式。
Multiplexed 被复用信号,与复用器信号绑定。复用器信号的值决定是否传输该信号。例如,复用器值为 1 时,传输某一组复用信号。