CANopen实时总线的要点解析,看完你就明白了

李肖遥

共 5366字,需浏览 11分钟

 ·

2021-11-04 14:44

关注、星标公众号,直达精彩内容

来源:整理与网络素材

第一部分CAN和CANopen的概念
一、 CAN和CANopen简介

CAN总线全称为 Controller AreaNetwork 即控制器局域网是国际上应用最广泛的现场总线之一,已经在汽车制造、机械制造、包装机械、烟草等行业得到了广泛的应 用 。


CAN 总线是德国 BOSCH 公司从 80 年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达 1MBPS 。CAN 总线通信接口中集成了 CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。


CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由 11 位或 29 位二进制数组成,因此可以定义 211 或 229 个不同的数据块,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为 8 个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8 个字节不会占用总线时间过长,从而保证了通信的实时性。CAN 协议采用 CRC 检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN 卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。


另外,CAN 总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN 总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN 总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN 总线插卡可以任意插在 PC、 AT 、XT 兼容机上,方便地构成分布式监控系统。


而 CANopen 是基于 CAN 总线的应用层协议,在开放的现场总线标准中CANopen是最著名和成功的一种,已经在欧洲和美国获得广泛的认可和大量应用。1992 年在德国成立了“自动化 CAN 用户和制造商协会”(CiA,CANinAutomation),开始着手制定自动化CAN 的应用层协议CANopen。此后,协会成员开发出一系列 CANopen 产品,在机械制造、铁路、车辆、船舶、制药、食品加工等领域获得大量应用。目前 CANopen 协议已经成为了一种新的工业现场总线标准 EN-50325-4。CANopen 协议是 CAN-in-Automation(CiA)定义的标准之一,在欧洲,CANopen 协议被认为是在基于 CAN 的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠 CANopen 协议的支持,可以对不同厂商的设备通过总线进行配置。



二、CANopen的基本知识

EDS文件

EDS (Electronic Data Sheet)

EDS 文件描述了 CAN 网络上设备通信属性(波特率、输出类型、I/O 提供…)。它由设备制造商提供,用于在配置工具中配置节点(就像 Windows 里的设备驱动程序)。


PDO

PDO (过程数据对象)

CANopen 帧包含 I/O 数据

区分在:

1、 传送 PDO:TXPDO 带有节点提供给其他节点的数据


2、 接收 PDO:RXPDO 节点消耗的数据

传送的方向从节点的观点看总是可见的。PDO 没有必要包含所有节点映象。通常模拟量和数字量被分成不同的 PDO 进行传送。对输出也是同样如此!


SDO

SDO (服务数据对象)

CANopen 帧包含参数

SDO 主要用于在程序运行时,从设备读参数或者向设备写参数


COB-ID

COB-ID(通讯对象标识符)

每个 CAN 帧以一个 COB-ID 开头,COB-ID 作为 CAN 帧的标识符。

在配置阶段,每个节点在接收 COB-ID 时,对帧来说,他是提供者或者消费者。


三、关于CANopen

介绍

CANopen 是一个标准的工业控制系统现场总线协议。它特别适合实时控制的 PLC ,因为它为集成的和可传输的工业应用提供了一个高效、低成本的解决方案。


CANopen协议

CANopen 协议是建立在 CAL 协议基础上的一个子协议。通过定义设备规范,它甚至更加适合于标准工业组件。CANopen 是一个 CIA (CAN inAutomation)标准,投入市场之初,它就迅速被推广。在欧洲,CANopen现在已经被公认为基于 CAN 设计的工业系统的工业标准。


物理层

CAN 使用差分驱动两总线(公共回路)。CAN 信号是 CAN-high 和CAN-low 线之间的电压差值。


1:CAN-high 线

2:CAN-low 线

3:终端电阻:120Ω

4:节点

根据电磁兼容要求,总线可以使用平行、双绞或者屏蔽走线方式。线结构使反射最小化。


CANopen规范文件

通讯规范文件

