Smart Display unterstützt derzeit die CAN-Bus-Hardwareschnittstelle und verwendet das CANopen-Kommunikationsprotokoll. CANopen ist ein weit verbreitetes, auf dem CAN-Bus basierendes industrielles Kommunikationsprotokoll und kommt unter anderem in Medizintechnik, Fahrzeugtechnik, Bahnanwendungen und der Gebäudeautomation zum Einsatz. Bei der Verwendung von CANopen muss auf der Host-Seite jedoch die entsprechende CANopen-Kommunikation implementiert werden. Für Anwendungen, die lediglich eine CAN-Bus-Kommunikation benötigen, kann dies zusätzlichen Entwicklungsaufwand bedeuten. Um die Implementierung zu vereinfachen, wurde daher das Custom CAN ID-Protokoll entwickelt. Dabei ist keine Implementierung des CANopen-Protokolls auf der Host-Seite erforderlich. Stattdessen lassen sich über eine benutzerdefinierte DBC-Datei CAN IDs und Daten den entsprechenden Widgets auf dem Smart Display zuordnen und für die Echtzeitinteraktion nutzen. Dies ermöglicht eine flexiblere Umsetzung und erleichtert zugleich die Wartung der Anwendung.
Das Custom CAN ID-Protokoll verwendet hauptsächlich eine DBC-Datei (CAN Database), um CAN-Daten zu konfigurieren und deren Interaktion mit den Widgets auf dem Smart Display festzulegen. Die DBC-Datei enthält unter anderem Definitionen für CAN IDs, Nachrichtenformate und die Dekodierung der übertragenen Daten. Über eine benutzerdefinierte DBC-Datei können unterschiedliche CAN IDs und Daten den jeweiligen Widgets auf dem Smart Display zugeordnet werden. So lassen sich beispielsweise Grafiken oder Texte auf dem Display über CAN IDs und CAN-Daten steuern. Umgekehrt können Bedienelemente wie Buttons oder Slider auf dem Display zur Steuerung beziehungsweise Übertragung von CAN-Daten verwendet werden. Dadurch entsteht eine flexible und wartungsfreundliche Lösung für die Interaktion zwischen CAN-Daten und der HMI-Oberfläche.
Grundlagen zu DBC-Dateien
Eine DBC-Datei ist in der Regel eine ASCII-Klartextdatei, die Informationen über die auf dem CAN-Bus übertragenen physikalischen Signale enthält. Dazu gehören unter anderem CAN ID, Signalname, Skalierungsfaktor und Signaldefinition. Mithilfe dieser Informationen können Rohdaten aus CAN-Nachrichten dekodiert und den entsprechenden Signalen zugeordnet werden. Die DBC-Datei stellt somit die erforderlichen Definitionen bereit, um die Nutzdaten einer CAN-Nachricht in physikalische Signalwerte umzuwandeln.
Beispiel zur Dekodierung von Raw CAN Data

Liegt eine CAN-DBC-Datei vor, die die Dekodierungsregeln für die CAN ID 0x181 enthält, können die darin definierten Informationen zur Dekodierung der folgenden Daten verwendet werden.

Eine der Hauptfunktionen einer DBC-Datei besteht darin, die Regeln für die Dekodierung von CAN-Nachrichten und Signalen zu beschreiben. Das folgende Beispiel zeigt Testdaten aus einer DBC-Datei:

Aus den oben dargestellten DBC-Informationen lassen sich die folgenden Dekodierungsparameter ableiten:

Anhand dieser Dekodierungsregeln können die zuvor erfassten Raw CAN Data in die folgenden Informationen umgewandelt werden:

Wie das Beispiel zeigt, ermöglichen die in einer DBC-Datei definierten Einstellungen die korrekte Dekodierung der tatsächlichen Werte, die durch die einer CAN ID zugeordneten CAN-Daten dargestellt werden. Eine DBC-Datei beschreibt den Aufbau und die Definitionen von CAN-Nachrichten und Signalen. Dadurch können Raw CAN Data interpretiert und in die entsprechenden physikalischen Werte umgerechnet werden, sodass die über den CAN-Bus übertragenen Informationen vom System verarbeitet werden können.
DBC-Editor
Da Aufbau und Format einer DBC-Datei beim direkten Lesen und Bearbeiten relativ komplex sein können, lassen sich spezielle DBC-Editoren zur Erstellung und Bearbeitung benutzerdefinierter DBC-Dateien verwenden. Ein häufig eingesetztes Werkzeug ist Vector CANdb++ von Vector Informatik GmbH. Die Software bietet eine grafische Benutzeroberfläche zum Erstellen und Bearbeiten von DBC-Dateien, zum Hinzufügen von Nachrichten und Signalen sowie zum Definieren zugehöriger Parameter wie Message ID, Startbit, Länge, Skalierungsfaktor und Offset.

