APP下载

基于DeviceNet的机器人与焊机的通讯模块设计

2012-08-22李月恒刘全东孙德辉

制造业自动化 2012年23期
关键词:轮询焊机总线

李月恒,刘全东,孙德辉,扬 扬

(1.北方工业大学 现场总线及自动化北京市重点实验室,北京 100144;2.北方工业大学 信息工程学院,北京 100144)

0 引言

DeviceNet(设备网)是一种基于CAN总线技术的开放型、符合全球工业标准的低成本、高性能的现场总线通讯网络。它最初是由罗克韦尔自动化提出的,如今已经是全球使用最广泛的现场总线之一,在工厂自动化领域有明显优势,能连接到变频器、机器人、PLC等各类工控产品。由于采用了许多新技术及独特的设计,与一般的通讯总线相比,DeviceNet网络的数据通讯具有突出的高可靠性、实时性和灵活性。DeviceNet不仅可以接入更多、更复杂的设备,还可以为上层提供更多的信息和服务[1]。

ABB致力于研发、生产机器人已有40多年的历史,在世界范围内安装了17.5万多台机器人[2]。ABB机器人集成有PROFINET,PROFIBUS DP,DeviceNet,EtherNet/IPTM等多种现场总线网络,是现场总线技术应用的典型范例。ABB机器人早在1994年就进入了中国市场,经过十几年的发展,在中国,ABB先进的机器人自动化解决方案和包括白车身、冲压自动化,动力总成和涂装自动化在内的四大系统正在为各大汽车整车厂和零部件供应商,以及消费品、铸造、塑料和金属加工业提供全面完善的服务。

本文主要解决ABB机器人控制系统与焊机之间的通讯问题。焊接机器人由机器人和焊机组成,机器人控制器控制机器人的移动,可将机器人送到各个工作空间。焊机控制安装在机器人手臂上的焊枪,决定焊接工作的进行。为了准确和可靠的完成焊接工作,必须使机器人手臂和焊机能够正确的配合使用。因此需要把焊机接入到机器人系统中统一控制和调度。传统的机器人控制系统直接通过 I/O 端口控制弧焊机的工作。在焊接场所恶劣的环境下,这种离散 I/O 端口控制方式具有现场布线困难和抗干扰能力差等缺点。采用DeviceNet现场总线的连接方式实现机器人与焊机之间的通讯可以克服现场环境对焊机工作造成的干扰。

ABB机器人具备 DeviceNet 主站功能,可以采用 DeviceNet 现场总线接口与其他具有DeviceNet 接口的设备进行数据通讯。然而焊机提供的数字通讯方式为T061CAN通讯协议,不能直接连入 DeviceNet 总线网络。为了实现机器人控制系统采用 DeviceNet接口与时代焊机进行数据通讯,需要设计一个总线通讯转换单元,实现机器人通过DeviceNet总线与具有CAN总线接口的电焊机进行双向数据通讯。

1 通讯模块的硬件设计

本设计采用的处理器为LPC2129,它是NXP公司的32位工业级ARM7处理器,其内部集成了两个CAN控制器,只需外扩两个CAN收发器即可实现CAN报文的收发,达到与机器人和焊机进行通讯的目的。在一片处理器内首先将机器人端的DeviceNet协议数据转换成中间协议数据,之后转换成电焊机可以识别的自定义T061CAN协议数据。拨码开关用来设置DeviceNet端的波特率及MAC地址,其中波特率的开关为3位,分别代表125Kbps、250Kbps、500Kbps;MAC 地址的开关为6位,地址为0~63。RS232既可作为程序下载接口,也可作为通用的RS232串口实现与上位机的通讯。另外扩展一片FM24CL08存储器,主要用来存储协议转换模块的配置参数,例如DeviceNet侧通讯参数、CAN侧通讯参数、机器人与固件匹配参数、CAN口的ID等参数;系统的供电电源采用24V的直流供电,并在内部将24V电源转化为模块需要的5V、3.3V及1.8V电压电源。整体的硬件结构如图1所示。

图1 通讯模块的硬件结构图

如图所示,通讯模块实现DeviceNet与CAN之间的通讯。机器人作为DeviceNet主站,通讯模块便需要实现一个DeviceNet从站的功能;焊机作为CAN的从站,通讯模块便需要实现一个CAN主站的功能。当处理器接收到机器人的DeviceNet数据时,协议转换并打包为CAN包发给焊机;同样,当处理器接收到焊机的CAN数据时,转换为DeviceNet数据包并发送给机器人。

图2 DeviceNet对象模型

2 DeviceNet及CAN协议介绍

2.1 DeviceNet协议规范

