Hi, It's a pull request in GitHub, so you can directly access it anyways :-) See here. There, you can directly clone it via git or download a zip file. BR, Wolfgang
Hello Franco, It might be a timing issue, and you may try to increase the SDO sequence layer timout value on the devices (object 0x1300). However, the openPOWERLINK stack in Windows with WinPCap does not provide a virtual Ethernet interface that allows to use the asynchronous phase of POWERLINK as a standard Ethernet network. Therefore, general IP traffic would always be routed through the "real" Ethernet card and can influence POWERLINK traffic. This is a not recommended usage! My suggestion is...
Hello Xiaokang, In order to shorten the POWERLINK cycle time, your platform needs to be fast enough in handling the incoming/outgoing frames and the state machine. If you need to reduce the delay between receiving a frame and sending out the next one, you could consider using an FPGA platform with the openMAC IP-Core (given in the Open Source stack). Best regards, Wolfgang
Hi Simon, It should be working with the latest openPOWERLINK stack. So, did you try it out with V2.6.2 or V2.7.0? Best regards, Wolfgang
Hi Simon, I think, this depends on your application and the requirements whether porting the stack or porting the application will be the right approach. Some years back (in the old stack), a port for VxWorks was created and compared to Linux/RTPREEMPT. Back then, VxWorks performed better regarding minimum cycle time and jitter behaviour on standard PC hardware. However, since then RTPREEMPT has also evolved. Best regards, Wolfgang
Hi Simon, Generally, this would be possible when implementing the extension "Multiple ASnd" (EPSG 302-B). The openPOWERLINK stack is able to make use of "Multiple ASnd" when run as a CN, but not as an MN. It would require a change of the implementation of the asynchronous scheduler of the MN that is not on the roadmap. Best regards, Wolfgang
Hi Simon, There used to be an implementation for VxWorks in the old branch of openPOWERLINK (openPOWERLINK 1.x series). During the move to version 2.x it was decided to drop VxWorks support and purely focus on Linux as the main target operating system. You may, however, take a look into the current sources and even find some VxWorks code parts ported to 2.x. But they have never been tested and most likely need some "polishing". Out of curiosity: Can you describe your application that you are about...
Hi Simon, In order to implement this object, you'd first of all need to gather all error events that are happening in the stack at a central position. This could be done by posting error events that are cought by a single error handling module which then keeps the error events in a FIFO-style buffer. The buffer is then exposed to the world via the object 1300h in which each sub-object is representing the events (sub-object 1 represents the most recent error, sub-object 2 the previous error...) Object...
Hi Simon, The xdd/xdc file is only a description of the object dicitionary, but not the OD itself. So changing anything in the xdd/xdc file does not change anything in the stack. Only the configuration tool (such as openCONFIGURATOR) would then use different values. So answering your question: The stack uses the values that are in the objdict.h. Those may be overwritten by values set in the initialization structure and values passed in via the cdc file. Best regards, Wolfgang
Hi Simon, As you correctly wrote, only adding the object does not help, as the functionality behind is then still not implemented or at least not connected to the object dictionary. A question that arises is why you'd need a specific error recognition mechanism that is currently not implemented in the stack? Best regards, Wolfgang
Hi Simon, You'll be able to transfer the nettime in the SoC in openPOWERLINK 2.7.0 or higher. Until the final release, you can checkout the code in GitHub in the develop-2.7 branch. Hope that helps, Wolfgang
Hi Wesley, Using the virtual Ethernet interface with an IP-based protocol is surely the easiest way to transfer a file, as the SDO command "Write File" is optional and not implemented in the openPOWERLINK stack. I assume that with "block size" you refer to the maximum size of an Ethernet frame in the asynchronous phase. In this case, this value is configurable for the POWERLINK network and is called "Asynchronous MTU" (look into openCONFIGURATOR to set that value). By default, it is set to 300 Bytes...
Hi, This is a support forum handled by the Open Source community around openPOWERLINK. If you need business-level support (immediate reaction) or help for your implementation, you may get in contact with a service provider with POWERLINK knowledge such as e.g. Kalycito Infotech. Best regards, Wolfgang
Hello Akshay, If you check your Wireshark trace, you'll see the reason for the NMT Reset command is printed in the info field of the according frame (frame #59 of your trace). It there states "E_NMT_NO_STATUS_RES". However, there is not even a StatusRequest frame visible in the trace, so you most likely have some problem in your MN (MN believes that i has sent a StatusRequest, but this is never reaching the network). Best regards, Wolfgang
Hello Wesley, That sounds like a bug in the stack. Could you please report this behaviour in our issue tracker? Thanks and best regards, Wolfgang
Hello Wesley, The objdict.h defines the values that are used by the stack itself, while the xdd describes these values for configuration tools such as the openCONFIGURATOR. The rule is that the xdd shall be equal to the real object dictionary of the device (given by objdict.h in the openPOWERLINK stack), since the configuration tool calculates several settings based on the values of the provided xdd files. So, in your case you can either directly set the value in the objdict.h or via source code...
Hello Viacheslav, The openPOWERLINK stack is prepared for running Linux on the ARM part of the Zynq. If you want to use a no-os variant, you need to adapt the stack sources accordingly. For that you may check-out older stack versions (< 2.5.x) that had the user part of the stack running on the plain ARM (without Linux). The kernel part has always been running on a Microblaze, though. Best regards, Wolfgang
Hi Wesley, You are now describing the other direction, so coming from basic Ethernet mode back into a POWERLINK MN mode. However, I suggest to you that you just give it a try if it works, as we have never tried out this behaviour. Best regards, Wolfgang
Hi Simon, That should be fine as the values given to the stack during initialization will overwrite the settings of the object dictionary. Finally, you only have to adapt the XDD file with the new values accordingly. Best regards, Wolfgang
Hi Wesley, Please refer to the MN NMT state machine of the POWERLINK specification. There it is stated that a transition from any active POWERLINK mode to NMT_MS_BASIC_ETHERNET is not allowed. The basic Ethernet mode can only be reached after a restart of the MN. Best regards, Wolfgang
Hi Akshay, There might be a lot of reasons why the CN is going to a reset state. You should first do a trace now and investigate whether the MN is sending a reset command or if the CN is doing the reset on its own. Then you can continue finding the root cause on the respective side. Best regards, Wolfgang
Hi Simon, Please take a look at the IsochronousRxMaxPayload and the IsochronousTxMaxPayload of your CN. These values can be set via the object dictionary (objdict.h) or via the initial parameter structure passed to the stack during initialization. FYI: The demo_mn_console of the openPOWERLINK stack initializes with a TxMaxPayload of 256 Bytes, thus any larger mapping than that in Tx direction is not accepted by the stack. Best regards, Wolfgang
Hi Nadim, I have a strong doubt that an Arduino is able to handle POWERLINK due to its limited performance and ressources. However, if you want to give it a try, take a look at the porting guide for more information on where and what you have to adapt in the source code. Best regards, Wolfgang
Hi Paramesh, Please provide more specific information in order for someone to help here. E.g. What state is your CN and what state would you expect it to be in? Did you take and analyze network traces? Best regards, Wolfgang
Hello Chengjing, The SDO abort code for object 0x1011 is not a problem. It only means that the MN tries to restore the CN settings to default values, but the parameter store/restore function is not supported. You can ignore error codes related to the objects 0x1010 and 0x1011. The second SDO abort code most likely is caused by trying to enable more mapping entries than are allowed on the specific CN. So there's a problem in the MN configuration, which might originally be caused by a wrong CN XDD....
Hello Chengjing, This posting is quite old and referring to the openPOWERLINK stack 1.x which has been discontinued some years ago. The old Wiki has also been replaced by the full source documentation of the openPOWERLINK stack that you can find here. To answer your question: NetX is not supported by openPOWERLINK 2.x, and the modules referred above have been removed from the stack sources, because they were not tested and maintained any longer. If you are up to building a CN device, please directly...
Hello Akshay, openCONFORMANCE is only testing the POWERLINK conformance of a CN, not an MN. So, you cannot run it on a full POWERLINK network with an MN inside. In order to do a conformance test, you have to only attach one CN with node ID 1 to the PC running openCONFORMANCE. Other nodes shall not be in the same network. Best regards, Wolfgang
Hello Simon, The timeslots for each CN are configured via the object dictionary of the MN (cf. object 0x1F92). The MN sends its PReq and waits for the PRes reception or the timeout given in 0x1F92/#nodeid. Frankly speaking, we have never tried to modify those values. But considering that POWERLINK is implemented in software without modifications of the MAC layer, it should work in any kind of Ethernet-based systems. At least I am aware of installations in which POWERLINK is partially run over 10...
Hi Simon, 1) You can calculate the duration by knowing the size of the PReq + the size of the PRes (1 Bit takes 10ns on the line in a 100 MBit network). Consider also the preamble... of Ethernet here. Then, you have to add the minimum inter-frame gap that is at least 960ns, but in reality is given by the time it takes for the CN to respond to the MN's request. And finally you have to add the propagation delay of the frames on the line given by the cable length and the delays from hubs/switches between...
Hi Romain, It is available in the member section of the EPSG homepage: EPSG 302-F V-1-0-0 DS, Part F: Modular Device Best regards, Wolfgang
Hi Romain, The two indexes are used for updates of modular devices. The first index (0x1027) is an array pointing to the array object(s) of the identification of the according sub-module (e.g. vendor ID, product code...). The second object (0x1F55) is an array pointing to the list(s) of firmware domains for the sub-modules. They are both arrays of arrays, since one head module can contain several sub-buses with several modules each. You can find all information in the EPSG specification 302-F (Modular...
Hello, An implementation of DNA is not planned for openPOWERLINK. What kind of application or device are you implementing that requires this feature? Best regards, Wolfgang
Hello Juan, I guess, your question is how the wire speed is selected in a POWERLINK network. The answer is that this is up to the connected devices like in any other Ethernet installation (it's actually decided by the PHY and its configuration). So, if your device supports e.g. 1 GBit/s and auto-negotiation and is connected to a pure 100 MBit/s device, it will automatically switch to 100 MBit/s mode. Connected to another 1 GBit/s device it will also use 1 GBit/s. So, POWERLINK itself does not care...
Hi Rama, XDD is an XML-based format that describes the features and interfaces of the device such as vendor and product name, version, object dictionary... You can edit it with any text or XML editor. You'll find information and examples about it in the Technical Download section of the EPSG homepage. Best regards, Wolfgang
Hi Simon, First of all, you need to modify objdict.h of MN and CN, adapt the application accordingly and recompile it additionally to adapting the xdd file. However, as I cannot open the capture file, I can't provide any help here. It just sounds very weird that you see a frame-doubling on the bus. That could also be a problem of the network capturing. Did you try to run Wireshark on a second PC or use some analyzer hardware for precise timestamping (e.g. B&R X20ET8819)? Best regards, Wolfgang
Hi Simon, Your attachment is not a Wireshark trace (Wireshark is refusing to open it even after renaming it to .pcap). But it's not a PowerPoint (as indicated by the file extension) either. Please post it again! Best regards, Wolfgang
Hi, XDD files are provided by the device manufacturer of the according device. E.g. if you are using I/Os from B&R, you can download the XDD package for POWERLINK I/O devices on the B&R homepage in the download section of the POWERLINK bus controller. If you create your own device, you have to provide the XDD yourself. Best regards, Wolfgang
Hello Federico, As you are referring to B&R products, but this is the openPOWERLINK forum, I ask you to direct your questions to your local B&R office. However, my assumption in this case is that both, the delay as well as the jitter are increased by the wireless bridge in a way that is not tolerated by the drive. Typically, servo drives require extremly precise timing of the network, especially if they adjust their internal loop control according to the network cycle as the ACOPOS is doing. To check...
Hello Clemens, What I know, SDO FileRead/FileWrite has not been implemented by any POWERLINK stack so far. That is probably the reason no-one can provide an answer to you from the practical side. However, your questions are more directed towards the specification of the methods. The right place for such a discussion is the EPSG technical working group. As an EPSG member you can provide your feedback together with a change proposal to the EPSG office (see here). Best regards, Wolfgang
Hello Clemens, If you are able to provide a pull request with this change within the next days, we could still integrate it into the 2.6 stack release. Please let us know, if this is feasible for you. Thanks and best regards, Wolfgang
Hi Simon, Your understandig is correct. Let me summarize the most common use cases: For application changes, you only need to adjust the application. For changes in the network configuration (openCONFIGURATOR project), you need to use the new CDC file along with an adapted access to the process images (e.g. compile the application with a new xap.h). For changes of the object dictionary, you need to adapt the objdict.h + the according xdd file and re-build the openCONFIGURATOR project with the new...
Hi Simon, I have not heard about such a usecase so far. Best regards, Wolfgang
Hello Xiaokang, POWERLINK is generally independent of the underlaying physical layer. Therefore, it's possible to run the openPOWERLINK stack also with e.g. 10MBit (10-Base-T) or 1GBit (1000-Base-T) hardware as well as with fibre optics... However, all available POWERLINK components in the market are based on 100 MBit hardware (100-Base-TX). So, you'd need to develop your own hardware in order to use a full GBit POWERLINK network. Best regards, Wolfgang
Hello Simon, POWERLINK is not using PRP for ring redundancy. The actual implementation of ring redundancy is described in the high-availability specification DS302-A of the EPSG. It's available for EPSG members in the download section of the EPSG homepage. Best regards, Wolfgang
Hi, It sounds like the linker is not able to locate the Qt5 libraries. Is CMake generating the project file without any warnings or errors? Usually, you have to specify 'Qt5Core_Dir' manually in CMake? Best regards, Wolfgang
Hi Juan, The libpcap (originated from Wireshark) is used by openPOWERLINK as a generic driver towards the Ethernet cards. It therefore works with any hardware that is supported by the LInux kernel. The drawback is that it is not able to reach the same level of performance compared to the kernel drivers. You can find the documentation of the current stack release regarding the Zynq platform here. Best regards, Wolfgang
Hi Vinothini, Sounds like you're trying to run the stack with the pcap daemon, but...
Hi Vinothini, On the EPSG homepage you'll find the specification and examples for...
Hi Juan, Am I right in the assumption that you are running with the emacps driver...
Hi, You always get the xdd files from the device manufacturer. So, if you create...
Hi Alexey, Formally, you are right that you do not need to set any of the "SDO over...
Hello taiw, There was a bug with the emacps edrv in the previous openPOWERLINK version....
Hi, openPOWERLINK is a generic stack and can be compiled for and run on any platform....
Hello Clemens, Adding multiplexing support to the openPOWERLINK MN is not on our...
Hi, It looks like the stack is up and running fine (cf. statement "NmtMsOperational")....
Hi Clemens, Your idea sounds reasonable. Could you please create a pull request for...
Hi all, @Kalycito: No, this is not the problem here, because object 0x1011/1 is used...
Hello Clemens, Probably, you have forced the object on the CN? There is a command-line...
Hello Clemens, Generally, the slot of each PReq / PRes pair in the cycle is not defined...
Hi Patrik, You can ignore the CMake warnings. They'll be fixed in the next release...
Hi Clemens, Thanks for this information and your suggestion! Our preferred way of...
Hi Juan, That rather sounds like your PC is not getting a proper link to the hub....
Hi, Your network seems to be running fine (the two CNs are in state CS_OPERATIONAL)....
Dear all, The openPOWERLINK forums are public and open for everyone to post. Therefore,...
Hello Clemens, Thanks for your feedback! We'll check your suggestions to statically...
Hi Juan Ignacio, Okay, so I just recommended the other way (number 1 in my list),...
Hi, To clarify: There are two possibilities on how to use libpcap in POWERLINK: First...
Hi Juan Ignacio, Did you choose the correct setting of the openPOWERLINK library...