I am using the latest stable version of Powerlink on a Raspberry Pi 2 board (one MN, two CN setup). While trying to analyze the packets using WireShark, I am unable to see the PReq frames. I can observed the SoC, SoA, PRes frames though. Also, the PRes frames follow the SoA frame. Did anyone face something similiar?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Probably you are using a switch between your PC and the POWERLINK network. The PReq frame is send as unicast frame, and the others as mulitcast. The unicast frame reches only the destination, and is filtered by the switch for other ports.
Solution: Use a hub instead of a switch.
Best regards
Michael
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you so much for your response Michael. I was able to observe the PReq frames through Wireshark, when I connected the MN and one CN directly. I am encountering another problem now.
I have three RPI2 boards (one MN and two CNs) installed with Raspbian, with the Powerlink stack running on them. The boards are connected through a router, which offers a gigabit connectivity. The CN's transmit 2 bytes of data each. I tried increasing the bandwidth by reducing the cycle time. If I tried reducing the cycle time below 20 ms, CN1 initialized and sent data, but CN2 did not work, giving a "Kernel stack has gone! Exiting..." error. Ideally, the minimum cycle time for this scenario is close to 30 us. I understand that the cycle time depends on a number of other factors too. Can someone please enlighten me as to what I am missing here? How can I further reduce the cycle time?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I assume you are using the Linux user space demos for MN and CN provided in the openPOWERLINK stack on the RPi2 boards.
Since RPi2 demo runs in Linux user space and uses pcap for Ethernet communication (i.e. it does not use a dedicated Ethernet kernel driver for POWERLINK), the performance expected of the CN and MN is in the order of tens of milliseconds due to the software latencies involved along with the OS based limitation for the user applications.
Also the RPi2 uses a USB-to-Ethernet hardware configuration which adds addtional latencies to frame exchange.
To reduce the cycle time further you can implement a dedicated Ethernet kernel driver for POWERLINK on the RPi2 which will execute in the Linux kernel space and may provide a better performance. Although due to the USB-to-Ethernet hardware configuration this will not give the best perfomance still.
Just to understand, can you share some details on your targets with the openPOWERLINK demos with RPi2?
Dear Powerlink Team @ Kalycito,
Thank you for your response. It has given me a better idea about the performance constraints. Yes, I am using the linux userspace for the demos. I am currently working on an internship to investigate about the powerlink network - assessing the bandwidth, jitter, latency, among other measures. The target application is to integrate the various components (such as sensors) in an autonomous vehicle. While the latency and jitter are within acceptable limits, we find the bandwidth to be too low (in the order of 100s of kbits/s). Even if I increase the PDO size, it's effect on the bandwidth is not as significant as one would expect.
Thanks & Regards,
Evelyn
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The Raspberry Pi is a good option to get started quickly and learn about the functionality of POWERLINK from the comfort of a Linux environment. From the point of timing and bandwidth analysis, it is advisable to move to a hardware platform (say the FPGA reference designs that are available as part of the open source openPOWERLINK stack) that can provide deterministic response times which will enable you to fit in the required number of devices and data sizes within the optimum time, thereby optimizing the bandwidth utilization for your data transfer requirements. There is also the consideration of how much real-time and non real-time data transfer is required in your application and the bandwidth for each.
We may be able to help faster with your queries if direct messaging is available. Please let us know if you can enable the same on your sourceforge user account. Thanks.
Regards,
POWERLINK Team,
Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am using the latest stable version of Powerlink on a Raspberry Pi 2 board (one MN, two CN setup). While trying to analyze the packets using WireShark, I am unable to see the PReq frames. I can observed the SoC, SoA, PRes frames though. Also, the PRes frames follow the SoA frame. Did anyone face something similiar?
Hi Evelyn,
Probably you are using a switch between your PC and the POWERLINK network. The PReq frame is send as unicast frame, and the others as mulitcast. The unicast frame reches only the destination, and is filtered by the switch for other ports.
Solution: Use a hub instead of a switch.
Best regards
Michael
Thank you so much for your response Michael. I was able to observe the PReq frames through Wireshark, when I connected the MN and one CN directly. I am encountering another problem now.
I have three RPI2 boards (one MN and two CNs) installed with Raspbian, with the Powerlink stack running on them. The boards are connected through a router, which offers a gigabit connectivity. The CN's transmit 2 bytes of data each. I tried increasing the bandwidth by reducing the cycle time. If I tried reducing the cycle time below 20 ms, CN1 initialized and sent data, but CN2 did not work, giving a "Kernel stack has gone! Exiting..." error. Ideally, the minimum cycle time for this scenario is close to 30 us. I understand that the cycle time depends on a number of other factors too. Can someone please enlighten me as to what I am missing here? How can I further reduce the cycle time?
Hi Evelyn,
I assume you are using the Linux user space demos for MN and CN provided in the openPOWERLINK stack on the RPi2 boards.
Since RPi2 demo runs in Linux user space and uses pcap for Ethernet communication (i.e. it does not use a dedicated Ethernet kernel driver for POWERLINK), the performance expected of the CN and MN is in the order of tens of milliseconds due to the software latencies involved along with the OS based limitation for the user applications.
Also the RPi2 uses a USB-to-Ethernet hardware configuration which adds addtional latencies to frame exchange.
To reduce the cycle time further you can implement a dedicated Ethernet kernel driver for POWERLINK on the RPi2 which will execute in the Linux kernel space and may provide a better performance. Although due to the USB-to-Ethernet hardware configuration this will not give the best perfomance still.
Just to understand, can you share some details on your targets with the openPOWERLINK demos with RPi2?
Hope the information helps.
Regards,
POWERLINK Team,
Kalycito
Dear Powerlink Team @ Kalycito,
Thank you for your response. It has given me a better idea about the performance constraints. Yes, I am using the linux userspace for the demos. I am currently working on an internship to investigate about the powerlink network - assessing the bandwidth, jitter, latency, among other measures. The target application is to integrate the various components (such as sensors) in an autonomous vehicle. While the latency and jitter are within acceptable limits, we find the bandwidth to be too low (in the order of 100s of kbits/s). Even if I increase the PDO size, it's effect on the bandwidth is not as significant as one would expect.
Thanks & Regards,
Evelyn
Hi Evelyn,
The Raspberry Pi is a good option to get started quickly and learn about the functionality of POWERLINK from the comfort of a Linux environment. From the point of timing and bandwidth analysis, it is advisable to move to a hardware platform (say the FPGA reference designs that are available as part of the open source openPOWERLINK stack) that can provide deterministic response times which will enable you to fit in the required number of devices and data sizes within the optimum time, thereby optimizing the bandwidth utilization for your data transfer requirements. There is also the consideration of how much real-time and non real-time data transfer is required in your application and the bandwidth for each.
We may be able to help faster with your queries if direct messaging is available. Please let us know if you can enable the same on your sourceforge user account. Thanks.
Regards,
POWERLINK Team,
Kalycito