跳转到主要内容

电子开关类CAN协议标准

为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为电子开关使用的专用CAN协议。

请先确保阅读了CAN协议构架说明再开始以下内容

请注意使用设备CANID替换表中XX部分

电子开关类设备的大类ID为 0A


电子开关指令总表

此表展示了专用指令的所有指令内容,方便快速查询和定位

指令集

 

反馈集

重要性

说明

设备对象

命令内容

大类

( 00~1F)

型号

(00~FF)

编号

(00~FF)

功能

(00~FF)

 

大类

(00~1F)

型号

(00~FF)

编号

(00~FF)

功能

(00~FF)

反馈内容

周期性

电子开关

可控开关状态设置

0A

xx

xx

11

 

0A

xx

xx

B1

可控开关状态信息

周期反馈

选备

开关性质只能是其中一种

/

/

/

/

/


0A

xx

xx

B2

按键状态信息

周期反馈

选备

/

/

/

/

/


0A

xx

xx

B3

AD状态信息

周期反馈

选备

反馈周期设置

0A

xx

xx

14

 

0A

xx

xx

B4

反馈周期信息

即时反馈

选备



1. 可控开关状态设置 / 可控开关状态信息 

用于可控的IO设备

可控开关状态设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 0A XX XX 11

1

/

数据位

功能

数据类型

说明

byte[0]

设置开关

unsigned int8

0x00: 关闭 / 0x01: 开启

byte[1~7]

/

/

/

可控开关状态信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 0A XX XX B1

7

默认1000/触发模式

数据位

功能

数据类型

说明

byte[0]

开关状态

unsigned int8

0x00: 关闭 / 0x01: 开启

byte[1~7]

/

/

/

可控开关指通过单一变量控制启停的设备,包括灯光、门锁、气泵、电磁阀等

保持每次操作间隔超过 500ms,先读取状态再操作,防止过频繁烧毁部件

举例: 型号0x02 编号0x03 的开关开启, 发送CANID:0x 0A 02 03 11 数据:01。 

发送实例

传输目标

 

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

0x0A 02 03 11

数据帧

扩展帧

1

01

上位机

0x0A 02 03 B1

数据帧

扩展帧

1

01


2. 按键状态信息

用于按键单输入设备的控制

按键状态信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 01 XX XX B2

8

默认100/触发模式

数据位

功能

数据类型

说明

byte[0]

按键1

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[1]

按键2

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[2]

按键3

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[3]

按键4

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[4]

按键5

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[5]

按键6

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[6]

按键7

unsigned int8

0x00: 未触发 / 0x01: 触发

byte[7]

按键8

unsigned int8

0x00: 未触发 / 0x01: 触发

使用触发模式要注意按键抖动问题

举例: 型号0x02 编号0x03 的按键1按下。 

发送实例

传输目标

 

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

/

/

/

/

/

上位机

0x0A 02 03 B2

数据帧

扩展帧

8

01 00 00 00 00 00 00 00


3. AD状态信息

用于AD输入设备的控制

AD状态信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 01 XX XX B3

8

默认100

数据位

功能

数据类型

说明

byte[0]

AD1低8位

signed int16


byte[1]

AD1高8位

byte[2]

AD2低8位

signed int16


byte[3]

AD2高8位

byte[4]

AD3低8位

signed int16


byte[5]

AD3高8位

byte[6]

AD4低8位

signed int16


byte[7]

AD4高8位

举例: 型号0x02 编号0x03 的AD1 =  80%。 

发送实例

传输目标

 

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

/

/

/

/

/

上位机

0x0A 02 03 B3

数据帧

扩展帧

8

50 00 00 00 00 00 00 00


4. 反馈周期设置 / 反馈周期信息 


反馈周期设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 0A XX XX 14

4

/

数据位

功能

数据类型

说明

byte[0]

设置周期

unsigned int32

0: 触发模式 / 其他数值单位ms

byte[1]

byte[2]

byte[3]

byte[4~7]

/

/

/

反馈周期信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 0A XX XX B4

0

/

数据位

功能

数据类型

说明

byte[0~7]

/

/

/

当反馈周期设置为0时进入触发模式,该模式下只有开关状态变化才会反馈

举例: 型号0x02 编号0x03 的设置反馈周期100ms, 发送CANID:0x 0A 02 03 14 数据:64 00 00 00 

发送实例

传输目标

 

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

0x0A 02 03 14

数据帧

扩展帧

4

64 00 00 00

上位机

0x0A 02 03 B4

数据帧

扩展帧

0

/