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

wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個(gè)
工控威望: 249 點(diǎn)
下載積分: 708 分
在線時(shí)間: 35(小時(shí))
注冊時(shí)間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發(fā)表于: 2008-02-26 13:58
西門子S7-200系列PLC PPI協(xié)議及PPI動態(tài)鏈接庫DLL(需VB、Delphi DEMO程序請回貼并留下Emial地址)


一、西門子S7-200系列PLC PPI協(xié)議動態(tài)鏈接庫DLL(以下簡稱DLL),是為滿足工業(yè)通信需要,針對工業(yè)領(lǐng)域要求上位機(jī)對西門子S7-200系列

PLC實(shí)時(shí)采集與控制的組態(tài)編程而設(shè)計(jì)。本DLL是采用Delphi語言開發(fā)的標(biāo)準(zhǔn)串口通訊庫,具有以下特點(diǎn):

1)、實(shí)時(shí)性、可靠性好,可根據(jù)通信數(shù)據(jù)量自行調(diào)整通信時(shí)間;

2)、適用于多PLC聯(lián)網(wǎng)和上位機(jī)通信,滿足多方面的需要;

3)、函數(shù)接口功能全,操作簡單;

4)、附加實(shí)用轉(zhuǎn)換與讀取函數(shù),易于快速開發(fā)(VC等非RAD開發(fā)環(huán)境的開發(fā));

5)、支持USB、PC擴(kuò)展卡等擴(kuò)展串口號;

6)、支持多種操作系統(tǒng)win9x/win2000/winXP(標(biāo)注Win32 DLL);

7)、可在多種編程環(huán)境下使用,例如VB、VC、Delphi等開發(fā)環(huán)境。

二、PPI協(xié)議簡介及S7-200CPU內(nèi)存地址范圍介紹

2.1 西門子PPI通訊協(xié)議

    通過硬件和軟件偵聽的方法,分析PLC內(nèi)部固有的PPI通訊協(xié)議,然后采用上位機(jī)編程,遵循PPI通訊協(xié)議,讀寫PLC數(shù)據(jù),實(shí)現(xiàn)人機(jī)操作

任務(wù)。這種通訊方法,與一般的自由通訊協(xié)議相比,省略了PLC的通訊程序編寫,只需編寫上位機(jī)的通訊程序資源S7-226的編程口物理層為

RS-485結(jié)構(gòu),SIEMENS提供MicroWin軟件,采用的是PPI(Point to Point)協(xié)議,可以用來傳輸、調(diào)試PLC程序。在現(xiàn)場應(yīng)用中,當(dāng)需要PLC

與上位機(jī)通訊時(shí),較多的使用自定義協(xié)議與上位機(jī)通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,

利用中斷方式控制通訊端口的數(shù)據(jù)收發(fā)。采用這種方式,PLC編程調(diào)試較為煩瑣,占用PLC的軟件中斷和代碼資源,而且當(dāng)PLC的通訊口定義

為自由通訊口時(shí),PLC的編程軟件無法對PLC進(jìn)行監(jiān)控,給PLC程序調(diào)試帶來不便。

    SIEMENS S7-200PLC的編程通訊接口,內(nèi)部固化的通訊協(xié)議為PPI協(xié)議,如果上位機(jī)遵循PPI協(xié)議來讀寫PLC,就可以省略編寫PLC的通訊

代碼。如何獲得PPI協(xié)議?可以在PLC的編程軟件讀寫PLC數(shù)據(jù)時(shí),利用第三個(gè)串口偵聽PLC的通訊數(shù)據(jù),或者利用軟件方法,截取已經(jīng)打開

且正在通訊的端口的數(shù)據(jù),然后歸納總結(jié),解析出PPI協(xié)議的數(shù)據(jù)讀寫報(bào)文。這樣,上位機(jī)遵循PPI協(xié)議,就可以便利的讀寫PLC內(nèi)部的數(shù)據(jù),

實(shí)現(xiàn)上位機(jī)的人機(jī)操作功能。

西門子的PPI(Point to Point)通訊協(xié)議采用主從式的通訊方式,一次讀寫操作的步驟包括:首先上位機(jī)發(fā)出讀寫命令,PLC作出接收正確

的響應(yīng),上位機(jī)接到此響應(yīng)則發(fā)出確認(rèn)申請命令,PLC則完成正確的讀寫響應(yīng),回應(yīng)給上位機(jī)數(shù)據(jù)。這樣收發(fā)兩次數(shù)據(jù),完成一次數(shù)據(jù)的讀寫

(從這里可以看出PPI協(xié)議的通訊效率并不好,一次讀寫需收發(fā)兩次數(shù)據(jù)^_^)。

其通訊數(shù)據(jù)報(bào)文格式大致有以下幾類:

1)、讀寫申請的數(shù)據(jù)格式如下:

SD LE LER SD DA SA FC DASP SSAP DU FCS ED

SD:(Start Delimiter)開始定界符(68H)

LE:(Length)報(bào)文數(shù)據(jù)長度

LER:(Repeated Length)重復(fù)數(shù)據(jù)長度

SD: (Start Delimiter)開始定界符(68H)

SA:(Source Address)源地址,指該地址;

DA:(Destination Address)目標(biāo)地址,指該地址;

FC:(Function Code)功能碼

DSAP:(Destination Service Access Point)目的服務(wù)存取點(diǎn)

SSAP:(Source Service Access Point)源服務(wù)存取點(diǎn)

DU:(Data Unit)數(shù)據(jù)單元

FCS:(Frame Check Sequence)校驗(yàn)碼

ED:(End Delimiter)結(jié)束分界符(16H)

報(bào)文數(shù)據(jù)長度和重復(fù)數(shù)據(jù)長度為自DA至DU的數(shù)據(jù)長度,校驗(yàn)碼為DA至DU數(shù)據(jù)的和校驗(yàn),只取其中的末字節(jié)值。

讀寫一般數(shù)據(jù)的功能碼為 6CH,讀CT數(shù)據(jù)、置位、復(fù)位、強(qiáng)制等的功能碼為 7CH,確認(rèn)命令功能碼5CH。

