PDO的全称是Process Data Object,即传输过程数据,其用来传输实时的数据,是CANopen等通信中最主要的数据传输方式。PDO是单向传输,不需要应答,且PDO的长度可以小于8个字节,因此传输速度高于SDO。
一、PDO对象
按照接收与发送的不同,PDO可分为RPDO和TPDO。每个PDO由通信参数和映射参数共同决定最终传输的方式及内容。控制器使用了4个RPDO和4个TPDO来实现PDO的传输,相关对象列表如下:
二、PDO通信参数
1.PDO的标识符COB-ID
包含控制位和标识数据,确定该PDO的总线优先级。COB-ID位于通信参数(RPDO:1400h~1403h,TPDO: 1800h~1803h)的子索引01上,最高位决定该PDO是否有效。
例如:对于节点地址为1的电机,TPDO1 的COB-ID为80000181h,表示该PDO被禁用,处于无效状态,当其COB-ID为181h时,表明该PDO被激活。
查询TPDO1是否启用:
2.PDO的传输类型
PDO的传输类型位于通信参数(RPDO:1400h~1403h,TPDO: 1800h~1803h)的子索引02上,决定该PDO遵循哪种传输方式。
传输触发类型如下图:
(1)当TPDO的传输类型为0时,如果映射数据发生改变,且接收到一个同步帧,则发送该TPDO
(2)当TPDO的传输类型为1~240时,接收到相应个数的同步帧时,发送该TPDO
(3)当TPDO的传输类型是254或255时,映射数据发生改变或者事件计时器到达则发送该TPDO
(4)当RPDO的传输类型为0~240时,只要接收到一个同步帧,则将该RPDO最新的数据更新到应用
(5)当RPDO的传输类型为254或者255时,将接收到的数据直接更新到应用
同步帧:默认COB-ID:0x80,无数据帧。
查询TPDO1传输类型数值:
传输类型数值为1时:
3.禁止时间
针对TPDO设置了禁止时间,存放在通信参数(1800h~1803h) 的子索引03上,避免由于某个高优先级的PDO数据量太大,持续占据总线,而使其他优先级较低的数据无力竞争总线的问题。该参数有16位无符号整数定义,单位是 100us,设置数值后,同一个TPDO传输间隔不得小于该参 数对应的时间。举例:设置TPDO1的禁止时间为100,则TPDO1的传输间隔不会小于10ms。
设置及查询TPDO1的禁止时间(单位0.1ms):
4.事件计时器
针对异步传输(传输类型为254或255)TPDO,定义事件计时器,位于通信参数 (1800h~1803h) 的子索引05上。事件计时器也可以看做是一种触发事件,它会触发相应的TPDO传输。如果在计时器运行周期内出现了数据改变等其它事件,TPDO也会触发,且事件计数器会被立即复位。事件定时器参数由16位无符号整数定义,单位1ms。
设置及查询TPDO1的事件计时器时间(单位1ms):
5.查询TPDO1映射的参数
6.修改TPDO1映射的参数(预操作模式下)
当设置索引1A00-00映射参数个数为0时(上图中的清除当前映射配置),之前的映射数据仍然存在于1A00-01和1A00-02之中,不过此时TPDO1的报文数据为全为0,位数与之前的映射数据位数保持一致。
设置索引1A00-00映射参数个数为1时,TPDO1的报文数据为之前1A00-01中映射的数据值。
设置索引1A00-00映射参数个数为2时,TPDO1的报文数据为之前1A00-01和1A00-02中映射的数据值。
以上即是今天分享的全部内容,如果您有任何问题请及时联系我们。
˜ 本文章全部内容或部分内容禁止擅自转载、拷贝。