色视屏丨隣の若妻さん波多野结衣丨国产成人一区在线观看丨97在线超碰丨国产精品嫩草影院久久丨日韩亚洲国产欧美丨日韩三级黄丨亚洲欧美激情在线丨国产激情视频在线播放丨在线va无卡无码高清丨成人av网址大全丨免费成人进口网站丨亚洲午夜18毛片在线看丨欧美黑人精品一区二区不卡丨偷窥少妇高潮呻吟av久久免费丨国产aⅴ夜夜欢一区二区三区丨www精品美女久久久tv丨毛片免费视频肛交颜射免费视频丨在线播放亚洲精品丨777cc成人

歡迎進入上海茂碩機械設備有限公司網站!

24小時熱線電話:15214375780
技術文章

articles

當前位置:首頁  /  技術文章  /  如何用S7-200 SMART 編寫一個屬于自己的指令?

如何用S7-200 SMART 編寫一個屬于自己的指令?

更新時間:2023-03-13點擊次數:1787

經常有人問,這個PLC有沒有某某指令,或者,有沒有指令可以實現這樣那樣的功能?


產生這樣的疑問,部分原因是不熟悉這款PLC的指令。部分原因是為了選型,想找到一種PLC能夠內置一些功能,使得自己的編程得到簡化。


甚至有一些人認為,PLC沒有這個指令就是沒有這個功能,不能完成某個任務。如果指令能自己做,那就沒有這個問題了。那我們就試著自己做自己需要的指令。


本系列文章圍繞S7-200 SMART PLC為中心,分為三篇講解如何編寫自己需要的指令,編程語言主要以梯形圖的方式為主。


注意:前方高能!超長文章,請大家拿著奶茶慢慢看~



-篇:預備知識



一、掃描


梯形圖的所有指令一般遵循掃描原則進行執行。執行一個完整的程序,過程中由于掃描有先后次序,所以必然在一個瞬間只能執行一個指令。那么當掃描到程序中間的時候,程序前部分的程序先獲得掃描并執行過,執行的結果將已經產生影響。后面部分的程序未曾執行,將來的執行當中所有條件將以新的形態執行。

image.png

從I0.0 = False(0)之后的某個掃描周期開始看看掃描的過程。此時,所有變量都沒有接通。


當有一個掃描周期I0.0 = True(1)的時候,并且方框處的程序剛剛處理完的時刻,1段的Q0.0顯然跟以前的掃描一樣,不接通。而此時此刻的M0.0已經接通,它將開始影響以后程序的執行。然后在這個掃描周期結束的時候Q0.1將接通了,但是Q0.0卻沒有接通。


下一個周期開始,掃描一個M0.0觸點的時候,此時的M0.0才開始影響一行程序。


所以,掃描到并執行出的結果是影響往后的所有掃描的。并沒有掃描周期之分。所有執行都基于掃描。


二、能流

一行程序最左邊粗實線是能流的源,這里永遠是True(1)。通過各種觸點的True(1)與False(0)組合,能流能到達右側的線圈指令的話,就可以使線圈置位(1)。能流不能到達右側線圈的話線圈就復位(0)。能掃描到的指令,基本能按照這種意愿執行。

要正確理解能流True(1)與False(0)兩種狀態對程序的影響,如圖2所示。


圖片

圖2程序



當I0.0 = True(1)的時候,兩個指令都得到了能流。計時器指令按照自己的屬性進行計時。傳送指令把源地址數據傳送到目的地址,無論目的地址原來有什么值都執行傳送更新目的地址。


當I0.0 = False(0)的時候,兩個指令都沒有了能流。計時器在沒有能流的時候把當前值寫成0,把計時器位寫成False(0)。值得注意的是,這個指令在False(0)的時候不是什么都不做的,而是在做False(0)時應該做的事情。有這樣特點的指令還有輸出線圈指令等。傳送指令在沒有能流的時候不再傳送,不再理會目的地址。大量位于能流最右側的指令都有這個特點。




三、雙線圈


不追究這個詞的歷史背景了。反正大家都知道在一個程序里面對同一個線圈出現過兩次輸出線圈就是雙線圈。


雙線圈不會當作是一種錯誤程序。它可以按照程序的行為作出解釋。也就是說它沒有語法錯誤,但是可能會導致邏輯執行錯誤。


如圖3所示的例子,可能作者希望自動動作時的三個步驟Q0.0得電。而且切換到點動的時候又可以控制Q0.0。結果,由于出現了雙線圈,影響了期望的動作。這是雙線圈的錯誤使用。


圖片

圖3程序



對于輸出點Q,總是按照一個周期中一個輸出指令刷新輸出到物理點的。


下面舉一個案例,看看怎么處理比較好?


