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

最新廣告
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

1  前言


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


2  PCL-818L
數據采集卡


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

 

外部信號(數字量、模擬量)

PCL-818L

計算機

1  PCL-818L信號傳輸過程


2 實踐應用原理圖

3  C++Builder環境下的軟件設計

3.1  DLL技術

   
PCL-818L進行Windows應用程序開發,可以有三種方法。

    (
1)利用“研華”光盤中附帶的GeniDAQ Development開發環境,這是研華針對PCL系列板提供的標準開發環境,其優點是針對性強,缺點是不是通用的開發環境,程序移植性較差;

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


    動態鏈接庫(
Dynamic Link Library,簡稱DLL)是一種基于Windows的程序模塊。之所以稱之為“動態”,是因為它們在運行期間被裝入和鏈接到應用程序的,而不是在編譯期間。DLL中只包含供應用程序運行時裝入該DLL的有關信息,并非是源代碼的復制,因此在Windows中使用DLL可以使多個應用程序之間共享代碼和源程序,從而提高運行效率。下面對幾個關鍵的DLL函數作簡單說明。


    (
1DRV_DeviceOpen ):該函數必須最先被調用,它加載一個設備驅動程序到內存,并確定設備的類型,完成對設備的初始化,使設備做好I/O的準備工作,同時返回一個函數值,若設備驅動成功則返回非“0”的設備句柄,否則返回“0”。


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

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


    (
4DRV_AIVoltageIn ):外部模擬量信號首先在PCL-818L中進行A/D轉換,其結果保存在PCL-818L的內部寄存器中,該函數的作用是把保存在PCL-818L數據采集卡的內部寄存器中的數值讀入計算機中。


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


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


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


1  PCL-818L數據采集卡基地址關系表


3.3  程序設計

 
     為簡明起見,筆者用一個實例闡述
PCL-818L數據采集卡在C++Builder編程環境中最基本的使用,具體步驟如下:


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



創建一個C++Builder工程,并根據實際需要進行窗體的設計,筆者設計的窗體外觀如下:

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


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

PT_DioReadPortByte ptDioReadPortByte;   //數字量輸入數據結構體

PT_DioWritePortByte ptDioWritePortByte;   //數字量輸出數據結構體

PT_AIVoltageIn  ptAIVoltageIn;           //模擬量輸入經A/D后的數據

PT_AIGetConfig  ptAIGetConfig;          //模擬量輸入數據結構體

PT_AOVoltageOut ptAOVoltageOut;        //模擬量輸出數據結構體

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

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

{… …

  DRV_DeviceOpen(0, &hDH);

  … …  }

 //數字量的輸入和輸出

void __fastcall TForm1::TimInTimer(TObject *Sender)

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

    … …

   DRV_DioWritePortByte(hDH,(LPT_DioWritePortByte)&ptDioWritePortByte);

  … … }

//模擬量輸入

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

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

  ptAIVoltageIn.TrigMode = 0;               // 觸發方式 軟件/內部觸發

    … …}

//模擬量輸出

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(); }

    說明:因限于篇幅,上述程序設計只列出部分關鍵代碼。

4  結束語

   
本文充分利用臺灣研華公司提供的動態鏈接庫文件,結合C++Builder可視化的編程環境,在充分發揮PCL-818L數據采集卡各項功能的同時,為用戶提供了比較友好的操作界面和非常靈活的控制方案,用戶可以根據自己的實際需要,來采集現場中各類傳感器的信號,達到不同的控制目的。


參考文獻:

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


