无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
PCIe EtherCAT實時運動控制卡PCIE464同步跟隨/皮帶跟隨加工應用
深圳市正運動技術有限公司
收藏本文     查看收藏

一.硬件介紹

PCIE464運動控制卡是正運動推出的一款EtherCAT總線+脈沖型、PCIE接口式的運動控制卡,可選6-64軸運動控制,支持多路高速數字輸入輸出,可輕松實現多軸同步控制和高速數據傳輸。

運動控制卡PCIE464.png

PCIE464運動控制卡適合于多軸點位運動、插補運動、軌跡規劃、手輪控制、編碼器位置檢測、IO控制、位置鎖存等功能的應用。

PCIE464運動控制卡適用于3C電子加工、檢測設備、半導體設備、SMT加工、激光加工、光通訊設備、鋰電及光伏設備、以及非標自動化設備等高速高精應用場合。

運動控制卡PCIE464接線圖.png

PCIE4系列控制卡的應用程序可以使用VC,VB,VS,C++,C#等軟件開發,程序運行時需要動態庫zmotion.dll,調試時可以將RTSys軟件同時連接控制器,從而方便調試、方便觀察。

API.png

PCIE464視頻介紹可點擊→“【EtherCAT同步周期快至100us】超高實時性PCIe EtherCAT控制卡PCIE464”查看。
更多關于PCIE464的詳情介紹,點擊“PCIE464 — 高速高精,超高實時性的PCIe EtherCAT實時運動控制卡”查看。
 

二.接線參考

1.IN數字量輸入接口

數字輸入分布在J400(IN0-IN7)和X400(IN8-IN39)信號接口中。

IN數字量輸入接口.png

2.OUT數字量輸出接口

數字輸出分布在J400(OUT0-7)和X400(OUT8-OUT39)信號接口中。

OUT數字量輸出接口.png

3.單端編碼器及單端脈沖接線

單端脈沖接線圖.png

單端脈沖接線圖

差分脈沖接線圖.png

差分脈沖接線圖

單端編碼器接線圖.png

單端編碼器接線圖

差分編碼器接線圖.png

差分編碼器接線圖

注:PCIE464的J400接口中有一個差分脈沖軸接口和三個單端脈沖軸接口,兩個差分編碼器接口(其中一個與差分脈沖軸接口復用,取決于固件設定)和兩個單端編碼器接口,具體引腳定義參見PCIE464硬件手冊。

三.同步指令解析及技巧解釋

1.同步過程

同步跟隨過程分為三部分:加速追趕、同步加工、結束歸位。

(1)加速追趕:動作機構加速追上產品位置,并保持追趕末端速度與產品速度一致的過程。

(2)同步加工:動作機構加速追趕上之后,繼續保持與產品同樣的速度運動的過程,即兩者相對靜止的過程;加工動作常在此過程中進行。

(3)結束歸位:加工完成后,打斷跟隨過程,回歸待機位的過程。

? 正運動技術提供了成熟的同步跟隨執行指令MOVESYNC完成上述過程。

2.同步指令

MOVESYNC -- 同步運動,皮帶上物體跟隨

語法:

MOVESYNC(mode,synctime,syncposition,syncaxis,pos1[,pos2, pos3…])

參數解釋:

(1)mode:mode=0 + angle,angle:皮帶旋轉角度,角度=皮帶軸dpos正向與BASE軸正向的夾角。使用時需要將角度轉換為弧度(0~2PI)。

同步指令.png

(2)synctime:同步時間,ms單位。

(3)syncposition:皮帶軸物體被感應到時皮帶軸的位置。

(4)syncaxis:皮帶軸軸號,-1表示沒有皮帶軸。

(5)pos1:皮帶軸物體被感應到時的BASE第1個軸絕對位置。

(6)posn:皮帶軸物體被感應到時的BASE第n個軸絕對位置。

上位機指令參數排列一樣。

指令27.png

3.使用疑難點解析

(1)如何獲知syncposition:皮帶軸物體被感應到時皮帶軸的位置?

首先,我們先了解跟隨的完整實現流程,如下:

光電傳感器產生信號→控制器收到信號,鎖存獲取跟隨坐標→產品流到到位,跟隨觸發→追趕產品,進入同步加工,走軌跡→進入下一次跟隨。

