Пакет поддержки модулей CAN
Пакет поддержки модулей CAN обеспечивает работу Engee с CAN-интерфейсами с помощью блоков библиотеки CAN. Пакет работает поверх подсистемы Engee.Интеграции и позволяет настраивать интерфейсы, отправлять и принимать CAN-сообщения.
Требования
-
Настроенный CAN-интерфейс в ОС.
-
Параметры интерфейса (имя устройства и битрейт), которые используются в блоках библиотеки CAN.
-
Установленные драйверы/утилиты для используемого адаптера (Windows).
Подробнее см. CAN.
Быстрый старт
-
Установите или подключите подсистему Engee.Интеграции как показано в статье.
-
Настройте CAN-интерфейс в вашей ОС и определите значение Канал/порт, которое будете указывать в блоках CAN:
-
Linux (
socketcan): поднимите сетевой интерфейсcan0/vcan0(пример команд см. в разделе Интерфейсы CAN). -
Windows (
pcan): установите PCAN-Basic (PEAK System) и используйте порт видаPCAN_USBBUS1. -
Windows (
marathon): установите драйверы Marathon и используйте портcan0,can1, … согласно нумерации адаптеров. -
Virtual (
virtual): драйверы не требуются, используйтеvirtual_0,virtual_1, … (учитывайте парность каналов).Чтобы посмотреть список доступных CAN-устройств в Engee, выполните команду в Engee:
Main.EngeeDeviceManager.UTILS_API.getCanDevicesList()
-
-
Теперь вы можете использовать блоки из библиотеки CAN.
Интерфейсы CAN
Пакет поддержки использует разные драйверные интерфейсы (параметр Интерфейс в блоках CAN). Для работы в блоках важно знать два значения:
-
Интерфейс (например,
socketcanилиpcan); -
Канал/порт — идентификатор устройства, который нужно указать в параметрах блоков (например,
can0,vcan0,PCAN_USBBUS1,virtual_0).
Как посмотреть доступные CAN-устройства в Engee
Чтобы получить список обнаруженных CAN-контроллеров (идентификаторы, которые затем указываются в параметрах блоков и скриптах), выполните следующую команду в Engee:
Main.EngeeDeviceManager.UTILS_API.getCanDevicesList()
PCAN (интерфейс pcan, Windows)
Для работы с адаптерами PCAN-USB установите драйверы PCAN-Basic от PEAK System: Device Driver Setup (PCAN-Basic)
В параметре Канал/порт указываются имена, которые предоставляет драйвер PCAN-Basic:
PCAN_USBBUS1, PCAN_USBBUS2, …, PCAN_USBBUSN.
SocketCAN (интерфейс socketcan, Linux)
Для работы с socketcan необходимо активировать CAN-интерфейсы в ОС.
Виртуальный CAN (если нет физического адаптера):
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set vcan0 up
В параметре Канал/порт укажите vcan0.
Физический CAN-контроллер (пример can0):
sudo modprobe can
sudo ip link set can0 type can bitrate 125000
sudo ip link set can0 up
# отправка сообщения
sudo cansend can0 '111#11aa'
# прием данных
sudo candump can0
В параметре Канал/порт укажите имя поднятого интерфейса (can0, can1, …).
PCAN-адаптеры через socketcan (для версий ядра Linux >= 3.4):
sudo modprobe peak_usb
sudo modprobe peak_pci
sudo ip link set can0 up type can bitrate 500000
Marathon (интерфейс marathon)
Для работы с адаптером Marathon CAN-bus-USB установите драйверы производителя: Драйверы Marathon.
В параметре Канал/порт укажите нумерованный канал адаптера.
Для первого подключенного адаптера:
-
Вывод
CAN 1соответствуетcan0; -
Вывод
CAN 2соответствуетcan1.
Каждый USB-адаптер Marathon предоставляет два канала: у первого — can0/can1, у следующего — can2/can3, затем can4/can5 и т.д. по возрастанию.
Virtual (интерфейс virtual)
Для интерфейса virtual не требуется устанавливать драйверы — это программная эмуляция CAN.
В параметре Канал/порт укажите нумерованный виртуальный канал. Для первой виртуальной шины это virtual_0 и virtual_1.
|
Трафик, отправленный в |
Следующие виртуальные шины используют пары virtual_2/virtual_3, затем virtual_4/virtual_5 и т.д. по возрастанию.