色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

C#上位機與KUKA機器人TCP通信:實時讀取坐標并發(fā)運動控制

C#上位機與KUKA機器人TCP通信:實時讀取坐標并發(fā)運動控制 簡介本資源是一套基于C#開發(fā)的工業(yè)級上位機控制系統(tǒng)實現(xiàn)方案面向自動化工程師、機器人集成開發(fā)者及高校機電/自動化專業(yè)高年級學生解決庫卡KUKA機器人與PC端通過TCP協(xié)議進行實時位置回傳與運動控制的核心通信問題。壓縮包共39個文件涵蓋5個核心C#源碼文件含F(xiàn)orm1.cs、KUKA_Motion.csproj等、4個說明類txt文件含readme.txt操作指南與a.txt運行日志、2個PDF技術文檔KSS系統(tǒng)軟件與Ethernet_KRL通信協(xié)議、2個可執(zhí)行exe程序及配套resx資源、pdb調(diào)試符號、xml配置與src運動腳本等整體大小18.59MB。已有294人學習下載。資源完整呈現(xiàn)“PC端TCP客戶端KUKA端KRL服務響應”的雙向通信架構(gòu)提供可直接編譯運行的VS解決方案.sln、結(jié)構(gòu)化數(shù)據(jù)包定義、校驗機制實現(xiàn)、位置解析邏輯及KUKA端motion16腳本部署示例特別適合理解工業(yè)現(xiàn)場中機器人API對接、協(xié)議封裝與實時性保障等關鍵實踐環(huán)節(jié)。 做工業(yè)自動化的兄弟們應該經(jīng)常碰到這類需求產(chǎn)線旁邊立著一臺KUKA機器人示教器和本體調(diào)試都做完了但工藝節(jié)拍要求在上位機界面上實時看到機器人當前的XYZ坐標和角度姿態(tài)最好還能遠程下發(fā)一個點讓機器人自己走過去。最順手的路子就是搞一臺工控機用C#寫個上位機跟機器人控制器通過TCP通信把位置數(shù)據(jù)拉回來、把運動指令發(fā)下去。這個項目名字聽著挺直白真正落地才發(fā)現(xiàn)協(xié)議設計、KRL編寫、連接穩(wěn)定性、坐標系約定每個環(huán)節(jié)都有不少坑。我前幾天剛把一個類似的項目完整跑通從C#上位機到KUKA KRC4控制器來回調(diào)試了一個多星期今天把整套方案從頭到尾捋一遍給準備上手的兄弟一份可以直接照著干的完整參考。1. 項目概述與整體方案選型1.1 需求分析為什么要在C#上位機上讀KUKA位置并控制運動這類需求通常出現(xiàn)在三種場景里。一是自動化產(chǎn)線的集中監(jiān)控現(xiàn)場有好幾臺機器人各自有獨立示教器和控制器但中控室需要一塊大屏幕實時顯示每臺機器人的當前位置方便工藝員隨時掌握設備狀態(tài)。二是和視覺系統(tǒng)聯(lián)動相機拍照之后算出工件的偏移量上位機把補償后的目標點發(fā)給機器人讓機器人自動抓取或者定位這種場合對位置下發(fā)的實時性和準確性要求很高。三是做數(shù)據(jù)追溯和質(zhì)量跟蹤機器人每走完一個工位上位機需要記錄當時的實際到達位置把這些數(shù)據(jù)存進MES系統(tǒng)。這個項目要解決的就是把機器人的內(nèi)部坐標數(shù)據(jù)通過工業(yè)以太網(wǎng)端口傳出來同時把上位機的控制指令傳進去。聽起來不難但KUKA機器人控制器默認不會隨便把內(nèi)部坐標暴露給外部設備需要借助KUKA自家的通信功能在KRL程序里做拆包、解析、執(zhí)行、回包這一整套動作。換句話說通信的技術棧是TCP/IP但真正難的不是TCP本身而是兩端之間的“約定”和“配合”。適合看這篇文章的是有一定C#基礎、又想往工業(yè)上位機方向走的開發(fā)以及現(xiàn)場搞機器人的電氣和調(diào)試人員。如果你是純C#后端出身對機器人控制不太熟也沒關系我會把這里面的坐標系統(tǒng)、KRL程序框架、WorkVisual配置一并講清楚你照著做也能跑通。1.2 為什么選TCP通信而不是其他方式KUKA機器人對外通信的常見方案大概有三種OPC UA、TCP/IP私有協(xié)議、以及基于I/O硬接線的數(shù)字量模擬量。這里我選了TCP核心原因是它在這個場景里平衡了實時性、靈活性和開發(fā)成本。先說OPC UA。它是現(xiàn)在工業(yè)互聯(lián)的熱門方案KRC4也支持好處是數(shù)據(jù)模型統(tǒng)一、跨平臺、安全機制完善適合設備接入MES或者SCADA系統(tǒng)。但它有個我這次很頭疼的問題配置相對重。需要在WorkVisual里做地址空間映射上位機還要引OPC UA客戶端庫對只想快速拉一個坐標點回來的項目來說多少有點殺雞用牛刀。而且OPC UA做位置實時刷新雖然可以但要做到毫秒級輪詢還得處理訂閱模型代碼復雜度一下就上去了。再說I/O硬接線。用數(shù)字量輸出給機器人一個“請求”信號機器人把位置通過串口或者Profibus送回PLC再由PLC轉(zhuǎn)給上位機。這種方案很多老產(chǎn)線在用響應速度可以做到非常穩(wěn)定但靈活性太差。你想改變速度、改目標點、切工具坐標系都得加信號定義邏輯寫起來相當痛苦。對于“要發(fā)坐標點讓機器人走一個任意位置”這種需求硬接線基本不現(xiàn)實。TCP方案的好處在于它走的是一根網(wǎng)線數(shù)據(jù)報文隨便定義想傳位置就傳位置想傳速度就傳速度想擴展命令直接加個字段就行。KUKA機器人自帶的EthernetKRL功能本質(zhì)就是給外部設備預留了一個TCP/IP的XML通信通道天生適合干這件事。而且C#這邊寫TCP客戶端簡直不要太順手TcpClient一兩行代碼就能連上Unity、WPF、WinForms都能無縫集成。缺點是協(xié)議需要自己定義沒有OPC UA那種“開箱即用”的標準語義但這恰好給了我們最大的自由度也正好是今天這篇文章要重點講的。1.3 整體架構(gòu)與數(shù)據(jù)流我先畫一下這個項目的通信架構(gòu)大家腦子里先有個圖。上位機是一臺普通工控機裝Windows系統(tǒng)和我們的C#程序通過網(wǎng)線直連或者經(jīng)過交換機接到KUKA機器人控制柜的網(wǎng)口上。KRC4控制器內(nèi)部跑著一個KRL主程序這個主程序通過EthernetKRL功能模塊建立一個TCP服務端一直監(jiān)聽上位機發(fā)過來的連接。整個數(shù)據(jù)流是這樣的上位機用C#的TcpClient連接到機器人控制器的某個端口連接建立后上位機主動發(fā)一段XML格式的請求文本比如請求當前坐標或者下發(fā)目標點機器人端的KRL程序收到這段XML解析出命令類型和參數(shù)然后執(zhí)行對應的操作如果請求的是位置KRL程序就把當前機器人的實際坐標拼成一段XML文本通過TCP返回給上位機如果請求的是運動KRL程序就把目標點寫入運動指令觸發(fā)機器人移動同時周期性地把運動過程中的實時位置推回給上位機。這里有個關鍵點到底誰是服務端、誰是客戶端。KUKA的EthernetKRL支持兩種模式一種是機器人當TCP服務端外部設備來連接它另一種是機器人當TCP客戶端主動去連接外部設備開放的端口。我這次用的是“機器人做服務端上位機做客戶端”的模式理由很簡單上位機程序可以隨時重連機器人斷開后能自動恢復連接而且上位機作為主動發(fā)起方容易集中管理多臺機器人的連接。你要反過來做也行但現(xiàn)場如果有多臺上位機同時要連機器人服務端模式會更有優(yōu)勢。2. 通信協(xié)議與數(shù)據(jù)格式設計2.1 KUKA側(cè)的EthernetKRLXML機制這里得先把KUKA的EthernetKRL講講清楚不然很多兄弟會卡在“KRL程序里怎么收發(fā)字符串”這一步。EthernetKRL是KUKA控制器里的一個通信擴展它的核心思路是在控制器上創(chuàng)建一個TCP通道通道收到外部發(fā)來的字符串后把字符串放到KRL變量里KRL程序可以用專門的函數(shù)把這段字符串取出來解析反過來KRL程序也可以把一段字符串通過這個通道發(fā)回給外部設備。它和直接在KRL里寫socket不太一樣。EthernetKRL把底層的TCP連接管理、粘包拆包、字符串緩沖這些臟活全部封裝好了KRL開發(fā)人員只需要管業(yè)務邏輯從某個通道里拿字符串、解析、處理、回傳。正因為這樣它對KRL編程水平的要求并沒有想象中那么高。你只需要在WorkVisual里配置好通道參數(shù)然后在KRL代碼里調(diào)用EthernetKRL提供的函數(shù)就行了。EthernetKRL的配置信息通常集中在一個XML文件里里面定義了通道名、IP地址、端口、發(fā)送接收緩沖區(qū)大小這些參數(shù)。這個文件的具體路徑和格式KUKA不同版本略有區(qū)別但邏輯都一樣通道名是你在KRL代碼里引用這個通信連接時的標識符IP和端口決定了對端怎么找到這個通道。我在C#這一端設計協(xié)議的時候刻意讓報文格式和EthernetKRL的XML風格保持一致。這樣做的好處是KRL那邊解析時可以直接用EthernetKRL自帶的XML取值函數(shù)不需要手寫字符串截取。兩個端都基于XML排查問題的時候用網(wǎng)絡調(diào)試助手一看報文清清楚楚。2.2 自定義消息格式與命令集兩個端要對話首先得有語言。我定義的請求報文長這樣Command TypeGetPose/Type /Command這是最簡單的取位置請求上位機發(fā)給機器人機器人收到后返回當前位置。如果是運動控制報文長這樣Command TypeMoveTo/Type Coordinate X520.00/X Y30.50/Y Z680.20/Z A0.00/A B0.00/B C45.00/C /Coordinate MotionPTP/Motion Speed50/Speed /Command對應地機器人返回位置報文如下Response ResultOK/Result Pose X519.87/X Y30.42/Y Z680.15/Z A0.02/A B-0.01/B C45.03/C /Pose StateRunning/State /Response這套協(xié)議我做了兩件事。第一用Type字段區(qū)分命令類型目前定義了GetPose、MoveTo、SetSpeed、Stop、Home這幾類。第二所有數(shù)值統(tǒng)一用字符串表示不涉及二進制浮點字節(jié)序的坑。在KRL那邊解析時直接取節(jié)點里的文本再轉(zhuǎn)成REALC#這邊用XDocument解析XML節(jié)點效率足夠而且出問題能一眼看出格式錯在哪。協(xié)議設計時我特意留了State字段用來返回機器人的當前狀態(tài)比如Idle空閑、Running運行中、Error報警。這個字段很實用上位機可以據(jù)此判斷當前是否能接受新的運動指令避免在機器人還在運動過程中就下發(fā)下一個點造成指令沖突。2.3 坐標系統(tǒng)與實時性指標拿到X、Y、Z、A、B、C這六個值之前得先搞明白它們是什么坐標系下的。KUKA機器人默認返回的是工具坐標系TCP在基坐標系下的位置和姿態(tài)X、Y、Z是毫米單位的平移量A、B、C是用歐拉角表示的旋轉(zhuǎn)量單位是度。在實際項目里上位機顯示給操作員看的通常就是機器人控制器上示教器顯示的當前值這樣才能讓工人和技術員對照核實。實時性方面機械臂的位置返回不可能像PLC的模擬量采樣那么快。KRC4的控制周期一般在12ms左右但EthernetKRL的XML處理走的是后臺解釋器涉及字符串的序列化和反序列化實際能穩(wěn)定做到的輪詢周期大約在50ms到200ms之間。我做的是100ms輪詢一次也就是一秒十次對于監(jiān)控顯示和視覺引導來說完全夠用。如果你追求更快的反饋可以考慮減少XML節(jié)點數(shù)量、精簡屬性名或者改用更緊湊的私有協(xié)議但KRL解析側(cè)的壓力會增加性價比得掂量一下。還有個容易搞混的點機器人執(zhí)行運動指令時位置反饋是動態(tài)變化的你的報文里返回的是哪個時刻的位置KUKA返回的是讀取時刻的實際軸位置換算出的TCP坐標不確定的具體時間戳沒有所以你在上位機里看到的值嚴格來說是“KRL讀取那一刻”的坐標中間隔了網(wǎng)絡傳輸延遲和解析延遲。對于絕大多數(shù)監(jiān)控場景這個誤差完全可接受但如果你要做高精度的同步記錄建議在KRL側(cè)同時把系統(tǒng)時間也拼進響應報文存到數(shù)據(jù)庫時作為參考。3. C#上位機核心實現(xiàn)3.1 TCP通信模塊的封裝C#上位機的核心就是TCP通信。我封裝了一個KukaTcpClient類負責連接管理、消息發(fā)送、接收循環(huán)和事件回調(diào)這樣界面層只關心收數(shù)據(jù)和發(fā)命令不用去碰socket的底層細節(jié)。先看連接代碼public class KukaTcpClient { private TcpClient _client; private NetworkStream _stream; private CancellationTokenSource _cts; private readonly object _sendLock new object(); public event Actionstring DataReceived; public event Actionbool ConnectionChanged; public async Task ConnectAsync(string ip, int port) { try { _client new TcpClient(); _client.NoDelay true; await _client.ConnectAsync(ip, port); _stream _client.GetStream(); _cts new CancellationTokenSource(); _ Task.Run(() ReceiveLoopAsync(_cts.Token)); ConnectionChanged?.Invoke(true); } catch (Exception ex) { ConnectionChanged?.Invoke(false); throw new Exception($連接KUKA控制器失敗: {ex.Message}); } } }這里有個小細節(jié)我在實際項目里反復吃過虧TcpClient.NoDelay一定要設為true關閉TCP的Nagle算法。Nagle算法默認會把小數(shù)據(jù)包合并成大包再發(fā)送減少網(wǎng)絡報文數(shù)量。本來這是好事但在我們的上位機場景里100ms就往返一次XML報文每次報文本身也就幾百字節(jié)Nagle算法會導致一條指令遲遲發(fā)不出去等湊滿一個TCP段才發(fā)送實時性和響應速度都受影響。把NoDelay打開之后報文即發(fā)即走實測下來延遲明顯降低。接收循環(huán)我用了ReadAsync配合MemoryStream做數(shù)據(jù)緩沖。因為TCP是流式協(xié)議你發(fā)給對端的一段字符串對端接收時可能一次收到半段、也可能一次收到好幾段這就是經(jīng)典的“粘包/拆包”問題。我的處理方案是做應用層分包所有報文以換行符\n結(jié)尾接收循環(huán)讀到換行符才認為一個完整報文結(jié)束然后觸發(fā)事件。private async Task ReceiveLoopAsync(CancellationToken token) { var buffer new byte[4096]; var streamBuffer new MemoryStream(); while (!token.IsCancellationRequested) { try { int bytesRead await _stream.ReadAsync(buffer, 0, buffer.Length, token); if (bytesRead 0) { // 對端關閉連接觸發(fā)斷開邏輯 ConnectionChanged?.Invoke(false); break; } streamBuffer.Write(buffer, 0, bytesRead); streamBuffer.Position 0; var reader new StreamReader(streamBuffer, Encoding.UTF8, true); while (true) { var line reader.ReadLine(); if (line null) break; DataReceived?.Invoke(line); } var remain streamBuffer.Length - streamBuffer.Position; var rest new byte[remain]; streamBuffer.Read(rest, 0, rest.Length); streamBuffer.Dispose(); streamBuffer new MemoryStream(rest.Length 0 ? rest : null); } catch (Exception ex) { ConnectionChanged?.Invoke(false); break; } } }寫發(fā)送方法時我加了個簡單鎖防止多個業(yè)務線程同時向同一個NetworkStream寫數(shù)據(jù)導致報文交錯。public void Send(string xmlString) { if (_stream null || !_client.Connected) return; lock (_sendLock) { var data Encoding.UTF8.GetBytes(xmlString \n); _stream.Write(data, 0, data.Length); _stream.Flush(); } }這套封裝調(diào)通之后上位機的其他模塊都可以通過Send發(fā)送數(shù)據(jù)通過DataReceived事件接收機器人返回的報文。連接成功后我還會單獨起一個心跳任務每2秒發(fā)一條CommandTypeGetPose/Type/Command如果連續(xù)幾次沒有響應就判定連接異常觸發(fā)重連。這個心跳在調(diào)試階段幫了大忙機器人那邊程序一崩、或者網(wǎng)線松動上位機馬上就能覺察到。3.2 消息收發(fā)與XML解析有了TCP收發(fā)模塊下一步就是把收到的XML字符串解析成機器人狀態(tài)數(shù)據(jù)。C#里解析XML有很多方式我選了XDocument理由是這個項目的報文結(jié)構(gòu)穩(wěn)定、節(jié)點層級不深用Linq操作最直觀代碼短、可讀性好。public RobotPose ParseResponse(string xmlText) { var doc XDocument.Parse(xmlText); var root doc.Root; var poseNode root.Element(Pose); if (poseNode null) return null; return new RobotPose { X double.Parse(poseNode.Element(X).Value), Y double.Parse(poseNode.Element(Y).Value), Z double.Parse(poseNode.Element(Z).Value), A double.Parse(poseNode.Element(A).Value), B double.Parse(poseNode.Element(B).Value), C double.Parse(poseNode.Element(C).Value) }; }解析邏輯本身不難但實際聯(lián)調(diào)時我遇到一個容易忽略的坑KRL返回的數(shù)值可能帶著科學計數(shù)法比如某個軸角度存儲格式是1.200000012E02。C#的double.Parse默認能識別這種格式所以沒問題。但如果你的項目里用float.Parse并且沒有指定CultureInfo.InvariantCulture在中文Windows系統(tǒng)上字符串里的小數(shù)點會被當成逗號處理解析直接拋異常。這個坑很隱蔽我后來統(tǒng)一在解析入口處加了CultureInfo.InvariantCulture一勞永逸。另外機器人在運動過程中返回的位置值多多少少會有抖動特別是軌跡插補過程中某幾個軸的微小震動反映到笛卡爾坐標上可能表現(xiàn)為最后一位小數(shù)跳來跳去。如果上位機界面直連顯示這個原始值操作員看久了會覺得系統(tǒng)不穩(wěn)定。我在顯示層加了一個滑動窗口濾波取最近五次采樣值的平均值再顯示。注意是只在顯示層做平滑原始數(shù)據(jù)要原封不動地留給日志和后續(xù)算法避免把真實數(shù)據(jù)搞臟。3.3 界面實時刷新與跨線程處理我這次用的WPF因為WPF的數(shù)據(jù)綁定機制在更新高頻監(jiān)控界面時比WinForms舒服很多。搞了一個PoseViewModel實現(xiàn)了INotifyPropertyChanged界面上直接綁定X、Y、Z等屬性。跨線程更新UI是所有上位機開發(fā)都會遇到的老大難。TCP接收線程里解析完數(shù)據(jù)不能直接給界面上的Label賦值否則會拋“調(diào)用線程無法訪問此對象”的異常。我在接收事件里用了Dispatcher.BeginInvoke把數(shù)據(jù)更新操作切回UI線程。DataReceived (xml) { var pose ParseResponse(xml); if (pose null) return; Application.Current.Dispatcher.BeginInvoke(new Action(() { _viewModel.X pose.X; _viewModel.Y pose.Y; _viewModel.Z pose.Z; _viewModel.A pose.A; _viewModel.B pose.B; _viewModel.C pose.C; })); };100ms刷新一次UI線程的負載其實很低即使加上日志顯示和狀態(tài)圖標更新也幾乎感覺不到卡頓。但如果以后要同時監(jiān)控四臺機器人每臺100ms就是每秒40次UI更新這時候最好把Dispatcher的優(yōu)先級調(diào)整一下并且把數(shù)據(jù)先打包成對象再一次性更新避免屬性一個個刷造成的布局抖動。界面上我還做了運動控制區(qū)域輸入目標點和速度之后點擊“移動”按鈕。按鈕點擊事件里把文本框內(nèi)容組裝成XML命令調(diào)用Send發(fā)出去。發(fā)送完之后我會在狀態(tài)欄顯示“指令已下發(fā)等待機器人到達”同時用上面說的位置數(shù)據(jù)判斷機器人是否到位。到位判定的邏輯是連續(xù)十次采樣位置與目標點的距離差都小于1毫米認為到位狀態(tài)欄變成“已到達”。這個邏輯雖然樸素但在實際項目里很可靠。3.4 運動控制指令的實現(xiàn)細節(jié)運動指令的下發(fā)是上位機最敏感的功能因為一個錯誤的坐標值可能讓機器人直接超限報警嚴重的還會撞周邊設備。我這邊把指令封裝成方法做了三層防護。第一層是參數(shù)校驗。X、Y、Z的值必須落在機器人工作空間范圍內(nèi)我是直接在C#代碼里寫死了邊界值比如X最小200、最大1200這種。A、B、C的角度范圍是正負180度超出就彈窗提示。速度參數(shù)強制限制在0到100之間防止誤填200這樣的非法值。第二層是狀態(tài)校驗。發(fā)指令之前先檢查最后一次返回的State字段如果是Error或者Running就不允許下發(fā)新指令提示操作員等機器人空閑或先復位報警。第三層是確認機制。機器人端收到MoveTo指令并執(zhí)行到位后會返回一個Result字段為OK的響應。上位機只有在收到這個確認后才認定指令真正執(zhí)行完成否則報超時。避免機器人還沒執(zhí)行上位機就顯示“成功”的假象。public bool MoveTo(double x, double y, double z, double a, double b, double c, int speed, int timeoutMs 5000) { var cmd $CommandTypeMoveTo/Type Coordinate X{x.ToString(F2, CultureInfo.InvariantCulture)}/X Y{y.ToString(F2, CultureInfo.InvariantCulture)}/Y Z{z.ToString(F2, CultureInfo.InvariantCulture)}/Z A{a.ToString(F2, CultureInfo.InvariantCulture)}/A B{b.ToString(F2, CultureInfo.InvariantCulture)}/B C{c.ToString(F2, CultureInfo.InvariantCulture)}/C /Coordinate MotionPTP/Motion Speed{speed}/Speed/Command; Send(cmd); // 等待確認事件超時拋出異常 if (!_ackSemaphore.Wait(timeoutMs)) throw new TimeoutException(機器人端未返回確認信號); return _lastAck; }這里用了一個SemaphoreSlim作為確認信號收到機器人的響應后在事件處理里釋放。實際項目中這個等待超時的機制幫了大忙機器人程序萬一卡死上位機不會無限期等下去。4. KUKA機器人端配置與KRL編程4.1 WorkVisual中EthernetKRL配置C#這邊代碼寫得再漂亮機器人端沒配好一切都是白搭。KUKA端的第一步是在WorkVisual里配置EthernetKRL通道。具體菜單不同版本的WorkVisual會有點差異但大致邏輯是在機器人項目的樹形結(jié)構(gòu)下找到和“EthernetKRL”相關的配置項添加一個新通道填寫通道名稱、IP地址、端口號并選擇角色。我這次配置的通道名稱叫KrcChannelIP地址填寫的是KRC4控制器上網(wǎng)絡端口的IP端口用的5010角色選的是“Server”也就是服務端模式。這里強烈建議端口號和通道名稱都固定下來寫到項目文檔里后續(xù)維護的人不用靠猜。配置完之后WorkVisual會生成對應的XML配置文件。這份文件在控制器上的具體路徑一般位于C:\KRC\ROBOTER\Config\User\Common\EthernetKRL\下。你不一定需要手動編輯它很多時候通過WorkVisual界面配置就足夠了。但了解這個路徑很有用因為現(xiàn)場如果改了網(wǎng)段需要直接確認這份配置文件里的IP和端口是不是對的。配置完通道后要把項目部署到控制器上重新激活或者熱啟動。這個步驟順序挺重要我一開始沒注意在WorkVisual里配置好了但沒激活結(jié)果KRL程序一初始化就報“通道不存在”。后來才反應過來配置文件和KRL代碼是兩套東西部署激活之后新配置才會生效。4.2 KRL側(cè)的消息處理主循環(huán)機器人端的KRL程序是整個系統(tǒng)能轉(zhuǎn)起來的另一半。核心邏輯就是一個循環(huán)等待EthernetKRL通道收到報文解析命令執(zhí)行響應動作返回結(jié)果。我用KRL寫了一個簡化的主循環(huán)框架大致結(jié)構(gòu)如下DEF KRC_TCP_MAIN() DECL EKI_STATUS RET DECL CHAR REQ_CHAR[1024] DECL CHAR RESP_CHAR[1024] ; 打開EthernetKRL通道 EKI_INIT(hKRL, KrcChannel) LOOP ; 等待并讀取上位機發(fā)來的請求 RET EKI_GET_STRING(hKRL, REQUEST, REQ_CHAR[]) IF RET.EKI_OK THEN ; 解析請求內(nèi)容 ; 判斷命令類型 ; 如果命令是獲取位置 ; 讀取當前TCP坐標XP, YP, ZP, AP, BP, CP ; 拼裝響應XML字符串 ; EKI_SET_STRING(hKRL, RESPONSE, RESP_CHAR[]) ENDIF WAIT SEC 0.02 ENDLOOP END上面的代碼是示意真實EthernetKRL函數(shù)的簽名和數(shù)據(jù)類型在不同KRC版本上會有差異大家以你手上的KRL手冊為準。我要強調(diào)的是這個20毫秒的等待時間。最開始我寫了個空轉(zhuǎn)死循環(huán)結(jié)果后臺解釋器負載居高不下機器人看起來卡卡的。加了個WAIT SEC 0.02之后掃描周期穩(wěn)定在50ms附近機器人本體的運動調(diào)度幾乎不受影響。在KRL里解析XML最土的辦法是用字符串函數(shù)手動截取標簽之間的內(nèi)容。比如取X坐標; 找到 X 和 /X 之間的字符串 pos1 FIND(REQ_CHAR[], X) pos2 FIND(REQ_CHAR[], /X) SUBSTR(REQ_CHAR[], pos1 3, pos2 - pos1 - 3, tmpStr) X_TARGET VAL(tmpStr[] , 0)這個辦法看著不優(yōu)雅但兼容性最好不依賴控制器上的XML庫。如果你用了EthernetKRL自帶的XML工具函數(shù)代碼會簡潔不少但那需要額外的配置和依賴現(xiàn)場環(huán)境不一定支持。我圖穩(wěn)就用了手寫解析。真正的MoveTo指令處理KRL這段會讓很多不常寫機器人程序的兄弟困惑KRL里怎么接受外部傳進來的坐標點答案是通過全局變量。KRL程序里定義一個全局位置變量GLOBAL X_TARGET_POS收到上位機的坐標后給這個變量賦值然后置位一個全局標志位GLOBAL G_MOVE_REQ。主循環(huán)里檢測到這個標志位就調(diào)用PTP或者SLIN指令往目標點移動IF G_MOVE_REQ THEN ; 構(gòu)造目標點類型的位置變量 E6POS TARGET_POS TARGET_POS.X X_TARGET TARGET_POS.Y Y_TARGET TARGET_POS.Z Z_TARGET TARGET_POS.A A_TARGET TARGET_POS.B B_TARGET TARGET_POS.C C_TARGET ; 以PTP方式運動速度百分比 PTP TARGET_POS C_VEL ; 運動完成后復位標志位 G_MOVE_REQ FALSE ; 組裝置位完成的XML響應并返回 ENDIF這里有幾個細節(jié)值得展開。第一PTP指令會把機器人從當前點快速插補運動到目標點與路徑形狀無關適合機器人從一個工位轉(zhuǎn)到另一個工位。如果你的應用需要走直線或者圓弧就得改用LIN或者CIRC同時需要考慮姿態(tài)過渡和速度規(guī)劃代碼復雜度會再上一個臺階。第二速度C_VEL是KUKA的編程速度變量通常在程序頂部定義成百分比比如$VEL.CP 0.5代表50%的笛卡爾速度。機器人程序默認是無限循環(huán)運行的如果上位機一直下發(fā)點位機器人就會不停地執(zhí)行運動指令。4.3 安全互鎖與模式切換說完功能必須說安全。運動控制這個東西功能跑通不算完出了事就是大事。我這邊做了幾層保護效果還不錯。第一機器人程序里判斷了當前運行模式。KUKA機器人有三種模式T1手動低速模式、T2手動高速模式、AUT自動模式。只有在自動模式下才允許響應上位機的MoveTo指令。手動模式下上位機彈出的運動指令一律忽略返回一個Error響應。這樣能防止調(diào)試人員在機器人旁邊時上位機突然發(fā)出一個運動指令把人嚇一跳。第二安全距離判斷。KRL程序在收到MoveTo指令后先檢查目標坐標是否在預設的安全工作區(qū)范圍內(nèi)這里的上下限是一組全局變量可以在上位機界面上改。實際判斷就一行比較邏輯但如果目標點出了安全區(qū)直接拒絕執(zhí)行并返回錯誤信息。第三急停聯(lián)動。急停按鈕的硬接線是獨立于上位機的機器人控制柜本身就有安全回路這點絕對不能省。上位機的軟件停止只是一個輔助功能當上位機檢測到連接異常時向機器人發(fā)送Stop指令讓機器人暫停運動但真正的緊急斷電仍然必須依賴物理急停。關于模式切換還有一個實操經(jīng)驗自動模式下面機器人程序選到AUT后程序默認是停止狀態(tài)需要按一次“程序啟動”按鈕讓程序跑起來上位機的指令才能真正被處理。我在現(xiàn)場第一次聯(lián)調(diào)時沒按這個按鈕上位機發(fā)了一堆指令過去石沉大海KRL那邊變量確實被改到了但程序沒進循環(huán)執(zhí)行整個人懵了好幾分鐘。后來在程序里加了個人機交互的提示讓現(xiàn)場工人確認自動模式下已經(jīng)啟動了程序問題才解決。5. 實測過程與調(diào)試經(jīng)驗5.1 聯(lián)調(diào)前先把環(huán)境攔住做這個項目我最怕的就是一上來就把C#程序和機器人連在一起互相調(diào)試。雙方都有bug出了問題根本分不清是上位機發(fā)錯了還是機器人端沒接住。因此我強烈建議分三步走先純軟件模擬、再分開聯(lián)調(diào)、最后真機聯(lián)動。第一步用網(wǎng)絡調(diào)試助手開一個TCP Server模擬KUKA機器人。把C#程序連上這個模擬服務驗證上位機的連接邏輯、心跳邏輯、發(fā)指令和解析響應的流程。這段時間可以把XML協(xié)議的各種邊界情況都測一遍比如機器人返回數(shù)據(jù)中間有空格、數(shù)字帶科學計數(shù)法、偶發(fā)一包收到兩條報文之類的情況都在模擬階段處理掉。第二步用KUKA官方或者第三方工具連一下真機確認以太網(wǎng)物理鏈路通、EthernetKRL通道能夠正常建立連接、KRL程序確實把配置好的通道初始化了。我記得第一次連真機時用調(diào)試助手向機器人發(fā)了一條命令KRL那邊一點反應都沒有。排查半天發(fā)現(xiàn)是控制柜后面網(wǎng)口插錯了插到了編程口而不是以太網(wǎng)口物理層根本沒有通。第三步才輪到C#程序和機器人正式聯(lián)動。這時候上位的代碼和KRL程序都已經(jīng)各自單測過問題范圍就小了很多。而且在正式跑運動指令之前先把速度百分比設到10%以下確認機器人運動方向正確、坐標系理解一致再逐步把速度提上去。這是做運動控制項目必須養(yǎng)成的習慣。5.2 真實聯(lián)調(diào)過程中踩過的坑聯(lián)調(diào)階段踩坑無數(shù)我挑典型的說幾個給兄弟們做參考。第一個坑是防火墻攔截。C#程序部署到Windows工控機上之后第一次連接機器人超時但同一臺機器上用TCP調(diào)試助手就能正常連接。排查了一下午才發(fā)現(xiàn)是Windows防火墻默認擋了C#程序的入站連接而調(diào)試助手彈出了防火墻提示框被手快點掉了所以它沒被攔截。解決辦法是控制面板里放行程序或者直接關閉防火墻工控機在獨立局域網(wǎng)內(nèi)可以這么做。第二個坑是KRL程序在運動指令執(zhí)行期間會卡住后續(xù)的報文處理。PTP這種運動指令是阻塞式的KRL線程執(zhí)行到PTP會一直等到運動完成才繼續(xù)往下走。如果上位機在機器人運動過程中發(fā)一個GetPose請求KRL線程正卡在PTP指令里根本不會去讀EthernetKRL緩沖區(qū)的數(shù)據(jù)響應自然就回不去。解決辦法是把位置讀取和運動執(zhí)行拆成兩個KRL進程或者事件處理或者在上位機加一個超時重試機制。我簡化了一點運動過程中GetPose數(shù)據(jù)由機器人端另外一個后臺任務返回主運動線程只處理MoveTo指令這樣兩件事不再搶同一條執(zhí)行通道。第三個坑是網(wǎng)絡抖動導致字符串截斷。TCP本身不會丟數(shù)據(jù)但網(wǎng)絡延遲高的時候C#接收循環(huán)可能一次只收到半個報文下一次事件才補齊后半段。我最初收到的報文解析失敗率特別高排查發(fā)現(xiàn)是接收循環(huán)里按“行”分割的邏輯沒有處理“最后一段不完整”的情況。后來改成上面貼的MemoryStream緩存方案讀一幀處理一幀直到讀到換行符才算一個完整報文這個坑才算徹底填平。第四個坑和KRL側(cè)字符串長度有關。EthernetKRL通道的緩沖區(qū)是有上限的默認配置下大概幾KB。正常情況下我們報文字節(jié)數(shù)很小但萬一操作員把備注信息塞進報文里超過緩沖區(qū)長度報文明明發(fā)出去了機器人卻收到一堆亂碼然后解析失敗。這個問題的治理思路是控制報文長度在C#端做了報文最大長度校驗超過1024字節(jié)直接拒發(fā)并提示。我把這些坑整理成一個速查表給后來者省點時間?,F(xiàn)象常見原因處理辦法上位機連不上機器人端口未開放、機器人程序未啟動、IP不在同一網(wǎng)段先ping通再用調(diào)試助手測試端口連通性能連上但沒收到任何數(shù)據(jù)KRL程序沒進循環(huán)、EthernetKRL通道未初始化確認自動模式和程序運行狀態(tài)查看KRL后臺信息數(shù)據(jù)偶爾解析失敗TCP粘包拆包沒處理好C#端按換行符累積緩存一個完整報文再解析機器人執(zhí)行指令后不回狀態(tài)PTP阻塞了KRL主線程運動指令和狀態(tài)反饋拆分處理上位機加重試位置顯示亂跳機械震動或者數(shù)值精度顯示層加滑動窗口濾波數(shù)據(jù)層保留原始值上位機程序被殺毒軟件攔截殺毒誤報或者防火墻工控機加白名單內(nèi)網(wǎng)環(huán)境適度降低安全策略5.3 性能調(diào)優(yōu)與穩(wěn)定性優(yōu)化聯(lián)調(diào)跑通之后還要考慮長時間運行的問題。工業(yè)現(xiàn)場一開機可能就是連續(xù)一個月上位機和機器人的通信如果三天兩頭斷開重連工人會罵人的。輪詢周期我最終定在100ms這里有一個權(quán)衡輪詢太頻繁比如20ms一次EthernetKRL通道來不及處理會造成消息積壓表現(xiàn)為機器人端緩沖區(qū)越積越多機器人的實時性反而下降輪詢太慢比如500ms一次界面上的位置看起來一卡一卡的操作員體驗差。100ms是在這個項目里實測下來比較平衡的值既能流暢顯示位置變化又不會給KRL造成壓力。穩(wěn)定性上我做了兩件事。一是自動重連機制C#程序發(fā)現(xiàn)連接斷開后立即用一個后臺任務嘗試重連重連間隔從1秒開始連續(xù)失敗則指數(shù)退避最多間隔10秒?,F(xiàn)場工況下最常遇到的不是機器人完全斷電而是偶爾網(wǎng)絡閃斷自動重連能在閃斷恢復后幾十秒內(nèi)把通信重新建立起來。二是上位機日志功能。C#這邊所有發(fā)送的報文和接收的報文都寫入本地日志文件按天切割。KRL這邊我同樣加了一個簡單的狀態(tài)寫入把接收到的目標點和執(zhí)行結(jié)果寫到控制器上的文本文件里。出現(xiàn)爭議時兩邊日志一對比誰發(fā)的誰收的一眼就能定位。這個習慣幫我解決了好幾次工藝那邊“是誰動了機器人”的糾紛。6. 經(jīng)驗總結(jié)與后續(xù)擴展6.1 做這類項目的心得做完這個項目我最大的體會是C#上位機連接KUKA機器人這件事真正的技術難點從來不在C#語言本身也不在TCP協(xié)議本身而在于“兩個獨立系統(tǒng)之間的契約”。C#的世界里數(shù)據(jù)類型是整整齊齊的try-catch一包異常隨便處理。KRL的世界里字符串處理要自己動手坐標值用REAL類型程序跑在機器人控制器上安全性和實時性要求完全不一樣。你要做的工作本質(zhì)上是把兩個世界的“語言”翻譯到同一個XML約定里讓它們能互相理解。這個項目里我花了不少時間在KRL端寫字符串解析和響應拼接這部分代碼的運行效率和健壯性直接決定了通信質(zhì)量。KRL不是一門很舒服的編程語言調(diào)試手段也有限最好的策略是讓KRL端代碼盡量簡單只做“指令解析、坐標賦值、狀態(tài)返回”這三件事把復雜的坐標變換、路徑規(guī)劃、UI交互都放在C#端。C#端的代碼出了問題可以隨時加日志、開斷點、改完重新編譯而KRL程序一改往往需要上傳、重啟開發(fā)效率低得多。所以職責劃分要清晰運算在C#執(zhí)行在KRL。另外一個心得是位置返回和運動控制這兩個功能最好分開調(diào)試。先把位置返回跑通界面上能看到實時坐標了再去做運動控制。因為運動控制出問題時你需要靠位置數(shù)據(jù)來快速判斷機器人是否動了、動到哪里了。如果你兩個功能一起上線出現(xiàn)異常會非常難定位。6.2 后續(xù)可以在哪些方向擴展這套架構(gòu)跑通之后擴展空間其實很大。最簡單的一個把C#程序里連接機器人的IP和端口改成可配置放到配置文件里程序就成了一個通用的KUKA通信中間件。再往下可以接入多臺機器人UI層面用選項卡或者列表切著監(jiān)控底層用同一個通信類實例化多個客戶端對象就行。如果要做得更專業(yè)一點可以增加姿態(tài)可視化?,F(xiàn)在上位機只顯示數(shù)字坐標操作員腦補機器人在空間里的姿態(tài)比較費勁。C#這邊拿到X、Y、Z、A、B、C之后可以轉(zhuǎn)換成旋轉(zhuǎn)矩陣再用WPF的3D能力畫一個簡化的機器人模型或者坐標軸指示器這樣機器人姿態(tài)一目了然。坐標轉(zhuǎn)換的代碼網(wǎng)上能找到現(xiàn)成庫但你要注意歐拉角的旋轉(zhuǎn)順序KUKA的ABC角有特定的約定轉(zhuǎn)矩陣時順序搞錯了顯示出來的姿態(tài)會非常詭異。還有一條路是軌跡回放。上位機每100ms記錄一次位置連續(xù)記錄一天就能得到一條機器人的工作軌跡。把這軌跡畫在界面上或者導出成CSV文件對工藝優(yōu)化會非常有幫助。這個功能需求一旦提出來你前面的位置采集框架完全不用改加個數(shù)據(jù)落庫就行。如果之后要接入MES系統(tǒng)或者讓多臺設備統(tǒng)一上報可以考慮把C#上位機里的數(shù)據(jù)再通過SQL寫入數(shù)據(jù)庫或者用MQTT轉(zhuǎn)發(fā)到云端。到那一步C#上位機就成了一個數(shù)據(jù)匯聚層向下對接機器人向上對接管理系統(tǒng)。目前的TCP通信模塊完全可以復用你要做的只是在數(shù)據(jù)到達的Event里加一個轉(zhuǎn)發(fā)動作而已。最后再分享一個小技巧這個項目里我用得最多每次修改協(xié)議或者代碼先在C#端加一個“檢測模式”也就是手動輸入XML報文直接發(fā)送的調(diào)試窗口。上位機正式界面上不放這個窗口但在開發(fā)版里保留。真機聯(lián)調(diào)時遇到任何奇怪問題都能手動拼一條報文發(fā)給機器人看看KRL那邊到底怎么響應比層層斷點定位效率高得多。這個習慣幫我省下的時間不比寫通信模塊本身少。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99热最新| 国产精点久久久成人| 91亚洲色人| 中文字幕日韩人妻视频一区二区三区交换夫妻| 乱伦日本色图AⅤ| 密臀视频一区二区三区| 激情五月综合网| 97久久国产精品| 综合久| 嗯嗯啊啊操我| 伊人96在线| 国产人妻天天干精品| 女优大全 - 91n| 97超碰色屌| 综合免费无码中文| 人人操人人摸人人看人人插| 人妻第一页| 亚洲不卡不卡中文字幕不卡| 一区二区三区精品黑丝白丝酒店对鸡| 狠狠色伊人亚洲综合网站色| 97综合激情| 麻豆一区在线| 99在线观看| 国产精品嫩草影院免费| 蜜臀久久99精品久久久电影| 亚洲风情在线观看| 99蜜桃臀久久久欧美精品网站| 国产精选三级在线观看| 五十路六十路七十路熟婆| 人妻少妇精品久久久久久| 久久男人网| 久久人妻视频网| 中国一区二区亚洲人妻| 亚洲精品无码久久AV| 清纯唯美亚洲综合| 日日夜夜骑| 亚洲欧美啪啪| 日韩少妇无码| 超碰色美女| 97伪v| 在线观看十八禁| 熟女人妇一区二区三区| 午夜激情成人在线观看| 豆花视频操逼网址| 少妇人妻好深太紧了vr91| AV中亚| 亚洲国产精品久久久久婷婷老年 | 久久一二三四不卡 | 欧美日韩理论一区| 九九热五区| 日韩啪啪网| 欧美视频在线视频免费va| 亚洲第2页| 一个人免费视频观看在线WWW| 精品人妻一二三| 国产高清视频无码在线| AV乱伦专区| 超碰午夜| 成年人三级黄色片视频| 日韩一级成人毛片免费观看| 高清在线偷拍自拍视频| 国产亚洲精品美女久久久m| 超碰地址久久| 婷婷色色五月天福利| 午夜福利国产欧美日韩夜夜| 国产真实野战在线视频| 99爱在线视频| 欧美激情亚洲色图| 亚洲人妻熟妇三十三区| 嫩草黄页| 欧美激情区| 日本久久女同性恋视频| 中文字幕99999| 一区二区三区黄色片a| 精品高清一区二区三区三州| ..日韩av毛片精品久久久| 欧美亚洲日本视频久久久 | 尤物视频新赏网鲜网色诱网| 狠狠超| 100啪啪视频大全| 人妻系列无码专区中文有码| 国产av白丝| 久久久久9999妇女| 亚洲小说视频| 亚洲Av无码成人精品国产| 色综合久久888| 操香逼| 人人澡人人澡人人| 国产成人在线观看网址| 国产av美女被艹的乱叫| www.四虎在线| 91痴汉| 亚洲色图一区二区三区| 奇米狠999| 狠狠色婷婷7777久| 久久久月天| 一本精品日本在线视频精品| 熟妇熟女一区二区三区| 亚洲少妇在线影音| 日本二三四区| 女人天堂AV五区在线| 永久免费发布性爱网| 东京热一区二区中文字幕| 国产乱码精品一区二区三区四川| 午夜呻吟欧美| 99自拍视频在线| 欧美有码激情视频一区二区三区| 天堂射| 日本精品一区二区不卡| 欧美精品久久久久久久久88| 国产60区。| 91日韩网站| 777超碰| 成人网站 免费观看| 国产精品久久发布| 天天插天天操天天摸天天射天天看| 久久啊啊| 91精品国产高清久久久久久,亚洲成人 | 日日日日做夜夜夜夜无码| 99久久综合| 97超色| 无码 黑人一区二区三区| 激情五月综合网| 国产又黄又猛又粗又爽的网站| 99日免费视频中文字幕| 国产精品久久天天干| 成人电影一区| 夜夜操夜夜高潮夜夜爽国产精品区| 亚洲电影中字一区二区| 日韩伦理久 久久 清纯| 在线一区| 综合少妇网| 97国产高清视频在线观看| 乱日视频| 偷拍综合网| 天天综合色电影| 97欧美日韩精品| 激情五月婷婷| 国产人妻久久精品一区二区三区| 久久超碰天天| 亚洲男人天堂2| 熟女一区二区| 无码精品人妻一区二区三区妖精| 激情啪啪拍91| 国产熟女无套内射| 国产欧美日韩女同性恋ww喷水精品 | 97久久国产亚洲精品超碰热| 麻豆这里只有精品| 久久久成人免费av电影| 盗摄女人妻在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 色悠久久久av| 亚洲成人av色网| 日本不卡五区| 亚洲情色1区| ji熟女.com| 欧美天天谢综合网| 一级特黄aaa大片在线观看成人一级片在线观看 | 男人的天堂啪啪啪啪啪蜜桃不卡| 久久久久久久9| 96精品在线| A级在线视频| 69综合网| 色99视频| WWW操逼| 九九国产| 午夜精品视频777| 久久精品一区二区三区蜜桃臀| 国产精品免费美女视频| 久久久一二三四区| 日韩 欧美 校园一区| 久久av成人无码免费| 色香综合天天影视综合 | 校园春色家庭伦理欧美激情| 成功精品影院| 嫩草一区二区在线观看| WWW.操逼.COM| 久久精品国产久精国产| 91女在线观看| 亚洲中文字幕av| 天天澡天天爽日日AV| 日日夜夜青青草母狗| 国产三级日产三级韩国三级| 亚洲人成网站7777| 日韩少妇在线视频| 亚洲AV乱码专区国产噜噜亚洲 | 亚洲国产婷婷在线播放| 午夜男人的天堂| 97在线无精品 | 国产97在线视频| www.91欧美| 亚洲天堂电影精品一区| 欧美精品1区2区3区| 久久超碰免费的| 天天综合91在线| 亚洲 欧美日韩 另类| jazzjazz国产精品麻豆| 南澳成人一级片在线播放| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 色婷婷久久| 天天操夜夜嗨| 天天懆天天日| 亚洲巨爆乳一区二区三区四季网| 欧美亚洲中文字幕| 午夜精品久久久99热蜜桃的功能特点| 成人在线视频二区| 麻豆久久久一区二区| 无码高清国产AV| 91亚洲欧洲| 深喉吞精| 天天天肏屄肏屄肏屄欧美欧美| 九九九九免费高| 99久久久久久久久| 精品无码一区二区三区色欲| 国产精品视频内谢女人| 日韩无码一级黄色av片| 狠狠爱综合网| 日韩欧美加勒比| 婷婷激情丁香| 欧美日韩制服| 欧美人妻一区二区| 啊啊啊男女| 蜜桃丰满熟妇av无码区不卡| 丰满人妻一区| 欧美一品道| 97精品97久久| 国产吹潮女在线观看| 欧美极品色| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产乱码精品久久久久久 | 东京热男人的天堂| 一起草在线视频| 欧洲亚洲少妇| 无码人妻精品一区二区三区99不卡| 屁股久久久久久久| 久操操AV电影| 久操网视频| 久干9操| 亚洲黄色影视| 五月天综合网| 免费视频a级毛片免费视频| 无码精品人妻一区二区三区妖精 | 亚洲精品国语在线播放| 性开放中文AV高清无码免费看| 亚洲精品影视老司机| 国产av美女被艹的乱叫| 手机看片1024你懂的国产| av在线播放国产一区| 中文字幕一区二区视频在线观看 | 收看日本人日bb| 无码不卡八戒| 欧美黄片欧美黄片xxx| 国产一区二区三区精品观看啪| 日本精品高清一二区一本到| 久操大香蕉手机视频在线看| 欧美78| 麻豆区久久久久亚| 清纯唯美综合亚洲| 91丨国产丨白浆秘 洗澡动漫| 2017av无码免费无线播| 操逼逼中文字幕| 操逼逼一区视频| 超碰成人国产| 色哟哟-国产专区| 99黄页网站| 久久精品一区一起草| 日夜伊人网| 精品一区二区三区国产| 乱伦系列一区二区| 自拍视频大全亚洲专媒视频/一区二区三区 | 久久精品店| 嗯啊视频免费在线观看| 吻戏激情性巴克| 国内黄色精品| 探花一区在线| 日韩激情毛片一级久久久| 中文字幕黄色一起草| 大香樵伊人网| 天天爽爽爽爽| 青青三级视频| 精品国模无码| 国产精品一二三免费网站| 东北女人被操| 欧美天天射| 国内毛片免费h片在线| 欧美少妇第一页| 啊啊啊好大好深| 欧美性爱无码一区二区三区| www.av在线视频| 无码丰满熟妇一区二区浪潮AV| 综合色啪| 99热销国产这里有精品| 国模少妇一区二区三区| 天天干天天日天天射黄色片| 欧美丝袜美女电影一二三四区| 2020久久免费视频| 精品国产网站| 欧美黑人168页欧美黑人167| 操逼逼中文字幕| 人人人人人人少妇| 日本布卡一区二三区| 成人午夜高潮av猛片| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 黄片直播三级黄片两女一男| 物尤视频一区二区| 无码高清操逼网址| 97精品视频网站| 欧美精品久久96人妻无码| 播播亚洲小说亚洲| 白丝在线一区| 乱伦av麻豆| SS久久| 激情小说日韩无码| 丁香婷婷激情五月天无毒不卡| 熟女人妻一区二区三区| 久久综合乱子伦国产免费| 欧美亚洲首页| 欧美超碰9798| 精品欧美А∨无码黑人大荫蒂 | 久久精品老司| 亚洲中文字幕熟女少妇一区二区| 久热无码| av亚欧| 中文字幕视频一区视频二区| 亚洲成人黄色在线观看| 97伪v| 日韩激情中文字幕有码| 色原狠狠天天天| 色婷婷丁香五月| 国产精品福利视频| 精品区9| 91美女视频在线观看| 日韩欧美麻豆大片| 天天干天天燥| 97人人夜| 色五月首页| 国产传媒av天美传媒在线| 女人天堂AV五区在线| 久久69| 97人亚洲综合字幕| 欧美人妻精品一区二区| 亚洲日韩精品一区二区| yazhousetuoumei| 国产多人在线观看视频| 亚洲男人的天堂va亚洲男人社| 91 刺激在线| 啪啪啪亚欧美视频| 日韩不卡网操逼中文字幕日韩| 国产福利av精彩对白| 91路www| 狠狠操天天干| 午夜男人av| 992大香蕉| 五月天综合网| 天天综合色| 国产一区在线观看无码AV| 熟女久久久| 激情看片网站| 亚洲自拍天堂| 九九九九九九视频免费| 老司机午夜福利视频一区二区| 91狠狠综合久久久久久| av最新免费中文字幕| 熟妇色99| 天天干2区3区| 99免费视频| 思思视频免费看网站| 97伊人超碰| 久久久久久久久久久久黄色 | 啪啪啪综合| 爱爱久久| 日韩国产十八禁| 一级A片女人高潮叫床| 一本大道青青| 吊色| 亚洲国产精品乱码在线观看| 日韩成人大片在线观看| 欧美日韩香蕉| 国产一区免费午夜视频| 亚洲熟伦熟妇AV无码春色| 91美女高潮| 九九国产| 99精品热| 嗯嗯,好大,好爽,好骚| 凹凸视频特色日本特黄| 国产精品爱欲| 美女久久久久久久久久久| 日本黄色天堂| 日本啊啊啊啊啊视频| 日本人体九九九九九九| 99热这里只有精| 九九性爱网| 欧美极度丰满熟妇hd| 激情婷婷综合久久| 91色欧美| 国产白丝精品在线观看| 日韩欧洲操屄视频| 精品999一区二区| 久久激情婷婷| 久热精品在线国产| 正在播放国产精品一区| 成人av福利在线观看| 九九热九九| 96麻豆精品一区二区三区| 曰本道人妻久久久在线不卡色视频| 日本A级视频| 91l欧美在线| 久噜噜| 天天躁狠狠躁av| 欧美激情 日韩精品| WWW4虎| 啊好爽受不了无码| 日韩精品三区四区| 91麻豆天美国产| 久久蜜桃综合网| 免费看污网址| 青青草原香蕉日本Ap| 肥佬影院91| 亚洲另类天堂| 欧美成人性爱视频在线播放 | 热天堂一区二区| 亚洲瓯美色图| 久久综合久色欧美综合狠狠| 97中文字幕九区| 中文字幕国产在线天堂| 一级做a爰片久久毛片图片| 一本精品日本在线视频精品| 极品欧美一区二区三区| 国产操操日韩三级黄| 免费黄色A片| 国产精品一级片在线看| 中文字幕乱在线伦视频中文字幕乱码在线| 精品亚洲国产成人av网站| 亚洲av强奸乱伦| 97亚洲综合电影| av线电影| 四虎影视国产精品| 一区二区三区黄色片a| 亚洲成?V人片在线观看福利| 色爱综合网欧美| 蜜臀99久久精品| 天天性射网| 欧美日韩狠狠爱| 人人做,人人操,人人摸| 强奸a片网| 97超级久久强资源| 97久久精品国产| 老司机午夜福利视频一区二区| 91久久婷婷| 这里只有精品视频在线观看麻豆| 五月激情综合网| 任你干在线视频| 日韩av无码网站| 人人操人人摸人| 2025亚洲男人天堂| 伊色久人大在线| 久久九九视频九九视频| 色婷婷在线视频精品导航| 麻豆天美AV传媒第一页| 久久综合亚洲色1080p| 天天欧美欧美亚洲网| 美女淫穴| 中文字幕国产在线天堂| 亚洲免费人妻在| 日韩精品熟妇| 91情色在线| 级做a爱无码性色永久免费| 丁香五月婷婷基地| 无码人妻精品一区二区三区九九| 亚洲精品97久久| 强奸xx国产| 99re在线视频| 亚洲国产成人精品无码专区| 粉嫩AV一区夜夜嗨| 国产辣妈在线视频福利| 99啪| 啪啪性爱免费视频| 欧美熟妇人体| 久久久精品电影| 日韩99神马视频播放片在线播放| 热热色中文无码| 色婷婷99| 久久久一区二区三区麻豆| 可以在线观看AV的网站| 亚洲天堂日本| 插日本熟女视频| 亚洲s色图| 日韩国产乱子伦App| 婷婷香网站| 亚洲天天操| 午夜一区二区三区国产| 97天天在线| 国产亚洲日本精品在线| 亚洲色婷婷综合久久一区二区三区| 隔壁邻居波多野结衣中文字幕| 中文字幕天天天天天| 人妻二区| 91激情综合| 欧美精品久久久久久久久88| 骚鸭AV| 大香网站| 欧美激情在线观看视频| 久久久啊啊| 91看黄片| 色欧美色交综合| 日韩高潮一区| 色色色日本| 99自拍B亚洲 | 91狠狠综合久久久久久| 久草综合网| 久9视频| 999综合网| 日本啊啊啊啊啊视频| 涩涩这里只有精品视频| rivers-china.com| 婷婷亚洲中文字幕在线| 久久久久九九九| 日本超碰97日韩精品人妻| 韩国午夜理伦三级好看| 人人妻人人玩人人澡人人爽| 中文字幕超碰CAO| 超碰人人干| AV女资源| 91九九九小逼| 色色香蕉| 亚洲无 码A片在线观看麻豆| 久久精品高清无码一区| 国产小视频91| 国产高清午夜成人在线观看| 欧美亚洲激情一二三| 一级毛片久久久久久久女人18| 91久久国外网| 午夜欧美J进J出白浆流出久久久 | 97视频900| 婷婷综合在线| 国产亚洲美日韩Aⅴ中文字幕无码成人| 欧美成人精品一区二区男人蜜臀| 91久久久久久久久久久| 91丨九色丨国产丨人妻在线| 久久久国产精品亚洲精品| 亚洲第一页色| 国人欧美精品一区二区| 小日子操bb在线看| 精品午夜福利| 日日躁天天躁狠狠躁| 91九九九小逼| 大香蕉在线视频15| 久9热| 久久超碰国产一区二区三区| 草草草草视频| 蜜臀久久99精品久久久久久成人小说 | 伊人综合色网| 激情专区综合| 免费在线黄片视频| 亚洲 欧美 精品专区 极品| 综合天天网| 九九久久久九九| 色五月av| 天天干夜夜一操| 国产对白刺激视频| 国产精品乱码久久| 久久久成人免费av电影| 欧亚揄拍偷拍精品视频| 国产性刺激| 99青草| 人妻激情另类| 黄页18禁| 澳门成人网站久国产日韩| 婷婷五月天伊人| 日韩国产中文字幕| 大香蕉久操| 国产情侣自拍在线播放| 欧美日韩国产黄色片| 亚洲无码国产精品久久| 色黄污美女啪啪啪免费网站| 亚洲一区操| 中文字幕精品免费一区二区| 欧美性爱精品七区| 成人麻豆av电影网站| 俄罗斯一区二区视频在线观看| 91P0RNY大屁股人妻| 影音先锋日本乱伦| 国产偷人伦激情在线观看| 久久永久无码人妻视频| www.亚洲成人一区| 不卡一区二区日本视频| 国产激情av女片自拍| 日本99久久| 成人在线视频网| 天天日天天舔天天喷天天射| 中文字幕丝袜人妻| 中文字幕女同在线| 9997se| 超碰色老头| J?P?NESEHD熟女熟妇伦| 草莓精品视频在线免费观看| 97国产高清视频在线观看| 婷婷伊人綜合中文字幕小说| 久久免费中文字幕在线观看| 97视频7| 国产AV天美传媒一区二区三区 | 激情五月天网站| 婷婷成人久久久精品| 欧美72网页| 精久久久| 99久久久无码国产精品性啊聊| 国产精品露脸在线观看| 欧美成人性爱视频大全| 丝袜制服字幕在线| 超碰综合97在线| 亚洲色人| 韩国成人精品久久久免费看| 熟妇熟女视频一区二区三区| 99热导航| 东北熟女91| 操逼天美3区| 色色色网站| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲激情欧美色图| 久久成年片色大黄全免费网站| 日本伦乱九九九综合| 亚洲精品国产专区在线观看| 婷婷激情综合网| 黑丝内射一区二区三区| 精品一区二区三区蜜桃臀www| 麻豆精品.欧美精品.日韩精品.| 亚洲精品国语在线播放| 色婷婷香蕉| 狠狠色一区二区中文字幕| 极品色综合| 午夜影美女日鸡鸡天天视频国产 | 黄色十八禁| 91亚洲色图| 色综合久| 精品9区| 国内偷拍精品一区二区| 99热精品在线观看| 999熟女精品| 国产成人自拍视频视频| 亚洲综合春色| 一区二区三区一亚洲中文字幕、综合区灬 | 天天做天天爱| 中文字幕在线免费观看视频| 啊啊啊要高潮了| 亚洲av噜噜噜噜噜噜| 欧美老妇曰批的视频| 欧美 中文字幕 一区| 国产激情视频一区区三区| 色色激情| 97超色| 人人摸人人干人人拍97| 天天搞欧美| 国产成人www免费人成看片| 内射黑丝袜| 国产欧美岛国精品一区| 无码操逼天堂| 最新国内自拍av免费| 亚洲中文字幕乱码无码一区二区 | 青青11操操操操操操操操| 亚洲老司机123专区| 亚洲无码国产精品久久| 蜜桃视频一区二区三区在线观看| av黄图片在线观看| 嗯嗯嗯嗯啊啊啊好紧好大| 五月丁香黄色网| 婷婷另类小说| 久久免费精品视频免一| 91亚洲黄色网| 久久久久精| 浓厚中出中文字幕在线| 色综合超碰超| 丁香六月婷婷| 大屁股人妻女教师撅着屁股| 强奸熟女一区二区三区| 婷婷五月综合激情| 综合影院永久入口国产| 久久超碰98| 综合色啪| 日本一区二区中文字幕久久| 夜精品久无码| 超碰人人干| 天天看天天日| 欧美91久久久久| 久久激情视频| 天堂а√在线最新版在线| 人人澡人人澡人人| 欧美色三级片91| 亚洲一区二区三区播放在线| 日本精品加勒比海一区| 嗯~啊~快点 死我视频| 超碰在线观看av不卡| 久久久啊啊啊| 亚洲欧洲日产国产综合网| 婷婷激情综合网| 亚欧无码线免费观看视频| 久久久久斤小| 北京专精特新企业招聘信息| 强奸乱伦大香蕉网| 乱伦熟妇一区二区| 黑丝制服中文字幕| 97超碰逼| 欧美嗯啊……在线观看视频免费| 91强热人妻| 欧美 精品国产制服第一页| 涩亚洲欧洲| 亚洲少妇诱惑| 亚洲天堂,男人| 久久久久久国产无码精品| 亚州综合网| 天天色综合影视网| 九九九九九精品十六| 欧美中文字幕男人天堂久久精品| 日韩国产乱子伦App| 亚洲精品97| 熟女久久久| 欧美少妇性乱| 有码人妻系列| 91oumei| 欧美中出1| 亚洲精品一二区| 人人操人人舒服| 国产精品操| 亚洲av资源| 九草九九九| 午夜毛片高清免费不卡| 少妇一区二区三区在线观看| 大香蕉免费中文| 免费久久精品麻豆一区二区av| 人人 操人人 操人人| 国产高清自拍视频| 久久久蜜桃臀无码视频| 国产激情在线| av2014 日韩在线中文字幕| 黄色一区三区| 天美传媒av一区二区| 上床不卡网站| 97操在线| 超碰97欧美日韩| 岛国999| daxiangjiao你懂的| 欧美韩国你懂得在线| 久久偷拍人| 欧美精品 - 91爱爱| 神马午夜久久久| 污污污8888| 超碰1997| 亚洲97网站| 久9综合在线| 另类图片五月天| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 伊人丁香五月婷婷| 超碰人人操97碰| 欧美精品99久久久**| 乱伦av麻豆| 人人干人人操人人..com| 黄色一级视| 久久婷婷热| 婷婷五月天激情网| 欧美熟妇乱码在线一区| 91偷拍欧美亚洲| AV中文字幕剧情1区2区3| 天天综合网合集91| 91N综合网| 17c嫩草51久久91嫩草| 欧美成年人性爱视频免费观看| 国产亚洲欧美每日在线| 国产区91柔拿会所技师| 操逼日韩无码| 日韩欧美成人大香蕉| 久草草一二三四区久久| 人妻少妇无码| 欧美一级A一级a爱片久久| 新亚洲无码| 久久五十路熟女人妻| 91色插| 国产精品不卡av免费在线观看| 国产91会所女技师在线观看| 污污汅18禁网站在线永久免费观看 | 欧美日韩性爱电影在线| 大香蕉专区| 日本久久网| 国产一区麻豆免费观看| 啊啊啊在线看| 九九碰九九爱97超| 久久riav中文精品| 色综合天天| 青青操少妇| 久热精品在线| 国产AAAAAABBBBB| wwwcaobibi| 久久久久久久久久久97| 99国产精品自在自在| 9久久久久| 岛国AB视频| 99热综合在线| 超碰在线综合97| 9色国产精品一区粉嫩 | 欧美亚洲丝袜人妻制服中文99| 明星性猛交ⅹxxx乱大交| 在线中文字幕极品av| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久天天躁日日躁狠狠躁| 欧美淫乱视频| 99久久久无码精品国产人| 久久久com| www被窝色com| 久久国产AⅤ| 大香蕉综合在线| 综合91网| 澳门黄片一香蕉视频| 色婷婷狠狠| 久欲AV| 高清一区AV无码| 高清不卡国产| 激情一区二区| 国产精品久久久三级无码| 欧美页片| 一二三区操逼国产91| 成年女人18级毛片毛片免费观看| 日日做夜狠狠爱欧美黑人| 污色区网站| 95人妻爽爽人人做人人澡| 日本性一区| 国产区91柔拿会所技师| 夜夜国产一区| 日本一区二区三区午夜观看| 欧美日韩情色一区二区| 欧美一级二级三级| 国产免费一区在线观看| 亚洲中亚日激情视频| 少妇人妻好深太紧了vr91| 欧美熟妇人体| 中文字幕第9页萱萱影音先锋| 亚洲精品色| 久草看看看| 久久婷婷伊人| 黑人性欧美| 日本在线视频导航| 蜜桃精品视频一区二区三区| 影音先锋视频在线| 国产妇女精品视频青青草| 国产99精品一区二区三区免费| 台湾大香蕉99热| 国产精品盗摄 偷窥盗摄| 欧美综合加勒比在线| 亚洲婷婷综合网| 欧美高潮在线| 八戒无码国产午夜福利| 欧美成人综合| 国产精品久久久久久久黄无码| 国产一区二区三区,在线观看观看| 日小BB小视频| 国产欧洲精品亚洲午夜拍精品| 久久亚洲AV无码专区首页| 婷婷15月天青娱乐| 国产精品婬乱一级毛片彝族| 综合大香蕉美。| 日本肉体xxxx裸交| 日本三级精品| 青青草在线成人视频| 男女啪啪啪18禁网站| 一区二区三区四区久久视1| 探花一区二区三| 嫩草 我啊~嗯~在线| 欧美黄色大香蕉一区二区| 91精品国产91熟女| 日韩99神马视频播放片在线播放| 一级成人性爱| 欧洲性人爱视频| 五月天婷婷综合网| 白丝被操91| 1024午夜激情男人的天堂| 亚洲精品久久久久久久蜜桃臀| 夜夜夜夜久久久久| av大香蕉网站| 国产亚洲色婷婷久久99精品91葵花宝典 | 亚洲文学偷乱拍啪啪啪啪 | 久久岛国| 99色婷婷中文字幕乱色| 7777欧美成是人在线观看| 国产精品一区二区三| 2019天天操天天爽天天拍| 自拍偷拍 日韩无码| 男人的天堂va| 欧美少妇性乱| 狠狠综合网| 九九视频黄色片| 亚州色图欧美色图| 天堂资源欧美| 日本欧美国内在线| 亚洲av无码国产精品字幕| 色97国产69香蕉| www.一本大99| 久久性爱免费送| 色综合国产在线观看| 日韩欧美中文字亚洲慕| 久草新免费| www.婷婷六月天| 国产亚洲女v在线观看| 超碰九7免费| 玖玖爱综合网| 欧美色66| 精品国产一区二区三区av在线资源| 翔田千里一区二区三区奶水| 老熟女91视频| 国产精品一级二级在线| 9久久9综合| 99热综合| 3p国产欧美99热| 中文日本免费高清| a级免费在线观看| 69久久| 后入式视频国产自| 青青草视频久久久久| 亚洲五月丁香花狠狠干一区二区三区 | 丁香五月综合| 日日噜噜夜夜狠狠视频无| 97综合久久| 久操免费电影| 亚洲情色一区二区三区| 射 色综合| 丁香六月啪| 国产1769在线| 黄人人操人人操| 黑人娇小av在线播放| 97欧美综合网| 97超碰总站| 亚洲色图欧美另类在线| 欧美黑人猛交春色影视大全| 久久久一区二区三区四曲免费听| 7777欧美成是人在线观看| 91人精品妻入口| 欧美日韩在线视频网站| 97欧美色| 传媒免费一区二区三区| 玖玖综合色| 情色av电影| 日本久久天堂| 亚洲1区| 六月婷婷综合| 在线不卡视频| 丁香激情五月天| 激情丁香五月婷婷| 国产亚洲综合欧美一区| 亚洲精品国产精品乱码不99| 久久99人妖视频国产| 久操凹凸视频| 91人妻素女| 欧美成人性爱视频免费观看| 日本国产高清色www视频在线| 99性爱在线观看| 日韩亚洲国产视频| 熟女色综合久久| 国产极品一区二区三区三州| 91精品啪在线观看国产城中村| 美国日韩黄片| 国产在线激情视频| 99在线无码精品秘 入口黑人| 中文字幕日韩人妻视频| 国产专区第一页| 麻豆国产96在线| 亚洲操逼无码| 亚洲有码 视频一区| 91暧暧| 欧美精品双插| 综合激情一一91| 蜜臀AV一区二区三区| 国内一级精品| 婷婷久久五月综合激情| 亚洲丝袜二区在线| 精品午夜福利| 日本一区视频在线观看| 欧美国产欧美在线观看| A片 AV一级在线播放观看免费| 五月丁香色色网| oumeisetu综合| 天天看片麻豆| 国内毛片四区| 视频不卡中文字幕| 亚洲一曲日韩精品| 欧美国产日韩清纯唯美| 久久久久性熟视频| 日日骚精品视频| 男人的天堂视频精品乱在线| 98人妻精品一区二区色欲| 久久欲| 日本 欧美 亚中文字幕| 久久亚洲人妻| 亚洲黄色AV电影| 久久丁香久草综合网| 亚洲色图欧美视频| 女人被添高潮免费视频| 人妻夜夜爽天天爽麻豆三区网站| 亚精品无码毛片一区二区三区| 综合色久欲| 97香蕉网| 国产三区免费在线观看| 六月婷婷色综合| 精品人妻一区二区乱码一区二区| 欧美亚洲手机在线| 91人人操| 岛园激情| 欧美中字二区| 一摸二插三插| 日韩黄片视频试看| 日韩在线视频1234| 欧美一品道| 精品国产乱码| 热天堂一区二区| 职场同事知名国产国产精品久久欧美日韩| 欧美天天性| 99热这里是精品| 欧美视频激情久久久久久| 国产99热| 国产精品免费视频不卡| 精品精品精品| 青青青草原| 激情综合二| 精品一区二区成人动漫| 91网站视频在线观看| 亚洲色图欧美一区二区不卡| 亚洲天堂 视频你懂的| 蜜臀AV成人精品蜜臀| 国产强奸乱伦第1页| 伊人久久婷婷| 国产风韵犹存熟妇三区| 欧美精品一区二区少妇免费A片| 日韩在线视频1234| 蜜臀va69| 国产精点久久久成人| 日韩丝袜高跟制服在线观看| 起碰97| 美女尤物福利视频| 亚洲久9| 丁香色五月 97干| 我想要啊 啊 啊| 日本性爱不卡视频| 97久久久精品| 国产精品 久久久精品一牛| 日本丝袜美腿人妻九九| 天美传媒婬乱在| 艹我哪美一区无码| 91成人无码| 九九AV| 亚州综合色| 欧美综合97www| 亚洲天堂一区| 嗯嗯嗯好爽| 97日韩欧美| 少妇500双飞99| 人妻精品视频一区二区三区| 免费看污网站| 中国AV美女| 青青久操| 操逼操逼视频操逼| 神马九九九| 国产午夜激片Av毛片不卡| 97欧美色| 精品超碰中文在线| 亚洲一区二区在线观看91| 91neishe| 91综合色噜噜| 蜜桃久久久久久久久久久久| 美国黄片aaa| 丰满丝袜少妇AV| 亚洲成?V人片在线观看福利| 欧美日日人人天天| av天堂影视中文在字幕在线中文| 91在线欧美| 麻豆区99999| 国产高清26uuu| 黄色工厂这里只有精品| 在线女人91| 国产精品一区午夜福利| 亚洲人人夜夜澡人人爽| 婷婷性爱| 51国产午夜精品视频| 欧美日韩国产人人| 一个人免费HD91视频| 亚洲色宗合| 欧美亚洲涩涩| 久久一区二区三区入口| 亚洲AV无码乱码| 9999亚洲电影| www色色com| 亚洲丝袜诱惑| 亚洲drav色图| 吻戏激情性巴克| 国产91亚洲精品一区二区三区| 久久夜精品一区二区三区| 床上啊啊啊一区二区三区| 在线观看无码三级少妇| 久久精品日韩专区免费观看| 国产极品粉嫩馒头一线天av| 中文字幕三四五区| AV天堂丝袜| 人人天天干干| 免费观看网黄| 日日日日做夜夜夜夜做无码97| 五月天激情四射| 手机在线播放国产福利| 亚洲人天堂| 是还免费视频1727我| 五月久久HDAV| 激情视频网址| 伊人网综合在线视频| 天啪| 中文字幕欧洲有码| 啊啊啊快操我视频| 婷婷综合五月| 日韩乱伦影音先锋| 日韩免费高清大片在线| 97久久久网站| 亚洲男人的天堂网| 日韩一999精品| 97操操| 最新日本中文字幕| 99热婷婷一区二区三| 日本好吊色视频| 亚洲综合在线高清| 99热精品在线观看| 久久久久九九九| 巨爆乳一区二区爆乳区| 亚洲欧美综合| 亚洲校园激情| 果冻传媒一区二区三区| 青青草乱入乱欲视频在线观看| 丰满人妻一区二区三区四| 久久久免费一级黄片| 制度丝袜99| 精品久久无码午夜福利| 91美女视频| 美女91网址| 国产超碰97| 亚洲风情综合网| 北野未奈加勒比av| 一区二区三区成人| 午夜天堂网| 玖玖爱综合| 欧美色图片91| 九九久久久久久爱| 久草综合京东| 综合网欧美在线| 调教熟妇 久久久久久| 色婷视频| www.狠狠| A久久| 蜜臀av在线播放一区二区三区| av九九| 久久久久久久久久久久久久久性生活视频 | 涩涩涩综合| 国产亚洲精品美女久久久| 日韩中文字幕国产| 97无码视频在线播放| 国产精品懂色tv影视免费观看 | 婷婷亚洲五月***久久| 久久精品三级影视| 久久久九九网站| 国产精品熟女丝袜一区二区| 美女自卫慰黄网站免费|