Runtime System Configuration

When problems of any kind occur, first check the configuration of the operating system and the CODESYS runtime system, as described below.

Firewall and packet filter

The PROFINET stacks do not use the configured Ethernet adapters of the PLC exclusively. The PROFINET protocols run parallel with the network protocols (for example, UDP), as well as building on these. In this way, these Ethernet adapters can also be used for CODESYS communication. However, the firewall configuration (if active) must be modified to the PROFINET requirements.

Network protocols used

  • PROFINET RT (Ethertype = 0x8892)

  • UDP, Port 0x8894, as well as free ports in the range of 0xC000 – 0xFFFF ( – 0xC0FF is usually sufficient).

    Also for incoming packets.

  • LLDP (Ethertype 0x88CC)

  • ARP (Ethertype 0x0806)

It is usually sufficient to unblock the UDP ports at the firewall.

The PROFINET-RT protocol is not an IP protocol. It cannot be routed and is restricted to the local network.

If you suspect that the firewall is the cause of the communication problems, then deactivate it temporarily in an isolated environment.

Runtime system configuration

For communication with the PROFINET RT protocol, the PROFINET IEC stacks use a special runtime system interface (SysEthernet) that allows the transmission of RAW Ethernet frames.

This runtime system component must be activated in the configuration file of PLC.

[ComponentManager]
Component.1=CmpSysEthernet

For Linux systems, the protocol filter must also be deactivated.

[SysEthernet]
Linux.ProtocolFilter=3
[SysSocket]

For some platforms, a packet filter is also active on the operating system level, and the Ethernet adapter must be switched explicitly to promiscuous mode (for example for Linux).

For example, in /etc/network/interfaces:

auto eth0
pre-up ifconfig $IFACE promisc up
post-down ifconfig $IFACE promisc down