2)、PLC接收到讀寫命令,校驗(yàn)后正確,返回的數(shù)據(jù)格式為 E5H

3)、確認(rèn)讀寫命令的數(shù)據(jù)格式為:

SD SA DA FC FCS ED 

其中SD為起始符,為10H

SA為數(shù)據(jù)源地址

DA為目的地址

FC為功能碼,取5CH

FCS為SA+DA+FC的和的末字節(jié)

ED為結(jié)束符,取16H

4)、數(shù)據(jù)類型碼

04:S
05:SM
06:AI
07:AQ
1E: C
81:I
82:Q
83:M
84:V
1F: T

5)、讀寫功能數(shù)據(jù)命令實(shí)例

1、給寫VW3值1200

68 21 21 68 02 00 6C 32 01 00 00 00 00 00 0E 00 06 05 01 12 0A 10 02 00 02 00 01 84 00 00 18 00 04 00 10 04 B0 50 16

2、讀取IB0的數(shù)據(jù)值

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 01 00 00 81 00 00 00 64 16

感興趣的朋友給你根據(jù)上述例子用串口精靈測試一下,當(dāng)發(fā)送命令成功PLC返回E5,你再發(fā)送10 02 00 5C 5E 16,就可以完成一次讀寫命令。

(記得接收和發(fā)送采用16進(jìn)制方式 o(∩_∩)o...哈哈)

2.2 S7-200PLC CPU內(nèi)存地址范圍(DLL所能尋址的范圍)

被存取:    類型 CPU 221            CPU 222      CPU 224                  CPU 226

位(字節(jié).位)      V      0.0-2047.7 0.      0-2047.7      0.0-5119.7  V 1.22    0.0-5119.7  V 1.23
                                                                                        0.0-8191.7  V 2.00    0.0-10239.7  V 2.00
                                                                                        0.0-10239.7 XP
                          I      0.0-15.7              0.0-15.7        0.0 -15.7                      0.0-15.7
                          Q    0.0-15.7              0.0-15.7        0.0 -15.7                      0.0-15.7     
                          M    0.0-31.7              0.0-31.7        0.0 -31.7                      0.0-31.7
                          S    0.0-31.7              0.0-31.7        0.0 -31.7                      0.0-31.7
                        SM    0.0-179.7            0.0-299.7      0.0 -549.7                    0.0-549.7

字節(jié)        VB    0 - 2047                0 - 2047      0 - 5119  V 1.22          0 - 5119  V 1.23
                                                                                      0 - 8191  V 2.00          0 - 10239  V 2.00
                                                                                      0 - 10239  XP
                        IB    0 - 15                    0 - 15            0 - 15                              0 - 15
                        QB  0 - 15                    0 - 15            0 - 15                              0 - 15
                        MB  0 - 31                    0 - 31            0 - 31                              0 - 31
                        SB  0 - 31                    0 - 31            0 - 31                              0 - 31
                    SMB  0 - 179                  0 - 299          0 - 549                            0 - 549                 
                 
字          VW  0 - 2046                0 - 2046      0 - 5118  V 1.22            0 - 5118    V 1.23
                                                                                      0 - 8190  V 2.00            0 - 10230  V 2.00
                                                                                      0 - 10230  XP
                          T  0 - 255                    0 - 255        0 - 255                            0 - 255
                          C  0 - 255                    0 - 255        0 - 255                            0 - 255
                      AIW  0 - 30                      0 - 30            0 - 62                              0 - 62
                    AQW  0 - 30                      0 - 30            0 - 62                              0 - 62

雙字      VD  0 - 2044                  0 - 2044        0 - 5116  V 1.22            0 - 5116  V 1.23
                                                                                      0 - 8188  V 2.00            0 - 10236  V 2.00
                                                                                      0 - 10236 XP

說明:S7-200PLC的字、雙字地址和字節(jié)地址實(shí)際上是重疊的,下面做個(gè)說明如:

VB0  VB1  VB2  VB3  VB4  VB5  VB6  VB7  VB8  VB9  VB10  VB11  VB12  VB13  VB14  VB15

————  ————  ————  ————  ————  ————    ————    ————
  VW0      VW2      VW4      VW6      VW8      VW10        VW12        VW14
—————————  ————————— —————————    ———————————
      VD0                VD4                VD8                    VD12

從上例可以看出PLC中字節(jié)、字與雙字尋址的關(guān)系,當(dāng)然如果你想使用VW1(VB1 VB2)、VD3(VB3 VB4 VB5 VB6)等尋址方式也是可以的,

但為了減少不必要的尋址錯(cuò)誤造成程序的非法執(zhí)行建議:

字尋址時(shí)使用(V、I、Q、M等等)0、2、4、6、8、10 ……,(這從PLC的模擬量輸入/輸出(AIW/AQW)的尋址就可以看出奇數(shù)地址是不允許的)

雙字尋址時(shí)使用(V、I、Q、M等等)0、4、8、12、16、20、24 …………………………,同時(shí)還要注意字節(jié)地址尋址最好也能不重疊;

C、T區(qū)當(dāng)前值讀取時(shí)的地址按實(shí)際地址0~255來。

三、DLL函數(shù)說明

1、打開串口

Function ComOpen(nport,BaudRate,DataBits,Parity,StopBits:longint;User:Pchar):longint;stdcall;

參數(shù):nport: 打開串口號,取值為1~8,代表COM1~COM8;
     
      BaudRate:波特率,取值為:1200、2400、4800、9600、19200、38400;
   
      DataBits:數(shù)據(jù)位,取值為5、6、7、8;

      Parity:  校驗(yàn)位,取值1(代表Even)、取值2(代表Odd)、取值3(代表Mark)、取值4(代表Space)、取值5(代表None);
 
      StopBits:停止位,取值1(代表1位停止位)、取值2(代表2位停止位)、取值3(代表1.5位停止位);

      User:DLL授權(quán)用戶名;

返回值:長整型,操作成功返回“1”或“2”;1表示注冊授權(quán)用戶,2表示用戶未注冊;

操作不成功返回為“0”時(shí)的原因:1)、串口不存在或被占用; 2)、DLL注冊授權(quán)不正確。

