国产一区二区三区毛片_亚洲乱码AV中文一区二区_亚洲精品无码专区在线播放_日韩欧美一二_咪咪av影院_欧久久av一区二区

wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發表于: 2011-04-05 15:29
圖片:
Omron_HostLink.dll V3.2 HostLink通信協議串口通訊動態鏈接庫DLL(以下簡稱DLL),是為滿足工業通信需要,

針對工業領域要求上位機對歐姆龍系列PLC通訊實時采集與控制的組態編程而設計。

本DLL是采用Delphi語言開發的標準串口通訊庫,具有以下特點:

1)、遵循歐姆龍HostLink通信協議;

2)、支持多串口并發操作,支持多線程串口通訊,將串口通訊對主程序的影響降至最低;

3)、實時性、可靠性好,通用性強;

4)、適用于多PLC(下位機)聯網和上位機通信,滿足多方面的需要;

5)、函數接口功能全,操作簡單,支持歐姆龍PLC的絕大部分地址的讀寫功能函數;

6)、支持USB、PC擴展卡等擴展串口號;

7)、支持多種操作系統win9x/win2000/winXP(標準Win32 DLL);

8)、易于快速開發(VC等非RAD開發環境的開發);

9)、更新原有函數調用方式采用數組調用數據發生與接收,初學者快速入門;

10)、可在多種編程環境下使用,例如VB、VC、Delphi、PB、Labview、易語言等開發環境;

11)、擴展了函數功能讀取下位機中的雙字、單精度浮點等類型數據,更加符合工業自動化領域的工控軟件的開發。

軟件版本更新及相關說明:

Omron_HostLink.dll V3.2 HostLink通信協議串口通訊鏈接庫,實現了對歐姆 龍全系列PLC的HostLink協議的支持,

(刪減了一些特權指令)wangjun于2010年在原有omron.dll V2.0版基礎上的更新版,重寫了函數結構,采用數據接收

和發送緩沖區(數組)方式傳遞,讀出和寫入單元數據使用更方便。對于16位整數和32位整數讀取寫入均按有符號整數

處理,小數的返回按單精度浮點型(2進制浮點)處理讀取方式。提供擴展功能函數,方便用戶實現混合數據讀取。

能夠同時滿足32個串口并發情況下的正常使用。

Omron_HostLink.dll V3.2 分為完美版和單機版兩個版本,本DLL于2010年最新規整優化了部分源碼,

通過DLL發送緩存區與接收緩存區數據傳遞的功能擴展,使多語言環境的使用更加便利。

全新的串口通信DLL控件,完美的VB、VC、delphi例程及工件手冊是,廣大立志利用各類高級語言進行上位機軟件開發的首先工具。

淘寶店:http://shop34821629.taobao.com

電 話:13912935690 025-84359545

騰訊QQ:157610979

郵 箱:157610979@QQ.com

wjun7610@yahoo.com.cn

chinawanglong@163.com
wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
1樓  發表于: 2011-04-05 15:32
在VC中使用DLL一般都是采用動態聲明的方式,函數說明中給出的是Delphi的函數原型,

在VC中聲明時只要注意一下類型的對應即可,Delphi中的longint類型對應VC中的int類型

Delphi中的Pchar對應VC中的char* ,下面給出主要函數的聲明:

在使用的文件的cpp中聲明一個句柄:

HINSTANCE hinstDLL;

用來標識導入的動態鏈接庫。

1)、按下例說明聲明相關各個函數:(在cpp文件的頭處聲明)

typedef int (_stdcall *pOpen)(int nport, int BaudRate, int DataBits, char* Parity, int StopBits, char* User);
typedef int (_stdcall *pClose)(int nport);
typedef int (_stdcall *pSetDelay)(int nport);
typedef int (_stdcall *pComTrue)(int nport);
typedef int (_stdcall *pComWork)(int nport);

typedef int (_stdcall *pMS)(int nport, int node);
typedef int (_stdcall *pSC)(int nport, int node, int State);
typedef int (_stdcall *pMM)(int nport, int node);
typedef int (_stdcall *pTS)(int nport, int node);
typedef int (_stdcall *pReadInt)(int nport, int node, int address, int Count, char* Order, int* RxdBuffer);
typedef int (_stdcall *pReadTc)(int nport, int node, int address, int Count, int* RxdBuffer);
typedef int (_stdcall *pWriteInt)(int nport, int node, int address, int Count, char* Order, int* TxdBuffer);

