朱 飛,洪榮晶,陳 捷,高學海,戴克芳
(1.南京工業大學 機械與動力工程學院,南京 210009;2.馬鞍山方圓回轉支承股份有限公司,安徽 馬鞍山 243052)
回轉支承是一種能夠承受聯合載荷的特大型滾動軸承,廣泛應用于工程機械、風力發電機、軌道車輛、航空航天等領域?;剞D支承一般造價昂貴,拆卸較困難,維修周期長、費用高,并且使用環境相對惡劣,因此對回轉支承的動、靜載性能和可靠性指標提出了較高的要求,如在風電機組中要求回轉支承的壽命在20年以上[1]。另一方面,對于回轉支承的可靠性設計,國內公司大多是建立自己的經驗公式,而對經驗公式的修正需要大量的試驗數據,因此建立回轉支承的試驗設備是目前國內回轉支承行業的需要。風電回轉支承試驗臺[2-3]包括機械、液壓、測試和控制等幾部分,其中測試和控制系統[4-5](以下簡稱測控系統)是試驗臺的核心。
試驗臺測控系統下位機采用S公司的s7-200和N公司的數據采集卡,上位機選用N公司的LabVIEW軟件,數據庫選用SQL Server。LabVIEW本身并不具備直接訪問數據庫功能,不能像VB,VC那樣非常方便地進行數據庫程序的開發與訪問,而需要采用其他輔助的方法。主要思路有2種[6-7]:(1)從底層的開發編程做起,如利用LabVIEW的ActiveX功能,調用Microsoft ADO控件,用SQL語言實現對數據庫的訪問;利用其他語言,如C++編寫DLL程序訪問數據庫,再利用LabVIEW所帶的DLL接口訪問該程序等。(2)利用已有的工具包訪問數據庫,如N公司的LabVIEW SQL Toolkit工具包、LabVIEW用戶開發的LabSQL工具包等。前者需要從底層進行程序開發,對相關語言有較深了解且開發量比較大,不利于項目進度;后者中的LabVIEW SQL Toolkit工具包比較昂貴,而LabSQL工具包是用戶自己開發的免費工具包,它將復雜的底層ADO及SQL操作封裝成一系列LabSQLVIs。在此利用LabSQL工具包內置功能的組合調用,依據各個試驗內容的不同要求,實現了對SQL Server數據庫的靈活訪問,滿足了試驗數據的查詢、修改、添加、刪除等功能要求。
圖1為試驗臺加載驅動系統部分機械結構,回轉支承固定于基礎上,由液壓馬達帶動回轉支承的動圈旋轉,采用液壓缸對回轉支承進行力和力矩的加載。控制液壓馬達的旋轉來控制回轉支承的轉動情況,控制液壓缸加載力來控制回轉支承的受力情況,通過改變液壓馬達的轉速和液壓缸加載力的大小模擬回轉支承在不同應用場合不同工況下的實際受載情況。

圖1 試驗臺加載驅動系統部分機械結構簡圖
如在風電機組的偏航和變槳系統中,回轉支承需要根據不同的風載情況及時調整其狀態。偏航軸承同時承受機組質量產生的軸向力和風載產生的徑向力、傾覆力矩,在風向發生變化時需完成啟動、停止及換向等動作;變槳軸承在葉輪旋轉的一個周期內受力情況為一個正弦信號,在風速發生變化時需通過變槳軸承來調整氣流對葉片的攻角;當風載突然增大時偏航和變槳軸承還可能受到沖擊。因此,需要綜合考慮具體應用場合中的實際工況,模擬其運轉與受載情況。
如圖2所示,LabVIEW與s7-200之間通過自由口通信實現數據的交換,在LabVIEW中利用LabSQL 工具包內置功能的組合調用實現對SQL Server的訪問。SQL Server支持數據的局域網及遠程訪問,試驗數據可在企業的ERP系統中進行統一管理。

圖2 測控系統總體框架
上位機利用LabVIEW進行功能組態,以結構化和模塊化為思想進行設計,包括試驗參數及控制模塊、過程數據監測模塊、數據管理模塊和報表生成模塊,如圖3所示。其中,在手動操作情況下,“試驗參數及控制”界面及“當前數據存儲”按鈕為灰(不可操作),其他功能正常使用;在PC控制情況下,所有控制和監測功能均可操作。各個模塊間相互聯系,在某一個試驗項目運行時共同完成以下幾個主要功能:
(1) 試驗項目運行參數的輸入;
(2) 加載力和液壓馬達轉速的在線監測;
(3) 試驗狀態的監測及系統出現報警、急停等狀態的監測;
(4) 定時記錄各種重要的運行參數,生成各種數據報表,并自動保存于數據庫中;
(5) 實時記錄系統的報警、急停信息,生成報警、急停事件,并自動保存于數據庫中。

圖3 上位機程序總體框架
試驗項目運行參數的輸入界面如圖4所示,而數據庫管理模塊用于將試驗過程中的各種數據及試驗參數等存儲于數據庫SQL Server中,同時可進行歷史數據的查詢等。

圖4 試驗參數輸入主界面
在試驗臺測控系統中,采用數據庫技術可以使數據保存得更加完整、安全,更符合通用型、開放性標準。本試驗臺測控系統數據庫由測控設備總表、控制元件分表、控制定義分表、控制數據分表、測試位置分表、測試數據分表、測試報警分表等組成,它們通過關鍵字段聯系構成層次型關系數據庫,如圖5所示。

