Документация Engee

Пакет поддержки модулей CAN

Пакет поддержки модулей CAN обеспечивает работу Engee с CAN-интерфейсами с помощью блоков библиотеки CAN. Пакет работает поверх подсистемы Engee.Интеграции и позволяет настраивать интерфейсы, отправлять и принимать CAN-сообщения.

Требования

  • Настроенный CAN-интерфейс в ОС.

  • Параметры интерфейса (имя устройства и битрейт), которые используются в блоках библиотеки CAN.

  • Установленные драйверы/утилиты для используемого адаптера (Windows).

Подробнее см. CAN.

Быстрый старт

  1. Установите или подключите подсистему Engee.Интеграции как показано в статье.

  2. Настройте 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()
  3. Теперь вы можете использовать блоки из библиотеки 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_0, появляется на virtual_1 (и наоборот). Для «loopback» отправляйте данные в virtual_0, а принимайте из virtual_1.

Следующие виртуальные шины используют пары virtual_2/virtual_3, затем virtual_4/virtual_5 и т.д. по возрастанию.

Полезные ссылки