5 基于B/S模式的數控機床網絡測控系統軟件設計 5.1下位測控機的數據采集、顯示及存儲回放軟件設計 下位機測控服務器系統軟件包括接口儀器驅動軟件和應用軟件兩部分。其中,接口儀器驅動程序是完成對某一特定儀器的控制與通信的軟件程序集合,是連接上層易用軟件和底層軟件的紐帶和橋梁。每個儀器模塊都有自己的軟件驅動程序,儀器廠商將其以源碼的形式提供給用戶,用戶在應用程序中調用儀器驅動程序。應用程序包含兩方面的程序:實現虛擬面板功能的前面板軟件程序和定義測試功能的流程圖軟件程序。它主要功能是給用戶提供操作儀器、顯示數據的人機接口;實現數據的采集、分析處理、顯示、存儲等;并將需要在客戶端顯示的數據發送到Web服務器,同時從Web服務器接收來自遠程客戶端的控制命令。 5.1.1數控機床測控軟件的結構化設計 本文中數控機床數據采集系統的軟件基本結構包括數據采集、數據處理、存儲回放及用戶界面等幾部分。測控軟件設計時可以采用面向對象的設計分析方法,通過仔細地規劃和設計,使程序結構清晰,便于維護、修改、增加。軟件程序結構圖如圖5.1所示。 結構化的程序主要包含以下功能模塊(結構圖見上圖5.1所示): ①A/D通道校準模塊 采集之前對采集通道校準以保證A/D通道的準確度。 ②電流采集模塊 電流采集模塊采用AD轉換器的數據采集卡,試驗中采集數控機床的消耗電流。 RRBDP軟件對采集到的數據進行各種形式的濾波,曲線擬合、平滑等處理。 ③傳感器校準模塊 對電流傳感器做標定以確保傳感器輸出信號盡可能接近真實值。 ④激光干涉儀數據模塊 通過USB接口通訊,獲取干涉儀采集的長度并經過分析后送往其它模塊。 ⑤攝像頭數據采集及顯示模塊 該模塊負責完成視頻采集顯示和分析數控機床運動情況。 ⑥測試數據分析模塊 對測試數據進行分析、匹配,建立數學模型并送往曲線顯示模塊。 ⑦實時曲線顯示模塊 實時顯示消耗電流、定位精度以及坐標的關系曲線,采用具有很好的視覺效果的LabVIEW中的XY圖來繪制曲線控件驅動。波形直觀、精細、易于觀察。 ⑧波形分析模塊 對關系曲線(即波形)依據需要研究的分項進行分析,將分析結果及波形做為輸出數據以特定文件格式存儲起來。 ⑨測試日志記錄配置模塊 記錄試驗數控機床的信息、試驗次數、試驗日期、試驗人員以及輸出數據文件目錄。 ⑩歷史曲線回放模塊及歷史數據 導出模塊載入以前試驗后生成的數據和波形文件并回放出來,確保以前的試驗結果可追溯。 5.1.2數據顯示與存儲回放程序的設計 本章數據顯示與存儲回放程序設計所需的基礎知識包括:數控編程、數控機床操作、電路基礎、VC++、C++、Web Service、LabVIEW和測試儀器等。基于以上程序開發結構和基礎,設計的各功能模塊顯示界面如下圖5.2所示: 圖5.2是LabVIEW數據實時采集顯示界面,軟件的操作過程說明如下: (1)AD通道校準是指對采集板卡的計量校準,如果測得模擬量沒有在精度要求范圍內,軟件有自己校準功能。 (2)參數設置界面是按照用戶的要求來配置一些參數,比如說位移的起始點、終止點、步長等參數。 (3)測試界面如上圖5.2所示,也是軟件的主界面,但選擇好測試方式后,(硬件部分連接好的情況下)就開始了實時采集與顯示。對于采集的數據,測試完畢后,點擊保存可以保存到Excel表中,也可以保存成特定格式的數據,在將此數據倒到分析軟件中,進行無償的分析,從而可以進行相應的補償。但是對于工廠中大量的測試數據數據庫是首先存儲方式。可以利用LabSQL方式向數據庫數據表添加記錄,假設數據表為位移Displacement表。具體步驟如下: ①建立與數據庫的連接。首先通過ADO Connection Create.vi創建一個Connection對象,然后利用ADO Connection Open.vi建立與數據庫的連接。數據庫由ADO Connection Open.vi的ConnectionString指定,此參數由前面板的字符串控件提供,如下圖5.3所示。 ②生成SQL命令,執行命令。在前面板table控件中輸入表名,Current和Error控件中輸入字段值。在程序框圖中使用Format Into String生成SQL命令,將它連接到ADO Connection Execute.vi即可執行,同時可在前面板Command Text控件顯示此命令。 ③斷開與數據庫之間的連接。利用ADO Connection Close.vi關閉Connection對象,并使用ADO Connection Destroy.vi刪除Connection對象。 (4)歷史數據回放界面,可以根據用戶需要,按照測試的日期時間打開所需要回放查詢的文件。數據回放界面繪制出的相應歷史曲線如圖5.4所示。 在實時與歷史曲線顯示部分,趨勢曲線能夠形象清楚地描繪出現場數據在一段時間內的分布趨勢,通過趨勢圖,操作員可以根據各個現場數據采集點的數據的變化趨勢看出各個量的變化情況,且能查看任何歷史時刻的數據,供現場操作人員作出適當的處理。 5.1.3數據記錄監控模塊DSC的應用 (1)測控系統在上述功能的實現過程中,遇到了三個實際工程問題: ①監控界面中現場數據顯示的速度慢,最慢達到5秒的延遲,很顯然這不符合工業現場過程控制實時性的要求。 ②由于LabVIEW軟件本身不像FIX工控軟件一樣,帶有實時數據庫。當系統比較小時,即在控制點數少的情況下,實現監控功能可以利用全局變量的概念,將監視或控制的現場測量點都看作是全局變量,暫且稱它們為“全局變量庫”。然后把LabVIEW實現的各個功能看作是一個子程序,每一個子程序都是從全局變量庫中取數據或向里寫數據。也就是將這個“全局變量庫”看作是一個實時數據庫,現場每一個測量點都與庫中的參數一一對應。這種方法在控制點數少的情況下還是可行的,但是,當系統是大中型的情況即現場控制點數很多的時候,在實踐中發現,使用全局變量的方法,不僅編程量大,而且數據查找起來沒有數據庫查找起來方便快捷,另外,全局變量一直是編程人員所盡量避免使用的方法。 ③由于在實際的過程控制監視中,要求各個界面之間來回的切換,實現界面的友好操作性。FIX監控軟件通過編程有調用各個界面的函數,可以方便的實現界面之間的切換。然而,在用LabvEIW實現界面之間切換的過程中,將上述的“全局變量庫”作在“數據總攬”的界面里,其它各個子程序(界面),例如,“實時和歷史曲線”、“歷史數據”、各個流程圖等,都是和它進行數據交換。所以“數據總攬”子程序起著實時數據庫的作用,它在系統運行的過程中不能被關閉,本課題是利用VI Sevrer技術使得“數據總攬”子程序在系統己開運行時就以最小化的形式開始運行,保證數據的實時性。但是,考慮到“歷史數據”和“歷史曲線”兩個子程序由于需要存取歷史數據的原因,而在系統運行的過程中不能被關閉,所以也將它們始終處于最小化的狀態運行。按照上述的做法,發現在系統運行過程中,各個界面之間切換起來速度較慢,這不能充分滿足現場過程控制的實時性和可靠性的要求。 (2)基于DSC模塊的問題解決方法 第一個問題,數據讀和寫的速度有明顯的差別。利用Datasocket技術編程實現數據的讀和寫,寫數據的速度卻很快。所以可能是編程中出現的數據緩沖或者程序中等待事件的發生執行效率低的原因,決定數據顯示部分通過在前面板直接用Datasocket連接OPC服務器。結果數據顯示速度明顯達到幾百毫秒,滿足了實時要求。而且這種方法開發時間短,效率高。 用LabVEIW能夠初步實現數據采集、顯示和存儲等功能的前提下,考慮到NI公司推出的LabVIEW一附加模塊——數據記錄監控模塊DSC(Datalogging and Superviosry Control Module),此模塊是專為過程控制而設計開發的,是專用于輕松設計和維護分布式監控系統的理想軟件工具。利用這個模塊可以很方便地完成與設備的連接,包括LabVEIW實時目標模塊和OPC設備。從系統概覽到節點執行,該模塊提供了內置式的開發工具,來成功記錄數據、警報和事件;顯示生產數據隨時間變化的趨勢;同時還可通過網絡數據庫,利用SQL/ODBC標準查詢從中提取數據。該模塊的應用增強了搜索和提取數據的靈活性,提高了數據記錄的可靠性和保護能力 。 相比其它附加模塊,DSC模塊有以下六個特點:內置的網絡開發工具;用于實現數據共享和與第三方設備結合;應用的安全性設置;針對分布式監控的開發工具;用于分布式數據記錄的網絡數據庫;實時和歷史趨勢曲線。 (3)“LabVEIW+DSC”相結合運用“LabVEIW+DSC”相結合,軟件體系結構圖如圖5.5所示。 為提高系統的開放性,選用了“LabVIEW+OPC”的設計方法。就是用LabVIEW作為上位機監控軟件,采用先進的網絡通信技術——DataSocket技術,通過OPC服務器接口來實現現場數據共享。這里采用的OPC服務器是Matrikon公司研發的,它作為一中間橋梁,實現了監控軟件LabVIEW和現場智能組件之間的數據通信,通過OPC配置項建立與底層設備的數據采集點的一一對應關系。如下圖5.6所示: 圖5.6是OPC服務器的配置,其中項名Name是用戶自己定義的對應于現場的數據采集點,Item Path必須符合OPC服務器與MODBUS協議的語法要求,即“[port].Device. 0~4:”,同時設置該項是讀數據還是寫數據以及數據的類型、更新時間等等 。 LabVIEW訪問OPC的方法有很多種,本文采用的是通過DSC模塊中Tag Configuration Editor引擎,建立LabVIEW和OPC服務器的連接。DSC模塊使用Tag連接OPC數據項,通過Tag Configuration Editor,可以將DSC的Tag與OPC數據項對應起來,生成.scf文件,相當于LabVIEW的實時數據庫,如圖5.7所示。 |