CANopen通讯

1、CANopen通讯协议

CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。

基本的 CANopen 设备及通讯子协定定义在 CAN in Automation (CiA) draft standard 301中,针对个别设备的子协定以 CiA 301 为基础再进行扩充。如针对 I/O 模组的 CiA401,针对运动控制的 CiA402,针对编码器的CiA406.

CIA301_CN_V02

DS406-1

LSS(DS305)

CANopen心跳及节点守护报文

2、对象字典

CANopen 设备都需要具备对象字典,用来设定设备组态及进行非即时的通讯。

EDS(electronic data sheet)文件用来描述对象字典。

3、通讯模型

master/slave 模型:一个 CANopen 设备为 master,负责传送或接收其他设备(称为 slave)的数据。NMT 协议就使用了 master/slave 模型。

客户机/服务器client/server模型:在 SDO 协定中,SDO client 将对象字典的索引及子索引传送给 SDO server,因此会产生一个或数个需求数据(对象字典中,索引及子索引对应的内容)的 SDO 封包。

生产者/消费者producer/consumer模型:由一个生产者送出数据给消费者,同一个生产者的数据可能给一个以上的消费者。又可分为二种: push-model:生产者会自动送出数据给消费者。 pull-model:消费者需送出请求讯息,生产者才会送出数据。Heartbeat and Node Guarding 协议使用了producer/consumer模型。

4通讯协议

NMT 协议

NMT(网络管理, Network management)协议会定义(设备内部)状态机的状态变更命令(如启动设备或停止设备)、侦测远端设备 bootup及故障情形。

心跳协议

心跳协议(Heartbeat protocol)是用来监控网络中的节点及确认其正常工作。

SDO 协议

服务数据对象(SDO)可用来存取远端节点的对象字典,读取或设定其中的数据。

提供对象字典的节点称为SDO server,存取对象字典的节点称为SDO client。SDO 通讯一定由SDO client 开始,并提供初始化相关的参数。

在CANopen的术语中,上传是指由 SDO server 中读取数据,而下载是指设定 SDO server 的数据。

SDO读字符串

SDO终止码

用于查看SDO指令错误原因

PDO 协议

过程数据对象 (PDO) 协议可用来在节点之间交换即时的数据。

PDO 可以用同步或异步的方式传送:同步的 PDO 是由同步( SYNC )信号触发,而异步的 PDO 是由节点内部的条件或其他外部条件触发,例如编码器使用异步PDO定时发送位置数。

5、接线方式

6、传输距离

7、使用例程

西门子模块:

PN-CANLINK-01

PN-CANLINK-02

汇川模块:

19010394-SC_A14《H3U系列可编程逻辑控制器指令及编程手册》202306参考第9部分

CANopen配置软件:

CANPro使用方法

error: Content is protected !!

鲁公网安备 37100402000539号

鲁ICP备2023019584号