注:本DLL用戶不注冊除了下面說明的功能限制外沒有其他限制,未注冊用戶請使用特定用戶名:wangjun。

    注冊用戶功能上無任何限制,且將得到永久的軟件使用和更新升級服務(wù);

使用舉例:

Delphi:ComOpen(1,9600,8,1,1,Pchar('wangjun')) , 打開COM1口。

VB:ComOpen(1,9600,8,1,1,"wangjun") , 打開COM1口。

2、關(guān)閉串口

Function ComClose(nport:longint):longint;stdcall;

參數(shù):nport: 串口號,取值為1~8,代表COM1~COM8;

返回值:長整型,操作成功返回“1”,否則返回“0”;

使用舉例:

ComClose(1) ,關(guān)閉打開的COM1口。


3、PLC內(nèi)部元件讀取功能函數(shù)

注:PLC內(nèi)部元件與數(shù)字的對應(yīng)關(guān)系(DLL中的所有函數(shù)都遵循此規(guī)定):

0 : I
1 : Q
2 : M
3 : V
4 : S
5 : SM
6 : AI
7 : AQ
8 : C
9 : T 

注:下面的讀寫等PLC操作函數(shù)使用舉例都是按VB調(diào)用函數(shù)形式給出。

1)、字節(jié)元件數(shù)據(jù)讀取

Function FcnBread(nport,purpose,source,name,address,Count:longint):Pchar;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q)、取值2(代表M)、取值3(代表V)、取值4(代表S)、取值5(代表SM);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  讀取的字節(jié)個(gè)數(shù),最多讀取128個(gè)但不能超出尋址范圍;

返回值:字符串?dāng)?shù)據(jù),字符串?dāng)?shù)據(jù)的終止符為"@";

使用舉例:

FcnBread(1,0,2,0,2,4),由COM1讀取PPI 2號站 數(shù)據(jù)到0號站(計(jì)算機(jī))IB2~I(xiàn)B5四個(gè)字節(jié)的值,如返回值為“01FF6403@”,

則表示IB2=01, IB3=FF,IB4=64,IB5=03;

                            ---------- --
字符串返回序列:            | 01 | FF | 64 | 03| @ |
                            ---------- --

返回值為16進(jìn)制字符串,將返回值如上2位一組,可轉(zhuǎn)換成“0~255”間的整數(shù)值。

在讀取錯(cuò)誤或不能讀取的情況下返回“Error@”

注:沒有注冊用戶不能讀取S、SM區(qū)字節(jié)值,可尋址范圍IB0~IB1、QB0~QB1、MB0~MB1、VB0~VB1;


2)、字元件數(shù)據(jù)讀取

Function FcnWread(nport,purpose,source,name,address,Count:longint):Pchar;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值3(代表V)、取值6(代表AI)、取值8(代表C)、取值9(代表T);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  讀取的字個(gè)數(shù),最多讀取64個(gè)但不能超出尋址范圍,T區(qū)讀取時(shí)不超過44個(gè);

返回值:字符串?dāng)?shù)據(jù),字符串?dāng)?shù)據(jù)的終止符為"@";

使用舉例:

FcnWread(1,0,2,3,0,4),由COM1讀取PPI 2號站 數(shù)據(jù)到0號站(計(jì)算機(jī))VW0~VW6四個(gè)字的值,如返回值為“006403E804B00010@”,

則表示VW0=0064, VW2=03E8,VW4=04B0,VW6=0010;

                            -----------------
字符串返回序列:            | 0064 | 03E8 | 04B0 | 0010 | @ |
                            -----------------

返回值為16進(jìn)制字符串,將返回值如上4位一組,可轉(zhuǎn)換成無符號“0~65535”或有符號“-32768 ~ +32767”間的整數(shù)值。

如果你從PLC中讀取的是有符號的數(shù)時(shí),這個(gè)值小于等于32767,就得到你讀的實(shí)際值,例如讀到一個(gè)值“5EEE”轉(zhuǎn)換成整數(shù)24302,

則實(shí)際值=+(24302-0)=+24302;如果大于32767,例如我讀到一個(gè)值“8FC0”先轉(zhuǎn)換成整數(shù)36800,那實(shí)際值=-(36800-32768)=-4032。

在讀取錯(cuò)誤或不能讀取的情況下返回“Error@”

注:沒有注冊用戶不能讀取C、T區(qū)字當(dāng)前值,可尋址范圍VW0~VW8、AIW0~AIW2;

3)、雙字元件數(shù)據(jù)讀取

Function FcnDWread(nport,purpose,source,name,address,Count:longint):Pchar;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值3(代表V);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  讀取的雙字個(gè)數(shù),最多讀取32個(gè)但不能超出尋址范圍;

返回值:字符串?dāng)?shù)據(jù),字符串?dāng)?shù)據(jù)的終止符為"@";

使用舉例:

FcnDWread(1,0,2,3,0,2),由COM1讀取PPI 2號站 數(shù)據(jù)到0號站(計(jì)算機(jī))VW0~VW6四個(gè)字的值,如返回值為“006403E804B00010@”,

則表示VD0=006403E8,VD4=04B00010;

                            --------------
字符串返回序列:            | 006403E8 | 04B00010 | @ |
                            --------------

返回值為16進(jìn)制字符串,將返回值如上8位一組,可轉(zhuǎn)換成無符號“0~4294967295”或有符號“-2147483648 ~ +2147483647”間的整數(shù)值。

如果你從PLC中讀取的是有符號的數(shù)時(shí),這個(gè)值小于等于2147483647,就得到你讀的實(shí)際值,例如讀到一個(gè)值“5EEE8000”轉(zhuǎn)換成整數(shù)

為1592688640,則實(shí)際值=+(1592688640-0)=+1592688640;如果大于2147483647,例如我讀到一個(gè)值“8FEFC000”先轉(zhuǎn)換成整數(shù)2414854144,

那實(shí)際值=-(2414854144-2147483648)=-267370496。

在讀取錯(cuò)誤或不能讀取的情況下返回“Error@”

注:沒有注冊用戶可尋址范圍VD0~VD4;

4)、位元件的狀態(tài)讀取