Smart Display GUI Builder – Custom CAN ID konfigurieren
Smart Display GUI Builder bietet eine übersichtliche Benutzeroberfläche zum Erstellen von Custom CAN ID-Projekten. Dazu wird eine DBC-Datei importiert und die darin definierten Messages/Signals den entsprechenden Widgets zugeordnet. Auf diese Weise können CAN-Daten auf dem Smart Display dargestellt und mit den Widgets verknüpft werden. In den folgenden Abschnitten wird beschrieben, wie ein Custom CAN ID-Projekt in Smart Display GUI Builder erstellt und die Zuordnung zwischen DBC-Datei und Widgets konfiguriert wird.
Custom CAN ID-Projekt erstellen
Geben Sie den Project-Namen ein, wählen Sie den gewünschten Smart Display-Gerätetyp aus und wählen Sie unter Protocol die Option "Custom CAN Id (CANbus)", um ein Custom CAN ID-Projekt zu erstellen.

Benutzerdefinierte DBC-Datei importieren
Wechseln Sie zur Seite DBC Viewer und klicken Sie auf "Load DBC File", um eine benutzerdefinierte DBC-Datei zu importieren. Nach dem Import können Sie die in der DBC-Datei definierten Messages, Signals und zugehörigen Konfigurationsinformationen anzeigen.

Gauge- und Horizontal Slider-Widgets konfigurieren
Wählen Sie das Gauge-Objekt aus und setzen Sie im Bereich CAN Signal der Gauge-Eigenschaften Message auf EEC1 und Signal auf EngSpeed. Dadurch wird das Gauge mit EngSpeed verknüpft. Nach der Konfiguration ändert sich der im Gauge angezeigte Wert entsprechend dem EngSpeed-Wert.

Wählen Sie das Horizontal Slider-Objekt aus und setzen Sie im Bereich CAN Signal der Horizontal Slider-Eigenschaften Message auf HorizontalSliderMessage und Signal auf HorizontalSliderSignal1. Dadurch wird der Horizontal Slider mit HorizontalSliderSignal1 verknüpft. Nach der Konfiguration ändert sich der Horizontal Slider entsprechend dem Wert von HorizontalSliderSignal1.

Interaktion zwischen CAN ID / CAN Data und Widgets simulieren
Klicken Sie auf das Symbol "Simulator With GUI", um den Simulator zu starten.

Nach dem Start des Simulators können Sie den EngSpeed-Slider im unteren Bereich bewegen, um das Senden von EngSpeed-Daten durch den Host zu simulieren und die entsprechenden Änderungen des Gauge im Simulator zu beobachten. Im Message Log auf der rechten Seite werden die Änderungen von CAN ID und CAN Data angezeigt. Darüber hinaus können Sie den Horizontal Slider im Simulator bedienen, um vom Device gesendete Daten zu simulieren.

Konfiguration des Smart Display aktualisieren
Nachdem Sie die Funktion mit dem Simulator überprüft und die korrekte Funktion bestätigt haben, verbinden Sie das Device und übertragen die Project-Einstellungen auf das Smart Display.

Warten Sie, bis das Hochladen und Aktualisieren des Projects abgeschlossen ist.

Interaktion zwischen Device CAN ID / CAN Data und Widgets überprüfen
Nachdem das Project auf das Device übertragen wurde, können Sie die Funktion des Smart Display weiter überprüfen. Verbinden Sie GUI Builder mit dem Device und klicken Sie auf "Test Device", um das Test Device Window zu öffnen und die Interaktion zwischen Host und Device zu testen.

Test Device Window
Im Test Device Window lässt sich simulieren, wie der Host entsprechend der DBC-Konfiguration die zugehörige CAN ID und CAN Data sendet. Bewegen Sie den EngSpeed-Slider, um das Senden von EngSpeed-Daten durch den Host zu simulieren und die entsprechenden Änderungen des Gauge auf dem Smart Display zu beobachten. Die CAN-Datenaufzeichnung im unteren Bereich des Fensters zeigt CAN ID und CAN Data an. Darüber hinaus können Sie den Horizontal Slider auf dem Smart Display bedienen, um zu überprüfen, ob die vom Device gesendeten Daten den Anforderungen entsprechen.

