999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LXI的數(shù)據(jù)采集管理軟件設(shè)計(jì)與實(shí)現(xiàn)

2015-04-25 10:00:22葉衛(wèi)東杜霄峰
制造業(yè)自動(dòng)化 2015年3期
關(guān)鍵詞:數(shù)據(jù)庫(kù)方法設(shè)計(jì)

葉衛(wèi)東,杜霄峰

YE Wei-dong, DU Xiao-feng

(北京航空航天大學(xué) 自動(dòng)化與電氣工程學(xué)院,北京 100191)

0 引言

數(shù)據(jù)采集技術(shù)是多學(xué)科交叉、融合的產(chǎn)物,及時(shí)將相關(guān)學(xué)科的研究新成果應(yīng)用到數(shù)據(jù)采集技術(shù)中,研究新的數(shù)據(jù)采集技術(shù)與方法對(duì)于制造企業(yè)采用先進(jìn)制造技術(shù)實(shí)現(xiàn)制造自動(dòng)化、全面提高產(chǎn)品質(zhì)量、增強(qiáng)企業(yè)競(jìng)爭(zhēng)力有著重要意義。熟悉數(shù)據(jù)采集與管理系統(tǒng)的概念、功能和組成情況;利用軟件模塊化思想進(jìn)行系統(tǒng)的軟件設(shè)計(jì),包括軟件的分層設(shè)計(jì),模塊劃分,模塊接口設(shè)計(jì);對(duì)于底層協(xié)議及相關(guān)通訊與命令接口封裝成IVI驅(qū)動(dòng),利用DLL接口實(shí)現(xiàn)調(diào)用。從而實(shí)現(xiàn)軟件上層與底層的隔離,便于日后的維護(hù)升級(jí)以及擴(kuò)展其他通訊方式。

系統(tǒng)分為客戶機(jī)端和服務(wù)器端,客戶機(jī)可通過以太網(wǎng)通訊方式對(duì)數(shù)據(jù)采集各通道參數(shù)進(jìn)行配置和通信,服務(wù)器便可按照配置好的參數(shù)進(jìn)行數(shù)據(jù)采集工作。同時(shí)客戶機(jī)可將服務(wù)器傳輸過來(lái)的實(shí)時(shí)采集數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、濾波、時(shí)域頻域轉(zhuǎn)換等處理;實(shí)現(xiàn)數(shù)據(jù)庫(kù)、文件等格式的存儲(chǔ),數(shù)據(jù)庫(kù)的管理與訪問技術(shù);通過表格、圖形、以及良好的用戶界面友好性,幫助用戶得以更快、更好、更便捷的查補(bǔ)系統(tǒng)問題。

用戶可以通過在PC機(jī)上安裝應(yīng)用程序,通過軟面板操作將設(shè)置的參數(shù)信息準(zhǔn)確的發(fā)送到儀器。并最終生成C/S模式的安裝程序提供給用戶進(jìn)行數(shù)據(jù)采集管理工作。

1 軟件總體方案設(shè)計(jì)

C/S模式也稱C/S架構(gòu),是軟件系統(tǒng)體系結(jié)構(gòu)的一種。用戶在PC機(jī)上操作應(yīng)用程序,通過IVI驅(qū)動(dòng)程序?qū)⒂脩舻恼?qǐng)求交給服務(wù)器端程序進(jìn)行處理,進(jìn)而控制硬件動(dòng)作,實(shí)現(xiàn)對(duì)儀器模塊的遠(yuǎn)程控。主要內(nèi)容是介紹LXI數(shù)據(jù)采集軟件的工作原理、C/S模式應(yīng)用軟件方案設(shè)計(jì)以及IVI驅(qū)動(dòng)軟件設(shè)計(jì)。

本課題中的LXI數(shù)據(jù)采集軟件體系總體結(jié)構(gòu)中包含了客戶端和服務(wù)端的多個(gè)程序,分別完成不同的功能,這些程序共同運(yùn)行和作用才能實(shí)現(xiàn)儀器所有的功能。軟硬件系統(tǒng)整體結(jié)構(gòu)圖如圖1所示。