有一個輸出點,根據工藝已經做好了程序并且調試成功。程序片段如圖4所示。


圖片

圖4程序



突然甲方來了一個要求,要求Q0.0在原來的基礎上并聯一個現場按鈕,無論Q0.0是否動作,現場按鈕按下時,Q0.0都要為True(1)。現場按鈕松開時,不影響原來的程序作用。同時要求,Q0.1不受現場按鈕影響。于是如圖5所示做了如下修改。


圖片

圖5程序



Ok!程序沒有問題。要是改成如圖6所示的程序,結果會怎樣?同樣,這個程序也可以完成上述任務。


圖片

圖6程序



這是一個雙線圈的程序。第二個輸出線圈由于帶有一個線圈的執行結果,觸點先繼承了前面所有的邏輯,在此邏輯下增加了一個現場按鈕。解決了Q0.0的需求,但是又沒有對Q0.1有任何的影響。程序卻非常簡單。


再看一個雙線圈使用的例子。如圖7所示:


圖片

圖7程序



先看網絡1 2 3。“報警"和“運行中"兩個信號由于有公共相似的邏輯,所以用一個線圈把公共部分記錄下來,再在下面的程序多次使用這樣的公共部分。為了使程序簡單一點,不用在報警和運行的線圈前都把相同的公共部分重復寫一次。然而,網絡4才是Q輸出點最終要達成的控制邏輯目的。Q只是在前面的工作中臨時客串,義務送了一個人情。臨時變量的影子也悄悄地在這個例子中流露出來。




四、多重賦值


多重賦值是說明一個地址,在程序多個地方都有出現對其寫入的操作。雙線圈是一種典型的多重賦值。執行寫入的主動操作者可以是用戶程序,可以是系統行為,可以是來自通訊端口改寫。還可以是其他。


在早先一些PLC還不允許出現雙線圈的時代,要繞過雙線圈的規則,有這樣的一種方法。程序開頭對線圈復位。后面的自動程序需要什么步驟輸出線圈,就用置位指令代替線圈指令。最終掃描結束輸出物理信號的時候取決于是否對線圈置位,如圖8所示,程序在“步1"、“步2"、“步7",這三個步驟時輸出。


圖片

圖8程序



如圖8這樣的程序結構,在多個地方都出現對Q0.0寫入值。當然這樣各種的值都是不同的,相同的話就不必多重了。我們應該小心處理邏輯關系,避免出現不希望的值。


再看一個例子,如圖9所示:


圖片

圖9程序



程序中把輸入量傳給輸出量。但是當發現輸出量是負數的時候,把0傳給輸出量。也就是說限制輸出量最小值是0,不可以再小了。


雙線圈和多重賦值都是自定義庫程序范圍中一個非常重要的思想。不能很好理解這兩個概念,將會對制作庫程序產生很大的障礙。




五、間接尋址


在操作數引腳(實參)上直接使用常數、地址、符號這三種方式是編程中使用最多寫法。另外,還有符號定義的常量和間接尋址兩種方式相對比較少去使用。如圖10所示:


圖片

圖10程序



間接尋址包括制作指針和使用指針。

指針是指向目的區域目的地址的標記。目前,CPU除了AC、HC、L區不能作為目的區域其他區域都可以間接尋址。


在后面的文章中,都只將V區作為間接尋址的目的地址做說明或者做例子。這并不表示不能尋址到其余區域。


例子中的 "T40" 的設定值填寫的是一個間接尋址。意思就是說這個位置雖然不是一個具體的設定時間,但是,具體的值位于這個指針所指的地方。而這個地方當時是什么值,那么計時器的設定值就是什么值。

簡單講就是“你要的東西用紙(址)包著"和“你要的東西用紙(址)寫著"。


現在就圍繞這句話,聊一聊間接尋址。

首先說說這張包東西的紙(址),不是什么地方都可以做的。什么材料可以做這張紙?材料可以是全部V區、全部L區、AC區的AC1 AC2 AC3可以裝載指針。并且只能用連續的4個字節組成的雙字裝載指針。起始地址不介意是奇數還是偶數。


要用紙包著東西,必須把東西放進去紙里面。MOVW 100 VW0 這里 "100" 就是東西, "VW0" 就是一張紙。小的東西就用一張紙包(一個字節),很大的東西就用四張紙拼成一張大紙包(一個雙字)。用這件東西的人只要找到這張紙直接就得到里面的東西。


你要的東西用紙寫著,那就是說事前必然有人在紙上已經寫了字,后面才能有人看見。MOVD &VB400 VD4 。這里 "VB400" 就是寫在上面的字,"&" 符號是說明寫著這幾個字是一個地址,不是普普通通的字。"VD4" 就是一張大紙。這就是制作指針。


