Especially with PROFINET Controllers on platforms with limited real-time capabilities, such as Linux or CODESYS Control Win V3, a send clock selected too low (< 4 ms) often cannot be maintained. This is indicated
by the error "AR consumer DHT expired" (PNIOStatus = 0xCF81FD05
).
Common causes for aborting of the connection
-
Powersafe policy
Modern operating systems and CPUs typically have numerous energy-saving features which "sleep" parts of the system (CPU or network adapter). "Waking up" those components can be delayed so that sending can no longer be done reliably. Curiously enough, a low load on the system causes communication problems. Therefore, these Powersafe functions should be disabled if problems occur.
-
Real-time patch (Linux)
To make sure that short send clocks (1 ms or less) are reliable, it is usually necessary to install a real-time patch on the Linux system. This depends on the performance and load of the respective platform. Recognizable by a large jitter of the "Profinet_IOTask" (in task monitoring).
-
Increase of the priority of the network task which manages the PROFINET network adapter.
Use the PLC shell to execute these commands (for details, see the runtime description):
-
Traffic scheduling (Linux)
If you use the Profinet network adapter in parallel with other services which generate a high volume of data traffic (such as a large web visualization), then the Profinet real-time data may be displaced on the adapter. This can be prevented by traffic scheduling, in which the Profinet data is prioritized higher.
Example:
Linux.PACKET_QDISC_BYPASS
is set in the *.cfg file of the runtime. The entire remaining traffic is limited in bandwidth and set to low priority (/etc/interfaces
):iface eth0 inet static
...
#move all outgoing traffic to a default class with low priority
pre-up /sbin/tc qdisc add dev $IFACE root handle 1:0 htb default 1
pre-up /sbin/tc class add dev $IFACE parent 1:0 classid 1:1 htb rate 1Mbps ceil 1Mbps prio 0