日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

最新廣告
關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
工業(yè)智能邊緣計(jì)算2025年會(huì)
CAIAC 2025
2025工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁 >> 案例 >> 案例首頁

案例頻道

C++Builder環(huán)境下基于DLL的PCL-818L數(shù)采卡在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
  • 企業(yè):控制網(wǎng)     領(lǐng)域:電氣聯(lián)接     行業(yè):輸配電    
  • 點(diǎn)擊數(shù):4025     發(fā)布時(shí)間:2006-07-22 20:15:48
  • 分享到:
簡(jiǎn)要介紹了PCL-818L數(shù)據(jù)采集卡的各項(xiàng)功能以及在實(shí)際應(yīng)用中硬件地址的設(shè)置,并基于研華公司提供的有關(guān)PCL-818L動(dòng)態(tài)鏈接庫文件,在Windows環(huán)境下,采用Borland(Inprise)公司推出的軟件開發(fā)環(huán)境C++Builder編寫了該數(shù)據(jù)采集卡的控制程序,該控制程序界面友好,開放性好,可移植性強(qiáng),能夠直接應(yīng)用于工程實(shí)踐中,滿足不同的控制需求。

1  前言


    現(xiàn)代電子和計(jì)算機(jī)技術(shù)的發(fā)展為信息的轉(zhuǎn)換與處理提供了極其完善的手段,使檢測(cè)與控制技術(shù)發(fā)展到了新的階段,數(shù)據(jù)采集卡的應(yīng)用就是其中的一項(xiàng)重要內(nèi)容。目前,
Windows正以其良好的圖形用戶界面、靈活簡(jiǎn)單的操作贏得了廣泛的用戶。在工業(yè)控制系統(tǒng)的開發(fā)中,越來越多的用戶也要求控制系統(tǒng)提供Windows風(fēng)格的友好界面。C++BuilderBorlandInprise)公司開發(fā)的Windows下可視化的C++編程環(huán)境,它常被簡(jiǎn)稱為BCBCBBCB不僅功能強(qiáng)大,而且學(xué)習(xí)簡(jiǎn)單、使用方便,但它不具備直接對(duì)硬件I/O地址進(jìn)行讀寫的能力,需要調(diào)用DLL函數(shù)實(shí)現(xiàn)對(duì)I/O端口的訪問和控制,PCL-818L數(shù)據(jù)采集卡是臺(tái)灣研華公司推出的一款工業(yè)標(biāo)準(zhǔn)的經(jīng)濟(jì)型數(shù)據(jù)采集卡,適用于IBM PC/XT/AT或其他兼容機(jī),可用于各類數(shù)字信號(hào)、模擬信號(hào)的采集、處理及各類控制信號(hào)的輸出。


2  PCL-818L
數(shù)據(jù)采集卡


    研華
PCL-818L數(shù)據(jù)采集卡是一款多功能的數(shù)據(jù)采集卡,它為用戶提供了16個(gè)模擬信號(hào)輸入通道,可以通過跳線開關(guān)設(shè)定為16個(gè)單通道信號(hào)輸入或8個(gè)通道差分信號(hào)輸入;12A/D轉(zhuǎn)換器(最高采樣頻率為40KHz);通過跳線開關(guān)和軟件相結(jié)合可提供8種模擬量輸入范圍;112位模擬量輸出通道和16路數(shù)字量輸入和數(shù)字量輸出通道。所有這些特性可以很好的滿足用戶的需要。要實(shí)現(xiàn)這些功能,還需要擴(kuò)展以下三個(gè)板卡:PCLD-782B24/16路光電隔離數(shù)字量輸入卡)、PCLD-885(數(shù)字量輸出卡)、 PCLD-8115(模擬量輸入輸出卡)。其信號(hào)傳輸過程如圖1。圖2是實(shí)踐應(yīng)用中的原理圖。

 

外部信號(hào)(數(shù)字量、模擬量)

PCL-818L

計(jì)算機(jī)

1  PCL-818L信號(hào)傳輸過程


2 實(shí)踐應(yīng)用原理圖

3  C++Builder環(huán)境下的軟件設(shè)計(jì)