[2]
郭文夷,等。C++ Builder 6.0 程序設計[M]。西安:西安電子科技大學出版社,2004

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 波多野结衣的av一区二区三区-波多野结衣的电影-波多野结衣的中文-波多野结衣第二页视频-波多野结衣电影网-波多野结衣电影一区二区 | 亚洲欧洲在线视频-亚洲欧洲在线观看-亚洲欧洲一区二区三区-亚洲欧洲一区二区-久久国产精品最新一区 | 亚洲尹人-亚洲伊人久久综合影院2021-亚洲伊人久久在-亚洲伊人久久网-免费网站在线观看人数在哪里看的-免费网站在线观看国产v片 | 波多野结衣的av一区二区三区-波多野结衣的电影-波多野结衣的中文-波多野结衣第二页视频-波多野结衣电影网-波多野结衣电影一区二区 | 日本b站一卡二不卡三卡四卡-日本a在线天堂-人与动性行为高清在线播放-人体自拍亚洲综合图区-avav456-avaiai114 | 久久精品片-久久精品欧美一区二区-久久精品女人毛片国产-久久精品嫩草影院免费看-在线日韩国产-在线日韩不卡 | 国产精品无码2021在线观看-国产精品污-国产精品网站在线进入-国产精品网站在线观看-四虎免费久久影院-四虎毛片 | 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 国产91av视频在线-国产91av在-国产91av在线-国产91av在线播放-国产91chinese在线观看-国产91l在线播放 | 国产福利91-国产福利2021最新在线观看-国产福利1000-国产二区自拍-国产二级片-国产第一综合另类色区奇米 | 毛片毛片毛片-毛片毛片免费看-毛片美国-毛片美国基地-毛片免费观看-毛片免费观看久久精品 | 国产精品v免费视频-国产精品v毛片免费看观看-国产精品v户外野战-国产精品vr无码专区-国产精品va在线观看无码-国产精品va在线观看丝瓜影院 | 在线日韩亚洲-在线日韩视频-在线日韩欧美一区二区三区-在线日韩欧美-久久精品嫩草影院-久久精品免视看国产盗摄 | 亚洲精品www久久久久久-亚洲精品m在线观看-亚洲精品99久久久久久-亚洲精品97福利在线-黑人解禁-黑人家教 | 国产福利在线视频尤物tv-国产福利在线看-国产福利在线高清导航大全-国产福利在线-国产福利影视-国产福利一区二区麻豆 | 五月天婷婷基地,久久精品1,中文字幕第一页亚洲,99精品国产高清一区二区三区香蕉,国产视频观看,日韩精品在线第一页 | 在线观看黄色网-在线观看黄色片网站-在线观看黄色片-在线观看黄色的网站-久久精品影视-久久精品一区二区 | 在线日韩亚洲-在线日韩视频-在线日韩欧美一区二区三区-在线日韩欧美-久久精品嫩草影院-久久精品免视看国产盗摄 | 国产一级视频在线-国产一级视频免费-国产一级视频久久-国产一级视频播放-日本中文字幕在线视频站-日本中文字幕在线视频 | 国产精品亚洲日韩欧美色窝窝-国产精品亚洲日韩欧美色窝窝色-国产精品亚洲色婷婷-国产精品亚洲色婷婷99久久精品-国产精品亚洲色婷婷久久99精品-国产精品亚洲色图在线观看 | 欧美一级视频精品观看-欧美一级三级-欧美一级日韩一级亚洲一级va-欧美一级日韩一级亚洲一级-中文字幕精品一区-中文字幕精品视频在线观看 | 亚洲 日韩 色 图网站-亚洲 图片 另类 综合 小说-亚洲 无码 欧美 经典-亚洲 校园 春色 另类 图片-亚洲 校园 欧美 国产 另类-亚洲 在线 成 人色色 | 日本xxx在线-日本xxx在线观看免费播放-日本xx高清视频免费观看-日本xx免费看视频mm-日本啊啊啊视频-日本爱v | 亚欧成人毛片一区二区三区四区-亚欧成人乱码一区二区-亚久久伊人精品青青草原2020-亚飞与亚基在线观看-国产综合成人观看在线-国产综合91天堂亚洲国产 | 娇妻在客厅被朋友玩得呻吟漫画-娇小娇小与黑人tubevideos-进去粗粗硬硬紧紧的好爽免费视频-禁欲总裁被C呻吟双腿大张-禁止的爱6浴室吃奶中文字幕-经典乱家庭伦小说 | 99只有精品-99这里只有精品在线-99这里只有精品视频-99这里只有精品66视频-欧美国产视频-欧美国产日韩综合 | 91导航在线-91岛国-91第一页-91短视频在线高清hd-91粉嫩萝控精品福利网站-91粉色视频在线观看 | 性色做爰片在线观看WW-性夜影院午夜看片-性一交一乱一A片-性一交一乱一A片WWW-性一交一乱一交A片久久-性一交一乱一交A片久久四色 | 亚洲 欧美 日韩 在线,97热久久免费频精品99国产成人,另类激情亚洲,久久99九九精品免费,久久综合精品国产一区二区三区,2020精品极品国产色在线观看 | 亚洲国产区男人本色vr-亚洲国产区男人本色-亚洲国产品综合人成综合网站-亚洲国产品有宅男-亚洲国产片在线观看-亚洲国产片精品一区二区三区 | 久久道-久久大香伊蕉在人线国产昨爱-久久大香香蕉国产免费网站-久久大-天天做天天爽天天谢-天天做天天射 | 第一区免费在线观看-无码国产精品一区二区免费网曝-AV熟妇导航网-日韩欧美一区二区三区在线观看 -欧美乱人伦视频-啪啪视频一区 | 一级毛片在线看-一级毛片在线播放免费-一级毛片一级毛片免费毛片-一级毛片一级毛片-九九51精品国产免费看-九号影院 | 欧美一区二区三区香蕉视-欧美一区二区三区网站-欧美一区二区三区四区在线观看-欧美一区二区三区四区五区六区-欧美一区二区三区四区视频-欧美一区二区三区视视频 欧美性xxxxxx性,国产精彩视频在线观看,亚洲欧美视屏,久艹网,国产日韩欧美中文,亚洲欧美经典 | 色8影院-色5月综合-色5月婷婷-扫黑决战免费完整版高清-骚五月天-骚婷婷 | 在线看国产,精品国产一区二区二三区在线观看,国产一区二区三区视频,美女一级毛片免费观看,日韩aa在线观看,成人精品一区二区www | 在线观看黄色网-在线观看黄色片网站-在线观看黄色片-在线观看黄色的网站-久久精品影视-久久精品一区二区 | 日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看 | 九九香蕉-九九线精品视频-九九五月天-九九天天影视-天天干b-天天干2018 | 欧美日韩 国产区 在线观看-欧美日操-欧美日本综合一区二区三区-欧美日本中文字幕-欧美日本中文-欧美日本在线一区二区三区 | 日韩精品在线视频观看-日韩精品在线播放-日韩精品影视-日韩精品一区在线观看-日韩精品一区二区亚洲AV观看-日韩精品一区二区三区在线观看l |