Perte de connexion (DHT)
Surtout avec PROFINET Contrôleurs sur des plates-formes avec des capacités en temps réel limitées, telles que Linux ou CODESYS Control Win, une fréquence d'émission sélectionnée trop basse (< 4 ms) ne peut souvent pas être maintenue. Ceci est indiqué par l'erreur "AR consumer DHT expired" (PNIOStatus = 0xCF81FD05
).
Causes courantes de perte de connexion
Politique de sécurité d'alimentation
Les systèmes d'exploitation et les processeurs modernes disposent généralement de nombreuses fonctionnalités d'économie d'énergie qui "dorment" des parties du système (processeur ou adaptateur réseau). Le « réveil » de ces composants peut être retardé de sorte que l'envoi ne peut plus être effectué de manière fiable. Curieusement, une faible charge sur le système entraîne des problèmes de communication. Par conséquent, ces fonctions Powersafe doivent être désactivées si des problèmes surviennent.
Correctif en temps réel (Linux)
Pour s'assurer que les horloges d'envoi courtes (1 ms ou moins) sont stables, il est généralement nécessaire d'installer un correctif temps réel sur le système Linux. Cela dépend des performances et de la charge de la plate-forme respective. Reconnaissable par une grande gigue du "Profinet_IOTask" (en surveillance de tâche).
Augmentation de la priorité de la tâche réseau qui gère le PROFINET Adaptateur de réseau.
Utilisez le shell de l'automate pour exécuter ces commandes (pour plus de détails, consultez la description du runtime) :
irq-list irq-set prio eth 0
Planification du trafic (Linux)
Si vous utilisez l'adaptateur réseau Profinet en parallèle avec d'autres services qui génèrent un volume élevé de trafic de données (comme une grande visualisation Web), les données en temps réel Profinet peuvent être déplacées sur l'adaptateur. Cela peut être évité par la planification du trafic, dans laquelle les données Profinet sont prioritaires.
Exemple:
Linux.PACKET_QDISC_BYPASS
est défini dans le fichier *.cfg du runtime. Tout le trafic restant est limité en bande passante et défini sur une priorité basse (/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