I'm trying to set up a network with two machines using Ethernet Powerlink.
I downloaded the openPOWERLINK_CFM v1.3.0-4 Source Code for Windows XP - 09-Apr-2009 from the Kalycito website. I configured my network using openConfigurator and the User Manual. I compiled and run the stack with Visual Studio 2008 but my CN and MN can't exchange any data.
Here is a part of my kaly_cfgmgr_demo.c code for the MN:
define NODEID 0xF0 //=> MN or CN
define CYCLE_LEN 5000 // [us]
define IP_ADDR 0xc0a864F0 // 192.168.100.240
define SUBNET_MASK 0xFFFFFF00 // 255.255.255.0
define HOSTNAME "EPL Stack"
define IF_ETH EPL_VETH_NAME
define CONFIG_DATA_BUFF_SIZE 10000 //TODO: Not a great idea to do this in Linux Kernel Mode. But is good enough for a demo
define CONFIG_FILE "mnobd.cdc"
[...]
//---------------------------------------------------------------------------
// modul globale vars
//---------------------------------------------------------------------------
//Preferably use your NICs MAC correctly (use "getmac" or "ipconfig/all" command to get your MAC address) 00-15-C5-AD-80-27
CONST BYTE abMacAddr_MN[] = {0x00, 0x1C, 0x7E, 0x38, 0xDB, 0xA5};
CONST BYTE abMacAddr_CN1[] = {0x00, 0x15, 0x60, 0xC4, 0x0A, 0x3F};
kaly_cfgmgr_demo.c code for the CN
define NODEID 0x01 //=> MN or CN
define CYCLE_LEN 5000 // [us]
define IP_ADDR 0xc0a86401 // 192.168.100.1
define SUBNET_MASK 0xFFFFFF00 // 255.255.255.0
define HOSTNAME "EPL Stack"
define IF_ETH EPL_VETH_NAME
define CONFIG_DATA_BUFF_SIZE 10000 //TODO: Not a great idea to do this in Linux Kernel Mode. But is good enough for a demo
define CONFIG_FILE "mnobd.cdc"
[...]
//---------------------------------------------------------------------------
// modul globale vars
//---------------------------------------------------------------------------
//Preferably use your NICs MAC correctly (use "getmac" or "ipconfig/all" command to get your MAC address) 00-15-C5-AD-80-27
CONST BYTE abMacAddr_MN[] = {0x00, 0x1C, 0x7E, 0x38, 0xDB, 0xA5};
CONST BYTE abMacAddr_CN1[] = {0x00, 0x15, 0x60, 0xC4, 0x0A, 0x3F};
(Is the CN also using mnobd.cdc ?)
The MN is sending data (I checked with wireshark) but the CN freezes on :
You can of-course compile and run the CN on a XP machine and it is possible to set up a network with a XP MN and XP CNs. But for the Win XP CN's to work with the CFM, you need to customise the CN's code to store/retrieve the configuration information (download is already supported via SDO, but after the download in a typical hardware implementation the CN is reset by the MN after store, and the CN boots with the updated OBD, this part is not available in the software CN that you are using).
Regards,
Kalycito Powerlink Team
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I just read your post because of another question from Sylvain.
It is right that the store/restore mechanism of the object dictionary isn't currently implemented. But nevertheless, the software CN should work perfectly together with the CFM. After the CFM downloaded the new configuration via SDO to the software CN, the MN issues only a NMT command ResetConfiguration. This forces the NMT state machine of the software CN to do a reset, but without reseting the object dictionary. So the new configuration of the object dictionary will be actually used.
cu,
Daniel
SYS TEC electronic GmbH
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The CN doesn't use the mnobd.cdc. In fact, in a real life scenario, the CN will be a hardware and will receive the configuration information from the MN (thanks to the CFM on the MN) and store it in its non-volatile memory. Please note that the software CN that you compiled for yourself doesn't have the ability to store/retrieve the configuration information it received from the MN. To help you visualise this process, we have provided a hardcoded-precompiled CN [openPOWERLINK CN CFM Simulator] at http://kalycito.com/downloads.html#POWERLINKXP. You can also use CNs like B&R's X20 BC 00083 for the same.
Please let us know if you need further help.
Regards,
Kalycito Powerlink Team
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I'm trying to set up a network with two machines using Ethernet Powerlink.
I downloaded the openPOWERLINK_CFM v1.3.0-4 Source Code for Windows XP - 09-Apr-2009 from the Kalycito website. I configured my network using openConfigurator and the User Manual. I compiled and run the stack with Visual Studio 2008 but my CN and MN can't exchange any data.
Here is a part of my kaly_cfgmgr_demo.c code for the MN:
define NODEID 0xF0 //=> MN or CN
define CYCLE_LEN 5000 // [us]
define IP_ADDR 0xc0a864F0 // 192.168.100.240
define SUBNET_MASK 0xFFFFFF00 // 255.255.255.0
define HOSTNAME "EPL Stack"
define IF_ETH EPL_VETH_NAME
define CONFIG_DATA_BUFF_SIZE 10000 //TODO: Not a great idea to do this in Linux Kernel Mode. But is good enough for a demo
define CONFIG_FILE "mnobd.cdc"
[...]
//---------------------------------------------------------------------------
// modul globale vars
//---------------------------------------------------------------------------
//Preferably use your NICs MAC correctly (use "getmac" or "ipconfig/all" command to get your MAC address) 00-15-C5-AD-80-27
CONST BYTE abMacAddr_MN[] = {0x00, 0x1C, 0x7E, 0x38, 0xDB, 0xA5};
CONST BYTE abMacAddr_CN1[] = {0x00, 0x15, 0x60, 0xC4, 0x0A, 0x3F};
kaly_cfgmgr_demo.c code for the CN
define NODEID 0x01 //=> MN or CN
define CYCLE_LEN 5000 // [us]
define IP_ADDR 0xc0a86401 // 192.168.100.1
define SUBNET_MASK 0xFFFFFF00 // 255.255.255.0
define HOSTNAME "EPL Stack"
define IF_ETH EPL_VETH_NAME
define CONFIG_DATA_BUFF_SIZE 10000 //TODO: Not a great idea to do this in Linux Kernel Mode. But is good enough for a demo
define CONFIG_FILE "mnobd.cdc"
[...]
//---------------------------------------------------------------------------
// modul globale vars
//---------------------------------------------------------------------------
//Preferably use your NICs MAC correctly (use "getmac" or "ipconfig/all" command to get your MAC address) 00-15-C5-AD-80-27
CONST BYTE abMacAddr_MN[] = {0x00, 0x1C, 0x7E, 0x38, 0xDB, 0xA5};
CONST BYTE abMacAddr_CN1[] = {0x00, 0x15, 0x60, 0xC4, 0x0A, 0x3F};
(Is the CN also using mnobd.cdc ?)
The MN is sending data (I checked with wireshark) but the CN freezes on :
EplApiLinkObject : Index: 1f22h SIndes: 1h Size: 85h
Linked Successfully 1
Error Writing 1f92 returns 0x35
AppCbEvent(0x39) originating event = 0x21
AppCbEvent(0x79) originating event = 0x23
epl.init(): returns 0x0
WinInit Completed
Do you know where the problem can come from ?
Hello,
You can of-course compile and run the CN on a XP machine and it is possible to set up a network with a XP MN and XP CNs. But for the Win XP CN's to work with the CFM, you need to customise the CN's code to store/retrieve the configuration information (download is already supported via SDO, but after the download in a typical hardware implementation the CN is reset by the MN after store, and the CN boots with the updated OBD, this part is not available in the software CN that you are using).
Regards,
Kalycito Powerlink Team
Hello,
I just read your post because of another question from Sylvain.
It is right that the store/restore mechanism of the object dictionary isn't currently implemented. But nevertheless, the software CN should work perfectly together with the CFM. After the CFM downloaded the new configuration via SDO to the software CN, the MN issues only a NMT command ResetConfiguration. This forces the NMT state machine of the software CN to do a reset, but without reseting the object dictionary. So the new configuration of the object dictionary will be actually used.
cu,
Daniel
SYS TEC electronic GmbH
Hello,
Thanks for the brief information on the issue.
The CN doesn't use the mnobd.cdc. In fact, in a real life scenario, the CN will be a hardware and will receive the configuration information from the MN (thanks to the CFM on the MN) and store it in its non-volatile memory. Please note that the software CN that you compiled for yourself doesn't have the ability to store/retrieve the configuration information it received from the MN. To help you visualise this process, we have provided a hardcoded-precompiled CN [openPOWERLINK CN CFM Simulator] at http://kalycito.com/downloads.html#POWERLINKXP. You can also use CNs like B&R's X20 BC 00083 for the same.
Please let us know if you need further help.
Regards,
Kalycito Powerlink Team
Do you mean I can't compile and run the CN on an XP machine ? And I must use the hardcoded-precompiled CN ?
I thought it was possible to set up a network with 2 Win XP CN and 1 Win XP MN. I was wrong ?
Regards,
Oh ok.
But this part is available in the hardcoded-precompiled CN right ? So if you send me the sources, I will be able to reuse the code ? Is it possible ?
Regards,