PXF2979-CANopen协议高空作业车控制系统

Shanghai Passiontech Tech, 021-51870017, sales@51Lm.cn

     
     
     

CANopen协议高空作业车控制系统


型号: PXF2979


简介:CANopen协议在高空作业车控制系统中的应用随着CAN总线广泛应用于工业控制领域,作为基于CAN总线的应用层协议CANopen,由于其具有良好的兼容性和实时性,逐渐成为了具有主导地位的协议标准之一。本文对CANopen协议的核心内容进行了相应分析,并实现了该协议在高空作业车控制器系统的设计中的应用。2...
品牌 ixxat ixxat
产地德国
型号PXF2979
折扣其他电询

 

CANopen协议在高空作业车控制系统中的应

随着CAN总线广泛应用于工业控制领域,作为基于CAN总线的应用层协议CANopen,由于其具有良好的兼容性和实时性,逐渐成为了具有主导地位的协议标准之一。本文对CANopen协议的核心内容进行了相应分析,并实现了该协议在高空作业车控制器系统的设计中的应用。

20世纪80年代中期,由Bosch公司研发出的CAN总线,即控制器局域网(Controller AreaNetwork)[1],由于其自身具有典型的总线型结构、稳定可靠、实时性、抗干扰性强、传输距离远等特点,在汽车行业领域,占有着非常重要的主导地位。然而,由于CAN总线本身只定义了ISO/OSI模型中的第一层物理层和第二层数据链路层,在实际使用中,用户还需要自己定义应用层的协议,而由此造成了不同厂商的CAN设备间无法正常通信。为了以CAN 总线为基础构成完整的工业控制现场总线系统,制定相应的应用层协议,解决设备互连和兼容问题就显得尤为重要。

CANopen协议即是这样的一个CAN应用层协议。近年来,作为CAN高层协议的标准之一,CANopen协议由于其公共、开放、通用且易于开发的特性,在发布后不久就获得了广泛的承认,在工程机械领域中得到了广泛应用,在高空作业车领域亦是如此。一方面,将CANopen应用于高空作业车控制系统,解决了不同厂商生产的传感器、控制器等模块间的兼容问题。其次,CANopen提高了通信的标准化,开放化程度,使得通讯的可靠性、实时性进一步增强。再次,由于国外该领域中CANopen使用已经相当普遍,国内相关产品研究相对较少,本文希望通过该系统设计,给高空作业车控制系统的国产化提供些参考。

 

1 CANopen协议原理及其核心内容

CANopen协议于20世纪90年代末,由CiA组织(CAN-in-Automation)在CAL( CAN Application Layer)的基础上发展而来,一经推出便在欧洲得到了广泛的认可与应用[1,2]。经过对CANopen协议规范文本的多次修改,使得CANopen协议的稳定性、实时性、抗干扰性都得到了进一步的提高。并且CiA在各个行业不断推出设备子协议,使CANopen协议在各个行业得到更快的发展与推广。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运等行业得到广泛的应用[3]。尤其是在欧洲,CANopen协议被认为是在基于CAN的工业系统中占领导地位的标准。正是CANopen协议的出现,实现了应用层结构上的统一,进一步完善了CAN总线的网络系统,使其更加规范化,更具有竞争力。

1.1 对象字典

对象字典(OD: Object Dictionary),是CANopen协议中的核心概念,在其他的现场总线如Profibus中也有类似的描述。在CANopen协议中,它是一个有序的对象组[4],作为设备规范中的重要组成部分,其包括了对设备属性参数和通讯参数的全部描述。CANopen协议中定义了对象字典的通用结构,其中规定了各种对象参数在对象字典中的位置区域,在建立设备对象字典时,应注意查询对应的位置关系及相应子协议。每个CANopen子节点都有各自相对应的对象字典,其

作者简介:王硕(1985 - ),男,辽宁大连人,硕士,主要从事嵌入式软硬件开发及相关技术的研究。

中的每个对象采用唯一的16位索引值和8位的子索引来寻址。除此之外,对象字典还定义了对象参数的功能、数据类型、相应对象值等,提供给CANopen主节点访问