手里拿著這張紙后,自然要根據這張紙的指引做一些事。如圖10程序一行指令。執行一個計時器指令時使用了" *VD2" 這張紙 ……,如果只寫 "VD2",那么就好像是使用 "VD2" 的值作為計時器設定值,但是事實并非如此。這里 "VD2" 前面帶*號。星號表示 "VD2" 里面的值是指引真正包含設定值的地址。由于 "VD2" 里面先前一個指令寫入了 "&VB0" ,所以這張紙其實是指引計時器到 "VW0" 找尋設定值。這就是使用指針。當然這是因為是在定時器的時間設置用到指針,而這個設置變量的類型是字。而如果在MOVB輸入用到相同指針 "VD2",那么輸入的就是 "VB0" 而不是 "VW0" 了,因為MOVB指令需要的輸入變量的是字節,也就是指針保存的是起始地址,具體使用的變量取決于指令需要。


使用間接尋址的好處在于通過計算改變指針的值,可以尋址到附近的任何地址。當指針指向VB10的時候,把指針增加10,那么指針就會指向VB20。尋址就改變到VB20。指針再減少3,那么尋址就會找到VB17。對于一片連續的V空間只要知道一個地址,就可以尋址到連續的第n個地址。


在以后的子程序使用中將會非常多地用到間接尋址的。



第二篇:帶參數子程序的制作


子程序是整個程序的一個片段。根據編程者的需求,把一部分程序歸入到一個子程序里面,完成相關的功能。整個子程序可以根據用戶程序的邏輯選擇調用或者不調用。調用的話就按照掃描次序掃描一次子程序,然后回到調用處。不調用的話就等于程序沒有了這部分片段。在其他地方再次出現調用這個子程序的話,子程序又得到一次運行。PLC并沒有限制用戶調用子程序的次數,只不過調用一次就要增加一點掃描時間。必要時候就調用,沒必要的時候調用了也不產生什么效益。


偶爾會看見有人在問:有幾個數據需要求平均值。PLC有沒有求平均的指令啊?


不好意思,200 SMART PLC沒有計算平均指令。還是好好地編程寫吧。


下面我試試用兩種方式的子程序完成這個多個值的累加。至于除法求平均就不介紹了。現以4個字變量計算總和為例介紹。


程序要求:VW0、VW2、VW4、VW6四個值求和,結果放在VW100中。


看看先用比較簡單的方法,先完成要求的功能,如圖1所示:


圖片

圖1程序



在子程序里面就是幾個很簡單的加法指令。而在主程序調用子程序的前后,加上了一些簡單的傳送指令。


先看子程序。子程序中三個加法指令把四個MW累加到MW8中。前面四個MW中并沒有什么值。累加之后的結果MW8也沒有什么實際意義。


再看主程序。題目要求的四個已知值,在調用子程序之前就傳到了子程序使用的MW地址。此時調用子程序,這些MW就有了值。經過子程序的運算,結果就放置在MW8。然后回到調用處,再把子程序的值傳到題目要求的地方,完成題目的要求。


在這個例子中,主程序的這個網絡可以多次使用。在需要的地方就按照上面例子的方法使用子程序就可以再次實現求和的作用。子程序只是作為一個計算法則,而這個法則又是很簡單的幾個計算。當遇到比較復雜的算法的時候,并且又有機會多次調用。不妨可以試試這個程序結構。這個結構有一個優勢,就是任何品牌的PLC都可以互通。哪怕就是20年前的PLC也一樣可以用這個方法。不過當今的200 SMART PLC顯然不推薦使用這樣的方式了。這個方式的編程,只是用于說明帶參數子程序的一部分參數傳遞原理,將在日后詳細介紹。



這種調用方式存在一些問題:

1.調用子程序的前后,需要把參數傳送到的地址,供子程序使用。

這些地址成為了這一個子程序的專用地址;每次調用子程序都要做這個事情。


2.子程序占用了公共資源;

當一個程序有很多個子程序的時候,消耗在這兩方面的工作和資源就會很多。當一個子程序工作需要很多個參數的時候,要寫很多MOV指令,也要占用很多公共資源M地址。對于200 SMART PLC,M區只有32個字節,如果需要32字節以上的區域,那就只能在比較大的V區找地方了。而當子程序很多,或者子程序是不同編程者的話,就可能會有不同子程序使用到了相同的區域。這樣必然需要修改一些地址,使地址不發生重復。



假如有辦法解決上述兩個問題,將是一個非常美滿的結果。辦法是有的。先不說這個。


現在,再用現在的方式寫一個子程序完成求和的功能。四個步驟就可以創建一個帶參數的子程序。