圖1 軟硬件系統(tǒng)整體結(jié)構(gòu)圖

C/S模式,不依賴外網(wǎng)環(huán)境,很多工作在提交給服務(wù)器端之前,會(huì)首先在客戶端進(jìn)行處理,使得客戶端計(jì)算機(jī)的處理能力得到充分發(fā)揮,很大程度上減輕了服務(wù)器的負(fù)擔(dān),提高了儀器工作效率。LXI數(shù)據(jù)采集軟件C/S模式客戶端的設(shè)計(jì)核心就是軟件設(shè)計(jì),為了增強(qiáng)軟件系統(tǒng)的靈活性和可擴(kuò)展性,方便以后軟件的升級(jí)和維護(hù),在進(jìn)行軟件設(shè)計(jì)時(shí)采用了模塊化的設(shè)計(jì)思想。

數(shù)據(jù)處理模塊接收從各通道讀取回來(lái)的數(shù)據(jù),對(duì)其進(jìn)行預(yù)處理。實(shí)現(xiàn)基本功能有:數(shù)據(jù)工程單位的轉(zhuǎn)換;可根據(jù)項(xiàng)目需求,對(duì)一定階段的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

數(shù)據(jù)存儲(chǔ)模塊可以對(duì)從下位機(jī)接收到的數(shù)據(jù),根據(jù)項(xiàng)目當(dāng)中的實(shí)際需要,可以提供相應(yīng)存儲(chǔ)形式的接口,如csv、txt、二進(jìn)制文件形式,或者.NET相對(duì)優(yōu)越的數(shù)據(jù)庫(kù)存取服務(wù),直接將所需要的數(shù)據(jù)存入數(shù)據(jù)庫(kù)中,還可以直接導(dǎo)出下位機(jī)的原始數(shù)據(jù),供二次開發(fā)使用。

通訊與命令接口模塊包括對(duì)上位機(jī)下位機(jī)通訊協(xié)議的解析,軟件多線程并發(fā)隊(duì)列的設(shè)計(jì)以及TCP/IP網(wǎng)絡(luò)的編程通信等功能。

各功能模塊詳細(xì)設(shè)計(jì)結(jié)構(gòu)如圖2所示。

圖2 C/S模式軟件結(jié)構(gòu)設(shè)計(jì)

2 通訊與命令接口模塊設(shè)計(jì)

本節(jié)中主要介紹基于TCP協(xié)議的數(shù)據(jù)傳輸,多線程并發(fā)隊(duì)列設(shè)計(jì)。

2.1 TCP協(xié)議的數(shù)據(jù)傳輸

TCP連接的建立分為三個(gè)階段:建立連接、數(shù)據(jù)傳輸和斷開連接,即我們通常所說的三次握手。

數(shù)據(jù)采集管理系統(tǒng)基于套接字的面向連接的通信連接過程分為以下三個(gè)步驟:

1)建立連接

當(dāng)上位機(jī)向下位機(jī)發(fā)出連接請(qǐng)求,下位機(jī)給出響應(yīng),雙方即可通信。在上位機(jī)程序中,首要任務(wù)是創(chuàng)建一個(gè)本地套接字對(duì)象:然后連接到的目標(biāo)IP和端口號(hào)。

2)數(shù)據(jù)傳輸

此時(shí)上位機(jī)與下位機(jī)服務(wù)器嘗試連接;連接成功后,就可以接收服務(wù)器發(fā)送的消息了。

3)關(guān)閉連接

在通信完成之后,必須先使用Shutdown方法停止回話,然后關(guān)閉Socket實(shí)例。

圖3 TCP協(xié)議客戶端和服務(wù)器端工作流程圖

2.2 多線程并發(fā)隊(duì)列設(shè)計(jì)

