胡德安,張 偉, 陳益平
HU De-an,ZHANG Wei,CHEN Yi-ping
(南昌航空大學(xué) 航空制造工程學(xué)院,南昌 330063)
汽車(chē)白車(chē)身,多數(shù)為承載式全焊接結(jié)構(gòu),一般是由數(shù)百個(gè)薄板沖壓件經(jīng)焊接而成的復(fù)雜結(jié)構(gòu)件。汽車(chē)白車(chē)身的焊接方法主要采用電阻點(diǎn)焊工藝,一臺(tái)轎車(chē)車(chē)身的焊點(diǎn)約在35005000點(diǎn)之間。汽車(chē)車(chē)身焊裝用的點(diǎn)焊設(shè)備占全部電阻焊產(chǎn)品的90 % 以上[1]。 保證電阻點(diǎn)焊焊接質(zhì)量是汽車(chē)白車(chē)身焊接質(zhì)量保證的關(guān)鍵。現(xiàn)在的點(diǎn)焊控制器普遍采用單片機(jī)智能控制焊接過(guò)程,現(xiàn)場(chǎng)得到的數(shù)據(jù)通過(guò)RS-232或RS-485總線傳輸給上位機(jī)實(shí)現(xiàn)對(duì)生產(chǎn)的集散控制。但電阻點(diǎn)焊是一個(gè)多變量耦合和大量隨機(jī)不確定因素的過(guò)程,焊點(diǎn)形核時(shí)間短,影響因素多,質(zhì)量監(jiān)測(cè)難度大,隨著生產(chǎn)自動(dòng)化程度日益提高,要求采用更精確的方法來(lái)檢測(cè)并控制焊接生產(chǎn)質(zhì)量,以提高焊點(diǎn)的可靠性,這種總線技術(shù)在點(diǎn)焊信息傳輸方面存在許多缺點(diǎn),主要表現(xiàn)在:1)監(jiān)控系統(tǒng)均為主從式結(jié)構(gòu),網(wǎng)絡(luò)上只能有一個(gè)主節(jié)點(diǎn),無(wú)法構(gòu)成多主冗余系統(tǒng),當(dāng)主節(jié)點(diǎn)出現(xiàn)故障,系統(tǒng)就無(wú)法運(yùn)行;2)缺乏統(tǒng)一的規(guī)范和通信協(xié)議,系統(tǒng)是封閉的;3)波特率較低,傳輸距離短,滿(mǎn)足不了實(shí)時(shí)性要求。因此,為保證車(chē)身焊接質(zhì)量,就必須使用新型的總線技術(shù)使點(diǎn)焊質(zhì)量在線實(shí)時(shí)監(jiān)測(cè)得以實(shí)現(xiàn),又可以把該焊機(jī)的工作狀態(tài)情況及時(shí)顯示給上位機(jī),使工人在遠(yuǎn)離現(xiàn)場(chǎng)的情況下了解焊接狀況,達(dá)到遠(yuǎn)程監(jiān)控的目的。并開(kāi)發(fā)一種具有該網(wǎng)絡(luò)化通信功能的點(diǎn)焊控制器以滿(mǎn)足現(xiàn)代化點(diǎn)焊生產(chǎn)要求。
控制局域網(wǎng)絡(luò)CAN(Control Area Network),是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,采用CAN控制器總線進(jìn)行現(xiàn)場(chǎng)智能節(jié)點(diǎn)的設(shè)計(jì)有以下優(yōu)點(diǎn):CAN最多可帶110個(gè)節(jié)點(diǎn),為多處安置傳感器設(shè)備提供了可能;CAN總線采用短幀通信,傳輸可靠性高;CAN總線當(dāng)中一個(gè)節(jié)點(diǎn)由于某些原因不能正常工作時(shí),能自動(dòng)關(guān)閉輸出功能,而不影響其它節(jié)點(diǎn)的操作。采用CAN總線構(gòu)建點(diǎn)焊網(wǎng)絡(luò)控制系統(tǒng),不僅可以實(shí)現(xiàn)焊接參數(shù)的在線控制與優(yōu)化,還可實(shí)現(xiàn)各點(diǎn)焊智能控制設(shè)備間信息的集成與共享,打破各焊接設(shè)備的“孤島效應(yīng)”,為焊接生產(chǎn)的智能集成提供技術(shù)基礎(chǔ)。因此基于CAN總線的焊接數(shù)據(jù)傳輸系統(tǒng)使得車(chē)身焊接過(guò)程的實(shí)時(shí)性和可靠性得到了保證[2]。
本系統(tǒng)分為監(jiān)控管理計(jì)算機(jī)和電阻焊控制器兩層結(jié)構(gòu),通過(guò)現(xiàn)場(chǎng)總線連接組成管理系統(tǒng)。圖l為電阻點(diǎn)焊網(wǎng)絡(luò)控制系統(tǒng)總體結(jié)構(gòu),系統(tǒng)通信網(wǎng)絡(luò)為總線型,上位PC機(jī)通過(guò)CAN接口適配器與CAN總線相連[3]。
在現(xiàn)場(chǎng)總線控制系統(tǒng)中,各現(xiàn)場(chǎng)設(shè)備是通過(guò)節(jié)點(diǎn)掛接在總線上的,在系統(tǒng)的組網(wǎng)中這些節(jié)點(diǎn)大多數(shù)由相應(yīng)的控制器與單片機(jī)接口而形成,稱(chēng)為智能節(jié)點(diǎn)。單片機(jī)是采集系統(tǒng)的核心,直接影響到系統(tǒng)的性能。從系統(tǒng)的實(shí)際要求和成本考慮,本控制系統(tǒng)的中心器件選用性?xún)r(jià)比較高的AT89C51單片機(jī)。各電阻焊微機(jī)控制器均由AT89C51單片機(jī),獨(dú)立CAN通信控制器SJA1000、CAN總線收發(fā)器PCA82C250、高速光電耦合器6N137以及外部電路構(gòu)成,89C51負(fù)責(zé)SJA1000的初始化并通過(guò)控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。圖2為CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件電路原理圖,SJA1000的AD0~AD7連接到89C51的P0口,連接到89C51的P2.0口,當(dāng)P2.0口為0時(shí)CPU片外存儲(chǔ)器地址可選中SJA1000,通過(guò)這些地址可對(duì)SJA1000執(zhí)行相應(yīng)的讀/寫(xiě)操作。

