Actualmente, Smart Display admite la interfaz de comunicación física CAN bus y utiliza el protocolo de comunicación CANopen. CANopen es un protocolo de comunicación industrial ampliamente utilizado basado en CAN bus y se emplea en distintos sectores, como equipos médicos, vehículos, aplicaciones ferroviarias y automatización de edificios. Sin embargo, al utilizar el protocolo CANopen, el cliente debe implementar el mecanismo de comunicación CANopen correspondiente en el Host, lo que puede aumentar la complejidad en aplicaciones que únicamente requieren comunicación mediante CAN bus. Para simplificar la implementación, hemos desarrollado el protocolo Custom CAN ID, que no requiere implementar CANopen en el Host. En su lugar, los datos pueden configurarse mediante un archivo DBC personalizado para asociar los CAN ID y los datos con los Widgets del Smart Display y permitir la interacción en tiempo real. Este enfoque facilita la comprensión y el control de los datos del sistema, al tiempo que aporta mayor flexibilidad y simplifica el mantenimiento.
El protocolo Custom CAN ID utiliza principalmente un archivo DBC (CAN Database) para configurar los datos y definir cómo interactúan los datos CAN con los Widgets del Smart Display. El archivo DBC contiene información como los CAN ID, el formato de los mensajes y los parámetros necesarios para su decodificación. Mediante un archivo DBC personalizado, es posible asociar diferentes CAN ID y datos con los Widgets del Smart Display para establecer una interacción en tiempo real. Por ejemplo, los CAN ID y los datos pueden utilizarse para controlar gráficos o textos en la pantalla, mientras que los botones o controles deslizantes de la pantalla pueden emplearse para controlar datos CAN. Esta interacción permite comprender y gestionar mejor los datos del sistema, ofreciendo una solución flexible y fácil de mantener.
Conceptos básicos de los archivos DBC
Un archivo DBC suele ser un archivo de texto plano ASCII que contiene información sobre las señales físicas transmitidas a través del CAN bus, como el CAN ID, el nombre de la señal, el factor de escala y su definición. Se utiliza para decodificar los datos CAN sin procesar y convertirlos en valores con significado, así como para asociar los distintos CAN ID con sus señales correspondientes. El archivo DBC proporciona la información necesaria para convertir el contenido de los mensajes CAN en valores físicos de las señales.
Ejemplo de decodificación de datos CAN sin procesar

Si se dispone de un archivo DBC de CAN que incluye las reglas de decodificación para el CAN ID 0x181, la información definida en dicho archivo puede utilizarse para decodificar los siguientes datos.

Una de las principales funciones de un archivo DBC es describir las reglas utilizadas para decodificar los mensajes y las señales CAN. El siguiente ejemplo muestra datos de prueba extraídos de un archivo DBC:

A partir de la información DBC anterior, se pueden obtener los siguientes parámetros de decodificación:

Aplicando las reglas de decodificación anteriores, los datos CAN sin procesar obtenidos previamente pueden convertirse en la siguiente información:

Como muestra el ejemplo anterior, la configuración definida en un archivo DBC permite decodificar correctamente los valores reales representados por los datos CAN asociados a un CAN ID. El archivo DBC contiene la estructura y las definiciones de los mensajes y señales CAN, lo que permite interpretar los datos CAN sin procesar y convertirlos en los valores físicos correspondientes para que el sistema pueda interpretar la información transmitida a través del CAN bus.
Editor de archivos DBC
Dado que la estructura y el formato de un archivo DBC pueden resultar difíciles de interpretar y editar directamente, pueden utilizarse herramientas específicas para facilitar la creación y edición de archivos DBC personalizados. Una de las herramientas habituales es Vector CANdb++, desarrollada por Vector Informatik GmbH. Esta herramienta proporciona una interfaz gráfica para crear y editar archivos DBC, añadir mensajes y señales, y definir atributos relacionados, como los ID de mensaje, bits de inicio, longitudes, factores de escala y offsets.

