示例:CANopen
产品: CODESYS CANopen Manager SL
此示例涉及 CANopen 主站和 CANopen 从站通信堆栈的编程接口。该项目包含 SDO、NMT、诊断和通信参数(波特率、网络 ID、节点 ID)动态配置等示例。
描述
该项目包含使用 CANopen 主站和 CANopen 从站堆栈编程接口的不同示例。处理的主题包括以下内容:
SDO(加速、分段、块),访问对象字典
网络管理(NMT)
诊断(CANopen 状态、EMCY)
对象字典和 CANopen 管理器状态机的事件处理程序
重新配置:动态更改波特率、网络 ID 和节点 ID
通过设备诊断库访问 CAN 配置
附加信息
该项目包括一个 CANopen 主站和一个 CANopen 从站堆栈,它们通过 CANbus 相互通信。调试该项目需要两个互连的 CAN 接口。实现这一点的最简单方法是使用 CODESYS Control Win 控制器和一个 2 通道 USB-CAN 适配器,例如 PEAK PCAN-USB Pro 或两个 1 通道适配器。
为了使通信正常工作,必须在配置文件中输入相应的运行时系统组件。
有关更多信息,请参阅: 运行时配置。
通过 PLC 的设备更新,该项目还可以在任何具有两个 CAN 接口的控制器上运行。该项目分为三个区域:
CANbus Examples
ChangeBaudrate
:通过重新配置在运行模式下动态改变波特率EnableDisableCANbus
:通过重新配置在运行时模式下动态激活和停用 CANbusGetCANbus
:通过设备诊断库对工程 CANbus 实例进行一般搜索
CANopen Master examples
诊断
ReceiveEMCYFromAllDevicesExample
:通过以下方式接收紧急消息CiA405.RECV_EMCY
ReceiveEMCYFromOneDeviceExample
:通过以下方式接收特定设备的紧急消息CIA405.RECV_EMCY_DEV
GetCANopenKernelStateExample
:通过以下方式检测 CANopen 内核状态CIA405.GET_CANOPEN_KERNEL_STATE
GetStateExample
:通过以下方式检测从站的 CANopen 状态CIA405.GET_STATE
网络管理
GetCANopenManagerNodeIDExample
:通过 CiA405 检测 CANopenManager 节点 ID。GET_CANOPEN_KERNEL_STATE
:通过CIA405.NMT发送NMT请求
SDO(非循环数据传输)
ExpeditedReadExample
:通过 SDO(加速传输)读取 <= 4 字节的对象CiA405.SDO_READ4
ExpeditedWriteExample
:通过 SDO(加速传输)写入 <= 4 字节的对象CIA405.SDO_WRITE4
SegmentedAndBlockReadExample
:通过SDO(分段传输或块传输)读取任意长度的对象CiA405.SDO_READ_DATA
SegmentedAndBlockWriteExample
:通过SDO(分段传输或块传输)写入任意长度的对象CiA405.SDO_WRITE_DATA
通用API函数
CANopenManagerAPI
:演示CANopenManager实例所有方法和属性的使用CANopenManagerEventHandler
:CANopen 事件处理程序的示例实现CANopenRemoteDeviceAPI
:演示 CANopenRemoteDevice 实例的所有方法和属性的使用
CANopen Slave examples
诊断
GetLocalDeviceInfoExample
:演示CANopen状态以及节点ID的读取
网络管理
ChangeNodeIDExample
:运行时模式下节点ID的改变NMTExample
:改变本地CANopen状态
对象字典
ReadObjectExample1
:从本地对象字典中读取对象ReadObjectExample2
: 的替代示例ReadObjectExample1
WriteObjectExample1
:将对象的值写入对象字典WriteObjectExample2
: 的替代示例WriteObjectExample1
CountObjects
:通过以下方式遍历对象字典的所有对象_3SCSS.ObjectIterator
GetPDOInfo
: 遍历对象字典的附加示例ObjectDictionaryEventHandler
:对象字典事件处理程序的示例实现
系统要求和限制
编程系统 | CODESYS Development System (版本3.5.14.0或更高版本) |
运行时系统 | CODESYS Control Win (版本3.5.14.0) |
附加组件 | 两个CAN接口 |
注意
下载 项目