锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2022-09-22 06:30:01 线径传感器

关注星标微信官方账号,直达精彩内容

1520067b6e1de0433c3ab75c548b7e69.png

来源:整理和网络素材

第一部分CAN和CANopen的概念

一、 CAN和CANopen简介

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

CAN 总线是德国 BOSCH 公司从 80 20世纪初开发的串行数据通信协议控制和测试仪器之间的数据交换而开发的串行数据通信协议是一种多主总线,可以是双绞线、同轴电缆或光导纤维。可达通信速率 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 行规决定。

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

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

欢迎关注我的视频号:

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章