基于PMAC的激光掃描尺寸測(cè)量系統(tǒng)
除主接口外,PMAC還有一系列通用的模擬、數(shù)字輸入/輸出口。這些端口與其DSP內(nèi)存統(tǒng)一編址,可通過統(tǒng)一的方式存取。PMAC地址空間的功能是預(yù)設(shè)固定的,如某一部分地址保存的數(shù)據(jù)代表某臺(tái)電機(jī)的設(shè)置,另一部分則是用戶應(yīng)用所保存的數(shù)據(jù)。為方便上位機(jī)對(duì)PMAC內(nèi)存的操作和應(yīng)用程序的編寫,其內(nèi)存被按其功能劃分為各種變量,如I變量、M變量、P變量。I變量的值設(shè)置了PMAC卡的工作環(huán)境,這又使I變量可被劃分為許多種類型,如電機(jī)設(shè)置I變量、通信設(shè)置I變量、編碼器I變量、P變量(供用戶程序使用的全局變量、M變量(指針變量),即其本身所代表的內(nèi)存地址存儲(chǔ)的是另一個(gè)存儲(chǔ)單元的地址)。M變量可根據(jù)需要指向任意存儲(chǔ)位置,包括內(nèi)存和端口寄存器。不過在PMAC上電時(shí),部分M變量會(huì)被預(yù)先初始化為指向特殊位置的值,如M203的缺省值指向2號(hào)編碼器的位置捕獲寄存器。
2.2 位置捕獲功能的設(shè)置
位置捕獲功能是指在一個(gè)外部事件進(jìn)入某一寄存器時(shí),鎖存相應(yīng)的當(dāng)前編碼器位置。這是一個(gè)完全由與編碼器相關(guān)的硬件電路來完成的任務(wù),所以它惟一的延遲就是硬件門的延遲,這使它具有非常高的位置捕捉精度。
電路的工作方式可通過軟件選擇,如可設(shè)置讀入外部事件的位置。設(shè)置是通過相關(guān)編碼器I變量完成的。每一個(gè)編碼器都可通過5個(gè)I變量來設(shè)置,位置捕獲功能相關(guān)的變量為編碼器I變量2和編碼器I變量3。變量3設(shè)置事件捕捉的位置,如可將其設(shè)為通過HOME標(biāo)志捕捉。變量2設(shè)置外部事件的捕捉方式,如是上跳沿還是下跳沿。PMAC共可設(shè)置16個(gè)編碼器,每個(gè)編碼器的I變量是按順序5個(gè)一組編排的,依次為I900~I(xiàn)979。對(duì)于編碼器2(編號(hào)從1開始),若將其設(shè)置為捕捉HOME標(biāo)志的上跳沿信號(hào)進(jìn)行位置捕捉,則可通過向PMAC發(fā)送命令“I907=2”和“I908=0”來實(shí)現(xiàn)。每一個(gè)編碼器都對(duì)應(yīng)于一組寄存器,通過這些寄存器可設(shè)置編碼器的工作方式,如前面對(duì)編碼器I變量的設(shè)置,實(shí)際就是向這些寄存器的某些位寫入某些值。通過這些寄存器也可讀取編碼器信息,如當(dāng)編碼器完成一次位置捕捉后,被鎖存的位置就保存在這些寄存器中,對(duì)于編碼器2,該寄存器的位置為X:MYMC007的所有24位。編碼器還根據(jù)位置捕捉的情況自動(dòng)設(shè)置某些標(biāo)志位,即當(dāng)完成一次捕捉時(shí)將標(biāo)志置1。此時(shí),無論外部信號(hào)有什么變化都不會(huì)再進(jìn)行捕捉,當(dāng)捕捉結(jié)果被取走時(shí)(即對(duì)相應(yīng)寄存器有讀操作),編碼器自動(dòng)將標(biāo)志置0,并重新開始響應(yīng)外部事件進(jìn)行新的位置捕捉。對(duì)于編碼器2,該標(biāo)志位的位置為X:MYMC004的第17位(從0開始,共24 位)。
2.3 PLC程序的設(shè)置
PMAC是一個(gè)多任務(wù)的計(jì)算機(jī)應(yīng)用系統(tǒng)。它除了能通過各種設(shè)置和運(yùn)動(dòng)程序完成高精度的定位和對(duì)復(fù)雜運(yùn)動(dòng)的控制任務(wù)外,還可分時(shí)執(zhí)行多類其他任務(wù),并根據(jù)任務(wù)的實(shí)時(shí)性要求,分配任務(wù)的優(yōu)先級(jí),高優(yōu)先級(jí)的任務(wù)會(huì)打斷低優(yōu)先級(jí)的任務(wù)。PLC程序是PMAC所支持的用戶程序之一,在任務(wù)優(yōu)先級(jí)上處于最末的后臺(tái)處理級(jí)。它可在用戶的主機(jī)上編寫,之后下載到PMAC上執(zhí)行。與PMAC支持的另一種優(yōu)先級(jí)較高的用戶程序——運(yùn)動(dòng)程序相比。 PLC程序沒有運(yùn)動(dòng)語句,其在功能上與可編程邏輯控制器非常類似。
在該應(yīng)用中,PLC程序的任務(wù)是判斷是否發(fā)生位置捕獲,如發(fā)生,則將其讀人數(shù)組中,并對(duì)捕獲的位置進(jìn)行計(jì)數(shù)。之所以要將值讀入數(shù)組中,是因?yàn)橛捎诩す鈷哌^被測(cè)物邊緣時(shí)會(huì)由于邊緣的反射產(chǎn)生抖動(dòng),以致采集到的數(shù)據(jù)多于1個(gè),為防止后面的數(shù)據(jù)沖掉前面的數(shù)據(jù),故將掃過一個(gè)邊緣產(chǎn)生的數(shù)據(jù)放入數(shù)組中。
可用的PLC程序如下:
在程序中m203指向編碼器2的位置捕捉寄存器;m217指向編碼器2的位置捕捉狀態(tài)標(biāo)志位;m33指向P變量220,這是數(shù)組第一個(gè)元素的位置;m34指向m33的低12位,這樣就可操作m33,使其在讀人捕捉位置后指向下一個(gè)P變量。
3 測(cè)量系統(tǒng)特性初探
為研究系統(tǒng)的測(cè)量性能,以20 mm標(biāo)準(zhǔn)量塊為被測(cè)物,在上述系統(tǒng)上進(jìn)行了一系列測(cè)量實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果通過上位機(jī)用Vc++編寫的程序進(jìn)行采集、存儲(chǔ)和分析。與PMAC的通信是利用 Delta-tau公司提供的動(dòng)態(tài)連接庫(kù)PComm32.dll完成的。由于C++語言對(duì)數(shù)值計(jì)算和圖表輸出的支持較少,程序采用與Matlab混合編程的方式來完成分析工作,即采用了調(diào)用Mat-lab COM服務(wù)器的方式,實(shí)現(xiàn)對(duì)Matlab函數(shù)的調(diào)用。這一編程方式也可在其他語言中實(shí)現(xiàn)。
在測(cè)量過程中,被測(cè)物的兩個(gè)邊沿都以兩種方式被定位,即從亮到暗和從暗到亮,且每次實(shí)驗(yàn)的樣本數(shù)都不少于300。也就是說,每次的實(shí)驗(yàn)結(jié)果均包含4個(gè)數(shù)據(jù)組,分別記作Q_L(代表前邊沿,從亮到暗),Q_A(代表前邊沿,從暗到亮),H_L(代表后邊沿,從亮到暗),H_A(代表后邊沿,從暗到亮),且每組數(shù)據(jù)的個(gè)數(shù)不少于300。由于測(cè)量系統(tǒng)本質(zhì)上是通過對(duì)邊緣的定位來進(jìn)一步完成尺寸測(cè)量的,所以在以下分析中僅就邊緣定位的系統(tǒng)特性作一簡(jiǎn)要說明。
圖3為1次實(shí)驗(yàn)的結(jié)果,該實(shí)驗(yàn)所用光柵尺的每一計(jì)數(shù)代表0.1 μm。
圖3所示數(shù)據(jù)的數(shù)字特征如表1所示。 |
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評(píng)論