CANopen的通根据CANopen协议,总线上数据传输都是通过发送某一特定类的通信对象完成的,它共定义了4种通信对象:管理报文、服务数据对象SDO(Service Data Object) 、过程数据对象PDO(ProcessData Object),以及预定义报文或称特殊功能对象[5,6]。其中管理报文用来传递主节点对整个网络系统的管理信息。SDO用来提供对设备对象字典的访问,其传送必须由主动访问对象字典的客户端启动,对象字典被访问的设备即服务端响应。SDO不支持广播模式,客户端发送访问请求后,需要服务端返回正确的应答,是建立在两个设备间的一种点对点通讯。由于CAN总线的每帧数据昀多传输8字节,对于多于8字节的数据,需要组成一个块(Block)进行传输,在SDO中叫做节(Segment)。每个设备的缺省设置包含一个SDO,也可以支持多个SDO。PDO则用于传递过程实时数据信息,每个PDO 对应于CAN总线唯一的标识符,可周期性发送,无需应答信息并使用所有的八个字节的数据域来传输数据信息。相比于SDO,PDO只能被一个节点发送,但可有多个节点接收。而特殊功能对象则包括同步对象(SYNC)、紧急对象(Emergency)、时间基准(Time Stamp)等特定对象。

  1. CANopen设备模型

     

图1 CANopen设备模型

如果将遵循CANopen协议的设备抽象化,可以得到如图1所示的一个CANopen设备模型:其一端连接CAN总线并贯穿其中,通过CAN总线上传输的各通讯对象完成数据通讯的任务。而每个设备都有唯一的一个对象字典,它是承载各种设备参数的载体,是连接应用数据、参数配置与总线通讯的桥梁。昀后,设备的昀终目标,即应用部分接口的末端则连接着相应的设备的I/O接口,通过此部分输入采集的数据,输出控制命令,完成设备的应用目标。

2 高空作业车控制系统的组成

智能高空作业车经过长时间的发展,在可靠性、安全性、舒适性、操作性等方面都有较大提高,为了防止事故、各国生产的高空作业车都注意配备完善、可靠的安全装置,在整车的控制系统方面投入了大量人力物力[5]。文中所设计的控制系统为了实现在不同机型上的软硬件复制与拼装,利用了模块化的思想,对控制系统分模块设计,使得各模块具有相对的独立性。这样用户在使用时可根据具体车型的需求进行控制系统的集成。智能高空作业车控制系统的系统结构如图2所示。

图2 高空作业车控制系统结构

根据系统设计要求,系统中控制方式为嵌入式闭环控制,采用专门为工程机械设计的专用控制器。通讯方面,每个模块备有两路CAN通道,作为CANopen协议的物理层。从图中可以看出各模块都包含具有一定控制能力的处理器,其中I/O信号扩展模块主要负责对传感器采集来的臂架的幅角、臂长和方位等物理量电信号进行监控。而负责采集数据的传感器的输出信号有总线型信号(CANopen协议格式)和模拟量信号,总线型信号可直接将它们通过CAN总线送给主控制器模块;模拟量信号经过模数转换后,亦通过CAN总线送给主控制器。由主控制器模块负责分析处

理,并通知功率扩展模块和信号扩展模块,由它们分别输出相应PWM (脉宽调制波)信号、数字量输出信号,给出相应提示和声光报警。昀终控制相应比例阀、开关阀做出响应,驱动整车液压机械臂的运动,实现自动收车、自动展车、智能避障、防自损等高空作业车的智能运动。

在电路保护方面,为了防止控制对象端(高空作业车)采集的信号突变或发生强干扰,破坏主控模块内部电路,设计时在信号输入端与控制电路间采用了保险丝和光耦隔离元件等,使得信号采集端具有短接保护、过载保护等功能,并与控制端完全隔离,消除互相间存在的共模干扰。在信号输出端,为了防止输出短路和过流过热,造成机械臂液压阀被非正常驱动,甚至现场事故的发生,电路中使用了Infenion的BTS650P、BTS721L1智能电源开关。另一方面,电路中预留了相应冗余的I/O端口,并将主控制器与扩展存储器独立出来,利用接插件与主控板相连,这样设计大大方便了控制系统的维修和升级,也降低了相应成本。