Function FcnBitread(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q)、取值2(代表M)、取值3(代表V)、取值4(代表S)、取值5(代表SM);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    讀取的字節(jié)元件的位地址如I1.0指I1字節(jié)元件的第0位;

返回值: 長整數(shù),返回為0表示狀態(tài)為OFF,返回為1表示狀態(tài)為ON,返回為-1表示讀取錯(cuò)誤或不能讀取;

使用舉例:

FcnBitread(1,0,2,0,1,7),由COM1讀取PPI 2號站 數(shù)據(jù)到0號站(計(jì)算機(jī))I1.7,如返回值為1,則表示I1.7=1;

注:沒有注冊用戶不可以讀取S、SM區(qū)狀態(tài),可尋址范圍I0.0~I1.7、Q0.0~Q1.7、M0.0~M1.7、V0.0~V1.7;

4、PLC內(nèi)部元件寫數(shù)據(jù)功能函數(shù)

1)、字節(jié)元件數(shù)據(jù)寫入

Function FcnBwrite(nport,purpose,source,name,address,Count:longint;Sendstr:Pchar):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q)、取值2(代表M)、取值3(代表V)、取值4(代表S);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  寫入字節(jié)個(gè)數(shù),這里1字節(jié)應(yīng)寫入2位16進(jìn)制字符串;

Sendstr: 給字節(jié)寫入的值,該值為2個(gè)一組的16進(jìn)制字符串組其取值為00~FF(整數(shù)值為0~255);

返回值: 長整數(shù),操作成功返回1,不能寫入或操作錯(cuò)誤返回0;

當(dāng)要寫入多個(gè)字節(jié)值時(shí)依次排列即可。如給MB0與MB1寫值100和80,先將100轉(zhuǎn)成16進(jìn)制字符串64、80

轉(zhuǎn)成16進(jìn)制字符串50,則sendstr=6450;一次最多寫128個(gè)字節(jié)即字符串長應(yīng)小于等于256;

                            ---------- - ~ - ------
寫字符串序列如:            | 00 | FF | 10 | 64 |  ~    | 08 | 04 |
                            ---------- - ~ - ------

實(shí)際字符串與位地址的數(shù)值應(yīng)如下表:(將上例的字節(jié)MB0'、MB1'轉(zhuǎn)換為位地址M0.0~M1.7由下表對應(yīng),此對應(yīng)也可以應(yīng)用于字節(jié)讀取)

    M:      0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1.0
            ---------------------------------
位地址:    | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
            ---------------------------------
各位賦值:  | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
            ---------------------------------
16進(jìn)制串:  |      6      |      4      |      5      |      0      |
            ---------------------------------

使用舉例:

FcnBwrite(1,0,2,2,0,2,"6450")由COM1 0號站(計(jì)算機(jī)) 寫入PPI 2號站 數(shù)據(jù)MB0=64(10進(jìn)制100)、MB1=50(10進(jìn)制80),操作成功返回1;

注:沒有注冊用戶不能寫S區(qū)字節(jié)值,可尋址范圍IB0、QB0、MB0、VB0;

2)、字元件數(shù)據(jù)寫入

Function FcnWwrite(nport,purpose,source,name,address,Count:longint;Sendstr:Pchar):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值3(代表V)、取值7(代表AQ);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  寫入字個(gè)數(shù),這里1字應(yīng)寫入4位16進(jìn)制字符串;

Sendstr: 給字節(jié)寫入的值,該值為4個(gè)一組的16進(jìn)制字符串組其取值為0000~FFFF(整數(shù)值為0~65535);

返回值: 長整數(shù),操作成功返回1,不能寫入或操作錯(cuò)誤返回0;

當(dāng)要寫入多個(gè)字節(jié)值時(shí)依次排列即可。如給VW2與VW4寫值100和1000,先將100轉(zhuǎn)成16進(jìn)制字符串0064、1000轉(zhuǎn)成16進(jìn)制字符串03E8,

則sendstr=006403E8;一次最多寫64個(gè)字即字符串長應(yīng)小于等于256;

                            ---------- ----  ~  ---------
寫字符串序列如:            | 0064 | 03E8 | 0010 | 6004 |  ~    | 0008 | 0400 |
                            ---------- ----  ~  ---------
使用舉例:


FcnWwrite(1,0,2,3,2,2,"006403E8")由COM1 0號站(計(jì)算機(jī)) 寫入PPI 2號站 數(shù)據(jù)VW2=0064(10進(jìn)制100)、VW4=03E8(10進(jìn)制1000),

操作成功返回1;

注:沒有注冊用戶不能寫AQ區(qū)字值,可尋址范圍VW0;

3)、雙字元件數(shù)據(jù)寫入

Function FcnDWwrite(nport,purpose,source,name,address,Count:longint;Sendstr:Pchar):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值3(代表V);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Count:  寫入雙字個(gè)數(shù),這里1雙字應(yīng)寫入8位16進(jìn)制字符串;

Sendstr: 給字節(jié)寫入的值,該值為8個(gè)一組的16進(jìn)制字符串組其取值為00000000~FFFFFFFF(整數(shù)值為0~4294967295);

返回值: 長整數(shù),操作成功返回1,不能寫入或操作錯(cuò)誤返回0;

當(dāng)要寫入多個(gè)字節(jié)值時(shí)依次排列即可。如給VD0與VD4寫值10000和8000,先將10000轉(zhuǎn)成16進(jìn)制字符串00002710、8000轉(zhuǎn)成16進(jìn)制字符串

為00001F40,則sendstr=0000271000001F40;一次最多寫32個(gè)雙字即字符串長應(yīng)小于等于256;

                            ---------- -  ~  ------------
寫字符串序列如:            | 00000064 | 00002710 |  ~  | 10000008 | 04008010 |
                            ---------- -  ~  ------------

使用舉例:


FcnDWwrite(1,0,2,3,0,2,"0000271000001F40")由COM1 0號站(計(jì)算機(jī)) 寫入PPI 2號站 數(shù)據(jù)VD0=00002710(10進(jìn)制10000)、

VD4=00001F40(10進(jìn)制8000),操作成功返回1;

