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

SUPMAX800D智能I/O卡上位機(jī)設(shè)計(jì)

2013-12-01 10:08:56樊亞寧徐震浩顧幸生
自動(dòng)化儀表 2013年1期
關(guān)鍵詞:文本智能

樊亞寧 徐震浩 顧幸生

(華東理工大學(xué)信息科學(xué)與工程學(xué)院1,上海 200237;化工過(guò)程先進(jìn)控制和優(yōu)化技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室2,上海 200237)

0 引言

SUPMAX系列分散控制系統(tǒng)是上海自動(dòng)化儀表股份有限公司DCS公司研發(fā)的新一代大型分散控制系統(tǒng)。自1998年推出以來(lái),該系統(tǒng)已廣泛應(yīng)用于電力、石化、鋼鐵、有色金屬、水泥、造紙、食品、制藥和能源等領(lǐng)域[1-3]。

市場(chǎng)分析表明,針對(duì)需要復(fù)雜邏輯控制的系統(tǒng),普通的DCS往往由于沒(méi)有專(zhuān)用的邏輯控制卡件,在主控制器發(fā)生故障時(shí),整個(gè)系統(tǒng)的邏輯控制功能將會(huì)失效,這對(duì)于控制系統(tǒng)來(lái)說(shuō)是非常危險(xiǎn)的。因此,設(shè)計(jì)專(zhuān)用的具有邏輯控制的智能I/O卡,使系統(tǒng)免受主控制器故障的影響,可提高系統(tǒng)的穩(wěn)定性,且有利于系統(tǒng)的推廣和應(yīng)用。小型系統(tǒng)可以不使用控制器,直接采用智能I/O卡來(lái)實(shí)現(xiàn)控制功能。

本文闡述了智能I/O卡的硬件設(shè)計(jì)和結(jié)構(gòu)化文本編譯器設(shè)計(jì)方案,提出了智能I/O卡的上位機(jī)軟件設(shè)計(jì)方案,并開(kāi)發(fā)了智能I/O卡的上位機(jī)軟件。

1 系統(tǒng)概述

上位機(jī)軟件系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 Structure of the system

智能I/O卡是SUPMAX800D系統(tǒng)中I/O卡的組成部分,采用專(zhuān)用的組態(tài)軟件進(jìn)行組態(tài)的下載,實(shí)現(xiàn)對(duì)系統(tǒng)的邏輯控制。智能I/O卡通過(guò)RS-232串口實(shí)現(xiàn)與上位機(jī)間的通信,可以獨(dú)立執(zhí)行組態(tài)算法,也可以通過(guò)RS-485總線(xiàn)和分散處理單元(distributed processing unit,DPU)進(jìn)行數(shù)據(jù)通信,并在DPU斷電時(shí)仍可以獨(dú)立地進(jìn)行邏輯控制,從而保證了整個(gè)系統(tǒng)的邏輯控制。智能I/O卡可以配置不同類(lèi)型的信號(hào),實(shí)現(xiàn)信號(hào)的輸入和輸出功能,但它只能應(yīng)用于SUPMAX800D控制系統(tǒng)。

智能I/O卡的主要技術(shù)性能指標(biāo)如下。

① 允許連接 AI、AO、DI、DO、TC、RTD 通道板;

②2 MB容量的 Flash,用于存儲(chǔ)結(jié)構(gòu)化文本(structure text,ST)組態(tài)文件;

③片內(nèi)256 kB、片外4 MB的RAM;

④配置組態(tài)下載串口;

⑤通過(guò)I/O通信總線(xiàn),與DPU進(jìn)行通信和數(shù)據(jù)的交換;

⑥上位機(jī)配置相應(yīng)的填表式組態(tài)器,可完成組態(tài)的編制、下載;

⑦根據(jù)相應(yīng)的組態(tài)獨(dú)立進(jìn)行邏輯運(yùn)算控制。

2 硬件設(shè)計(jì)

智能I/O卡可與SUPMAX800D系統(tǒng)中的模擬量和數(shù)字量I/O卡配套使用,實(shí)現(xiàn)數(shù)據(jù)的采集處理和控制功能。設(shè)計(jì)要求智能I/O卡可以直接和上位機(jī)通信完成組態(tài)的下載,也可以和DPU進(jìn)行數(shù)據(jù)交換。智能I/O卡及其硬件結(jié)構(gòu)如圖2所示。