步驟一:

新建一個子程序。在子程序屬性里面編好子程序名稱和塊編號(子程序號),如圖2所示。這里要求不嚴格,主要是編程者自己容易分辨就好。當然如果是要做成庫,把塊編號設置大些,以便于調用時不會沖突。


圖片

圖2 設置塊屬性



第二步:

如圖3所示,打開變量表。


圖片

圖3 變量表



第三步:

向變量表填入需要的輸入輸出參數,如圖4所示。


圖片

圖4 設置參數



變量表的各個列的意思是:

地址:變量對應L區的地址。這個地址由系統分配,不能由編程者輸入。每增加一個變量或者插入一行,地址自動改變。并且如果編程當前正在用符號名編程的時候,增刪行導致的地址變更,不會影響編程關系。相反,如果正在用地址編程,而你又增刪過行,那么程序地址將會混亂。


符號:這個是變量的名字。如果正在用地址編程的時候,此時修改名字,不會影響已寫好的程序。相反,如果正在用符號編程,此時修改名字,那么程序符號立即紅色報錯,程序已找不到這個名字了。


變量類型:無法修改。輸入參數填寫在IN行。輸入/輸出參數填寫在IN_OUT行。輸出參數填寫在OUT行。臨時變量在最后TEMP。填寫完畢會自動增加新行。

IN類型表示子程序運行的數據來源,就像上述例子的4個加數。

OUT類型表示經過子程序的運算,得到的結果。輸出在這個位置。

IN/OUT類型,組合兩種類型,先輸入給子程序再運算得到結果輸出到相同的位置。

TEMP類型,這個類型既不輸入也不輸出,僅僅在子程序中充當過渡用的中間變量。


數據類型:這個參數是一個點位還是一個字節還是一個浮點數等等的性質。這個下拉選擇將會影響地址欄的分配跨度。因為不同的類型占用不同的位長。


注釋:給自己看的一些關于本行變量的備忘信息。


到此,一個帶參數的子程序就已經完成了。雖然并沒開始編寫子程序的內容,但是你已經可以觀察一下由主程序調用這個子程序的樣子。如圖5所示。


圖片

圖5 子程序調用



網絡1是當子程序沒有填寫變量表的時候的樣子,它不帶任何參數。網絡2是剛才建立了變量表的求和子程序。此時的子程序未確定任何實質性的參數地址。點擊每個問號地方,按照題目要求左側輸入VW0;VW2;VW4;VW6,右側輸入VW100,調用基本就完成了。


子程序輸入輸出參數的排序會按照你剛才填寫變量表的先后順序布置。在實際程序中,你在向子程序編程之前先確認一下這個外觀效果,每一個輸入輸出參數是否能夠按照使用的習慣排列所有參數。例如我們表達一個長方體的尺寸的時候通常都說“長寬高",沒有人會說“高長寬"的次序的。這個就是習慣。當參數很多的時候,盡量按照有關習慣填寫變量表的順序。可以用插入刪除行的方法編輯次序。


第四步:對子程序編程

子程序內的加法過程的編程在此就省略了。其實就是圖1的子程序。只不過是將全部的MW改寫成LW就可以了。


好了,一個帶參數的子程序就完整建立完畢了。它將會出現在指令樹里面項目的程序塊里面。它因為本身就是一個子程序,所以也是顯示為一個子程序。


后面的內容更精彩。可能不是你想象的那回事哦~



第三篇:帶參數子程序的參數傳遞過程


一份程序中建立多個子程序,每個子程序完成相對比較獨立的功能。而子程序也是圍繞主程序的要求,并且還根據主程序給出的條件完成這個要求。此時主程序和子程序之間或者說子程序和它下級的子程序之間,就必然有一些數據的交流。下面將介紹一下這種參數的傳遞。


再提一下變量表,子程序里面的變量表,這是最重要的上下級程序之間數據傳遞的方式,但不是的方式。主程序把將要給子程序的數值擺放在一個或一片約定的全局地址,然后子程序讀取這些全局的地址……這種做法作為傳遞參數,簡單不過。但是,這里不討論這樣的傳遞方式。


現在隨便做一個子程序,觀察一下在主程序中調用時候的外觀。


圖片

圖1




圖片

圖2



如圖1所示是在主程序里面調用SBR_0的情況,還有一個常見的計數器指令。如圖2所示是SBR_0中變量表所填入的變量設置。


圖1中一個標注SBR_0的指令塊跟計數器指令外觀很相似。但是各自的接口和參數都不同。它們都有觸點接口和數據接口。現在看看子程序的調用,主程序通過什么渠道把參數傳遞到子程序。


SBR_0左邊上方開始有兩個連接著開關觸點的接口。


