Introducción
Un Controller Area Network (CAN bus) es un bus estándard para vehículos diseñado para permitir que los microcontroladores y los dispositivos se comuniquen entre sí sin necesidad de un ordenador central.
En esta entrada del blog, vamos a aprender cómo enviar y recibir mensajes de bus CAN desde nuestro PLC Raspberry.
Links relacionados
Requisitos
Qué es CAN Bus?
CAN buses un protocolo basado en mensajes, diseñado originalmente para el cableado eléctrico multiplexado dentro de los automóviles con el fin de ahorrar cobre, pero también puede utilizarse en muchos otros contextos. Para cada dispositivo, los datos de una trama se transmiten secuencialmente, pero de tal manera que si más de un dispositivo transmite al mismo tiempo, el de mayor prioridad puede continuar mientras los demás retroceden. Las tramas son recibidas por todos los dispositivos, incluido el que transmite.
Control previo
En primer lugar, vamos a hacer una comprobación previa para asegurarnos de que la configuración está lista.
- Asegúrate de que sus PLCs Rasberry están correctamente conectados a la fuente de alimentación.
- Comprueba que tu PLC Raspberry tiene todos los archivos de configuración. Comprueba >>
- Asegúrate de que el SPI está activado.
- Comprueba que el archivo /boot/config.txt tiene la siguiente línea:
dtoverlay=mcp2515-can0,interrupt=5,oscillator=20000000
- Dirigete a /etc/network/interfaces.d y compruebe que el siguiente archivo can0 existe y tiene este contenido:
auto can0
iface can0 inet manual
pre-up /sbin/ip link set can0 type can bitrate 500000 triple-sampling on restart-ms 100
up /sbin/ifconfig can0 up
down /sbin/ifconfig can0 down - Comprueba que puedes ver la interfaz haciendo:
ifconfig can0
- Asegúrate de que la Librería can-utils está correctamente instalada. Si no lo está, instálala:
sudo apt update
sudo apt install can-utils
Conexión
Ahora, es el momento de conectar los cables como se muestra en la siguiente imagen.
Probando
Una vez que todo está listo para probar el CAN Bus en nuestro PLC Raspberry, vamos a seguir estos pasos básicos:
1. Para esperar los datos en el primer PLC Raspberry, abre una ventana de terminal y escribe lo siguiente:
candump can0
2. Desde el segundo PLC Raspberry, envía los datos con el siguiente comando:
cansend can0 111#FF
Si todo ha ido bien, podrás ver el mensaje como en la imagen de abajo.
Ahora, ¡disfruta de la comunicación CAN Bus con este ejemplo básico para tu PLC Raspberry!
Cómo probar CANBUS con Raspberry PLC