Smart Display supporta attualmente l'interfaccia di comunicazione hardware CAN bus e utilizza il protocollo di comunicazione CANopen. CANopen è un protocollo di comunicazione industriale basato su CAN bus, ampiamente utilizzato in diversi settori, tra cui apparecchiature medicali, veicoli, applicazioni ferroviarie e automazione degli edifici. Tuttavia, l'utilizzo di CANopen richiede l'implementazione del relativo meccanismo di comunicazione sul lato host, aumentando la complessità nelle applicazioni che necessitano semplicemente di una comunicazione tramite CAN bus. Per semplificare l'implementazione, abbiamo quindi sviluppato il protocollo Custom CAN ID, che non richiede l'implementazione di CANopen sul lato host. Tramite un file DBC personalizzato è possibile configurare i dati e associare CAN ID e relativi dati ai Widget dello Smart Display, consentendo un'interazione in tempo reale. Questo approccio permette di gestire e controllare più facilmente i dati di sistema, offrendo al tempo stesso maggiore flessibilità e semplicità di manutenzione.
Il protocollo Custom CAN ID utilizza principalmente un file DBC (CAN Database) per configurare i dati e definire l'interazione tra i dati CAN e i Widget dello Smart Display. Il file DBC contiene informazioni quali CAN ID, formato dei messaggi e parametri necessari alla decodifica. Utilizzando un file DBC personalizzato, è possibile associare diversi CAN ID e relativi dati ai Widget dello Smart Display e realizzare un'interazione in tempo reale. Ad esempio, CAN ID e dati possono essere utilizzati per controllare elementi grafici o testi visualizzati sul display, mentre pulsanti o slider sul display possono essere utilizzati per controllare i dati CAN. Questa modalità di interazione facilita la gestione e il controllo dei dati di sistema e consente di realizzare una soluzione flessibile e facilmente manutenibile.
Comprendere i file DBC
Un file DBC è generalmente un file di testo ASCII che contiene le informazioni relative ai segnali fisici trasmessi sul CAN bus, tra cui CAN ID, nome del segnale, fattore di scala e definizione. Il file viene utilizzato per decodificare i dati CAN grezzi in valori significativi e associare i diversi CAN ID ai segnali corrispondenti. Un file DBC contiene quindi le informazioni necessarie per convertire il payload dei messaggi CAN nei relativi valori fisici.
Esempio di decodifica dei Raw CAN Data

Se si dispone di un file DBC CAN che include le regole di decodifica per il CAN ID 0x181, è possibile utilizzare le informazioni definite nel file DBC per decodificare i dati riportati di seguito.

Una delle principali funzioni di un file DBC è descrivere le regole di decodifica dei messaggi e dei segnali CAN. L'esempio seguente mostra alcuni dati di test estratti da un file DBC:

In base alle informazioni DBC riportate sopra, è possibile ricavare i seguenti parametri di decodifica:

Applicando le regole di decodifica indicate sopra, i Raw CAN Data acquisiti in precedenza possono essere decodificati come segue:

Come illustrato nell'esempio, le impostazioni definite nel file DBC consentono di decodificare correttamente i valori effettivi rappresentati dai dati CAN associati a un determinato CAN ID. Il file DBC contiene la struttura e le definizioni dei messaggi e dei segnali CAN, consentendo di interpretare i dati CAN grezzi e convertirli nei corrispondenti valori fisici, in modo che il sistema possa utilizzare correttamente le informazioni trasmesse tramite CAN.
Editor DBC
Poiché la struttura e il formato di un file DBC possono risultare poco pratici da leggere e modificare direttamente, è possibile utilizzare appositi editor DBC per creare e modificare file DBC personalizzati. Uno degli strumenti comunemente utilizzati è Vector CANdb++, sviluppato da Vector Informatik GmbH. Il software mette a disposizione un'interfaccia grafica per creare e modificare file DBC, aggiungere messaggi e segnali e definirne i relativi attributi, come ID del messaggio, bit iniziale, lunghezza, fattore di scala e offset.

Smart Display GUI Builder – Configurazione Custom CAN ID
Smart Display GUI Builder offre un'interfaccia intuitiva per creare progetti Custom CAN ID. È sufficiente importare un file DBC e associare i Message/Signal ai Widget corrispondenti per visualizzare i dati e gestire l'interazione sullo Smart Display. Le sezioni seguenti illustrano come creare un progetto Custom CAN ID in Smart Display GUI Builder e configurare le associazioni tra il file DBC e i Widget.
Creare un progetto Custom CAN ID
Inserire il nome del Project, selezionare il modello di Smart Display e, nella sezione Protocol, selezionare "Custom CAN Id (CANbus)" per creare un progetto Custom CAN ID.

Importare un file DBC personalizzato
Passare alla pagina DBC Viewer e fare clic su "Load DBC File" per importare un file DBC personalizzato. Una volta importato il file, è possibile visualizzare i Message, i Signal e le relative informazioni di configurazione definite nel file DBC.

