Skip to main content
Search

Aborting of the Connection (DHT)

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):

    irq-list
    irq-set prio eth 0
  • 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