本文在設(shè)計(jì)底層通訊功能時(shí),為使系統(tǒng)具有高效率實(shí)時(shí)性,數(shù)據(jù)存儲(chǔ)和顯示無(wú)延時(shí),程序在設(shè)計(jì)時(shí)將數(shù)據(jù)接收和數(shù)據(jù)處理線程分割開來(lái),使兩個(gè)線程分別執(zhí)行互不影響,相當(dāng)于設(shè)計(jì)模式中的生產(chǎn)者消費(fèi)者問題。這兩個(gè)線程的數(shù)據(jù)共享的公共存儲(chǔ)區(qū)就依靠這個(gè)隊(duì)列。而這樣的方法可能會(huì)引起隊(duì)列并發(fā)訪問。

對(duì)于一個(gè)隊(duì)列來(lái)說,它提供的兩個(gè)最主要的操作就是入隊(duì)和出隊(duì)操作。在多線程的程序當(dāng)中,多個(gè)線程同時(shí)會(huì)對(duì)一個(gè)隊(duì)列進(jìn)行入隊(duì)和出隊(duì)操作。為了保證在入隊(duì)和出隊(duì)時(shí)操作著同一個(gè)隊(duì)列節(jié)點(diǎn),多個(gè)線程并發(fā)進(jìn)行入隊(duì)和出隊(duì)操作,這兩種情況下的操作是線程安全的。下面分別對(duì)Monitor方法,Mutex方法以及Semaphore方法進(jìn)行實(shí)驗(yàn)對(duì)比。

1)Monitor(lock)方法

Monitor 類通過向單個(gè)線程授予對(duì)象鎖來(lái)控制對(duì)對(duì)象的訪問。對(duì)象鎖提供限制訪問代碼塊(通常稱為臨界區(qū))的能力。當(dāng)一個(gè)線程擁有對(duì)象的鎖時(shí),其他任何線程都不能獲取該鎖。

首先進(jìn)行初始化操作,建立共享隊(duì)列,入隊(duì)操作和出隊(duì)操作線程。其次啟動(dòng)入隊(duì)線程和出隊(duì)線程,并為線程執(zhí)行函數(shù)涉及共享隊(duì)列部分加上Monitor.Enter()和Monitor.Exit()互斥鎖,直到入隊(duì)出隊(duì)全部完成,查看程序執(zhí)行時(shí)間。

Lock類為簡(jiǎn)化版的Monitor類,封裝了Monitor.Enter()和Monitor.Exit()函數(shù),性能與Monitor方法一致。

2)Mutex方法

Mutex與Monitor類似,需要注意的是Mutex分兩種:一種是本地Mutex一種是系統(tǒng)級(jí)Mutex,系統(tǒng)級(jí)Mutex可以用來(lái)進(jìn)行跨進(jìn)程間的線程的同步。盡管Mutex比監(jiān)視器更為強(qiáng)大,但是相對(duì)于Monitor類,它所需要的互操作轉(zhuǎn)換更消耗計(jì)算資源。

Mutex與Monitor有一個(gè)很大的區(qū)別:Mutex可以用來(lái)同步屬于不同應(yīng)用程序或者進(jìn)程的線程,而Monitor沒有這個(gè)能力。與Monitor類實(shí)驗(yàn)方法類似,此處不再詳細(xì)說明。

3)Semaphore方法

信號(hào)量的特性如下:信號(hào)量是一個(gè)非負(fù)整數(shù)(表示可以利用的資源數(shù),這里是指的是可用的數(shù)據(jù)緩沖區(qū)中BLOCK的數(shù)量),所有通過它的線程(接收線程和存儲(chǔ)線程)都會(huì)將該整數(shù)減1(通過它當(dāng)然是為了使用資源),當(dāng)該整數(shù)值為零時(shí),所有試圖通過它的線程都將處于等待狀態(tài)。在信號(hào)量上我們定義兩種操作:Unsignal 和 Signal(釋放)。 當(dāng)一個(gè)線程調(diào)用Unsignal操作時(shí),它要么通過然后將信號(hào)量減1(還有相應(yīng)的資源),要么一直等下去(相應(yīng)的資源已經(jīng)沒有),直到信號(hào)量大于1或超時(shí)。Signal實(shí)際上是在信號(hào)量上執(zhí)行加操作,相當(dāng)于提醒別的新的線程已經(jīng)可以使用被釋放的資源。