圖1 基于CAN總線的系統(tǒng)拓?fù)浣Y(jié)構(gòu)
大功率點(diǎn)焊機(jī)在工作時(shí)會(huì)帶來(lái)許多干擾信號(hào)影響數(shù)據(jù)的傳送,為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,SJA1000的TX0和RX0通過(guò)高速光電耦合器6N137后與82C250相連,實(shí)現(xiàn)總線上的各CAN節(jié)點(diǎn)間電氣隔離。82C250的CAN_H和CAN_L引腳各自通過(guò)一個(gè)5Ω的電阻與CAN總線相連,電阻的限流作用可保護(hù)82C250免受過(guò)流的沖擊,CAN_H和CAN_L與地之間并聯(lián)了兩個(gè)30PF的小電容,用于濾除總線上的高頻干擾。

圖2 智能節(jié)點(diǎn)電路圖
點(diǎn)焊控制過(guò)程比較復(fù)雜,對(duì)于本控制器的軟件部分采用功能模塊式結(jié)構(gòu)設(shè)計(jì),這樣可使系統(tǒng)的軟件結(jié)構(gòu)清晰,易于理解,便于調(diào)試、連接、修改和移植。系統(tǒng)主程序主要由中斷程序設(shè)計(jì)、檢測(cè)程序設(shè)計(jì)及子程序設(shè)計(jì)三個(gè)方面組成。控制系統(tǒng)的編程語(yǔ)言是C 語(yǔ)言。控制器軟件結(jié)構(gòu)框圖如圖3所示。

圖3 控制器軟件結(jié)構(gòu)圖
操作人員根據(jù)所焊工件的工藝要求,查詢(xún)焊接數(shù)據(jù)庫(kù),可以得到推薦的焊接參數(shù),通過(guò)CAN適配卡發(fā)送到指定的下位機(jī)系統(tǒng),下位機(jī)根據(jù)接收到的焊接參數(shù)控制電阻點(diǎn)焊機(jī)完成焊接過(guò)程,并將測(cè)得的焊接過(guò)程信號(hào)發(fā)送給上位機(jī)儲(chǔ)存和打印。
CAN總線的物理層和數(shù)據(jù)鏈路層協(xié)議在CAN的相關(guān)器件中已經(jīng)實(shí)現(xiàn),而應(yīng)用層協(xié)議至今沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),所以制定CAN總線的應(yīng)用層協(xié)議成為CAN網(wǎng)絡(luò)應(yīng)用中的核心問(wèn)題。
上位機(jī)與下位機(jī)之間的通信是實(shí)現(xiàn)監(jiān)控功能的基礎(chǔ)和關(guān)鍵,針對(duì)汽車(chē)車(chē)身點(diǎn)焊過(guò)程中的數(shù)據(jù)監(jiān)控系統(tǒng),制定的CAN應(yīng)用層協(xié)議主要包括標(biāo)識(shí)符的分配和各程序流程等。
標(biāo)識(shí)符分配是CAN應(yīng)用層協(xié)議中的重要問(wèn)題,CAN的每一幀都有一個(gè)11位的標(biāo)識(shí)符,包括信息和數(shù)據(jù)兩部分,用來(lái)標(biāo)識(shí)該幀數(shù)據(jù),并且決定仲裁。標(biāo)識(shí)符要能反映報(bào)文的地址信息、報(bào)文類(lèi)型,體現(xiàn)報(bào)文級(jí)別。另外,報(bào)文標(biāo)識(shí)符不能重復(fù)。在CAN應(yīng)用層協(xié)議中,標(biāo)識(shí)符由廣播位、地址域和數(shù)據(jù)報(bào)文類(lèi)型域共同確定,如表1所示。

