连接丢失 (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