• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VC++與阿爾泰PCI8510同步采集卡主軸測(cè)控系統(tǒng)開發(fā)

      2017-01-12 18:20:27崔貝貝趙川
      物聯(lián)網(wǎng)技術(shù) 2016年11期
      關(guān)鍵詞:采集卡參數(shù)設(shè)置線程

      崔貝貝++趙川

      摘 要:實(shí)時(shí)信號(hào)處理是機(jī)床主軸運(yùn)行監(jiān)測(cè)的重要內(nèi)容,對(duì)數(shù)據(jù)采集卡提出高速高精度要求。文章介紹了利用VC++6.0對(duì)PCI8510同步數(shù)據(jù)采集卡進(jìn)行控制的方法,實(shí)現(xiàn)采集卡的參數(shù)設(shè)置,采用多線程技術(shù)實(shí)現(xiàn)數(shù)據(jù)的多通道實(shí)時(shí)顯示,創(chuàng)建文件保存數(shù)據(jù),完成測(cè)控系統(tǒng)開發(fā)。

      關(guān)鍵詞:機(jī)床主軸;VC++6.0;同步數(shù)據(jù)采集;多線程技術(shù)

      中圖分類號(hào):TH162;TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2016)11-00-02

      0 引 言

      隨著社會(huì)的發(fā)展與進(jìn)步,企業(yè)間的經(jīng)濟(jì)競爭日趨激烈,這也迫使生產(chǎn)領(lǐng)域?qū)α悴考闹圃焯岢龈叩囊?。高檔數(shù)控機(jī)床是主要的制造設(shè)備,主軸系統(tǒng)是其關(guān)鍵部件。主軸系統(tǒng)的運(yùn)行狀態(tài)與產(chǎn)品質(zhì)量、精度以及人身安全等息息相關(guān),因而對(duì)主軸系統(tǒng)進(jìn)行有效測(cè)控十分必要。采用不同類型的傳感器對(duì)主軸系統(tǒng)進(jìn)行多方位多角度觀測(cè)能夠提高其測(cè)控效率和準(zhǔn)確度[1]。數(shù)據(jù)的高速采集、實(shí)時(shí)顯示與保存是主軸測(cè)控程序的關(guān)鍵內(nèi)容。本文采用VC++6.0作為軟件系統(tǒng)的開發(fā)工具,結(jié)合阿爾泰PCI8510同步數(shù)據(jù)采集卡,設(shè)計(jì)主軸測(cè)控程序,從板卡設(shè)置與驅(qū)動(dòng)、多通道數(shù)據(jù)實(shí)時(shí)顯示、數(shù)據(jù)采集與保存等方面闡述了相關(guān)技術(shù)[2]。

      1 系統(tǒng)結(jié)構(gòu)

      將主軸系統(tǒng)作為測(cè)控對(duì)象,系統(tǒng)的整體構(gòu)成如圖1所示。為了實(shí)現(xiàn)對(duì)多類型傳感器高速高精度的數(shù)據(jù)采集、實(shí)時(shí)顯示與保存,本文利用VC++6.0開發(fā)工具結(jié)合PCI8510同步數(shù)據(jù)采集卡設(shè)計(jì)了一套主軸系統(tǒng)測(cè)控程序,通過友好的人機(jī)交互界面完成采集卡多參數(shù)設(shè)置和驅(qū)動(dòng),實(shí)現(xiàn)有效的數(shù)據(jù)采集。整個(gè)系統(tǒng)的工作原理為傳感器對(duì)主軸系統(tǒng)進(jìn)行多角度測(cè)量,信號(hào)經(jīng)調(diào)理電路傳至采集卡,采集模塊完成模數(shù)轉(zhuǎn)換后傳至計(jì)算機(jī),由VC++6.0編譯的程序?qū)π盘?hào)進(jìn)行讀取、顯示和保存[2]。

      2 系統(tǒng)硬件簡介

      2.1 阿爾泰PCI8510

      本系統(tǒng)采用阿爾泰PCI8510采集卡,該卡是一種基于PCI總線的數(shù)據(jù)采集卡,可直接插在IBM-PC/AT或與之兼容的計(jì)算機(jī)內(nèi)的任一PCI插槽中,構(gòu)成實(shí)驗(yàn)室、產(chǎn)品質(zhì)量檢測(cè)中心等各領(lǐng)域的數(shù)據(jù)采集、波形分析和處理系統(tǒng)[3]。也可構(gòu)成工業(yè)生產(chǎn)過程監(jiān)控系統(tǒng)。A/D轉(zhuǎn)換器類型為AD7612,PCI8510采用8通道8芯片獨(dú)立工作的通道切換方法,支持非空查詢、半滿查詢、DMA三種數(shù)據(jù)讀取方式,設(shè)定觸發(fā)源DTR輸入范圍為標(biāo)準(zhǔn)TTL電平,程控放大器默認(rèn)為AD8251。其主要技術(shù)指標(biāo)有轉(zhuǎn)換精度16 B,采樣頻率1 Hz~500 kHz,8通道同步,AD轉(zhuǎn)換時(shí)間≤1.45,可選軟件內(nèi)部觸發(fā)。在使用時(shí)只需調(diào)用PCI8510.dll即可。

      2.2 非空方式AD采集過程

      PCI8510采集卡的數(shù)據(jù)讀取分為非空、半滿和DMA三種方式。

      (1)非空方式適用于批量讀取、高速連續(xù)的信號(hào)采集;

      (2)半滿方式需要調(diào)用相應(yīng)的函數(shù)查詢存儲(chǔ)器的半滿狀態(tài),查詢狀態(tài)讀取AD數(shù)據(jù);

      (3)DMA方式不經(jīng)CPU,直接將數(shù)據(jù)從設(shè)備讀到用戶緩沖區(qū)中。但DMA方式采用了多緩沖級(jí)鏈的方式,需要密切關(guān)注緩沖區(qū)狀態(tài),實(shí)現(xiàn)過程較為麻煩。

      為滿足對(duì)主軸狀態(tài)的監(jiān)測(cè)和大量數(shù)據(jù)的采集與保存,實(shí)現(xiàn)高速連續(xù)采集與方便編程,本文選擇非空方式進(jìn)行數(shù)據(jù)讀取。使用非空方式讀取AD數(shù)據(jù)的流程如圖2所示[4]。

      3 系統(tǒng)軟件設(shè)計(jì)

      3.1 程序流程圖及采集卡設(shè)置

      程序開發(fā)采用VC++6.0 MFC技術(shù),主要包括采集卡設(shè)置、數(shù)據(jù)采集、實(shí)時(shí)顯示與保存等模塊。程序運(yùn)行流程如圖3所示。圖4所示為采集卡參數(shù)設(shè)置界面。

      3.2 PCI8510動(dòng)態(tài)鏈接庫調(diào)用及數(shù)據(jù)采集

      阿爾泰公司提供了有關(guān)PCI8510采集卡的相關(guān)數(shù)據(jù)文件,包括PCI8510.dll,PCI8510.h,PCI8510.lib。將上述三種文件拷貝到工程目錄下,在Header Files中添加PCI8510.h,在工程屬性里選擇配置屬性,設(shè)置linker中的Input項(xiàng)Addtional Dependencies為PCI8510.lib,完成設(shè)置并保存。此時(shí)已完成PCI8510動(dòng)態(tài)鏈接庫的調(diào)用設(shè)置。啟動(dòng)程序后,在設(shè)置界面完成相應(yīng)的參數(shù)設(shè)置。在實(shí)際程序中,需創(chuàng)建設(shè)備對(duì)象Device=PCI8510_CreateDevice(0)保存在App中,并判斷PCI8510采集卡的安裝狀態(tài)。

      if (hDevice == INVALID_HANDLE_VALUE)

      {if (hDevice == INVALID_HANDLE_VALUE)

      {AfxMessageBox("對(duì)不起,無PCI設(shè)備存在...", MB_ICONERROR);

      return;}

      }

      調(diào)用或定義如下函數(shù):

      PCI8510_InitDeviceProAD(hDevice,&ADPara); //初始化設(shè)備

      PCI8510_StartDeviceProAD(hDevice); //啟動(dòng)設(shè)備

      PCI8510_ReleaseDevice(hDevice ); //釋放設(shè)備對(duì)象

      UINT ReadDataThread_Npt(PVOID hWnd) //數(shù)據(jù)采集函數(shù)

      PCI8510_ReadDeviceProAD_Npt

      (hDevice, ADBuffer[nReadIndex], nReadSizeWords, (LONG*)ReadSizeWords) //數(shù)據(jù)讀取函數(shù)

      UINT ProcessDataThread1(PVOID pThreadPara1) //數(shù)據(jù)處理函數(shù)

      3.3 多線程及多通道數(shù)據(jù)實(shí)時(shí)顯示

      在32位Windows系統(tǒng)中,可以進(jìn)行多任務(wù)處理,也可多進(jìn)程同時(shí)運(yùn)行。每個(gè)應(yīng)用程序的運(yùn)行實(shí)例即為一個(gè)進(jìn)程。線程是組成進(jìn)程的基本單元,每個(gè)進(jìn)程都必須有一個(gè)主線程,主線程可以建立其他線程。一個(gè)進(jìn)程中的線程是并行執(zhí)行的,每個(gè)線程的CPU時(shí)間由系統(tǒng)分配[5]。PCI8510采集卡是多通道同步采集卡,在進(jìn)行多通道數(shù)據(jù)實(shí)時(shí)顯示操作時(shí),需要為每個(gè)通道建立相應(yīng)的線程。由于數(shù)據(jù)采集具有高速的特點(diǎn),需要先建立數(shù)據(jù)采集線程及處理線程并懸掛。單通道函數(shù)定義如下:

      m_hReadThread = AfxBeginThread(ReadDataThread_Npt, NULL, THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED ); //創(chuàng)建數(shù)據(jù)采集線程

      m_hProcThread1= AfxBeginThread(ProcessDataThread1, this, THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);

      //創(chuàng)建數(shù)據(jù)處理線程

      在數(shù)據(jù)第一階段采集結(jié)束后激活懸掛的線程,獲取數(shù)據(jù)顯示對(duì)話框界面:

      CDzzDlg*pDzzDlg =(CDzzDlg*)pThreadPara1;//獲取對(duì)話框

      單通道數(shù)據(jù)在編輯框中實(shí)時(shí)顯示:

      pDzzDlg->m_Edit1.SetWindowText(str1);

      3.4 數(shù)據(jù)保存

      為了方便數(shù)據(jù)的移植和進(jìn)一步處理,選擇創(chuàng)建文檔文件保存多通道數(shù)據(jù)。定義CFileDialog dlg(FALSE, NULL, filename, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "All Files(*.txt)|*.txt||", AfxGetMainWnd())創(chuàng)建文件對(duì)象,采用fopen()打開文件,利用fprintf()進(jìn)行文件的寫操作,完成后通

      過fclose()關(guān)閉文件。

      4 結(jié) 語

      本文介紹了利用VC++6.0結(jié)合PCI8510多通道同步數(shù)據(jù)采集卡主軸系統(tǒng)測(cè)控程序的設(shè)計(jì),重點(diǎn)闡述了PCI8510動(dòng)態(tài)鏈接庫的調(diào)用,板卡的初始化及啟動(dòng)與控制,多線程實(shí)現(xiàn)多通道數(shù)據(jù)的實(shí)時(shí)顯示,創(chuàng)建數(shù)據(jù)文件保存數(shù)據(jù)等技術(shù)能夠?qū)χ鬏S系統(tǒng)進(jìn)行有效監(jiān)測(cè)。利用高級(jí)語言控制特定的數(shù)據(jù)采集卡實(shí)現(xiàn)對(duì)外部設(shè)備的監(jiān)控,在工程應(yīng)用方面具有重要意義。

      參考文獻(xiàn)

      [1]岳宇賓,韓秋實(shí),李啟光,等.基于Visual C++6.0的數(shù)控凸輪軸磨床工藝數(shù)據(jù)庫開發(fā)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2014(7):117-119.

      [2]陳功,張,高喻,等.基于VC++的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2007,20(6):114-115,122.

      [3]PCI8510同步采集卡使用說明書(版本6.021)[Z].

      [4]PCI8510同步采集卡WIN2000/XP驅(qū)動(dòng)程序使用說明書(版本V6.000)[Z].

      [5]蘇岳龍,李貽斌,宋銳.基于VC++6.0的高速串口通信數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2005(5):147-148.

      猜你喜歡
      采集卡參數(shù)設(shè)置線程
      高精度AD采集卡性能測(cè)試及評(píng)價(jià)方法研究
      面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
      逃生疏散模擬軟件應(yīng)用
      淺談linux多線程協(xié)作
      并行高速采樣在地震物理模擬采集中的應(yīng)用
      PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
      電子器件(2015年5期)2015-12-29 08:43:12
      動(dòng)車環(huán)境下U900異頻切換參數(shù)設(shè)置探討
      基于MATLAB仿真的井下變壓器參數(shù)設(shè)置研究
      Linux線程實(shí)現(xiàn)技術(shù)研究
      么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      青神县| 右玉县| 泾源县| 香格里拉县| 临漳县| 若尔盖县| 安宁市| 汝城县| 松桃| 虞城县| 桃江县| 弥勒县| 社旗县| 奎屯市| 和硕县| 平潭县| 互助| 盈江县| 钟山县| 澳门| 韩城市| 岗巴县| 木兰县| 长岛县| 抚顺县| 宜君县| 贺兰县| 喀什市| 曲麻莱县| 阜新| 锡林浩特市| 宁南县| 保山市| 西昌市| 天峨县| 井陉县| 哈巴河县| 甘德县| 九寨沟县| 玉树县| 拜城县|