數(shù)據(jù)緩沖區(qū)結(jié)構(gòu)如圖4所示。

圖4 數(shù)據(jù)緩沖區(qū)結(jié)構(gòu)(隊(duì)列)

實(shí)驗(yàn)設(shè)計(jì)如下:

入隊(duì)信號(hào)量表示現(xiàn)在數(shù)據(jù)隊(duì)列中已經(jīng)存放滿數(shù)據(jù)的數(shù)據(jù)塊的數(shù)量,出隊(duì)信號(hào)量表示現(xiàn)在數(shù)據(jù)隊(duì)列中空數(shù)據(jù)塊的數(shù)量,初始化出隊(duì)信號(hào)量為0。入隊(duì)信號(hào)量初始化為n,初始化兩者最大允許的并發(fā)數(shù)為n。初始化當(dāng)前入隊(duì)和出隊(duì)線程正在處理的數(shù)據(jù)塊的編號(hào)為0。分別啟動(dòng)入隊(duì)線程和出隊(duì)線程。

當(dāng)入隊(duì)信號(hào)量計(jì)數(shù)器大于0時(shí)按照In_Index編號(hào)選定一個(gè)可用數(shù)據(jù)塊對(duì)象,直到當(dāng)前數(shù)據(jù)塊存儲(chǔ)內(nèi)容達(dá)到上限,將出隊(duì)信號(hào)量加1,同時(shí)入隊(duì)信號(hào)量減1,In_Index加1。若未達(dá)到上限,都不執(zhí)行,繼續(xù)填充數(shù)。當(dāng)入隊(duì)計(jì)數(shù)器等于0時(shí)入隊(duì)線程阻塞,In_Index達(dá)到數(shù)據(jù)塊最大時(shí),返回0繼續(xù)重復(fù)之前過程。

當(dāng)入隊(duì)信號(hào)量計(jì)數(shù)器大于0時(shí)按照Out_Index編號(hào)選定一個(gè)可用數(shù)據(jù)塊對(duì)象,直到當(dāng)前數(shù)據(jù)塊存儲(chǔ)內(nèi)容全部取出,將出隊(duì)信號(hào)量加1,同時(shí)入隊(duì)信號(hào)量減1,Out_Index加1。若未達(dá)到上限,都不執(zhí)行,繼續(xù)填充數(shù)。當(dāng)出隊(duì)計(jì)數(shù)器等于0時(shí)出隊(duì)線程阻塞,Out_Index達(dá)到數(shù)據(jù)塊最大時(shí),返回0繼續(xù)重復(fù)之前過程。

基于Semaphore(信號(hào)量)的方法流程圖如圖5所示。

圖5 Semaphore方法流程圖

計(jì)算結(jié)果如表1所示。

表1 三種并發(fā)隊(duì)列訪問方法效率對(duì)比

經(jīng)過實(shí)驗(yàn)得出采用方法三中信號(hào)量的方式效率最高,故本軟件采用此方法,可以有效的提高隊(duì)列的出隊(duì)效率,為軟件圖形的實(shí)時(shí)顯示及數(shù)據(jù)的存儲(chǔ)打下良好的基礎(chǔ)。

3 軟件界面設(shè)計(jì)

3.1 軟件總體設(shè)計(jì)

軟件上方菜單選項(xiàng)有“設(shè)備”和“系統(tǒng)設(shè)置”。其中,“設(shè)備”選項(xiàng)下的內(nèi)容主要用于對(duì)設(shè)備的完全控制,而“系統(tǒng)設(shè)置”選項(xiàng)下的內(nèi)容主要用于實(shí)現(xiàn)軟件開機(jī)自啟動(dòng)、設(shè)置數(shù)據(jù)庫(kù)連接配置;狀態(tài)欄實(shí)時(shí)顯示軟件工作狀態(tài),以及當(dāng)前時(shí)刻接收和存儲(chǔ)的數(shù)據(jù)量;功能區(qū)主要包括通道掃描表設(shè)置,采樣速率設(shè)置,采集方式設(shè)置。

