楊家榮
(上海電氣集團股份有限公司中央研究院,上海 200070)
直線度誤差是指直線上各點跳動或偏離此直線的程度,它是機械精度的一項重要指標,與尺寸精度、圓度和粗糙度統稱為影響產品質量的4 大要素,同時也是其它形位誤差如平面度、平行度的基礎。機床、儀器導軌或其它窄而長的平面,為了控制其直線度誤差,常在給定平面(垂直平面、水平平面)內進行檢測。直線度誤差的測量方法有很多,傳統的方法主要是采用直尺、檢測平臺等一系列工具進行測量,選用適當的方法獲得測量數據后,需進行數據處理,才能得到所測對象的直線度誤差。這種手工計算可以獲得相對精確的結果,但效率低,尤其在測點較多的情況下,嚴重制約了測量的效率。因此,開發和研究能夠自動測量和誤差評定的直線度誤差測量軟件具有十分重要的意義。本文利用Visual Basic(VB)軟件開發了一套直線度誤差測量系統,系統會自動根據采集到的數據,快速高效地進行分析,并判斷產品是否合格,給出相應的測量結果提示,并將合格數據記錄到數據庫中,便于產品的追溯,大大提高了測量的效率和準確度。
直線度誤差的評定方法很多,根據定義:在一個理想幾何形狀的平面上,當被測線每個點采到的數值相對理想基準直線的變動量小于等于指定的公差值時,被測線的直線度是恰當的。為了使理想基準直線到實際被測曲線的距離是最小的可能值,應該正確定位理想基準直線。因此直線度誤差就是計算實際測量曲線直線度時兩條平行線的最小距離。確定最小距離必須確定參考直線,確定參考直線的方法就是評價直線度的方法。一般而言,常用的數據處理方法有兩端點連線法、最小二乘法和最小區域法3 種[1]。
兩端點連線法:以測得的誤差曲線首尾兩點的連線作為理想要素,作平行于該連線的兩平行直線將被測要素包容,兩平行直線間的縱坐標距離即為直線度誤差。這種方法較簡單,但是精度較低。
最小二乘法:以各采樣點偏差值的最小二乘直線為評定基線,求得基線兩側的最遠點到基線的縱坐標距離,這兩者的絕對值之和為被測件的直線度誤差。由于其理論成熟,算法簡便,在包括直線度誤差在內的形位誤差評定中得到了廣泛的應用。
最小區域法:其判別準則是,對于給定平面內的直線度誤差,滿足最小包容區域的兩平行線應符合“相間準則”,即兩平行直線包容被測誤差折線時成“高—低—高”或“低—高—低”相間的三極點接觸,兩包容線間的距離即為符合最小條件的直線度誤差值[2]。此方法精度最高,一般評定結果小于或等于其它兩種方法。
本系統考慮到實際應用的綜合性,內置了最小二乘法和最小區域法兩種評定標準,實際應用中,可根據需要進行選擇切換。
本系統主要由:實時數據采集模塊、顯示模塊、參數設置模塊、誤差評定模塊、數據存儲模塊以及故障檢測模塊組成。各功能模塊分別完成以下主要任務:
實時數據采集模塊:主要通過與下位PLC 之間約定的協議,進行交互通信,控制PLC 執行數據采集任務,將不同位置點處采集到的傳感器數據讀取到PLC中。在完成1 個周期的動作后,發送指令給PLC,進行下一輪的采集。
顯示模塊:將采集到的水平面和垂直面數據信息,在界面上進行顯示,同時顯示系統的運行狀態、進度、檢測結果等信息。
參數設置模塊:設置產品信息,如批次、編號、班次、型號等,以及精度要求等參數。
誤差評定模塊:從PLC 的數據存儲區中分別讀取采集到的水平面和垂直面數據信息,并根據所設定的評定方法進行判斷是否合格。
數據存儲模塊:將檢測到的合格產品及不合格產品的采集到的數據寫入到數據庫中,便于隨時查詢及分析原因,同時對所檢測產品可在今后實施追溯。
故障檢測模塊:與PLC 通訊,對PLC 中檢測到的設備故障在軟件系統中進行顯示,輔助設備操作人員快速定位和排除系統故障。
VB 中提供了可與設備串口實現通訊的MSComm控件,從而實現與PLC 的通訊。在Visual Basic 所設計的工程中,單擊“工程”-“部件”菜單,選擇Microsoft Comm Control6.0,將其添加到所創建的工程中。
MSComm 控件有兩種通信方式,查詢方式和事件驅動方式。當采用事件驅動方式時,當有數據到達端口或者端口的狀態發生改變時,都將觸發MSComm 控件的OnComm 事件,這是處理串行端口交互作用的一種有效方法,可以捕獲和處理這些通信事件,通過查詢CommEvent 屬性值,可以獲得關于通信事件的完整信息。而采用查詢法時,則是查詢MSComm 控件的某些屬性,如CommEvent 屬性、InBufferCount 屬性的值等[3-4]。系統與下位PLC 之間的通信連接采用Host Link 協議,在一次交換中傳輸的命令或應答的數據被稱為一幀,一幀最多可包含131 個數據字符,最后以校驗碼及結束符結束。數據傳送時的流程如圖1 所示。