【EN】有能流表示執行這個子程序。沒有能流的話將從子程序門口經過,不進入子程序。一個子程序就算沒有任何參數都會有這個接口的。


【點輸入1】下邊也是一個能流型的接口,表示這里有一個開關量的能流輸入。


當鼠標指向這個指令塊的時候,會彈出一個框,如圖3所示。這里說明了所有參數的變量類型(in;in/out;out)和數據類型(b;B;W;D)。


圖片

圖 3



【字輸入】從彈框得知這是一個字型的輸入參數。這里接口必須填寫一個字型的變量或者常數。


【點輸入2】這也是一個布爾量的輸入參數,但是因為有其余類型的參數分割,導致沒有從開始處連續排列布爾量的輸入參數,所以這個布爾量輸入也顯示為數據接口形式。


【字節入出】從彈框得知這是一個輸入輸出雙向的參數,需要填入一個字節型的變量。


【字輸出】這個參數在右側,位置上已經表明這是一個輸出型的參數。


綜上所述,輸入型的參數將安排在左側的最上方,并且如果上方有連續的開關量,都會以能流的形式連接這個參數。接下來是數據型的輸入參數接口。然后下方是雙向的參數接口。右邊一律是數據接口形式連接所有輸出參數。


上級程序就是通過這樣的接口把子程序所需的參數傳入到子程序的,再進入到子程序里面。接下來看看子程序方面,得到的參數將會是如何出現的。


觀察上面圖2這個變量表。自從建立了這個變量表開始,子程序里面的L地址的前面部分就已經成為了子程序參數的載體。L地址從個字節開始,往后安排IN參數;IN/OUT參數;OUT參數。按照字節為最小占用單位來安排能流接口的參數,從L0.0開始向更高位連續安排,EN不占用地址。對于布爾量,一個布爾量點占用整個字節,八個以內的連續布爾量點也占用一個字節。下一個非布爾量參數或者不同類型變量(IN、IN/OUT、OUT)從下一個字節開始安排。所以【點輸入1】參數分配到L0.0,【字輸入】參數分配到LW1。【字節入出】參數分配到LB4。然后子程序使用上級傳遞的參數就只要讀取這些L地址就可以得到。


外面的情況了解了,里面的情況也了解了,參數傳遞……沒說完,還有最不為人知的一部分。


——中間的過程。


中間過程就像一份快遞的工作,在上級下級程序之間搬運數據。只要子程序被調用,那么快遞就會把的數據傳送到子程序內。子程序結束后,快遞又會把的參數傳送到上級程序的接口。要是沒有接口參數自然沒有這個崗位。


作為用戶程序,只要上級程序把參數放置到位,又在子程序里面存取對應的L地址,中間怎么從上級傳達到下級是無需做任何事情的。這個過程由系統代勞了。但不等于不用理解這個過程。你不知道的事情可能恰恰就在這里。做以下的程序實驗一下。


圖片

圖4



建立三個子程序,各自就只有變量表填寫了一行參數,如圖4所示。子程序里面無任何用戶程序。主程序編輯這樣的調用邏輯。把程序下載到PLC,看看執行會怎樣?


PLC運行后,由于程序存在QB0和M0.0,沒有任何用到的其他地址了,所以我們的焦點就關注著這兩個地方,而QB0更是最容易看見。此時輸出點還是熄滅的。用狀態表把M0.0寫入1,與此同時QB0也顯示2#10010000(注意硬件的燈高位在右側,書寫二進制高位在左側。)然后把M0.0寫入0,此時QB0變成顯示2#11001100。我們再次把M0.0寫入1之后QB0再次顯示2#10010000 。


為什么輸出點會有這樣的三種狀態呢?用戶程序沒有對輸出點做過邏輯和賦值,而子程序里面也沒有任何程序。能夠有動作的只能是系統的動作了。究竟會是什么時候使輸出點得到了一些值?程序里面跟QB0有點關系的就是SBR2子程序了。為什么SBR0、SBR1兩個子程序的值會到了SBR2子程序里面去的?那么就要理一理參數傳遞的中間過程了。


運行初期,網絡1不接通,網絡2沒產生邊沿信號。前兩個子程序都沒有調用。第三個子程序SBR2一直在調用。


接通M0.0,SBR0得到了執行。在進入子程序后,運行子程序用戶指令之前,系統把引腳上的IN參數值復制到了LB0。然后執行子程序的用戶程序,由于沒有程序可運行,退出了子程序。