注:沒有注冊用戶可尋址范圍VD0;

4)、位元件的置位

Function FcnSet(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值2(代表M)、取值3(代表V)、取值4(代表S);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    置位的字節(jié)元件的位地址如S1.0指S1字節(jié)元件的第0位;

返回值: 長整數(shù),操作成功返回1,不能置位或操作錯(cuò)誤返回0;

使用舉例:

FcnSet(1,0,2,2,2,6),由COM1 0號站(計(jì)算機(jī)) 置位PPI 2號站 M2.6,如返回值為1,則表示置位成功;

注:沒有注冊用戶可尋址范圍M0.0~M0.7、V0.0~V0.7、S0.0~S0.7;

5)、位元件的復(fù)位

Function FcnReset(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值2(代表M)、取值3(代表V)、取值4(代表S);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    復(fù)位的字節(jié)元件的位地址如M1.0指M1字節(jié)元件的第0位;

返回值: 長整數(shù),操作成功返回1,不能復(fù)位或操作錯(cuò)誤返回0;

使用舉例:

FcnReset(1,0,2,3,2,6),由COM1 0號站(計(jì)算機(jī)) 復(fù)位PPI 2號站 V2.6,如返回值為1,則表示復(fù)位成功;

注:沒有注冊用戶可尋址范圍M0.0~M0.7、V0.0~V0.7、S0.0~S0.7;


5、I/Q元件的強(qiáng)制功能 (未注冊用戶不可使用)

注:關(guān)于強(qiáng)制功能,如果你再操作時(shí)給一個(gè)元件強(qiáng)制了值,PLC程序的正常功能將不能改變被強(qiáng)值元件的狀態(tài),所以在不需要對

某個(gè)元件進(jìn)行強(qiáng)制時(shí)請使用取消強(qiáng)制函數(shù),來取消對該位的強(qiáng)制狀態(tài),但取消強(qiáng)制狀態(tài)并不改變元件的通段狀態(tài)。


1)、位元件的強(qiáng)制置位

Function FcnEset(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    置位的字節(jié)元件的位地址如I1.0指I1字節(jié)元件的第0位;

返回值: 長整數(shù),操作成功返回1,不能置位或操作錯(cuò)誤返回0;

使用舉例:

FcnEset(1,0,2,0,0,6),由COM1 0號站(計(jì)算機(jī)) 置位PPI 2號站 I0.6,如返回值為1,則表示置位成功;

注:沒有注冊用戶不可以使用;

2)、位元件的強(qiáng)制復(fù)位

Function FcnEreset(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    復(fù)位的字節(jié)元件的位地址如Q1.0指Q1字節(jié)元件的第0位;

返回值: 長整數(shù),操作成功返回1,不能復(fù)位或操作錯(cuò)誤返回0;

使用舉例:

FcnEreset(1,0,2,1,2,6),由COM1 0號站(計(jì)算機(jī)) 復(fù)位PPI 2號站 Q2.6,如返回值為1,則表示復(fù)位成功;

注:沒有注冊用戶不可以使用;



3)、位元件取消強(qiáng)制

Function FcnECancel(nport,purpose,source,name,address,Bit:longint):longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

name:    取值0(代表I)、取值1(代表Q);

address: 元件地址,取值為請參照 2.2 S7-200PLC CPU內(nèi)存地址范圍;

Bit:    取消強(qiáng)制的字節(jié)元件的位地址如Q1.0指Q1字節(jié)元件的第0位;

返回值: 長整數(shù),操作成功返回1,不能復(fù)位或操作錯(cuò)誤返回0;

使用舉例:

FcnECancel(1,0,2,1,2,6),由COM1 0號站(計(jì)算機(jī)) 取消PPI 2號站 Q2.6的強(qiáng)制轉(zhuǎn)狀態(tài),如返回值為1,則表示取消強(qiáng)制成功;

注:沒有注冊用戶不可以使用;

6、PLC運(yùn)行函數(shù)(該函數(shù)可在Run、Stop功能選項(xiàng)開關(guān)打在Run上且PLC處于停止模式時(shí)可將PLC轉(zhuǎn)換到運(yùn)行模式)

Function FcnRun(nport,purpose,source:longint):Longint;stdcall;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

返回值: 長整數(shù),操作成功返回1,不能復(fù)位或操作錯(cuò)誤返回0;

使用舉例:

FcnRun(1,0,2),由COM1 0號站(計(jì)算機(jī)) 使PPI 2號進(jìn)入運(yùn)行模式,如返回值為1,則表示運(yùn)行成功;

注:沒有注冊用戶不可以使用;

7、PLC停止函數(shù)(該函數(shù)可在Run、Stop功能選項(xiàng)開關(guān)打在Run上且PLC處于運(yùn)行模式時(shí)可將PLC轉(zhuǎn)換到停止模式)

Function FcnStop(nport,purpose,source:longint):Longint;stdcall;

參數(shù):

nport:  串口號,取值為1~8,代表COM1~COM8;

purpose:目標(biāo)地址,取值0~126;

source: 源地址,取值0~126;(這里是PLC的相應(yīng)端口的PPI站地址,PLC的地址實(shí)際是從2開始的)

返回值: 長整數(shù),操作成功返回1,不能復(fù)位或操作錯(cuò)誤返回0;

使用舉例:

FcnStop(1,0,2),由COM1 0號站(計(jì)算機(jī)) 使PPI 2號進(jìn)入停止模式,如返回值為1,則表示停止成功;

注:沒有注冊用戶不可以使用;


四、DLL附加函數(shù)說明 (本段函數(shù)對未注冊用戶沒有限制,完全可以使用。)

1、串口打開狀態(tài)的讀取

Function ComTrue(nport:longint):longint;stdcall;

參數(shù):

noprt: 串口號,取值為1~8,代表COM1~COM8;

返回值:長整型,串口成功打開返回“1”,否則返回“0”;

