基于PMAC控制卡的激光掃描尺寸測量系統(tǒng)
引 言
在機械加工中經(jīng)常需要對一些簡單的幾何尺寸,如直徑、邊距等進行測量。這類工作重復性大,工作量大,傳統(tǒng)的手工測量不僅增加了現(xiàn)場工作人員的工作強度,精度低,且手工測量的數(shù)據(jù)在統(tǒng)計處理時也很不方便。這類工作如果使用坐標測量儀等精度高,通用性強的儀器測量,在經(jīng)濟和效率上都很難滿足要求。另有一種專門的激光掃描傳感器可用于此類測量,但其測量精度是建立在對獨立運動系統(tǒng)速度的精確控制上的,這無疑增加了成本。為了方便實現(xiàn)對這類簡單、一維尺寸、高效、高精度,且易于數(shù)據(jù)管理的測量,在此提出一種可在PMAC控制卡控制的普通運動平臺上實施激光掃描測量的系統(tǒng)。它融合了以上兩種測量方法,即通過對激光信號的檢測獲得被測物的邊緣信號,并根據(jù)此信號鎖存光柵尺讀數(shù),以得到被測物的邊緣位置,從而進一步得到尺寸值。
這種方法具有光電測量高速、非接觸的優(yōu)點,又可充分利用技術成熟、應用廣泛的光柵尺資源。由于光柵尺的精度通常都較高,此測量系統(tǒng)可在一定范圍內獲得較高的精度。
1 測量原理及整體構造
測量系統(tǒng)由工控機、PMAC控制卡、運動測控系統(tǒng)(包括光柵尺、伺服電機、絲杠等)、激光發(fā)射裝置和光電檢測裝置組成。系統(tǒng)的主要原理如圖1所示,被測物裝在實驗臺上,并隨實驗臺一起運動,運動的控制由PMAC控制卡完成,它讀人光柵尺的讀數(shù),并輸出給電機的控制量。被測物兩側分別是激光發(fā)射裝置和光電檢測元件,當被測物位于光路中時,檢測元件處于斷開狀態(tài);當被測物離開時,元件導通。隨著被測物的移動,當其邊沿通過激光束時,檢測元件會產(chǎn)生由通到斷或由斷到通的跳變。通過一定的設置,PMAC可檢測到這些跳變信號,并鎖存當時的光柵尺讀數(shù),這樣就得到被測物的邊沿位置,而通過測量前后兩個邊沿位置,就可得到所需的尺寸值。
激光器采用了小功率半導體激光器,波長為640 nm。其小巧的體積和較低的價格使其非常適用于這類應用場合。光電檢測元件采用普通的金屬封裝光電三極管。
PMAC插在工控機的PCI插槽內,并通過PCI總線進行通信。通信的主要內容有兩方面:向PMAC發(fā)運動控制指令,從而使其完成平臺的運動控制;從 PMAC內讀取其鎖存的被測物邊沿位置讀數(shù),從而完成結果的輸出、保存及分析工作。為方便對采集數(shù)據(jù)的處理分析,以及便于研究系統(tǒng)性能,該系統(tǒng)采用了工控機加PMAC的組織方案,在系統(tǒng)定型后可以使用更加經(jīng)濟的方案,如ARM-Linux加PMAC。
PMAC控制卡的使用是很靈活的,要構成上面所述的系統(tǒng)需要對其進行一些設置。下面將詳細介紹在這種應用中PMAC卡的設置方法及上下位機通信的實現(xiàn)辦法。
2 PMAC卡的設置
2.1 PMAC卡簡介
PMAC運動控制卡是Delta-Tau公司推出的,它是可通過多種方式與微機接口的系列控制卡。該例使用的是PCI接口控制卡:PMAC-PC。[!--empirenews.page--]
PMAC本質上是一個基于DSP芯片的多功能板上系統(tǒng)。該例的PMAC有2個主接口,每個主接口可以同時控制4臺電機的運動。對于每一臺電機,主接口都有一組相應的引腳(如圖2所示)。分別負責光柵尺信號輸入,電機控制輸出和標志信號輸入。在該例中主接口通過跳線設置為光電隔離模式。
除主接口外,PMAC還有一系列通用的模擬、數(shù)字輸入/輸出口。這些端口與其DSP內存統(tǒng)一編址,可通過統(tǒng)一的方式存取。PMAC地址空間的功能是預設固定的,如某一部分地址保存的數(shù)據(jù)代表某臺電機的設置,另一部分則是用戶應用所保存的數(shù)據(jù)。為方便上位機對PMAC內存的操作和應用程序的編寫,其內存被按其功能劃分為各種變量,如I變量、M變量、P變量。I變量的值設置了PMAC卡的工作環(huán)境,這又使I變量可被劃分為許多種類型,如電機設置I變量、通信設置I變量、編碼器I變量、P變量(供用戶程序使用的全局變量、M變量(指針變量),即其本身所代表的內存地址存儲的是另一個存儲單元的地址)。M變量可根據(jù)需要指向任意存儲位置,包括內存和端口寄存器。不過在PMAC上電時,部分M變量會被預先初始化為指向特殊位置的值,如M203的缺省值指向2號編碼器的位置捕獲寄存器。
2.2 位置捕獲功能的設置
位置捕獲功能是指在一個外部事件進入某一寄存器時,鎖存相應的當前編碼器位置。這是一個完全由與編碼器相關的硬件電路來完成的任務,所以它惟一的延遲就是硬件門的延遲,這使它具有非常高的位置捕捉精度。
電路的工作方式可通過軟件選擇,如可設置讀入外部事件的位置。設置是通過相關編碼器I變量完成的。每一個編碼器都可通過5個I變量來設置,位置捕獲功能相關的變量為編碼器I變量2和編碼器I變量3。變量3設置事件捕捉的位置,如可將其設為通過HOME標志捕捉。變量2設置外部事件的捕捉方式,如是上跳沿還是下跳沿。PMAC共可設置16個編碼器,每個編碼器的I變量是按順序5個一組編排的,依次為I900~I979。對于編碼器2(編號從1開始),若將其設置為捕捉HOME標志的上跳沿信號進行位置捕捉,則可通過向PMAC發(fā)送命令“I907=2”和“I908=0”來實現(xiàn)。每一個編碼器都對應于一組寄存器,通過這些寄存器可設置編碼器的工作方式,如前面對編碼器I變量的設置,實際就是向這些寄存器的某些位寫入某些值。通過這些寄存器也可讀取編碼器信息,如當編碼器完成一次位置捕捉后,被鎖存的位置就保存在這些寄存器中,對于編碼器2,該寄存器的位置為X:MYMC007的所有24位。編碼器還根據(jù)位置捕捉的情況自動設置某些標志位,即當完成一次捕捉時將標志置1。此時,無論外部信號有什么變化都不會再進行捕捉,當捕捉結果被取走時(即對相應寄存器有讀操作),編碼器自動將標志置0,并重新開始響應外部事件進行新的位置捕捉。對于編碼器2,該標志位的位置為X:MYMC004的第17位(從0開始,共24 位)。
2.3 PLC程序的設置
PMAC是一個多任務的計算機應用系統(tǒng)。它除了能通過各種設置和運動程序完成高精度的定位和對復雜運動的控制任務外,還可分時執(zhí)行多類其他任務,并根據(jù)任務的實時性要求,分配任務的優(yōu)先級,高優(yōu)先級的任務會打斷低優(yōu)先級的任務。PLC程序是PMAC所支持的用戶程序之一,在任務優(yōu)先級上處于最末的后臺處理級。它可在用戶的主機上編寫,之后下載到PMAC上執(zhí)行。與PMAC支持的另一種優(yōu)先級較高的用戶程序——運動程序相比。 PLC程序沒有運動語句,其在功能上與可編程邏輯控制器非常類似。
在該應用中,PLC程序的任務是判斷是否發(fā)生位置捕獲,如發(fā)生,則將其讀人數(shù)組中,并對捕獲的位置進行計數(shù)。之所以要將值讀入數(shù)組中,是因為由于激光掃過被測物邊緣時會由于邊緣的反射產(chǎn)生抖動,以致采集到的數(shù)據(jù)多于1個,為防止后面的數(shù)據(jù)沖掉前面的數(shù)據(jù),故將掃過一個邊緣產(chǎn)生的數(shù)據(jù)放入數(shù)組中。
可用的PLC程序如下:
在程序中m203指向編碼器2的位置捕捉寄存器;m217指向編碼器2的位置捕捉狀態(tài)標志位;m33指向P變量220,這是數(shù)組第一個元素的位置;m34指向m33的低12位,這樣就可操作m33,使其在讀人捕捉位置后指向下一個P變量。
3 測量系統(tǒng)特性初探
為研究系統(tǒng)的測量性能,以20 mm標準量塊為被測物,在上述系統(tǒng)上進行了一系列測量實驗。實驗結果通過上位機用Vc++編寫的程序進行采集、存儲和分析。與PMAC的通信是利用 Delta-tau公司提供的動態(tài)連接庫PComm32.dll完成的。由于C++語言對數(shù)值計算和圖表輸出的支持較少,程序采用與Matlab混合編程的方式來完成分析工作,即采用了調用Mat-lab COM服務器的方式,實現(xiàn)對Matlab函數(shù)的調用。這一編程方式也可在其他語言中實現(xiàn)。
在測量過程中,被測物的兩個邊沿都以兩種方式被定位,即從亮到暗和從暗到亮,且每次實驗的樣本數(shù)都不少于300。也就是說,每次的實驗結果均包含4個數(shù)據(jù)組,分別記作Q_L(代表前邊沿,從亮到暗),Q_A(代表前邊沿,從暗到亮),H_L(代表后邊沿,從亮到暗),H_A(代表后邊沿,從暗到亮),且每組數(shù)據(jù)的個數(shù)不少于300。由于測量系統(tǒng)本質上是通過對邊緣的定位來進一步完成尺寸測量的,所以在以下分析中僅就邊緣定位的系統(tǒng)特性作一簡要說明。
圖3為1次實驗的結果,該實驗所用光柵尺的每一計數(shù)代表0.1 μm。
圖3所示數(shù)據(jù)的數(shù)字特征如表1所示。[!--empirenews.page--] |
從圖3可見,前邊沿測量數(shù)據(jù)與時間呈明顯的線性關系,這一特點在其他實驗中也有明顯的體現(xiàn)。依據(jù)變值系統(tǒng)誤差的判別方法可知,這一特性可看作是一種變值系統(tǒng)的誤差。變值系統(tǒng)誤差的消除有多種方式,這里采取的思路是首先通過大量實驗找到一定的經(jīng)驗函數(shù),以刻畫這種誤差,之后則可依據(jù)這個函數(shù)通過補償?shù)霓k法消除誤差,從而提高系統(tǒng)精度。表1最后一行括號內的數(shù)字就是通過測量序列中一元回歸分析,剔除時間影響后得出的值。值得注意的是,測量數(shù)據(jù)和時間的這種相關性并不是十分穩(wěn)定,它受到其他實驗環(huán)境因素的影響,即適用于某個系統(tǒng)的補償函數(shù)。通常當系統(tǒng)參數(shù)變化時,補償函數(shù)就不再適用了。要在實際測量中通過這種方法提高精度,需要針對具體的情況通過實驗完成。另外,可以看出,對同一邊的兩組數(shù)據(jù),標準差有一定差異,這在其他實驗數(shù)據(jù)組中也是普遍現(xiàn)象,可以考慮采用精度較高的數(shù)據(jù)組來計算尺寸值,即用H_L和Q_A來計算。 4 結 語 |