0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虹科干货 | 最简单实用的CANopen介绍,看完你就明白了(3)

虹科智能自动化 2022-07-14 09:33 次阅读

在上一篇文章中,我们对CANopen框架和CANopen的7种服务类型进行了简要介绍,而在本篇文章中,我们将展开介绍CANopen的对象字典、SDO和PDO等内容。本系列文章主要是对CANopen协议进行介绍,主要内容包括对象字典、服务、SDO、PDO和主/从站节点等。如需CANopen软硬件解决方案或培训服务,可通过400-999-3848或support@hkaco.com联系虹科工业控制团队!


前文回顾:

虹科干货 | 最简单实用的CANopen介绍,看完你就明白了(1)

虹科干货 | 最简单实用的CANopen介绍,看完你就明白了(2)

在7个CANopen服务中,PDO和SDO服务特别重要,因为它们构成了大多数CANopen通信的基础。下面我们将进行详细介绍,但在此之前我们需要了解CANopen的一个核心概念:对象字典。


1

对象字典OD

Object Dictionary

所有的CANopen节点必须有一个对象字典(OD),对象字典是一个标准化结构,包含描述CANopen节点行为的所有参数。OD条目通过一个16位的索引和8位的子索引进行查询。例如,符合CANopen标准的节点OD的索引1008(子索引0)包含节点设备名称。

具体来说,对象字典中的条目由属性定义的:

索引:对象的16位地址

对象名称:制造商的设备名称

对象代码:数组、变量或记录

数据类型:例如VISIBLE_STRING、UNSIGNED32或记录名称

访问:“rw”(读/写),“ro”(只读)或 “wo”(只写)

类别:这表明参数是强制性的还是可选的

OD标准化部分

在对象字典被分成标准化的部分中,有一些条目是强制性的,而另一些是完全可定制的。重要的是,一个设备(例如一个从站设备)的OD条目可以被另一个设备(例如一个主设备)通过CAN访问,例如使用SDO。这可能让主站改变从站节点是否通过特定的输入传感器记录数据,或改变从站发送心跳的频率。阅读电子数据表和设备配置文件可以帮助理解OD。


01be1fa4-02d6-11ed-9302-dac502259ad0.png

电子数据表(EDS)

在实践中,配置/管理复杂的CANopen网络将会用到一些合适的软件工具。为了简化这一点,CiA 306标准定义了一种人类可读且和机器友好的INI文件格式,作为设备OD的“模板”——例如 “ServoMotor3000”。此EDS通常由供应商提供,包含所有设备对象(但不包括值)的信息


设备配置文件(DCF)

假设一家工厂购买了一台ServoMotor3000,以整合到他们的传送带上。在操作过程中,操作员编辑了设备的EDS,并在EDS中添加了特定的参数值或改变了每个对象的描述名称。这样一来,操作者就有效地创建了所谓的设备配置文件(DCF)。有了这个文件,ServoMotor3000便能够集成到现场的特定CANopen网络中。

查看真实的EDS/DCF示例是理解CANopen对象字典的最佳方法之一,在下图中,您可以留意EDS和DCF对象条目之间的区别以及DCF如何包含特定的参数值。


01d386f0-02d6-11ed-9302-dac502259ad0.png


此外,我们建议到官网上查看CiA 306标准,通过实际的例子对OD、EDS和DCF有更深入的了解。


如前文所述,DCF通常在设备集成时创建。然而,经常需要在初始配置后读取或改变一个节点的对象值——这就是SDO服务的作用所在。


2

服务数据对象SDO

配置CANopen网络

SDO服务允许CANopen节点通过CAN网络读取/编辑另一个节点的对象字典的值。正如在“通信模型”中提到的,SDO服务使用“客户端/服务器”模式。具体来说,一个SDO “客户端”与一个专门的SDO“服务器”发起通信。其目的可以是更新一个OD条目(称为“SDO下载”)或读取一个条目(“SDO上传”)。在简单的主/从网络中,具有NMT主站功能的节点充当所有NMT从站节点读取或写入其OD的客户端。


客户端节点SDO下载:

客户端节点可以通过在 CAN 帧下方的广播来启动到节点 5 的 SDO 下载 - 这将触发节点 5(并被其他节点忽略,见上图)。SDO“接收”(即请求)CAN 帧如下所示:


01eb4e3e-02d6-11ed-9302-dac502259ad0.png


SDO消息变量解释

首先,COB-ID 605反映了“SDO接收”的使用(COB-ID 600 +节点ID)

CCS(客户端命令指定符)是传输类型(例如,1:下载,2:上传)

n是字节区4-7中不包含的字节数(如果e和s被设置为有效)

e表示“加速传输”,且所有数据都在单个CAN帧中(如果有设置)