Tatsächliche Anzeige auf dem Smart Display

Custom CAN-Befehle
Im Folgenden wird das für Custom CAN verwendete Befehlsprotokoll beschrieben. Über diese Befehle kann der Host das Smart Display steuern, beispielsweise Seiten wechseln, die Helligkeit anpassen oder den Buzzer ansteuern.
CAN ID-Konfiguration
Für das Befehlsprotokoll werden die folgenden CAN ID-Einstellungen verwendet:
- CAN Id format:29 bit
CAN Id:0xEF0000 + 0x7B00 (default channel id. This can be modified through the GUI Builder.)
Command-Datenformat
Send Command
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N byte) |
CRC (2 Byte) |
| Fester Wert:0x53 (S) |
Value = 4 + Payload length
Payload max size: 250 |
Informationen zu Dateninhalt und Länge finden Sie unter Send Command Payload. |
Modbus CRC16 |
Response Command
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N byte) |
CRC (2 Byte) |
| Fester Wert:0x52 (R) |
Value = 4 + Payload length
Payload max size: 250 |
Informationen zu Dateninhalt und Länge finden Sie unter Response Command Payload. |
Modbus CRC16 |
Command Payload
Im Folgenden werden die einzelnen Command Payloads beschrieben.
- Set Brightness:0x6
Send Command
| Command Code |
1 Byte |
0x6 |
| Brightness |
1 Byte |
Brightness value |
Response Command
| Command Code |
1 Byte |
0x6 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Buzzer: 0x7
Send Command
| Command Code |
1 Byte |
0x7 |
| Cycle |
1 Byte |
Cycle value |
| High |
1 Byte |
High value |
| Low |
1 Byte |
Low value |
Response Command
| Command Code |
1 Byte |
0x7 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Set Page Index:0x8
Send Command
| Command Code |
1 Byte |
0x8 |
| Page Index |
1 Byte |
Page Index value |
Response Command
| Command Code |
1 Byte |
0x8 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Get Page Count: 0xA
Send Command
Response Command
| Command Code |
1 Byte |
0xA |
| Error Code |
1 Byte |
0:Success
1:Failed |
| High |
1 Byte |
Page Count value |
- Get Current Page Index:0xF
Send Command
Response Command
| Command Code |
1 Byte |
0xF |
| Error Code |
1 Byte |
0:Success
1:Failed |
| Page Index |
1 Byte |
Page Index value |
- Set Device State:0x20
Send Command
| Command Code |
1 Byte |
0x20 |
| Device State |
1 Byte |
0: ConfigMode
1: DisplayMode |
Response Command
| Command Code |
1 Byte |
0x20 |
| Error Code |
1 Byte |
0:Success
1:Failed |
Übertragungsbeispiele
- Helligkeit auf 90 einstellen

Beim Wechseln einer Seite muss zunächst der Device State auf ConfigMode gesetzt werden. Anschließend wird der Befehl zum Seitenwechsel gesendet. Nach Abschluss des Seitenwechsels wird der Device State wieder auf DisplayMode gesetzt. Die Befehlsreihenfolge ist wie folgt:

CAN-HMI-Entwicklung mit Custom CAN ID vereinfachen
Mit dem Custom CAN ID-Protokoll können Anwender CAN IDs und CAN Data über eine standardisierte DBC-Datei definieren und in Smart Display GUI Builder die entsprechenden Messages/Signals mit den jeweiligen Widgets verknüpfen. Dadurch lassen sich CAN-Daten direkt in die HMI-Oberfläche integrieren. Für Anwendungen, die keine umfangreicheren Kommunikationsprotokolle wie CANopen oder J1939 benötigen, bietet Custom CAN ID eine einfachere Möglichkeit, einen Host auf Basis der DBC-Konfiguration mit einem Smart Display zu verbinden.
Bevor eine Verbindung mit einem realen Smart Display hergestellt wird, können Anwender außerdem die Simulationsfunktionen von Smart Display GUI Builder nutzen, um das Zusammenspiel zwischen DBC-Konfiguration, CAN-Daten und Widgets zu überprüfen.