基于现场总线CANbus和以太网的交流伺服运动控制系统研究
导语:本文讨论了基于CAN总线和以太网的网络伺服控制系统的设计原则和实现方法
动空转研究所 舒志兵、严彩忠、黄益群、张海荣 随着计算机技术的进展,运动控制交流伺服系统在经过广泛运用的前景下正向着网络化控制方向发展。本文讨论了基于CAN总线和以太网的网络伺服控制系统的设计原则和实现方法,介绍了一种基于CAN总线和以太网的运动控制系统的硬件和软件设计。以太网是目前最流行的现场总线接入因特网的方案之一,它在发挥现场总线优点的同时解决了现场总线难以接入因特网的问题。文章以实现CAN现场总线接入因特网为目标,在对CAN协议及TCP/IP协议进行深入研究的基础上,设计了以太网与CAN总线互联网关,从而实现以太网与CAN总线的互联,为实现企业信息网络与控制网络集成提供了一种可行的方法。实验结果表明,该系统控制精度高、响应速度快、低速运行平稳,同时还具有连接简单、系统可靠和易于实现等优点。
1引言 制造企业信息化必须实现信息网络与控制网络集成,工业网络承载的信息是多层次的,有位信息、字节信息、帧信息等,信息量大小、反应时间、传输速度、实时性要求各不相同,不同的现场总线适用于不同的现场情况,选用什么总线方案要根据实际情况而定。而以太网可能实现全部功能,但在经济上却不会很合理。而且以太网难以逾越信号碰撞这个障碍,在系统大、控制点多的情况下问题更为明显。因此,笔者“现场总线+以太网”的方案。在企业管理层和生产监控层采用以太网,而在下层车间和生产现场采用现场总线CAN总线。 以太网是目前最流行的因特网接入方案之一,它在发挥现场总线优点的同时解决了现场总线难以接入因特网的问题。CAN总线,是一种有效支持分布式控制或实时控制的串行通信局域网络,由于其高性能、高可靠性、实时性好及其独特的设计,已广泛应用于控制系统中的各检测和执行机构之间的数据通信,已在工控领域兴起应用热潮。而交流伺服电机具有结构紧凑、控制容易、运行稳定、响应快等优异特性,已在数控机床等重要行业中,得到了普遍的应用。通过CAN总线进行数据传输与控制,使伺服电机的性能更加稳定,能更好更灵活地地应用于数控系统中。本文提出了一种基于以太网的CAN总线方案,将设备联网和因特网接入两个问题合二为一,简化了解决方案,并实现了以太网与CAN总线的互联。
2网络化系统体系结构 在网络化伺服驱动器研究方面,美国、德国和日本在技术上处于领先行列。国内的交流伺服研究起步比较晚,到目前为止,还没有网络化交流伺服产品问世。笔者对网络化全数字交流伺服驱动系统进行了研究,研制了基于以太网和CAN总线的网络化交流伺服控制系统。基于Ethernet-CAN的网络化交流伺服体系结构见图1。控制系统由PC机、基于PC的以太网信息管理终端、嵌入式透明网关(多轴)、交流伺服电机和具有CAN总线接口的交流伺服驱动器组成。其核心部分是嵌入式透明网关(多轴)和带有CAN总线接口的全数字交流伺服驱动器。系统总体结构图如图1所示:
图1基于CAN总线和以太网的交流伺服驱动系统体系结构 CAN(Controller Area Network)总线是一个设备互连总线型控制网络,在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层需通过数据网关。多轴的嵌入式透明网关就是为此而设计的。 透明式网关由通信处理器、CAN总线和以太网三部分组成。通信处理器为核心处理器,它实现了CAN控制网络与以太网之间的协议转换。以太网信息管理层的控制指令发送到嵌入式透明网关,将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明网关,再通过网关协议转换程序将CAN协议数据封装成 TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。 以太网信息管理终端是一个根据用户的具体要求而设计的用户层应用软件。它可以是一个WIN32监控程序或网络数据库(记录CAN节点设备数据)软件等;甚至可能是CAN节点设备的服务器软件,为设备提供较复杂的数据处理工作。
3系统的硬件设计 在该控制模式下,系统的硬件构件由上位机PC电脑,普通网络通讯卡(10/100M),多轴,带有CAN总线接口的交流伺服驱动器和交流伺服电机构成。图2为系统构成硬件示意图。
图2 基于以太网和CAN总线的多轴分布式控制系统 该运动控制系统通过集中(多轴)分别实现以太网和CAN总线控制。多轴与上位机PC电脑的通讯是通过TCP/IP协议构成以太网。多轴可以作为一台小型的PC电脑,具有自主式控制系统,同时它可以作为网关,通过TCP/IP与网络上的电脑相互访问,实现远程网络控制,不仅如此,多轴还具有运动控制板卡的功能,它集成了CAN总线接口、RS232接口,可以实现多种控制方式。
3.1总线网络设备接口设计 CAN总线网络设备接口设计较网关设计简单。它是在完成设备功能的基础上加入一个CAN通信接口芯片,实现与CAN总线网络的连接。
3.2嵌入式透明网关设计 嵌入式透明网关由CAN协议转换模块和以太网协议转换模块两部分组成。在外接100MHz时钟时,指令执行速度可达100MIPS。它可实现TCP/IP协议栈中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等网络协议。 CAN协议转换模块由三部分组成:微SX52、独立CAN通信DS301、CAN总线收发器82C250。其中SX52为唯一的CPU核心,负责DS301的初始化,通过读写DS301内部寄存器实现数据的接收、发送和错误处理等。PCA82C250则提供对总线的差动发送能力和对CAN的差动接收能力。 以太网协议转换模块主要由微SX52、以太网通信RTL8019AS和隔离滤波器FB2002组成。RTL8019AS是一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。AT24C64为8KB EEPROM,主要用来保存嵌入式透明SX52网关的配置信息,如网关IP地址、DS402的ID网络标示符、网络子网掩码AMR和总线定时等。这样,可以灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。采用隔离滤波器FB2002是为了提高网络通信的抗干扰能力。
4系统软件设计 整个互联系统的软件设计可以分为4部分:CAN总线设备接口通信程序、透明网关协议转换程序和以太网层应用程序设计、系统控制界面的设计、下位机控制设计。其中,CAN总线设备接口通信程序和透明网关协议转换程序的CAN协议模块在结构上有较大的相似性,但有可能因采用微不同而导致实现的程序语言相异。因而,在此不作论述,而主要讨论后两个方面的程序设计。
4.1透明网关协议转换程序 透明网关协议转换程序的整体设计思路为:以太网应用层有数据要发送到CAN节点时,首先,数据发送到透明网关由以太网协议转换模块从传输层数据报文中解析出完整的 CAN据包,存放在数据缓冲区B通知总调度模块,由它调用CAN协议模块将 CAN 协议数据包发送到CAN总线上。反过来,当CAN 设备有数据要发送到用户层时,首先,数据发送到透明网关由 CAN 协议模块将完整的CAN协议数据包存放在数据缓冲区B通知总调度模块,由它调用以太网协议转换模块将完整的 CAN 协议数据包作为应用层数据封装起来,再发送到以太网的应用层。
4.1.1CAN协议模块 CAN协议转换模块程序主要由DS402的通讯部分程序Driver::DriverConnect()、Driver::GetCanService();寄存器读程序Driver::CANRead();写程序Driver::CANWrite();初始化程序Driver::CANInit();发送程序Driver::SendCommand();接收程序Driver::GetInf()组成。 选用CAN2.0B协议构建CAN总线控制网络 ,对DS402的初始化主要完成控制寄存器CR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线定时寄存器BTRO和输出控制寄存器OCR的设置。初始化完成后,由总调度模块监控DS402。 当CAN总线上有数据到达时,它调用接收子程序Driver::GetInf()时,把这一帧数据包存入数据缓冲区B中,然后释放接收缓冲器。同样,当有按CAN2.0B协议格式组合成的一帧数据报文在数据缓冲区A中要发送到CAN总线上去时,总调度模块将调CAN发送子程序Driver::SendCommand()发送。
4.1.2以太网协议转换模块 在图3的透明网关协议转换程序结构图中,以太网协议转换模块主要负责从UDP数据包中解析出完整CAN协议报文,存入数据缓冲区A。同时,可能将数据缓冲区B中的完整CAN协议报文封装成UDP数据报,然后将其发送到以太网上。 在通信传输层采用UDP协议是考虑到CAN协议数据报为短帧形式(每个数据帧最多为8字节)。如果采用TCP传输协议,要传输8字节CAN协议数据,要先通过3次握手建立连接,再传输数据,之后还要通过握手释放连接。这样传输效率对有限的网络资源来说无疑是一种浪费。当然UDP传输协议是不可靠的,对于控制网络来说是不允许的。为了提高通信的可靠性,采用了回传校验机制。
图3 透明网关协议转换程序结构图
4.2CAN总线现场节点软件设计 CAN现场智能节点作为CAN总线控制网络监控节点,主要完成以下几项任务:①向交流伺服驱动器(Bassoon)传送上位控制命令;②接受上位机通过以太网发送来的控制信息;③接受现场设备输入并进行相应的处理。检测输入与控制输出在交流伺服驱动器中完成,接收和发送数据等通信功能在中断服务程序中完成。 CAN信息发送程序:该程序是由CAN自动完成的,用户只需将发送的数据送到CAN发送缓存器即可。节点以一定的时间间隔向CAN网络主动发送信息。 CAN接收信息处理程序:该程序同样是由CAN自动完成的,接收程序只需从接收缓存器中读取接收的数据,再进行相应的处理即可。接收程序采用中断方式,这是便于用户随时控制节点的状态。(1)上位机的软件开发 CAN驱动器为PC机的系统总线和CAN总线(高速串行)提供一个互连通道,在CAN驱动器上,面向PC系统开辟了一个2Kb的高速双口RAM,直接映射到主机内存空间,可以实现CAN与主机PC的高速数据交换。上位机的通信程序应具有的功能有: ① 程序开始上位机首先采用广播的方法,向下位机发送起动指令,随后发送第一个指令数据,用一帧发送; ② 第一个指令发送之后,上位机可以处理其他数据; ③ 当下位机收到上位机的数据包后,它也立即向上位机发送一组数据。图4为CAN总线信号控制流程图,数据的内容包含电机运行的实际情况,数据到达上位机之后,采用中断的形式,使上位机转入中断服务子程序,接收下位机传来的数据。上位机根据下位机传来的数据信号,实时判断各电机的位置,从而根据预先设定的速度协调各电机的运动,依次向下位机发送运动指令; ④ 上位机如果想停止下位机的工作,可以通过键盘中止和结束指令两种方式。向下位机发送停止指令。
图 6-19 CAN总线信号控制流程图(2)下位机软件的开发整个系统的时序由下位机确定,当下位机接到起动命令后开始对动力机构进行控制。通常定时器的定时周期为2 ms,在2 ms内完成任务有:数据接收、A/D转换、控制策略运算、D/A转换和向上位机发送数据。总结上面的思想,编制的程序主要考虑的方而有: ①上位机的指令到达下位机之后.采用中断的形式.使下位机转入通信中断服务子程序.首先处理上位机的指令.然后执行A/D ,控制算法、D/A等相应的模块.最后向上位机提供必要的参数。 ②数据传输所使用的中断优先级高于定时中断的优先级.以保证上位机的指令可以及时地送达下位机。 ③实质是以下位的时序为主的.实现上位机周期地寻找下位机的地址.发送速度和位置指令.并随后接收所需参数。 ④实现同步控制。图5为CAN软件程序的下位机程序流程图:
5结论 本文提出的以太网和CAN总线相结合的网络化交流伺服控制系统为交流伺服的网络化研究和应用作出了一次有益的新探索。CAN总线可以很好地满足现场总线运动控制系统对实时响应的较高要求,同时使用CAN总线还使得系统具有很好的扩展性能。当需要更多轴运动控制时,只需要简单地再增加新运动控制单元,把新的运动控制单元作为新的CAN总线节点挂接到CAN总线上就可以形成一个分布式多轴运动控制系统,而且无需在硬件上对原有的运动控制单元做任何的修改,在扩展距离上同样也不会受到限制,这样为将来向多轴或多点的分布式运动控制网络发展打下坚实的基础。实验结果表明,在轴数不多、速度不是特别快的条件下,能够保证一定的加工质量。本研究实现了3-4轴联动,对于多轴联动同样适合。只是随着轴数增加,网络性能呈现下降趋势。文献给出了网络性能指标变换趋势图,从中可以看出网络负载加重,通信速度明显变慢,对系统的精度和速度都有影响。基于以太网和CAN总线的分布式运动控制系统无论在系统稳定性、成木还是可操作性上都满足当初设计的要求,取得了较好的效果。