Hey everybody.
I am doing some test measurements for my openPOWERLINK setup. I am running openPOWERLINK 184 as a MN on a Beagle Bone Black ARM and an CN on a Raspberry PI.
For measurement purposes I take a timestamp when the inputs change in AppCbSync on the CN:
I changed the MN application so that the outputs follow the input ( nodeVar_g[0].m_uiLeds = nodeVar_g[0].m_uiInput; ). So eventually I get the new output signal back to my CN, and when where this serves as a stop signal:
I tried different cycle length when starting the MN. With "$ ./demo_mn_console -c 4000" I got the lowest roundtrip time so far, that is to say about: 000.020099786s (+- 0.001s)
So I have several questions now:
When the cycle length should be 4000us my roundtrip time of 20ms seems pretty odd. It further doesn't directly correspond to my cycle-length. I would understand if it takes 2 cycles or something like that.
Further, it is relatively high. I get ping-delays of 0.7ms
Do you have any idea on how to tweak the performance?
Also maybe some ideas on how to measure the roundtrip time or cycle time more efficiently?
Would you recommend on using openPOWERLINK 2 for testing and evaluationg purposes? Would it be more performant?
I am looking forward to your response.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey there.
Thank you for your help. The wireshark analysis showed, that the imidieate PRes takes only about 1-2ms, however the computation of the roundtrip-beacon (sending, remapping, sending) takes always 5 cycles.
Best regards
Thomas
Last edit: ThomasF 2014-07-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In your case, the round time of 5 cycles may be an outcome of the PDO processing time on MN and CN. We can not be sure without your program and console & network traces.
To check the processing duration on MN, you can check the time gap between PDO(beacon) sent from CN and the next PDO from MN having the same data(beacon), using network traces. Similar setup can be done for checking processing duration on CN.
Another way of measuring the cycletime and performance would be to use IO Benchmarks in your program.
The Kernel module demo gives better performance than the pcap demo. Also using EplApiInitParam.m_uiSyncNodeId = EPL_C_ADR_SYNC_ON_SOC improves the performance.
openPOWERLINK_V2 stream is in development and the first two versions are released; new features and performance improvements are being updated continuously. So for future it'd be advisable to use this for practical purposes.
Keep us posted if any further clarification is needed.
Regards,
POWERLINK Support
Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey everybody.
I am doing some test measurements for my openPOWERLINK setup. I am running openPOWERLINK 184 as a MN on a Beagle Bone Black ARM and an CN on a Raspberry PI.
For measurement purposes I take a timestamp when the inputs change in AppCbSync on the CN:
I changed the MN application so that the outputs follow the input ( nodeVar_g[0].m_uiLeds = nodeVar_g[0].m_uiInput; ). So eventually I get the new output signal back to my CN, and when where this serves as a stop signal:
I tried different cycle length when starting the MN. With "$ ./demo_mn_console -c 4000" I got the lowest roundtrip time so far, that is to say about: 000.020099786s (+- 0.001s)
So I have several questions now:
Also maybe some ideas on how to measure the roundtrip time or cycle time more efficiently?
Would you recommend on using openPOWERLINK 2 for testing and evaluationg purposes? Would it be more performant?
I am looking forward to your response.
Hello Thomas,
Have you tested the MN in kernel module version? or it is userspace-pcap version.
You can get better performance in kernel module version i.e,CN can loopback the data received from MN in just 1 cycle delay even in 2ms cycle time.
You can very easily analyze the time delay using network capture tools like wireshark,omnipeak.
Regards,
POWERLINK Team,
Kalycito
Hey there.
Thank you for your help. The wireshark analysis showed, that the imidieate PRes takes only about 1-2ms, however the computation of the roundtrip-beacon (sending, remapping, sending) takes always 5 cycles.
Best regards
Thomas
Last edit: ThomasF 2014-07-20
Hi Thomas,
Following are the answers to your questions:
In your case, the round time of 5 cycles may be an outcome of the PDO processing time on MN and CN. We can not be sure without your program and console & network traces.
To check the processing duration on MN, you can check the time gap between PDO(beacon) sent from CN and the next PDO from MN having the same data(beacon), using network traces. Similar setup can be done for checking processing duration on CN.
Another way of measuring the cycletime and performance would be to use IO Benchmarks in your program.
The Kernel module demo gives better performance than the pcap demo. Also using
EplApiInitParam.m_uiSyncNodeId = EPL_C_ADR_SYNC_ON_SOC
improves the performance.openPOWERLINK_V2 stream is in development and the first two versions are released; new features and performance improvements are being updated continuously. So for future it'd be advisable to use this for practical purposes.
Keep us posted if any further clarification is needed.
Regards,
POWERLINK Support
Kalycito