高空作业车控制系统中的CANopen协议应用

3.1 CANopen协议在系统中的实现

如上所述,在CANopen中每一个设备都有一个相对应的对象字典,用于定义对象属性,如设备属性参数和通讯参数等。所以,完成对象字典的设计是CANopen应用中的重要一环。本文为某型号高空作业车设计了控制系统,该系统共有11个节点,以主从方式工作,1个主节点和10个从节点。主控制器模块对应主节点,10个从节点分别由4个长度角度传感器,2个信号扩展模块,超声测距传感器、总线手柄、显示模块、功率扩展模块各1个组成。

这里我们以高空作业车控制系统中显示模块为例,说明设备对象字典的建立过程。如前所述,CANopen协议中定义了对象字典的通用结构,其中通讯子协议和制造商子协议部分是我们主要需要设计的部分,它们代表的索引值区间分别是0x1000至0x1FFF和0x2000至0x5FFF。对于通讯子协议部分,除了软硬件版本号等固定对象参数外,需要根据显示模块的功能确定所需通讯对象的种类和数量,并据此分配相应的对象空间。在该系统中显示模块作为从节点,主要支持主节点的访问,配合系统参数设置,因此需要一个SDO。其次,显示模块需要从其他从节点处获得相应传感器数据信息用于显示,并发送显示器按键信息给主节点。由于每个PDO昀多传输8字节数据,根据数字量信号和总线信号传输的需要,这里配置了1个发送PDO和4个接收PDO。具体的对象字典如表1所示。

表1 显示模块的对象字典

除了对象字典的设置,在CANopen协议应用中,其网络初始化boot-up过程是网络正常运行的前提,该过程过后,系统方可正常通讯。具体到本文所设计的高空作业车控制系统,首先要将控制模块主节点和所有从节点分别上电,初始化物理层CAN芯片并使各节点自动从初始化(Initialising)状态进入预操作(Pre-Operational)状态;其次,主节点根据电子数据文档文件(EDS:Electronic Data Sheet)中的描述,向从节点发送SDO,访问并修改从节点的对象字典中的对象设置;昀后由主节点向从节点发送NMT 指令,使从节点进入运行(Operational)状态,至此主节点和从节点即可以通过PDO和SDO的发送与接收进行正常通讯和数据交换了。

3.2 软件控制流程

软件设计的主要目的在于通过设置相应参数,在保证正常通讯的同时,响应控制命令并根据接收到的传感器的信息,完成指定操作和处理


图3 高空作业车主控制模块软件流程(通讯部分)

相关故障并报警。以某型号高空作业车控制系统的主节点即主控制模块的软件程序为例,如前文所述在节点上电之后,主节点确认收到从节点发送的Boot-up报文,并在确认从节点进入预操作状态后,向从节点发送SDO,访问并修改从节点的对象字典,对从节点进行预设置并使从节点进入操作状态。在这之后主节点进入主循环体,当主节点收到SDO时,对其对象字典参数进行在线修改。与此同时,通过接收从节点的心跳报文,监控各节点的通讯状况。如果发现通讯故障,则停止高空作业车控制端的一切输出,停止高空作业车的一切机械臂动作,并使用声光报警通告操作人员,以便对故障原因进行检查直至故障排除。对于通讯而言主循环中的另一个重要意义便是实时的获取各模块、传感器监测到的高空作业车的实时状态,并获取手柄的控制信息,提供给下面的控制功能代码段,并通过控制代码判断动作指令、提供限位报警,并昀终驱动机械臂运动,实现高空作业车的智能运动控制。

 


url: http://www.51lm.cn/p/templates/cn/show.php?cid=905&aid=2979

 

电话400-878-1895, 传真:021-51561359 邮箱:sales@51LM.cn
sales@51LM.cn 上海徐汇区斜土路2601号嘉汇广场T1-11B