3.2 軟件工作流程

1)新建設(shè)備

打開菜單中的新建設(shè)備選項(xiàng),輸入設(shè)備ID及名稱,配置好需要連接的下位機(jī)采集器的IP及端口號(hào)。

2)通道配置

“通道配置”界面會(huì)以表單形式呈現(xiàn)給用戶,讓其進(jìn)行各采集通道獨(dú)立的參數(shù)配置。根據(jù)傳感器類型,分為兩頁(yè),即“微應(yīng)變”和“電壓輸入”。對(duì)于同一個(gè)通道,每次僅有一個(gè)類型的配置頁(yè)生效,比如用戶在“微應(yīng)變”頁(yè)啟用并配置了通道1,那么在“電壓輸入”頁(yè)將自動(dòng)禁用通道1的配置,反之同理。如圖6所示。

圖6 采集軟件圖形實(shí)時(shí)顯示界面

3)采集配置

“采集配置”界面可以讓用戶進(jìn)行采集方式的配置。根據(jù)類別不同,主要分為“隨機(jī)采樣配置”、“定時(shí)采樣配置”、“觸發(fā)采樣配置”,并且以配置頁(yè)的形式呈現(xiàn)給用戶。

完成以上基本設(shè)置操作后,軟件可以開啟采集,實(shí)時(shí)波形顯示效果如圖7所示,界面中間區(qū)域就是實(shí)時(shí)曲線顯示區(qū),可以觀察采集儀傳送上來(lái)的采集數(shù)據(jù)曲線。圖形顯示區(qū)的右側(cè)為當(dāng)前顯示的通道圖例,如果想要取消哪一個(gè)通道曲線的顯示,可以去掉相應(yīng)通道前的勾選。如果想要放大圖形顯示,在圖形顯示區(qū)想要放大的位置,可完成對(duì)該區(qū)域的顯示放大。

圖7 采集軟件圖形實(shí)時(shí)顯示界面

3.3 實(shí)驗(yàn)結(jié)果

為驗(yàn)證軟件是否正常工作,實(shí)驗(yàn)中開啟了十個(gè)通道的微應(yīng)變隨機(jī)采集,采樣速率設(shè)備120,每個(gè)通道每秒中產(chǎn)生120個(gè)數(shù)據(jù)包。每256個(gè)數(shù)據(jù)包合成一個(gè)文件存儲(chǔ)在相應(yīng)路徑下。相應(yīng)二進(jìn)制文件。

對(duì)于用戶不需要保存原始數(shù)據(jù),只要求在數(shù)據(jù)庫(kù)中看到采集數(shù)據(jù),我們可以通過ADO.NET的SqlBulkCopy方法可將內(nèi)存中大量數(shù)據(jù)快速上傳至數(shù)據(jù)庫(kù)中,保證數(shù)據(jù)的實(shí)時(shí)性以及可靠性。數(shù)據(jù)庫(kù)中查看到的結(jié)果如圖8所示。

圖8 采集數(shù)據(jù)上傳至數(shù)據(jù)庫(kù)

4 結(jié)論

本文在深入研究了LXI相關(guān)協(xié)議及用戶的需求后設(shè)計(jì)了基于LXI的C/S模式數(shù)據(jù)采集管理軟件以及IVI驅(qū)動(dòng)程序設(shè)計(jì),實(shí)現(xiàn)了與采集器的通信,對(duì)采集器進(jìn)行采集配置與命令控制,完成數(shù)據(jù)從采集到存儲(chǔ)為二進(jìn)制文件或數(shù)據(jù)庫(kù)相應(yīng)表中,并且可以實(shí)時(shí)波形顯示等功能,解決了多線程并發(fā)隊(duì)列的高效訪問問題,達(dá)到了預(yù)期目的,取得了良好效果。

