基于CAN总线的机器人网络互联
2009-02-27
作者:孙 健 阳如坤 徐 方
摘 要: 根据工业机器人的应用现状,利用现有的控制技术,结合控制局域网(CAN)技术和通信技术,通过对现有的机器人控制器进行硬件改进和软件开发,并相应开发出上位机监控系统,实现了多台机器人的网络互联,最终实现基于CAN网络的机器人生产线集成系统。
关键词: 机器人控制器 现场总线 CAN总线 通信协议
制造车间底层设备自动化,近几年仍是我国开展新技术研究和新技术应用工程及产品开发的主要领域,其市场需求不断增大且越发活跃,竞争也日益激烈。伴随着工业机器人的产业化,目前机器人系统的应用大多要求采用机器人生产线方式,这就要求多台机器人能通过网络进行互联。随之而来的,在实际生产过程中, 这种联网的多机器人系统的调度、维护工作也变得尤为重要。
在计算机数据传输领域中,长期以来使用RS-232和CCITT V.24通信标准,尽管它们被广泛地使用,但却是一种低数据速率和点对点的数据传输标准,无能力支持更高层次的计算机之间的功能操作。因此需要在底层设计出一种造价低廉而又能适应工业现场环境的通信系统,现场总线就是在这种背景下产生的。与一般总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,是适用于生产制造过程和驱动系统的总线协议。
1 系统总体结构
制造车间底层电器装置联网是近几年内技术发展的重点。其电器装置包括有:运动控制器(调速、定位、随动等)、基于微处理器的传感器、专用设备控制器(如点焊机、弧焊机)等底层设备、在这些装置所构成的网络上另有车间级管理机、监控机或生产单元控制器等非底层装置。
结合实际情况和要求,将机器人控制器视为运动控制器(理解为底层设备),具体工作将基于图1所示的模型。
本系统监控机采用Advantech公司的PCL-841双端口CAN接口卡。它将占用4KB的地址空间,而且基地址可由用户从C800H~EF00H任意选择。中断也可从3~15(8、13、14)任意选择。控制器中采用集成PC-104的CAN接口卡。
2 系统实现
2.1 监控机软件部分
监控机系统软件层次如图2所示。
2.1.1数据库部分
由于上位机系统需要管理的数据量很大,而且数据必须长久地被保留;一旦系统发生软硬件故障,数据还要可恢复;而且若干个用户应当能够按照一定的、有序的方式存取数据,避免同步存取可能造成的错误,因此上位机软件要采用一般应用程序与数据库相结合的编程技术。
DAO(数据库访问对象)提供了一种通过程序代码创建和操作数据库的机制。而MFC DAO是微软推出的用于在Visual C++中访问Microsoft Jet数据库文件的强有力的数据库开发工具,它通过对DAO对象的封装,向程序员提供了丰富的数据库访问和数据库操作手段。
本系统中,将创建诸如生产线上机器人的工作总表、弧焊参数表、点焊参数表等若干个管理数据库表。通过这些表格,监控人员将能够通过离线的计算机完成对生产线上各台机器人运行状况的的记录、统计、管理、运行报表打印等功能,以实现宏观的管理。
而对于诸如系统I/O量、码盘值等实时信息则存放于一般内存中,这样就避免了烦琐的数据库操作,提高了实时性。
2.1.2 通讯协议部分
为了实现管理计算机与机器人控制器的实时通讯,两者必须建立适合CAN总线特点的、合理的通讯协议,最终采用的是“命令+参数”的协议形式和“多主竞争的总线仲裁”方式。比如以第一字节01代表接收数据,第二字节01代表接收文件;第一字节02代表发送数据等,具体的操作协议在此不再详述。
“多主竞争的总线仲裁”的通信方式是CAN总线的一大优点。也就是说,CAN网络中的任意节点均可作为主节点与其他节点交换数据。而且CAN协议规定,标识符可定义为屏蔽的或非屏蔽的,这样就使监控机或控制器的CAN卡可以接收多个标识符(例如来自生产线上不同的机器人控制器)的数据。利用此特点,在监控机和控制器的软件设计中,使用了标识符的低三位来识别接收数据的类型。比如低三位(D2,D1,D0)为000,则表示此包数据是命令,001表示此包数据是应答……而通过CAN协议的非破坏网络仲裁,000为最高优先级将首先被处理为发送节点,接下来是001,依此类推。
2.1.3 把CAN卡功能封装为ActiveX控件
ActiveX控件作为标准的控件技术可供JavaScritp、VBScript、Java、VB、VC等应用程序所使用,对软件的集成开发具有重要的意义。
由此原因,并根据工业机器人控制器系统的特点,将CAN卡所提供的API函数及由其函数进一步实现的用于机器人系统的功能和属性封装为控件,使应用软件更加结构化,而且更适合工业机器人产品的应用和需要。
2.2 控制器实时操作系统部分
控制器系统软件采用的是实时多任务操作系统。而根据多任务操作系统的任务划分方法和本系统自身的特点,最终决定与上位监控计算机的CAN网络通讯采用一个独立的且优先级较高的任务来完成,即如图3中所示的通讯任务,此任务完成利用串口的通讯和CAN网络的通讯。
这样,生产线上的每台机器人控制器就可以作为车间底层设备加入到网络中,从而构成具有监控功能的分布式机器人生产线系统。
2.3 具体功能和运行方式
这项工作的完成将为机器人控制器产品增加联网功能,并将投入到实际的应用工程中。完成了下述一些功能:
(1)实现生产线上各台机器人运行状况的记录、统计、管理,运行报表的打印等功能。比如在一天的弧焊作业中,被监测机器人参与工作的数目、每台机器人出现故障的次数、停机的次数、每次焊接的参数等;
(2)实现机器人控制器的实时状态监视(包括各码盘值、I/O量、系统状态等)、调试(包括离线编程和示教)、报警(如焊钳的粘连)、维护(如系统从异常状态的恢复)等功能;
(3)作业任务的分配和调度,以及作业任务的上传与下载;
(4)软件PLC的实现。为了简化硬件的开销,将初步在控制器中利用软件PLC,也就是说将PLC功能作为控制器操作系统的一个独立的任务来实现,而具体的PLC程序则由上位PC机离线编程实现,并通过CAN总线下装到控制器中。
把CAN总线技术充分应用于现有的控制器当中,将可开发出高性能的多机器人生产线系统。图4举例说明某控制器将文件上传给监控机软件的工作流程图。
利用现有的控制技术,结合控制局域网(CAN)技术和通信技术,通过对现有的机器人控制器进行硬件改进和软件开发,并相应地开发出上位机监控软件,从而实现多台机器人的网络互联。最终实现基于CAN网络的机器人生产线集成系统。这样做的好处很多,比如:
(1)实现单根电缆串接全部设备,节省安装维护开销;
(2)提高实时性,信息可共享;提高多控制器系统的监测、诊断和控制性能;
(3)通过离线的任务调度,作业的下载以及错误监控等技术,把一部分人从机器人工作的现场彻底脱离出来。
参考文献
1 邬宽明.CAN总线原理和应用系统设计.北京:北京航空航天大学出版社,1996
2 阳宪惠,林强.浅谈现场总线开放系统的系统集成与应用集成.工业控制计算机,1999;12(5)
3 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999
4 李博轩.Visual C++6.0数据库开发指南.北京:清华大学出版社,2000
5 陈建春.Visual C++高级编程技术.北京:电子工业出版社,1999