机械臂控制系统中CANopen协议的应用与开发

发布者:等放假的Lwj最新更新时间:2016-11-07 来源: e-works关键字:CAN总线  CANopen协议  现场总线 手机看文章 扫描二维码
随时随地手机看文章
引言

    CANopen是基于CAN总线的应用层协议,在开放的现场总线标准中CANopen是最著名和成功的一种,已经在欧洲和美国获得广泛的认可和大量应用。由于CAN只定义了物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。CANopen是建立在CAN(ControllerArea Network)串行总线之上的应用层协议。它支持多种传输模式,具有良好的开放特性,并能极大程度地降低CAN总线网络数据的负荷,从而使CAN总线成为一个更加完善的网络系统。本文通过CANopen协议的SDO报文命令实现了说话者运用语音指令控制AS—MRobotE智能机械臂完成相对复杂的动作,和以往的基于CAN总线的数据传输相比,大大提高了系统的效率,节约了有限的硬件资源,为功能的扩展和用途的延伸提供了方便。

1 CANopen协议剖析

    1.1 CANopen协议通信模型

    CANopen协议中包含了标准的应用层规范和通信规范,其通信模型如图1所示。

    在CANopen的应用层,设备间通过相互交换通信对象进行通信。良好的分层和面向对象的设计理念使得CANopen协议中的通讯模型条理清晰。

 

图1 CANopen协议通信模型

    1.2 CANopen设备模型

    一个CANopen设备模块可以分为3部分,如图2所示。

 

图2 CANopen设备模型

    通信接口和协议软件提供在总线上收发对象的服务。这一部分直接面向CAN控制器进行操作。

    对象字典描述了设备使用的所有的数据类型,通信对象和应用对象,是一个CANopen设备的核心部分。应用程序对对象字典进行操作就可以实现CANopen通信。

    而应用程序由用户编写,包括功能部分和通信部分。通信部分通过对对象字典进行操作实现CANopen通信,而功能部分由用户根据应用要求实现。

    1.3 CANopen的网络模型

    图3所示为CANopen典型的网络模型,该网络中有一个主节点,三个从节点以及一个CANopen网关挂连接的其他设备。由于CANopen是基于CAN总线的应用层协议,属于总线型网络,在布线和维护等方面非常方便,可最大限度地节约组网成本。

 

图3 CANopen网络结构

    其中,构建一个CANopen设备至少应该具有(最小能力设备)以下几个部分: 一个节点ID,一个对象字典(内容由设备功能决定),一个SDO,能够访问对象字典中必需的对象(只读),支持下列NMT服从设备从设备:复位节点;停止远程节点;启动远程节点;复位通讯,进入预操作状态;缺省的标识符分配。
 

2 开发方法的选择

    开发有很多种方法,但归纳起来共三种:

    2.1使用CANopen处理器及模块

    CANopen处理器提供一个具有完善软件及硬件接口的基于SOC的CANopen协议栈固件嵌入式模块,比如HMS工业网络有限公司新近开发的用于CANopen的Anybus—IC。使用这样的CANopen处理器模块来与自己的设备相连接,可以快速接入CANopen设备,但这样的模块一般购买单价都比较高。优势是开发周期短,不容易出问题,对于小批量和开发能力弱的用户比较合适。

    2.2使用CANopen协议栈的源代码

    开发CANopen节点的一个最常用的途径是购买CANopen协议栈的源代码。这种商品化的解决方案可适用于大多数的微控制器、微处理器甚至DSP芯片。利用这些商品化的CANopen协议栈的源代码可以快速构建系统。但是会增加额外的软件接口,例如硬件抽象化以及队列。

    2.3完全自己开发硬件和程序

    在CANopen协议基础上,大致确定自己的产品所需要的功能,然后选择最适合自己的硬件系统。这种方法比较适合大批量的公司,且要求开发者的开发能力很强,对协议很熟悉,开发周期相对较长,后期验证也需要较长的时间,以及对协议的不同理解造成的开发的兼容性差。但这种方法能让公司真正积累设计能力、后期客户问题处理能力及产品功能升级能力,应用非常灵活。

    由于智能机械臂控制系统AS-MRobotE是一种模块化的智能机器人,每个模块都是由独立的DSP运动控制芯片与通迅模块组成,模块之间均采用基于CAN总线的通讯模式。AS—MRobotE的各种运动由各个关节轴系完成,我们可以把AS—MRobotE各个模块看成CANopen设备的每一个从站,在机械臂控制系统中建立简单主站协议栈来完成与各个模块之间的通讯以及与控制。而开发主站协议栈过程中所采取的简化与设计心得如下:

    1)在开发过程中根据具体的需要来完成有关CANopen协议的编写即可;

    2)组建对象字典时,根据具体的需要来完成必要的功能,预留一定的空间为功能的扩展添加新的功能项;

    3)通过简单引导来实现CANopen标识符的分配。

