熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 基于VB的數據采集卡的應用

基于VB的數據采集卡的應用

時間:2009-01-09 11:26:01來源:zhangting

導語:?pcl-813b(簡稱813b)是臺灣研華公司推出的一款基于pc的高性能、多功能數據采集卡。
1 引言 pcl-813b(簡稱813b)是臺灣研華公司推出的一款基于pc的高性能、多功能數據采集卡。該卡不僅性能優異,而且有完善的軟件支持,使得此卡能廣泛適用于工業自動化系統、自動化設備監控系統,具有廣闊的應用前景。vb是一種高效、易學易用的開發工具。一些工業測控系統中,需要計算機從現場獲取實際數據或發出控制命令,這就需要計算機實現對i/o端口的控制與訪問,但是vb不具備直接對硬件地址進行訪問的功能,可以利用vc++編寫訪問i/o接口地址的程序,創建動態鏈接庫(dll),利用dll進行調用來實現端口訪問與控制。本文以此卡為例,詳細介紹了在vb環境下的應用。 2 pcl-813b數據采集卡簡介 813b是基于isa結構的,需插在計算機的isa槽中。它采用了12位分辨率a/d轉換器(ad574),用來轉換模擬輸入,轉換時間為25μs,數據傳送速率達25kbps;輸入范圍:雙極性±5v,±2.5v,±1.25v,±0.625v。單極性0~10v,0~5v,0~2.5v, 0~1.25v; a/d轉換觸發方式為軟件觸發; 813b支持32路單端隔離模擬量輸入,最大連續過壓±30v。 813b是一種通用型數據采集卡,可以滿足不同用戶的不同要求。因此卡上有一個dip開關(sw1)和1個跳線器(jp100),可由用戶自行設置,以滿足不同的需要。 813b使用16個連續的i/o地址,其i/o基地址有開關sw1選擇,有效地址從000~3f0h(十六進制)。sw1開關共有6個微型撥碼開關,其撥碼組合與對應的基地址有關系。 輸入范圍選擇:如使用單極性輸入,把開關置在“u”位置,此時允許0~10v,0~5v,0~1.25v模擬量輸入。如放大倍數是1,允許輸入0~10v;放大倍數是2,允許輸入 0~5v;放大倍數8,允許輸入0~1.25v。放大倍數由軟件控制。 3 動態鏈接庫dll的編寫 在vb中要利用dll進行調用來實現板卡的訪問與控制,首先要編寫動態鏈接庫dll。 在windows98 中,應用程序采取一種成為“動態鏈接庫”的特殊函數集來實現代碼和資源的共享,以最大限度地節省資源。之所以稱為“動態”,是因為它們是在運行期間鏈接到應用程序的,而不是在編譯期間。創建一個exe文件時,會有許多例程鏈接到代碼并放入exe文件中。但是dll中的例程則僅僅在實際運行時才鏈接到exe文件。按照這種方式,我們可以把幾個程序共用的代碼放到一個dll中,這樣可以節省大量的空間,提高運行效率。同時在工業控制中對計算機的底層硬件進行訪問,以及利用各種控制接口板進行數據采集和控制時間,僅靠vb是無法解決的。解決這樣的問題可以間接使用動態鏈接庫來實現。 3.1 創建dll的三個基本成分 (1) libmain函數 它是windows dll的入口點,主要用來完成一些初始化任務; (2) 出口函數wep windows的dll必須包含一個標準的出口函數。在dll最終卸出之前,windows調用該函數作一些必要的清除工作(如釋放一些資源等); (3) 自己的功能函數 windows95下vb編寫的程序是32位的,與之對應的dll也應是32位的。對于32位的dll,16位dll中的入口函數libmain、退出函數wep被dllentrypoint所代替。dllentrypoint入口和退出兩個函數服務。在每次裝入或卸下dll時,windows95調入dllentrypoint。 在vc++5.0中選擇file|new,在new對話框中選擇project workspace,再在new project workspace對話框中選擇dynamic-link library選項,并輸入工程項目名,即可生成動態鏈接庫的工作框架。 3.2 利用vc++5.0開發的dll的完整的程序清單 //dll源文件i0.cpp #include #include int far pascal outport(unsigned) short sport); int far pascal outport(unsigned short port,int databyte); //d11entrypoint函數 bool winapi d11entrypoint (hinstance hd11, dworddwreason, lpvoid reserved) {   switch(dwreason) { case dll_process_attach:   {     break;   } case dll_process_detach:   {     break;   } } return true; } //兩個功能函數 int far pascal inport(unsigned short port) {   reture(_inp(prot); ) int far pascal outport(unsigned short port,int databyte) { int a; a=_outp(port,databyte); return a; } //模塊定義文件i0.def code preload moveable discardable data preload single exports inport outport 3.3 vb中的dll調用 dll函數或過程必須在全局模塊(*.bas)中正確說明才有效。vb是用declare語句把一個dll函數引入vb中的,它告訴vb在哪里找到dll函數,并且讓vb知道dll需要哪種類型的參數,同時返回哪種類型的值。當某個dll函數用declare語句正確聲明以后,就可以像使用其它函數一樣使用這個dll函數。 在vb應用程序的全局模塊中聲明i0.dll并將其放入windows/system目錄下,這樣就可以向使用windows api一樣使用i098中的inport和outport函數了。 declare function inport lib"io.d11"  (byval prot as integer)as long declare function outport lib"io.d11"  (byval port as integer,byval databyte as long)as long 4 應用實例 4.1 813b采集卡的初始化(采集卡基地址220h) (1) 選通道 向22ah寫入相應的控制字選擇通道,寫入“0”表示0通道,寫入“1”代表1通道,依次類推 (2) 啟動ad轉換 向22ch寫入任意值,觸發ad轉換 (3) 讀入數據 把12位數據的低8位讀入224h,把高4位讀入225h中。 4.2 vb的編程實例 利用定時器實現定時采集在vb中,可利用定時器的interval屬性設置每秒鐘采集的次數,把采集段程序放在定時器的timer事件中來實現數據采集.對于一般計算機來講,由于受系統硬件能力的限制,定時器每秒鐘最多只能產生18個事件,若時間間隔設置得過小,將達不到預期效果 應用實例下面給出數據采集軟件程序中部分主要源代碼 以采集某0~100℃的溫度信號(經溫度變送器轉換為0~5v)為例,設定a/d板為單極性輸入方式,i/o端口基地址為220h,放大倍率為1 在module1中聲明: declare function outport lib "io.dll" (byval portasinteger,byvaldataasinteger) declare function inport lib"io.dll"(byval portasinteger asinteger) dll文件已拷貝到windows的system目錄下 采集程序部分: private sub timerwd-timer()   chwd=1 //設定溫度通道號為1 x=outport(&h22a,chwd) //輸入通道號 y=outport(&h2c,0 ) //啟動a/d轉換  j=1  dowhilej<>0 //判斷a/d轉換是否結束 j=inport&h22a and 1  loop adwl=inport(&h224) //a/d結果低8位送入變量adwh adwh=inport (&h225) //a/d結果高4位送入變量adwl adwdata=val(adwh-224)×256+val(adwl) //12位a/d轉換結果 vwd=adwdata×10/4095 //對應的電壓  wd=100×vwd/5 //標度變換為實際溫度  … endsub 幾點說明: 數據采集值是12位,放在2個地址里,其中224h存放數據的低8位(數據7~數據0),225h的低4位存放采集數據的高4位(數據11~數據8),225h的其它位自動變為1110。
則12位ad轉換的結果為: adwdata=val(adwh-224)×256+val(adwl), 其中224表示無采集數據時的自然值(即11100000)。 12位ad經ad轉換的最大值是212=4096 5 結束語 上述采用vb調用dll實現數據采集的方法有一定的通用性,上述程序全部經過測試通過,可作為類似控制的參考。 參考文獻 [1] 三味創作室. vb6.0應用與提高[m]. 北京:科學出版社,1999. 作者簡介 張智杰(1970-) 工程師 畢業于山東科技大學電氣自動化專業,現主要從事計算機控制系統、plc應用系統的科研與教學工作。

標簽:

點贊

分享到:

上一篇:中控WebField ECS-100控制系...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 石棉县| 图们市| 海伦市| 五峰| 茂名市| 昌宁县| 遂昌县| 嘉禾县| 兴和县| 龙州县| 唐河县| 琼结县| 呼图壁县| 张家口市| 东乌| 石渠县| 贵州省| 西贡区| 锦屏县| 呼和浩特市| 汝州市| 轮台县| 兴文县| 响水县| 晋宁县| 湖南省| 收藏| 福安市| 工布江达县| 梓潼县| 寻乌县| 福建省| 同江市| 旌德县| 洱源县| 文登市| 且末县| 高唐县| 瓦房店市| 电白县| 荆州市|