圖2 智能I/O卡及硬件結(jié)構(gòu)示意圖Fig.2 Intelligent I/O modules and schematic diagram of the hardware structure

ARM9模塊的具體功能如下。

①通過(guò)RS-232串口與上位機(jī)進(jìn)行通信,接收PC控制策略組態(tài)文件、響應(yīng)PC激活命令并發(fā)送響應(yīng)數(shù)據(jù)、上傳PC控制策略組態(tài)文件、上傳報(bào)警及狀態(tài)信息;

②發(fā)送通道板組態(tài)和數(shù)據(jù)至Cortex,接收Cortex通道狀態(tài)和數(shù)據(jù),與SDRAM和Flash通信。

ARM9模塊的輸入項(xiàng)為上位機(jī)組態(tài)文件,輸出項(xiàng)為SPI總線(xiàn)控制Cortex。

Cortex和CPLD模塊的作用是采集數(shù)字量和模擬量通道卡的輸入信號(hào),并控制A/D卡的輸出及通道點(diǎn)。當(dāng)DPU發(fā)送組態(tài)和命令時(shí),Cortex把狀態(tài)、數(shù)據(jù)、報(bào)警等發(fā)送給DPU。Cortex和CPLD模塊的輸入項(xiàng)為ARM9的SPI總線(xiàn)、通道卡的輸入信號(hào)及RS-485總線(xiàn),輸出項(xiàng)為通道卡控制信號(hào)和RS-485總線(xiàn)。

通道板組態(tài)可以從ARM9和DPU中獲取,但組態(tài)以ARM9發(fā)送過(guò)來(lái)的信息為準(zhǔn)。如果兩者發(fā)送的組態(tài)不一致,則報(bào)警。Cortex從I/O通道板的EEROM中讀取I/O通道板的類(lèi)型,并與ARM9發(fā)送的組態(tài)進(jìn)行比較。如果兩者不同,則報(bào)警。

接口設(shè)計(jì)具體為:與上位機(jī)使用RS-232串口連接,與DCS系統(tǒng)使用RS-485總線(xiàn)連接;與通道卡之間用40芯插座連接。

結(jié)構(gòu)化文本(structure text,ST)是一種高級(jí)的文本語(yǔ)言,可以用來(lái)描述功能塊和程序的行為,還可以在順序功能流程圖中描述步、動(dòng)作和轉(zhuǎn)變的行為。ST專(zhuān)為PLC系統(tǒng)定制,在DCS的組態(tài)軟件中融入ST語(yǔ)言,可更好地實(shí)現(xiàn)與PLC系統(tǒng)的相互結(jié)合。本文提出了三種可行的設(shè)計(jì)方案,具體介紹如下。

2.1 純ST文本編譯

純ST文本編譯時(shí),上位機(jī)部分采用ST文本格式輸入智能I/O卡的組態(tài)和邏輯,再通過(guò)編譯軟件將純ST文本編譯成二進(jìn)制代碼,然后通過(guò)RS-232串口發(fā)送給ARM9芯片。ARM9芯片接收到二進(jìn)制代碼后,解析程序會(huì)對(duì)ST文本中一定數(shù)量的保留字進(jìn)行解析,并轉(zhuǎn)換為ARM9芯片能夠執(zhí)行的程序代碼。其優(yōu)點(diǎn)是靈活、不受模塊類(lèi)型的影響、通用性強(qiáng)、工作量小,缺點(diǎn)是目前編譯生成的代碼較大、效率低。

2.2 上位機(jī)生成ARM9運(yùn)行代碼

生成ARM9運(yùn)行代碼方案的上位機(jī)以模塊的形式輸入智能I/O卡的組態(tài)和邏輯,再通過(guò)ARM的編譯軟件將組態(tài)和邏輯編譯成ARM9的運(yùn)行代碼,然后通過(guò)RS-232串口下發(fā)給ARM9芯片。ARM9接收到運(yùn)行代碼后可直接運(yùn)行程序。其優(yōu)點(diǎn)是ARM9無(wú)需解碼執(zhí)行程序即可運(yùn)行、效率高,缺點(diǎn)是上位機(jī)要調(diào)用ARM編譯軟件、工作量較大。

2.3 上位機(jī)生成組態(tài)運(yùn)行鏈表

