EplKernel PUBLIC AppCbSync(void) {
tEplKernel EplRet = kEplSuccessful; bVarIn1_l+=2;
printf(\ %d, bVarOut1_3: %d\\n\, bVarOut1_l,bVarOut1_2,bVarOut1_3);
TGT_DBG_SIGNAL_TRACE_POINT(1); return EplRet;
} (4) 程序运行,察看打印结果。
3 . Mnobd 文件解析
openCONFIGURATOR生成了两个文件:xap.h 文件和mnobd.cdc文件。 xap.h 文件:定义了两个数据结构PI_OUT和PI_IN。
在Examples\\X86\\Windows\\VC8\\demo_cfm_pcap的例子里demo_main.c 程序里定义了这两个数据结构的变量:
static PI_IN AppProcessImageIn_g; static PI_OUT AppProcessImageOut_g;
然后调用了EplRet = EplApiProcessImageSetup();该函数将变量AppProcessImageIn_g和 AppProcessImageOut_g 与对象字典中的object 连接起来,这样就可以在用户的应用程序中直接使用变量AppProcessImageIn_g和AppProcessImageOut_g。
除了这种方法,用户也可以通过调用EplApiLinkObject()函数,将自己定义的变量与用于PDO通信的object 连接起来。EplApiProcessImageSetup()函数的底层,也是通过调用EplApiLinkObject(),来将变量AppProcessImageIn_g和 AppProcessImageOut_g 与对象字典中的object 连接起来的。
PI_IN AppProcessImageIn_g变量是用来保存主站发送到网络上的数据,以网络为参考点,是网络从主站得到数据,所以定义为PI_IN 。PI_OUT AppProcessImageOut_g变量是用来保存主站从网络接收到的数据,,以网络为参考点,是网络输出数据到主站,所以定义为PPI_OUT。
Mnobd.cdc文件:这个文件是一个二进制文件,包含了网络的配置信息,即主站参数的设定和各个从站参数的设定。再POWERLINK网络中,主站具有配置从站的功能,在主站索引0x1f22 子索引n的object里保存了对n号从节点的配置信息,当POWERLINK 网络上电以后,主站会根据object 0x1f22/n的内容,通过发送SDO 的方式来配置从站的参数。因此Mnobd.cdc文件实际上是对主站object的值的设置。下面我们打开一个cdc文件,做一个概要性的介绍。
Mnobd.cdc文件信息(红色字体为标注的信息)
26
00000015 这里是16进制的15,表示一共有21个object需要设置 //// NodeId Assignment 索引 子索引 数据长度 数值 1F81 1A00 1600 1006 us
1C02 1C02 1C09 1C14 1F26 1F27 1F81 1F92 1A00 1A00 1400 1600 1600 1A00 1600
01 00000004 03 00000004 01 00000004 00 00000004 01 00000004 01 00000004 F0 00000004 01 00000004 01 00000008 02 00000008 01 00000001 01 00000008 02 00000008 00 00000001 00 00000001
00000028 00000028 00000028 02faf080 000027d9 0286e190 80001001 00006978
001000000001A100 主站的TPDO映射参数 001000100002A100 01
001000000001A580 主站的RPDO映射参数 001000100002A580 02 02
01 00000004 00 00000001 00 00000001 00 00000004
00000007 00 00
00002710 这个object是循环周期,值为0x2710,单位
////Configuration Data for CN-1 1F22
01 000000be 主站object 1F22/01 保存了对1号从站的配置信息
00000011 1600 1A00 1006 1020
00 00000001 00 00000001 00 00000004 01 00000004
00 00
00002710 1号从节点的循环周期 000027d9
27
1020 1C0B 1C0D 1C14 1F81 1F98 1400 1600 1600 1A00 1A00 1600 1A00
02 00000004 03 00000004 03 00000004 00 00000004 F0 00000004 08 00000002 01 00000001 01 00000008 02 00000008 01 00000008 02 00000008 00 00000001 00 00000001
0286e190 00000050 00000050 02faf080 80001001 012C f0
0010000000016040 1 号从节点的RPDO映射信息 001000100001604c
0010000000016041 1 号从节点的TPDO映射信息 00100010000160fc 02 02
//// NodeId Reassignment 1F81
01 00000004
80004007
主站读取cdc文件,解析出每个object的索引,子索引,数据长度和数值,然后将这个数值写入对应的object中。这样就完成了主站的参数设置。主站中索引0x1F22/ n里保存了对n号从节点的配置信息,主站根据这些信息,通过发送SDO读/写来配置从节点的object的值。从而完成对网络的配置。
28