目前,CANopen通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路,CANopen协议已成为欧洲等国家的自动化公司标配的通讯接口之一。在本系列文章中,我们将介绍CANopen协议的基础内容,包括对象字典、服务、SDO、PDO和主/从站节点等。如需CANopen软硬件解决方案或培训服务,请发邮件到support@hkaco.com联系虹科工业控制团队!
1
什么是CANopen?
What is CANopen?
CANopen是一种基于CAN的通信协议。这项协议非常有用,因为它可以让设备、节点(如工业机械)之间具有现成的互操作性,以及它提供了安装前和安装后配置设备的标准方法。CANopen最初是为面向运动的机器控制系统设计的,如今,它被广泛用于电机控制(步进/伺服电机)领域,并在以下应用中得到广泛使用:
机器人技术:包括自动化机器人、传送带和其他工业机械
医疗:包括X射线发生器、注射器、病人床和透析设备
汽车:包括农业、铁路、拖车、重型汽车和船舶等
CANopen是一个基于CAN总线的“高层协议”,这意味着CAN总线(ISO 11898)就像集装箱的卡车一般作为CANopen信息的“运输工具”。在OSI模型中,CAN总线代表两个最低层(物理层和数据链路层)。这意味着CAN只是实现了带有11位CAN ID、远程传输(RTR)位和64个数据位(与更高层的协议相关)的字段的帧的传输。换言之,CAN总线在CANopen中的作用与在J1939协议相同,而CANopen则实现了OSI模型的第七层,并能够适应除CAN以外的其他数据链路层协议(例如EtherCAT、Modbus、Powerlink)。
值得关注的是,随着CAN FD的推出,CANopen FD作为下一代CANopen标准,可能会发挥着越来越重要的作用。具体细节欢迎到CiA官网中查看。
相较于CAN总线和J1939协议,CANopen协议新增了以下6个核心概念:
通信模式
设备/节点的通信有3种模式:主/从站、客户端/服务器和生产者/消费者。
通信协议
用于通信的协议,如配置节点(SDO)或传输实时数据(PDO)等。
设备状态
单个设备支持不同的状态。一个“主站”节点可以改变一个“从站”节点,包括重置等操作。
对象字典
每个设备都有一个OD,其中有指定设备配置等的条目,它可以通过SDO访问。
电子数据表
EDS是OD条目的标准文件格式,它允许服务工具来更新设备。
设备设置文件
描述了I/O模块(CiA 401)和运动控制(CiA 402)等供应商独立性
2
CANopen通信基础知识
Basic knowledge of CANopen communication
在CANopen网络中,需要多个设备进行通信,例如,在工业自动化设置中,你可能有一个带有多个伺服电机节点和一个控制接口/PC节点的机械臂。为了促进通信,CANopen中存在着三种模式,每种模式都与我们所讨论的CANopen协议紧密相连。下面将简单介绍这三种模式:
CANopen通信的三种模式
01 主/从站
一个节点(例如控制接口)作为应用主站或主控制器。它向从站设备(例如伺服电机)请求数据。这个过程被用于诊断或状态管理。在标准应用中,可以有0到127个从站。请注意:在单个CANopen网络中,可以有不同的主机控制器共享同一个数据链路层。
服务示例:NMT
02 客户端/服务器
客户端向服务器发送数据请求,服务器回复请求的数据。例如,当应用程序主站需要从站的OD中获取数据时使用这一模式。从服务器上读取是一种 "上传",而“写入”是一种 "下载"(该术语采用服务器端的角度)。
服务示例:SDO
03 消费者/生产者
该模式中生产者节点向网络广播数据,由消费者节点消费。生产者根据请求(拉模型)或没有特定请求(推模型)发送此数据。
服务示例:心跳
显然,这些模型实际上是相同的,但为了术语的一致性才对对它们进行了区分。
在下一篇文章中,我们将继续讲解CANopen通信基础知识,欢迎关注本公众号以便第一时间获取更新的内容。虹科在CAN、CANopen等领域深耕多年,有着深厚的技术实力,目前已面向国内市场推出了CANopen开发源代码、CANopen数据记录仪,和支持CANopen协议的网关、板卡、IO等产品。
全部0条评论
快来发表一下你的评论吧 !