生成組態(tài)鏈表方案的上位機(jī)也能以模塊形式輸入I/O卡的組態(tài)和邏輯,再將組態(tài)和邏輯編譯生成組態(tài)運(yùn)行鏈表,經(jīng)由 RS-232串口下發(fā)給 ARM9芯片。ARM9芯片需要開(kāi)辟一段數(shù)據(jù)區(qū)用于存放模塊的數(shù)據(jù)結(jié)構(gòu),程序需解析運(yùn)行鏈表。其優(yōu)點(diǎn)是保持和DPU相同的處理方式和工作量,缺點(diǎn)是ARM9芯片需要開(kāi)辟足夠的內(nèi)存來(lái)存放數(shù)據(jù)結(jié)構(gòu)。

3 上位機(jī)軟件設(shè)計(jì)與實(shí)現(xiàn)

上位機(jī)軟件總體結(jié)構(gòu)框圖如圖3所示。系統(tǒng)由文件、操作、通信和幫助等功能模塊組成[4-7]。

圖3 軟件總體結(jié)構(gòu)框圖Fig.3 Overall structure of the software

文件模塊包括新建項(xiàng)目和打開(kāi)項(xiàng)目。新建項(xiàng)目是在底層創(chuàng)建可擴(kuò)展標(biāo)記語(yǔ)言(extensible markup language,XML)文件,用于存儲(chǔ)用戶(hù)添加的模塊數(shù)據(jù)。打開(kāi)項(xiàng)目用于打開(kāi)已有的組態(tài)文件,并在底層讀取文件內(nèi)的模塊,以樹(shù)狀結(jié)構(gòu)形式顯示在操作界面。

操作模塊由增加模塊、刪除模塊、激活模塊、上傳組態(tài)和下載組態(tài)模塊組成。增加和刪除模塊使用戶(hù)可以根據(jù)具體的功能需求組織模塊間的輸入、輸出關(guān)系。下載組態(tài)是從底層的XML文件中讀取所有模塊的結(jié)構(gòu)數(shù)據(jù),根據(jù)模塊的輸入、輸出關(guān)系生成模塊運(yùn)算順序表及組態(tài)版本等數(shù)據(jù),并下發(fā)給下位機(jī)。激活模塊使智能I/O卡處于一個(gè)激活的狀態(tài)。上位機(jī)根據(jù)用戶(hù)選擇的模塊使用定時(shí)器實(shí)時(shí)下發(fā)激活命令給下位機(jī),下位機(jī)接收到激活命令,將模塊的參數(shù)值上傳給上位機(jī),并最終反映在用戶(hù)界面上。同時(shí),用戶(hù)在激活狀態(tài)下可修改某一模塊的參數(shù)值并下發(fā)控制命令給下位機(jī)。上傳組態(tài)是指ARM9將智能I/O卡中的組態(tài)以鏈表方式回送至上位機(jī),上位機(jī)根據(jù)鏈表還原組態(tài)的結(jié)構(gòu)和運(yùn)算順序。

通信模塊包含通信參數(shù)配置。系統(tǒng)中上下位機(jī)采用RS-232進(jìn)行串行口通信。

上位機(jī)軟件是基于VC++2008平臺(tái)下的微軟基礎(chǔ)類(lèi)庫(kù)(microsoft fundation classes,MFC)單文檔程序。為實(shí)現(xiàn)上述功能,該軟件主要涉及讀寫(xiě)XML文件、如何分配模塊運(yùn)算順序表、RS-232串口通信等技術(shù)。

3.1 讀寫(xiě)XML文件

XML[8]用于標(biāo)記電子文件,使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,從而可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類(lèi)型,是一種允許用戶(hù)對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。

本文使用微軟提供的MSXML解析器來(lái)支持XML文件的操作。它根據(jù)XML文檔生成一個(gè)文本對(duì)象模型(document objective model,DOM)樹(shù)結(jié)構(gòu),讀取 XML文檔的內(nèi)容,并創(chuàng)建一個(gè)節(jié)點(diǎn)的邏輯結(jié)構(gòu)。DOM使用戶(hù)能夠把文檔看成一個(gè)有結(jié)構(gòu)的信息樹(shù),而不是簡(jiǎn)單的文本流。

在DOM接口規(guī)范中,共有Document、Node、NodeList和NamedNodeMap四個(gè)基本接口。