2、整數(shù)轉(zhuǎn)換成16進(jìn)制字符串 (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function CIntToHex(Dcint,Digits:Longint):Pchar;stdcall;

參數(shù):

Cint: 待轉(zhuǎn)換整數(shù),取值為(0~65535);

Digits: 轉(zhuǎn)換的字符串位數(shù),指定位數(shù)小于實(shí)際位數(shù)時(shí)按實(shí)際輸出;

在參數(shù)錯(cuò)誤等非法的情況下返回“Error@”

使用舉例:

CIntToHex(200,2),則返回字符串“C8@”;
CIntToHex(200,4),則返回字符串“00C8@”;
CIntToHex(200,8),則返回字符串“000000C8@”;
CIntToHex(4500,4),則返回字符串“1194@”;
CIntToHex(4500,3),則返回字符串“1194@”,因?yàn)椤?94”不足以表示4500這個(gè)數(shù)所以按實(shí)際輸出字符串“1194@”;

"@"為字符串?dāng)?shù)據(jù)的終止符。

3、16進(jìn)制字符串轉(zhuǎn)換成整數(shù) (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function CHexToInt(CHex:Pchar):Longint;stdcall;

參數(shù):

CHex: 待轉(zhuǎn)換字符串,取值為(0000~FFFF);

使用舉例:

CHexToInt("03E8"),則返回整數(shù)1000;

注:在參數(shù)不正確等出錯(cuò)情況下返回值為“-1”。

4、抽取(0~65535)所示整數(shù)中(0~15)某個(gè)位的值

Function CinBin(CHex,Start:longint):longint;stdcall;

參數(shù):

CHex: 待轉(zhuǎn)換整數(shù),取值為0~65535(0000~FFFF);

Start: 抽取的位,取值為(0~15);

使用舉例:

CinBin(15,3),則返回值1;
CinBin(15,4),則返回值0;
CinBin(1000,6),則返回值1;

讀取MB0組合成的字節(jié)值為“FC”(252)時(shí),要讀取M0.1的值時(shí),則調(diào)用CinBin(252,1)返回值0表示M0.1的值為0。

注:在參數(shù)不正確等出錯(cuò)情況下返回值為“-1”。

5、返回字符串Text左邊的Count個(gè)字符  (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function CLeftStr(Text:Pchar;Count:longint):Pchar;stdcall;

參數(shù):

Text: 字符串原型;

Count: 指定返回左側(cè)字符串個(gè)數(shù);

在參數(shù)錯(cuò)誤等非法的情況下返回“Error@”

使用舉例:

CleftStr("123456", 3) = "123@";

"@"為字符串?dāng)?shù)據(jù)的終止符。

6、返回字符串Text右邊的Count個(gè)字符  (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function CRightStr(Text:Pchar;Count:longint):Pchar;stdcall;

參數(shù):

Text: 字符串原型;

Count: 指定返回右側(cè)字符串個(gè)數(shù)

在參數(shù)錯(cuò)誤等非法的情況下返回“Error@”

使用舉例:

CRightStr("123456", 3) = "456@";

"@"為字符串?dāng)?shù)據(jù)的終止符。

7、返回字符串Text從Start開始的Count個(gè)字符 (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function CMidStr(Text:Pchar;Start,Count:longint):Pchar;stdcall;

參數(shù):

Text: 字符串原型;

Start: 指定返回字符串的起始位置;

Count: 指定返回字符串個(gè)數(shù);

在參數(shù)錯(cuò)誤等非法的情況下返回“Error@”

使用舉例:

CMidStr("123456",2,3) = "234@";

"@"為字符串?dāng)?shù)據(jù)的終止符。

8、字符串Cstr開始于字符串Ostr的位置 (為VC等非RAD開發(fā)環(huán)境所增設(shè))

Function Cinstr(Ostr,Ckstr:Pchar;Dcint:Longint):Longint;stdcall;

參數(shù):

Ostr:  字符串原型;

Cstr:  查詢的字符串;

Dcint: 設(shè)定查詢字符串的起始位置,取值>=1,即最少從源字符串的第一個(gè)字符開始查詢;

返回值:長整型;

使用舉例:

CinStr("1Tfdg23456","2",2) = 6

注:在參數(shù)不正確等出錯(cuò)情況下返回值為“0”。

9、PC喇叭的報(bào)警過程函數(shù);

Function MyBeep(SoundHz:longint):longint;stdcall;

參數(shù):SoundHz:長整型;

返回值:長整型,操作成功返回“1”,否則返回“0”。

使用舉例:

MyBeep(2000); 按2000的頻率發(fā)出報(bào)警聲。

DLL中關(guān)于傳出字符串值的函數(shù)都以"@"為字符串函數(shù)值終止符,這是對多開發(fā)環(huán)境應(yīng)用時(shí)方便用戶正確讀取返回字符串?dāng)?shù)據(jù)而設(shè)。

五、詳細(xì)的DLL使用請參DEMO程序或DLL手冊(DLL手冊提供VB、VC、Delphi的調(diào)用說明),相關(guān)DEMO程序和說明所使用的開發(fā)環(huán)境

VB指的是VB6.0,Delphi指的是Delphi6.0/Delphi7.0,VC指的是VC6.0。如果使用了高版本開發(fā)環(huán)境請根據(jù)開發(fā)軟件更新后所兼容的聲明方式進(jìn)行聲明調(diào)用。

作者:  wjun7610
QQ:    157610979
淘寶店:http://shop34821629.taobao.com
mfknuyygyy
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看mfknuyygyy的 主題 / 回貼
1樓  發(fā)表于: 2008-05-07 12:00
先謝了!
谷向榮
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 117 個(gè)
工控威望: 239 點(diǎn)
下載積分: 679 分
在線時(shí)間: 55(小時(shí))
注冊時(shí)間: 2007-04-26
最后登錄: 2024-12-12
查看谷向榮的 主題 / 回貼
2樓  發(fā)表于: 2008-05-23 10:36
HENHAO
sp1985513
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看sp1985513的 主題 / 回貼
3樓  發(fā)表于: 2008-05-26 20:40
謝啦!你把程序發(fā)給我嗎?sp1985513429@126.com
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個(gè)
工控威望: 249 點(diǎn)
下載積分: 708 分
在線時(shí)間: 35(小時(shí))
注冊時(shí)間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
4樓  發(fā)表于: 2008-07-02 14:53
不好意思最近太忙沒上論壇,如果各位發(fā)貼沒能回復(fù),可以用過QQ和我聯(lián)系或Email:wjun7610@yahoo.com.cn
lcbll
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看lcbll的 主題 / 回貼
5樓  發(fā)表于: 2008-07-29 16:31
    
