Skip to main content

示例:CAN 总线

产品CODESYS

描述

CANBusAPI.library 库让您轻松使用 CANbus 功能。该库针对 ST 中的面向对象编程和 CFC 等图形编程进行了优化。该库基于 CAN Bus Low Level 系统库。

通过该库,您可以轻松使用CANbus功能。它基于 CANbus 系统库。与 CANBusAPI.library 库,提供了一个示例应用程序。该应用程序包含两个具有不同实现方式的程序(ST 中的面向对象和 CFC 中的图形化),它们展示了如何使用该库。

附加信息

CANBusAPIExample.project 示例项目包含两种实现:一种在 ST 中,一种在 CFC 中。两者都以不同的方式实现特定 CAN 报文的接收和重新发送。

在任务配置中,添加两个程序之一的调用(CFC_PRG, ST_PRG)并将应用程序下载到控制器。启动应用程序。现在,当您生成具有适当 ID 的 CAN 电报时(例如, 0x500)从外部设备,该报文将被处理并使用更改后的 ID 发送。

ST 中的示例

该程序接收所有传入消息并使用 CAN-ID +1 回显它们。

MsgProcessor_EchoST:该功能块实现了 CAN.IMessageProcessor 界面。这 ProcessMessage 方法已经实施。在此方法中,接收到的报文的 CAN ID 加 1 并写回 CAN 驱动程序。

ST_PRG:程序使用以下命令配置 CAN 驱动程序 DEVICE_CONFIG 结构并生成一个实例 MsgProcessor_EchoSTMaskReceiverMaskReceiver 应该只生成一次而不是循环生成;否则一个新的 MaskReceiver 每次调用都会生成。这 MaskReceiver 配置为可以用它接收所有消息。然后所有消息都会自动传递到 ProcessMessage 的函数 MessageProcessor

CFC 中的示例

该程序接收 CAN ID 范围内的所有消息 16#50016#550 并用 CAN-ID+1 回显它们。

MsgProcessor_EchoST:实施 CAN.IMesageProcessor 界面。这 ProcessMessage 方法已经实施。在此方法中,接收到的报文的 CAN ID 加 1 并写回 CAN 驱动程序。

CFC_PRG:程序使用以下命令配置 CAN 驱动程序 DEVICE_CONFIG 结构并生成一个实例 MsgProcessor_EchoSTAreaReceiver。这 AreaReceiver 配置为接收 CAN ID 范围内的所有消息 16#50016#550。收到的消息会自动传递到 ProcessMessage 的函数 MessageProcessor。此外,还可以使用 CANBusDiagnosis 用于监视 CAN 驱动器状态的功能块。

有关功能块的更多信息,请参阅包中包含的 PDF 文件。

系统要求和限制

编程系统

CODESYS Development System (版本3.5.6.0或更高版本)

运行时系统

CODESYS Control Win (版本3.5.6.0)

附加组件

-

注意

_example_icon.png 下载 项目