3.1  DLL技術(shù)

   
對(duì)PCL-818L進(jìn)行Windows應(yīng)用程序開發(fā),可以有三種方法。

    (
1)利用“研華”光盤中附帶的GeniDAQ Development開發(fā)環(huán)境,這是研華針對(duì)PCL系列板提供的標(biāo)準(zhǔn)開發(fā)環(huán)境,其優(yōu)點(diǎn)是針對(duì)性強(qiáng),缺點(diǎn)是不是通用的開發(fā)環(huán)境,程序移植性較差;

    (
2)由用戶自行開發(fā)針對(duì)底層硬件的驅(qū)動(dòng)程序,這種方法靈活性最大,代碼執(zhí)行效率也高,可以充分發(fā)揮硬件的性能,但是要求開發(fā)者具有相當(dāng)高的計(jì)算機(jī)軟、硬件水平;
   
    (
3)采用通用的開發(fā)環(huán)境(Visual C++DelphiC++Builder等),調(diào)用“研華”提供的標(biāo)準(zhǔn)動(dòng)態(tài)鏈接庫文件和第三方制作的ActiveX控件,采用這種方法可以在一定程度上降低程序開發(fā)的難度,在提供較好靈活性的同時(shí),提供相對(duì)于第一種方法更好的移植性。因此,在實(shí)際中多采用第三種方法進(jìn)行軟件開發(fā)。


    動(dòng)態(tài)鏈接庫(
Dynamic Link Library,簡(jiǎn)稱DLL)是一種基于Windows的程序模塊。之所以稱之為“動(dòng)態(tài)”,是因?yàn)樗鼈冊(cè)谶\(yùn)行期間被裝入和鏈接到應(yīng)用程序的,而不是在編譯期間。DLL中只包含供應(yīng)用程序運(yùn)行時(shí)裝入該DLL的有關(guān)信息,并非是源代碼的復(fù)制,因此在Windows中使用DLL可以使多個(gè)應(yīng)用程序之間共享代碼和源程序,從而提高運(yùn)行效率。下面對(duì)幾個(gè)關(guān)鍵的DLL函數(shù)作簡(jiǎn)單說明。


    (
1DRV_DeviceOpen ):該函數(shù)必須最先被調(diào)用,它加載一個(gè)設(shè)備驅(qū)動(dòng)程序到內(nèi)存,并確定設(shè)備的類型,完成對(duì)設(shè)備的初始化,使設(shè)備做好I/O的準(zhǔn)備工作,同時(shí)返回一個(gè)函數(shù)值,若設(shè)備驅(qū)動(dòng)成功則返回非“0”的設(shè)備句柄,否則返回“0”。


    (
2DRV_DeviceClose ):該函數(shù)是關(guān)閉由DRV_DeviceOpen )函數(shù)打開的設(shè)備,它的函數(shù)參數(shù)是由DRV_DeviceOpen )函數(shù)返回的設(shè)備句柄,若設(shè)備關(guān)閉成功則返回非“0”,否則返回“0”。

 
    (
3DRV_DeviceGetFeatures ):該函數(shù)從由DRV_DeviceOpen )函數(shù)打開的設(shè)備中獲取相關(guān)的硬件信息;同時(shí)返回一個(gè)函數(shù)值,若操作成功則返回非“0”值,否則返回“0”。


    (
4DRV_AIVoltageIn ):外部模擬量信號(hào)首先在PCL-818L中進(jìn)行A/D轉(zhuǎn)換,其結(jié)果保存在PCL-818L的內(nèi)部寄存器中,該函數(shù)的作用是把保存在PCL-818L數(shù)據(jù)采集卡的內(nèi)部寄存器中的數(shù)值讀入計(jì)算機(jī)中。


    (
5DRV_AOVoltageOut ):該函數(shù)的作用是輸出模擬量值到PCL-818L數(shù)據(jù)采集卡的內(nèi)部寄存器,然后PCL-818L通過D/A轉(zhuǎn)換后輸出到外部設(shè)備。


    (
6DRV_DioReadPortByte )和DRV_DioWritePortByte ):這兩個(gè)函數(shù)的作用是幫助計(jì)算機(jī)與外部設(shè)備通過PCL-818L數(shù)據(jù)采集卡完成數(shù)字量的傳遞,在傳遞時(shí)是按字節(jié)進(jìn)行的。