命令可參考具體的PLC 的編程手冊[5],其基本格式如下:
測量軟件發給PLC 的命令格式:

其中:起始符為@;節點為指定與測量軟件通訊的PLC;命令碼為兩個字節的命令碼,即指定讀或寫;正文為設置的命令參數;檢驗碼為@開始到正文結束的所有字符的ASCII 碼按位異或運算的結果;終止符表示命令的結束。
當PLC 收到測量軟件發送的命令后,將做如下應答:

其中,結束碼表示命令結束狀態,如:00 表示正常完成;其余代碼與發送命令格式意義相同。
系統的開發使用Visual Basic6.0,并使用Access 2007 作為數據庫存儲采樣點的數據及相關產品信息。系統內置了最小二乘法和最小區域法兩種評定標準,可根據需要在界面上通過單擊進行選擇切換,完成相關檢測參數如規格、型號、班次等信息的設置后,單擊開始檢測,系統即可讀取檢測數據,將讀取到的數據采用圖形化顯示,同時,利用內置的直線度誤差評定算法,對該零件的直線度誤差進行評定,合格數據自動記錄到ACCESS 數據庫中,便于產品的追溯和打印質檢報告,若產品不合格,則發送相應的信號給PLC,由PLC 控制執行機構,將不合格產品輸送到指定的位置,進行下一步的處理。在開發過程中,程序采用了模塊化設計的思想,將上述各功能模塊的功能在子程序中實現,運行過程中通過主程序調用各功能模塊子程序。系統軟件的流程如圖2 所示。表1 所示為以一長約2.4 m 導軌為測試對象,測試間隔為200 mm,使用本測量程序檢測出直線度誤差,并判斷是否合格。系統實際執行如圖3 所示。

本課題所開發的直線度誤差測量軟件,界面友好,可準確地測量和評定零件的直線度,不但可以作為零件驗收是否合格的依據、并提供質檢報表,同時也可以對長期積累的誤差數據進行分析,找出誤差產生的原因,為提高零件加工精度和裝配精度提供可靠的依據。用普通測量器具進行直線度的測量,不但處理復雜,效率低,而且容易出錯,不易得到精確的結果。通過本課題開發的自動測量軟件,給測量工作帶來了極大的便利,配合相應的執行系統,可實現檢測、分揀系統的全自動化,為企業帶來大量的效益。

表1 2.4 m 長導軌各點測試數據 mm

[1]王文龍.電梯導軌直線度自動檢測系統的實現與性能優化[D].南京:南京理工大學,2010.
[2]王慧.計算機視覺技術在影像測量系統中的應用與研究[D].西安:西安理工大學,2008.
[3]張智杰,何芳,王玉茹.PLC 與微機的串行通訊[J].濟南大學學報:自然科學版,2002,16(3):302 -303.
[4]周海濤.用VB6.0 實現三菱PLC 與微機的通訊[J].制造業自動化,2002,24(1):53 -55.
[5]OMRON CPM1/CPM1A/CPM2A/CPM2AH/CPM2C/SRM1(-V2)可編程控制器編程手冊[Z].2003