CANopen 规范文件时基于“通信规范文件”的,用来规定主要通讯机制和它们的描述(DS301 )。


设备规范文件

在设备规范文件中描述了工业自动化领域最重要的设备类型,同时也定义了设备功能类型。


标准设备描述例子为:

◆ 数字量和模拟量输入/输出模块(DS401)

◆ 电机(DS402)

◆ 控制设备(DS4P403)

◆ 闭环控制器(DSP404)

◆ PLC (DS405)

◆ 编码器(DS406)


通过CAN总线配置设备

通过 CAN 总线配置设备的可能性是制造商要求自治的基本原则之一。


CANopen规范文件的通用规格

CANopen 是符合以下规定文件的,用于 CAN 系统的一套规范:

◆ 开发的总线系统

◆ 无协议超负荷的实时数据交换

◆ 可重新定义尺寸的模块化设计

◆ 设备互用性和交换性

◆ 被大量国际制造商支持

◆ 标准的网络配置

◆ 访问所有的参数设备

◆ 同步和循环过程数据/事件驱动数据


CANopen产品认证

在市场上提供CANopen 认证产品的制造商都是 CiA 组织成员。


CAN标准

CANopen 协议被 CIA 组织定义并且可访问该组织(须遵守某些限制 )站点:http://www.can-cia.com.对主从设备的源代码可以从不同的供应商得

到。


CANopen网络通讯

通讯协议文件基于 CAL 服务和协议。

它提供用户对两种交换类型的访问:SDO、PDO。

在上电时,设备进入一个初始化阶段,接着进入预处理阶段。在这个阶段,只有SDO 可以通讯。在接到一个启动命令后,设备进入工作状态 ,在这个阶段 PDO 可以进行通讯,SDO 通讯仍然有效。


CANopen启动Boot-up

启动过程 最小设备配置指定了简化的启动程序。这个过程描述如下:




详细步骤介绍:

1、模块上电

2、模块初始化,进入预处理状态

3、NMT 服务:启动远程节点

4、NMT 服务:预处理

5、NMT 服务:停止远程节点

6、NMT 服务:重启节点

7、NMT 服务:重启节点通讯


初始

进入“重新启动通讯”后,设备进入初始模式。

该状态允许的操作有:

◆ 定义要求的通讯对象(SDO、PDO、紧急事件处理)

◆ 安装相关的 CAL 服务

◆ 配置 CAN 控制器

初始化完成后设备自动进入预处理模式。


预处理

进入预处理的条件:

◆ 在初始化完成后

◆ 在正常工作模式下,接收到“进入预处理”NMT 命令


在这种情况下,设备的配置可以被修改。然而只有 SDO 可以用来读或写设备的参数。


当配置完成后,通过接收相关的命令,设备进入以下的工作状态:

◆ 停止 ,当接收到“停止远程节点”NMT 命令

◆ 运行 ,当接收到“启动远程节点”NMT 命令


停止

如果设备处于“预处理 ” 或者“正常工作 ” 状态,接收到“节点停止 ” 命令(NMT 服务),设备进入 “停止状态 ” 。


在这种情况下,设备不能被配置。不能读写设备相关参数(SDO ),只有从设备的监视功能(即节点保护)有效。


操作

当设备处于“预处理”状态,接收到“启动远程节点 ” ,设备进入操作状态。在“运行 ” 状态,当使用“节点启动 ” NMT 服务启动 CANopen 网络,所有的设备功能性被使用,PDO、SDO 均可进行通讯。


过程数据对象(PDO)

PDO定义

PDO 是过程数据通信相关的通信对象,它能保证过程数据的实时交换。

一个 CANopen 设备的 PDO 对象定义了它与网络上其他 CANopen 设备之间的

隐式数据交换。

当设备运行时,PDO 交换被激活。


PDO类型

有两种 PDO 类型:

◆ TXPDO/TPDO:PDO 被设备传送

◆ RXPDO/RPDO:PDO 被设备接收


PDO的供给者与消费者