3 CANopen协议在机械臂控制系统中的应用与开发

    3.1 CANopen协议的控制网络

    基于CANopen协议的嵌入式语音指令控制机械臂的控制网络是单主站(Master)系统,在工控主板EPCS.8980的CAN接口构造简单的CANopen协议栈主站,作为从站设备的智能机械臂系统各模块的运行由主站来控制。CANopen协议栈主站还具有启动中止总线节点,节点监测等特定功能。

 

图4 CANopen协议的控制网络

    3.2 CANopen的初始化和组态

    结合CANopen协议在机械臂控制系统中的应用实现过程,CANopen的初始化和组态过程如下:

    1)主站和从站分别上电,从站自动进入准备预操作状态:

    2)主站初始化CAN芯片;

    3)主站根据EDS文件向从站发送SDO,对每个从站设备进行组态;

    4)主站向从站发送NMT命令,指示从站进入运行运行操作状态;

    5)主站和从站通过PDO和SYNC数据交换控制变量和通讯信息。
 

4 基于CANopen协议的嵌入式语音指令控制过程的实现

    本文把几个有限的语音指令(左转、右转、上升、下降、加紧、放松)在嵌入式机器人控制系统平台上通过识别和理解过程把语音指令转化成对应的文本活命令,实现嵌入式语音指令控制机械臂控制系统,使之按说话者完成相应的运动。语音指令与对应的文本活命令之间的关系如下:左转(0x01)、右转(0x02)、上升(0x03)、下降(0x04)、加紧(OX05)、放松(0x06)。

    下面通过一个例子来说明如何通过CANopen协议实现嵌入式语音指令对机械臂控制系统的控制过程。

    使用下面的SDO消息如表1,表2,表3,表4所示。嵌入式机器人控制系统平台把值0x01(左转)通过CANopen协议传输到机械臂控制模块控制器中的对应的对象字典中。比如:写到节点ID为2的对象字典中索引为0x1801,子索引为2的对象中去,使用启动域下载协议,加速传输(1字节数据)。

 

表1 左转节点2的报文

 

表2 左转节点2的报文

    通过SDO协议报文即可以实现语音指令的控制。在机械臂内部,通过读取码盘传感器的数据来与设定值之间进行比较,来完成中止这次语音命令控制过程。实现过程正好和上面的过程相反。

    使用下面的SDO消息,同样的对象字典中索引0x1401,子索引为2的对象将被读出,使用启动域上传协议,服务器使用加速传输方式应答(1字节数据):

 

表3 左转节点2的报文

 

表4 左转节点2的报文

    其他的语音指令命令如右转(0x02)、上升(0x03)、下降(0x04)、加紧(Ox05)、放松(0x06)等也可以通过这个过程来实现。

    通过在机械臂控制网络中采用CANopen协议来传递控制参数比如语音指令等和码盘等控制信息,可以达到很好的实时通讯和控制目的。

