cmvr-es/protos/cmvr/msgs/canopen.proto

158 lines
3.9 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

syntax = "proto3";
package cmvr.msgs;
message SdoFrame {
uint32 node_id = 1; // 节点ID
CommandSpecifier cs = 2; // SDO命令字
uint32 index = 3; // 对象字典索引
uint32 sub_index = 4; // 子索引
uint32 data = 5; // 数据区
}
enum PdoBaseId{
PDO_BASE_ID_UNSPECIFIED = 0;
RPDO1_BASE_ID_200 = 0x200;
RPDO2_BASE_ID_300 = 0x300;
RPDO3_BASE_ID_400 = 0x400;
RPDO4_BASE_ID_500 = 0x500;
TPDO1_BASE_ID_180 = 0x180;
TPDO2_BASE_ID_280 = 0x280;
TPDO3_BASE_ID_380 = 0x380;
TPDO4_BASE_ID_480 = 0x480;
}
// PDO 传输类型
enum TransmissionType {
// 同步传输
SYNC_EVENT_DRIVEN = 0x00; // 非循环同步
SYNC_CYCLIC = 0x01; // 循环同步
// 远程请求触发
REMOTE_SYNC = 0xFC; // 远程同步
REMOTE_ASYNC = 0xFD; // 远程异步
// 异步传输
ASYNC_MANUFACTURER_SPECIFIC = 0xFE; // 异步,制造商特定事件
ASYNC_DEVICE_SPECIFIC = 0xFF; // 异步,设备子协议特定事件
}
enum CommandSpecifier {
CS_NO = 0; // 默认无效
CS_WRITE_ONE_BYTE = 0x2F; // 写 1 字节
CS_WRITE_TWO_BYTES = 0x2B; // 写 2 字节
CS_WRITE_THREE_BYTES = 0x27; // 写 3 字节
CS_WRITE_FOUR_BYTES = 0x23; // 写 4 字节
CS_WRITE_SUCCESS_RESPONSE = 0x60; // 写成功响应
CS_READ_REQUEST = 0x40; // 发起读取请求
CS_READ_RESPONSE_ONE_BYTE = 0x4F; // 响应 1 字节
CS_READ_RESPONSE_TWO_BYTES = 0x4B;// 响应 2 字节
CS_READ_RESPONSE_THREE_BYTES = 0x47;
CS_READ_RESPONSE_FOUR_BYTES = 0x43;
CS_EXCEPTION_RESPONSE = 0x80; // 异常响应
}
enum NmtState {
// 0x00 - 正在初始化Initializing
NMT_INITIALIZING = 0x00;
// 0x01 - 未连接 / 应用复位Reset Application
NMT_RESET_APPLICATION = 0x01;
// 0x02 - 正在连接Connecting
NMT_CONNECTING = 0x02;
// 0x03 - 准备Preparing
NMT_PREPARING = 0x03;
// 0x04 - 停止状态Stopped开启 SDO关闭 PDO
NMT_STOPPED = 0x04;
// 0x05 - 运行状态Operational开启 SDO、PDO、NMT
NMT_OPERATIONAL = 0x05;
// 0x7F - 预运行状态Pre-Operational开启 SDO关闭 PDO
NMT_PRE_OPERATIONAL = 0x7F;
}
enum NmtCommand {
// 未指定命令
NMT_COMMAND_UNSPECIFIED = 0x00;
// 0x01 - 启动远程节点Start Remote Node
NMT_START_REMOTE_NODE = 0x01;
// 0x02 - 停止远程节点Stop Remote Node
NMT_STOP_REMOTE_NODE = 0x02;
// 0x80 - 进入预操作状态Enter Pre-Operational
NMT_ENTER_PRE_OPERATIONAL = 0x80;
// 0x81 - 复位节点Reset Node
NMT_RESET_NODE = 0x81;
// 0x82 - 复位通信Reset Communication
NMT_RESET_COMMUNICATION = 0x82;
}
// CANopen communication object dictionary indexes.
// CiA402 drive-profile objects are defined in cia402.proto.
enum CanopenObjectIndex {
CANOPEN_OBJECT_INDEX_ZERO = 0;
CANOPEN_PRODUCER_HEARTBEAT_TIME_1017 = 0x1017;
// PDO 通信参数对象Communication Object
CANOPEN_RPDO1_COMM_1400 = 0x1400;
CANOPEN_RPDO2_COMM_1401 = 0x1401;
CANOPEN_RPDO3_COMM_1402 = 0x1402;
CANOPEN_RPDO4_COMM_1403 = 0x1403;
CANOPEN_TPDO1_COMM_1800 = 0x1800;
CANOPEN_TPDO2_COMM_1801 = 0x1801;
CANOPEN_TPDO3_COMM_1802 = 0x1802;
CANOPEN_TPDO4_COMM_1803 = 0x1803;
// PDO 映射对象Mapping Object
CANOPEN_RPDO1_MAP_1600 = 0x1600;
CANOPEN_RPDO2_MAP_1601 = 0x1601;
CANOPEN_RPDO3_MAP_1602 = 0x1602;
CANOPEN_RPDO4_MAP_1603 = 0x1603;
CANOPEN_TPDO1_MAP_1A00 = 0x1A00;
CANOPEN_TPDO2_MAP_1A01 = 0x1A01;
CANOPEN_TPDO3_MAP_1A02 = 0x1A02;
CANOPEN_TPDO4_MAP_1A03 = 0x1A03;
// Ti5 vendor-specific objects used through CANopen SDO.
CANOPEN_USER_SAVE_PARA_2000 = 0x2000;
CANOPEN_POSITION_OFFSET_2008 = 0x2008;
}
// 子索引
enum ObSubIndex {
SUB_INDEX_0 = 0;
SUB_INDEX_1 = 1;
SUB_INDEX_2 = 2;
SUB_INDEX_3 = 3;
SUB_INDEX_4 = 4;
SUB_INDEX_5 = 5;
SUB_INDEX_6 = 6;
SUB_INDEX_7 = 7;
}