Configurare i Widget Gauge e Horizontal Slider
Selezionare l'oggetto Gauge e, nella sezione CAN Signal delle proprietà del Gauge, impostare Message su EEC1 e Signal su EngSpeed. In questo modo il Gauge viene associato a EngSpeed. Una volta completata la configurazione, il valore visualizzato dal Gauge varia in funzione del valore di EngSpeed.

Selezionare l'oggetto Horizontal Slider e, nella sezione CAN Signal delle relative proprietà, impostare Message su HorizontalSliderMessage e Signal su HorizontalSliderSignal1. In questo modo l'Horizontal Slider viene associato a HorizontalSliderSignal1. Una volta completata la configurazione, l'Horizontal Slider varia in funzione del valore di HorizontalSliderSignal1.

Simulare l'interazione tra CAN ID / CAN Data e Widget
Fare clic sull'icona "Simulator With GUI" per avviare il simulatore.

Dopo aver avviato il simulatore, spostare lo slider EngSpeed nella parte inferiore per simulare l'invio dei dati EngSpeed da parte dell'Host e osservare le corrispondenti variazioni del Gauge nel simulatore. Nel Message Log sulla destra è possibile visualizzare le variazioni di CAN ID e CAN Data. È inoltre possibile utilizzare l'Horizontal Slider nel simulatore per simulare i dati inviati dal Device.

Aggiornare la configurazione dello Smart Display
Dopo aver verificato il funzionamento tramite il simulatore e aver confermato che il comportamento è quello previsto, collegare il Device e caricare le impostazioni del Project sullo Smart Display.

Attendere il completamento del caricamento e dell'aggiornamento del Project.

Verificare l'interazione tra CAN ID / CAN Data del Device e i Widget
Dopo aver caricato il Project sul Device, è possibile verificare ulteriormente il funzionamento dello Smart Display. Collegare GUI Builder al Device e fare clic su "Test Device" per aprire la finestra Test Device Window e verificare l'interazione tra Host e Device.

Test Device Window
La Test Device Window consente di simulare l'invio, da parte dell'Host, dei CAN ID e CAN Data corrispondenti in base alla configurazione DBC. Spostare lo slider EngSpeed per simulare l'invio dei dati EngSpeed da parte dell'Host e osservare le corrispondenti variazioni del Gauge sullo Smart Display. I dati CAN visualizzati nella parte inferiore della finestra consentono di verificare CAN ID e CAN Data. È inoltre possibile utilizzare l'Horizontal Slider sullo Smart Display per verificare che i dati inviati dal Device corrispondano a quanto previsto.

Visualizzazione effettiva sullo Smart Display

Introduzione ai comandi Custom CAN
Di seguito viene descritto il protocollo dei comandi utilizzato da Custom CAN. Tramite questi comandi, l'Host può controllare lo Smart Display, ad esempio per cambiare pagina, regolare la luminosità della retroilluminazione o attivare il Buzzer.
Configurazione del CAN ID
Il protocollo dei comandi utilizza la seguente configurazione del CAN ID:
- CAN Id format:29 bit
CAN Id:0xEF0000 + 0x7B00 (default channel id. This can be modified through the GUI Builder.)
Formato dei dati dei comandi
Send Command
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N byte) |
CRC (2 Byte) |
| Valore fisso:0x53 (S) |
Value = 4 + Payload length
Payload max size: 250 |
Per il contenuto e la lunghezza dei dati, fare riferimento a Send Command Payload. |
Modbus CRC16 |
Response Command
| Header Byte (1 Byte) |
Length (1 Byte) |
Payload (N byte) |
CRC (2 Byte) |
| Valore fisso:0x52 (R) |
Value = 4 + Payload length
Payload max size: 250 |
Per il contenuto e la lunghezza dei dati, fare riferimento a Response Command Payload. |
Modbus CRC16 |
Command Payload
Di seguito sono descritti i payload dei singoli comandi.
- 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 |
Esempio di trasmissione
- Impostare la luminosità su 90

- Impostare Page Index su 1
Per cambiare pagina, impostare innanzitutto Device State su ConfigMode, quindi inviare il comando di cambio pagina. Una volta completato il comando, impostare nuovamente Device State su DisplayMode. La sequenza dei comandi è la seguente:

Semplificare lo sviluppo di HMI CAN con Custom CAN ID
Il protocollo Custom CAN ID consente di definire CAN ID e CAN Data tramite un file DBC standard e di utilizzare Smart Display GUI Builder per associare Message/Signal ai Widget corrispondenti, integrando così i dati CAN nell'interfaccia HMI. Per le applicazioni che non richiedono protocolli di comunicazione più articolati, come CANopen o J1939, Custom CAN ID offre una soluzione più semplice per integrare un Host con uno Smart Display sulla base della configurazione definita nel file DBC.
Prima di collegarsi a uno Smart Display reale, è inoltre possibile utilizzare le funzioni di simulazione di Smart Display GUI Builder per verificare l'interazione tra la configurazione DBC, i dati CAN e i Widget.