目前,國內(nèi)數(shù)控加工多為分散加工,采用傳統(tǒng)的NC代碼輸入方式,網(wǎng)絡(luò)化程度低,已無法滿足生產(chǎn)需求。國內(nèi)外也研究了多種數(shù)控機床聯(lián)網(wǎng)通信方案,但在成本和性能上難以做到均衡。
CAD與CAM技術(shù)的成熟使CAD/CAM系統(tǒng)可以直接生成控制機床加工的數(shù)控NC代碼,從而利用DNC實現(xiàn)車間自動化生產(chǎn)。采用CAN總線組網(wǎng)通信,連接分散的數(shù)控機床,可以用較低的成本實現(xiàn)DNC直接數(shù)字控制。通過該系統(tǒng)驅(qū)動多臺數(shù)控機床并行加工,可實現(xiàn)數(shù)控加工行業(yè)的網(wǎng)絡(luò)化、高效化和自動化,具有廣泛的應(yīng)用前景。
1 方案設(shè)計
各計算機工作站位于CAD/CAM部門,通過局域網(wǎng)互聯(lián),其中一臺計算機作為主控服采用C8051F040微控制器為核心設(shè)計通信節(jié)點電路。C8051F040是混合信號SOC型8位MCU,兼容8051系列指令務(wù)器,負責(zé)數(shù)控機床的管理和控制。各工作站設(shè)計生成的NC程序通過局域網(wǎng)發(fā)送到服務(wù)器,再經(jīng)CAN總線傳輸至機床,控制相應(yīng)機床加工;各機床上存儲的NC程序及機床狀態(tài)監(jiān)控信息也可通過相反的路徑上傳至有關(guān)計算機進行處理。服務(wù)器與通信節(jié)點間以及機床與通信節(jié)點間為近距離傳輸,為簡化結(jié)構(gòu),采用通用標(biāo)準(zhǔn)RS232接口通信。
2 硬件電路設(shè)計
硬件電路設(shè)計主要是通信節(jié)點電路設(shè)計。實際上是一個CAN /RS232接口電路。此電路有兩個通信接口:一個是CAN總線接口,連接CAN總線;另一個是RS232接口,連接數(shù)控機床或工控機的RS232接口。
采用C8051F040 微控制器為核心設(shè)計通信節(jié)點電路。C8051F040是混合信號SOC型8位MCU,兼容8051系列指令集,采用流水線處理結(jié)構(gòu),平均指令速率達5 M IPS,集成4 KBRAM、64 K Flash ROM、CAN控制器、UART串口,非常適合該電路要求,幾乎無需擴展外圍芯片,可節(jié)省大量硬件開銷。C8051F040內(nèi)部的CAN控制器符合Bosch規(guī)范2. 0A (基本CAN)和2. 0B (全功能CAN) ,方便了CAN 網(wǎng)絡(luò)通信設(shè)計。CAN控制器包含1 個CAN 核、消息RAM (獨立于C8051 的RAM) 、1個消息處理狀態(tài)機及控制寄存器。CAN控制器可以工作在高達1M bit/ s速率,有32個消息對象,每個消息對象有其標(biāo)識掩碼,用于過濾接收到的消息。輸入數(shù)據(jù)、消息對象和標(biāo)識掩碼存儲在CAN消息RAM中。與數(shù)據(jù)發(fā)送和接收過濾有關(guān)的所有協(xié)議處理均由CAN控制器完成,不需C8051 MCU干預(yù),這使用于CAN通信的CPU帶寬最小。
C8051通過特殊功能控制器(SFR)配置CAN控制器,讀取接收的數(shù)據(jù),寫入要發(fā)送的數(shù)據(jù)。
CAN總線完成下位機各部分間的通信以及各下位機與上位機之間的通信。由于C8051F040集成的CAN控制器只是個協(xié)議控制器,不能提供物理層驅(qū)動,應(yīng)用時需外加CAN總線收發(fā)器,采用PCA82C250收發(fā)器作為CAN控制器和物理總線間的接口芯片,它可以增強總線驅(qū)動能力,提高總線差動發(fā)送和接收能力,從而增加通信距離并擴充節(jié)點數(shù)量。
RS - 232 驅(qū)動芯片采用MAX232,實現(xiàn)RS - 232 電平和TTL電平之間的轉(zhuǎn)換。C8051F040內(nèi)部駐有CAN通信協(xié)議,主要負責(zé)對CAN接口芯片的初始化和控制,完成CAN總線協(xié)議和RS - 232通信協(xié)議的轉(zhuǎn)換和數(shù)據(jù)傳輸。
為增強抗干擾能力,采用了高速光電耦合器6N137 隔離C8051F040MCU和PCA82C250的通信端口,實現(xiàn)總線上節(jié)點間的電氣隔離,增強了穩(wěn)定性和安全性。在工業(yè)現(xiàn)場惡劣環(huán)境下,不僅通信線路需隔離,供電也必須隔離,否則光耦兩側(cè)的噪聲信號將通過電源線耦合。文中采用專門為通信接口設(shè)計的隔離電源器件MAX253。其輸出端連接有中心抽頭的隔離變壓器原邊, 變壓器副邊即可提供隔離側(cè)電源, 功率可達1 W.MAX253的SD控制端可連接MCU作為選通信號,空閑時進入待機狀態(tài)降低功耗。
3 軟件設(shè)計
軟件設(shè)計包括2部分內(nèi)容:下位機CAN通信軟件和上位機服務(wù)器軟件。CAN 通信軟件主要有兩方面功能: 一是對C8051F040內(nèi)部CAN控制器的相關(guān)寄存器進行初始化配置,包括協(xié)議寄存器,消息對象接口寄存器,消息處理器寄存器等;二是控制收發(fā)緩沖區(qū)的讀寫,完成數(shù)據(jù)交換。
處理器將上位機送來的控制指令或NC程序,通過寫入內(nèi)部的CAN數(shù)據(jù)寄存器來傳送給下位機數(shù)控機床,又可讀取機床寫入寄存器的數(shù)據(jù)發(fā)送給控制服務(wù)器。因此, CAN通信軟件主要包括系統(tǒng)初始化程序、發(fā)送程序、接收程序等。采用C結(jié)構(gòu)化程序設(shè)計方案,具有較好的模塊性和可移植性,對不同系統(tǒng)功能或應(yīng)用環(huán)境,可方便進行編程重組。
3.1 系統(tǒng)初始化程序
初始化程序主要完成初始化設(shè)置CAN 控制寄存器(CANOCN) 、位定時寄存器(B ITREG) ,初始化發(fā)送報文對象和接收報文對象。其中,位定時寄存器的設(shè)置較復(fù)雜,使用8MHz外部晶振, CAN通信速率為500 k / s,得到B ITREG的初始值為0x2301。對象初始化、發(fā)送和接收初始化完成后啟動CAN處理機制(對B ITREG和CAN0CN初始化) 。下面為初始化程序結(jié)構(gòu):
void start2CAN ( void) { SFPRAGE =CAN02 PAGE; / /指向CAN0頁面 CAN0CN I = 0x41; / /置位CCE和Init開始初始化 CAN0ADR =B ITREG; / /指向位定時寄存器進行配置 CAN0DAT = 0x2301; / /位率為500 k / s CAN0CN I = 0x06; / /允許全局中斷,置位IE和SIE CAN0CN& = ~0x41; / /清CCE和IN IT位啟動CAN狀態(tài)機制 }
3.2 發(fā)送程序
CAN報文發(fā)送由CAN控制器自動完成,只需根據(jù)接收的遠程幀識別符將對應(yīng)數(shù)據(jù)轉(zhuǎn)移到發(fā)送緩沖寄存器,將此報文對象編碼寫入命令請求寄存器啟動發(fā)送即可。使用定時更新發(fā)送報文對象中的數(shù)據(jù),數(shù)據(jù)的發(fā)送由控制器硬件自動完成,當(dāng)其收到一個遠程幀時,就將相同識別符的數(shù)據(jù)幀發(fā)送出去。發(fā)送程序結(jié)構(gòu)如下:
void send2message ( charMsgNum) { uchar j; SFRPAGE =CAN02PAGE; / /指向CAN0頁面 CAN0ADR = IF1CMDMSK; / /向IF1命令屏蔽寄存器寫入命令 CAN0DAT = 0x0083; / /位率為500 k / s CAN0ADR = IF1ARB2; / /指向IF1仲裁寄存器2 CAN0DATH = 0x80; CAN0ADR = IF1DATA1; / /指向數(shù)據(jù)場首字節(jié) for( i = 0; i < 4; i ++ ) {CAN0DATH = can2 temp [ i ] ; } / /將4 Byte數(shù)據(jù)寫入發(fā)送Buffer CAN0ADR = IF1CMDRQST; CAN0DATL =MsgNum; / /寫入報文對象編號,數(shù)據(jù)發(fā)送到對應(yīng)報文對象 }
3.3 接收程序
CAN報文的接收與發(fā)送一樣,由CAN控制器自動完成,接收程序只需從接收緩存器中讀取接收的數(shù)據(jù),再進行相應(yīng)處理即可。基本方法與發(fā)送程序一致,只是接收程序采用中斷方式。此應(yīng)用中,主要接收上位機對機床編號的選擇,參數(shù)設(shè)置和NC控制程序以及相反流程的機床狀態(tài)信息等。接收程序結(jié)構(gòu)如下:
void receive2data ( void) { SFRPAGE =CAN02 PAGE; / /指向CAN0頁面 CAN0ADR = IF2CMDMSK; / /向IF2命令屏蔽寄存器寫命令 CAN0DATH = 0x00; CAN0DATL = 0x3F; / /位率為500 k / s CAN0ADR = IF2CMDRQST; / /將報文對象編號寫入命令請求寄存器,對應(yīng)接收 CAN0DATL =MsgNum; / /得到數(shù)據(jù)就從報文RAM移到數(shù)據(jù)Buffer中 CAN0ADR = IF2DATA1; / /指向數(shù)據(jù)場首字節(jié) for( i = 0; i < 4; i ++ ) { CAN2RX[ i] =CAN0DAT; } / /讀取4Byte數(shù)據(jù) }
3.4 上位機服務(wù)器軟件
上位機服務(wù)器軟件主要功能有NC程序文件數(shù)據(jù)管理,數(shù)控機床的編號管理,數(shù)據(jù)發(fā)送,通信接點及下位機狀態(tài)監(jiān)測,下位機數(shù)據(jù)的上傳等,軟件功能結(jié)構(gòu)圖見圖5。軟件的規(guī)模較大,屬于典型的C \S(客戶\服務(wù)器)模式軟件。采用Delphi7. 0進行開發(fā)。利用Delphi下安裝SPCOMM控件實現(xiàn)串口通信[ 4 ]。由于涉及到文件管理,需要管理多個文件,按加工順序傳輸,需要建立數(shù)據(jù)庫系統(tǒng)。
4 設(shè)計實驗結(jié)果
實驗機床為CAK6136V /750型數(shù)控機床3臺;實驗環(huán)境為該校工程訓(xùn)練中心機加工車間強干擾工業(yè)環(huán)境,并在實驗過程中啟動電火花加工機床、線切割機床等強干擾源。實驗中,上位機分別向3 臺數(shù)控機床發(fā)送4 Byte測試數(shù)據(jù),機床接收后立即向上位機返回所接收數(shù)據(jù),系統(tǒng)驗證數(shù)據(jù)正確后繼續(xù)發(fā)送數(shù)據(jù),直到數(shù)據(jù)出錯或通信次數(shù)達到預(yù)設(shè)循環(huán)時停止發(fā)送。實驗中CAN總線波特率設(shè)置為500 k / s,通信線纜長為15 m,進行了多次長時間測試。
測試時間600 s,發(fā)送數(shù)據(jù)1 704 061次,計算得出上位機和單臺機床交換一次數(shù)據(jù)的時間為01352 1 ms,考慮到計時誤差及通信等待時間,系統(tǒng)和3臺機床通信一次約需11056 3 ms,系統(tǒng)響應(yīng)滿足數(shù)控加工要求。由于通信節(jié)點電路及電源電路都設(shè)計了特殊的抗干擾措施,并得益于CAN總線的高可靠特性,實驗實現(xiàn)了快速響應(yīng)下極低的數(shù)據(jù)傳輸錯誤率。
然后,在上位機編輯一段加工一個圓臺的NC代碼,發(fā)送至3臺數(shù)控機床,控制3臺機床并行加工,完成的工件刀痕排列細膩一致,扭曲較小,極少有彎折現(xiàn)象,表明加工速度比較穩(wěn)定;同時3臺機床加工出的工件經(jīng)測量一致性很好。
實驗結(jié)果表明:采用CAN總線的DNC通信系統(tǒng),傳輸距離遠,抗干擾能力強,實時性好。
5 結(jié)束語
基于CAN Bus的低成本, 高可靠性的DNC通信系統(tǒng)可將普通數(shù)控機床與計算機網(wǎng)絡(luò)連接起來, 使異地CAD /CAM系統(tǒng)生成的NC代碼可以直接遠程控制數(shù)控機床進行加工, 同時允許多臺機床并行工作, 并具有一定的故障監(jiān)測功能, 實現(xiàn)機床NC代碼的可重用性, 從根本上提高了數(shù)控機床的加工效率。
(審核編輯: 智匯胡妮)
分享