DeviceNetTM规范由Rockwell 自动化公司开发,并将其作为一个基于CAN协议的开放式现场总线标准而公布[3]。最初的DeviceNet 产品在1995年初出现。DeviceNet协议特别为工厂自动控制而定制,它在美国和亚洲扮演了非常重要的角色。在欧洲,越来越多的系统方案使用DeviceNet来实现。DeviceNet协议是一个简单、廉价而且高效的协议,适用于最低层的现场总线。

DeviceNet采用对象建模的方法,将每个总线设备视为一个对象集合体的节点。这些节点的总线行为表现是其内部对象之间相互作用的结果[4],如图2所示为DeviceNet的对象模型。DeviceNet包括对象类 Identity、Message Router、DeviceNet、Connection、Assembly、Parameter、Application。一个对象代表设备内一个部件的抽象描述,由它的数据或属性、功能或服务以及它所定义的行为决定。对象的数据和服务通过一个分层的寻址概念进行寻址,包括MAC ID、分类ID、实例ID、属性ID和服务代码。

DeviceNet连接包括显式信息连接和I/O连接,I/O连接用于传送对实时性要求较高的和面向控制的I/O报文,I/O报文的发送和接收设备都必须先行设定。显式报文则适用于两个设备间多用途的点对点报文传递,是典型的请求/响应通信方式,常用于节点配置、问题诊断和控制命令等[5]。DeviceNet 信息帧的格式如图3所示,显式信息和I/O信息的数据区都是0~8个字节,如果超过8个字节,则需要采用分段方式进行传输。

图3 DeviceNet信息帧格式

2.2 焊机自定义CAN协议

焊机通过CAN总线与通讯模块连接,采用的协议为自定义的T061CAN通讯协议,协议分为内部CAN和外部CAN,内部CAN总线采用采用11位标识符帧标准格式,外部CAN总线采用采用29位标识符帧扩展格式。通讯模块与焊机间的通讯属于内部CAN总线。

焊机的通讯采用问答的方式进行,只有当焊机接收到CAN总线的提问时才会作出响应。通讯模块向焊机寄存器写数据时采用标准的数据帧,而读取焊机寄存器的信息采用标准的远程帧,标准数据帧格式如表1所示。远程帧和数据帧相比,无数据域。

表1 CAN标准数据帧格式

内部CAN总线的11位标识符定义为寄存器编号,最大可定义2048个寄存器,如表2所示。

表2 内部CAN标识符定义

图4 协议栈功能模块图

3 DeviceNet从站协议代码

为了实现通讯模块与机器人主站通过DeviceNet 现场总线进行数据传输,需要开发一个DeviceNet 从站节点。一个仅限组2的DeviceNet从站在通信模块中以软件的形式实现,从站确保通讯模块能够通过DeviceNet接口接收到机器人的数据。DeviceNet从站源代码的编写是通讯的关键,也是整个设计中最困难的部分。完整的从站代码组成了一套可以移植到其他DeviceNet从站产品上的DeviceNet协议栈,该协议栈的主要特点如下:

1)支持DeviceNet预定义主/从连接模式;

2)支 持 报 文 类 型:Poll, Strobe,Change of State/Cyclic;

3)对硬件资源(ROM/RAM)最大程序进行优化。

如图4所示为协议栈的功能模块图。通过协议栈,通讯模块可以与机器人建立显式信息连接以及4种I/O连接。协议栈还可以提供LED状态,定时器等功能函数。

如图5所示为DeviceNet主/从站连接的过程,当机器人发送一个请求命令时,DeviceNet必须对其进行响应。本通讯模块属于仅限组2设备,一个DeviceNet的组2服务器在通过重复MAC ID检测上线后,需等待客户机分配预定义主/从连接组并建立显式信息连接,通过客户机的配置和验证后建立轮询的I/O连接。根据DeviceNet主/从站的连接过程,DeviceNet从站必须对主站的请求进行响应。

图5 DeviceNet主/从站建立连接的过程

4 通讯模块的应用层软件设计

应用层程序调用协议栈相关函数接收机器人端的DeviceNet数据,然后转换为焊机的通讯规约格式,送入CAN驱动打包后发送给焊机。反之,当通讯模块发送读焊机命令后,若收到焊机响应数据,则将该CAN数据转换为DeviceNet规约格式并打包发返回到机器人。最终实现机器人和焊机之间的双向数据交换。如图6所示为通讯模块的主程序流程图。

上电后,通讯模块启动,首先进行一次自检,检测它的MAC ID,波特率,EEPROM。自检通过后,对LPC2129进行初始化,打开CAN收发中断。在主循环里首先查看是否有新的机器人数据,若有则将它转换为焊机的格式写到焊机内部。若无机器人新数据,则直接进入下一步,发送读焊机命令,每发一条等待焊机响应,若在等待周期内收到焊机响应,则在CAN接收中断内将接收到的焊机数据转换为DeviceNet数据。

