基于現(xiàn)場總線的加工中心用六軸數(shù)控系統(tǒng)
圖3 CAN總線接口電路圖
選用了飛利浦公司的CAN通信收發(fā)器PCA82C250作為F2812的CAN控制器和物理總線間的接口,以實(shí)現(xiàn)對總線的差動發(fā)送和接收功能。將PCA82C250引腳8接地,在高速模式下發(fā)送器輸出級晶體管以最快速度啟動或者關(guān)閉,以保證了數(shù)據(jù)發(fā)送的實(shí)時性。
設(shè)計的CAN安全通信軟件包括:CAN模塊初始化模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊等。在使用CAN接口進(jìn)行通信之前,必須先對其進(jìn)行初始化,并僅當(dāng)DSP處于初始化模式下時才能進(jìn)行初始化。接口初始化結(jié)束后,還需要進(jìn)行郵箱的初始化。郵箱的初始化包括對郵箱屬性域、控制域和數(shù)據(jù)域的設(shè)置。郵箱初始化完畢,只要滿足一定的條件,相應(yīng)的郵箱就能進(jìn)行正常的發(fā)送和接收操作。
3.1 數(shù)據(jù)發(fā)送過程
使用發(fā)送郵箱發(fā)送消息,發(fā)送請求寄存器(CANTRS)被置1,啟動消息發(fā)送,CAN模塊處理CAN消息的發(fā)送。成功發(fā)送消息后,CAN模塊將發(fā)送響應(yīng)標(biāo)志位TA置位為1。成功發(fā)送或中止發(fā)送后,模塊將TRS標(biāo)志復(fù)位為0。同一個郵箱為了進(jìn)行下一次發(fā)送,必須將發(fā)送響應(yīng)標(biāo)志清零,即置TA為1。使用同一個郵箱發(fā)送其他消息,需要刷新郵箱的數(shù)據(jù)區(qū)。等待TRS為1,啟動下一個發(fā)送。寫入郵箱RAM的數(shù)據(jù)可以是半字(16位s)或整字(32位s),但CAN模塊總是返回一個32位的數(shù)據(jù),CPU必須接收所有32位或32位中的一部分。
3.2 數(shù)據(jù)接收過程
使用接收郵箱接收消息,當(dāng)接收到一個消息時,接收消息掛起寄存器(CANRMP)中相應(yīng)的標(biāo)志位就會被置位,并產(chǎn)生一個中斷,CPU可以從郵箱中讀取消息。在CPU從郵箱RAM中讀取數(shù)據(jù)之前,應(yīng)該先清除RMP位。在讀取數(shù)據(jù)后,CPU還需要驗(yàn)證RMP有沒有再次被模塊置位。如果RMP被置1,說明數(shù)據(jù)已經(jīng)被損壞。當(dāng)CPU讀取舊的消息時,由于接收到新的消息,CPU要重新讀取數(shù)據(jù)。
2 面向數(shù)控系統(tǒng)的現(xiàn)場總線通信協(xié)議
高檔數(shù)控系統(tǒng)要實(shí)現(xiàn)高速高精控制,這既要在內(nèi)部完成大量的數(shù)據(jù)傳輸,同時還要保證通信的實(shí)時性和可靠性。本文定義了一種面向數(shù)控系統(tǒng)的高速現(xiàn)場總線通信協(xié)議,這種協(xié)議能保證數(shù)控系統(tǒng)中各節(jié)點(diǎn)之間的循環(huán)通信周期達(dá)到16ms。協(xié)議采用帶29位報文標(biāo)識符的擴(kuò)展幀,其通信報文形式如表1所示。CAN報文由擴(kuò)展的29位標(biāo)識符、1位數(shù)據(jù)類型、1位遠(yuǎn)程發(fā)送請求、4位該幀內(nèi)數(shù)據(jù)段數(shù)據(jù)長度、0~8字節(jié)數(shù)據(jù)段、16位循環(huán)冗余碼CRC、2位應(yīng)答位和1位幀結(jié)尾組成。
CAN標(biāo)識符的分配在設(shè)計通信系統(tǒng)應(yīng)用層協(xié)議時非常重要,它決定了信息和相關(guān)的優(yōu)先權(quán)及信息的等待時間,同時也影響了信息濾波適用性、合理的通信結(jié)構(gòu)適用性和標(biāo)識符使用的效率。報文標(biāo)識符中包含有優(yōu)先標(biāo)記、目標(biāo)地址、源地址、幀類型、幀號、保留位、結(jié)束標(biāo)記,其格式如表2所示。
其中,優(yōu)先標(biāo)記(1位)是用來標(biāo)記當(dāng)前幀的優(yōu)先級別。對于正常信息,該位置為1,對于緊急信息(如報警信息、緊急斷電等),將該標(biāo)記置0。該標(biāo)記先于其他幀占用總線,在最短的時間內(nèi)到達(dá)目的地址;
目標(biāo)地址(7位):指定該幀數(shù)據(jù)或信息所要到達(dá)的目的地;
源地址(7位):指定該幀數(shù)據(jù)或信息的來源地址;在數(shù)控系統(tǒng)中,對每個CAN模板都設(shè)定一個地址號,用來區(qū)分不同的設(shè)備。CAN總線上的節(jié)點(diǎn)個數(shù)主要取決于總線驅(qū)動電路,目前最多可達(dá)110個。本文采用了長度為7位的目標(biāo)地址和源地址,可以有128個編碼地址,完全滿足系統(tǒng)需要。
幀類型(1位):用來標(biāo)記該幀數(shù)據(jù)場中的內(nèi)容是要傳輸?shù)臄?shù)據(jù)內(nèi)容還是通訊協(xié)議的控制信息;
幀號(8位):是用來標(biāo)記數(shù)據(jù)拆分后的幀塊序號;由于每個郵箱最多可存放8字節(jié)即64位的數(shù)據(jù),而消息的大小不定,CNC運(yùn)動控制器側(cè)輸入信號有32位,可以直接傳輸給,刀庫表信息和梯形圖程序段卻遠(yuǎn)遠(yuǎn)超過64位,需要分段傳輸。在傳輸超過8字節(jié)長度的數(shù)據(jù)時,按照每塊8字節(jié)對數(shù)據(jù)進(jìn)行拆分,根據(jù)數(shù)據(jù)的先后順序,指定相應(yīng)的幀號,從0遞增。幀號采用8位表示,取值范圍為0~255,用這種方式完全滿足本控制系統(tǒng)的通信需求。
保留(4位):用作擴(kuò)展,可以根據(jù)功能擴(kuò)展的需要增加其他功能;
結(jié)束標(biāo)記(1位):是用來標(biāo)記該數(shù)據(jù)包傳輸過程的結(jié)束。
CAN通信報文數(shù)據(jù)段要傳送的數(shù)據(jù)包括MST代碼、I/O信息、當(dāng)前刀盤位置信息、梯形圖程序、刀庫表信息以及遠(yuǎn)程操作面板信號。
3 數(shù)控系統(tǒng)CAN安全通信軟件設(shè)計
TMS320F2812數(shù)字處理器上集成了增強(qiáng)型CAN(eCAN)總線通信接口,完全支持CAN2.0B總線規(guī)范。同時,帶有32個完全可配置的接收/發(fā)送郵箱,支持消息的定時郵遞功能,最高通信速率可以達(dá)到1Mbps。另外,eCAN模塊能夠?qū)崿F(xiàn)靈活穩(wěn)定的通信,且使用起來非常方便,只要對位時序配置寄存器、屏蔽寄存器、郵箱配置寄存器等相關(guān)寄存器進(jìn)行配置就可以使用。為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,DSP的CAN接口發(fā)送和接收線路并不是直接與PCA82C250的TXD和RXD相連,而是在中間加入了一級高速光耦6N137,UC101、UC103為光耦6N137,這樣就很好地實(shí)現(xiàn)了總線上各CAN節(jié)點(diǎn)間的電氣隔離。另外,CAN接口電路采用的雙線差分驅(qū)動,極大地抑制了工業(yè)現(xiàn)場干擾信號的影響,保證了數(shù)控系統(tǒng)通信的可靠性。具體電路如圖3所示。
圖3 CAN總線接口電路圖
選用了飛利浦公司的CAN通信收發(fā)器PCA82C250作為F2812的CAN控制器和物理總線間的接口,以實(shí)現(xiàn)對總線的差動發(fā)送和接收功能。將PCA82C250引腳8接地,在高速模式下發(fā)送器輸出級晶體管以最快速度啟動或者關(guān)閉,以保證了數(shù)據(jù)發(fā)送的實(shí)時性。
設(shè)計的CAN安全通信軟件包括:CAN模塊初始化模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊等。在使用CAN接口進(jìn)行通信之前,必須先對其進(jìn)行初始化,并僅當(dāng)DSP處于初始化模式下時才能進(jìn)行初始化。接口初始化結(jié)束后,還需要進(jìn)行郵箱的初始化。郵箱的初始化包括對郵箱屬性域、控制域和數(shù)據(jù)域的設(shè)置。郵箱初始化完畢,只要滿足一定的條件,相應(yīng)的郵箱就能進(jìn)行正常的發(fā)送和接收操作。
3.1 數(shù)據(jù)發(fā)送過程
使用發(fā)送郵箱發(fā)送消息,發(fā)送請求寄存器(CANTRS)被置1,啟動消息發(fā)送,CAN模塊處理CAN消息的發(fā)送。成功發(fā)送消息后,CAN模塊將發(fā)送響應(yīng)標(biāo)志位TA置位為1。成功發(fā)送或中止發(fā)送后,模塊將TRS標(biāo)志復(fù)位為0。同一個郵箱為了進(jìn)行下一次發(fā)送,必須將發(fā)送響應(yīng)標(biāo)志清零,即置TA為1。使用同一個郵箱發(fā)送其他消息,需要刷新郵箱的數(shù)據(jù)區(qū)。等待TRS為1,啟動下一個發(fā)送。寫入郵箱RAM的數(shù)據(jù)可以是半字(16位s)或整字(32位s),但CAN模塊總是返回一個32位的數(shù)據(jù),CPU必須接收所有32位或32位中的一部分。
3.2 數(shù)據(jù)接收過程
使用接收郵箱接收消息,當(dāng)接收到一個消息時,接收消息掛起寄存器(CANRMP)中相應(yīng)的標(biāo)志位就會被置位,并產(chǎn)生一個中斷,CPU可以從郵箱中讀取消息。在CPU從郵箱RAM中讀取數(shù)據(jù)之前,應(yīng)該先清除RMP位。在讀取數(shù)據(jù)后,CPU還需要驗(yàn)證RMP有沒有再次被模塊置位。如果RMP被置1,說明數(shù)據(jù)已經(jīng)被損壞。當(dāng)CPU讀取舊的消息時,由于接收到新的消息,CPU要重新讀取數(shù)據(jù)。
4 基于CAN總線的加工中心用六軸
數(shù)控系統(tǒng)的工業(yè)應(yīng)用針對多軸聯(lián)動數(shù)控系統(tǒng)具有多任務(wù)和實(shí)時性的特點(diǎn),本文設(shè)計的數(shù)控核心軟件采用前、后臺
型軟件。前臺程序?yàn)橹袛鄷r間為4m、的實(shí)時中斷脹務(wù)程序,承擔(dān)幾乎全部與數(shù)控加工過程直接相關(guān)的實(shí)時性任務(wù),如插補(bǔ)計算、MST代碼處理、報警處理、速度控制和位置控制等;后臺程序又稱為“背景”程序,上要用來完成加工數(shù)據(jù)的準(zhǔn)備工作和管理工作,包括:數(shù)控加工程序輸入、譯碼、刀補(bǔ)計算、FIFQ通信、CAN通信以及I/O處理等功能。后臺程序是一個循環(huán)運(yùn)行的程序,它是上程序,在運(yùn)行過程中被4ms實(shí)時中斷服務(wù)程序打斷,前、后臺程序相互配合完成數(shù)控系統(tǒng)的各項(xiàng)控制和管理任務(wù)。
本系統(tǒng)已在某公司的五軸數(shù)控加工中心卜進(jìn)行了成功的應(yīng)用,實(shí)際應(yīng)用的數(shù)控加工中心如圖4所示,已完成了速度、精度測試和實(shí)際一切削實(shí)驗(yàn)。圖5為開發(fā)的六軸數(shù)控系統(tǒng)主界面圖。
評論