20.03.2018 Aufrufe

EtherCAT Error Handling

Sporadische Kabelprobleme sind im EtherCAT Feldbus-System oft schwer zu finden. Sowohl der EtherCAT Master Stack, als auch der Ethernet Core bieten mit verschiedenen Bibliotheksfunktionen und Elementen (z.B. Error Counter) dazu Hilfe.

Sporadische Kabelprobleme sind im EtherCAT Feldbus-System oft schwer zu finden. Sowohl der EtherCAT Master
Stack, als auch der Ethernet Core bieten mit verschiedenen Bibliotheksfunktionen und Elementen (z.B. Error
Counter) dazu Hilfe.

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

TechNews: <strong>EtherCAT</strong> <strong>Error</strong> <strong>Handling</strong><br />

Cable Break Detection<br />

Azyklische Fehleranalyse<br />

Wurde im zyklischen Betrieb ein Fehler erkannt, kann dieser nun über ein azyklisches Kommando verifiziert<br />

werden. Dazu muss zuerst das Flag ERR_FLAG des Ethernet Cores zurückgesetzt werden, damit anschließend<br />

die <strong>Error</strong> Counter ausgelesen werden können.<br />

__inline void __CheckStation<strong>Error</strong>(PSTATION_INFO pStation)<br />

{<br />

RX_ERR_CNT RxErrCnts = { 0 };<br />

ADD_ERR_CNT AddErrCnts = { 0 };<br />

LOST_LINK_CNT LostLinkCnts = { 0 };<br />

//First try to reset ethernet core error flag<br />

if (__pUserStack->hdr.err_flag)<br />

__pUserStack->hdr.err_flag = FALSE;<br />

//Do some delay<br />

Sleep(100);<br />

//Check flag again<br />

if (__pUserStack->hdr.err_flag == FALSE)<br />

{<br />

//Send ethercat command<br />

if (ERROR_SUCCESS == Ecat64SendCommand(<br />

FPRD_CMD,<br />

pStation->PhysAddr,<br />

0x300,<br />

sizeof(RX_ERR_CNT),<br />

(PUCHAR)&RxErrCnts))<br />

if (ERROR_SUCCESS == Ecat64SendCommand(<br />

FPRD_CMD,<br />

pStation->PhysAddr,<br />

0x308,<br />

sizeof(ADD_ERR_CNT),<br />

(PUCHAR)&AddErrCnts))<br />

}<br />

}<br />

if (ERROR_SUCCESS == Ecat64SendCommand(<br />

FPRD_CMD,<br />

pStation->PhysAddr,<br />

0x310,<br />

sizeof(LOST_LINK_CNT),<br />

(PUCHAR)&LostLinkCnts))<br />

{<br />

…<br />

}<br />

Die Fehleranalyse kann noch weiter verfeinert werden, in dem zusätzlich die <strong>Error</strong>-Counter des Ethernet-Cores mit<br />

der Funktion Sha64EthCheckStatus abgerufen werden.<br />

SYBERA GmbH, Geschäftsführer J.Rall, Hohenzollernstr.2, 71088 Holzgerlingen, Tel: 07031-744-608 (Fax: -609), Email: info@sybera.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!