速度/定位模式控制报文格式-适用PMC007产品CAN总线(DS301)

CANopen是标准协议,可以使用CAN调试工具发送报文下去来控制电机

 

一、发送读取SDO报文格式如下:Upload SDO message format as follows

600+Node ID

CMD

Index

Sub index

00

00

00

00

读取SDO时,CMD统一为0x40。

举例:查询5号站点的电机位置,对象为0x600C,发送如下

605 40 0C 60 00 00 00 00 00 // 600C means read position

如果读取成功,反馈回以下格式数据

If read success, the format of feedback data as follow

580+Node ID

CMD

Index

Sub index

data

data

data

data

       

DATA

585 43 0C 60 00 C8 00 00 00// 读到当前位置为200

返回数据中的CMD数据则不同,会根据查询索引的长度有所变化。

0x4F: 一个字节长度   //  1 byte data length

0x4B: 两个字节长度  //   2 byte data length

0x47: 三个字节长度  //   3 byte data length

0x43: 四个字节长度  //   4 byte data length

每个索引的具体长度详见相关说明手册。

The length of index and sub index can be found in relevant Technical Manual.

如果读取失败,则返回读取失败命令

580+Node ID

80

Index

Sub index

SDO abort code error

  二、发送写SDO报文格式如下:Download SDO message format as follows

600+Node ID

CMD

Index

Sub index

00

00

00

00

       

DATA

当发送写SDO报文时,CMD的数值会根据目标索引的长度有所变化。

0x2F: 一个字节长度   //  1 byte data length

0x2B: 两个字节长度  //   2 byte data length

0x27: 三个字节长度  //   3 byte data length

0x23: 四个字节长度  //   4 byte data length

 每个索引的具体长度详见相关说明手册。

举例发送速度为200的指令:

605 23 03 60 00 C8 00 00 00   // 6003=200   (200脉冲/秒)

如果写入成功,则反馈如下格式报文

580+Node ID

60

Index

Sub index

00

00

00

00

       

DATA

若写入失败,则返回如下格式报文

580+Node ID

80

Index

Sub index

SDO abort code error


以PMC007举例发送相关参数,进入速度模式运行,如下:

605 2F 05 60 00 01 00 00 00   //0x6005=1,6005是工作模式寄存器地址,数据类型长度U8

605 2F 08 60 00 07 00 00 00   //6008=7 | 加速度 数据类型长度U8

605 2F 09 60 00 07 00 00 00   //6009=7 | 减速度 数据类型长度U8

605 23 03 60 00 10 27 00 00   //6003=0x2710(10000)  数据类型长度S32

 

 以PMC007举例发送相关参数,进入相对定位位置模式运行,如下:

605 2F 05 60 00 01 00 00 00   //0x6005=0,6005是工作模式寄存器地址,数据类型长度U8

605 2F 08 60 00 07 00 00 00   //6008=7 | 加速度 数据类型长度U8

605 2F 09 60 00 07 00 00 00   //6009=7 | 减速度 数据类型长度U8

605 23 03 60 00 10 27 00 00   //6003=0x2710(10000)  数据类型长度S32

605 23 04 60 00 10 27 00 00   //6004=0x2710(10000)  数据类型长度U32

 以PMC007举例发送相关参数,进入相对绝对位置模式运行,如下:

605 2F 05 60 00 01 00 00 00   //0x6005=0,6005是工作模式寄存器地址,数据类型长度U8

605 2F 08 60 00 07 00 00 00   //6008=7 | 加速度 数据类型长度U8

605 2F 09 60 00 07 00 00 00   //6009=7 | 减速度 数据类型长度U8

605 23 03 60 00 10 27 00 00   //6003=0x2710(10000)  数据类型长度S32

605 23 1C 60 00 10 27 00 00   //6004=0x2710(10000)  数据类型长度S32

 

 

 

Related Links

星期二, 23 6月 2020 Posted in 常见问题