• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于NI PSP協(xié)議的分布式測試系統(tǒng)軟件設計

    2019-10-29 08:55:46娟2高艷軍段海彬
    計算機測量與控制 2019年10期

    高 濤,常 娟2,高艷軍,段海彬

    (1.西安翔迅科技有限責任公司,西安 710068; 2.空軍工程大學 基礎部,西安 710051)

    0 引言

    分布式測試系統(tǒng)是計算機網(wǎng)絡技術的產(chǎn)物,是一種通過局域網(wǎng)或Internet,把分布于不同地點、獨立完成特定測試功能的計算機連接起來,達到測試資源共享、分散操作、集中管理、協(xié)同工作等目的網(wǎng)絡測試系統(tǒng)[1]。測試計算機(下位機)一般位于測試現(xiàn)場的被測對象附近,可獨立完成數(shù)據(jù)采集和預處理任務,并通過以太網(wǎng)將數(shù)據(jù)傳輸給控制計算機(上位機)[2]。上位機接收各下位機傳送來的數(shù)據(jù)進行儲存和分析處理,以圖形化的方式顯示數(shù)據(jù),生成測試報表供用戶查看。

    按照通常的分布式測試軟件設計方法,需要在下位機軟件中實現(xiàn)數(shù)據(jù)采集和組包操作,然后通過以太網(wǎng)完成數(shù)據(jù)包的發(fā)送;在上位機軟件中通過Winsock API函數(shù)接收數(shù)據(jù)包,并按照約定的數(shù)據(jù)包格式完成數(shù)據(jù)的拆包和提取顯示[3]。進行軟件開發(fā)時,為保證數(shù)據(jù)傳輸?shù)目煽啃?,需要考慮數(shù)據(jù)包校驗、錯誤重發(fā)、FIFO緩存隊列等流程的設計,開發(fā)難度大且容易出錯,對軟件開發(fā)人員有比較高的要求。此外,當系統(tǒng)中有多個下位機同時工作時,大量測試數(shù)據(jù)通過以太網(wǎng)傳輸?shù)缴衔粰C的過程中,如何保證數(shù)據(jù)的一致性將成為一個難點[4]。

    為了簡化這種應用的軟件開發(fā),NI公司提供了網(wǎng)絡變量庫(Network Variable Library)。該函數(shù)庫基于NI PSP(NI Publish-Subscribe Protocol)協(xié)議,通過網(wǎng)絡變量對底層網(wǎng)絡通訊協(xié)議(TCP/IP和DDE)進行了抽象[5]。用戶在NI公司的LabVIEW、LabWindows/CVI和NI Measurement Studio開發(fā)環(huán)境中使用網(wǎng)絡變量庫提供的API函數(shù),可以在不影響系統(tǒng)性能的情況下,在多個系統(tǒng)或多個應用程序之間靈活的傳遞數(shù)據(jù)。

    1 分布式測試系統(tǒng)設計

    某分布式測試系統(tǒng)采用星型網(wǎng)絡結構,多臺遠程數(shù)據(jù)采集終端RTU(Remote Terminal Unit)作為下位機布置在測試現(xiàn)場,每臺RTU有50個采集通道,每一臺RTU均通過以太網(wǎng)與遠離測試現(xiàn)場的測控計算機(上位機)相連。這種星型結構的優(yōu)點是網(wǎng)絡控制容易、便于擴充、可靠性好[6]。

    開始測試時,上位機通過以太網(wǎng)發(fā)送命令控制RTU進行數(shù)據(jù)采集,RTU以每個通道10k/s的采樣率進行數(shù)據(jù)采集,并通過以太網(wǎng)將數(shù)據(jù)傳輸?shù)缴衔粰C;上位機接收RTU傳輸?shù)臏y試數(shù)據(jù),對不同RTU的數(shù)據(jù)分別進行解析和顯示,供用戶查看。RTU的AD采樣精度為16Bit,通過計算可以得出每臺RTU在1秒內采集的數(shù)據(jù)量為10 k×50 ch×2 Byte=1 000 kByte。

    操作人員在遠離測試現(xiàn)場的地點通過操作測控計算機查看系統(tǒng)中各個RTU采集的測試數(shù)據(jù),支持多個測控計算機共享數(shù)據(jù),分布式系統(tǒng)的組成如圖1所示。

    圖1 分布式系統(tǒng)組成框圖

    2 軟件設計與實現(xiàn)

    該系統(tǒng)中的RTU和測控計算機均運行Windows操作系統(tǒng),各個RTU運行相同的下位機軟件,通過配置文件給不同的RTU分配不同的IP地址,主要功能模塊包括數(shù)據(jù)采集、組包、共享變量數(shù)據(jù)發(fā)布。測控計算機運行上位機軟件,同樣通過配置文件中的IP地址來控制不同的RTU協(xié)同工作,主要功能模塊包括共享變量數(shù)據(jù)訂閱、數(shù)據(jù)解包、處理、顯示和存儲。上下位機軟件均使用NI LabWindows/CVI環(huán)境進行開發(fā)。

    下位機軟件作為測試數(shù)據(jù)的發(fā)布者,上位機軟件作為數(shù)據(jù)的訂閱者。在下位機和上位機之間使用NI PSP協(xié)議進行數(shù)據(jù)傳輸,首先需要創(chuàng)建共享網(wǎng)絡變量并進行配置。

    共享網(wǎng)絡變量被部署到一個用于在網(wǎng)絡上托管該變量的共享變量引擎SVE(Shared Variable Engine)。SVE是共享網(wǎng)絡變量的服務器,所有對共享變量的應用(讀或寫)都是客戶端。網(wǎng)絡變量首先向共享變量引擎服務器發(fā)送數(shù)據(jù),然后該服務器將這些數(shù)據(jù)發(fā)布給網(wǎng)絡上的所有節(jié)點。因為數(shù)據(jù)是采用“發(fā)布-訂閱”消息結構來傳輸?shù)模钥蛻舳斯?jié)點無需編寫復雜的代碼就可以訪問網(wǎng)絡變量數(shù)據(jù)[7]。

    圖2 共享變量傳輸過程

    共享變量的創(chuàng)建和配置可以采用以下兩種方式:一是使用NI提供的Distributed System Manager軟件,在軟件中以圖形化的方式創(chuàng)建共享網(wǎng)絡變量,另一種是使用Network Variable Library庫函數(shù),通過編程的方式創(chuàng)建共享網(wǎng)絡變量[8]。

    a)顯式創(chuàng)建共享網(wǎng)絡變量

    圖3 分布式系統(tǒng)管理器軟件界面

    安裝完LabWindows/CVI開發(fā)環(huán)境后,系統(tǒng)中安裝了“Distributed System Manager”軟件工具,軟件路徑如下:“開始所有程序National InstrumentsDistributed System Manager”,軟件界面如圖3所示。

    使用Distributed System Manager軟件創(chuàng)建共享變量的步驟如下:

    1)選中“l(fā)ocalhost”項,通過鼠標右鍵菜單的“添加進程”創(chuàng)建共享變量進程“my_process”;

    2)選中剛創(chuàng)建的進程,通過鼠標右鍵菜單“添加變量”創(chuàng)建共享變量“my_variable”,并設置變量類型和網(wǎng)絡,同一個進程下可創(chuàng)建多個變量;

    3)選中剛創(chuàng)建的進程,通過鼠標右鍵菜單進行“啟動進程”、“停止進程”和 “刪除進程”等操作。

    當網(wǎng)絡變量創(chuàng)建好后,網(wǎng)絡中的其它計算機就可以通過網(wǎng)絡變量路徑來共享數(shù)據(jù)。共享變量的網(wǎng)絡路徑包括計算機名稱、進程名稱以及共享變量名。例如:“192.168.1.100my_processmy_variable”,其中“192.168.1.100”是數(shù)據(jù)發(fā)布計算機的IP地址,“my_process”是網(wǎng)絡變量進程,“my_variable”是網(wǎng)絡變量名[9]。

    b)編程創(chuàng)建共享變量

    LabWindows/CVI開發(fā)環(huán)境提供了Network Variable Library(網(wǎng)絡變量函數(shù)庫)來方便軟件開發(fā)人員在程序中對共享變量進行操作。Network Variable Library庫函數(shù)結構如圖4所示,主要功能包括共享變量配置、數(shù)據(jù)包處理、變量發(fā)布和訂閱操作等。

    圖4 Network Variable Library庫函數(shù)結構

    通過編程方式使用共享網(wǎng)絡變量更為靈活,下面結合軟件設計詳細描述網(wǎng)絡變量的編程使用方法。

    2.1 下位機軟件設計

    該分布式系統(tǒng)的下位機負責采集測試現(xiàn)場的數(shù)據(jù),是數(shù)據(jù)的發(fā)布端。下位機軟件的流程設計如圖5所示。

    圖5 下位機軟件設計流程圖

    第一步,首先創(chuàng)建網(wǎng)絡變量進程,通過調用函數(shù)庫中的CNVNewProcess("my_process")函數(shù)新建名為"my_process"的網(wǎng)絡變量進程,并使用CNVStartProcess("my_process")函數(shù)來啟動該進程。

    第二步,創(chuàng)建網(wǎng)絡變量,通過調用網(wǎng)絡變量函數(shù)庫中的CNVNewVariable("my_variable")函數(shù)新建名為"my_variable"的網(wǎng)絡變量,使用CNVSetVariableAttribute()函數(shù)可以對該網(wǎng)絡變量的屬性進行設置,比如將CNVVariableSingleWriterAttribute屬性設置為1,說明該網(wǎng)絡變量只有1個寫入者;CNVVariableServerBufferMaxItemsAttribute屬性可以設置在服務器端能容納數(shù)據(jù)項的數(shù)量。

    第三步,使用網(wǎng)絡變量函數(shù)庫中的CNVCreateWriter()函數(shù)在剛才新建的網(wǎng)絡變量地址:“IPmy_processmy_variable”創(chuàng)建數(shù)據(jù)發(fā)布者;當需要更新的數(shù)據(jù)量較大時,可以使用CNVCreateBufferedWriter()函數(shù)來創(chuàng)建發(fā)送緩存區(qū),提高數(shù)據(jù)的發(fā)送效率。創(chuàng)建完成后可以使用CNVGetConnectionAttribute()函數(shù)獲得與共享網(wǎng)絡變量的連接狀態(tài)。

    第四步,發(fā)布數(shù)據(jù),通過共享網(wǎng)絡變量傳輸?shù)臄?shù)據(jù)類型可以是單個變量、字符串,也可以是一個數(shù)據(jù)結構。

    共享網(wǎng)絡變量的數(shù)據(jù)類型如表1所示,用戶可以根據(jù)需要設置共享變量的數(shù)據(jù)類型。軟件在通過共享網(wǎng)絡變量進行數(shù)據(jù)發(fā)布和讀取時,均是按已設定的數(shù)據(jù)類型進行操作,不用考慮在傳輸中的數(shù)據(jù)轉換問題。

    表1 共享網(wǎng)絡變量數(shù)據(jù)類型

    當進行單一數(shù)據(jù)類型的數(shù)據(jù)傳輸時,通過使用CNVCreateScalarDataValue()函數(shù)創(chuàng)建不同類型的數(shù)據(jù),再通過CNVWrite()函數(shù)發(fā)布到共享共享網(wǎng)絡變量。

    當進行復雜數(shù)據(jù)的傳輸時,需要將發(fā)送的數(shù)據(jù)組包為結構體進行發(fā)送。將數(shù)據(jù)組包為結構體的方法如下:

    1)首先根據(jù)需要定義網(wǎng)絡變量數(shù)據(jù),數(shù)據(jù)類型為:CNVData。使用CNVCreateArrayDataValue()函數(shù)創(chuàng)建數(shù)組型的數(shù)據(jù);使用CNVCreateScalarDataValue()函數(shù)創(chuàng)建數(shù)值型的數(shù)據(jù);最后使用CNVCreateStructDataValue()函數(shù)創(chuàng)建包含若干個網(wǎng)絡變量數(shù)據(jù)的結構體,示例代碼如下所示;

    CNVData data, fields[3]; //3個變量數(shù)據(jù)

    Check(CNVCreateArrayDataValue (&fields[0], CNVInt16, &dataArray, 1, dims)); //數(shù)據(jù)數(shù)組

    Check(CNVCreateScalarDataValue (&fields[1], CNVUInt16, 0)); //通道號

    Check(CNVCreateScalarDataValue (&fields[2], CNVUInt32, 0)); //包序號

    Check(CNVCreateStructDataValue (&data, fields, FIELDSIZE));

    2)接下來將數(shù)據(jù)填充到剛才創(chuàng)建的結構體中,示例代碼如下:

    Check(CNVSetArrayDataValue (fields[0], CNVInt16, DataBuf, 1, dims));

    Check(CNVSetScalarDataValue (fields[1], CNVUInt16, i));

    Check(CNVSetScalarDataValue (fields[2], CNVUInt32, pkgIndex++));

    Check(CNVSetStructDataValue (data, fields, FIELDSIZE));

    3)最后使用CNVPutDataInBuffer()函數(shù)將組包好的數(shù)據(jù)通過數(shù)據(jù)發(fā)布者發(fā)布到共享網(wǎng)絡變量。

    第五步,軟件退出前,使用CNVDispose()函數(shù)釋放創(chuàng)建數(shù)據(jù)發(fā)布者或發(fā)布緩存,最后使用CNVFinish()停止共享變量引擎。

    2.2 上位機軟件設計

    上位機負責讀取共享網(wǎng)絡變量的數(shù)據(jù)并進行處理,是數(shù)據(jù)的訂閱端。上位機軟件的流程設計如圖6所示。

    圖6 上位機軟件設計流程圖

    第一步,使用CNVCreateSubscriber()函數(shù)在網(wǎng)絡變量地址創(chuàng)建數(shù)據(jù)訂閱者;如果數(shù)據(jù)量較大,則使用CNVCreateBufferedSubscriber()函數(shù)創(chuàng)建數(shù)據(jù)訂閱緩存。通過使用緩沖區(qū),可以解決對于一個變量讀/寫速度的波動問題。當讀出操作偶爾比寫入操作慢的情況可能會導致一些更新數(shù)據(jù)的丟失,如果應用可以容忍數(shù)據(jù)丟失,就不需要使用緩沖區(qū);但是如果讀取操作必須獲得每個更新數(shù)據(jù),就需要使用緩沖區(qū)[10]。

    第二步,使用CNVGetConnectionAttribute()函數(shù)獲得與網(wǎng)絡變量的連接狀態(tài),如果連接異常,提示用戶檢查錯誤原因并退出;

    第三步,創(chuàng)建數(shù)據(jù)接收線程,不斷的從網(wǎng)絡變量讀取數(shù)據(jù),解析數(shù)據(jù)并進行顯示,同時將數(shù)據(jù)寫入記錄文件中存儲。

    從共享網(wǎng)絡變量接收數(shù)據(jù)并提取出有效數(shù)據(jù)的方法與發(fā)布端相反,步驟如下:

    1)使用CNVGetDataFromBuffer()函數(shù)檢查網(wǎng)絡變量是否有新數(shù)據(jù)到達;

    2)使用CNVGetNumberOfStructFields()函數(shù)獲取接收到的結構體數(shù)量,

    3)使用CNVGetStructFields()函數(shù)獲取結構體數(shù)據(jù);

    4)使用CNVGetArrayDataValue()函數(shù)獲取結構體中的數(shù)組元素,使用CNVGetScalarDataValue()函數(shù)獲取結構體中的數(shù)據(jù)值;

    5)測試完成后使用CNVDisposeData()函數(shù)釋放網(wǎng)絡變量接收緩存;

    如果不需要獲得網(wǎng)絡變量的每個更新數(shù)據(jù),僅獲取最新數(shù)據(jù)進行顯示,那么上面的5個步驟可以簡化為以下3個:

    1)使用CNVGetConnectionAttribute()函數(shù)通過CNVMostRecentDataAttribute參數(shù)查詢最新的結構體數(shù)據(jù);

    2)在定時器函數(shù)中重復調用CNVGetArrayDataValue()函數(shù)獲取共享網(wǎng)絡變量結構體中的數(shù)組元素,使用CNVGetScalarDataValue()函數(shù)獲取數(shù)據(jù)值;

    3)測試完成后使用CNVDisposeData()函數(shù)釋放網(wǎng)絡變量接收緩存。

    最后,當用戶結束數(shù)據(jù)接收操作時,軟件停止數(shù)據(jù)接收線程,使用CNVDispose()函數(shù)釋放創(chuàng)建數(shù)據(jù)訂閱者或訂閱緩存,最后使用CNVFinish()停止共享變量引擎。

    2.3 上下位機軟件交互協(xié)議

    在下位機上完成共享網(wǎng)絡變量數(shù)據(jù)的發(fā)布流程以及在上位機上完成網(wǎng)絡變量數(shù)據(jù)的訂閱流程后,還需要制定上下位機之間的通訊交互協(xié)議,由上位機向下位機發(fā)送控制命令,下位機根據(jù)控制命令開始或停止數(shù)據(jù)采集和發(fā)布。

    上下位機軟件之間的交互命令包括開始自檢、停止自檢、開始測試、停止測試和關閉軟件等幾個命令。這些命令采用TCP協(xié)議進行傳輸,這樣做的好處是將交互命令和共享網(wǎng)絡變量的數(shù)據(jù)傳輸相互分離,簡化軟件的開發(fā)和數(shù)據(jù)處理流程。

    上下位機軟件之間的命令交互流程如圖7所示。

    圖7 上下位機軟件交互流程

    第一步,下位機啟動后首先在指定端口創(chuàng)建TCP Server和共享網(wǎng)絡變量,等待上位機進行連接;上位機啟動后根據(jù)配置文件中定義的端口號連接TCP Server,連接成功后在界面上顯示已連接狀態(tài);

    第二步,根據(jù)用戶在上位機軟件界面上的操作,通過TCP連接向下位機發(fā)送開始測試等控制命令,下位機收到命令后發(fā)送應答,開始數(shù)據(jù)采集并將數(shù)據(jù)更新到共享網(wǎng)絡變量中;上位機從共享網(wǎng)絡變量中讀取數(shù)據(jù),完成解析并在軟件界面中進行顯示;

    第三步,用戶在上位機軟件界面中點擊停止測試按鈕,軟件通過TCP連接向下位機發(fā)送停止測試命令,下位機收到命令后發(fā)送應答,停止數(shù)據(jù)采集和共享變量的更新;

    第四步,當用戶點擊退出按鈕時,軟件通過TCP連接向下位機發(fā)送關閉軟件命令,下位機關閉網(wǎng)絡共享變量和TCP連接,釋放資源并退出。

    3 功能驗證

    為了驗證軟件設計的可行性和NI PSP協(xié)議的傳輸效率,在測試系統(tǒng)中進行了上下位機的軟件部署和軟件功能的驗證。

    下位機沒有圖形化的軟件界面,下位機軟件運行后創(chuàng)建以時間命名的本地數(shù)據(jù)記錄文件,將將采集到的數(shù)據(jù)保存在本地文件中。

    上位機軟件界面如圖8所示,Tab頁面分別對應兩個RTU,這兩個RTU通過各自的共享網(wǎng)絡變量與上位機進行數(shù)據(jù)傳輸。用戶點擊“開始”按鈕后,上位機軟件向兩個RTU的下位機軟件發(fā)送開始測試命令,下位機軟件將采集到的現(xiàn)場數(shù)據(jù)通過各自的共享網(wǎng)絡變量發(fā)送給上位機;上位機分別從這兩個共享變量讀取數(shù)據(jù),并對讀取的數(shù)據(jù)進行解析,根據(jù)解析結果對RTU的每一個通道的狀態(tài)進行顯示,同時按照與下位機相同的格式將接收到的數(shù)據(jù)保存在數(shù)據(jù)記錄文件中。

    圖8 上位機軟件界面

    測試過程結束后,通過對比上、下位機中的保存的數(shù)據(jù)記錄文件,驗證了在測試過程中軟件通過共享網(wǎng)絡變量進行數(shù)據(jù)傳輸沒有錯誤發(fā)生,驗證了數(shù)據(jù)傳輸?shù)目煽啃浴?/p>

    4 結束語

    本文介紹了以共享網(wǎng)絡變量技術為基礎,具有多節(jié)點大數(shù)據(jù)量傳輸能力的分布式測試軟件的設計方法。與傳統(tǒng)采用Socket API函數(shù)進行數(shù)據(jù)傳輸?shù)脑O計方法相比,使用共享網(wǎng)絡變量的編程更為簡單,降低了軟件開發(fā)的難度,可以使開發(fā)人員專注于測試功能的實現(xiàn),提高軟件開發(fā)的效率。

    采用該設計方法開發(fā)的分布式測試軟件已在某型號電磁閥測試系統(tǒng)中得到了應用,實際驗證了共享網(wǎng)絡變量的傳輸效率和可靠性,具有一定的推廣價值。

    十分钟在线观看高清视频www| 91精品三级在线观看| 亚洲精品美女久久av网站| 两个人免费观看高清视频| 国产淫语在线视频| 丝袜在线中文字幕| www日本在线高清视频| 亚洲av片天天在线观看| 中文乱码字字幕精品一区二区三区| 色播在线永久视频| 亚洲自偷自拍图片 自拍| 国产精品熟女久久久久浪| 咕卡用的链子| 亚洲 欧美一区二区三区| 亚洲欧美日韩高清在线视频 | 久久久久久久久久久久大奶| 午夜福利,免费看| 日韩中文字幕欧美一区二区 | 男女午夜视频在线观看| 晚上一个人看的免费电影| 性色av一级| 午夜两性在线视频| 亚洲精品国产区一区二| 亚洲成人免费电影在线观看 | av天堂久久9| 十八禁人妻一区二区| 免费人妻精品一区二区三区视频| 青草久久国产| 日本午夜av视频| 极品人妻少妇av视频| 高清av免费在线| 国产精品一区二区免费欧美 | 亚洲av男天堂| 熟女少妇亚洲综合色aaa.| 色婷婷av一区二区三区视频| 欧美精品av麻豆av| 国产免费一区二区三区四区乱码| 一级黄色大片毛片| 每晚都被弄得嗷嗷叫到高潮| 91成人精品电影| 考比视频在线观看| 久久鲁丝午夜福利片| 你懂的网址亚洲精品在线观看| 18在线观看网站| 日韩制服骚丝袜av| 欧美少妇被猛烈插入视频| 中文字幕高清在线视频| 丰满少妇做爰视频| 一边摸一边做爽爽视频免费| videos熟女内射| 在线观看免费视频网站a站| 搡老岳熟女国产| 久久毛片免费看一区二区三区| 精品人妻一区二区三区麻豆| 91成人精品电影| 国产又色又爽无遮挡免| 国产又色又爽无遮挡免| 免费看不卡的av| 91精品三级在线观看| 人人妻人人澡人人爽人人夜夜| 叶爱在线成人免费视频播放| 狠狠婷婷综合久久久久久88av| 男女免费视频国产| 中国美女看黄片| 久久久精品国产亚洲av高清涩受| 欧美大码av| 狂野欧美激情性bbbbbb| 久久亚洲国产成人精品v| 久久天躁狠狠躁夜夜2o2o | 青春草视频在线免费观看| 久久人妻熟女aⅴ| 中文字幕色久视频| 侵犯人妻中文字幕一二三四区| avwww免费| 欧美精品人与动牲交sv欧美| av天堂久久9| 欧美成人午夜精品| 女性生殖器流出的白浆| 最新在线观看一区二区三区 | 国产欧美日韩精品亚洲av| 在线观看免费日韩欧美大片| 亚洲,一卡二卡三卡| 婷婷成人精品国产| 大香蕉久久网| 少妇人妻久久综合中文| 久久精品亚洲熟妇少妇任你| 一区福利在线观看| 欧美日韩成人在线一区二区| 日日摸夜夜添夜夜爱| 中文字幕制服av| av有码第一页| 国产极品粉嫩免费观看在线| 欧美乱码精品一区二区三区| 亚洲国产看品久久| 国产成人影院久久av| 久久ye,这里只有精品| 一级黄片播放器| 久久天堂一区二区三区四区| 久久精品久久久久久噜噜老黄| 国产免费视频播放在线视频| 丝袜喷水一区| 国产成人精品久久二区二区91| 欧美日韩亚洲国产一区二区在线观看 | 亚洲国产精品成人久久小说| 午夜免费男女啪啪视频观看| 两性夫妻黄色片| 国产成人av激情在线播放| 国产无遮挡羞羞视频在线观看| 国产一卡二卡三卡精品| 精品国产一区二区久久| 啦啦啦视频在线资源免费观看| 精品福利观看| a级片在线免费高清观看视频| 国产精品国产三级专区第一集| 久久综合国产亚洲精品| 亚洲伊人色综图| 叶爱在线成人免费视频播放| 国产高清国产精品国产三级| 天天躁夜夜躁狠狠躁躁| 欧美精品一区二区大全| 黄色a级毛片大全视频| 亚洲精品中文字幕在线视频| 欧美激情高清一区二区三区| 在线观看国产h片| 每晚都被弄得嗷嗷叫到高潮| 肉色欧美久久久久久久蜜桃| 国产人伦9x9x在线观看| 男人舔女人的私密视频| 成年美女黄网站色视频大全免费| 久久国产精品人妻蜜桃| 三上悠亚av全集在线观看| 国产高清不卡午夜福利| 男女高潮啪啪啪动态图| 天天躁夜夜躁狠狠躁躁| 电影成人av| 成人18禁高潮啪啪吃奶动态图| 另类精品久久| www.999成人在线观看| 免费看十八禁软件| 欧美成狂野欧美在线观看| 日本欧美视频一区| 久久亚洲国产成人精品v| 亚洲九九香蕉| 国产一区二区三区av在线| 国产1区2区3区精品| 99国产精品一区二区三区| 欧美成人精品欧美一级黄| 午夜免费成人在线视频| 一区二区日韩欧美中文字幕| 性色av乱码一区二区三区2| 午夜激情久久久久久久| 妹子高潮喷水视频| 国产有黄有色有爽视频| 50天的宝宝边吃奶边哭怎么回事| 无遮挡黄片免费观看| 母亲3免费完整高清在线观看| 黑人欧美特级aaaaaa片| 无遮挡黄片免费观看| 天天躁夜夜躁狠狠久久av| 我的亚洲天堂| av在线app专区| 一级片免费观看大全| 欧美少妇被猛烈插入视频| 另类精品久久| 香蕉丝袜av| www.熟女人妻精品国产| 丝瓜视频免费看黄片| 天堂中文最新版在线下载| 国产亚洲午夜精品一区二区久久| 老司机靠b影院| 久久国产精品大桥未久av| 国产男女内射视频| 男人舔女人的私密视频| 久久久亚洲精品成人影院| 精品一区二区三区av网在线观看 | 久久久久久亚洲精品国产蜜桃av| 国产老妇伦熟女老妇高清| 国产在线观看jvid| 日本午夜av视频| 一本综合久久免费| 午夜福利,免费看| 国产极品粉嫩免费观看在线| 国产老妇伦熟女老妇高清| 久久av网站| 亚洲色图 男人天堂 中文字幕| 午夜福利视频精品| 精品一区二区三卡| 久久精品亚洲av国产电影网| 午夜福利影视在线免费观看| 欧美黑人欧美精品刺激| 国产一区亚洲一区在线观看| 每晚都被弄得嗷嗷叫到高潮| 亚洲国产欧美一区二区综合| 丝袜美足系列| av视频免费观看在线观看| 婷婷色综合大香蕉| 国产精品久久久久久精品电影小说| 高清视频免费观看一区二区| 国产男人的电影天堂91| 免费看av在线观看网站| 欧美日韩综合久久久久久| 日韩av免费高清视频| 美女视频免费永久观看网站| 男女下面插进去视频免费观看| 两个人看的免费小视频| 国产精品久久久av美女十八| 嫁个100分男人电影在线观看 | 欧美精品人与动牲交sv欧美| 亚洲成人国产一区在线观看 | 看免费av毛片| 亚洲 国产 在线| 老司机影院成人| www日本在线高清视频| 久久国产精品影院| 国产成人欧美| 欧美97在线视频| 日本黄色日本黄色录像| 亚洲视频免费观看视频| 国产av精品麻豆| 国产精品偷伦视频观看了| 久久久精品94久久精品| 久久久久久久大尺度免费视频| 性高湖久久久久久久久免费观看| 欧美中文综合在线视频| 亚洲精品成人av观看孕妇| 国产一区二区三区综合在线观看| 亚洲成国产人片在线观看| 欧美精品亚洲一区二区| 在线天堂中文资源库| 国产成人免费观看mmmm| 国产日韩欧美视频二区| 国产高清不卡午夜福利| 亚洲国产精品一区三区| 日韩视频在线欧美| 一区在线观看完整版| netflix在线观看网站| 国产亚洲av片在线观看秒播厂| 男女边摸边吃奶| 国产1区2区3区精品| 国产又爽黄色视频| 成人黄色视频免费在线看| 咕卡用的链子| 久久久精品免费免费高清| 日韩伦理黄色片| 在线 av 中文字幕| av有码第一页| 男女边吃奶边做爰视频| 亚洲av在线观看美女高潮| av网站免费在线观看视频| 一级毛片女人18水好多 | 成人三级做爰电影| 国产精品一区二区在线不卡| 国产精品 国内视频| 天堂中文最新版在线下载| 日本wwww免费看| 亚洲天堂av无毛| 国产成人啪精品午夜网站| av国产久精品久网站免费入址| 久久久久久久大尺度免费视频| 欧美在线黄色| 日韩熟女老妇一区二区性免费视频| 90打野战视频偷拍视频| 美女大奶头黄色视频| 国产成人欧美在线观看 | 婷婷色综合www| 在线观看www视频免费| 精品一区二区三卡| 黄色视频不卡| 色94色欧美一区二区| 永久免费av网站大全| 国产日韩一区二区三区精品不卡| 亚洲第一av免费看| 亚洲国产av新网站| 妹子高潮喷水视频| 最近最新中文字幕大全免费视频 | 日本五十路高清| 人成视频在线观看免费观看| 国产精品欧美亚洲77777| 建设人人有责人人尽责人人享有的| 免费高清在线观看日韩| 午夜免费鲁丝| 最近手机中文字幕大全| 五月天丁香电影| 精品少妇内射三级| a 毛片基地| av线在线观看网站| 欧美97在线视频| 中文字幕人妻丝袜一区二区| 午夜免费男女啪啪视频观看| 91字幕亚洲| 每晚都被弄得嗷嗷叫到高潮| avwww免费| 国产熟女午夜一区二区三区| 久久人人爽人人片av| 色94色欧美一区二区| 青春草亚洲视频在线观看| 新久久久久国产一级毛片| 久久精品亚洲av国产电影网| 日韩av免费高清视频| 精品少妇久久久久久888优播| 免费在线观看日本一区| 亚洲精品av麻豆狂野| 日本欧美国产在线视频| 在线亚洲精品国产二区图片欧美| 蜜桃在线观看..| 国产成人精品久久二区二区91| 国产熟女午夜一区二区三区| 亚洲免费av在线视频| 搡老乐熟女国产| www日本在线高清视频| 五月开心婷婷网| 国产日韩一区二区三区精品不卡| 考比视频在线观看| 日本猛色少妇xxxxx猛交久久| 亚洲图色成人| 69精品国产乱码久久久| 丰满饥渴人妻一区二区三| 永久免费av网站大全| 欧美乱码精品一区二区三区| 久久久国产精品麻豆| 久久热在线av| 国产又色又爽无遮挡免| 国产精品 欧美亚洲| 无遮挡黄片免费观看| 99热国产这里只有精品6| 丰满饥渴人妻一区二区三| 伊人亚洲综合成人网| 美国免费a级毛片| 久久鲁丝午夜福利片| 欧美久久黑人一区二区| 国产精品国产av在线观看| av又黄又爽大尺度在线免费看| 亚洲 国产 在线| 国产熟女午夜一区二区三区| 999精品在线视频| 最新的欧美精品一区二区| 欧美国产精品va在线观看不卡| 90打野战视频偷拍视频| 热re99久久国产66热| 深夜精品福利| 中国国产av一级| 精品人妻在线不人妻| 可以免费在线观看a视频的电影网站| 成人国产一区最新在线观看 | 久热爱精品视频在线9| 性色av乱码一区二区三区2| 精品少妇内射三级| 国产男女超爽视频在线观看| 在线观看免费高清a一片| 久久久久精品人妻al黑| 久久青草综合色| 国产91精品成人一区二区三区 | 七月丁香在线播放| 亚洲图色成人| 亚洲国产av影院在线观看| 欧美成人精品欧美一级黄| 麻豆av在线久日| av不卡在线播放| 国产免费现黄频在线看| 一区二区三区四区激情视频| 国产精品.久久久| 青青草视频在线视频观看| 午夜福利,免费看| 久久久久精品国产欧美久久久 | 国产三级黄色录像| 一区二区三区四区激情视频| 成人免费观看视频高清| 色播在线永久视频| 欧美日韩综合久久久久久| 99国产精品99久久久久| 成人亚洲精品一区在线观看| 精品卡一卡二卡四卡免费| a级片在线免费高清观看视频| 亚洲国产中文字幕在线视频| av欧美777| 色综合欧美亚洲国产小说| 日本五十路高清| 亚洲欧美成人综合另类久久久| 每晚都被弄得嗷嗷叫到高潮| 亚洲欧洲国产日韩| 韩国精品一区二区三区| 亚洲欧美成人综合另类久久久| 亚洲专区中文字幕在线| 亚洲国产av影院在线观看| 久久久久久人人人人人| 日本午夜av视频| 啦啦啦啦在线视频资源| 欧美日韩视频精品一区| 另类精品久久| 亚洲色图 男人天堂 中文字幕| 亚洲av综合色区一区| 久久性视频一级片| 亚洲欧美激情在线| 91国产中文字幕| 麻豆乱淫一区二区| 两性夫妻黄色片| 欧美日韩黄片免| 丝袜人妻中文字幕| 一级黄片播放器| 国产精品偷伦视频观看了| 欧美成人午夜精品| 久久精品亚洲av国产电影网| 免费在线观看影片大全网站 | 狂野欧美激情性bbbbbb| 欧美黄色片欧美黄色片| 人人妻人人澡人人看| 老司机影院成人| 免费高清在线观看日韩| 欧美日韩国产mv在线观看视频| 中文字幕人妻丝袜一区二区| 美女扒开内裤让男人捅视频| 99久久人妻综合| 嫩草影视91久久| 国产男女超爽视频在线观看| 国产日韩一区二区三区精品不卡| 国产午夜精品一二区理论片| 亚洲欧美一区二区三区黑人| 亚洲欧美日韩高清在线视频 | 极品人妻少妇av视频| 欧美日韩视频精品一区| 99热全是精品| 永久免费av网站大全| 欧美日韩国产mv在线观看视频| 中文字幕人妻丝袜一区二区| 亚洲av电影在线观看一区二区三区| 自线自在国产av| 叶爱在线成人免费视频播放| 亚洲精品av麻豆狂野| 日本黄色日本黄色录像| 多毛熟女@视频| 久久精品国产a三级三级三级| 如日韩欧美国产精品一区二区三区| 国产片特级美女逼逼视频| 国产成人精品在线电影| 丰满迷人的少妇在线观看| 久久狼人影院| 99久久精品国产亚洲精品| 丝袜在线中文字幕| 日韩一本色道免费dvd| 老司机亚洲免费影院| 色94色欧美一区二区| 亚洲欧美日韩高清在线视频 | 又紧又爽又黄一区二区| 香蕉丝袜av| 啦啦啦视频在线资源免费观看| 久久精品aⅴ一区二区三区四区| 少妇人妻久久综合中文| 另类精品久久| 18在线观看网站| 五月天丁香电影| 久久中文字幕一级| 精品高清国产在线一区| 在线精品无人区一区二区三| 国产精品三级大全| 91成人精品电影| 精品熟女少妇八av免费久了| 一区二区三区激情视频| 日韩人妻精品一区2区三区| 又黄又粗又硬又大视频| 亚洲成色77777| 亚洲人成77777在线视频| 精品久久久久久电影网| 久久人人97超碰香蕉20202| 国产一区二区三区av在线| 亚洲精品第二区| 国产成人精品久久二区二区91| 91九色精品人成在线观看| 日韩,欧美,国产一区二区三区| www.精华液| 一个人免费看片子| 精品一区二区三区四区五区乱码 | 99国产精品免费福利视频| 男女高潮啪啪啪动态图| 日韩 欧美 亚洲 中文字幕| 亚洲欧洲精品一区二区精品久久久| 欧美黑人欧美精品刺激| 一区二区三区乱码不卡18| 满18在线观看网站| 午夜两性在线视频| 又大又黄又爽视频免费| 亚洲国产看品久久| 欧美久久黑人一区二区| 成人亚洲欧美一区二区av| 手机成人av网站| 免费看十八禁软件| www.自偷自拍.com| 高清av免费在线| 免费在线观看完整版高清| 丝袜美足系列| 国产精品久久久久久人妻精品电影 | av网站免费在线观看视频| 啦啦啦啦在线视频资源| 日韩一卡2卡3卡4卡2021年| 一区福利在线观看| 午夜免费鲁丝| 久久人妻熟女aⅴ| 欧美成人午夜精品| 国产一区二区在线观看av| 日韩精品免费视频一区二区三区| 50天的宝宝边吃奶边哭怎么回事| 免费高清在线观看日韩| 国产精品免费视频内射| 欧美日韩福利视频一区二区| 国产精品麻豆人妻色哟哟久久| 欧美大码av| 视频区欧美日本亚洲| 久久精品亚洲熟妇少妇任你| 亚洲五月婷婷丁香| 十八禁高潮呻吟视频| 免费av中文字幕在线| 国产欧美日韩精品亚洲av| 一本久久精品| 亚洲精品日韩在线中文字幕| 亚洲图色成人| 国产高清videossex| 捣出白浆h1v1| 欧美性长视频在线观看| 日本av免费视频播放| 国产亚洲精品第一综合不卡| 精品一区在线观看国产| 午夜福利免费观看在线| 国产黄色视频一区二区在线观看| 国产女主播在线喷水免费视频网站| 色婷婷久久久亚洲欧美| 满18在线观看网站| av不卡在线播放| 99国产精品一区二区蜜桃av | 欧美人与性动交α欧美精品济南到| 97在线人人人人妻| 菩萨蛮人人尽说江南好唐韦庄| 超碰97精品在线观看| 亚洲黑人精品在线| 手机成人av网站| 欧美精品一区二区大全| 欧美性长视频在线观看| 国产精品偷伦视频观看了| 亚洲精品一区蜜桃| 国产高清videossex| 久久国产精品大桥未久av| 水蜜桃什么品种好| 日本午夜av视频| 美女中出高潮动态图| 两个人看的免费小视频| 国产成人精品在线电影| 国产精品一区二区精品视频观看| 精品国产乱码久久久久久小说| 精品一品国产午夜福利视频| 午夜免费鲁丝| 高清黄色对白视频在线免费看| 蜜桃国产av成人99| 精品久久蜜臀av无| 亚洲久久久国产精品| 欧美精品啪啪一区二区三区 | 日韩大片免费观看网站| 亚洲,欧美,日韩| 国产在视频线精品| 香蕉国产在线看| tube8黄色片| 午夜免费鲁丝| 人成视频在线观看免费观看| 国产高清视频在线播放一区 | 国产亚洲av高清不卡| av片东京热男人的天堂| 热99久久久久精品小说推荐| 亚洲国产欧美网| 婷婷色麻豆天堂久久| 人人妻,人人澡人人爽秒播 | 午夜福利视频在线观看免费| 久久国产精品人妻蜜桃| 国产亚洲精品久久久久5区| 亚洲精品中文字幕在线视频| 18禁裸乳无遮挡动漫免费视频| 久久精品国产亚洲av涩爱| av电影中文网址| 久久九九热精品免费| 久久人人97超碰香蕉20202| av片东京热男人的天堂| 天天躁狠狠躁夜夜躁狠狠躁| 欧美日韩成人在线一区二区| 国产精品一区二区在线观看99| 黄色毛片三级朝国网站| 欧美激情高清一区二区三区| 不卡av一区二区三区| 欧美激情高清一区二区三区| 丰满少妇做爰视频| 天堂中文最新版在线下载| 日韩 亚洲 欧美在线| 国产精品成人在线| 韩国精品一区二区三区| 777米奇影视久久| 国产又色又爽无遮挡免| 丁香六月欧美| 成年美女黄网站色视频大全免费| 亚洲五月色婷婷综合| 日本wwww免费看| 男人添女人高潮全过程视频| 亚洲欧洲精品一区二区精品久久久| 女人久久www免费人成看片| 高清欧美精品videossex| 电影成人av| 国产无遮挡羞羞视频在线观看| 观看av在线不卡| 蜜桃国产av成人99| 如日韩欧美国产精品一区二区三区| 一级黄色大片毛片| 最新的欧美精品一区二区| 国产成人欧美| 亚洲精品久久久久久婷婷小说| 免费看av在线观看网站| 久久天躁狠狠躁夜夜2o2o | 久久中文字幕一级| 久热爱精品视频在线9| 免费看十八禁软件| 999精品在线视频| 日韩制服骚丝袜av|