电子开关类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设备 可控开关状态设置 发送方 接收方 C A N 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.  反馈周期 设置 /  反馈周期 信息  反馈周期设置 发送方 接收方 C A N 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 /