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