3.2  I/O
基地址的設(shè)置
   
    PCL-818L數(shù)據(jù)采集卡使用了16位連續(xù)的I/O地址,其I/O基地址是通過SW1上的6個(gè)DIP開關(guān)進(jìn)行設(shè)置的,可用的地址限定在000H3F0H,在設(shè)置該地址時(shí),不能與其他板卡或設(shè)備的地址相沖突(本程序中的地址為300H)。SW16個(gè)微型撥碼開關(guān)用以調(diào)節(jié)地址的A9A4位,其撥碼組合與對(duì)應(yīng)的基地址關(guān)系如表1所示。


1  PCL-818L數(shù)據(jù)采集卡基地址關(guān)系表


3.3  程序設(shè)計(jì)

 
     為簡(jiǎn)明起見,筆者用一個(gè)實(shí)例闡述
PCL-818L數(shù)據(jù)采集卡在C++Builder編程環(huán)境中最基本的使用,具體步驟如下:


    (
1)按照用戶手冊(cè),根據(jù)實(shí)際需要完成PCL-818L數(shù)據(jù)采集卡的硬件參數(shù)設(shè)置。



創(chuàng)建一個(gè)C++Builder工程,并根據(jù)實(shí)際需要進(jìn)行窗體的設(shè)計(jì),筆者設(shè)計(jì)的窗體外觀如下:

數(shù)字量的輸入共有16路(即16位數(shù)字量),分為兩個(gè)字節(jié),低八位記為通道0,高八位記為通道1,而“輸入通道顯示”可以清楚的指示出是哪一路是高電平或低電平,“掃描時(shí)間”用來更改數(shù)字量輸入的刷新時(shí)間;數(shù)字量的輸出同樣分為通道0和通道1;模擬量最多有16路單通道信號(hào)輸入,電壓范圍可由軟件設(shè)定為±5V、±2.5V、±1.25V、±0.625V,在“輸入數(shù)據(jù)”欄顯示外部輸入的電壓值;模擬量的輸出只有兩個(gè)通道,在“手動(dòng)輸出”欄可以任意設(shè)定輸出的電壓值(不超過額定輸出電壓),“自動(dòng)輸出”是指把外部輸入的電壓值直接輸出。


    (2)在
Unit1.h頭文件中定義一些公有變量,代碼如下:

PT_DioReadPortByte ptDioReadPortByte;   //數(shù)字量輸入數(shù)據(jù)結(jié)構(gòu)體

PT_DioWritePortByte ptDioWritePortByte;   //數(shù)字量輸出數(shù)據(jù)結(jié)構(gòu)體

PT_AIVoltageIn  ptAIVoltageIn;           //模擬量輸入經(jīng)A/D后的數(shù)據(jù)

PT_AIGetConfig  ptAIGetConfig;          //模擬量輸入數(shù)據(jù)結(jié)構(gòu)體

PT_AOVoltageOut ptAOVoltageOut;        //模擬量輸出數(shù)據(jù)結(jié)構(gòu)體

   
3)程序源代碼的編制如下:

void __fastcall TForm1::Button1Click(TObject *Sender) //選擇板卡

{… …

  DRV_DeviceOpen(0, &hDH);

  … …  }

 //數(shù)字量的輸入和輸出

void __fastcall TForm1::TimInTimer(TObject *Sender)

{  ptDioReadPortByte.port =ComboBox1->Text.ToInt() ;

    … …

   DRV_DioWritePortByte(hDH,(LPT_DioWritePortByte)&ptDioWritePortByte);

  … … }

//模擬量輸入

void __fastcall TForm1::TimAInTimer(TObject *Sender) //模擬量輸入掃描循環(huán)

{  gwChannel=ComboBox3->Text .ToInt();

  ptAIVoltageIn.TrigMode = 0;               // 觸發(fā)方式 軟件/內(nèi)部觸發(fā)

    … …}

//模擬量輸出

void __fastcall TForm1::TimAOutTimer(TObject *Sender)

{ ptAOVoltageOut.chan = ComboBox5->Text .ToInt() ;

  ptAOVoltageOut.OutputValue = fVoltage;

  DRV_AOVoltageOut(hDH,(LPT_AOVoltageOut)&ptAOVoltageOut);}

//程序退出

void __fastcall TForm1::ExitClick(TObject *Sender)

{  … …

  DRV_DeviceClose((LONG far *)&hDH);

  Close(); }

    說明:因限于篇幅,上述程序設(shè)計(jì)只列出部分關(guān)鍵代碼。