typedef int (_stdcall *pSetF)(int nport, int node, int address, int Bit, char* Order);
typedef int (_stdcall *pReSetF)(int nport, int node, int address, int Bit, char* Order);
typedef int (_stdcall *pCancelF)(int nport, int node, int address, int Bit, char* Order);
typedef int (_stdcall *pCancelAllF)(int nport, int node);

typedef int (_stdcall *pSet)(int nport, int node, int address, int Bit, char* Order);
typedef int (_stdcall *pReSet)(int nport, int node, int address, int Bit, char* Order);
typedef int (_stdcall *pReadBit)(int nport, int node, int address, int Bit, int Count, char* Order, int* RxdBuffer);
typedef int (_stdcall *pReadDInt)(int nport, int node, int address, int Count,int* RxdBuffer);
typedef int (_stdcall *pReadFloat)(int nport, int node, int address, int Count, float* RxdBuffer);
typedef int (_stdcall *pWriteDInt)(int nport, int node, int address, int Count, int* TxdBuffer);
typedef int (_stdcall *pWriteFloat)(int nport, int node, int address, int Count, float* TxdBuffer);

typedef int (_stdcall *pBitBin)(int value, int Bitaddress);
typedef int (_stdcall *p32I_16h)(int value);
typedef int (_stdcall *p32I_16l)(int value);
typedef int (_stdcall *p16I_32I)(int valueH, int valueL);
typedef int (_stdcall *p32f_16h)(float value);
typedef int (_stdcall *p32f_16l)(float value);
typedef float (_stdcall *p16I_32f)(int valueH, int valueL);

2)、建立動態鏈接庫的新函數名:(在cpp文件的頭處聲明)

pOpen mOpen;
pClose mClose;
pSetDelay mSetDelay;
pComTrue mComTrue;
pComWork mComWork;

pMS mMS;
pSC mSC;
pMM mMM;
pTS mTS;
pReadInt mReadInt;
pReadTc mReadTc;
pWriteInt mWriteInt;

pSetF mSetF;
pReSetF mReSetF;
pCancelF mCancelF;
pCancelAllF mCancelAllF;

pSet mSet;
pReSet mReSet;
pReadBit mReadBit;
pReadDInt mReadDInt;
pReadFloat mReadFloat;
pWriteDInt mWriteDInt;
pWriteFloat mWriteFloat;

pBitBin mBitBin;
p32I_16h m32I_16h;
p32I_16l m32I_16l;
p16I_32I m16I_32I;
p32f_16h m32f_16h;
p32f_16l m32f_16l;
p16I_32f m16I_32f;

3)、導入動態鏈接庫,如例所示:(在cpp文件的OnInitDialog過程建立):

hinstDLL = LoadLibrary("Omron_HostLink.dll");

4)、判斷dll文件是否存在并聲明并建立動態鏈接庫中的函數與新函數名的對應關系,

如下:(在cpp文件的OnInitDialog過程建立):