Smart Display GUI Builder – Configuración de Custom CAN ID
Smart Display GUI Builder ofrece una interfaz intuitiva para crear proyectos con Custom CAN ID. Basta con importar un archivo DBC y asociar los mensajes/señales con los Widgets correspondientes para visualizar los datos e interactuar con ellos en el Smart Display. En las siguientes secciones se explica cómo crear un proyecto Custom CAN ID en Smart Display GUI Builder y configurar la relación entre el archivo DBC y los Widgets.
Crear un proyecto Custom CAN ID
Introduzca el nombre del proyecto, seleccione el tipo de dispositivo Smart Display y, en Protocol, seleccione "Custom CAN Id (CANbus)" para crear un proyecto Custom CAN ID.

Importar un archivo DBC personalizado
Acceda a la página DBC Viewer y haga clic en "Load DBC File" para importar un archivo DBC personalizado. Una vez importado, podrá consultar los Messages, Signals y la información de configuración correspondiente definida en el archivo DBC.

Configurar los Widgets Gauge y Horizontal Slider
Seleccione el objeto Gauge y, en la sección CAN Signal de sus propiedades, establezca Message como EEC1 y Signal como EngSpeed. De este modo, el Gauge queda asociado a EngSpeed. Una vez realizada la configuración, el valor mostrado por el Gauge cambiará en función del valor de EngSpeed.

Seleccione el objeto Horizontal Slider y, en la sección CAN Signal de sus propiedades, establezca Message como HorizontalSliderMessage y Signal como HorizontalSliderSignal1. De este modo, el Horizontal Slider queda asociado a HorizontalSliderSignal1. Una vez realizada la configuración, el Horizontal Slider cambiará en función del valor de HorizontalSliderSignal1.

Simular la interacción entre CAN ID / CAN Data y los Widgets
Haga clic en el icono "Simulator With GUI" para iniciar el simulador.

Una vez iniciado el simulador, mueva el control deslizante EngSpeed situado en la parte inferior para simular el envío de datos EngSpeed desde el Host y observar los cambios correspondientes en el Gauge del simulador. El Message Log situado a la derecha muestra los cambios en CAN ID y CAN Data. También puede utilizar el Horizontal Slider del simulador para simular los datos enviados por el Device.

Actualizar la configuración del Smart Display
Después de verificar el funcionamiento mediante el simulador y confirmar que el comportamiento es el esperado, conéctese al Device y cargue la configuración del Project en el Smart Display.

Espere hasta que finalice el proceso de carga y actualización del Project.

Verificar la interacción entre CAN ID / CAN Data y los Widgets en el dispositivo
Una vez cargado el Project en el Device, puede realizar una verificación adicional del funcionamiento del Smart Display. Conecte GUI Builder al Device y haga clic en "Test Device" para abrir la ventana Test Device y comprobar la interacción entre el Host y el Device.

Ventana Test Device
La ventana Test Device permite simular el envío desde el Host del CAN ID y CAN Data correspondientes según la configuración del archivo DBC. Mueva el control deslizante EngSpeed para simular el envío de datos EngSpeed desde el Host y observe los cambios correspondientes en el Gauge del Smart Display. Los registros de datos CAN situados en la parte inferior de la ventana muestran el CAN ID y CAN Data. También puede utilizar el Horizontal Slider del Smart Display para comprobar si los datos enviados por el Device cumplen los requisitos establecidos.

Visualización real en el Smart Display