圖5 數據庫總分表關系圖
在LabVIEW中進行查詢、添加、刪除試驗數據的程序設計都是基于所建立的數據庫,因而需要先在SQL Server中建立“試驗臺測控系統”數據庫,同時在其根目錄下建立測控設備總表和各個分表。另外,若要使LabVIEW程序運行時能訪問SQL數據庫,還需要建立一個SQL數據源。建立數據源主要有3種方法[9]:使用ODBC設定數據源;使用通用數據連接UDL文件方式連接數據源;以字符串形式輸入連接信息。其中,使用ODBC設定數據源不需精通SQL語言,易于實現,故采用此方法設定SQL數據源。
2.2.1 數據庫的建立
回轉支承各項試驗的試驗數據即存儲于試驗臺測控系統數據庫,其建立路徑為:Microsoft SQL Server企業管理器控制臺根目錄Microsoft SQL ServerSQL Server組(local)(Windows NT)數據庫,在此目錄下建立數據庫名為“試驗臺測控系統”,在其用戶項目中新建用戶,登陸名為zf_01,SQL Server身份驗證密碼為zf_01,并關聯數據庫“試驗臺測控系統”。
2.2.2 表的建立
表可進行手動建立或在LabVIEW中調用應用程序自動建立,現采用在SQL Server中手動建立表的方法。在試驗臺測控系統數據庫的表目錄中分別新建測控設備總表和控制元件分表、控制定義分表、控制數據分表、測試位置分表、測試數據分表、測試報警分表等各表,并定義好各個用戶表的列名、數據類型和長度等信息。在試驗臺測控系統數據庫的關系圖目錄中新建關系圖測控系統,并如圖5所示設定各表的主鍵和外鍵及各表之間的層次關系。
2.2.3 ODBC數據源的建立
使用ODBC設定數據源,即利用ODBC驅動訪問SQL數據庫,首先要建立一個數據源名稱(DSN)來訪問相應的數據庫。建立DSN的方法有3種,即建立用戶數據源名稱(user dsn)、建立系統數據源名稱(system dsn)和建立文件數據源名稱(file dsn),本文選擇建立系統數據源名稱。
LabSQL是一個多數據庫、跨平臺的LabVIEW數據庫訪問工具包,支持Windows操作系統中任何基于ODBC的數據庫。按其功能的不同,基本VIs包括Command, Connection和Recordset 3個模板和可直接調用SQL頂層的3個子VIs (Top Level VIs)。Command模板中的子VIs完成一系列的基本ADO操作,如創建或刪除一個Command、對數據庫中的某一參數進行讀或寫等;Connection模板中的子VIs管理LabVIEW與數據庫之間的連接;Recordset模板中的子VIs用于對數據庫中的記錄進行操作,如創建或刪除一條記錄、對記錄中的某一條目進行讀或寫等;Top Level VIs即為對前3種VIs某些功能的封裝。
在LabVIEW中編程實現對SQL Server訪問的基本流程如圖6所示,包括建立與數據庫的連接、建立與記錄集的連接、對記錄集的各種操作、斷開與記錄集的連接、斷開與數據庫的連接。其中建立和斷開與數據庫的連接主要用Connection功能下的子功能VI命令實現,建立和斷開與記錄集的連接及對記錄集的各種操作主要用Recordset等功能下的子功能VI命令組合實現。

圖6 LabVIEW中訪問SQL Server基本流程
以測試數據分表扭矩值的查詢為例說明程序的實現方法,主要包括以下步驟:
(1) 建立與數據庫的連接。利用ADO Connection Creat.vi和ADO Connection Open.vi兩個子vi建立與數據庫的連接。圖7中,首先利用ADO Connection Creat.vi創建一個Connection對象,然后利用ADO Connection Open.vi建立與數據庫的連接,所連接由字符串“DSN=回轉支承試驗數據”指定(ODBC數據源建立時的數據源名稱)。

圖7 扭矩值查詢程序框圖
(2) 建立與記錄集的連接。利用ADO Recordset Creat.vi和ADO Recordset Open.vi建立與記錄集對象的連接。首先利用ADO Recordset Creat.vi創建一個Recordset對象,然后利用ADO Recordset Open.vi打開這個Recordset對象,同時利用SQL語句“select * from 測試數據分表”獲得數據庫測試數據分表中的扭矩值。
(3) 輸出查詢結果。SQL Fetch Data(GetString).vi的功能為執行SQL語句后所輸出的扭矩值結果,如圖8所示(后兩列分別為液壓馬達1扭矩值和液壓馬達2扭矩值)。
(4) 關閉與記錄集的連接。由ADO Recordset Close.vi子vi完成。
(5) 關閉與數據庫的連接。由ADO Connection Close.vi子vi完成。

圖8 扭矩值查詢結果
以上步驟即完成了在LabVIEW中查詢SQL Server數據庫測試數據分表中的扭矩值,其他操作如添加、修改、刪除等功能的實現方法與查詢數據類似,只需在ADO Connection Open.vi后連接ADO Recordset Addnew.vi,ADO Recordset Delete Record.vi等子vi即可實現相應功能。另外,也可利用Top Level VIs中的子vi: SQL Execute.vi和SQL語句直接調用SQL Server數據庫,圖9給出了利用此方法實現“修改報警閾值”、“添加報警閾值”和“刪除小扭矩信號”的程序框圖。



圖9 利用SQL Execute.vi和SQL語句直接調用SQL Server程序框圖
在LabVIEW中利用LabSQL工具包訪問SQL Server數據庫并應用于回轉支承試驗臺的測控系統中,不但實現了試驗數據的局域網共享,而且便于試驗數據的綜合管理,同時免費的LabSQL工具包加快了項目進度,節約了一定的軟件費用。