Void DnsPollRequestUpdate(void)是协议栈部分DeviceNet数据的处理函数,它在通讯模块接收到一个完整的轮询请求后被调用。该函数首先对本次接收到的数据和上次接收到的数据进行比较,只有当不同时才将接收到的新数据赋给aubAppOldConsData[i]以便被_U08 SendCAN2WriteMsg()函数调用后写到焊机。这样不仅减轻了CPU的处理负担,还避免了焊机寄存器的不断写入。

Void DnsPollResponseUpdate(void)也是协议栈部分DeviceNet数据的处理函数,它在通讯模块进行轮询响应前被调用。该函数将读焊机命令SendCAN2ReadMsg(_U08 i)的响应数据赋给aubAppPollProdData[ubCntByte]作为轮询响应。

应用层还具有的功能包括:读取拨码开关的值(MAC ID和波特率);设置轮询I/O的长度;串口的相关功能。

图6 主程序流程图

5 编译及调试

软件的编译环境为Ubuntu,完整的程序可在Ubuntu上成功编译并生成相应的hex文件。编译路径及其它设置由makefi le文件确定:

# List of object fi les that need to be compiled

#------------------------------------------------

# DeviceNet slave object fi les

DNS_OBJS = $(OBJ_DIR)/dns_cl01.o

$(OBJ_DIR)/dns_cl02.o

……

#-------------------------------------------------

# Device / target CPU object fi les

DEV_OBJS = $(OBJ_DIR)/lpc21xx_can.o

$(OBJ_DIR)/lpc21xx_cpu.o

$(OBJ_DIR)/lpc21xx_tmr.o

# Application object fi les

APP_OBJS = $(OBJ_DIR)/dns_main_mcb2100.o

$(OBJ_DIR)/uart.o

基于ARM7处理器LPC2129,通讯模块实现了DeviceNet总线与CAN总线之间的通信。连接好机器人、通讯模块与焊机并上电。在机器人控制面板里对DeviceNet总线进行设置,其从站地址为1,输入长度为6字节,输出长度为63字节,轮询周期为10ms。然后再添加组输入与组输出。

如表3所示为机器人输入值的调试结果,其中焊机地址为0x1B4的值为32768,表示焊机状态为初始化完成。焊机地址为0x1B5的值为0表示焊机的电源状态正常,焊机地址为0x1B1的值为0表示焊机如输入故障信息,当焊机断电时,该值为49152表示焊机欠压。

表3 机器人输入调试结果

改变机器输出组的值,焊机面板上相应的数据随之发生变化。如表4所示为部分机器人输出值与焊机值的比较,它表明机器人的输出能正确写入到焊机。

表4 机器人输出调试结果

6 结束语

本设计采用NXP公司的ARM7处理器LPC2129,实现了基于DeviceNet总线的机器人与基于CAN总线的焊机之间的通讯。充分利用了LPC2129的两个CAN控制器设计了两个CAN接口,一个接机器人端的DeviceNet总线,另一个接焊机端的T061CAN总线。机器人、焊机和通讯模块同时上电后,机器人与通讯模块间的DeviceNet总线先建立连接后进行I/O轮询,机器人的输出通过通讯模块的转换后通过CAN2接口被写入焊机相应的寄存器。然后通讯模块发出读取焊机参数的命令并将焊机的返回值转换为DeviceNet总线格式作为轮询输入返回到机器人。这样便完成了一个完整的信息交换过程。实现表明,DeviceNet总线的轮询周期小到10ms也能够正常控制焊机。

通讯模块在恶劣的环境下经历了严格的测试,能够满足模块化、数字化、网络化要求。DeviceNet从站代码经过了ODVA的一致性测试,可移植到其他的产品上。

[1] 陈在平, 张建峰, 贾超, 李其林. DeviceNet从节点智能通信接口设计与实现[J]. 制造业自动化, 2006, (7): 54-57.

[2] 叶晖, 管小清. 工业机器人实操与应用技巧[M]. 北京: 机械工业出版社, 2010: 2-10.

[3] ODVA. DeviceNet Specifi cation[S], Release 2.0, 1999.

[4] 王雪, 甘永梅. DeviceNet现场总线从站通信接口的设计[J].工矿自动化, 2004, (2): 7-10.

[5] 刘建昌, 钱晓龙, 冯立. CAN总线及DeviceNet现场总线[J].基础自动化, 2001, 8(3): 1-3.

猜你喜欢

轮询焊机总线
一起塑料焊机触电事故分析与探讨
福尼斯TPS4000 系列数字焊机故障分析
埋弧焊数字焊机现场应用及其配套控制改造
基于等概率的ASON业务授权设计∗
一种基于CAN总线的误码测试方法
伺服电机控制在电阻焊机的应用研究
利用时间轮询方式操作DDR3实现多模式下数据重排
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计
IT设备数据管理技术应用浅析