Emergency-Telegramme und Diagnose

Über den NodeState wird der Status des CAN-Slaves angezeigt. Das DiagFlag wird gesetzt wenn ein Emergency-Telegramm empfangen wurde. Der EmergencyCounter zählt bei jedem Emergency-Telegramm eins hoch.

NodeState, DiagFlag und EmergencyCounter

Wert NodeState

Beschreibung

0

No error

1

Node deactivated

2

Node not found

4

SDO syntax error at Start Up

5

SDO data mismatch at Start Up

8

Node start up in progress

11

SSB Bus off

12

Pre-Operational

13

Servere bus fault

14

Guarding: toggle error

20

TxPDO too short

22

Expected TxPDO is missing

23

Node is Operational but not all TxPDOs were received

ADS Port 153

Auslesen der Emergency Telegramme mit AdsRead

Eingangsparameter

Beschreibung

NETID

lokale NetId des BX

Port Nummer

153

IDXGRP

16#xxxxF180 (xxxx) NodeId, das Diag Flag wird nur beim Auslesen von mindesten 106 Byte zurückgesetzt
16#xxxxF181 (xxxx) NodeId, das Diag Flag wird sofort zurückgesetzt

IDXOFFS

Byte Offset

Beschreibung des Arrays

Offset

Bit

Wert / Beschreibung

0 - 1

Bit 0

reserviert

Bit 1

Boot-Up-Message nicht empfangen oder fehlerhaft

Bit 2

Emergency-Overflow

Bit 3 - 15

reserviert

2 - 3

Bit 0 - 14

TX-PDO (i+1) empfangen

Bit 15

alle TX-PDOs 16-n empfangen

4 - 5

Bit 0 - 4

1: falsche TX-PDO-Länge

2: synchrone TX-PDO fehlt

3: Node meldet PRE-OPERATIONAL

4: Event-Timer bei einer TX-PDO abgelaufen

5: keine Antwort beim Guarden

6: mehrmals kein Toggeln beim Guarden

Bit 5 - 15

zugehörige COB-ID

6

Bit 0 - 7

1: falscher Wert bei einem SDO-Upload

2: falsche Länge bei einem SDO-Upload

3: Abort bei einem SDO-Up-/Download

4: falsches Datum bei einer Boot-Up-Message

5: Timeout beim Warten auf Boot-Up-Message

7

Bit 0 - 7

2: falscher SDO-Command specifier

3: SDO-Toggle-Bit hat sich nicht geändert

4: SDO-Länge zu groß

5: SDO-Abort

6: SDO-Timeout

8 - 9

Bit 0 - 7

Index des SDO-Up/Downloads

10

Bit 0 - 7

Subindex des SDO-Up/Downloads

11

Bit 0 - 7

reserviert

12

Bit 0 - 7

errorClass des Aborts

13

Bit 0 - 7

errorCode des Aborts

14 - 15

Bit 0 - 15

additionalCode des Aborts

16 - 19

 

gelesener Wert (falls Offset 6 = 1)

20 - 23

 

erwarteter Wert (falls Offset 6 = 1)

24 - 25

 

Anzahl der folgenden Emergencies

26 - n

 

Emergencies (jeweils 8 Byte)

Emergency-Telegramme und Diagnose 1: Download BX (Beispieldatei)

Emergency-Telegramme und Diagnose 2: Download Beispiel System-Manager File BX (Beispieldatei)

emergencymessage.prx

emergencymessage.tsm

Auslesen der Anzahl der PDO Telegramme mit AdsRead

Eingangsparameter

Beschreibung

NETID

lokale NetId des BX

Port Nummer

153

IDXGRP

16#xxxxF930 (xxxx) NodeId

IDXOFFS

0

Emergency-Telegramme und Diagnose 3: Download BX (Beispieldatei)

Emergency-Telegramme und Diagnose 4:

Konfiguration der Node-ID erforderlich

Die Node-ID muss vor dem Aufruf des ADS-Baustein in der TwinCAT-Konfiguration konfiguriert worden sein.

can_counter_pdo.prx

Beliebige CAN Nachricht verschicken

Mit diesem ADSWRITE Befehl ist es möglich eine beliebige CAN Nachricht zu versenden.

Eingangsparameter

Beschreibung

NETID

lokale NetId des BX

Port Nummer

153

IDXGRP

16#0000F921

IDXOFFS

0

LEN

11 Bytes

SRCADDR

Pointer auf ein ARRAY von 11 Byte

Aufbau der 11 Byte CAN Daten

Byte

Beschreibung

Beispiel Node 7 SDO 0x607
Len 8 Download Request 0x2100 (Index)
Sub Index 1 - Value "1"

1

COB-ID LowByte

0x06 (SDO Low Byte)

2

COB-ID HighByte

0x07 (SDO High Byte)

3

LEN (Länge)

0x08 (Len, kann hier auch 5 sein)

4

Daten[1]

0x22 (Download Request)

5

Daten[2]

0x00 (Index Low Byte)

6

Daten[3]

0x21 (Index High Byte)

7

Daten[4]

0x01 (Sub Index)

8

Daten[5]

0x01 (Value "1")

9

Daten[6]

0x00

10

Daten[7]

0x00

11

Daten[8]

0x00