為了能在VC++平臺(tái)下使用MSXML解析器,需要導(dǎo)入動(dòng)態(tài)鏈接庫(kù)文件,如JHJimport"c:/WINDOWS/system32/msxml6.dll"。DLL文件可根據(jù)系統(tǒng)自帶的版本進(jìn)行選擇。在操作XML文件前,需要先初始化COM環(huán)境,再創(chuàng)建一個(gè)文檔實(shí)例,最后加載XML文件并獲取根元素節(jié)點(diǎn)。

若要獲取節(jié)點(diǎn)的所有子節(jié)點(diǎn),可調(diào)用節(jié)點(diǎn)childNodes的屬性,由childNodes返回一個(gè)節(jié)點(diǎn)鏈表。調(diào)用節(jié)點(diǎn)鏈表的nextNode方法可循環(huán)遍歷鏈表中的元素,遍歷結(jié)束之后,如若要再次進(jìn)行遍歷,可調(diào)用節(jié)點(diǎn)鏈表的 reset方法。同樣,也可以調(diào)用元素的attributes屬性來(lái)獲取元素的屬性節(jié)點(diǎn)集。

另外,還可根據(jù)自身需要,通過(guò)調(diào)用節(jié)點(diǎn)的selectSingleNode來(lái)查找和獲取目標(biāo)子節(jié)點(diǎn)。調(diào)用節(jié)點(diǎn)的createElement方法可創(chuàng)建新的子節(jié)點(diǎn),而調(diào)用appendChild和文檔節(jié)點(diǎn)的save方法可進(jìn)行保存。要獲取節(jié)點(diǎn)的名稱(chēng)和文本,可調(diào)用GetnodeValue和Gettext。

3.2 模塊運(yùn)算順序排序

上位機(jī)提供小模塊、大模塊和IOBUF三種類(lèi)型的運(yùn)算模塊,用戶(hù)可根據(jù)需求設(shè)置模塊與模塊間的關(guān)系(即一個(gè)模塊的輸出可以作為另一模塊的輸出,模塊可以有多個(gè)輸入項(xiàng)或輸出項(xiàng))。當(dāng)用戶(hù)組織好模塊間的關(guān)系后,關(guān)鍵的一步是要給每個(gè)模塊分配對(duì)應(yīng)的優(yōu)先等級(jí)值,因?yàn)橄挛粰C(jī)要根據(jù)優(yōu)先級(jí)來(lái)確定模塊間的運(yùn)算順序。

實(shí)現(xiàn)優(yōu)先級(jí)分配的思路具體說(shuō)明如下。

①由于模塊間存在父子關(guān)系,因此可以根據(jù)這種關(guān)系來(lái)分配優(yōu)先級(jí)(運(yùn)算順序)。

②處在同一等級(jí)的所有模塊,下位機(jī)在運(yùn)算它們中的某一模塊時(shí),不依賴(lài)于其他同等級(jí)的模塊的輸出,影響的僅有其父模塊。

對(duì)于一些模塊而言,應(yīng)當(dāng)首先執(zhí)行其父模塊,而對(duì)其他一些模塊,執(zhí)行的順序無(wú)關(guān)緊要。因此,算法中約定處在同一等級(jí)的所有模塊的優(yōu)先級(jí)值是無(wú)要求的(一般按從小到大的值分配),但這個(gè)優(yōu)先級(jí)必須高于它們的子模塊優(yōu)先級(jí)。已經(jīng)分配出去的值不能再次給其他模塊使用。若同級(jí)模塊之間的優(yōu)先級(jí)需求有沖突,該沖突必須由用戶(hù)事先表現(xiàn)在模塊間的輸入、輸出關(guān)系中,即將同級(jí)模塊轉(zhuǎn)換為父子模塊。一般的簡(jiǎn)單控制回路如圖4所示。

圖4 控制回路示意圖Fig.4 Schematic diagram of the control loop

圖5 模塊組織關(guān)系圖Fig.5 Organizational relationships of the modules

模塊運(yùn)算順序排序算法如下。

①遍歷XML文件中的所有模塊,如果模塊沒(méi)有父模塊或父模塊均已分配了優(yōu)先級(jí)值,則為該模塊分配優(yōu)先級(jí)值;否則將模塊放到未分配優(yōu)先級(jí)的模塊集中。