[1] 于勁松,李行善.下一代自動(dòng)測(cè)試系統(tǒng)體系結(jié)構(gòu)與關(guān)鍵技術(shù)[J].計(jì)算機(jī)測(cè)量與控制,2005,13(1)∶1-3.

[2] LI Yue-qin,LI Jin-ping.Arbitrary Waveform Generator based on LabVIEW[A].IEEE[C].2009,103-06.

[3] LXI Consortium.LXI Standard Revision 1.4[Z].October, 2013 Edition.

[4] 田韜,張悠慧,汪東升.基于C/S架構(gòu)的可擴(kuò)展嵌入式系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(7)∶1804-1807.

[5] 胡友民,杜潤(rùn)生,楊叔子.制造系統(tǒng)數(shù)據(jù)采集技術(shù)研究[J]. 制造業(yè)自動(dòng)化,2002,24(3)∶23-27.

[6] Stevens W R,范建華,胥光輝,等.TCP/IP詳解卷1∶協(xié)議[J]. 2000.

[7] Michael M M, Scott M L. Simple, fast, and practical nonblocking and blocking concurrent queue algorithms[A].Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing.ACM[C],1996∶267-275.

猜你喜歡
數(shù)據(jù)庫(kù)方法設(shè)計(jì)
瞞天過海——仿生設(shè)計(jì)萌到家
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 亚洲综合天堂网| 99视频在线观看免费| 99久久精彩视频| 99无码熟妇丰满人妻啪啪| 欧美19综合中文字幕| 日韩区欧美区| 欧美综合中文字幕久久| 2021无码专区人妻系列日韩| 国产制服丝袜91在线| 亚洲VA中文字幕| 丁香婷婷综合激情| 国产精品浪潮Av| 亚洲一区无码在线| 国产视频一二三区| 亚洲制服丝袜第一页| 免费看一级毛片波多结衣| 97se亚洲综合在线天天| 久久亚洲日本不卡一区二区| 色综合激情网| 天堂成人在线| 亚洲精品第五页| 蜜芽一区二区国产精品| 国产电话自拍伊人| 18禁色诱爆乳网站| 亚洲九九视频| 原味小视频在线www国产| 久久综合干| 日韩av手机在线| 国产91高跟丝袜| 国产午夜福利亚洲第一| 日本欧美成人免费| 波多野结衣二区| 在线免费无码视频| 91偷拍一区| 最新日韩AV网址在线观看| 日韩在线视频网| 国产成人你懂的在线观看| 国产成人av大片在线播放| 欧美五月婷婷| 好吊色妇女免费视频免费| 国产亚洲现在一区二区中文| 热99精品视频| 日韩毛片免费视频| 国产视频入口| 国产好痛疼轻点好爽的视频| 四虎国产在线观看| 亚洲天堂精品在线| 22sihu国产精品视频影视资讯| 日韩国产黄色网站| 久久黄色免费电影| 无码区日韩专区免费系列| 欧美亚洲一区二区三区导航| 精品少妇人妻无码久久| 久久国产精品麻豆系列| 亚洲欧美在线综合图区| 国产欧美日韩18| 欧美精品H在线播放| 国产精品va免费视频| 亚洲爱婷婷色69堂| 色老二精品视频在线观看| 亚洲水蜜桃久久综合网站| 91精品国产自产91精品资源| 国产成人凹凸视频在线| 日韩国产精品无码一区二区三区| 婷婷成人综合| 国产成人精品高清不卡在线 | 亚洲欧美另类日本| 欧美日韩成人在线观看| 欧洲欧美人成免费全部视频| 中文字幕色在线| 国产精品冒白浆免费视频| 国产在线97| 国产精选自拍| 日本少妇又色又爽又高潮| 婷婷在线网站| 久草中文网| 成人av专区精品无码国产| www亚洲天堂| 91精品国产一区| 国产视频只有无码精品| 欧美国产综合视频| 美女扒开下面流白浆在线试听|