三維光柵位移測量系統的軟件設計與實現
2016-1-21 來源:桂林電子科技大學信息與通信學院 作者:李深德 張向利 唐甜 趙江輝
摘要:為了檢測機床刀具的三維位移、實時顯示刀具的進刀量,提高工件的加工精度,研究并設計了一種基于光柵位移傳感器的高精度三維光柵位移測量系統。分析了光柵位移傳感器的測量原理,詳細介紹了系統的軟件設計與實現,并對系統進行了實驗驗證。實驗結果表明:系統的軟件設計合理、執行高效,實現了相關的功能;測量系統運行穩定、測量精準,可滿足機床高精度測量的生產需求。
關鍵詞:位移傳感器;三維光柵;位移測量系統;軟件設計
0 引言
當前,光柵位移傳感器(光柵尺)的位移測量技術廣泛應用于數控機床的伺服系統和傳統機床的數字化改造,以提高加工精度。光柵位移測量系統的設計方案各不相同,其軟件設計及功能也各不相同。
文中先分析了光柵位移的測量原理,隨后給出三維光柵位移測量系統的設計構架,詳細介紹了系統軟件的功能及其設計與實現。最后,通過實驗驗證了系統的軟件設計合理、實現了相關的功能,整個系統運行穩定、測量精確。
1 光柵位移傳感器測量原理
光柵位移傳感器內包含了 1 個標尺光柵和 1 個指示光柵,在兩光柵的作用,得到明暗相間的條紋,即莫爾條紋。在理想條件下,莫爾條紋的波形為等腰三角波,其周期為莫爾條紋間距;實際情況下,由于光源發散角的影響,及光柵衍射作用等,使莫爾條紋的三角波出現削頂和削底,形成近似的正弦波。
對實際情況下的莫爾條紋信號,因其波形近似于正弦波,基波成分豐富,諧波成分很少。以 f(t)表示此正弦波的光通量,在消除信號中的高次諧波和直流分量后,則有:
f(t) = Asin(ωt + φ) (1)
寫成電壓形式, 得:
U(t) = Umsin(ωt + φ) (2)
式(2)即為光柵位移傳感器中 1 個光電元件輸出的位移信號表達式。
在相距為1/4 莫爾條紋間距的2 個點分別安放1 個光電元件,每當標尺光柵移動 1 個柵距,將獲得 1 個周期、相差 90°的 2路正弦信號,形如式(2)表示。此信號經過放大、整形后,輸出1 個周期、相差 90°的 2 路方波信號。通過記錄這 2 路方波脈沖的個數即可測量出位移的大小,利用其相位關系可檢測出標尺光柵的移動方向。
2 系統軟件設計與實現
系統使用的光柵尺是 KA300 - 470。當其正常工作時,將輸出 A、B 兩路相差 90°、TTL 電平的方波信號(標尺光柵正移,A 超前 B 90°;標尺光柵反移, B 超前 A 90°),如圖 1 所示。三維光柵位移測量系統的框圖如圖 2 所示。
該系統的硬件主要包括細分辨向電路、單片機主控單元、顯示控制單元。X、Y、Z3 個坐標軸的光柵位移信號通過對應的細分辨向電路后,分別輸入到 3 個單片機 X、Y、Z 進行處理,計算位移,并送顯示電路顯示。為了對系統進行必要的操控,設計了由單片機 X、Y、Z 共用的控制電路,它可以依次設定各坐標軸位移的初值等其它的操控。