johnsonxjq
必攻不守
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 149 個(gè)
工控威望: 333 點(diǎn)
下載積分: 470 分
在線時(shí)間: 70(小時(shí))
注冊時(shí)間: 2007-08-31
最后登錄: 2025-01-24
查看johnsonxjq的 主題 / 回貼
6樓  發(fā)表于: 2008-08-02 13:41
你好,感謝大俠的無私奉獻(xiàn),可以提供VB源碼例程讓我研究一下嗎?
我的郵箱是:    johnsonxjq@163.com   多謝!
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個(gè)
工控威望: 249 點(diǎn)
下載積分: 708 分
在線時(shí)間: 35(小時(shí))
注冊時(shí)間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
7樓  發(fā)表于: 2008-08-02 21:35
johnsonxjq郵件已發(fā)
hwhenry
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看hwhenry的 主題 / 回貼
8樓  發(fā)表于: 2008-08-08 14:32
  
dlzhoubo
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看dlzhoubo的 主題 / 回貼
9樓  發(fā)表于: 2008-08-11 21:50
a___yue
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個(gè)
工控威望: * 點(diǎn)
下載積分: * 分
在線時(shí)間: (小時(shí))
注冊時(shí)間: *
最后登錄: *
查看a___yue的 主題 / 回貼
10樓  發(fā)表于: 2008-11-25 13:08
我上了您的淘寶店,這個(gè)dll文件是要購買?
youngsoon
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 29 個(gè)
工控威望: 189 點(diǎn)
下載積分: 2397 分
在線時(shí)間: 64(小時(shí))
注冊時(shí)間: 2008-12-16
最后登錄: 2024-08-13
查看youngsoon的 主題 / 回貼
11樓  發(fā)表于: 2010-04-10 08:55
很好,能發(fā)程序給我嗎?602265225@QQ.COM