5 结论

    CAN总线在各个领域有着很好的应用前景,而基于CAN总线的高层协议CANopen和CAN构成了一个完整的网络协议,提高了CAN总线的利用率,增强了设备的可扩展性,提高了数据传输的可靠性。在机械臂控制系统中使用CANopen协议的方案能够很好的为机械臂控制系统提供实时可靠的数据传输并具有良好的设备扩充能力和模块独立性。该方案为提高CANopen的应用提供了一种新的思路,为集成的和可传输的工业应用具有一定的借鉴意义。

关键字:CAN总线  CANopen协议  现场总线 引用地址:机械臂控制系统中CANopen协议的应用与开发

上一篇:RS Components新增600多款Amphenol FCI连接器和线缆组件
下一篇:基于ComPactLogix和现场总线的过程控制系统

推荐阅读最新更新时间:2024-05-03 00:49

基于CAN总线的电动汽车控制系统设计
一、前言   CAN总线是德国 BOSCH 公司在20世纪80年代初为解决汽车中众多的控制与测试仪器之间的数据交换而开发的一种通信协议。由于CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同和运用,并在 1993 年正式成为国际标准和行业标准,被誉为“最有前途的现场总线”之一。以CAN为代表的总线技术在汽车上的应用不但减少了车身 线束 ,也提高了汽车的可靠性。在国外现代轿车的设计中,CAN已经成为必须采用的技术,奔驰、宝马、大众、沃尔沃及雷诺等汽车都将CAN作为控制器联网的手段。我国目前CAN总线技术在汽车上的应用存在着很大的空白,在电动汽车上应用CAN总线技术研究尚处于起步阶段。   电动汽车融合了许多的
[汽车电子]
基于<font color='red'>CAN总线</font>的电动汽车控制系统设计
白话现场总线
说起现场总线,这项技术不能说是这两年自控领域讨论最广的话题,但也能算得上自控厂商相互角逐争夺市场一项技术。从siemens早在10年前全球推广的profibus到近年来profinet,再到emerson推广的FF以及rockwell的推广的devicenet和ethernet/ip,其实自动化厂商心里很清楚,谁掌握了现场总线,谁就掌握了标准,谁掌握了标准,谁就掌握了市场谁就是技术领头羊。那现场总线到底是什么,对于自动化技术人员又能带来什么呢? 现场总线,主要是由物理通讯形式+通讯协议+网络调度机制这三部分组成。 物理通讯形式,我想大家理解起来不会很难,其实就是RS485、RS232、RS422、TCP/IP这几种物理
[嵌入式]
基于现场总线的电机运行状态
1引言 现代企业连续生产线自动化程度日益提高。系统维护人员越来越少, 设备 运行状态集中监控又自动故障诊断系统已成为现代工业生产白勺重要组成部分,值班人员通过监控系统可方便快捷地了解现场 设备 的在线运行状况,在发生故障时立即采取相应措施进行故障处理。目前,基于现场总线和工业以太网技术的分布式自动化测控系统是工业自动化技术的发展方向,尤其对于设备运行状态信号相对控制室距离较远且地理位置分散时具有明显的优势。 宝钢1580热轧生产线共有辊道电机近600台,每台电机主回路进线通过空气开关进行主电源切换和电机过流保护,由于现场工作环境比较恶劣,辊道电机经常发生故障跳闸动作,如不及时处理,容易造成“被动辊”和“死辊”现象,给带钢表面质量造成
[嵌入式]
解读CAN总线行车记录仪系统电路
  系统整体结构设计   由于CAN串行通讯总线的良好特性,被广泛地应用于现场数据采集系统、汽车制造业和航空工业等领域。本文所设计的基于CAN总线数据记录仪是应用在奇瑞汽车A5车型上的,对整车CAN网络上的节点数据进行采集和存储。A5是第一款应用CAN bus总线系统的自主品牌国产轿车,其CAN bus主要应用在传动部,在车身部、ITS部和信息部等也有少量的应用。对A5这款首次使用CAN技术的车型进行实时数据采集,可了解汽车运行期问各种数据信息变化,对A5乃至后续所有车款的研发来说,都有着非常重要的意义。   CAN总线行车记录仪工作时应挂接到汽车CAN总线上成为一个CAN节点,以便采集CAN数据信息。由图1所示,该系统不仅采集车