Introducción a los comandos de Custom CAN ID
A continuación se describe el protocolo de comandos utilizado por Custom CAN ID. Mediante estos comandos, el Host puede controlar fácilmente el Smart Display para realizar operaciones como cambiar de página, ajustar el brillo o activar el buzzer.
Configuración del CAN ID
El protocolo de comandos utiliza la siguiente configuración de CAN ID:
- Formato del CAN ID: 29 bits
CAN ID: 0xEF0000 + 0x7B00 (ID de canal predeterminado. Puede modificarse mediante GUI Builder.)
Formato de datos de los comandos
Comando de envío
| Byte de cabecera (1 Byte) |
Longitud (1 Byte) |
Payload (N bytes) |
CRC (2 Bytes) |
| Valor fijo: 0x53 (S) |
Valor = 4 + longitud del Payload
Tamaño máximo del Payload: 250 |
Para conocer el contenido y la longitud de los datos, consulte el Payload del comando de envío. |
Modbus CRC16 |
Comando de respuesta
| Byte de cabecera (1 Byte) |
Longitud (1 Byte) |
Payload (N bytes) |
CRC (2 Bytes) |
| Valor fijo: 0x52 (R) |
Valor = 4 + longitud del Payload
Tamaño máximo del Payload: 250 |
Para conocer el contenido y la longitud de los datos, consulte el Payload del comando de respuesta. |
Modbus CRC16 |
Payload de los comandos
A continuación se describe el Payload correspondiente a cada comando.
- Ajustar brillo (Set Brightness): 0x6
Comando de envío
| Command Code |
1 Byte |
0x6 |
| Brightness |
1 Byte |
Brightness value |
Comando de respuesta
| Command Code |
1 Byte |
0x6 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Configurar buzzer (Set Buzzer): 0x7
Comando de envío
| Command Code |
1 Byte |
0x7 |
| Cycle |
1 Byte |
Cycle value |
| High |
1 Byte |
High value |
| Low |
1 Byte |
Low value |
Comando de respuesta
| Command Code |
1 Byte |
0x7 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Establecer índice de página (Set Page Index): 0x8
Comando de envío
| Command Code |
1 Byte |
0x8 |
| Page Index |
1 Byte |
Page Index value |
Comando de respuesta
| Command Code |
1 Byte |
0x8 |
| Error Code |
1 Byte |
0:Success
1:Failed |
- Obtener número de páginas (Get Page Count): 0xA
Comando de envío
Comando de respuesta
| Command Code |
1 Byte |
0xA |
| Error Code |
1 Byte |
0:Success
1:Failed |
| High |
1 Byte |
Page Count value |
- Obtener índice de la página actual (Get Current Page Index): 0xF
Comando de envío
Comando de respuesta
| Command Code |
1 Byte |
0xF |
| Error Code |
1 Byte |
0:Success
1:Failed |
| Page Index |
1 Byte |
Page Index value |
- Establecer estado del dispositivo (Set Device State): 0x20
Comando de envío
| Command Code |
1 Byte |
0x20 |
| Device State |
1 Byte |
0: ConfigMode
1: DisplayMode |
Comando de respuesta
| Command Code |
1 Byte |
0x20 |
| Error Code |
1 Byte |
0:Success
1:Failed |
Ejemplos de transmisión

- Cambiar al índice de página 1.
Para cambiar de página, primero establezca Device State en ConfigMode y, a continuación, envíe el comando de cambio de página. Una vez completado el cambio de página, vuelva a establecer Device State en DisplayMode. La secuencia de comandos es la siguiente:

Simplificar el desarrollo de HMI CAN con Custom CAN ID
Con el protocolo Custom CAN ID, los usuarios pueden definir los CAN ID y CAN Data mediante un archivo DBC estándar y utilizar Smart Display GUI Builder para asociar los Messages/Signals con los Widgets correspondientes, integrando así los datos CAN en la interfaz HMI. Para aplicaciones que no requieren protocolos de comunicación más completos, como CANopen o J1939, Custom CAN ID ofrece una forma más sencilla de integrar un Host con un Smart Display a partir de la configuración definida en el archivo DBC.
Antes de conectar un Smart Display real, también es posible utilizar las funciones de simulación de Smart Display GUI Builder para verificar la interacción entre la configuración DBC, los datos CAN y los Widgets.