国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VC++與阿爾泰PCI8510同步采集卡主軸測(cè)控系統(tǒng)開(kāi)發(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)開(kāi)發(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ì)競(jìng)爭(zhēng)日趨激烈,這也迫使生產(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)的開(kāi)發(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開(kāi)發(fā)工具結(jié)合PCI8510同步數(shù)據(jù)采集卡設(shè)計(jì)了一套主軸系統(tǒng)測(cè)控程序,通過(guò)友好的人機(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)硬件簡(jiǎn)介

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)過(guò)程監(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采集過(guò)程

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)過(guò)程較為麻煩。

為滿足對(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è)置

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

3.2 PCI8510動(dòng)態(tài)鏈接庫(kù)調(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)鏈接庫(kù)的調(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ì)不起,無(wú)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()打開(kāi)文件,利用fprintf()進(jìn)行文件的寫操作,完成后通

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

4 結(jié) 語(yǔ)

本文介紹了利用VC++6.0結(jié)合PCI8510多通道同步數(shù)據(jù)采集卡主軸系統(tǒng)測(cè)控程序的設(shè)計(jì),重點(diǎn)闡述了PCI8510動(dòng)態(tài)鏈接庫(kù)的調(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í)語(yǔ)言控制特定的數(shù)據(jù)采集卡實(shí)現(xiàn)對(duì)外部設(shè)備的監(jiān)控,在工程應(yīng)用方面具有重要意義。

參考文獻(xiàn)

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

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

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

[4]PCI8510同步采集卡WIN2000/XP驅(qū)動(dòng)程序使用說(shuō)明書(shū)(版本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)
自贡市| 冷水江市| 平利县| 湾仔区| 封开县| 上犹县| 岫岩| 平舆县| 平顺县| 固原市| 逊克县| 长寿区| 巴楚县| 博兴县| 双桥区| 东港市| 中山市| 罗定市| 金阳县| 揭东县| 湖口县| 新巴尔虎右旗| 古浪县| 门头沟区| 霸州市| 蒲城县| 溆浦县| 泗阳县| 紫阳县| 天峨县| 嘉荫县| 黄平县| 阿拉善盟| 西吉县| 唐山市| 濉溪县| 修文县| 莫力| 云南省| 蓬安县| 沙洋县|