第一步、安装IXXAT CME/PN的配置软件ConfigStudioIXXAT-CME-PN_2_1_6_3585_Setup.exe,并加载设备EDS文件,此处EDS文件名为STM32CANOPEN.EDS(笔者自开发CANOPEN从站),文件中Index=0x2000,Index=0x2001这两个对象字典分别用来描述4组16路开关输入和4组16路开关输出功能。详细描述如下表1
主索引
子索引

读写属性
是否可映射
注释
0x2000
0
只读
否
子索引最大值
0x2000
1
只读
是
第1组16路开关输入量
0x2000
2
只读
是
第2组16路开关输入量
0x2000
3
只读
是
第3组16路开关输入量
0x2000
4
只读
是
第4组16路开关输入量
0x2001
0
只读
否
子索引最大值
0x2001
1
只写
是
第1组16路开关输出量
0x2001
2
只写
是
第2组16路开关输出量
0x2001
3
只写
是
第3组16路开关输出量
0x2001
4
只写
是
第4组16路开关输出量
表1
加载EDS成功并没有错误后,在“Devcie Catalog Management”窗口中能查看到STM32CANOPEN.EDS支持CIA301,描述为CANOPENIo等相关信息。如图1所示。
图1
第二步、在配置软件中新建一个工程,主站NodeID=127,从站NodeID=1,如图2所示。
图2
第三步、配置软件选项卡选择到“Error Control Configuration”,这里用来设置CANOPEN协议中的错误管理功能,所谓错误管理就是让CANOPEN网络中的站点在一定时间内上报自己的当前状态,供其他站点查看该站点是否在线,是否进入了期望的状态。这里直接默认就可以了,实际应用中客户经常会关闭这个功能,默认情况下IXXAT CME/PN也关闭这个功能了。如图3所示。
图3
第四步、配置软件选项卡选择到“Application Objects”,这里非常重要是用来配置PDO的。将“Mapped”这列感兴趣的勾选上,“Transmission Type”设置成“Synchronous”,同步次数为1,同步周期设置成10ms,同步信号的发出者为NodeID=127的站点,也就是CANOPEN主站。当然“Transmission Type”也可以设成其他类型,最常用是“Synchronous”类型。如图4所示。在“Process Image”选项卡中能看到PDO映射情况,如图5所示。
图4
图5
第五步、配置软件选项卡选择到“Timing Parameters”,选择需要的CANOPEN网络波特率,常用250 kbit/s,注意从站的波特率设置250 kbit/s,和主站波特率保持一致。按键盘快捷键“F5”编译之前配置后会产生Total PDO Payload,Total PDO Length等信息。如图6。
图6
第六步、按键盘快捷键“F6”生成GSD文件,生成的GSD文件用于博图配置IXXAT CME/PN。将配置好的参数下载到IXXAT CME/PN中。如图7所示。
图7
第七步、博图安装刚刚生成的GSD文件,并组态。如图8所示。
图8
第八步、在博图中监控CANOPEN网络中开关量输入输出情况。如图9所示。
图9
本人亲自试用过4款CANOPEN主站,分别为ZLG USBCAN-E-P、台达DVPCOPM、IXXAT CME/PN、信捷XD-COBOX-ED。这4款主站中USBCAN-E-P算得上最优秀的,调试功能最强大,是开发CANOPEN从站的首选主站;台达DVPCOPM调试功能也很强大,与USBCAN-E-P相比批量SDO速度较慢,其他都是不错;信捷XD-COBOX-ED适于对CANOPEN非常熟练人员使用,对EDS文件的解析还有待提高。信捷PLC和触摸屏支持C语言,这点非常值得肯定,大大精简数学计算过程。