欢迎光临散文网 会员登陆 & 注册

canopen部分 5 pdo指令

2023-05-13 11:37 作者:GXTon_阿通  | 我要投稿


进行pdo通信,需要配置两个部分:通讯参数映射参数.

pdo类似于"暗号"通信,在进行通信前,需要配置.

pdo的通道建立就是靠配置通讯参数和映射参数实现的,所以这里是重点.

这些配置信息,是记录在字典里面的.

某款驱动器上位机的界面,用于配置通讯参数和映射参数,

rpdo的通讯参数:

rpdo的映射参数:

上面两张图可以表达为:

RPDO1绑定的通讯参数,索引为1400h 绑定的映射参数,索引为1600h

RPDO2绑定的通讯参数,索引为1401h 绑定的映射参数,索引为1601h

RPDO3绑定的通讯参数,索引为1402h 绑定的映射参数,索引为1602h

RPDO4绑定的通讯参数,索引为1403h 绑定的映射参数,索引为1603h


上面是接收rpdo,也有发送pdo即tpdo:

tpdo通讯参数:

tpdo映射参数:

上面两张图可以表达为:

TPDO1绑定的通讯参数,索引为1800h 绑定的映射参数,索引为1A00h

TPDO2绑定的通讯参数,索引为1801h 绑定的映射参数,索引为1A01h

TPDO3绑定的通讯参数,索引为1802h 绑定的映射参数,索引为1A02h

TPDO4绑定的通讯参数,索引为1803h 绑定的映射参数,索引为1A03h


pdo的发送方式是通信参数决定的.映射参数决定了发送的内容解析.

上面映射参数和通讯参数是存在字典中的内容,具体存在哪里,要看索引.

索引就是字典上的"门牌号".

下面解说ID,也就是can报文的id,在canopen中又叫做cob-id.

这个ID决定了报文的角色.

(sdo,pdo,nmt报文的分类依靠id).

这里的id也是在cia301中规定好的.

下面还是以驱动器为例,cia301中规定

TPDO的指令是181h,281h,381h,481h.见到这几个开头的报文,就知道它是驱动器发送的TPDO

RPDO的指令是201h,301h,401h,501h.见到这几个开头的报文,就知道它是驱动器接收的RPDO

:单片机和驱动器的接收发送id是相反的.

举例:

通过can分析仪接收到总线上有报文201,e8 03

注意报文都是十六进制的.

但是由于id201,所以可以确定是pdo报文,后面的数据必须按照pdo的格式去解析.

又因为201,可以知道,是驱动器要接收的报文.(那一定就是单片机发送的了.)

因为是201,可以解读为200+1,这个11号节点,即是控制线上1号驱动器的.

这个时候是不知道哪个pdo通道发送的.

这个时候也不知道e8 03这个数据代表什么,因为我们不知道字典

(字典是存储在驱动器里的,可以去读,然后就知道e8 03 代表什么了).

 

PDO相当于通道.一般驱动器里面有4个通道(这个是厂家决定的).

比如:

PDO1是第一个通道,至于里面传输的内容(索引,字典决定).

可以是1,2,3,4,…中任意节点中的一个(id / cob-id 决定).

就是单片机的TPDO1可以配置线上任意驱动器中的一个.

在使用PDO这种通信之前,要按照需求配置通信双方的字典,从而引导数据的流动.TPDO1配置为例:

用sdo配置pdo的过程是固定的:


    失能, 使能pdo(失能通讯参数1800h01h子索引)

    类型,(传输类型的配置,通讯参数1800h02h子索引)

    消数,(消去映射参数1A00h里面的个数)

    写入数据,(写入映射参数1A00h里面的数据6072h)

    写入个数,(写入映射参数1A00h里面的个数)

    失能,(失能通讯参数1800h01h子索引)

    (在进行pdo操作之前,要先让can总线进入操作模式,可以发送000,01 00)


实例如下:


canopen部分 5 pdo指令的评论 (共 条)

分享到微博请遵守国家法律