进程数据对象 (PDO) 协定可用来在许多节点之间交换即时的资料。可透过一个 PDO ,传送最多 8 字节(64位元)资料给一设备,或由一设备接收最多 8 字节(64位元)的资料。一个 PDO 可以由对象字典中几个不同索引的资料组成,规划方式则是透过对象字典中对应 PDO mapping 及 PDO 参数的索引。
PDO 分为两种:传送用的 TPDO 及接收用的 RPDO。一个节点的 TPDO 是将资料由此节点传输到其他节点,而 RPDO 则是接收由其他节点传输的资料。一个节点分别有 4 个 TPDO 及 4 个 RPDO 。
PDO 可以用同步或异步的方式传送:同步的 PDO 是由 SYNC 讯息触发,而异步的 PDO 是由节点内部的条件或其他外部条件触发。例如若一个节点规划为允许接受其他节点产生的 TPDO 请求,则可以由其他节点送出一个没有资料但有设定 RTR 位元的 TPDO(TPDO 请求),使该节点送出需求的资料。
借由 RPDO 也可以使两个或两个以上的设备同时启动。只要将其 RPDO 对应到相同的 TPDO 即可。
Canopen同步 (SYNC) 协定
同步协定使用生产者/消费者模型。同步生产者(Sync-Producer)会定时产生同步信号供同步消费者(Sync-Consumer)使用。当同步消费者收到信号,即可以进行已规划好的同步工作。[4]
同步信号会定时产生,若有 PDO 是由同步信号引发,透过 PDO 传送时间及同步信号传送周期之间的调整,可以使传感器定期的取様,而致动器也可以根据最新的输入信号产生对应的输出。
在对象字典中,同步对象的索引为 0x1005,可透过编辑此对象启动同步协定。