PDO 基于“供给者/消费者 ” 模型。传送的叫“供给者 ” ,接收的叫“消费者 ” 。


PDO的传送模式

◆ 同步(通过接收SYNC对象实现同步)

非周期:由远程帧预触发传送,或者由设备子协议中规定的对象特定事件预触发传送。

周期:传送在每1到240个SYNC消息后触发。


◆ 异步

由远程帧触发传送。

由设备子协议中规定的对象特定事件触发传送。


服务数据对象(SDO)

SDO定义

服务数据对象 SDO 允许使用显示请求交换数据。

当设备处于预处理、工作状态,SDO 服务是有效的 。


SDO的类型

有两种 SDO 类型:

◆ 读 SDO(上传)

写 SDO(下载)


客户端/ 服务器模型

SDO 协议是基于“客户端/服务器”模型。

对于下载 SDO

客户端发送一个标示被写对象的请求,服务器返回一个确认信息。


对于上传 SDO

客户端发送一个标示被读对象的请求,服务器返回被读对象的数据。


对于一个未处理的 SDO

对于以上的两种情况,如果一个 SDO 不能被处理,服务器返回一个错误

代码。


节点保护”和“寿命保护”

使用期限的定义

“使用期限”参数是按以下来计算的:

使用期限=保护时间(看门狗时间)*使用期限系数;

保护时间的典型值在 250ms 到 2S 之间。对象 0X100CH 含有以毫秒时间定义的保护时间,对象 0X100DH 含有“使用期限系数 ” 。


监控机制:

1、节点保护

2、心跳报文


监控激活

如果两个参数中有一个为零,那么模块不执行监控,即无寿命保护。为了激活监控,必须在两个对象中输入非零的数值。


保证可靠工作

为了保证可靠工作,建议设置“使用期限系数 ” 为 2。如果不是只样,主模块会产生延时(例如,在“节点保护 ” 时高优先级信息的处理或者内部处理时),模块会转入预处理模式而不产生错误。


监控的重要性

这两种保护机制对 CANopen 系统的安全运行特别重要,特别是对不工作于事件-被控模式的设备。


从设备的监控

监控按以下的方法执行:


◆ 主设备发送远程帧,来读取从设备的状态;


从设备答复:


◆ 从设备可以被配置为产生周期性的被称着 “心跳报文” 的报文,周期性的发送从设备的状态。

主设备的监控

如果主设备基于严格循环请求“保护 ” 信息,从设备可以检测主设备的状态。如果从设备在也定义的使用期限内没有收到主设备的请求(保护错误),它会认为主设备故障。这种情况下相应输出进入出错状态并且从设备进入预处理状态。


“保护”协议

在第一个“保护”信息里,“锁住位”(t)的值是0,然后在每个后来的保护信息里,该位都会改变,只有可以显示信息是否丢失。总线头部用7个剩余的位来指示网络状态:

四、CANopen设备

CAN 总线网络中有如下几类设备:

(1)PLC:PLC 做 CAN 上的一个主站,起到中央控制器的作用,对整个系统的工作起安排、调度、执行各个操作等作用。作为 CAN 网络中的主站,PLC 可以访问网络中任何节点的任何可以访问的数据,并起总线监控作用,实时监控总线上各个节点的工作状态,如果出现错误并执行相应的处理程序;


(2)分散式I/O:通常由电源部分、通信适配器部分、接线端子部分组成。分散式I/O 不具有程序存储和程序执行,通信适配器部分接收主站指令,按主站指令驱动 I/O ,并将 I/O 输入及故障诊断等信息返回给主站。


(3)驱动器、传感器、执行机构等现场设备:即带 CAN 接口的现场设备,可由主站在线完成系统配置、参数修改、数据交换等功能。至于哪些参数可进行通信及参数格式由 CANopen 行规决定。

版权归原作者所有,如有侵权,请联系删除。

关注我的微信公众号,回复“加群”按规则加入技术交流群。

欢迎关注我的视频号:


点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

浏览 71
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报