4  結(jié)束語

   
本文充分利用臺(tái)灣研華公司提供的動(dòng)態(tài)鏈接庫文件,結(jié)合C++Builder可視化的編程環(huán)境,在充分發(fā)揮PCL-818L數(shù)據(jù)采集卡各項(xiàng)功能的同時(shí),為用戶提供了比較友好的操作界面和非常靈活的控制方案,用戶可以根據(jù)自己的實(shí)際需要,來采集現(xiàn)場(chǎng)中各類傳感器的信號(hào),達(dá)到不同的控制目的。


參考文獻(xiàn):

[1]PCL-818L High-performance DAS card with programmable gain User’s Mannual [S].Advantech corporation,1995.


[2]
郭文夷,等。C++ Builder 6.0 程序設(shè)計(jì)[M]。西安:西安電子科技大學(xué)出版社,2004

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产成人综合在线观看网站-国产成人综合在线-国产成人综合亚洲亚洲欧美-国产成人综合亚洲动漫在线-国产成人综合亚洲-国产成人综合网在线观看 | 四房网,久久久国产99久久国产久,色偷偷男人天堂,九七电影院97网手机版支持,国产人成精品免费视频,五月天最新网站 | 老司机午夜精品网站在线观看-老司机午夜精品视频在线观看免费-老司机午夜精品视频观看-老司机午夜精品视频播放-一本色道久久88一综合-一本色道久久88综合日韩精品 | 日本成人一区,欧美日韩亚洲无线码在线观看,交换伦交,在线观看国产视频,日韩欧美视频一区,国产精品欧美一区二区三区不卡 | 亚洲精品www久久久久久-亚洲精品m在线观看-亚洲精品99久久久久久-亚洲精品97福利在线-黑人解禁-黑人家教 | 欧美精品一区二区精品久久-欧美精品一二区-2019酷路泽大改款-欧美精品亚洲一区二区在线播放-99日韩-99人中文字幕亚洲区 | 婷婷四房综合激情五月在线,国产精品吹潮在线观看中文,久久99精品亚洲热综合,成人久久久久,99精品久久99久久久久,久久福利小视频 国内自拍中文字幕,久久久一本精品99久久精品66,精品400部自拍视频在线播放,国产麻豆精品在线,日韩欧美高清视频,久久久免费精品视频 | 色综合天天综合网国产国产人-色综合天天综合网国产成人网-色综合天天综合网国产成人-色综合天天综合给合国产-国产成人精彩在线视频50-国产成人禁片在线观看 | 亚洲专区中文字幕-亚洲专区在线视频-亚洲专区在线播放-亚洲专区在线-九九热在线免费视频-九九热在线免费观看 | 免费色黄网站-免费人成在线看-免费人成在线观看网站视频-免费人成在线观看网站-伊人蕉久中文字幕无码专区-伊人蕉久影院 | 在线亚洲不卡,三上悠亚一区二区观看,91伊人久久,婷婷激情五月,中文字幕久久精品,色综合久久中文字幕 | 日本漫画母亲口工子全彩-日本漫画大全无翼乌-日本妈妈在线观看中文字幕-日本妈妈xxxx-操他射他影院-操老太太的逼 | 精品国产互换人妻麻豆-精品国产经典三级在线看-精品国产精品人妻久久无码五月天-精品国产九九-精品国产剧情AV在线观看-精品国产露脸久久AV麻豆 | 欧洲免费极品videos-欧洲美女高清一级毛片-欧洲精品欧美精品-欧洲精品不卡1卡2卡三卡四卡-中午字幕在线观看-中文字日产幕码三区的做法大全 | 麻豆系列国产剧在线观看-麻豆系列 在线视频-麻豆午夜视频-麻豆污视频-麻豆网站在线免费观看-麻豆网站在线看 | 日b视频免费看-日b视频免费-人禽性bbb视频-人禽无码做爰在线观看-人妻中文字幕无码-人妻一区日韩二区国产欧美的无码 | 九九香蕉-九九线精品视频-九九五月天-九九天天影视-天天干b-天天干2018 | 国产欧美日韩中文久久-国产欧美日韩在线一区二区不卡-国产欧美日韩在线人成aaaa-国产欧美日韩在线观看一区二区三区-婷婷国产天堂久久综合五月-婷婷99视频精品全部在线观看 | 欧美成人tv在线观看免费-欧美成人tv-欧美成人h版影院在线播放-欧美成人h版影片在线观看-欧美成人h版白雪公主-欧美成人h版 | 国产一级视频在线-国产一级视频免费-国产一级视频久久-国产一级视频播放-日本中文字幕在线视频站-日本中文字幕在线视频 | 四房网,久久久国产99久久国产久,色偷偷男人天堂,九七电影院97网手机版支持,国产人成精品免费视频,五月天最新网站 | 麻豆国产av国片精品有毛-麻豆国产av巨作-麻豆国产av巨作国产剧情-麻豆国产av丝袜白领传媒-麻豆国产av网站-麻豆国产av尤物网站尤物 | 在线观看亚洲-在线观看网址-在线观看网站黄-在线观看网站国产-久久国产一区二区三区-久久国产一区二区 | 成人av免费视频在线观看-成人av鲁丝片一区二区免费-成人av精品一区二区三区四区-成人aⅴ综合视频国产-成人aⅴ片-成年网站免费观看精品少妇人妻av一区二区三区 | www五月天,国产精品视频网站你懂得,精品国产你懂的在线观看,久久伊人成人,国产精品黄页网站在线播放免费,国产va在线 | 亚洲A片一区日韩精品无码-亚洲H成年动漫在线观看不卡-亚洲VA欧美VA天堂V国产综合-亚洲VA天堂VA欧美片A在线-亚洲爆乳精品无码AAA片-亚洲不卡高清免v无码屋 | 四虎永久免费影院在线-四虎永久免费影院-四虎永久免费网站免费观看-四虎永久免费观看-国产精品麻豆综合在线-国产精品麻豆一区二区三区 | 日本久色-日本久久综合视频-日本久久综合-日本久久中文字幕-日本久久一区二区-日本久久网站 | 欧洲亚洲日本-欧洲亚洲视频-欧洲亚洲一区-欧洲亚洲一区二区三区-国产精品第九页-国产精品第六页 老司机午夜精品网站在线观看-老司机午夜精品视频在线观看免费-老司机午夜精品视频观看-老司机午夜精品视频播放-一本色道久久88一综合-一本色道久久88综合日韩精品 | 欧美日日操,日日爱网站,99久久久久久久,日本高清不卡免费,久久免费观看国产精品,秋霞在线观看视频一区二区三区 | 欧美黄网在线-欧美黄色影院-欧美黄色影视-欧美黄色一级网站-99免费看-99免费精品视频 | 人人澡人人爽人人精品-人人澡人人擦人人免费-人人在线碰碰视频免费-人人听力网mp3下载-俺也去最新地址-俺来也俺去也视频久久 | 国产夜色福利院在线观看免费-国产夜趣福利免费视频-国产野花视频天堂视频免费-国产亚洲综合一区二区在线-日韩精品在线观看免费-日韩精品在线电影 | 亚洲精品成人一区-亚洲精品成人网久久久久久-亚洲精品成人久久久影院-亚洲精品成人久久-黑人巨大白妞出浆-黑人巨大vs小早川怜子 欧美日韩亚洲无线码在线观看,国产成人亚洲综合91精品555,欧美成人国产,国产成人青青热久免费精品,亚洲欧美日韩色图,国产三级网站在线观看 | 国产午夜视频在线,国产夜夜操,人人添人人澡人人澡人人人爽,欧美日韩国产综合视频在线看,精品久久一区二区,亚洲欧美一区二区三区久久 | jjzz日本女人-jjzz网站-jjzz亚洲亚洲女人-jjzz在线观看-jlzzjizz-jlzzjlzz亚洲日本 | 四房网,久久久国产99久久国产久,色偷偷男人天堂,九七电影院97网手机版支持,国产人成精品免费视频,五月天最新网站 | 国产三级在线观看视频-国产三级在线免费-国产三级在线免费观看-国产三级自拍亚洲性爱在线-国产三级做爰在线播放-国产三級三級三級A片视频 | 色视频www在线播放国产人成-色射综合-色射网-色射啪-国产91成人-国产91白浆四溢 | 91色在线-91色桃-91色视频在线观看-91色视频在线-91色欧美-91色老久久精品偷偷蜜臀 | 任你躁国语自产二区在线播放-任你懆视频 这里只有精品-人与人特黄一级-人与禽物videos另类-扒开女人下面使劲桶视频-扒开女人下面使劲桶动态图 |