http://www.kadhoai.com.cn 2026-04-08 01:28:07 來源:中國自動化學會專家谘詢工作委員會
摘要:為了推進實驗教學改革,充分利用有限的實驗設備,設計了一種基於Labwindows/CVI平台的控製係統網絡實驗室。在介紹網絡實驗室的框架結構和主要功能的基礎上,詳細闡述了三種關鍵技術。
引言
高校實驗室承擔著專業教學及實驗的主體工作。而大多數高校的資源有限,學生實驗教學隻能分批、fenshidijinxing,daozhixueshengdelilunzhishixuexiyushiyannenglipeiyangnanyitongbu。jianliwangluoshiyanshi,keyibushoushijianhekongjiandexianzhi,tashiduichuantongshiyanshidebuchong;同時,它也將成為未來實驗教學的重要途徑,具有重要的現實意義。
Labwindows/CVl是美國NI公gong司si開kai發fa的de麵mian向xiang計ji算suan機ji測ce控kong領ling域yu的de軟ruan件jian開kai發fa平ping台tai,它ta采cai用yong直zhi觀guan圖tu形xing用yong戶hu界jie麵mian設she計ji,利li用yong函han數shu麵mian板ban輸shu入ru函han數shu的de參can數shu,並bing采cai用yong事shi件jian驅qu動dong方fang式shi和he回hui調tiao函han數shu方fang式shi的de編bian程cheng技ji術shu,提ti高gao了le工gong程cheng設she計ji的de效xiao率lv和he可ke靠kao性xing。因yin此ci,本ben課ke題ti組zu開kai發fa了le基ji於yuLabWindows/CVI的控製係統網絡實驗室,設計了直流電機轉速、溫度控製等實驗。
一、係統架構設計
本係統采用C/S模式(並非傳統意義的“胖客戶端/瘦服務器”) ,針對高校實驗室的特點設計了一種服務器(實驗服務器)與客戶端一一對應為了推進實驗教學改革,充分利用有限的實驗設備,設計了一種基於Labwindows/CVI平台的控製係統網絡實驗室。在介紹網絡實驗室的框架結構和主要功能的基礎上,詳細闡述了三種關鍵技術,即Labwindows/CVI與Matlab的軟接口技術、TCP/IP與DataSocket相結合的混合通信技術以及利用Microsoft Access與SQL Toolkit建立網絡實驗室的數據庫管理係統的技術。實驗結果表明,三種技術構建了結構較為完整、技術較為先進的控製係統網絡實驗室,實現了網絡實驗室的高效、可靠和實時運行。的實驗係統。係統由客戶端、實驗服務器和總服務器三部分構成,其結構框圖如圖l所示。
圖l中:數字l為Datasocket技術,數字2為TCP/IP技術。
客戶端(學生宿舍)在終端安裝客戶端軟件即虛擬實驗平台的操作界麵,學生就可通過該界麵和Internet網絡遠程登陸到實驗服務器(學校的計算機控製實驗設備)進行仿真和實物實驗,並可與服務器(包括實驗服務器)進行師生對話、wenjianchuanshudeng。shiyanfuwuqizhuyaofuzejieshoukehuduanshiyancanshu,jinxingshiwuhuofangzhenshiyan,xiangkehuduanfankuishiyanjieguodenghuodong。zongfuwuqichulenengwanchengshiyanfuwuqidesuoyougongnengwai,haikejinxingshiyanshujukuguanli、實驗分配、確定客戶端與實驗服務器對應的IP登陸地址等功能。
要實現以上功能,基於Labwindows/CVI技術的控製係統網絡實驗室需要實現以下幾個關鍵技術。
二、關鍵技術的研究
2.1Labwindows/CVI與Matlab的軟接口
網絡仿真實驗是本係統的一個重要組成部分。Labwindows/CVI是一個優秀的虛擬儀器開發平台,但無法直接實現現代控製和信號處理的先進理論算法。Matlabshiyikuanyouxiudeshuxueyingyongruanjian,yongyoufengfudegongchengjisuanhanshukuhejiekou,keyifangbiandijichengdaoqitabianchengyuyanzhong,danqijiemiankaifanenglijiaocha,yingjiankongzhiheshujushurubijiaofansuo。
鑒於CVI與Matlab各自的優缺點,在開發過程中充分利用二者優勢:用CVI設計用戶圖形界麵、負責數據采集和網絡通信;在後台利用Matlab進行大型算法,提供數據供CVI調用,實現混合編程。
由於實驗者要將仿真參數傳送給Matlab,由Matlab進行係統仿真,並將輸出返回給實驗者,因此,實現Lahwindows/CVI和Matlab結合的關鍵是其數據和命令的交換,即軟接口技術。Labwindows/CVI與Matlab的軟接口是為了能在Labwindows/CVI環境下調用Matlab的功能函數,運行Matlab環境下的程序,實現CVI環境下的混合編程。為方便開發者實現CVI環境中與Matlab的混合編程,NI公司專門配置了一個接口函數文件。該文件在Samples/Active/Matlab目錄下,文件名為Matlabutil。
以Labwindows/CV16.0環境為例,其接口的初始化方法步驟如下。
①在CVI工程文件窗口中,運行Tool→Create ActiveX→Automation Control,運行後將出現ActiveX的服務控件選擇框。
②在選擇框選擇Matlab Automation Server Type Library,出現一個函數對話框;在對話框中選中所有動態鏈接目標函數,然後生成並保存文件,文件名為Matlabsrvr;最後係統將生成Matlabsrvr.fp(函數麵板文件)、Matlabsrvr.c和Matlabsrvr.h等相關五個文件。其中,在Matlabsrvr.c中包含混合編程所需的最基本功能函數。這些函數有接收發送矩陣函數、打開關閉Matlab函數等。
③最後將上述五個文件添加到工程文件中,並將它們和應用程序文件一並編譯。生成的文件被包含在CVI環境下,實現了同Matlab混合編程所要用到的最基本的功能函數。但考慮到環境變量,Matlab要求在CVI之前安裝為宜。
電機轉速仿真實驗時的仿真波形界麵如圖2所示。
2.2TCP/IP和Datasocket的混合通信
Labwindows/CVI具有強大的網絡通信功能,用戶可以用CVI編譯具有較強網絡通信能力的應用軟件。 Nl公司在CVI支持TCP/IP協議的同時,開發了Datasocket技術。Datasocket是Nl公司基於Microsoft的ActiveX和COM技ji術shu開kai發fa的de一yi種zhong麵mian向xiang網wang絡luo進jin行xing實shi時shi數shu據ju高gao速su交jiao換huan的de新xin技ji術shu,它ta簡jian化hua了le網wang絡luo通tong信xin編bian程cheng。針zhen對dui網wang絡luo控kong製zhi係xi統tong通tong信xin複fu雜za性xing的de需xu求qiu,本ben課ke題ti創chuang新xin性xing地di將jiangTCP/IP和Datasocket兩種網絡技術相互結翻綜合運用,提供了一種基於CVI平台的虛擬實驗朔絡通信的實現方案。
客戶端和服務器進行師生對話、文件傳輸(遞交與接收實驗報告)、實驗參數的傳輸等網絡通信都是依靠TCP/IP傳輸協議,通過Labwindows/CVI的TC/lP庫函數編程,將數據以數組的形式進行傳輸。但TCP/IP傳(chuan)輸(shu)協(xie)議(yi)是(shi)較(jiao)為(wei)複(fu)雜(za)的(de)底(di)層(ceng)編(bian)程(cheng),數(shu)據(ju)量(liang)較(jiao)大(da),傳(chuan)輸(shu)速(su)率(lv)較(jiao)慢(man),在(zai)傳(chuan)輸(shu)動(dong)態(tai)數(shu)據(ju)方(fang)麵(mian)較(jiao)難(nan)實(shi)現(xian)。為(wei)了(le)實(shi)現(xian)數(shu)據(ju)的(de)實(shi)時(shi)傳(chuan)輸(shu),如(ru)客(ke)戶(hu)端(duan)和(he)服(fu)務(wu)器(qi)之(zhi)間(jian)觸(chu)驗(yan)數(shu)據(ju)(包括實驗參數、實驗結果等),我們應用了麵向網絡化測試進行實時數據高速交換的編程技術-Datasocket技術,其專門用於傳輸和共享的化測試的實時數據。
Labwindows/CVI中引入了TCP/IP技術,並封裝了TCP類庫,提高了網絡應用程序的開發能力。在網絡虛擬實驗室中,使用TCP進行網絡通信時,每個連接必須包括一個服務器和一個客戶。利用TCP庫函數進行網絡傳輸的實質是實現TCP服務器端與客戶端應用程序之間數據的發送和接收,並通過TCP回調函數,對傳輸雙方通信發生的不同事件做出不同響應,使應用程序可以接收並處理TCP事件。
教師在服務器端接收學生實驗報告利用的就是TCP/IP技術,服務器接收文件的流程如圖3所示。
Datasocket由Datasocket API(應用程序接口)和Datasocket Serve:(服務器)兩部分組成。Datasocket API提供了從多種語言訪問多種數據類型的單一接口泡括四個基本動作:open、read、write、close。采用Datasoclet Server發布數據需要具備三個部分:發布者、服務器和接收者。發布者和接收者都是客戶端,發布者用於發布數據,接收者用於接收數據。
以直流電機轉速實驗為例,其工作過程如下:客戶端把Kp、Ki、Kd等參數通過Datasocket API寫入Datasocket Server,服務器程序通過Datasocket API讀Datas0Clet Server,並通過串口和單片機控製直流電機運行,然後將轉速、誤差等數據寫入Datasocket Server, 客戶端應用程序從Datasocket Server讀取最後的實驗結果。由於軟件係統利用Datasocket機製實現通信,因此,程序的源代碼中必須包含頭文件“Dataskt.h”。購啟動Datasocket服務器,獲得URL地址並進行實時數據的傳輸是編寫Datasocket程序的關鍵。
2.3數據庫的開發與應用
在控製係統網絡實驗室中,數據庫是不可缺少的重要組成部分。用戶登錄、學生的實驗時間、實驗參數濱驗結果等數據的存儲和管理都需要用統一的數據庫機製來實現。
SQL (structure query language)Toolkit是NI公司的數據庫係統應用軟件工具包,它支持SQL語句。CVI.5及以後的版本提供了支持數據庫的SQL Tool-Lit,使CVI對數據庫的操作能力增強。CVI支持對數據庫的訪問,不支持數據庫的開發。因此,可以用其他數據庫開發工具將需要的數據庫開發出來,然後在Lab Windows/CVI環境下使用。
SQL T00lkit包含了可以完成數據庫任務的高級函數庫集,可實現定製任務等高級功能。在CVI開發環勒使用SQL Toolkit時,需要在安裝CVI之後單獨安裝它。
在開發數據庫應用程序時,可以像添加儀器驅動器一樣把sql_db.fq加載到項目工程的儀器(instrument)菜單,而且最好也把它作為工程文件加載到工程項目管理窗口;再通過Windows控製麵板中的“ODBC數據源”添加數據源。這樣就可以在CVI中用sQL Toolkit函數庫來開發含有數據庫的應用程序。
本課題采用Microsoft Access建立數據庫,通過SQL Toolkit實現數據處理。設計中,利用TABLE控件的特點與數據庫建立連接,並把相應的變量進行綁定,從而使CVI的人機界麵能夠操作數據庫,進行數據的讀寫,並使數據得以保存。TABLE控件起到橋梁的作用,指導教師不需要打開數據庫就可以直接操作,大大節省了實驗的步驟和時間。
通過CVI提供的SQL Toolkit工具包實現對數據管理與處理,指導教師可以在服務器端的應用軟件平台上方便地操作使用數據庫,完成應用程序與數據庫的通信。
本設計所需要的數據庫表包含實驗時間、用戶姓名、學號、Kp、Ki、Kd、采樣時間、誤差等巧個實驗測得的數據。將TABLE控件的設計與數據庫相結合實現了包括屬性設置、數據輸入/輸出等功能。TABLE控件設計的關鍵在於利用SetTableCellval( )函數,將生成的記錄時間、姓名、學號以及一些測試數據寫入相應的單元格中,其程序代碼如下:
TABLE控件中單元格的數據類型必須與變量的數據類型一致,並且填入的順序要相符,否則,寫入的數據會出錯,甚至使程序無法運行。在SQL Toolkit數據庫中進行數據庫激活時,本課題采用了映射的方式,即首先調用DBBeginMap函數定義映射,此函數所需的唯一參數是由DBConnect 返回的連接句柄“hdbc”, 返回值即為映射句柄;映射定義完成後,必須使用 “DBMap ColumnTo”綁定函數類映射數據庫中將被讀入程序變量的列。所有DBMap ColumnTo函數使用下列參數:映射句柄、列名、目標、目標變量地址和狀態變量地址。以下代碼是數據庫中的各列和程序中存放對應列值的變量,即數據綁定的操作,包括姓名、學號、Kp、Ki、Kd、采樣時間等。
三、結束語
本文針對網絡實驗室的不同要求,成功地將Lab-Windows/CVI與Matlab的軟接口技術,TCP/IP、Datasocket技術以及SQL Toolkit技術有機地結合在一起,建成了控製係統網絡實驗室。該實驗室不僅能夠進行仿真實驗,也可進行實物實驗,同時也實現了實驗參數、jieguodeshishichuanshu,yijiyushiyanshujudeguanli。tongguoyuchuantongjiaoxuefangshidejinmijiehe,wangluoshiyanshibujintigaolejiaoxuexiaoguo,gengpeiyanglexueshengdeshiyandongshounengli、綜合素質和創新能力。