s表示数据大小显示为n(如果有设置)

索引(16位)和子索引(8位)反映了要访问的OD地址

最后,节点5将相应字节4-7中包含的相关数据

一旦主站节点(客户端)发送CAN帧,从站节点5(服务器)通过COB-ID 585的“SDO传输”进行响应。响应包含索引/子索引和4个空数据字节。自然,如果客户端节点请求上传(即从节点5OD读取数据),节点5将响应字节4-7中包含的相关数据。此外,对于更大的数据场景,可以使用SDO分段/块进行传输。

一般来说,SDO很灵活,但也会带来较高的成本,这使得SDO不太适合实时操作数据。这就是PDO的用武之地。


3

过程数据对象PDO

操作CANopen网络

CANopen的PDO服务用于在CANopen节点之间有效地共享实时操作数据。例如,PDO将携带来自压力传感器的压力数据或来自温度传感器的温度数据。原则上,SDO服务也能实现共享实时操作数据,但由于单个SDO响应只能携带4个数据字节,出于成本原因,我们不建议这么做。

此外,假设一个主站节点需要来自节点5的两个参数值(例如“SensTemp2”和“Torque5”)。如果通过SDO来实现,需要4个完整的CAN帧(2个请求和2个响应)。相比之下,一个PDO消息可以包含8个完整的数据字节,而且它可以在一个帧内包含多个对象参数值。因此,在SDO服务中至少需要4个报文,而在PDO服务中则可能只需要1个报文就可以完成。

PDO通常被看作是最重要的CANopen协议,因为它承载了大量的信息。下面我们将介绍CANopen的PDO服务是如何工作的。

PDO服务使用的是“消费者/生产者”模型。因此,生产者 "生产数据",它使用发送PDO(TPDO)将其传送给“消费者”(主站)。反之,它可以通过“接收PDO”(RPDO)从消费者那里接收数据。例如,生产者节点可以被配置为对应的同步触发,例如每隔100ms广播给消费者。然后,节点5可以在传输带有COB-ID 185的PDO下广播:


0203e0ca-02d6-11ed-9302-dac502259ad0.png


请注意这里的数据字节是如何装入3个参数值的。这些值反映了节点5的特定OD条目的实时数据。使用这些信息的节点(消费者)需要知道如何解释PDO数据字节。

在某种程度上,PDO服务有点像J1939 PGN和SPN,这类似于特定J1939 参数组(PG)如何在 8 个数据字节中包含多个 SPN/信号(也称为数据参数)。J1939 CAN 帧不需要在“解码”信息上浪费数据字节,因为相关节点(以及外部工具通过例如J1939 DBC 文件或 J1939 PDF 标准)知道这一点。问题在于,在 CANopen 中,这些“PDO 映射”通常是可配置的,并且可以在创建 DCF 或通过 SDO 服务期间进行更改。


4

虹科CANopen解决方案

HongKe Solutions

虹科CANopen数据记录仪

CANopen经常被用于仓库中的电动叉车或自动导引车中,对CANopen数据进行监测和分析有利于改善管理,比如监测充电状态有助于减少故障和改善电池寿命,并且工业机械可以通过云端的物联网CAN记录器进行监控,根据CANopen数据预测和避免故障。此外,CAN记录器可以作为工业机械的“黑匣子”,提供数据用于解决OEM和用户之间的纠纷,或作为罕见问题诊断的一部分。0210abd4-02d6-11ed-9302-dac502259ad0.png

虹科CANopen IO模块

虹科HK-CIO系列是支持CANopen协议的远程IO模块,IO类型包含数字量,模拟量,高速计数器,脉冲输出,PWM,PT100/1000等,紧凑型设计,支持DIN导轨安装,IO与CANopen通讯之间相互电气隔离。

02293e92-02d6-11ed-9302-dac502259ad0.png

虹科CANopen协议开发方案

虹科CANopen源代码实施全功能符合CiA 301标准草案,支持快速且标准地开发你的CANopen主站或从站设备,包括NMT主站(网络管理)、LSS主站(层设置服务)或SDO客户端。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2470

    浏览量

    459254
