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

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

3天内不再提示

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

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

在上一篇文章中,我们介绍了CANopen协议的基础知识和核心概念,而在本篇文章中,我们将继续讲解CANopen通信基础知识。本系列文章主要介绍CANopen协议的基础内容,包括对象字典、服务、SDO、PDO和主/从站节点等。如需CANopen软硬件解决方案或培训服务,可通过400-999-3848或support@hkaco.com联系虹科工业控制团队!

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

1

CANopen框架

CANopen frame

为了理解CANopen通信,有必要对CANopen的CAN报文进行分解。如下图,11位的CANID被称为通信对象标识符(COB-ID),它被分成两部分。前4位相当于功能代码,接下来的7位包含节点ID。

b373408e-02d7-11ed-9302-dac502259ad0.png

为了理解COB-ID的工作原理,需要从简单的CANopen网络中如何使用标识符的预定义分配开始。


b38dfc26-02d7-11ed-9302-dac502259ad0.png


如上图,COB-ID(381、581等)与通信服务(传输PDO3、传输SDO等)相关联,因此,COB-ID详细说明了哪个节点正在发送/接收数据,以及使用了什么服务。如下图的例子,一个节点ID为5的CANopen设备将通过11位的CAN ID 585传输SDO,这对应于二进制功能代码1011,节点ID 5(在二进制中为0000101)。


2

CANopen通信协议/服务

CANopen communication protocols/services

接下来,我们将简要介绍CANopen的7种服务类型,以及它们如何利用8个CAN帧数据字节。

1. 网络管理(NMT)

NMT服务用于通过NMT命令(如:启动、停止、复位)来控制CANopen设备的状态(如:预运行、运行、停止)。为了改变状态,NMT主机发送一个带有 CAN ID 0的2字节消息(即功能代码0和节点ID 0)。所有从站节点都处理这个报文。第一个CAN数据字节包含请求的状态,而第二个CAN数据字节包含目标节点的节点ID。节点ID 0表示广播命令。

b3bb83a8-02d7-11ed-9302-dac502259ad0.png

可能的命令包括转换到运行(状态01)、停止(状态02)、预运行(状态80)以及重置应用程序(81)和重置通信(82)。

例如:将节点0x06设置为运行模式:000 01 06

2. 同步(SYNC)

SYNC报文用于同步几个CANopen设备的输入和响应--通常由应用主站触发。应用主机将SYNC消息(COB-ID 080)发送到CANopen网络(带或不带SYNC计数器)。多个从节点可以配置为对SYNC做出反应,并通过传输同时捕获的输入数据或通过与参与同步操作的节点同时设置输出来响应。使用SYNC计数器可以配置几组同步操作的设备。

3. 紧急情况(EMCY)

紧急服务用于设备出现致命错误(如传感器故障)时,允许它向网络的其他部分指示这一点。受影响的节点以高优先级向网络发送单个EMCY消息(例如,节点5的COB-ID 085)。数据字节包含有关错误的信息,可以查找详细信息。

b3e2c88c-02d7-11ed-9302-dac502259ad0.png

4. 时间戳(TIME) [PDO]

通过这种通信服务,可以分配全球网络时间。时间服务包含一个6字节的日期和时间信息。应用主机发送 CAN ID 为100的TIME消息,其中最初的4个数据字节包含以毫秒为单位的午夜之后的时间,接下来的2个字节包含自1984年1月1日以来的天数。

5. 过程数据对象 [PDO]

PDO服务用于在设备之间传输实时数据,例如位置等测量数据或扭矩请求等命令数据。在这方面,它类似于J1939中的广播数据参数。关于PDO服务,我们将在下一篇文章中进行详细介绍。

6. 服务数据对象 [SDO]

SDO服务用于访问/改变CANopen设备的对象字典中的值。例如,当应用主站需要改变CANopen设备的某些配置时,可以通过SDO服务来实现。关于SDO服务,我们将在下一篇文章进行详细介绍。

7. 节点监控(心跳) [SDO]

心跳服务有两个目的:提供一个“活动”的消息和确认NMT命令。NMT从设备周期性地(例如每100毫秒)发送心跳消息(例如节点5的CANID为705),在第一个数据字节中包含节点的“状态”。如果在特定时间限制内没有收到任何消息,心跳消息的“消费者”(例如 NMT 主设备和可选的任何其他设备)就会做出反应。

例如:节点5处于预运行模式,周期性发送:705 7F

b3fd66ce-02d7-11ed-9302-dac502259ad0.png

在下一篇文章中,我们将继续讲解CANopen通信的相关知识,包括对象字典、SDO、PDO等,欢迎关注本公众号以便第一时间获取更新的内容。虹科在CAN、CANopen等领域深耕多年,有着深厚的技术实力,目前已面向国内市场推出了CANopen开发源代码、CANopen数据记录仪,和支持CANopen协议的网关、板卡、IO等产品

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

    关注

    56

    文章

    2467

    浏览量

    459246
收藏 人收藏

    评论

    相关推荐

    CANopen以太网网关怎么用?

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

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

    CANopen网关在工业领域的应用方法: 1.确定需求:在应用EtherCAT转CANopen网关之前,需要明确具体的需求。例如,需要连接哪些设备、需要实现什么功能、传输什么数据等。 2.选择合适的网关
    发表于 01-31 14:54

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

    在自动化控制领域,Profinet和CanOpen都是广泛应用的通信协议。Profinet是一种基于以太网的通信协议,主要用于工业自动化领域的数据传输和远程监控;而CanOpen是一种用于控制器
    发表于 01-10 10:29

    工业通讯中CANOPEN转EtherCAT的转换

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

    工业通讯中CANOPEN转EtherCAT的转换

    EtherCAT控制系统中,实现EtherCAT网络与CANOPEN网络的数据交互。它支持标准的CAN2.0A接口,符合CANOPEN CiA 401标准,同时具有2个RJ45以太网接口,支持100BASE-TX
    发表于 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 379次阅读
    <b class='flag-5'>CANOPEN</b> 转 Modbus 协议网关

    虹科CANopen设备开发方案

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

    一个CANopen的应用样例(上)

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

    MPC5642A微控制器是否支持CANOpen

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