基于CAN总线的车身点焊监控系统设计
2011-04-10胡德安陈益平
胡德安,张 伟, 陈益平
HU De-an,ZHANG Wei,CHEN Yi-ping
(南昌航空大学 航空制造工程学院,南昌 330063)
0 引言
汽车白车身,多数为承载式全焊接结构,一般是由数百个薄板冲压件经焊接而成的复杂结构件。汽车白车身的焊接方法主要采用电阻点焊工艺,一台轿车车身的焊点约在35005000点之间。汽车车身焊装用的点焊设备占全部电阻焊产品的90 % 以上[1]。 保证电阻点焊焊接质量是汽车白车身焊接质量保证的关键。现在的点焊控制器普遍采用单片机智能控制焊接过程,现场得到的数据通过RS-232或RS-485总线传输给上位机实现对生产的集散控制。但电阻点焊是一个多变量耦合和大量随机不确定因素的过程,焊点形核时间短,影响因素多,质量监测难度大,随着生产自动化程度日益提高,要求采用更精确的方法来检测并控制焊接生产质量,以提高焊点的可靠性,这种总线技术在点焊信息传输方面存在许多缺点,主要表现在:1)监控系统均为主从式结构,网络上只能有一个主节点,无法构成多主冗余系统,当主节点出现故障,系统就无法运行;2)缺乏统一的规范和通信协议,系统是封闭的;3)波特率较低,传输距离短,满足不了实时性要求。因此,为保证车身焊接质量,就必须使用新型的总线技术使点焊质量在线实时监测得以实现,又可以把该焊机的工作状态情况及时显示给上位机,使工人在远离现场的情况下了解焊接状况,达到远程监控的目的。并开发一种具有该网络化通信功能的点焊控制器以满足现代化点焊生产要求。
1 CAN总线
控制局域网络CAN(Control Area Network),是一种有效支持分布式控制或实时控制的串行通信网络,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,采用CAN控制器总线进行现场智能节点的设计有以下优点:CAN最多可带110个节点,为多处安置传感器设备提供了可能;CAN总线采用短帧通信,传输可靠性高;CAN总线当中一个节点由于某些原因不能正常工作时,能自动关闭输出功能,而不影响其它节点的操作。采用CAN总线构建点焊网络控制系统,不仅可以实现焊接参数的在线控制与优化,还可实现各点焊智能控制设备间信息的集成与共享,打破各焊接设备的“孤岛效应”,为焊接生产的智能集成提供技术基础。因此基于CAN总线的焊接数据传输系统使得车身焊接过程的实时性和可靠性得到了保证[2]。
2 控制器硬件设计
本系统分为监控管理计算机和电阻焊控制器两层结构,通过现场总线连接组成管理系统。图l为电阻点焊网络控制系统总体结构,系统通信网络为总线型,上位PC机通过CAN接口适配器与CAN总线相连[3]。
在现场总线控制系统中,各现场设备是通过节点挂接在总线上的,在系统的组网中这些节点大多数由相应的控制器与单片机接口而形成,称为智能节点。单片机是采集系统的核心,直接影响到系统的性能。从系统的实际要求和成本考虑,本控制系统的中心器件选用性价比较高的AT89C51单片机。各电阻焊微机控制器均由AT89C51单片机,独立CAN通信控制器SJA1000、CAN总线收发器PCA82C250、高速光电耦合器6N137以及外部电路构成,89C51负责SJA1000的初始化并通过控制SJA1000实现数据的接收和发送等通信任务。图2为CAN总线系统智能节点硬件电路原理图,SJA1000的AD0~AD7连接到89C51的P0口,连接到89C51的P2.0口,当P2.0口为0时CPU片外存储器地址可选中SJA1000,通过这些地址可对SJA1000执行相应的读/写操作。
图1 基于CAN总线的系统拓扑结构
大功率点焊机在工作时会带来许多干扰信号影响数据的传送,为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0通过高速光电耦合器6N137后与82C250相连,实现总线上的各CAN节点间电气隔离。82C250的CAN_H和CAN_L引脚各自通过一个5Ω的电阻与CAN总线相连,电阻的限流作用可保护82C250免受过流的冲击,CAN_H和CAN_L与地之间并联了两个30PF的小电容,用于滤除总线上的高频干扰。
图2 智能节点电路图
3 控制器软件设计
点焊控制过程比较复杂,对于本控制器的软件部分采用功能模块式结构设计,这样可使系统的软件结构清晰,易于理解,便于调试、连接、修改和移植。系统主程序主要由中断程序设计、检测程序设计及子程序设计三个方面组成。控制系统的编程语言是C 语言。控制器软件结构框图如图3所示。
图3 控制器软件结构图
3.1 网络通信流程
操作人员根据所焊工件的工艺要求,查询焊接数据库,可以得到推荐的焊接参数,通过CAN适配卡发送到指定的下位机系统,下位机根据接收到的焊接参数控制电阻点焊机完成焊接过程,并将测得的焊接过程信号发送给上位机储存和打印。
CAN总线的物理层和数据链路层协议在CAN的相关器件中已经实现,而应用层协议至今没有一个统一的标准,所以制定CAN总线的应用层协议成为CAN网络应用中的核心问题。
上位机与下位机之间的通信是实现监控功能的基础和关键,针对汽车车身点焊过程中的数据监控系统,制定的CAN应用层协议主要包括标识符的分配和各程序流程等。
3.2 标识符的分配方案
标识符分配是CAN应用层协议中的重要问题,CAN的每一帧都有一个11位的标识符,包括信息和数据两部分,用来标识该帧数据,并且决定仲裁。标识符要能反映报文的地址信息、报文类型,体现报文级别。另外,报文标识符不能重复。在CAN应用层协议中,标识符由广播位、地址域和数据报文类型域共同确定,如表1所示。
表1 标识符的分配方案
此三项包含了是主机还是从机、网络节点地址以及报文承载的数据信息。广播位决定一半的优先级,因此,主机发出的命令优先级一定高于从机的数据。网络节点地址域使不同节点发出的报文标识符不同。
3.3 应用层程序流程
应用层的软件设计主要包括三大部 分:CAN节 点 初始化、下位机的报文发送和报文接收。
SJAl000的初始化只有在复位模式下才可以进行,初始化的流程图如图4所示,在完成初始化设置后SJAl000就可以进入工作状态进行正常的通信任务[4]。
图4 SJAl000初始化流程图
下位机的接收报文程序框图如图5所示,包括发送广播报文反对控制器争主、多报文的处理以及报文数据处理。接收子程序负责把中心站下达的配置信息或控制命令信息传送到指定的分站。接收子程序首先进行接收滤波,确认该帧数据是否接收,若接收,先按照数据链路层协议拆解数据包,将数据场的数据提取出来,进行相应的处理。在处理过程中,通过判断状态寄存器的某些位的状态,对总线脱离、错误报警、接收溢出等情况做出处理。
图5 CAN接收函数流程图
发送子程序负责节点报文的发送,把现场采集到的待发送信息进行数据分类、拆解、合并后,根据CAN的数据链路层协议填写到CAN数据帧的各个场,形成数据包,存入到SJAl000的发送缓冲区,启动SJAl000发送即可。在往SJAl000发送缓存区送报文之前要先作一些判断,程序如图6所示,再由CAN通信适配器把数据上传给中心站上位机。
3.4 监控功能实现
上位机的监控功能包括各下位机状态数据显示、设定和参数调整、将实时数据存入数据库、状态参数打印等功能[5]。监控程序结构如图6所示,其中上位机通过CAN接口适配卡与下位机通信,实现对车身点焊过程的监控功能。
图6 CAN发送函数流程图
图7 监控程序功能
4 系统运行分析
系统上电启动后,上位机对监控网络中的下位机进行识别并初始化,从数据库调取焊接所需工艺参数通过CAN总线传输给下位机。若点焊车间的设备根据产品不同而需要进行更改时,在上位PC机的可视化界面中对监控系统重新设置参数即可,图8为设置系统参数界面,此界面可进行波特率、下位机地址以及数据发送方式的设置。
实际点焊时,下位机取得总线控制权,向上位PC机请求数据;上位机在显示所接收到下位控制器发送的远程帧ID同时,对此ID过行判断,经判断为几号下位机向上位机请求焊接数据,上位机则根据所焊工件特征,查询得到最优焊接参数,调用发送函数,把相应的焊接数据发送给对应的下位机;下位机接收数据后,完成焊接过程,并将焊接电流等实时过程数据发送给上位机,进行存储、打印等。实验结果表明,采用CAN总线构建的电阻焊网络控制系统工作稳定,响应速度快,通信可靠,能够用于实际焊接过程的在线网络控制。
图8 系统参数设置界面
5 结论
1)设计以AT89C52单片机和SJA1000CAN控制器为核心的通信模块,使点焊控制器具有CAN现场总线通信功能。
2)根据CAN总线规范并结合车身点焊过程的生产实际,编制了CAN总线通信控制程序,该通信程序不但传输数据快,而且能够解决实际应用环境下常见的故障问题,实现数据实时传输,这对于点焊质量的监控、点焊设备的维护和点焊生产车间的网络化管理都具有重要的意义。
3)系统具有较强的可扩展性,所确定的网络通信协议能够适用于汽车车身点焊过程的数据通信,为汽车制造厂焊接车间的智能集成制造信息网络提供了技术基础。
[1] 王敏. 电阻焊在汽车工业中的应用[J]. 电焊机,2003,33(1): 1-6.
[2] 饶运涛. 现场总线原理与应用技术[M]. 北京: 北京航空航天大学出版社,2007.
[3] 陈益平,胡德安,邓子飞. 基于CAN总线的电阻焊网络控制系统[J]. 机械工程学报,2006,42 (4): 147-151.
[4] 姜立标,王登峰,韩智阳. CAN总线在商用车上数据采集的实现[J]. 哈尔滨工业大学学报,2007,39(3): 489-491.
[5] 胡德安,陈鹏展,陈益平,等. 智能点焊专家系统实时数据采集与通信[J].电焊机,2002,32(4): 15-17.