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.

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 |
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) |
Download BX (Beispieldatei)
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 |
Download BX (Beispieldatei)
![]() | 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 |
---|---|---|
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 |