User Tools

Site Tools


bfh:ti:fbe:i3s:unterricht:barkeeper:can_commands

CAN Kommandos

Aufbau



Allgemein

Die CAN-Nachrichten sind immer nach demselben Muster aufgebaut. Jeder Node kann in einem ID Range kommunizieren. Dabei besitzt er eingehende und ausgehende IDs. Folgende fünf Nachrichtentypen sind vorhanden:

  • Status Abfrage
  • Status Antwort
  • Kommando
  • Kommando Antwort
  • Reset

Das erste Datenbyte der CAN-Meldung (falls vorhanden) definiert den Typ der Meldung. Die restlichen Datenbytes werden in den Spalte DB1-7 der nachfolgenden Tabellen beschrieben. Datenwerte von zwei oder mehr Bytes werden als Big-Endian (MSB zuerst) gesendet. Jede Meldung hat immer die selbe Länge. Nicht benötigte Datenbytes sind undefiniert und müssen nicht beachtet werden.


CAN ID's

Ein CAN-Node verwendet immer fünf CAN ID's, wovon Nibble 1 und 2 (0xnnF) den Node identifizieren und Nibble 0 (0xFFm) den Typ der Nachricht. Drei der ID's werden für eingehende Nachrichten und zwei für ausgehende verwendet. Der Barkeeper funktioniert nach dem Master-Slave Prinzip. Ein CAN Master (Carme-Kit) sendet Anfragen an Slave's (Nodes) welche nur in diesem Fall antwort senden. Einzige Ausnahme sind “Events” im Fehlerfall des Roboterarms (z.b. Emergency stop).

Can-Nodes (Nibble 1-2)

CAN ID Can-Node
0x21m Roboter
0x22m Förderband
0x23m Waage
0x24m Drehteler

Nachrichtentypen (Nibble 0)

CAN ID Funktion Beschreibung Richtung
0xnn0 Status Anfrage Zustandsanfrage, löst eine 0xnn1 Antwort aus Master → Slave
0xnn1 Status Antwort Zustand des Nodes (Fehler, Aktoren, Position, etc.)Master ← Slave
0xnn2 Kommando Abalufsteuerung Master → Slave
0xnn3 Kommando AntwortAntwort auf Kommandos (ACK, Fehler) Master ← Slave
0xnnF Reset Reset des CAN-Nodes Master → Slave


Fehlercodes

Jeder CAN-Node kann im Fehlerfall mit einem bestimten Code im Datenbyte 1 (DB1) Antworten. Folgende allgemeine Codes können auftreten:

Code (DB1) Fehler Beschreibung
0x00 System Der Knoten hat einen Fehler und ist nicht mehr Einsatzbereit.
0x01 Msg. Typ Unbekannt Der Typ der Meldung ist unbekannt.
0x02 Msg. Länge Die Länge der Meldung ist falsch.
0x03 Daten Ungültig Die in der Meldung enthaltenen Daten sind ungültig (z.B. Ausserhalb des Wertebereichs).
0x04 Beschäftigt Der Knoten ist beschäftigt und kann zurzeit keinen Befehl annehmen.
0x05 Illegaler Zustand Der Knoten kann den Befehl nicht ausführen, weil es der aktuelle Zustand nicht zulässt

Ein Fehler des Förderbands bei falscher Nachrichtenlänge (Status Anfrage) würde daher wie folgt aussehen:

ID:  0x221
DB0: 0x00
DB1: 0x02
bfh/ti/fbe/i3s/unterricht/barkeeper/can_commands.txt · Last modified: 2020/01/28 16:31 by ief12