單片機 M 和單片機 X、Y、Z 組成一個主從式單片機多機通信系統,M 為主機,X、Y、Z 為從機。主機 M 依次和 3 個從機進行通信,以提取各個坐標軸的位移值,再統一上傳到上位機,進行相關的處理。單片機的選型為 STC12C5A60S2,其具有雙串口。主機的串口 1 用于多機通信,串口 2 則與上位機通信。從機使用串口 1 與主機通信。
系統的軟件分為主機的軟件及從機的軟件。主機軟件主要包括主機初始化、主機的多機通信程序及主機和上位機的通信程序;從機軟件則有位移計算程序、顯示程序、控制程序及多機通信系統的從機程序等。軟件的開發環境為 Keil μVision4。
2.1 主機軟件設計與實現
主機功能主要是主機 M 依次和 3 個從機(X、Y、Z)通信,令從機將其采集到的位移上傳主機,主機再將其得到三維位移值上傳上位機。
2.1.1 主機的主程序設計與實現
主機主程序主要包括的模塊有主機初始化、主機的多機通信及主機與上位機的通信。主機主程序流程如圖 3 所示。主機初始化主要包括串口 1、串口 2 及看門狗定時器等初始化。串口 1 用于多機通信,工作在方式 3(9 位異步通信方式),使用定時器 T1 做為其波特率發生器,并設置 T1 工作在方式 2(8 位自動重載模式),使串口 1 的波特率為57600。串口 2則與上位機通信,工作在方式 1(8 位異步通信方式),使用獨立波特率發生器(BRT)做為其波特率發生器,使串口 2 的波特率同樣設為57 600。使用看門狗定時器是為了防止程序跑飛而導致系統異常,看門狗定時器設置預分頻值為 128,溢出時間約為2.3 s(系統頻率為22.118 4 MHz)。主機與上位機間的通信, 其實現較簡單。下一節詳細給出了主機的多機通信程序的設計與實現。

2.1.2 主機的多機通信程序設計與實現
在系統中,主機的多機通信程序工作的主要過程為:主機向通過從機地址呼叫從機,與呼叫地址相符的從機作出回應后,建立通信鏈接;主機向該從機發出接收數據指令(從機發送數據,主機接收),令從機把其檢測到的位移傳給主機;從機收到指令經確認后,進行發送數據。表 1 為自定義的主機通信指令碼。

主機 M 和從機 X、Y、Z 通信,設定其通信協議如下:
(1)主機和從機的接收或發送數據的緩沖區等長,均為 8字節。
(2)從機初始化使所有從機的 SM2 位置 1,讓其處于接收地址幀的狀態。開始通信時,主機通過從機地址呼叫從機。
(3)從機接到地址幀后,進入串行通信中斷服務程序,各從機將接收到的地址和本從機的地址比較,對于地址相符的從機,在其中斷服務程序中使 SM2 位清零,以接收主機隨后發來的任意信息(包括地址幀和數據幀);對于地址不符的從機,仍然保持 SM2 位為 1,使其對主機隨后發來的數據幀信息不予理睬(即直接丟棄),直到再次接收到地址幀而進行地址比較。
(4)若主機向從機發送數據,從機在前一步中比較地址相符后,從機的 SM2 位清零,同時把本從機的地址回傳給主機,作出應答后才能接收主機發來的數據。其它從機繼續監聽地址(SM2 =1),無法收到數據。
(5)主機收到從機的應答地址后,確認地址是否相符。如果地址不符,則發送復位指令(地址幀:0XFF);如果地址相符,主機發送相應的收發指令。
(6)主機或從機收發數據時,數據傳輸完成后,需發送一幀傳輸數據的校驗和,讓接收端根據校驗和檢驗所接收的數據是否正確。
(7)主機接收完數據后,將接收數據的校驗和與從機發來的校驗和比較,若接這兩個校驗和不符,回傳主機接收錯誤信息 0XFF,令從機重發數據;若校驗和相符,回傳主機接收正確信息 0X00,以完成數據傳輸,并令從機復位(重新等待地址幀)。
(8)從機接收完數據后,將接收數據的校驗和與主機發來的校驗和比較,若接這兩個校驗和不符,回傳從機接收錯誤信息 0XFF,令主機重發數據;若校驗和相符,回傳從機正確接收信息 0X00,以完成數據傳輸。
(9)若從機收到復位指令,則回到監聽地址狀態(SM2 =1),否則開始接收數據或指令。
根據自定義的指令和設定通信協議,實現了主機的多機通信程序功能。其程序流程如圖 4 所示。

