Skip to main content

Pérdida de conexión (DHT)

Especialmente con PROFINET Controladores en plataformas con capacidades limitadas en tiempo real, como Linux o CODESYS Control Win, un reloj de envío seleccionado demasiado bajo (< 4 ms) a menudo no se puede mantener. Esto se indica mediante el error "DHT del consumidor AR caducado" (PNIOStatus = 0xCF81FD05).

Causas comunes de pérdida de conexión

  • Política de seguridad energética

    Los sistemas operativos y las CPU de hoy en día suelen tener numerosas funciones de ahorro de energía que "suspenden" partes del sistema (CPU o adaptador de red). Los componentes se pueden "despertar" con tal retraso que ya no se pueden enviar de forma fiable. Curiosamente, una carga baja en el sistema provoca problemas de comunicación. Por lo tanto, estas funciones de Powersafe deben desactivarse si surgen problemas.

  • Parche en tiempo real (Linux)

    Para asegurarse de que los relojes de envío cortos (1 ms o menos) sean estables, generalmente es necesario instalar un parche en tiempo real en el sistema Linux. Esto depende del rendimiento y la carga de la plataforma respectiva. Reconocible por una gran fluctuación de "Profinet_IOTask" (en la supervisión de tareas).

  • Aumento de la prioridad de la tarea de red que gestiona la PROFINET adaptador de red.

    Utilice el shell del PLC para ejecutar estos comandos (para obtener más información, consulte la descripción del tiempo de ejecución):

    irq-list
    irq-set prio eth 0
  • Programación de tráfico (Linux)

    Si utiliza el adaptador de red Profinet en paralelo con otros servicios que generan un gran volumen de tráfico de datos (como una gran visualización web), los datos en tiempo real de Profinet pueden desplazarse en el adaptador. Esto se puede evitar mediante la programación del tráfico, en la que los datos de Profinet tienen una mayor prioridad.

    Ejemplo: Linux.PACKET_QDISC_BYPASS se establece en el archivo *.cfg del tiempo de ejecución. Todo el tráfico restante tiene un ancho de banda limitado y se establece en prioridad baja (/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