Skip to main content

Perdita di connessione (DHT)

Soprattutto con PROFINET Controller su piattaforme con funzionalità in tempo reale limitate, come Linux o CODESYS Control Win, un clock di invio selezionato troppo basso (< 4 ms) spesso non può essere mantenuto. Ciò è indicato dall'errore "AR consumer DHT scaduto" (PNIOStatus = 0xCF81FD05).

Cause comuni di perdita di connessione

  • Politica Powersafe

    I sistemi operativi e le CPU odierni hanno in genere numerose funzionalità di risparmio energetico che "sopprimono" parti del sistema (CPU o adattatore di rete). I componenti possono essere "risvegliati" con un tale ritardo da non poter più essere inviati in modo affidabile. Curiosamente, un basso carico sul sistema causa problemi di comunicazione. Pertanto, queste funzioni Powersafe dovrebbero essere disattivate se si verificano problemi.

  • Patch in tempo reale (Linux)

    Per assicurarsi che i clock di invio brevi (1 ms o meno) siano stabili, di solito è necessario installare una patch in tempo reale sul sistema Linux. Ciò dipende dalle prestazioni e dal carico della rispettiva piattaforma. Riconoscibile da un ampio jitter di "Profinet_IOTask" (nel monitoraggio delle attività).

  • Incremento della priorità del task di rete che gestisce il PROFINET scheda di rete.

    Utilizzare la shell del PLC per eseguire questi comandi (per i dettagli, vedere la descrizione del runtime):

    irq-list
    irq-set prio eth 0
  • Programmazione del traffico (Linux)

    Se si utilizza la scheda di rete Profinet in parallelo con altri servizi che generano un volume elevato di traffico dati (come una visualizzazione Web di grandi dimensioni), i dati in tempo reale di Profinet potrebbero essere spostati sulla scheda. Ciò può essere evitato mediante la pianificazione del traffico, in cui i dati Profinet hanno una priorità maggiore.

    Esempio: Linux.PACKET_QDISC_BYPASS è impostato nel file *.cfg del runtime. Tutto il traffico rimanente è limitato in larghezza di banda e impostato su priorità bassa (/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