②遍歷未分配優(yōu)先級(jí)的模塊集中的每個(gè)模塊,如果模塊的父模塊均已分配了優(yōu)先級(jí)值,則為該模塊分配優(yōu)先級(jí)值,并從模塊集移除。

③如果遍歷未分配優(yōu)先級(jí)的模塊集一輪結(jié)束后,模塊集中的模塊數(shù)量不變,則表明模塊間含有反饋回路;如果模塊數(shù)量為0,則轉(zhuǎn)至步驟⑤。

④找出模塊之間存在的環(huán),選擇環(huán)中的一個(gè)模塊為其分配優(yōu)先級(jí)值,并且從模塊集中移除,最后返回到步驟②。

⑤結(jié)束。

3.3 MFC串口通信編程實(shí)現(xiàn)

Win32系統(tǒng)對(duì)文件的概念進(jìn)行了擴(kuò)展,即無(wú)論是文件、通信設(shè)備、命名管道、郵件槽、磁盤(pán),還是控制臺(tái)都被看作是文件。采用MFC串口通信函數(shù)的主要步驟如下[9]。

① 在MainFrm.cpp中定義全局變量(如HANDLE hCom)。

②打開(kāi)串口。Windows通信會(huì)話(huà)以調(diào)用CreateFile函數(shù)打開(kāi)串行口開(kāi)始。通信程序從CreateFile處指定串口設(shè)備及相關(guān)的操作屬性。該函數(shù)返回一個(gè)句柄,用于后續(xù)的通信操作。

③串口的初始化(設(shè)置串口參數(shù)及進(jìn)行串口超時(shí)設(shè)置)。

④ 讀寫(xiě)串口API函數(shù)ReadFile和WriteFile。在串口打開(kāi)并初始化設(shè)置之后,可以對(duì)它進(jìn)行讀寫(xiě)操作。

⑤關(guān)閉串口API函數(shù)CloseHandle。串口是非共享的資源,所以打開(kāi)串口后一定要關(guān)閉串口。

4 程序運(yùn)行結(jié)果

按圖5所示的模塊間組織關(guān)系,通過(guò)上位機(jī)軟件進(jìn)行組態(tài),并下載組態(tài)給下位機(jī),點(diǎn)擊激活模塊查看下位機(jī)返回的模塊實(shí)時(shí)數(shù)據(jù)。其中CONST.3、CONST.7和 CONST.8 模塊的初始值分別為0.001、-0.5 和2。

首先在上位機(jī)軟件中添加所需的模塊,然后為每個(gè)模塊添加輸入項(xiàng),最后點(diǎn)擊下載組態(tài)。如果下位機(jī)成功接收到組態(tài)數(shù)據(jù),則上位機(jī)顯示“下載組態(tài)成功”。在此過(guò)程中,程序?yàn)槟K分配的優(yōu)先級(jí)值為CONST.3=1、CONST.7=2、CONST.8=3、ABS.2=4、ADD.1=5、MULTI.6=6、DIV.5=7、CMPLX.4=8、SQRT.12=9。在點(diǎn)擊激活模塊后,下位機(jī)將所選擇模塊的實(shí)時(shí)數(shù)據(jù)上傳至上位機(jī)并顯示。

5 結(jié)束語(yǔ)

本文提出了應(yīng)用于SUPMAX800D控制系統(tǒng)中的智能I/O卡的開(kāi)發(fā)方案。智能I/O卡能夠支持兩塊不同類(lèi)型的通道板,并采用ARM9實(shí)現(xiàn)和上位機(jī)的通信。通道板組態(tài)可以從ARM9或DPU中獲取,實(shí)現(xiàn)了獨(dú)立的邏輯控制功能,并且ARM9保持和DPU相同的處理方式和工作量。由于XML具有良好的可自由擴(kuò)展性、自描述性以及數(shù)據(jù)與顯示分離的特點(diǎn),因此本文采用XML文件作為上位機(jī)的底層數(shù)據(jù)庫(kù),使得設(shè)計(jì)方案具有簡(jiǎn)單易操作性。測(cè)試結(jié)果表明,上位機(jī)組態(tài)軟件運(yùn)行安全、可靠,滿(mǎn)足應(yīng)用的要求。

[1]袁峰,王松亭,彭春文,等.基于SUPMAX800的鍋爐DCS自動(dòng)控制系統(tǒng)[J].儀表技術(shù)與傳感器,2009(5):56-58.