主站蜘蛛池模板: 狠狠色噜噜狠狠狠8888米奇_欧美久操_99热亚洲色精品国产88_精品免费久久久久久久_a视频在线观看免费_国语毛片_久草热在线视频_少妇视频一区 | 草逼逼视频_91欧美一区二区三区综合在线_美女床上运动_日韩一区二区三区高清_老中医吮她的花蒂和奶水视频播放_视频一区二区三区在线播放_99国产精品国产精品九九_一区二区精 | 黄瓜av_九九热在线视频观看_久久国产精品久久喷水_在线视频免费观看大全_草草影院永久在线观看_久久一区_中文字幕在线免费看线人_bestialityvideo另类灌满 | 性迷宫法国_九色porny丨首页在线_中文字幕观看_俺来也官网欧美久久精品_www久久精品_欧美激情爱爱_成人免费一区二区_99精品国产福久久久久久 | 亚洲中文无码成人片在线观看_在线第一页_啊片网站在线观看_香蕉久久影院精品欧美日韩_国产精品中文字幕在线播放_日韩免费在线视频_国产资源久久_成人a片产无码免费视频在线观看 | 久久久精品一区_人人爽天天碰天天躁夜夜躁_亚洲精品网页_97一期涩涩97片久久久久久久_www亚洲一区_久久久精品无码中文字幕_爱草草视频_国产伦国产伦老熟300部 | 国产亚洲精品hd网站_国产精品久久久久久久久久久久久_国产精品一亚洲AV日韩AV欧_久久精品亚洲综合_双乳奶水饱满少妇呻吟免费看_久久99深爱久久99精品_yellow高清在线观看免费观看视频_国产福利精品一区二区 | 麻豆影视网_国产成人综合色视频精品_亚洲国产精品久久久久久久久久_岛国毛片在线观看_无码色偷偷亚洲国内自拍_欧美日韩一区二区三区久久精品_91精品麻豆日日躁夜夜躁_法国性xxxx精品hd | 在线亚洲日产一区二区_最新av在线资源网无码_国产成AV人片久青草影院_免费观看高清a级毛片视频_中文字幕乱码人在线视频1区_黄色日韩视频_国产日韩久久久_久久国产精品高清 | 爱操成人_超碰97公开_国产AV天堂亚洲国产AV麻豆_亚洲综合小视频_a级黄色免费网站_a级毛片免费观看完整_在野外被三个男人躁爽白浆视频_军歌嘹亮在线观看 | 蜜臀网站_男女无遮挡在线观看_欧美一二三四成人免费视频_成年人网站黄_亚洲国产视频一区_白色欧美精品在线播放_亚洲级αV无码毛片久久精品_亚洲精品黄色片 | 日日撸夜夜撸_国产福利一区二区免费视频_在线播放真实国产乱子伦_884aa四虎影成人精品_91手机免费视频_亚洲另类伦春色综合图片_日韩欧美一区二区东京热_久久香蕉国产线看观看99 | 一区二区三区成人在线视频_欧美日韩久久一区_a在线免费观看视频_五月天黄色av_久久久精品国产免大香伊_99精品久久久久久久婷婷_一级特黄录像免费播放中文_久久99精品久久久久久动态图 | 久草高清_中文字幕无码中文字幕有码在线_日韩成年视频_91成人在线免费观看_日本爽爽爽爽爽爽在线观看免_特大黑人娇小亚洲女_91亚洲国产成人_精品少妇亚洲乱码 | 日本高清黄_亚洲制服丝袜中文字幕自拍_人与动人物xxxx毛片在线播放_麻豆精品91_99re这里只有精品6_亚洲欧美日本综合_亚洲Aⅴ在线无码播放毛片一线天_午夜无码一区二区三区在线观看 | 国产97成人亚洲综合在线观看_欧美熟妇与小伙性欧美交_日韩AV无码AV免费AV不卡_最近高清中文在线国语字幕_亚洲精品久久久久午夜福禁果Tⅴ_97色综合网_午夜免费学生在线观看av_女人久久久久 | www.com草逼_视频在线观看亚洲_麻豆传媒影院_久草这里只有精品_九九99靖品_亚洲1区1区3区4区产品乱码芒果_狠狠色狠狠色综合日日小蛇_亚洲欧美中文日韩在线v日本 | 日本xxxx小便xxxx偷拍_软萌小仙自慰喷白浆_免费在线观看黄片毛片a_青草一区_久久久久久久久久久一区二区_欧美日本午夜一区二区_国产黄a三级三级三级av在线看_www夜夜操com | 一级毛片不卡直接观看_欧美美女一区_av高清一区二区三区_国产精品美女久久久久久久_日韩中文无_国产一区二区视_国产在线永久视频_欧美日本黄 | 91激情网站_精品亚洲视频在线_国产精品天天看特色大片_九一成人免费版_日本三区视频_妺妺窝人体色www在线观看_亚洲伦理在线观看_国产一级二级三级毛片 | 亚洲精品国产偷五月天丁香_国产一区二区三区av精品_人人看91视频_亚洲AV成人无码一区二区三区在线观看_春色影视_丝袜美腿亚洲一区_午夜91_亚洲大尺度AV无码专区中文 | 福利一区在线视频_欧洲一级黄色片_国产高清精品综合在线网址_国产精品视频毛片_日本丰满老妇bbb_在线视频国产一区二区_亚洲不卡一_中文字幕日韩精品亚洲七区 | 精品97国产免费人成视频_99热亚洲_yellow免费观看网站_91精品在线免费_女18毛片_av私人影院_国产亚洲欧美日韩在线一区二区三区_99国产精品久久99久久久 | 欧美多毛肥胖老妇做爰_caoporn国产精品免费公开_蜜臀亚洲av永久无码精品老司机_男人狂桶女人高潮嗷嗷叫_精品在线视频免费在线观看视频_亚州福利视频_国产精品视频网_一区二区狠狠色丁香久久婷婷 | 最新免费av在线观看_天天躁躁水汪汪人碰人_说英雄谁是英雄免费观看影视大全_丰满少妇被粗大的猛烈进出视频_亚洲综合久久精品_婷婷亚洲影院_www999久久_成人在线观看日韩 | 久青草视频在线播放_男男短篇高h肉辣合集_北条麻妃中文精品国产_国产成人黄色片_中文字幕中文字幕在线中心一区_97插插_中文字幕综合在线观看_亚洲chinese男同志gay在线 | 91综合视频在线观看_免费人妻av无码专区_jlzzjlzz国产精品久久_狠狠躁夜夜躁人人爽天天古典_黑人与中国女一级毛片不卡_少妇的肉体aa片在线观看_亚洲国产精品一区在线观看_就要干就要操就要日 | 91久久综合_dvd无码av高清毛片在线看_国产少妇国语对白污_国产午夜亚洲精品理论片色戒_国产精品欧美久久久久一区二区_艳母在线1-6_av在线播放观看_成年轻人网站色直接看 | 日韩二区在线播放_99久久免费精品高清特色大片_久久欧美精品_麻豆一区二区在线_欧美综合久久_久久综合亚洲色1080P_日韩字幕在线_国产a级一级 18禁男女无遮挡啪啪网站_黄色a级免费观看_奇米成人av国产一区二区三区_插插综合视频_国产成人麻豆亚洲综合无码精品_国产免费一区二区三区四在线播放_免费播放黄色_午夜在线视频播放 | 日本不卡视频在线观看_国产精品97_亚洲国产精品黑人久久久_久久精品亚洲欧美日韩久久_亚洲AV无码一区二区三区乱子伦_欧美精品少妇VIDEOFREE720_久草日本_亚a洲v中文字幕2023 | 亚洲性色av日韩在线观看_国产成人精品无码片区在线观看_国产精品操女人_av官网在线播放_国产内射露脸在线观看_久久2018_日韩97_国产精品毛片久久久久久久av | 偷拍各种美女wc嘘嘘视频_亚洲精品乱码久久久久久按摩_成人免费xyz网站_朝桐光a∨一区二区三区_国内精品卡1卡2卡区别_欧美国产一级_亚洲AV综合A∨一区二区_自拍超碰 | 夜夜躁狠狠躁日日躁_中文字幕久无码免费久久_欧美日韩免费看_国产va在线_欧美影片两对夫妇交换_亚洲热视频_午夜成人影片_免费观看黄色 | 色视频网站免费_国产逼视频_双性清冷美人被老肥丑攻c哭_黄色片xxxxx_中国人与黑人牲交FREE欧美_高清视频在线_91精品国产视频_精品国产aⅴ | 成人在线高清不卡免费视频_日韩av中文字幕在线播放_青青国产91毛片成人片在线_成年女人免费观看这视频_九一在线免费看_体内精69xxxxxx视频_日本按摩伦理片_成人午夜 | 丰满少妇大力进入_熟妇好紧好大快点舒服使劲xh_亚洲一区免费视频_成品人国产一区二区三区精品_亚洲欧美精品在线观看_原神xman图_久久久受www免费人成_久久香蕉影院 | 国产精品色片_看一级片_在线超碰av_日日干夜夜操_日韩国产91_粉嫩虎白女在线观看中国女_久久综合色播_免费av影片 | 中文人字幕第三页_无码纯肉视频在线观看_99re国产在线播放_日本欧美高清全视频_日韩七区_亚洲第一最快AV网站_中日韩欧美风情视频_欧美成人一区二 | 羞羞影院午夜男女爽爽影视_对准肉茎坐下裙子遮住小说_久久爱992xxoo_人人97_亚洲福利视频一区二区三区_他添的我好湿好爽视频_日本免费一级淫片a级中文字幕_欧洲一级黄色毛片 | 日韩成人在线网_精品国产自线午夜福利_午夜免费啪在线观看视频_开心成人激情_ab免费在线观看_美女黄网站18禁免费看胸罩_午夜成年人_大地资源网中文在线观看免费版高清 | a日韩在线_狠狠做五月爱婷婷综合_四虎影视在线_日日骚一区二区_日本亚洲免费_中出亚洲_2024理论片_精品国产午夜福利在线观看蜜月 |