網絡2沒有執行子程序。網絡3一直在執行。SBR2子程序沒有輸入參數,沒有子程序內容,離開子程序之前,系統必須要給一個值到輸出參數。系統的這個動作不會因為程序中有沒有內容或者說程序執行的怎么樣,而不去做這個傳送,它是必然會做這個動作的。那么這個時候,LB0到底是一個什么值呢?我們就要追溯到這個LB0最后賦值的是什么地方。之前由于執行SBR0輸入參數使LB0曾經有過2#10010000這個值。這個值由于遵從多重賦值的原因,這個值在當時產生,一直擱置到現在,被SBR2撈上來了,然后就給了QB0。當M0.0恢復到0時,SBR1前的上升沿發生了,調用了一次。就這一次,把LB0寫入了2#11001100。在沒有什么地方再給LB0寫入值的情況下,LB0將不會改變。(當一個子程序不調用的時候,并不會由此使得某些線圈、某些地址自動復位為零,但是仍有不少的人有這樣的錯覺。)大家也可以參考M0.0,編程軟件寫入了的值可以一直保持住的。你沒有去更改它,還有誰去修改它?所以把一個值寫入到某地址之后,就可以一直保持住,SBR2也就可以輸出2#11001100這個值。


手冊并沒有說明局部儲存區的值是從何而來,手冊上面有一段話,如圖5所示。


圖片

圖 5



當手冊沒有清楚說明的情況下,我會假設一種較為合理的假設,然后在日后的編程中一直證實這個假設,并使用這種假設,同時一直關注著這個問題。假如一直使用都沒有明確顯示這種假設不成立,將認為這是真的,繼續使用。我總覺得PLC只會按照有限的法則以固定的方法實施一些運算。既然一個假設一直沒有被tf,那么這個假設可能永遠也不會被tf