那么按照流程看,物體被感應到時的位置就由鎖存產生并記錄,我們只需要將鎖存數據記錄就獲取到了參數syncposition的值。

(2)如何獲知同步跟隨所需的POSN:皮帶軸物體被感應到時跟隨軸的位置?

syncposition與POSN都是在物體被感應到時的位置,兩者的關系是同時相對靜止的;所以此處的POSN:皮帶軸物體被感應到時跟隨軸的位置并不是感應到產品時跟隨軸所處的位置,而是感應到產品時跟隨軸應該走到的位置,也就是我們想要的產品同步跟隨位置點。

在上一步,我們獲知了皮帶軸的感應位置是在鎖存的時候獲取到,那么可以在程序中設計,產品經過傳感器后停下來,獲取當前皮帶軸位置,用鎖存到的值-皮帶軸當前位置=跟隨方向的位移量→移動歸零后的跟隨軸組到產品上標記的需要加工的起點位置,記錄下軸組位置數據→將軸組中跟隨方向軸的坐標-計算出來的跟隨方向的位移量=鎖存時跟隨軸組中跟隨方向的軸位置→記錄下數據就得到了皮帶軸物體被感應到時跟隨軸的位置POSN。

(3)跟隨三個過程中的數據怎么填?是否需要重新計算?

跟隨三個過程中的參數數據不需要重新計算;三個過程中唯一需要變化的參數是synctime,其他的參數保持不變;而synctime參數根據實際加工需要設定即可,一般會將同步加工時間設置大。

(4)在同步加工段中,怎么去走加工軌跡?能直接控制跟隨軸組走軌跡嗎?

在同步過程中一般是不能直接使用運動指令去操控跟隨軸組走軌跡的,不然會打斷跟隨的狀態;可以使用疊加運動的方式間接走軌跡;通過addax指令將幾個沒有用到的虛擬軸,疊加到跟隨軸組上,使用運動指令控制虛擬軸執行加工軌跡,就能實現在保持跟隨狀態下走加工軌跡。

(5)不同產品軌跡所需時間不一樣,同步加工段的時間怎么計算?

其實在實際應用中,同步加工段的時間通常會設置一個很大很大的時間值確保加工完成,加工完成后,用MOVESYNC的-2模式強制結束即可。

(6)加工中產品不斷進來,怎么實現跟隨軸組不回待機,連續跟隨加工產品?

只需要注意不要在程序中每一段的跟隨加工返回待機位的后面加入等待或者其他進運動緩沖的指令即可;因為復位用-1模式時,其會被后面的緩沖MOVESYNC覆蓋,也就是當下一個產品的MOVESYNC跟隨指令已經壓進運動緩沖之后,當前產品加工完的復位MOVESYNC就會被覆蓋,無效。

4.擴展用法

MOVE_ADDAX運動緩沖疊加

使用MOVESYNC+MOVE_ADDAX,可以實現在保持跟隨狀態下直接操作跟隨軸組走軌跡。

四.C#語言進行項目開發

1.在VS2010菜單“文件”→“新建”→“項目”,啟動創建項目向導。

1.png

2.選擇開發語言為“Visual C#”和.NET Framework 4以及Windows窗體應用程序。

2.png

3.找到廠家提供的光盤資料里面的C#函數庫,路徑如下(32位庫為例)。

1)進入廠商提供的光盤資料找到“04PC函數”文件夾,并點擊進入。

3.png

2)選擇“01PC函數庫V2.1”文件夾。

4.png

3)選擇“Windows平臺”文件夾。

5.png

4)選擇“C#”文件夾。

6.png

5)根據需要選擇對應的函數庫,這里選擇32位庫。

7.png

4.將廠商提供的C#的庫文件以及相關文件復制到新建的項目中。

1)將zmcaux.cs文件復制到新建的項目里面中。

8.png

2)將zauxdll.dll和zmotion.dll文件放入bin\debug文件夾中。

9.png

5.雙擊Form1.cs里面的Form1,出現代碼編輯界面,在文件開頭寫入using cszmcaux,并聲明控制器句柄g_handle。

10.png

6.至此,項目新建完成,可進行C#項目開發。

C#跟隨主體代碼:

public  void SubMoveSync()
{
    int iret = 0;
    int []iAxisList = new int[2]{0,1} ;
    int []iTime = new int[3];
    iTime[0] = Convert.ToInt32(TextAccTime.Text);
    iTime[1] = Convert.ToInt32(TextSyncTime.Text);
    iTime[2] = Convert.ToInt32(TextBackTime.Text);
    float []fWaitPos = new float[2];
    fWaitPos[0] = Convert.ToSingle (TextXpos.Text);
    fWaitPos[1] = Convert.ToSingle(TextYpos.Text);
    float fOffPos= Convert.ToSingle(TextOffpos.Text);
    float fPdAxisPos = 0;       //當前皮帶軸位置
    float[] fMakrPos =  new float[2];          //當前加工產品鎖存編碼器的位置
    int iMaxNum = Convert.ToInt32(Text_TabNum.Text);
    float imode = 0;
    imode = 0 ;        //X方向跟隨
    if (m_SyncMode == 1)                //同步軌跡運動
    {
        iret = zmcaux.ZAux_Direct_SetMerge(G_CardHandle, 4, 1);           //打開虛擬X軸連續插補
        iret = zmcaux.ZAux_Direct_Single_Addax(G_CardHandle,0,4);           //虛擬4號軸X軸的運動疊加到實際X軸
        iret = zmcaux.ZAux_Direct_Single_Addax(G_CardHandle, 1, 5);           //虛擬5號軸Y軸的運動疊加到實際Y軸
    }
    float[] Units = new float[2];
    zmcaux.ZAux_Direct_GetUnits(G_CardHandle, 2, ref Units[0]);
    zmcaux.ZAux_Direct_GetUnits(G_CardHandle, 0, ref Units[1]);
    float[] ratio = new float[1] { Units[0] / Units[1] };
    int[] scraxis = new int[1] { 2 };
    while(true)
    {
        if( (m_RegistCount != 0) && (iWorkCount  iMaxNum)    //鎖存坐標已經溢出,數據保存在鎖存前面
        {
            iWorkCount = iWorkCount - m_RegistCount;        //從下個循環開始取值
            if (iWorkCount < m_RegistCount)
            {
                iret = zmcaux.ZAux_Direct_GetTable(G_CardHandle, Convert.ToInt32(Text_TabStart.Text) + 1 + iWorkCount, 1, fMakrPos);	//獲取當前準備加工的鎖存位置
            }
            else
            {
                continue;
            }
        }
        //鎖存事件未觸發
        if (m_RegistCount == 0 || m_RegistCount == iWorkCount)
        {
            continue;
        }
        //等待傳送帶位置運動超過開始跟隨位置
        do
        {
            iret = zmcaux.ZAux_Direct_GetMpos(G_CardHandle, 2, ref fPdAxisPos);            //獲取當前編碼軸位置
        } while (fPdAxisPos < fOffPos + fMakrPos[0]);
        iret = zmcaux.ZAux_Direct_MoveSync(G_CardHandle, imode, iTime[0], fMakrPos[0] + fOffPos, 2, 2, iAxisList, fWaitPos);      //同步啟動加速段,
        if (Sync_Mode == 0)
        {
            if (m_SyncMode == 1)                //同步軌跡運動
            {
                SubVirAxisMove();               //調用虛擬軸軌跡
                iret = zmcaux.ZAux_Direct_MoveTable(G_CardHandle, (uint)iAxisList[0], 0, (float)1);      //寫TABLE數據到實際軸緩沖區,速度同步后修改TABLE觸發虛擬軸
                if (iret != 0)
                {
                    MessageBox.Show("ZAux_Direct_MoveTable失敗 錯誤碼:" + iret.ToString());
                    continue;
                }
                iret = zmcaux.ZAux_Direct_MoveSync(G_CardHandle, imode, iTime[1], fMakrPos[0] + fOffPos, 2, 2, iAxisList, fWaitPos);      //同步啟動勻速速段,勻速時間
                //同步結束
                iret = zmcaux.ZAux_Direct_MoveTable(G_CardHandle, (uint)iAxisList[0], 0, (float)0);      //寫TABLE數據到實際軸緩沖區,速度同步后修改TABLE觸發虛擬軸
                //iret = zmcaux.ZAux_Direct_MoveCancel(G_CardHandle, iAxisList[0], 4, 2);                 //運動完成強制停止未完成的虛擬軸運動
            }
            else
            {
                iret = zmcaux.ZAux_Direct_MoveSync(G_CardHandle, imode, iTime[1], fMakrPos[0] + fOffPos, 2, 2, iAxisList, fWaitPos);      //同步啟動勻速速段,勻速時間
            }
        }
        else if(Sync_Mode == 1)
        {
            if (m_SyncMode == 1)                //同步軌跡運動
            {
                iret = Motion_MoveAddax(G_CardHandle, iAxisList[0], iAxisList, 2, ratio, scraxis); //建立疊加關系
                SubVirAxisMove_Dirct();               //直接控制實際軸走軌跡
                //同步結束
                iret = zmcaux.ZAux_Direct_MoveTable(G_CardHandle, (uint)iAxisList[0], 0, (float)0);      //寫TABLE數據到實際軸緩沖區,速度同步后修改TABLE觸發虛擬軸
                iret = Motion_MoveAddax(G_CardHandle, iAxisList[0], iAxisList, 0, ratio, scraxis);
            }
            else
            {
                iret = Motion_MoveAddax(G_CardHandle, iAxisList[0], iAxisList, 2, ratio, scraxis); //建立疊加關系
                iret = zmcaux.ZAux_Direct_MoveDelay(G_CardHandle, iAxisList[0], iTime[1]);    //運行延時時間
                iret = Motion_MoveAddax(G_CardHandle, iAxisList[0], iAxisList, 0, ratio, scraxis);   //取消疊加
            }
        }
        iret = zmcaux.ZAux_Direct_MoveSync(G_CardHandle, imode, iTime[2], 0, -1, 2, iAxisList, fWaitPos);      //結束同步走到待機位置
        int Axisidle = 0;
        //此處判斷并實現是否每次都強制回待機位之后再執行下一次跟隨動作,由于MOVESYNC在-1模式下的特殊性,會被緊接的MOVESYNC取代,不需要其他邏輯,即可以實現連續跟隨
        if (Force_Back_Flag == 1)
        {
            do
            {
                iret = zmcaux.ZAux_Direct_GetIfIdle(G_CardHandle, iAxisList[0], ref Axisidle);            //等待主軸跟隨完畢
            } while (Axisidle == 0);
        }
        iWorkCount++;
    }
}

五.Basic編程進行項目開發

1.在電腦里新建一個文件夾用來保存即將要建立的工程。打開RTSys編程軟件。

11.png

2.新建項目:菜單欄“文件”→“新建工程”。

12.png

3.點擊“新建工程”后彈出“另存為”界面,選擇一個文件夾打開,輸入文件名后保存項目,后綴為“.zpj”。

13.png

4.新建文件:點擊菜單欄“文件”→“新建”,新建彈出窗口支持Basic/Plc/Hmi混合編程,這里選擇新建的文件類型為Basic后確認。

14.png

5.設置文件自動運行:如下圖,雙擊文件右邊自動運行的位置,輸入任務號“0”。

15.png

Basic跟隨主體代碼:

global sub reg_Task()  '//鎖存線程
REG_INPUTS(belt) = $0000   '//指定皮帶軸的鎖存輸入口,這里R3 R2 R1 R0都用0號輸入口的信號
Reg_Count = 0 '// 清零鎖存計數循環量
WHILE 1
    REGIST(4)axis(belt)  '//開啟軸鎖存
    wait until(MARK(belt))  '//等待軸鎖存觸發
    Reg_Array(Reg_Count) = REG_POS(belt)   '//將鎖存到的軸位置存放到鎖存數組中
    reg_Flag(Reg_Count) = 1   '//標記觸發
    if(Reg_Count >= Reg_Space - 1) then    '//判斷鎖存緩存數組是否滿,滿了重新開始計數
        Reg_Count = 0
    else
         Reg_Count = Reg_Count + 1
    endif
    Reg_Count_All = Reg_Count_All + 1
WEND
endsub
global sub movesync_Task(Mode)   '//mode 0- 三段式跟隨   1- 直接跟隨
Sync_Count = 0  '// 清零 跟隨標志
Over_Max_Count = 0
Sync_Count_All = 0
base(X_sync,Y_sync,Z_sync)
moveabs(X_Wait,Y_Wait,Z_Wait)   '//移動到待機位
WHILE 1
    if(reg_Flag(Sync_Count) = 1) then
        reg_Flag(Sync_Count) = -1   '//復位標志
        wait until(MPOS(belt) > Reg_Array(Sync_Count) + Diff_Pos)   '//等待滿足觸發跟隨距離
        if(MPOS(belt) = Reg_Space - 1) then    '//判斷跟隨觸發是否讀取完了全部數據,滿了重新開始計數
            Sync_Count = 0
        else
             Sync_Count = Sync_Count + 1
        endif
    endif
wend
endsub

六.效果演示

下面以C#代碼跑測試和RTSys示波器抓取波形分析。

C#同步跟隨界面圖.png

C#同步跟隨界面圖

單次觸發和連續多次觸發圖.png

單次觸發和連續多次觸發圖

單次觸發與連續多次觸發速度分析圖.png

單次觸發與連續多次觸發速度分析圖

 

視頻講解可點擊→“PCIe EtherCAT實時運動控制卡PCIE464同步跟隨皮帶跟隨加工應用”查看。
 

完整代碼獲取地址

代碼二維碼.png

本次,正運動技術PCIe EtherCAT實時運動控制卡PCIE464同步跟隨/皮帶跟隨加工應用,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

二維碼.png


正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。主要業務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等。


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
全國產EtherCAT運動控制邊緣控制器(二):統一的上位機API接口
全國產EtherCAT運動控制邊緣控制器(一):ZMC432H硬件接口
經濟型EtherCAT運動控制器(四):ModbusRTU或ModbusTcp與觸摸屏通訊
推薦 | 8通道PSO的高性能EtherCAT總線運動控制器
正運動技術運動控制器如何快速實現單軸/多軸同步跟隨功能?
VPLC系列機器視覺運動控制一體機快速入門(八)測量點/線/圓
VPLC系列機器視覺運動控制一體機快速入門(五)尺寸測量
經濟型EtherCAT運動控制器(三):PLC實現多軸直線插補與電子凸輪
經濟型EtherCAT運動控制器(二):ZBasic實現多軸直線插補運動
經濟型EtherCAT運動控制器(一):功能簡介與應用場景
VPLC系列機器視覺運動控制一體機快速入門(九)劃痕檢測
VPLC系列機器視覺運動控制一體機快速入門(六)標定功能
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
免费观看在线综合色| 日韩欧美一区二区三区免费观看| 99pao成人国产永久免费视频| 伊人久久成人| 久久精品国产久精国产爱| 欧美va亚洲va日韩∨a综合色| 欧美另类中文字幕| 蜜桃视频在线观看一区| 成人午夜亚洲| 欧美国产不卡| 亚洲三级网站| 丝袜美腿亚洲一区| 免费国产亚洲视频| 精品国产网站| 国产精品一在线观看| 日韩精品一区二区三区中文在线 | 自拍日韩欧美| 久久精品国产网站| 久久国产欧美日韩精品| 日韩美女精品| 四虎精品永久免费| 亚洲在线一区| 久久久久久久久久久9不雅视频| 最新中文字幕在线播放| 亚洲精品网址| 久久婷婷激情| 久久国产日本精品| 欧美成人日韩| 久久香蕉国产| 欧美日韩国产一区精品一区| 红桃视频国产精品| 欧美日韩国产在线观看网站| 亚洲精品一区二区妖精| 亚洲最新av| 麻豆国产欧美日韩综合精品二区| 欧美亚洲专区| 日韩影院在线观看| 亚洲精品韩国| 偷拍亚洲精品| 国产精品17p| 国产精品调教视频| 石原莉奈在线亚洲三区| 日韩精品亚洲专区| 国产成人调教视频在线观看| 三级精品视频| 久久都是精品| 国产精品chinese| 三级精品视频| 亚洲美女久久| 四虎8848精品成人免费网站| 久久精品女人| 成人日韩在线观看| 自拍自偷一区二区三区| 麻豆国产欧美一区二区三区| 久久久久久久久久久9不雅视频| 久久亚洲一区| 韩日一区二区| 在线精品福利| 久久九九电影| 你懂的亚洲视频| 国产色综合网| 国产福利片在线观看| 三级欧美在线一区| 日韩欧美一区免费| 欧美日韩亚洲一区| 亚洲综合国产| 日韩中文字幕高清在线观看| 日韩一区二区三区在线看| 国产成人黄色| 日韩av资源网| 久久不射中文字幕| 美女国产精品久久久| 国产精品日韩| 三上悠亚国产精品一区二区三区| 国产亚洲一卡2卡3卡4卡新区| 成人午夜国产| 日韩毛片视频| 精品免费av| 国产欧美日韩精品一区二区免费 | 老牛国产精品一区的观看方式| 岛国精品一区| 国产情侣久久| 亚洲aⅴ网站| 亚洲一区二区三区免费在线观看| 国产精品黑丝在线播放| 国产三级精品三级在线观看国产| 国产视频一区欧美| 欧美日韩国产高清| 婷婷精品视频| 国产福利片在线观看| 国产一区二区三区不卡视频网站 | 亚洲18在线| 视频一区二区中文字幕| 99国内精品| 亚洲高清影视| 亚洲高清激情| 不卡中文字幕| 欧美精品激情| 西西人体一区二区| 在线精品观看| 日本在线不卡视频| 欧美一区网站| 国产精品网站在线看| 久久亚洲精精品中文字幕| 麻豆国产欧美日韩综合精品二区| 精品美女在线视频| 精品一区二区三区的国产在线观看| 91精品丝袜国产高跟在线| 日韩va亚洲va欧美va久久| 国产探花在线精品| 欧美韩日一区| 午夜国产精品视频免费体验区| 日韩午夜免费| 日韩高清电影免费| 久久精品伊人| 在线观看精品| 国产精品视区| 国产福利亚洲| 成人免费网站www网站高清| 亚洲综合丁香| 精品国产乱码| 国产99亚洲| 日本不卡在线视频| 精品视频网站| 国产精品日韩| 精品三区视频| 亚洲丝袜啪啪| 极品av在线| 综合激情视频| 欧美xxxx中国| 亚洲欧美在线综合| 色一区二区三区| 视频一区日韩精品| 日韩欧美三级| 青草综合视频| 视频二区不卡| 日本午夜精品久久久久| 久久久久久色 | 91精品国产91久久久久久黑人| 亚洲欧美日韩国产一区| 牛牛精品成人免费视频| 国产亚洲在线| 香蕉视频亚洲一级| 欧美精品国产白浆久久久久| 久久精品国语| 精品一区二区三区中文字幕| 亚洲国产日韩欧美在线| 精品亚洲成人| 日韩和欧美一区二区三区| 肉色欧美久久久久久久免费看| 日韩精品高清不卡| 国模 一区 二区 三区| 精品国产乱码久久久久久樱花| 免费精品视频在线| 国产综合激情| 日韩精品诱惑一区?区三区| 日韩不卡一区二区三区| 美女精品在线观看| 国产一区日韩欧美| 日韩大片在线观看| 久久精品国产99国产精品| 亚洲视频电影在线| 午夜久久久久| 婷婷成人基地| 日韩精品电影| 国产理论在线| 精品国产欧美日韩| 麻豆精品视频在线观看| 日韩精品高清不卡| 香蕉久久久久久| 日本亚州欧洲精品不卡| 国产精品美女| 国产亚洲福利| 国产美女精品| 亚洲欧美成人综合| 免费观看在线综合色| 亚洲视频电影在线| 日韩精品福利一区二区三区| 日韩一区精品| 日本色综合中文字幕| 欧美亚洲国产日韩| 国产精品一区三区在线观看| 91欧美精品| 韩日一区二区| 最新中文字幕在线播放| 久久美女性网| 国产亚洲一级| 91亚洲无吗| 美女视频黄免费的久久| 精品日韩在线| 99精品视频精品精品视频| 欧美日韩尤物久久| 亚洲一区激情| 国产一卡不卡| 中文字幕在线官网| 国产亚洲一区在线| 国产精品久久久久9999高清| av中文资源在线资源免费观看| 久久婷婷久久| 亚洲tv在线|