[单片机]
解读<font color='red'>CAN总线</font>行车记录仪系统电路
CAN总线BusOff原理
汽车内部挂有很多的ECU节点,当其中一个节点发生故障进入总线关闭状态时,会很大程度上影响整车CAN网络的通讯。例如,当汽车发生碰撞时,传感器将电信号传送给安全气囊ECU,将信号进行处理,当确定需要打开安全气囊时,ECU会立即发出点火信号,气体发生器才会充满气囊,对驾驶员和乘客提供安全保护,如下图1所示。若此时安全气囊ECU处于总线关闭状态,则无法正常弹出气囊,会导致严重后果。 图1 ECU工作示意图 因此,对于新能源汽车行业工程师,了解CAN总线Bus Off原理是非常有必要的。CAN控制器可以判断出错误的类型是总线上暂时的数据错误(如外部干扰等)还是持续的数据错误(如单元内部故障、驱动器故障、断线、短路等)
[汽车电子]
<font color='red'>CAN总线</font>BusOff原理
详解CC-Link现场总线
融合了控制与信息处理的现场总线CC-Link(Control & Communication Link)是一种省配线、信息化的网络,它不但具备高实时性、分散控制、与智能设备通信、RAS等功能,而且依靠与诸多现场设备制造厂商的紧密联系,提供开放式的环境。Q系列PLC的CC-Link模块QJ61BTll,在继承A/QnA系列特长的同时,还采用了远程设备站初始设定等方便的功能。 为了将各种各样的现场设备直接连接到CC-Link上,与国内外众多的设备制造商建立了合作伙伴关系,使用户可以很从容地选择现场设备,以构成开放式的网络。2000年10月,Woodhead、Contec、Digital、NEC、松下电工、三菱等6家常务理事公司发起
[嵌入式]
现场总线(PROFIBUS)技术简介(二)
1.2  现场总线技术概念    1.2.1  现场总线技术               目前,公认的现场总线技术概念描述如下:现场总线是安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字式、多点通信的数据总线。其中,"生产过程"包括断续生产过程和连续生产过程两类。 或者,现场总线是以单个分散的、数字化、智能化的测量和控制设备作为网络节点,用总线相连接,实现相互交换信息,共同完成自动控制功能的网络系统与控制系统。  1.2.2  现场总线技术产生的意义               (1)现场总线(Fieldbus)技术是实现现场级控制设备数字化通信的一种工业现场层网络通信技术;是一次
[嵌入式]
应用现场总线和伺服控制实现裁断精度的控制系统
  子午线轮胎生产过程中胎面定长裁断是其关键工序之一,胶料投入挤出机后压出并经牵引拉伸、冷却及定长裁断后得到轮胎胎坯。胎面裁断定长检测的控制过程是一个先裁断定长、后单条称重的控制过程[1]。开发一套具有高切割精度(包括加工端面倾斜度和光洁度及定长剪切长度的精确度)、能够适应高裁断速度的胎面裁断装置,不管从提高产量、减少废品率还是从提高原料的利用率来说都显得极为重要。   本文主要阐述一种应用现场总线和伺服控制技术来实现较高定长裁断精度的控制系统。系统的运行指标如下:   l 高运行速度不低于30m/ min;   l 设定长度大于lm时,定长剪切误差小于2 ‰;   l 切割端面倾斜度和光洁度以满足下段工序的要求为标准。   裁断系
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved