亚洲国产岛国毛片在线_美国十次了思思久久精品导航_亚洲人体影院_欧美精品亚洲精品

技術(shù)頻道

數(shù)據(jù)采集卡的應(yīng)用

  1 引言

  pcl-813b(簡稱813b)是臺灣研華公司推出的一款基于pc的高性能、多功能數(shù)據(jù)采集卡。該卡不僅性能優(yōu)異,而且有完善的軟件支持,使得此卡能廣泛適用于工業(yè)自動化系統(tǒng)、自動化設(shè)備監(jiān)控系統(tǒng),具有廣闊的應(yīng)用前景。vb是一種高效、易學(xué)易用的開發(fā)工具。一些工業(yè)測控系統(tǒng)中,需要計算機從現(xiàn)場獲取實際數(shù)據(jù)或發(fā)出控制命令,這就需要計算機實現(xiàn)對i/o端口的控制與訪問,但是vb不具備直接對硬件地址進行訪問的功能,可以利用vc++編寫訪問i/o接口地址的程序,創(chuàng)建動態(tài)鏈接庫(dll),利用dll進行調(diào)用來實現(xiàn)端口訪問與控制。本文以此卡為例,詳細介紹了在vb環(huán)境下的應(yīng)用。

  2 pcl-813b數(shù)據(jù)采集卡簡介

  813b是基于isa結(jié)構(gòu)的,需插在計算機的isa槽中。它采用了12位分辨率a/d轉(zhuǎn)換器(ad574),用來轉(zhuǎn)換模擬輸入,轉(zhuǎn)換時間為25μs,數(shù)據(jù)傳送速率達25kbps;輸入范圍:雙極性±5v,±2.5v,±1.25v,±0.625v。單極性0~10v,0~5v,0~2.5v,0~1.25v; a/d轉(zhuǎn)換觸發(fā)方式為軟件觸發(fā); 813b支持32路單端隔離模擬量輸入,最大連續(xù)過壓±30v。

  813b是一種通用型數(shù)據(jù)采集卡,可以滿足不同用戶的不同要求。因此卡上有一個dip開關(guān)(sw1)和1個跳線器(jp100),可由用戶自行設(shè)置,以滿足不同的需要。

  813b使用16個連續(xù)的i/o地址,其i/o基地址有開關(guān)sw1選擇,有效地址從000~3f0h(十六進制)。sw1開關(guān)共有6個微型撥碼開關(guān),其撥碼組合與對應(yīng)的基地址有關(guān)系。

  輸入范圍選擇:如使用單極性輸入,把開關(guān)置在“u”位置,此時允許0~10v,0~5v,0~1.25v模擬量輸入。如放大倍數(shù)是1,允許輸入0~10v;放大倍數(shù)是2,允許輸入0~5v;放大倍數(shù)8,允許輸入0~1.25v。放大倍數(shù)由軟件控制。

  3 動態(tài)鏈接庫dll的編寫

  在vb中要利用dll進行調(diào)用來實現(xiàn)板卡的訪問與控制,首先要編寫動態(tài)鏈接庫dll。

  在windows98中,應(yīng)用程序采取一種成為“動態(tài)鏈接庫”的特殊函數(shù)集來實現(xiàn)代碼和資源的共享,以最大限度地節(jié)省資源。之所以稱為“動態(tài)”,是因為它們是在運行期間鏈接到應(yīng)用程序的,而不是在編譯期間。創(chuàng)建一個exe文件時,會有許多例程鏈接到代碼并放入exe文件中。但是dll中的例程則僅僅在實際運行時才鏈接到exe文件。按照這種方式,我們可以把幾個程序共用的代碼放到一個dll中,這樣可以節(jié)省大量的空間,提高運行效率。同時在工業(yè)控制中對計算機的底層硬件進行訪問,以及利用各種控制接口板進行數(shù)據(jù)采集和控制時間,僅靠vb是無法解決的。解決這樣的問題可以間接使用動態(tài)鏈接庫來實現(xiàn)。

  3.1 創(chuàng)建dll的三個基本成分

  (1) libmain函數(shù)

  它是windows dll的入口點,主要用來完成一些初始化任務(wù);

  (2) 出口函數(shù)wep

  windows的dll必須包含一個標準的出口函數(shù)。在dll最終卸出之前,windows調(diào)用該函數(shù)作一些必要的清除工作(如釋放一些資源等);

  (3) 自己的功能函數(shù)

  windows95下vb編寫的程序是32位的,與之對應(yīng)的dll也應(yīng)是32位的。對于32位的dll,16位dll中的入口函數(shù)libmain、退出函數(shù)wep被dllentrypoint所代替。dllentrypoint入口和退出兩個函數(shù)服務(wù)。在每次裝入或卸下dll時,windows95調(diào)入dllentrypoint。

  在vc++5.0中選擇file|new,在new對話框中選擇project workspace,再在new project workspace對話框中選擇dynamic-link library選項,并輸入工程項目名,即可生成動態(tài)鏈接庫的工作框架。

  3.2 利用vc++5.0開發(fā)的dll的完整的程序清單

  //dll源文件i0.cpp

  #include

  #include

  int far pascal outport(unsigned)

  short sport);

  int far pascal outport(unsigned short port,int databyte);

  //d11entrypoint函數(shù)

  bool winapi d11entrypoint

  (hinstance hd11,

  dworddwreason,

  lpvoid reserved)

  {

  switch(dwreason)

  {

  case dll_process_attach:

  {

  break;

  }

  case dll_process_detach:

  {

  break;

  }

  }

  return true;

  }

  //兩個功能函數(shù)

  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調(diào)用

  dll函數(shù)或過程必須在全局模塊(*.bas)中正確說明才有效。vb是用declare語句把一個dll函數(shù)引入vb中的,它告訴vb在哪里找到dll函數(shù),并且讓vb知道dll需要哪種類型的參數(shù),同時返回哪種類型的值。當某個dll函數(shù)用declare語句正確聲明以后,就可以像使用其它函數(shù)一樣使用這個dll函數(shù)。

  在vb應(yīng)用程序的全局模塊中聲明i0.dll并將其放入windows/system目錄下,這樣就可以向使用windows api一樣使用i098中的inport和outport函數(shù)了。

  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 應(yīng)用實例

  4.1 813b采集卡的初始化(采集卡基地址220h)

  (1) 選通道

  向22ah寫入相應(yīng)的控制字選擇通道,寫入“0”表示0通道,寫入“1”代表1通道,依次類推

  (2) 啟動ad轉(zhuǎn)換

  向22ch寫入任意值,觸發(fā)ad轉(zhuǎn)換

  (3) 讀入數(shù)據(jù)

  把12位數(shù)據(jù)的低8位讀入224h,把高4位讀入225h中。

  4.2 vb的編程實例

  利用定時器實現(xiàn)定時采集在vb中,可利用定時器的interval屬性設(shè)置每秒鐘采集的次數(shù),把采集段程序放在定時器的timer事件中來實現(xiàn)數(shù)據(jù)采集。對于一般計算機來講,由于受系統(tǒng)硬件能力的限制,定時器每秒鐘最多只能產(chǎn)生18個事件,若時間間隔設(shè)置得過小,將達不到預(yù)期效果

  應(yīng)用實例下面給出數(shù)據(jù)采集軟件程序中部分主要源代碼

  以采集某0~100℃的溫度信號(經(jīng)溫度變送器轉(zhuǎn)換為0~5v)為例,設(shè)定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 //設(shè)定溫度通道號為1

  x=outport(&h22a,chwd) //輸入通道號

  y=outport(&h2c,0 ) //啟動a/d轉(zhuǎn)換

  j=1

  dowhilej《》0 //判斷a/d轉(zhuǎn)換是否結(jié)束

  j=inport&h22a and 1

  loop

  adwl=inport(&h224) //a/d結(jié)果低8位送入變量adwh

  adwh=inport (&h225) //a/d結(jié)果高4位送入變量adwl

  adwdata=val(adwh-224)×256+val(adwl)

  //12位a/d轉(zhuǎn)換結(jié)果

  vwd=adwdata×10/4095 //對應(yīng)的電壓

  wd=100×vwd/5 //標度變換為實際溫度

  …

  endsub

  幾點說明:

  數(shù)據(jù)采集值是12位,放在2個地址里,其中224h存放數(shù)據(jù)的低8位(數(shù)據(jù)7~數(shù)據(jù)0),225h的低4位存放采集數(shù)據(jù)的高4位(數(shù)據(jù)11~數(shù)據(jù)8),225h的其它位自動變?yōu)?110。

  則12位ad轉(zhuǎn)換的結(jié)果為:

  adwdata=val(adwh-224)×256+val(adwl),

  其中224表示無采集數(shù)據(jù)時的自然值(即11100000)。

  12位ad經(jīng)ad轉(zhuǎn)換的最大值是212=4096

  5 結(jié)束語

  上述采用vb調(diào)用dll實現(xiàn)數(shù)據(jù)采集的方法有一定的通用性,上述程序全部經(jīng)過測試通過,可作為類似控制的參考。

文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

亚洲国产岛国毛片在线_美国十次了思思久久精品导航_亚洲人体影院_欧美精品亚洲精品
国产精品久久久久久久久果冻传媒| 久久亚洲精品一区| 欧美日韩精品二区| 亚洲视频在线观看网站| 亚洲免费观看高清完整版在线观看熊| 欧美精品在线免费| 午夜日韩福利| 久久蜜桃香蕉精品一区二区三区| 亚洲国产欧美久久| 中文网丁香综合网| 国内精品久久久久影院薰衣草| 免费成人你懂的| 欧美另类在线观看| 久久精品在这里| 欧美成在线观看| 欧美一区在线视频| 老妇喷水一区二区三区| 亚洲视频狠狠| 久久精品久久99精品久久| 日韩视频一区二区| 小黄鸭视频精品导航| 在线免费观看日本一区| 亚洲精品一线二线三线无人区| 国产精品欧美精品| 欧美国产先锋| 国产亚洲欧美另类中文 | 国产亚洲a∨片在线观看| 久久综合九色九九| 欧美性做爰猛烈叫床潮| 蜜桃精品久久久久久久免费影院| 欧美韩日一区| 久久精品在线免费观看| 欧美日韩精品一区视频| 久久一区二区三区四区五区| 亚洲日本成人网| 亚洲素人在线| 夜夜嗨av一区二区三区中文字幕| 久久av老司机精品网站导航| 99国产精品视频免费观看| 久久精品国产亚洲高清剧情介绍| 日韩亚洲一区二区| 久久深夜福利免费观看| 性欧美18~19sex高清播放| 欧美国产1区2区| 欧美成人69| 精品成人一区二区三区四区| 亚洲午夜在线| 亚洲一区在线播放| 欧美日韩国产高清视频| 欧美黑人国产人伦爽爽爽| 国产三区精品| 欧美一级精品大片| 性欧美videos另类喷潮| 国产精品激情偷乱一区二区∴| 亚洲国产老妈| 在线看欧美视频| 久久国产欧美日韩精品| 久久久青草婷婷精品综合日韩| 国产久一道中文一区| 亚洲午夜av电影| 亚洲欧美日韩国产| 国产精品久久久久久久久搜平片| 99pao成人国产永久免费视频| 亚洲美女在线视频| 欧美区日韩区| 亚洲精品一区二区三区蜜桃久| 日韩性生活视频| 欧美四级在线观看| 亚洲视频久久| 久久精品视频va| 伊人婷婷欧美激情| 欧美成人亚洲成人| 野花国产精品入口| 久久国产视频网站| 伊人成综合网伊人222| 美国十次了思思久久精品导航| 欧美成人午夜激情在线| 亚洲美女视频在线观看| 欧美视频在线看| 欧美一区二区精品久久911| 久久亚洲国产精品一区二区| 亚洲国产精品久久久久秋霞影院| 玖玖综合伊人| 9人人澡人人爽人人精品| 午夜久久久久久| 精品51国产黑色丝袜高跟鞋| 女仆av观看一区| 夜夜爽夜夜爽精品视频| 久久国产精品久久久久久久久久 | 一区二区在线不卡| 老**午夜毛片一区二区三区| 亚洲人体一区| 欧美在线视频全部完| 亚洲国产成人高清精品| 欧美日韩一区精品| 久久精品国产亚洲a| 亚洲欧洲一区二区三区久久| 欧美一区二区女人| 91久久综合| 国产精品一区毛片| 欧美不卡视频一区发布| 亚洲在线免费视频| 欧美激情区在线播放| 亚洲私人影院在线观看| 在线精品一区| 亚洲小说区图片区| 国产亚洲欧美中文| 欧美日韩国产成人在线91| 久久精品网址| 亚洲视屏一区| 亚洲国产日韩综合一区| 久久精品夜色噜噜亚洲a∨| 最新国产成人av网站网址麻豆| 午夜欧美精品久久久久久久| 在线综合欧美| 午夜精品一区二区三区电影天堂 | 国外视频精品毛片| 亚洲美女视频在线观看| 亚洲国产激情| 免费精品99久久国产综合精品| 欧美午夜视频一区二区| 亚洲欧美国产高清va在线播| 日韩一区二区精品葵司在线| 欧美日韩午夜剧场| 欧美一级艳片视频免费观看| 亚洲影音一区| 亚洲人成网站在线播| 一本色道久久综合亚洲精品不| 国产嫩草一区二区三区在线观看| 亚洲影院在线| 麻豆精品91| 久久久亚洲高清| 欧美三级视频在线观看| 女人香蕉久久**毛片精品| 欧美丝袜一区二区三区| 久久久精品午夜少妇| 欧美日韩在线观看一区二区| 欧美夜福利tv在线| 欧美日韩一区二区三| 免费视频一区| 精品成人一区| 欧美在线观看你懂的| 欧美一区二区三区四区在线观看| 美日韩精品视频| 欧美高清成人| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品一区亚洲| 日韩视频在线观看国产| 亚洲精品日日夜夜| 欧美成人精品在线视频| 亚洲国产天堂久久综合网| 亚洲精品裸体| 欧美日韩国产首页| 国产精品99久久久久久久vr| 亚洲视频免费观看| 国产伦精品一区二区三区高清| 亚洲永久免费av| 久久综合久色欧美综合狠狠| 亚洲福利精品| 欧美性开放视频| 欧美一区亚洲| 亚洲久色影视| 美国成人直播| 一区二区三区国产| 好吊视频一区二区三区四区| 久久色中文字幕| 亚洲免费伊人电影在线观看av| 久久国产精品久久久久久久久久| 精品二区视频| 国产精品久久亚洲7777| 麻豆精品在线播放| 亚洲欧美另类在线| 日韩视频三区| 亚洲国产毛片完整版| 久久久综合网| 久久久久久69| 欧美在线一二三| 午夜亚洲视频| 亚洲免费在线视频| 亚洲欧美另类在线观看| 亚洲看片免费| 日韩午夜在线| 亚洲狼人综合| 99在线精品视频在线观看| 亚洲电影免费观看高清| 国产亚洲综合精品| 老司机免费视频一区二区三区| 99国产精品久久久久久久久久| 亚洲福利国产精品| 亚洲清纯自拍| 中文亚洲免费| 久久精品国产2020观看福利| 欧美一区观看| 欧美 日韩 国产精品免费观看| 麻豆av一区二区三区久久| 欧美国产亚洲视频| 欧美视频一区二区| 99在线热播精品免费| 一区二区三区四区五区精品| 香蕉乱码成人久久天堂爱免费|