p-net Profinet device stack¶
Source repository: https://github.com/rtlabs-com/p-net
Continuous integration: https://travis-ci.com/rtlabs-com/p-net
Profinet device stack implementation. Key features:
Conformance Class A and B
Real Time Class 1
Easy to use
Extensive documentation and instructions on how to get started.
Build and run sample application on Raspberry Pi in 30 minutes.
Written in C.
Linux, RTOS or bare metal.
Sources for supported port layers provided.
The RT-Labs Profinet stack p-net is used for Profinet device implementations. It is easy to use and provides a small footprint. It is especially well suited for embedded systems where resources are limited and efficiency is crucial. The stack is supplied with full sources including porting layers and a sample application.
Also C++ (any version) is supported for application development.
The main requirement on the platform is that it can send and receive raw Ethernet Layer 2 frames.
Process IO data exchange
Configurable number of modules and sub-modules
Bare-metal or OS
Porting layer provided
Supports I&M0 - I&M4. The I&M data is supported for the device, but not for individual modules.
Limitations or not yet implemented:
Only a single Ethernet port (no media redundancy)
No startup mode legacy
No support for RT_CLASS_UDP
No support for DHCP
No fast start-up
No MC multicast device-to-device
No iPar (parameter server) support
No support for time synchronization
No UDP frames at alarm (just the default alarm mechanism is implemented)
This software is dual-licensed, with GPL version 3 and a commercial license. See LICENSE.md for more details.
The platform must be able to send and receive raw Ethernet Layer 2 frames, and the Ethernet driver must be able to handle full size frames. It should also avoid copying data, for performance reasons.
cmake 3.14 or later
gcc 4.6 or later
See the “Real-time properties of Linux” page in the documentation on how to improve Linux timing
Workbench 2020.1 or later
An example of microcontroller we have been using is the Infineon XMC4800, which has an ARM Cortex-M4 running at 144 MHz, with 2 MB Flash and 352 kB RAM. It runs rt-kernel, and we have tested it with 9 Profinet slots each having 8 digital inputs and 8 digital outputs (one bit each). The values are sent and received each millisecond (PLC watchdog setting 3 ms).
The p-net stack contains no third party components. Its external dependencies are:
An operating system (if used)
Tools used for building and documentation (not shipped in the resulting binaries):
cmake (BSD 3-clause License)
Sphinx (BSD license)