Skip to main content

连接丢失 (DHT)

特别是与 PROFINET 实时能力有限的平台上的控制器,例如 Linux 或 CODESYS Control Win, 选择太低 (< 4 ms) 的发送时钟通常无法维持。这由错误“AR 消费者 DHT 已过期”(PNIOStatus = 0xCF81FD05)。

连接丢失的常见原因

  • 电源安全政策

    当今的操作系统和 CPU 通常具有许多省电功能,可以“休眠”系统的某些部分(CPU 或网络适配器)。组件可能会以这样的延迟“唤醒”,以至于它们不再能够可靠地发送。奇怪的是,系统上的低负载会导致通信问题。因此,如果出现问题,应禁用这些 Powersafe 功能。

  • 实时补丁 (Linux)

    为了确保短发送时钟(1 ms 或更短)稳定,通常需要在 Linux 系统上安装实时补丁。这取决于各自平台的性能和负载。可通过“Profinet_IOTask”(在任务监控中)的大抖动来识别。

  • 增加管理网络任务的优先级 PROFINET 网络适配器。

    使用 PLC shell 执行这些命令(详情请参见运行时说明):

    irq-list
    irq-set prio eth 0
  • 流量调度(Linux)

    如果您将 Profinet 网络适配器与生成大量数据流量的其他服务(例如大型 Web 可视化)并行使用,Profinet 实时数据可能会在适配器上移位。这可以通过流量调度来避免,其中 Profinet 数据的优先级更高。

    例子: Linux.PACKET_QDISC_BYPASS 在运行时的 *.cfg 文件中设置。所有剩余流量都受到带宽限制并设置为低优先级(/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