表1 標(biāo)識(shí)符的分配方案
此三項(xiàng)包含了是主機(jī)還是從機(jī)、網(wǎng)絡(luò)節(jié)點(diǎn)地址以及報(bào)文承載的數(shù)據(jù)信息。廣播位決定一半的優(yōu)先級(jí),因此,主機(jī)發(fā)出的命令優(yōu)先級(jí)一定高于從機(jī)的數(shù)據(jù)。網(wǎng)絡(luò)節(jié)點(diǎn)地址域使不同節(jié)點(diǎn)發(fā)出的報(bào)文標(biāo)識(shí)符不同。
應(yīng)用層的軟件設(shè)計(jì)主要包括三大部 分:CAN節(jié) 點(diǎn) 初始化、下位機(jī)的報(bào)文發(fā)送和報(bào)文接收。
SJAl000的初始化只有在復(fù)位模式下才可以進(jìn)行,初始化的流程圖如圖4所示,在完成初始化設(shè)置后SJAl000就可以進(jìn)入工作狀態(tài)進(jìn)行正常的通信任務(wù)[4]。

圖4 SJAl000初始化流程圖
下位機(jī)的接收?qǐng)?bào)文程序框圖如圖5所示,包括發(fā)送廣播報(bào)文反對(duì)控制器爭(zhēng)主、多報(bào)文的處理以及報(bào)文數(shù)據(jù)處理。接收子程序負(fù)責(zé)把中心站下達(dá)的配置信息或控制命令信息傳送到指定的分站。接收子程序首先進(jìn)行接收濾波,確認(rèn)該幀數(shù)據(jù)是否接收,若接收,先按照數(shù)據(jù)鏈路層協(xié)議拆解數(shù)據(jù)包,將數(shù)據(jù)場(chǎng)的數(shù)據(jù)提取出來(lái),進(jìn)行相應(yīng)的處理。在處理過(guò)程中,通過(guò)判斷狀態(tài)寄存器的某些位的狀態(tài),對(duì)總線脫離、錯(cuò)誤報(bào)警、接收溢出等情況做出處理。

圖5 CAN接收函數(shù)流程圖
發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的發(fā)送,把現(xiàn)場(chǎng)采集到的待發(fā)送信息進(jìn)行數(shù)據(jù)分類(lèi)、拆解、合并后,根據(jù)CAN的數(shù)據(jù)鏈路層協(xié)議填寫(xiě)到CAN數(shù)據(jù)幀的各個(gè)場(chǎng),形成數(shù)據(jù)包,存入到SJAl000的發(fā)送緩沖區(qū),啟動(dòng)SJAl000發(fā)送即可。在往SJAl000發(fā)送緩存區(qū)送報(bào)文之前要先作一些判斷,程序如圖6所示,再由CAN通信適配器把數(shù)據(jù)上傳給中心站上位機(jī)。
上位機(jī)的監(jiān)控功能包括各下位機(jī)狀態(tài)數(shù)據(jù)顯示、設(shè)定和參數(shù)調(diào)整、將實(shí)時(shí)數(shù)據(jù)存入數(shù)據(jù)庫(kù)、狀態(tài)參數(shù)打印等功能[5]。監(jiān)控程序結(jié)構(gòu)如圖6所示,其中上位機(jī)通過(guò)CAN接口適配卡與下位機(jī)通信,實(shí)現(xiàn)對(duì)車(chē)身點(diǎn)焊過(guò)程的監(jiān)控功能。

圖6 CAN發(fā)送函數(shù)流程圖

