图 25 输出的编译信息
12. 编译成功后,会在工程所在的目录下的cdc_xap文件夹生成一些文件,其中包括monbd.cdc和xap.h这两个文件。monbd.cdc文件是一个二进制文件,这个文件包含了整个网络的配置信息,即主站和所有从站的参数设置信息,如图 26所示。而xap.h定义了一个数据结构,主站定义了这种数据结构的变量,并把这个变量和对象字典中通信的Object连接起来。在主站的应用程序里可以直接使用这些变量。这两个文件的详细信息,我们在后面会详细解释。
图 26 编译生成的网络配置文件
2.2 openCONFIGURATOR配置preq-pres 模式通信
(1) 创建新工程,在MN Configuration 的Import XDC/XDD选择源码
ObjDicts\\CiA302-4_MN下的00000000_openPOWERLINK_MN.xdd,这个XDD文件与Examples\\X86\\Windows\\VC8\\demo_cfm_pcap 下的主站例子中对象字典匹配, 如下图 27所示。
16
图 27 导入主站XDD文件
(2) 添加从站,右键单击“open_POWERLINK_MN”,选择“add CN”,在弹出的“Import
XDC/XDD”选择ObjDicts\\Api_CN下的0000003F_openPOWERLINK_demo_CN.xdd文件。这个XDD文件和源码目录Examples\\X86\\Windows\\VC9\\demo_pcap下的例子的对象字典一致。因此需要将Examples\\X86\\Windows\\VC9\\demo_pcap例子做为从站。, 如下图 28所示。
图 28 添加从站
(3) 配置接收和发送的网络参数和映射参数。
使用openCONFIGURATOR时,如果在“project setting”中将“Auto generate ”设置为“yes”,则不需要配置主站的网络参数和映射参数,该工具会根据从站的设置,自动产生主站的映射参数,使用者只需配置从站的接收和发送的网络参数和映射参数。
17
TPDO的配置:
左键单击CN1的PDO中的TPDO,会在右侧显示一个填写信息的表格,在这里设置发送PDO的映射参数。如下,对于从站的发送,由于是广播的,因此在NodeId一栏中保持默认的0, 如下图 29所示。
图 29 设置TPDO的网络参数
配置完以后,我们打开CN1的Object 0x1A00/0x01,看到他的值被设置成了0x0008000000016000,这个值代表的意思,前面讲过了。接下来把Object 0x1A00/0x00的值设置为0x01。该参数值等于在TPDO的表格中设置的object数量, 如下图 30所示。
图 30设置TPDO的映射参数
RPDO的配置:
左键单击CN1的PDO中的RPDO,会在右侧显示一个填写信息的表格,在这里设置发送PDO的映射参数。如下,对于从站的接收,由于是基于Preq/Pres模式,从站接收来自主站的数据,因此在NodeId一栏中保持默认的0, 如下图 31所示。
图 31 设置RPDO的网络参数
配置完以后,我们打开CN1的Object 0x1600/0x01,看到他的值被设置成了0x0008000000016200,这个值代表的意思,前面讲过了。接下来把Object 0x1600/0x00的值设置为0x01。该参数值等于在RPDO的表格中设置的object数量, 如下图 32所示。
18
图 32设置RPDO的映射参数
最后设置循环周期,左键单击openPOWERLINK_MN(240),在右边的CycleTime里填写期望的循环周期,单位为us, 如下图 33所示。
图 33 设置主站参数
(4) 编译工程:点击“Project”下的“Build Project”。如果编译没有错误,会在下方显
示:files mnobd.txt, mnobd.cdc, xap.xml, xap.h, ProcessImage.cs are generated at location ….. 表示编译成功,生成的cdc文件和xap.h文件被放置在工程的目录下, 如下图 34所示。
图 34 生成的网络配置文件
(5) 运行例子
到openCONFIGURATOR工程的目录,将cdc文件和xap.h文件复制到Examples\\X86\\Windows\\VC8\\demo_cfm_pcap目录下。这个程序作为POWERLINK的主站。 打开main.c文件,修改同步回调函数。
Examples\\X86\\Windows\\VC9\\demo_pcap目录下的VS工程作为从站,运行到另外一台
19
电脑上,别忘了将该从站的节点号修改为1。 2.3 openCONFIGURATOR配置PRC 模式通信 (1)
首先需要修改对于PRC 模式,相应的从站的XDD文件的CNFeatures属性里需要
添加这行代码:DLLCNPResChaining=”true” DLLCNFeatureMultiplex=\true\ DLLCNPResChaining=\ NMTCNSoC2PReq=\0\ /> 相应的主站的XDD文件的MNFeatures属性里需要添加这行代码:DLLMNPResChaining=”true” DLLMNPResChaining=\true\ /> (2) 创建openCONFIGURATOR工程,Import 主站和从站的XDD文件。单击要设为 PRC模式的从站,在右边的选项中有“Normal station”和“Chained station”。 “Normal station”是指该从站工作于Preq/Pres模式,“Chained station” 是指该从站工作于PRC模式, 如下图 35所示。 图 35 将选定的从站设置为PRC模式 (3) 配置接收和发送的网络参数和映射参数。 TPDO的配置:此处与Preq/Pres模式完全相同。 RPDO的配置: NodeId一栏的值设为0xF0,意味着接收来自主站的数据,而且这些数据包含在主站的Pres MN数据帧中, 如下图 36所示。 20