if (hinstDLL)
{
mOpen = (pOpen)GetProcAddress (hinstDLL,"OmronComOpen");
mClose = (pClose)GetProcAddress (hinstDLL,"OmronComClose");
mSetDelay = (pSetDelay)GetProcAddress (hinstDLL,"OmronSetDelay");
mComTrue = (pComTrue)GetProcAddress (hinstDLL,"OmronComTrue");
mComWork = (pComWork)GetProcAddress (hinstDLL,"OmronComWork");

mMS = (pMS)GetProcAddress (hinstDLL,"OmronMS");
mSC = (pSC)GetProcAddress (hinstDLL,"OmronSC");
mMM = (pMM)GetProcAddress (hinstDLL,"OmronMM");
mTS= (pTS)GetProcAddress (hinstDLL,"OmronTS");
mReadInt = (pReadInt)GetProcAddress (hinstDLL,"OmronReadInt");
mReadTc = (pReadTc)GetProcAddress (hinstDLL,"OmronReadTc");
mWriteInt = (pWriteInt)GetProcAddress (hinstDLL,"OmronWriteInt");

mSetF = (pSetF)GetProcAddress (hinstDLL,"OmronSetF");
mReSetF = (pReSetF)GetProcAddress (hinstDLL,"OmronReSetF");
mCancelF = (pCancelF)GetProcAddress (hinstDLL,"OmronCancelF");
mCancelAllF = (pCancelAllF)GetProcAddress (hinstDLL,"OmronCancelAllF");

mSet = (pSet)GetProcAddress (hinstDLL,"OmronSet");
mReSet = (pReSet)GetProcAddress (hinstDLL,"OmronReSet");
mReadBit = (pReadBit)GetProcAddress (hinstDLL,"OmronReadBit");
mReadDInt = (pReadDInt)GetProcAddress (hinstDLL,"OmronReadDInt");
mReadFloat = (pReadFloat)GetProcAddress (hinstDLL,"OmronReadFloat");
mWriteDInt = (pWriteDInt)GetProcAddress (hinstDLL,"OmronWriteDInt");
mWriteFloat = (pWriteFloat)GetProcAddress (hinstDLL,"OmronWriteFloat");

mBitBin = (pBitBin)GetProcAddress (hinstDLL,"DecBitBin");
m32I_16h = (p32I_16h)GetProcAddress (hinstDLL,"Int32ToInt_16h");
m32I_16l = (p32I_16l)GetProcAddress (hinstDLL,"Int32ToInt_16l");
m16I_32I= (p16I_32I)GetProcAddress (hinstDLL,"Int16ToInt32");
m32f_16h = (p32f_16h)GetProcAddress (hinstDLL,"Float32ToInt_16h");
m32f_16l = (p32f_16l)GetProcAddress (hinstDLL,"Float32ToInt_16l");
m16I_32f= (p16I_32f)GetProcAddress (hinstDLL,"Int16ToFloat32");

AfxMessageBox("Omron_HostLink.dll已成功載入!");
}
else
{
AfxMessageBox("沒找到Omron_HostLink.dll!");
SendMessage(WM_CLOSE);
}

注:雙引號中為動態鏈接庫中的原有函數名。


函數中用到了char*型參數,這里介紹下char*與Cstring的相互轉換的函數:

(1)char*->CString

char* sz;
CString str;
str.Format("%s",sz); //可以用此函數將讀取的值轉成字符串

(2) CString -> char*

CString str;
char* sz = str.GetBuffer(0);//可將字符串轉成char*給函數賦值


5)、當不再需要使用DLL時記得關閉串口及釋放動態鏈接庫,(在OnDestroy事件中釋放)

if(hinstDLL)
{
int k = mComTrue(mnport);
if (k==1)
{
mClose(mnport);
}
FreeLibrary(hinstDLL);
}
wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
2樓  發表于: 2011-04-05 15:35
上面的DLL使用要點也適用于其他各種windows標準DLL的VC調用。
yamqq
雅馬哈,愛普生,電裝機器人。
級別: 網絡英雄

精華主題: 0
發帖數量: 1724 個
工控威望: 5546 點
下載積分: 24672 分
在線時間: 302(小時)
注冊時間: 2008-05-05
最后登錄: 2025-06-01
查看yamqq的 主題 / 回貼
3樓  發表于: 2011-04-06 16:31
樓主,你out了,現在是基于fins的了!本來想把源碼貼出來,想想還是不要斷了你的財路,只把通訊協議貼一些出來吧
SUDT ACCESSPORT LOG FILE - Monitor mode

監控: COM8
創建時間: 2011-03-19, 14:35:30
計算機名: J2
系統版本: Microsoft Windows XP Professional Service Pack 3 (Build 2600)

#       Time        Function                        Data ( Hex )    