2.2 從機軟件設計與實現
從機主要功能包括:對位移脈沖計數并計算出位移,再送顯示電路顯示;控制程序對控制電路輸入的信號進行編碼,根據編碼實現對從機的相應操控(設置位移初值、設置分辨率、公/英制單位選擇、半/直徑顯示選擇);當主機呼叫從機時,與被呼叫相應的從機作出響應,進入串行通信中斷程序,把檢測到的位移傳給主機。
2.2.1 從機的主程序設計與實現
從機的主程序模塊主要包括有從機初始化、位移計算程序、顯示程序、控制程序及從機的多機通信系統程序。系統 3個從機(X、Y、Z)的程序除了所設置的地址編碼不同外, 其余的都一樣。從機的主程序流程如圖 5 所示。

從機初始化程序中主要設置單片機的 2 個定時器(T0、T1)均處于計數模式;串口 1 工作于方式 3,獨立波特率發生器(BRT)做為其波特率發生器,波特率設為57 600,SM2 位置 1。顯示驅動芯片 ZLG7289B 初始化中,點亮所有數碼管,以檢測顯示是否正常。
位移計算程序中,所要顯示的位移等于采集到的位移與設定的位移初值(默認為零,可重設)之和,而采集到的位移值為:s = (t0- t1) × d (3)
式中:t0、 t1分別為定時器 T0、T1 對位移脈沖的計數值;d 為輸入到計數器的位移信號的脈沖當量(默認為 5m)。
顯示程序把計算得到的位移數據下載到 ZLG7289B 芯片,其對數據譯碼并驅動數碼管顯示。8 位數碼管的最高一位顯示符號,接下來的 7 位顯示位移值。
在鍵盤掃描時,若發現設置鍵按下,則進入設置模式。位移初值設置,可對位移初值進行設置,設置過程中,數碼管的其中一位閃爍顯示(開始時是最高位閃爍,提示最高位為當前輸入位),以提示當前為輸入位,當向該位輸入數值后,會自動跳到下一位等待輸入數值,可通過左移或右移鍵轉到要設置數值的一位。調整系統分辨率,可調整系統測量的分辨率以使其適用于不同分辨率的光柵尺,默認的分辨率為 5 μm,可調整為 1μm 或 0.5 μm.公/英制顯示選擇,可選擇位移以公制或英制為單位顯示,默認為公制顯示(mm)。半/直徑顯示選擇,可使顯示的位移在半徑和直徑之間切換,默認為半徑顯示(即位移正常,沒有倍乘二)。除初值設置外,其它三種設置都有相應的指示燈指示當前所處的狀態。
2.2.2 從機的多機通信程序設計與實現
多機通信的從機部分程序,其功能是響應主機呼叫并上傳位移。表 2 為自定義從機的信息編碼。

根據前文設定的通信協議以及從機的信息編碼,從機的多機通信程序設計流程如圖 6 所示。

3 實驗及結果
依據系統的硬件設計,制作并調試好系統樣板;根據系統的軟件設計,完成了程序的編寫、調試。最后,搭建好整個實驗系統進行實驗。上位機使用串口調試助手軟件接收下位機(主機 M)上傳的三維光柵位移數據,如圖 7 所示,表 3 給出了圖 7中接收到的數據。

實驗中只使用了一把光柵尺,將其接入到 X 坐標的輸入端進行實驗,故實驗數據只有 X 坐標的位移值,另外兩坐標的全是零。當光柵尺接入 Y 或 Z 坐標時,也可測得相應的位移。圖7(或表 3)中收到的 X 軸位移數據并沒有連續變化,這是因為下位機延時上傳的緣故,以緩解數據通信的壓力。實驗說明,該系統電路工作正常,軟件設計合理、執行高效,整個系統運行穩定、測量精確,實現了三維光柵位移的測量。
4 結束語
在與桂林機床股份有限公司合作的項目中,根據該公司的加工需要,完成了三維光柵位移檢測系統的設計。經實驗,系統的軟件設計合理、執行高效,整個系統運行穩定、測量準確。系統除了測量三維的位移外,還可以直接用于測量一維或二維的位移,也可對其進行一些改動, 做成專門用于一維或二維的測量系統。
光柵位移傳感器及其位移檢測系統在車床、磨床、銑床等各類機床上有著廣泛的應用,對提升我國裝備制造業水平有著極其重要的作用。
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com