POWERLINK的应用层遵循CANopen标准。CANopen是一个应用层协议,它为应用程序提供了一个统一的接口,使得不同的设备与应用程序之间有统一的访问方式。
CANopen协议有3个主要部分:PDO、SDO和对象字典OD。
(1)PDO
过程数据对象,可以理解为在通信过程中,需要周期性、实时传输的数据。
(2)SDO
服务数据对象,可以理解为在通信过程中,非周期性传输、实时性要求不高的数据,例如网络配置命令、偶尔要传输的数据等。
(3)OD
对象字典。什么是对象字典?对象字典就是很多对象的集合。那么什么又是对象呢?一个对象可以理解为一个参数。假设有一个设备,该设备有很多参数,CANopen通过给每个参数一个编号来区分参数,这个编号就叫做索引(Index),这个索引用一个16bit的数字表示。如果这个参数又包含了很多子参数,那么CANopen又会给这些子参数分别分配一个子索引(SubIndex),用一个8bit的数字来表示。因此一个索引和一个子索引就能明确地标识出一个参数。
一个参数除了具有索引和子索引信息外,还应该有参数的数据类型(如8bit还是16bit,有符号还是无符号)、访问类型(可读的、可写的,还是可读写的)、默认值等。因此一个参数需要有很多属性来描述,所以一个参数也就成了一个对象(object),所有对象的集合就构成了对象字典(object dictionary)。
在一次实际应用中,需要周期性传输的对象,就叫过程数据对象(PDO);非周期性传输的对象,就叫服务数据对象(SDO)。
CiA(CANinAutomation)针对不同种类的设备需要哪些参数做了统一规定。
CiA401:对通用输入输出设备的规定。
CiA402:对驱动和运动控制设备的规定。
CiA403:对人机界面设备的规定。
CiA404:对测量设备和闭环控制器的规定。
CiA406:对编码器设备的规定。
CiA408:对比例阀设备的规定。
用户需要根据自己开发的设备的类型,遵循相应的规定,从而实现不同的对象字典,编写与之对应的XDD文件。
小结
经过本章的学习,读者会对POWERLINK通信协议的架构有一个清晰的认识,了解了POWERLINK物理层、应用层以及数据链路层。数据链路层是POWERLINK的核心,它规定了POWERLINK的DLL状态机(什么时候应该发送什么数据帧)以及NMT状态机。熟悉了这些状态机,对于以后运行和调试POWERLINK有很大帮助。