Engee 文档

CAN模块支持包

CAN模块支持包使 AnyMath 能够使用库块与CAN接口一起工作 CAN. 包运行在子系统之上 恩吉。综合服务 它允许您配置接口,发送和接收CAN消息。

要求

  • 在OS中配置CAN接口。

  • 在CAN库块中使用的接口参数(设备名称和比特率)。

  • 为您正在使用的适配器(Windows)安装的驱动程序/实用程序。

有关详细信息,请参阅 CAN.

快速启动

  1. 安装或连接*AnyMath子系统。集成*如图所示 文章.

  2. 在操作系统中配置CAN接口,并定义将在CAN块中指定的 Channel/port 值。:

    • Linux(socketcan):提升网络接口 可0/vcan0 (有关命令的示例,请参阅[CAN Interfaces])。

    • * 视窗(pcan的:安装*PCAN-Basic(峰值系统)并使用以下端口 PCAN_USBBUS1.

    • * 视窗(马拉松)*:安装Marathon驱动程序并使用端口 可0, can1…​ 根据适配器的编号。

    • * 虚拟(虚拟)*:不需要驱动程序,使用 虚拟_0, 虚拟_1…​ (考虑到频道配对)。

      要在 AnyMath 中查看可用的CAN设备列表,请在 AnyMath中运行命令:

      Main.EngeeDeviceManager.UTILS_API.getCanDevicesList()
  3. 现在,您可以使用库中的块。 CAN.

CAN接口

支持包使用不同的驱动程序接口(CAN块中的 Interface 参数)。 要在块中工作,重要的是要知道两个值:

  • * 接口*(例如, socketcanpcan的);

  • * 通道/端口*是要在块参数中指定的设备标识符(例如, 可0, vcan0, PCAN_USBBUS1, 虚拟_0).

如何在AnyMath中查看可用的CAN设备

要获取检测到的CAN控制器列表(然后在块参数和脚本中指定的标识符),请在 AnyMath中运行以下命令:

Main.EngeeDeviceManager.UTILS_API.getCanDevicesList()

PCAN(接口 pcan的,窗户)

要使用 PCAN-USB 适配器,请从 PEAK系统安装*PCAN-Basic*驱动程序: 设备驱动程序设置(PCAN-Basic) Channel/port 参数指定 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

Channel/port 参数中,指定 vcan0.

物理CAN控制器(示例 可0):

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

Channel/port 参数中,指定引发接口的名称(可0, 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 CAN-bus-USB适配器 安装制造商的驱动程序: 马拉松车手

Channel/port 参数中,指定编号的适配器通道。

对于第一个连接的适配器:

  • 结论 可以1 回应 可0;

  • 结论 可以2 回应 can1.

每个Marathon USB适配器提供两个通道:第一个 — 可0/can1,对于以下 — can2/can3,则 can4/can5 以此类推按升序排列。

虚拟(接口 虚拟)

对于接口 虚拟 没有必要安装驱动程序-这是一个软件可以仿真。

Channel/port 参数中指定编号的虚拟通道。 对于第一个虚拟总线,这是 虚拟_0虚拟_1.

发送至 虚拟_0,出现在 虚拟_1 (反之亦然)。 对于"环回",将数据发送到 虚拟_0,并接受 虚拟_1.

以下虚拟总线使用对 虚拟_2/虚拟_3,则 虚拟_4/虚拟_5 以此类推按升序排列。