1       [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
2       [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
3       [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
4       [00000010]  IRP_MJ_CLOSE                    Port Closed
5       [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
6       [00000000]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
7       [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
8       [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
9       [00000002]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
10      [00000088]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D
11      [00002270]  IRP_MJ_CLOSE                    Port Closed
12      [00000000]  IRP_MJ_CREATE                   Port Opened - AccessPort.exe
13      [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
14      [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
15      [00000002]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
16      [00000003]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
17      [00000940]  IRP_MJ_CLOSE                    Port Closed
18      [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
19      [00000000]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
20      [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
21      [00000010]  IRP_MJ_CLOSE                    Port Closed
22      [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
23      [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
24      [00000002]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
25      [00000002]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
26      [00000003]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
27      [00000941]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D
28      [00001933]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 57 44 30 30 30 31 30 30 30 32 35 30 2A 0D
29      [00002507]  IRP_MJ_CLOSE                    Port Closed
30      [00000000]  IRP_MJ_CREATE                   Port Opened - AccessPort.exe
31      [00000000]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
32      [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
33      [00000002]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
34      [00000003]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
35      [00000804]  IRP_MJ_CLOSE                    Port Closed
36      [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
37      [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
38      [00000002]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
39      [00000009]  IRP_MJ_CLOSE                    Port Closed
40      [00000000]  IRP_MJ_CREATE                   Port Opened - vb6.exe
41      [00000001]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
42      [00000001]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 1, Parity: No, DataBits: 8
43      [00000002]  IOCTL_SERIAL_SET_BAUD_RATE      Baud Rate: 9600
44      [00000002]  IOCTL_SERIAL_SET_LINE_CONTROL   StopBits: 2, Parity: Even, DataBits: 7
45      [00000093]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D
46      [00000177]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D
47      [00000190]  IRP_MJ_WRITE                    Length: 0017, Data: 40 30 30 52 44 30 30 30 31 30 30 30 31 35 36 2A 0D
48      [00000293]  IRP_MJ_CLOSE                    Port Closed

@00FA00000000001018200000000017C*//d0讀
@00FA00000000001018200010000017D*  D1讀   @00FA00000000001018200020000017E*  D2讀
@00FA00000000001018200020000027D*  D2D3 讀
@00FA00000000001018200020000027D*  D2D3 可寫

@00FA0000000000101B2000000000106*  H0 讀
@00FA0000000000101B2000000000106*  H0 可寫
@00FA0000000000101B2000100000107*  H1 讀
@00FA0000000000101B2000100000107*  H1 可寫
@00FA0000000000101B2000200000104*  H2 讀
@00FA0000000000101B2000200000104*  H2 可寫
@00FA0000000000101B2000300000105*  H3 讀
@00FA0000000000101B2000300000105*  H3 可寫
@00FA0000000000101B2000300000206*  H3H4讀
@00FA0000000000101B2000300000206*  H3H4可寫

@00FA00000000001023100010100010176* 設置W1.1位置
@00FA00000000001023000640000010175* 寫100.00
@00FA000000000010130006400000177*  100.00 讀
@00FA000000000010130006401000176*  100.01 讀
@00FA000000000010130006402000175*  100.02 讀
@00FA000000000010130006500000176*  101.00 讀
@00FA000000000010130006501000177*  101.01 讀
@00FA000000000010130006502000174*  101.02 讀


@00FA000000000010130000000000175*  0.00 讀
@00FA000000000010130000001000174*  0.01 讀
@00FA000000000010130000002000177*  0.02 讀
@00FA000000000010130000100000174*  01.00讀
@00FA000000000010130000200000177*  02.00讀
@00FA000000000010131000000000174*  W0.00 讀
@00FA000000000010131000001000175*  W0.01 讀
@00FA000000000010131000002000176*  W0.02 讀
@00FA000000000010131000002000176*   W0.02 讀
@00FA000000000010131000100000175*  W1.00讀
@00FA000000000010131000200000176*  W2.00讀

@00FA000000000010189000000000177*  T0讀
@00FA000000000010189000000000177*  T0讀寫
@00FA000000000010189000100000176*  T1讀
@00FA000000000010189000100000176*  T1讀寫
@00FA000000000010189000200000175*  T2讀
@00FA000000000010189000200000175*  T2讀寫

@00FA000000000010189000000000177*  C0讀
@00FA000000000010189000000000177*  C0讀寫
@00FA000000000010189000100000176*  C1讀
@00FA000000000010189000100000176*  C1讀寫
@00FA000000000010189000100000176*  C1讀寫并寫了上下限100-10

@00FA000000000010189000200000175*  C2讀
@00FA000000000010189000200000175*  C2讀寫
@00FA00000000001018900FA00000170*  C250讀寫
@00FA00000000001018909C400000109*  C2500讀寫
@00FA00000000001018909C40000020A*  C2500 C2501讀寫
這個人很懶,什么也沒有留下!
wyk335858575
級別: *
精華主題: * 篇
發帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看wyk335858575的 主題 / 回貼
4樓  發表于: 2011-04-06 16:35
不錯,看看先
wyk335858575
級別: *
精華主題: * 篇
發帖數量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看wyk335858575的 主題 / 回貼
5樓  發表于: 2011-04-06 16:37
wjun7610
級別: 略有小成
精華主題: 0
發帖數量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
6樓  發表于: 2011-05-24 20:29
呵呵,謝謝你的指教,不錯Fins協議是歐姆龍新版的協議對于新版的支持更好,而且支持串口、以太網等,特別是他支持CP1H、CP1L、CP1E等新出型號的W區的讀寫。數據的讀取數量也更大,本人正在仿現在的hostlink串口動態庫開發相關串口庫,以太網的等我購買了歐姆龍以太網硬件測試成功再吧。
我的目的是提高一些工控人員進行開發上位機軟件的速度,提供完整的函數接口,比開發人員自行使用協議開發要快速,特別是對于新手來說完善的使用例程更加方便了他們的使用。多語言的支持比目前很多只支持VB或VC的一些網絡流行源代碼來說適用性更好,無論使用VC、VB、delphi、CB、PB、易語言、Labview等等都可以得到完美的解決方案。不使用其他控件,完全可以制作綠色版上位機軟件,至于收費嘛,我用了時間做這個軟件自然希望得到認可,愿意不愿意用全憑各位自己,我僅提供一種便捷的方法而已。

主站蜘蛛池模板: 误杀2在线观看免费完整国语高清_日日日对白普通话_久久精品国产99久久72部_91免费视频入口_在线免费观看精品_亚洲精品456在线播放_内射极品少妇xxxxxhd_午夜高清影院 | 日本一级囗交免费_福利第一页_欧美日韩在线视频一区二区_青青草免费公开视频_久久网站_999国产在线视频_欧美亚洲高清一区二区三区不卡_看国产一级黄色片 | 国内精品久久久久久不卡影院_国产清纯美女白浆在线播放_aav在线_日韩成人一区二区三区在线观看_欧美在线_欧美人与拘性视交_欧美视频成人_国产情侣一区二区| 亚洲乱亚洲乱妇19p_色肉色伦交国产69精品_欧洲吸奶大片在线看_四虎免费看黄_国产人妻精品午夜福利免费_在线观看免费视频精品_黄网www_婷婷91 | 扒开双腿猛进入校花免费网站_97超级碰碰碰久久久久_www.亚色太在线.com_2023av在线_一级精品视频_亚洲国产成人精品无码一区二区三区_久久高清免费_免费视频网站91 | 在线观看亚洲AV每日更新无码_亚洲成人黄色影院_一级片视频免费在线观看_鲁大师成人一区二区三区_天天久久综合_日日噜噜夜夜狠狠久久无码区_美女下部隐私(不遮挡)_精品国产SM捆绑最大网免费站 | 亚洲精品无码成人A片体验区在线_精品无码一区二区三区亚洲桃色_国产九九久久_国产乱精品一区二区三区视频了_淫片网站_少妇人妻一级a毛片_天天干天天射综合网_1769国内精品视频在线 益日韩欧群交P片内射中文_1313午夜精品理论片_综合爱爱网_纯肉无遮挡h肉动漫在线观看3d_男人的天堂久久精品_99久久精品午夜一区二区_亚洲七七久久桃花影院_国产91色在线亚洲 | 国产a∨国片精品jk制服_亚洲大片免费_欧美视频在线观看不卡_大陆av在线_91一区二区国产_136fldh福利免费视频观看_伊人91在线_又黄又爽又色又刺激的视频 | 手机在线播放国产女主播_国产精品一区二区久久不卡小说_久久夜靖品2区_精品视频色一区_品久久久久久久久久96高清_农村乱视频一区二区三区_久久久久无码精品国产情侣_黄又色又污又爽又高潮动态图 | 色久悠悠婷婷综合在线亚洲_国产精品区区久久久狼_国产一级免费_超级碰99_中文字幕亚洲无线码在一区_91精品久久久久久久99_国产专区视频在线观看_久久天堂 | 亚洲欧美字幕_香蕉视频你懂的_成人免费看片a_花样男子版韩剧免费观看_久久密av_亚洲最大成人综合网720P_欧美在线网址_乱精品一区字幕二区 | 日本老逼_欧美丰满熟妇乱XXXXX网站_性少妇中国内射XXXX狠干_国产婷婷成人久久av免费高清_九一在线观看_一级做a爰性色毛片免费视频_国产在线免费_亚洲女人网 | 久久人妇_激情动漫_国产精品福利在线观看无码卡一_欧美日韩在线二区_国产精品aⅴ_天天爱夜夜爱_又爽又黄又无遮挡的视频在线观看_艳魔大战春荡女淫3 | 超碰在线97中文字幕_天天草夜夜草_亚洲精品久久久久久久久久久久_四韩色情无码一区二区三区_国产精品久久久久久久7777_欧美国产日韩在线三区_7777偷窥盗摄视频_97在线视频免费 | 日本aaaaaa_久久看人人爽人人_日日碰狠狠躁久久躁9_免费无码中文字幕a级毛片hd_成人羞羞国产免费动态_欧美另类videos极品hd_日本人配人免费视频人_99久久日韩精品视频免费在线观看 | 国产精品色婷婷亚洲综合看片_日本熟日本熟妇在线视频_一级片的网址_亚洲无人区一卡2卡三卡_青草青草视频2免费观看_欧美亚洲国产片在线播放_老女老肥熟国产在线视频_亚洲精品xxxxx | 手机成人影视_国产精品伦视频看免费三_扒开粉嫩的小缝喷白浆h_亚洲Ⅴa制服丝袜一区二区三区_久草青青在线_久久久小视频_免费A级毛片18禁网站免费_亚洲精品成a人在线观看网站 | 午夜视频免费看_7788私人影院_7777精品久久久大香线蕉_曰曰摸夜夜添夜夜添高潮出水_伊人狠狠操_青青免费视频在线_色婷婷欧美在线播放内射_少妇性饥渴无码A区免费 | 黑人巨茎精品欧美一区二区_小情侣高清国产在线播放_亚洲区欧美区综合区自拍区_视频一区中文字幕_超碰caoporn久久_亚洲AV成人无码网站在线_国产精品丝袜高跟鞋_九一精品在线观看 | 91视频免费看网站_300部国产真实乱_国产麻豆乱码精品一区二区三区_999久久久精品免费毛片_国产精品爽爽va在线观看无码_最好的2019中文大全在线观看_国产又黄又爽又色的免费视频白丝_九九视频在线观看 | 年轻的秘书在线观看_国产又粗又大又黄_国产精品小视频网站_极品美女无套啪啪_精品久久久久久国产牛牛_无码中文字幕AⅤ精品影院_天天操天天玩_少妇大叫太大太粗太爽了A片软件 | 国产精品久久久天天影视_强乱中文字幕在线播放不卡_亚洲日韩精品A∨片无码加勒比_国产精品第1页_4455永久在线观看_伊人久久婷婷综合五月97色_亚洲国产毛片_一级h片 | 免费一级特黄3大片视频_免费的黄色_91视频免费在线_亚洲精品久久久久私欲_性高湖久久久久久久久aaaaa_成人影院在线观看免费_偷拍精品一区二区三区_国产精品无线一线二线三线 手机在线播放国产女主播_国产精品一区二区久久不卡小说_久久夜靖品2区_精品视频色一区_品久久久久久久久久96高清_农村乱视频一区二区三区_久久久久无码精品国产情侣_黄又色又污又爽又高潮动态图 | 手机看片一级片_人人妻人人爽人人澡人人_亚洲成AV人片在一线观看_在线精品自偷自拍无码_中文字幕一区二区三区在线播放_日本中文字幕视频一区_国产不卡精品_99精品久久久久久久另类 | www视频免费观看_麻豆freehdxxxⅹ传媒_abab456成人免费网址_国产激情自拍视频_青楼妓女禁脔道具调教SM_国产一区二区三区成人欧美日韩在线观看_久久久久av_精品欧美乱码久久久久久1区2区 | 人妻免费久久久久久久了_办公丝袜av一区二区三区_2019日韩中文字幕mv_国产黄频免费无数次看_国产精品国产成人国产三级_动漫久久_午夜男女XX00视频福利_日韩高清在线不卡一区二区 | 国产爱啪啪_亚洲毛片免费_九九自拍视频_欧美xxxxx性喷潮_日韩国产精品久久久久久亚洲_日本a级片免费观看_999精品在线_日本丰满少妇BBB | 欧美另类性视频_青苹果乐园在线观看免费完整_成人免费网站观看_欧美天堂一区_亚洲品牌自拍一品区9_新av在线天堂网_国内91在线_wwwwxxxx欧美 | 一级黄色绿像片_曰韩精品无码_日本真人啪啪免费无遮挡_欧美一区二区久久久_亚洲精品92内射_乱子伦av无码中文字幕_视频,国产成人精品日本亚洲18_水莓100完全国产免费 | 91亚洲免费视频_国产精品人妻一区二区网站_亚洲中文字幕无码一区二区三区_性欧美XXXXX极品少妇_国产精品一区免费在线观看_一级做a爱片_在线视频一区二区三区三区不卡_激情综合婷婷丁香五月俺来也 | 免费看又黄又无码的网站_一级中文免费_我想看毛片_中日韩在线观看视频_草草影院ccyy国产日本第一页_日本精品综合_伊人xxx_麻豆观看 | 亚洲人成在线免费观看_男女扒开双腿猛进入免费看污_国产公妇仑乱在线观看_亚洲va欧美va国产综合先锋_国产精品一区二区av片_久久国产精品欧美_久久午夜国产精品www护士让_玩偶姐姐免费 | 拔插拔插8X8X海外华人免费视频_无码专区亚洲avl_日本黄色片免费播放_亚洲成人精品一区二区三区_国产精品一级在线观看_国产精品无码无在线观看_国语自产偷拍精品视频偷蜜芽_中文字幕亚洲乱码熟女在线萌芽 | 超国产女人高潮a片免费视频_91免费视频播放_狠狠综合久久综合88亚洲爱文_国产精品久久人妻无码免费看_www.com色_少妇借种高潮了_久久久久亚洲AV成人无码_大尺度吃奶摸下激烈视频 | 91精品国产色综合久久不卡98_免费国产成人肉肉视频大全_日本熟妇xxxx_日本高清免费观看_看片1区_俺去鲁婷婷六月色综合_日韩精品一区二区亚洲AV观看_青青久久国产 | 国产一区精品_二区精品_亚洲国产精品久久青草无码_亚洲一视频_91在现视频_九九色网_国产精品久久久久久久久久影院的_铠甲勇士免费观看 | 日本高清黄_亚洲制服丝袜中文字幕自拍_人与动人物xxxx毛片在线播放_麻豆精品91_99re这里只有精品6_亚洲欧美日本综合_亚洲Aⅴ在线无码播放毛片一线天_午夜无码一区二区三区在线观看 | 边啃奶边躁狠狠躁a片动图_懂色av一区二区_黄色片小视频_亚洲性无码AV在线观看_欧美成在线观看_乱人伦精品视频在线观看_无码人妻一区二区三区免_久久r精品 | 蜜臀网站_男女无遮挡在线观看_欧美一二三四成人免费视频_成年人网站黄_亚洲国产视频一区_白色欧美精品在线播放_亚洲级αV无码毛片久久精品_亚洲精品黄色片 | 一本大道香蕉大在线中文_国产精品久久久久久妇_天天干天天爱天天_18禁美女黄网站色大片在线_98超碰人人_国产丝袜av一区二区三区性色_av毛片无码中文字幕不卡_一区二区三区产品免费精品久久75 | 亚洲精品久久久蜜桃网尤妮丝_日日日日日_亚洲一区h_国产网站在线免费观看_精品999日本久久久影院_女教师在办公室被强在线播放_在线视频久_夜夜骑天天射 |