圖7 監(jiān)控程序功能
系統(tǒng)上電啟動(dòng)后,上位機(jī)對(duì)監(jiān)控網(wǎng)絡(luò)中的下位機(jī)進(jìn)行識(shí)別并初始化,從數(shù)據(jù)庫(kù)調(diào)取焊接所需工藝參數(shù)通過(guò)CAN總線傳輸給下位機(jī)。若點(diǎn)焊車(chē)間的設(shè)備根據(jù)產(chǎn)品不同而需要進(jìn)行更改時(shí),在上位PC機(jī)的可視化界面中對(duì)監(jiān)控系統(tǒng)重新設(shè)置參數(shù)即可,圖8為設(shè)置系統(tǒng)參數(shù)界面,此界面可進(jìn)行波特率、下位機(jī)地址以及數(shù)據(jù)發(fā)送方式的設(shè)置。
實(shí)際點(diǎn)焊時(shí),下位機(jī)取得總線控制權(quán),向上位PC機(jī)請(qǐng)求數(shù)據(jù);上位機(jī)在顯示所接收到下位控制器發(fā)送的遠(yuǎn)程幀ID同時(shí),對(duì)此ID過(guò)行判斷,經(jīng)判斷為幾號(hào)下位機(jī)向上位機(jī)請(qǐng)求焊接數(shù)據(jù),上位機(jī)則根據(jù)所焊工件特征,查詢(xún)得到最優(yōu)焊接參數(shù),調(diào)用發(fā)送函數(shù),把相應(yīng)的焊接數(shù)據(jù)發(fā)送給對(duì)應(yīng)的下位機(jī);下位機(jī)接收數(shù)據(jù)后,完成焊接過(guò)程,并將焊接電流等實(shí)時(shí)過(guò)程數(shù)據(jù)發(fā)送給上位機(jī),進(jìn)行存儲(chǔ)、打印等。實(shí)驗(yàn)結(jié)果表明,采用CAN總線構(gòu)建的電阻焊網(wǎng)絡(luò)控制系統(tǒng)工作穩(wěn)定,響應(yīng)速度快,通信可靠,能夠用于實(shí)際焊接過(guò)程的在線網(wǎng)絡(luò)控制。

圖8 系統(tǒng)參數(shù)設(shè)置界面
1)設(shè)計(jì)以AT89C52單片機(jī)和SJA1000CAN控制器為核心的通信模塊,使點(diǎn)焊控制器具有CAN現(xiàn)場(chǎng)總線通信功能。
2)根據(jù)CAN總線規(guī)范并結(jié)合車(chē)身點(diǎn)焊過(guò)程的生產(chǎn)實(shí)際,編制了CAN總線通信控制程序,該通信程序不但傳輸數(shù)據(jù)快,而且能夠解決實(shí)際應(yīng)用環(huán)境下常見(jiàn)的故障問(wèn)題,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)傳輸,這對(duì)于點(diǎn)焊質(zhì)量的監(jiān)控、點(diǎn)焊設(shè)備的維護(hù)和點(diǎn)焊生產(chǎn)車(chē)間的網(wǎng)絡(luò)化管理都具有重要的意義。
3)系統(tǒng)具有較強(qiáng)的可擴(kuò)展性,所確定的網(wǎng)絡(luò)通信協(xié)議能夠適用于汽車(chē)車(chē)身點(diǎn)焊過(guò)程的數(shù)據(jù)通信,為汽車(chē)制造廠焊接車(chē)間的智能集成制造信息網(wǎng)絡(luò)提供了技術(shù)基礎(chǔ)。
[1] 王敏. 電阻焊在汽車(chē)工業(yè)中的應(yīng)用[J]. 電焊機(jī),2003,33(1): 1-6.
[2] 饒運(yùn)濤. 現(xiàn)場(chǎng)總線原理與應(yīng)用技術(shù)[M]. 北京: 北京航空航天大學(xué)出版社,2007.
[3] 陳益平,胡德安,鄧子飛. 基于CAN總線的電阻焊網(wǎng)絡(luò)控制系統(tǒng)[J]. 機(jī)械工程學(xué)報(bào),2006,42 (4): 147-151.
[4] 姜立標(biāo),王登峰,韓智陽(yáng). CAN總線在商用車(chē)上數(shù)據(jù)采集的實(shí)現(xiàn)[J]. 哈爾濱工業(yè)大學(xué)學(xué)報(bào),2007,39(3): 489-491.
[5] 胡德安,陳鵬展,陳益平,等. 智能點(diǎn)焊專(zhuān)家系統(tǒng)實(shí)時(shí)數(shù)據(jù)采集與通信[J].電焊機(jī),2002,32(4): 15-17.