无遮挡呻吟娇喘视频免费播放 | 亚洲国产精品无码一区二区三区 | 高h破瓜受孕龙精 | 中文字幕 日韩 人妻 无码 | 国产毛片在线视频 | 免费看污片网站 | 欧美久操 | 国产日b视频 | 日韩人妻少妇一区二区三区 | 日韩一区欧美二区 | 蜜桃臀无码内射一区二区三区 | 日本一本高清视频 | 天天狠狠色噜噜 | 超碰caoprom | xx视频在线 | 国产精品久久久久久久久久免费看 | 亚洲电影天堂av2017 | 中文字幕无码久久精品 | 亚洲熟伦熟女专区hd高清 | 91张津瑜 午夜在线播放 | 一级淫片免费看 | 欧美成综合| 毛片久久久 | 天天摸日日摸爽爽狠狠 | 国产亚洲欧美日韩在线一区二区三区 | 无套内射无矿码免费看黄 | 动漫女女吸乳舌吻羞羞 | 三级中文字幕永久在线 | 青青在线 | 欧美在线观看免费专区 | 97香蕉碰碰人人澡人人爱 | 日本一区二区在线免费观看 | 中文字幕 欧美精品 第1页 | 一本色道久久亚洲精品加勒比 | 色综合中文网 | 亚洲精品一本之道高清乱码 | 人人妻人人澡人人爽曰本 | 亚洲 欧美 变态 另类 综合 | 久久国产午夜精品理论片34页 | 少妇在线播放 | 一区二区三区麻豆 | 中文字幕日产乱码国内自 | 国产超碰人人爽人人做人人添 | 99久久国语露脸精品国产色 | 青娱乐欧美 | 97综合视频 | 一区二区三区四区产品乱码在线观看 | 成人亚洲视频 | 精品一区二区三区无码av久久 | 老司机精品成人无码av | 夜色一区 | 亚洲中文字幕日产无码成人片 | 免费av不卡 | av动漫无码不卡在线观看 | 丁香六月欧美 | 狠狠色综合激情丁香五月 | 精品国产一级 | 黄色国产精品视频 | 四虎成人精品国产永久免费无码 | 开心五月激情综合婷婷 | 国产成人久久精品av | 亚洲精品激情视频 | 快色视频在线观看 | 狠狠综合久久久久综合网浪潮 | 亚洲最大综合网 | 欧美鲁鲁 | 少妇性饥渴bbbbb搡bbbb | 黄色激情网址 | 美女扒开尿口让男人桶 | 爱爱视频免费网址 | 亚洲精品无码av人在线观看 | 99精品国产一区二区电影 | 久久毛片网站 | 97超级碰碰碰久久久久 | 久久久久一级片 | 国产精品泄火熟女 | hd日本xxxx | 精品国产欧美一区二区三区成人 | 18美女裸体免费观看网站 | 国产午夜福利精品久久 | 日本免费一区二区三区中文字幕 | 91chinese一区二区三区 | 成人无码黄动漫在线播放 | 亚洲一区二区三区国产精品无码 | 久久精品亚洲中文字幕无码麻豆 | 一级黄网 | 亚洲精品无码一区二区三区久久久 | 日韩小视频 | av无码久久久久不卡蜜桃 | 国产成人麻豆精品午夜福利在线 | 国产又黄又湿又刺激网站 | 亚洲女同志亚洲女同女播放 | 日韩精品无码人成视频手机 | 99精品网 | 81国产精品久久久久久久久久 | 欧美大香线蕉线伊人久久 | 精产国品一二三产区9977 | 人禽无码视频在线观看 | 亚洲综合av色婷婷国产野外 | jzjzjz欧美 | 精品少妇一区 | 久久久久99精品成人片 | 午夜无码片在线观看影视 | 中文字幕www | 欧美激情一区二区三区在线 | 国产污视频在线播放 | 成人看片泡妞 | 人人爽人人澡人人人人妻 | 国产精品看高国产精品不卡 | 黄色的一级片 | 欧洲乱码伦视频免费国产 | 国产成人片视频一区二区 | 中文在线a√在线8 | 国产女 | 日本激情小视频 | 亚洲一区二区三区四区av | 欧美成人高清视频a在线看 91久久久久久亚洲精品禁果 | 国产色视频在线观看免费 | 粉嫩av一区二区三区免费观看喜好 | 国产极品美女高潮无套在线观看 | 国产人成午夜免电影费观看 | 久久66热人妻偷产国产 | 97久久婷婷五月综合色d啪蜜芽 | 在线观看潮喷失禁大喷水无码 | 中国美女黄色一级片 | 黄色在线观看免费 | 韩国主播福利一区二区三区 | 岛国av噜噜噜久久久狠狠av | 亚洲欧美成人中文日韩电影网站 | av在线播放日韩亚洲欧 | 国产精品丝袜在线观看 | 专干熟肥老妇人视频在线看 | 伊人久久大香线蕉av五月天宝贝 | 久久免费高清 | 免费看黄色三级三级 | 免费在线观看黄色 | 正在播放酒店约少妇高潮 | 日本aa大片在线播放免费看 | 男人的天堂av社区在线 | 麻豆精品国产传媒mv男同 | 久久艹国产 | 日本一级爽快片野花 | 日韩av一区在线观看 | 黄色激情小说网站 | 天天综合色 | 欧美15一16性娇小高清 | 伦埋琪琪电影院久久 | av大片在线无码免费 | 很嫩很紧直喷白浆h | 农村乱人伦一区二区 | 风流少妇野外精品视频 | 亚洲欧美中文日韩在线 | 91天天色 | 欧美性受xxxx狂喷水 | 久久久久在线观看 | 女的被弄到高潮娇喘喷水视频 | 国产精品一久久香蕉国产线看观看 | 蜜桃网站入口在线进入 | 精品欧美一区二区精品久久久 | 99久久国语露脸精品国产 | 国产视频手机在线播放 | 国产精品无码aⅴ嫩草 | 拔萝卜在线视频免费观看 | 麻豆蜜桃九色在线视频 | 国产亚洲曝欧美精品手机在线 | 欧美巨大黑人精品videos | 农村少妇无套内谢粗又长 | 国产女主播喷水 | 久久国产精品久久久久久久久久 | 久久婷婷五月综合色丁香花 | 女人精69xxx免费观 | 久久av色欲av久久蜜桃网 | 久久大香伊蕉在人线观看热 | 亚洲午夜成人精品电影在线观看 | 三级在线看中文字幕完整版 | 午夜精品福利视频 | 亚洲最大的成人网 | 国产一区二 | www.av在线播放 | 午夜精品av | 九九久久精品无码专区 | 成人小视频在线 | 五月天综合久久 | 孕妇特级毛片ww无码内射 | 成人vr视频专区 | 中文字幕 乱码 中文乱码视频 | 大香线蕉伊人超碰 | av无码久久久久久不卡网站 | 欧美乱人伦视频在线 | 黑人入室粗暴人妻中出 | 亚洲免费人成视频观看 | 黄色录像片子 | 特级婬片国产高清视频 | 日本精品一区二区三区四区 | 亚洲人成一区 | 九九国产精品无码免费视频 | 日韩一级网站 | 精品久久久久久无码人妻热 | 少妇被多人c夜夜爽爽 | 人妻中文字幕在线网站 | 乱色欧美 | 不卡中文字幕 | 免费观看成人羞羞视频网站观看 | 精品99久久久久久 | 鲁丝片一区二区三区免费 | 国产精品毛片一区二区在线看 | 亚洲婷婷综合色高清在线 | www久久九 | 欧美日韩视频免费观看 | 国产成人精品自在线导航 | 亚洲三级黄| 久久精品66 | 欧美人与动牲交zooz | 亚洲成a∨人片在线观看无码 | 东北农村乱淫视频 | 不卡无码人妻一区三区音频 | 影音先锋女人aa鲁色资源 | 国产精品99久久久久久夜夜嗨 | 国产人澡人澡澡澡人碰视 | 国产精品专区在线 | 国产精品久久久久久久久免费樱桃 | 麻豆精品在线观看 | 国产又黄又骚 | 久久大香伊蕉在人线免费 | 天海翼一区二区三区 | 亚洲国产精品电影人久久 | 又粗又大又黄又硬又爽免费看 | 99er6免费热在线观看精品 | 一本大道久久东京热无码av | 日本久久久久久久做爰片日本 | 国产人妻无码一区无 | 欧美日本在线观看 | 精品少妇人妻av久久久 | 中文字幕日韩精品在线观看 | 天天插在线视频 | 久久99精品国产99久久6男男 | 男人女人黄 色视频免费 | 18处破外女出血在线 | 国产乱淫av片 | 扒开双腿吃奶呻吟做受视频 | 99视频免费在线观看 | av在线播放网 | 亚洲国产成人va在线观看 | 福利社午夜 | 露脸啪啪清纯大学生美女 | 国产丝袜一区二区三区 | 超碰精品 | 深爱开心激情网 | 99久久精品这里只有精品 | btbt888con在线观看 | 99精品国产aⅴ | 国产又粗又猛又爽又黄的视频9 | 91麻豆影视 | 视频二区精品中文字幕 | 99久久精品费精品国产一区二区 | 国产偷窥老熟盗摄视频 | 乳女教师の诱惑juliamagnet | 国产丶欧美丶日本不卡视频 | av无码制服丝袜国产日韩 | 午夜精品久久久久久久久日韩欧美 | 精品无码国模私拍视频 | 国产日本欧美一区二区 | 国产粉嫩嫩00在线正在播放 | av在线短片| 中文字幕日韩精品一区二区三区 | 亚洲视频在线观看视频 | 国产乱子伦精品无码专区 | 国产偷抇久久精品a片蜜臀av | 亚洲熟伦熟女新五十路熟妇 | 亚洲成a人片77777kkkk | 欧美精品性生活 | www色com情11 | 欧美色综合色 | 久久亚洲成人网 | 又粗又大又黄又硬又爽免费看 | 亚洲第一狼人伊人av | 久一视频在线观看 | 亚色91 | 亚洲中文字幕日产乱码在线 | 亚洲涩涩网 | 免费看黄色的网站 | 欧美视频h | 亚洲天堂资源 | 国产伦精品一区二区三区四区免费 | 九九免费在线视频 | 日本成熟视频免费视频 | 宅男噜噜噜66一区二区 | 免费人成无码大片在线观看 | 午夜在线观看网站 | www成人国产高清内射 | 亚洲国产精品一区二区制服 | 福利片一区二区三区 | 亚洲综合欧美制服丝袜 | 国产精品福利网红主播 | 国模欣谣大尺度啪啪人体 | 男人天堂新 | 久久无码高潮喷水免费看 | 欧美激情一区二区三区成人 | 国产无遮挡又黄又大又不要vip | 美女裸奶100%无遮挡免费网站 | 天堂av手机在线 | 自拍偷拍国产精品 | 亚洲va中文字幕无码久久 | 欧美一级性| 欧美xxxx18性欧美 | 老子影院午夜精品无码 | 亚洲a成人无m网站在线 | av中文国产 | 天天综合网色在线观看 | 中文字幕一区二区三区精华液 | 国产在线无码播放不卡视频 | 葵司ssni-879在线播放 | 人妻少妇久久中文字幕一区二区 | 亚洲女人被黑人巨大进入 | 亚洲 日韩 欧美 成人 在线 | 国产露双乳喂奶在线观看 | 五月丁香六月激情综合在线视频 | 久久久亚洲精华液精华液精华液 | 亚洲一区免费在线 | 精品国产乱码一区二区三区 | 欧美大荫蒂毛茸茸视频 | 7m视频成人精品分类 | 亚洲欧美精品综合一区 | 色八戒一区二区三区四区 | 亚洲精品久久婷婷丁香51 | 色婷婷av一区二区三区影片 | 精品999久久久久久中文字幕 | 91嫩草在线播放 | 久热这里只精品99国产6 | 国产精品无| 久久精品视频久久 | 久久精品国产只有精品66 | 久久人人做人人爽人人av | 久艹在线观看 | 欧美亚洲视频一区二区 | 国产在线观看网站 | 国产欧美在线视频 | 国产性av在线 | 俺去俺来也在线www色官 | 成人免费激情视频 |