[2]梁堅(jiān),朱強(qiáng),王錦標(biāo).ISaGRAF在SUPMAX500組態(tài)軟件中的應(yīng)用[J].工業(yè)儀表與自動(dòng)化裝置,2002(6):25-27.

[3]孫正光.新型智能分散控制系統(tǒng)[J].信息與電腦,2011(7):69-70.

[4]陳慧萍,樊嶸嶸.基于PAS-300M DCS平臺(tái)的監(jiān)控軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(13):3248-3251.

[5]林立春,林瓊麒,張功鍍.面向?qū)ο蟮腜LC上位機(jī)軟件平臺(tái)設(shè)計(jì)[J].自動(dòng)化儀表,2007,28(12):15-18.

[6]張煌.新型DCS控制組態(tài)及仿真軟件的開(kāi)發(fā)[D].濟(jì)南:山東大學(xué),2009.

[7]崔鵬.基于ARM7的無(wú)線(xiàn)溫度監(jiān)控系統(tǒng)的上位機(jī)開(kāi)發(fā)[D].武漢:武漢理工大學(xué),2009.

[8]王震江,馬宏.XML基礎(chǔ)與實(shí)踐教程[M].北京:清華大學(xué)出版社,2011.

[9]李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2002:56-88.

猜你喜歡
文本智能
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
在808DA上文本顯示的改善
智能制造 反思與期望
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
基于doc2vec和TF-IDF的相似文本識(shí)別
電子制作(2018年18期)2018-11-14 01:48:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來(lái)
商周刊(2018年18期)2018-09-21 09:14:46
文本之中·文本之外·文本之上——童話(huà)故事《坐井觀(guān)天》的教學(xué)隱喻
主站蜘蛛池模板: 亚洲精品午夜天堂网页| 日本一区二区三区精品国产| 国产噜噜噜| 亚洲国产天堂在线观看| 三级欧美在线| 国产在线自揄拍揄视频网站| 亚洲成人免费在线| 日韩美女福利视频| 久久99久久无码毛片一区二区| 黄色a一级视频| 久草中文网| 日韩精品免费一线在线观看| 国产成人一二三| 午夜在线不卡| 黑人巨大精品欧美一区二区区| 欧美中文字幕一区| 久久九九热视频| www精品久久| 免费毛片全部不收费的| 国产杨幂丝袜av在线播放| 99久久人妻精品免费二区| 99久久国产综合精品2023| 国内精自线i品一区202| 欧美一区二区啪啪| 欧美成人精品一区二区| 天堂av高清一区二区三区| 污网站在线观看视频| 国产主播在线一区| 精品国产www| 在线观看欧美精品二区| 欧美中日韩在线| 国产精品视屏| 综合久久久久久久综合网| 在线观看视频99| 日韩亚洲高清一区二区| 日本在线亚洲| 国产精品永久在线| 99手机在线视频| 女人18一级毛片免费观看| 国产97公开成人免费视频| 成年免费在线观看| 国产一区二区三区夜色 | 丝袜美女被出水视频一区| 亚洲乱伦视频| 日韩天堂网| 亚洲日本中文综合在线| 黑色丝袜高跟国产在线91| 亚洲欧美日韩综合二区三区| 无码AV高清毛片中国一级毛片| 国产打屁股免费区网站| 日韩毛片基地| 欧美日韩在线国产| 天堂av高清一区二区三区| 午夜啪啪网| 免费a级毛片视频| 日韩无码视频播放| 狠狠五月天中文字幕| 免费jjzz在在线播放国产| 国内精品视频区在线2021| 国产人在线成免费视频| 精品国产免费观看一区| 在线观看91精品国产剧情免费| 婷婷六月激情综合一区| 国产精品丝袜视频| 71pao成人国产永久免费视频| 亚洲区视频在线观看| www.99精品视频在线播放| 91精品久久久久久无码人妻| www精品久久| 欧美国产另类| 午夜性爽视频男人的天堂| 国产一区二区福利| 国产男人天堂| 亚洲视频免费播放| 国产一二三区在线| 国产精品久久久精品三级| 国产在线麻豆波多野结衣| 91黄视频在线观看| 毛片免费观看视频| 超薄丝袜足j国产在线视频| 国产精品自在自线免费观看| 亚洲成a人在线播放www|