收藏 人收藏

    评论

    相关推荐

    CANopen以太网网关怎么用?

    CANopen以太网网关怎么用? CANopen以太网网关是一种连接CANopen总线和以太网的设备,它提供了在CANopen网络和以太网之间传输数据的功能。本文将详细
    的头像 发表于 02-02 16:59 242次阅读

    EtherCAT转CANopen网关在工业领域的应用方法

    :根据需求,选择合适的EtherCAT转CANopen网关。需要考虑网关的接口、协议转换能力、稳定性、可靠性等方面。 3.配置EtherCAT转CANopen网关:根据实际应用情况,对EtherCAT转
    发表于 01-31 14:54

    Profinet协议转换为CanOpen协议来连接CanOpen伺服驱动器的应用

    局域网(CAN)网络的通信协议,被广泛应用于汽车和其他嵌入式系统中。对于将Profinet协议转换为CanOpen协议以链接台达B3系列伺服驱动器的应用,以下是一些运用的基本步骤:系列伺服驱动器的通信接口
    发表于 01-10 10:29

    工业通讯中CANOPEN转EtherCAT的转换

    CANOPEN转EtherCAT协议转换网关是一款能够将CANOPEN接口设备连接到EtherCAT网络系统的产品。该网关作为EtherCAT网络的从站,可以将CANOPEN设备集成到EtherCAT控制系统中,实现EtherC
    的头像 发表于 12-12 11:33 212次阅读
    工业通讯中<b class='flag-5'>CANOPEN</b>转EtherCAT的转换

    工业通讯中CANOPEN转EtherCAT的转换

    CANOPEN转EtherCAT协议转换网关是一款能够将CANOPEN接口设备连接到EtherCAT网络系统的产品。该网关作为EtherCAT网络的从站,可以将CANOPEN设备集成到
    发表于 12-12 11:31

    ModbusTCP转CanOpen网关助力工控行业

    CANopen协议的优势,确保在数据传输过程中的高效与稳定。 这款网关的应用场景十分广泛。在工业自动化系统中,它可以实现不同设备间的互联互通,如传感器、执行器、控制器等。同时,对于设备的远程监控
    发表于 12-11 10:53

    Modbus转CANopen协议相互转换在工业中的作用

    于汽车和工业自动化领域。在某些应用中,可能需要将Modbus协议转换为CANopen协议。这可以通过使用专门的Modbus转CANopen协议网关来实现。本文将介绍这种网关的基本原理、硬件构成和软件
    发表于 12-08 17:02

    fpga是什么?看完明白

    FPGA(Field-Programmable Gate Array)是一种可编程逻辑设备,它具有灵活性和可重新配置性的特点,在硬件设计领域扮演着重要的角色。本文将深入介绍FPGA的定义
    发表于 11-13 15:43

    从理论到实践——CANopen源代码配置

    前文所述,CANopen的适应性在满足实时应用需求方面发挥着至关重要的作用。本系列文章的最后一部分将向您展示CANopen源代码配置的技术细节,以及实现高效实时性能的优化方法。前文回顾虹科干货|平衡
    的头像 发表于 11-03 08:04 742次阅读
    从理论到实践——<b class='flag-5'>CANopen</b>源代码配置

    基于CAN总线系统的时间动态:CAN与CANopen的实时能力与局限性

    前言Preface在前文中,我们探讨了具有实时能力的嵌入式通信系统的基本要求——平衡实时响应、安全性和保障。本篇文章将重点介绍CAN与CANopen的实时能力和局限性。前文回顾虹科干货|平衡速度
    的头像 发表于 11-01 08:04 844次阅读
    基于CAN总线系统的时间动态:CAN与<b class='flag-5'>CANopen</b>的实时能力与局限性

    CANOPEN 转 Modbus 协议网关

    YC-COP-RTU网关可通过自带的配置软件设置成两种不同的通信网关,CANopen 做主站/Modbus 做从站网关:CANopen 主站协议与 Modbus 从站协议之间的转换,可实现单个 CANopen 从站设备与 Mod
    的头像 发表于 09-19 17:55 380次阅读
    <b class='flag-5'>CANOPEN</b> 转 Modbus 协议网关

    虹科CANopen设备开发方案

    6月13日晚2000,虹科技术工程师张工为大家分享了“虹科CANopen设备开发方案”主题直播课程,课程的主要内容包括CANopen协议概述、对象字典、NMT、PDO、SDO等干货内容,同时也
    的头像 发表于 07-31 17:51 400次阅读
    虹科<b class='flag-5'>CANopen</b>设备开发方案

    一个CANopen的应用样例(上)

    在基本的运行CANopen框架的演示项目中,除了一个已经运行CANopenNode组件程序的CANopen节点,还需要一台运行PCAN-View软件的PC机和USB-CAN转换器PEAK-CAN
    的头像 发表于 06-23 15:57 1485次阅读
    一个<b class='flag-5'>CANopen</b>的应用样例(上)

    MPC5642A微控制器是否支持CANOpen

    MPC5642A 微控制器是否支持 CANOpen? 我正在使用 MPC5642A 微控制器,这个微控制器有 CANbus 接口。我想用这个微控制器与一个带有 CANopen 接口的传感器通信,我该怎么做,能帮忙吗?MPC56
    发表于 06-09 06:29