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

wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
樓主  發(fā)表于: 2013-04-13 12:43
S7200_PPI動態(tài)庫DLL+實例.rar (490 K) 下载次数:1920    S7200_PPI.dll V3.2 通信協(xié)議串口通訊動態(tài)鏈接庫DLL(以下簡稱DLL),是為滿足工業(yè)通信需要,

針對工業(yè)領域要求上位機對西門子S7-200系列PLC通訊實時采集與控制的組態(tài)編程而設計。

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

1)、遵循西門子PLC的PPI通訊協(xié)議;

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

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

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

5)、函數(shù)接口功能全,操作簡單,支持PPI通訊協(xié)議的絕大部分地址的讀寫功能函數(shù);

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

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

8)、易于快速開發(fā)(VC等非RAD開發(fā)環(huán)境的開發(fā));

9)、更新原有函數(shù)調(diào)用方式采用數(shù)組調(diào)用數(shù)據(jù)發(fā)生與接收,初學者快速入門;

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

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

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

S7200_PPI.dll V3.2 串口通訊鏈接庫,實現(xiàn)了對S7-200系列PLC的I、Q、M、V、S、、SM、C、T區(qū)軟元件的讀寫功能

wangjun于2008年在原有S7200_PPI.dll V2.0版基礎上的更新版,重寫了函數(shù)結(jié)構(gòu),采用數(shù)據(jù)接收和發(fā)送緩沖區(qū)

(數(shù)組)方式傳遞,讀出和寫入單元數(shù)據(jù)使用更方便。對于16位整數(shù)和32位整數(shù)讀取寫入均按有符號整數(shù)處理,

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

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

S7200_PPI.dll V3.2 分為完美版和單機版兩個版本。

注意:實例在使用時不能超出試用版的地址限制,否則無法正確通訊。

龍帥工作室為您提供專業(yè)串口通訊控件,也可為您訂制

專用通訊協(xié)議串口控件。目前龍帥系列串口通訊協(xié)議

控件包括modbus_rtu、modbus_tcp、三菱FX PLC編程口、

歐姆龍HostLink、西門子PPI等多個系列產(chǎn)品。

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

電  話:13912935690

騰訊QQ:157610979

阿里旺旺: wj_longshuai

郵  箱:157610979@QQ.com        

        wjun7610@yahoo.com.cn

        chinawanglong@163.com
[ 此帖被wjun7610在2013-04-13 15:03重新編輯 ]
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
1樓  發(fā)表于: 2013-04-13 12:47
DLL串口操作函數(shù)包括:

  1)、S7200ComOpen打開串口;

  2)、S7200ComClose關閉串口;
      
  3)、S7200SetDelay串口通訊延時設定;
                    
  4)、S7200ComTrue判斷串口是否打開成功;
            
  5)、S7200ComWork判斷串口是否正在工作中;

S7200 PPI協(xié)議功能函數(shù):

  1)、S7200BitRead    位讀取函數(shù)

  2)、S7200ByteRead   字節(jié)讀取函數(shù)

  3)、S7200WordRead   字讀取函數(shù)

  4)、S7200DwordRead  雙字讀取函數(shù)

  5)、S7200FloatRead  浮點讀取函數(shù)

  6)、S7200BitWrite   位賦值函數(shù)

  7)、S7200ByteWrite  字節(jié)賦值函數(shù)

  8)、S7200WordWrite  字賦值函數(shù)

  9)、S7200DwordWrite 雙字賦值函數(shù)

10)、S7200FloatWrite 浮點賦值函數(shù)

11)、S7200BitEWrite  元件強制賦值函數(shù)

12)、S7200EbitCancel 取消位元件強制值函數(shù)

13)、S7200PlcRun     置PLC為運行模式

14)、S7200PlcStop    置PLC為停止模式

S7200 PPI協(xié)議DLL緩沖區(qū)傳遞功能函數(shù)包括:

  1)、S7200ClearBuf         清除復位DLL緩存區(qū)

  2)、S7200ByteReadBuf      字節(jié)讀取函數(shù)  

  3)、S7200WordReadBuf      字讀取函數(shù)

  4)、S7200DwordReadBuf     雙字讀取函數(shù)  

  5)、S7200IntDllBufRead    讀DLL整數(shù)緩存區(qū)值;
  
  6)、S7200FloatReadBuf     浮點讀取函數(shù)

  7)、S7200FloatDllBufRead  讀DLL浮點緩存區(qū)值;

  8)、S7200WriteIntDllBuf   寫DLL整數(shù)緩存區(qū)值;

  9)、S7200ByteWriteBuf     字節(jié)賦值函數(shù)  

10)、S7200WordWriteBuf     字賦值函數(shù)  

11)、S7200DwordWriteBuf    雙字賦值函數(shù)

12)、S7200WriteFloatDllBuf 寫DLL浮點緩存區(qū)值;  

13)、S7200FloatWriteBuf    浮點賦值函數(shù)

   這里,僅對PB開發(fā)環(huán)境使用DLL緩存區(qū)數(shù)據(jù)傳遞進行調(diào)用給出了

申明方式和調(diào)用舉例,其他非VC、VB、Delphi等語言需要使用DLL

緩沖區(qū)進行數(shù)據(jù)傳遞時,調(diào)用DLL聲明請參考本語言對Windows標準

DLL的規(guī)則和函數(shù)原型進行調(diào)用。

能夠正確傳遞數(shù)組的開發(fā)環(huán)境如VB、VC、delphi不推薦使用該部分

擴展功能函數(shù)。

當需要進行8位整數(shù)、16位整數(shù)、32位整數(shù)、32位浮點數(shù)值進行混合讀寫時,所需拓展函數(shù)包括:

  1)、DecBitBin        字整數(shù)的位抽。

  2)、Int16ToInt_8h     字到字節(jié)轉(zhuǎn)換高位字節(jié);  

  3)、Int16ToInt_8l     字到字節(jié)轉(zhuǎn)換低位字節(jié);

  4)、Int8ToInt16       字節(jié)到字的轉(zhuǎn)換;

  5)、Int32ToInt_16h    雙字到字轉(zhuǎn)換高位字;  

  6)、Int32ToInt_16l    雙字到字轉(zhuǎn)換低位字;

  7)、Int16ToInt32      字到雙字的轉(zhuǎn)換;

  8)、Float32ToInt_16h  浮點到字轉(zhuǎn)換高位字;

  9)、Float32ToInt_16l  浮點到字轉(zhuǎn)換低位字;

  10)、Int16ToFloat32   字到浮點的轉(zhuǎn)換;  

  11)、介紹如何實現(xiàn)數(shù)據(jù)的混合讀取和寫入;
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
2樓  發(fā)表于: 2013-04-13 12:47
在VC中使用DLL一般都是采用動態(tài)聲明的方式,函數(shù)說明中給出的是Delphi的函數(shù)原型,

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

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

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

HINSTANCE hinstDLL;

用來標識導入的動態(tài)鏈接庫。

1)、按下例說明聲明相關各個函數(shù):(在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 value);
typedef int (_stdcall *pComTrue)(int nport);
typedef int (_stdcall *pComWork)(int nport);

typedef int (_stdcall *pReadBit)(int nport, int node, char* element, int address, int Bit);
typedef int (_stdcall *pReadByte)(int nport, int node, char* element, int address, int Count, int* RxdBuffer);
typedef int (_stdcall *pReadInt)(int nport, int node, char* element, int address, int Count, int* RxdBuffer);
typedef int (_stdcall *pReadDInt)(int nport, int node, char* element, int address, int Count, int* RxdBuffer);
typedef int (_stdcall *pReadFloat)(int nport, int node, char* element, int address, int Count, float* RxdBuffer);

typedef int (_stdcall *pBitWrite)(int nport, int node, char* element, int address, int Bit, int value);
typedef int (_stdcall *pBitEWrite)(int nport, int node, char* element, int address, int Bit, int value);
typedef int (_stdcall *pEbitCancel)(int nport, int node, char* element, int address, int Bit);

typedef int (_stdcall *pWriteByte)(int nport, int node, char* element, int address, int Count, int* TxdBuffer);
typedef int (_stdcall *pWriteInt)(int nport, int node, char* element, int address, int Count, int* TxdBuffer);
typedef int (_stdcall *pWriteDInt)(int nport, int node, char* element, int address, int Count, int* TxdBuffer);
typedef int (_stdcall *pWriteFloat)(int nport, int node, char* element, int address, int Count, float* TxdBuffer);

typedef int (_stdcall *pPlcRun)(int nport, int node);
typedef int (_stdcall *pPlcStop)(int nport, int node);

typedef int (_stdcall *pBitBin)(int value, int Bitaddress);
typedef int (_stdcall *p16I_8h)(int value);
typedef int (_stdcall *p16I_8l)(int value);
typedef int (_stdcall *p8I_16I)(int valueH, int valueL);
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)、建立動態(tài)鏈接庫的新函數(shù)名:(在cpp文件的頭處聲明,上面的聲明之后)

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

pReadBit mReadBit;
pReadByte mReadByte;
pReadInt mReadInt;
pReadDInt mReadDInt;
pReadFloat mReadFloat;

pBitWrite mBitWrite;
pBitEWrite mBitEWrite;
pEbitCancel mEbitCancel;

pWriteByte mWriteByte;
pWriteInt mWriteInt;
pWriteDInt mWriteDInt;
pWriteFloat mWriteFloat;

pPlcRun mPlcRun;
pPlcStop mPlcStop;

pBitBin mBitBin;
p16I_8h m16I_8h;
p16I_8l m16I_8l;
p8I_16I m8I_16I;
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)、導入動態(tài)鏈接庫,如例所示:(在cpp文件的OnInitDialog過程建立):

hinstDLL = LoadLibrary("S7200_PPI.dll");

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

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

if (hinstDLL)
{
   mOpen = (pOpen)GetProcAddress (hinstDLL,"S7200ComOpen");
   mClose = (pClose)GetProcAddress (hinstDLL,"S7200ComClose");
   mSetDelay = (pSetDelay)GetProcAddress (hinstDLL,"S7200SetDelay");
   mComTrue = (pComTrue)GetProcAddress (hinstDLL,"S7200ComTrue");
   mComWork = (pComWork)GetProcAddress (hinstDLL,"S7200ComWork");

   mReadBit = (pReadBit)GetProcAddress (hinstDLL,"S7200BitRead");
   mReadByte = (pReadByte)GetProcAddress (hinstDLL,"S7200ByteRead");
   mReadInt = (pReadInt)GetProcAddress (hinstDLL,"S7200WordRead");
   mReadDInt = (pReadDInt)GetProcAddress (hinstDLL,"S7200DwordRead");
   mReadFloat = (pReadFloat)GetProcAddress (hinstDLL,"S7200FloatRead");

   mBitWrite = (pBitWrite)GetProcAddress (hinstDLL,"S7200BitWrite");
   mBitEWrite = (pBitEWrite)GetProcAddress (hinstDLL,"S7200BitEWrite");
   mEbitCancel = (pEbitCancel)GetProcAddress (hinstDLL,"S7200EbitCancel");
      
   mWriteByte = (pWriteByte)GetProcAddress (hinstDLL,"S7200ByteWrite");
   mWriteInt = (pWriteInt)GetProcAddress (hinstDLL,"S7200WordWrite");
   mWriteDInt = (pWriteDInt)GetProcAddress (hinstDLL,"S7200DwordWrite");
   mWriteFloat = (pWriteFloat)GetProcAddress (hinstDLL,"S7200FloatWrite");
  
   mPlcRun = (pPlcRun)GetProcAddress (hinstDLL,"S7200PlcRun");
   mPlcStop = (pPlcStop)GetProcAddress (hinstDLL,"S7200PlcStop");
      
   mBitBin = (pBitBin)GetProcAddress (hinstDLL,"DecBitBin");
   m16I_8h = (p16I_8h)GetProcAddress (hinstDLL,"Int16ToInt_8h");
   m16I_8l = (p16I_8l)GetProcAddress (hinstDLL,"Int16ToInt_8l");
   m8I_16I= (p8I_16I)GetProcAddress (hinstDLL,"Int8ToInt16");
   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("S7200_PPI.dll已成功載入!");
}
else
{
  AfxMessageBox("沒找到S7200_PPI.dll!");
  SendMessage(WM_CLOSE);
}

注:雙引號中為動態(tài)鏈接庫中的原有函數(shù)名。

函數(shù)中用到了char*型參數(shù),這里介紹下char*與Cstring的相互轉(zhuǎn)換的函數(shù):

(1)char*->CString

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

(2) CString -> char*

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


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

if(hinstDLL)
{
   int k = mComTrue(mnport);
   if (k==1)
   {
      mClose(mnport);
   }    
   FreeLibrary(hinstDLL);
}
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
3樓  發(fā)表于: 2013-04-13 12:47
西門子PPI通訊協(xié)議

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FC:(Function Code)功能碼

DSAP:(Destination Service Access Point)目的服務存取點

SSAP:(Source Service Access Point)源服務存取點

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

FCS:(Frame Check Sequence)校驗碼

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

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

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

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

3)、確認讀寫命令的數(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ù)命令實例

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ù)上述例子用串口精靈測試一下,當發(fā)送命令成功PLC返回E5,你再發(fā)送10 02 00 5C 5E 16,就可以完成一次讀寫命令。

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

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

被存。       內(nèi)存類型      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

                   SMB        0 ~179       0 ~299         0 ~ 549                  0 ~ 549

                   SB         0 ~ 31       0 ~ 31         0 ~ 31                   0 ~ 31

字                 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é)地址實際上是重疊的,下面做個說明如:

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é)、字與雙字尋址的關系,當然如果你想使用VW1(VB1 VB2)、VD3(VB3 VB4 VB5 VB6)等尋址方式也是可以的,

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

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

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

C、T區(qū)當前值讀取時的地址按實際地址0~255來。
huoshi
為所當為
級別: 網(wǎng)絡英雄

精華主題: 0
發(fā)帖數(shù)量: 2600 個
工控威望: 21442 點
下載積分: 17019 分
在線時間: 2776(小時)
注冊時間: 2010-12-27
最后登錄: 2025-06-06
查看huoshi的 主題 / 回貼
4樓  發(fā)表于: 2013-04-14 08:50
謝謝下了學習學習
kccjason
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 42 個
工控威望: 144 點
下載積分: 600 分
在線時間: 35(小時)
注冊時間: 2011-04-26
最后登錄: 2024-12-25
查看kccjason的 主題 / 回貼
5樓  發(fā)表于: 2013-04-25 23:10
取下謝謝
11yewang
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 121 點
下載積分: 523 分
在線時間: 1(小時)
注冊時間: 2013-01-28
最后登錄: 2015-01-30
查看11yewang的 主題 / 回貼
6樓  發(fā)表于: 2013-10-23 09:23
好東西啊
yahk1984
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 7 個
工控威望: 125 點
下載積分: 576 分
在線時間: 8(小時)
注冊時間: 2013-04-19
最后登錄: 2025-05-18
查看yahk1984的 主題 / 回貼
7樓  發(fā)表于: 2013-11-05 11:49
下不了

主站蜘蛛池模板: 欧美成人精品三级网站_国产区二区_91精品国产综合久久精品图片_91在线观看入口_日韩久久精品视频_九色网站在线观看_影音先锋久草在线_一起草逼 | 久久精品视频9_玖玖色在线视频_亚洲国产美女视频_国产乱码精品一区二区三区香蕉_国产一二_欧美中日韩在线_日日噜噜夜夜_国产精产品一品二品 | 中文字幕亚洲不卡_久精品视频在线_永久免费无码a片在线观看_精品国产福利一区二区三区_中国1级黄色片_久久激情影院_乱码久久_精品久久麻豆 | 久久免费偷拍视频_日日摸夜夜添夜夜添毛片av_国产精品4区_A级毛片免费无码观看、、_亚洲精品在线影院_免费a视频_午夜熟女毛片免费网站_午夜男女刺激爽爽影院 | 国产精品久久久久久久福利院_超碰成人在线观看_亚洲最大一级无码av网站_超碰96在线_欧美成人影院在线观看网站_国产怡红院_日本黄网站色大片免费观看_成全视频在线观看免费看 | 九色蝌蚪在线观看_中国精品自拍_日韩在线精品_国产精品人妻_国产成人无码区免费A∨视频网站_久久偷人_日本精品黄色_午夜操操 | 国产精品久久久久一区二区三区共_国产视频1_国产97在线播放_国产一区二区在线观_久久伊人网站_大地资源网第二页免费观看_久久女人被添全过程A片_国产做爰xxx18在线观看网站 | 国产69精品久久99不卡的观看体验_一区二区视频网_精久久久久久久_综合激情六月_操操操操操操操_麻豆播放器_久久99久久精品视频_亚洲中文字幕成人无码 | 日韩精品不卡一区二区_久久久久久久久久久免费_久久91亚洲精品久久91综合_免费高清国产_久久免费福利_日本一区二区三区免费_无码人妻丰满熟妇啪啪7774_亚洲一区二区三区香蕉 高清不卡免费视频_猛烈顶弄H禁欲老师H春潮视频_国产老肥熟精品大全_亚洲欧美成人a毛片_亚洲精品在_第一区免费在线观看_免费国产自久久久久三四区久久_亚洲男人的天堂网 | www日本xx_gay亚洲男男gv在线观看网站_99pao在线视频国产_国产精品亚洲网站_黄色一级大片在线免费看国产一_自慰系列无码专区_国产乱free国语对白_中文字幕综合 | www.99久久久_黄色片网此_欧美色图影院_99久久久无码国产精精品品不卡_成人高潮成人免费观看_99re6热在线精品视频观看_亚洲黄色一区二区_国产成人91 | 午夜禁片_久久久亚洲精品一区二区三区浴池_国产成人牲交在线观看视频_免费1级片_国产亚洲精品久久久久久豆腐_成熟丰满熟妇高潮XXXXXA片_久久精品久久久久久久_两个男人吮她的花蒂和奶水视频 | 久久亚洲中文字幕不卡一二区_日日操综合_一区二区精品区_欧美一级片在线免费观看_亚洲毛片不卡AV在线播放一区_谍战剧《惊弦》在线观看免费高清_亚州中文无码aⅤ在线_国产午夜福利精品集在线观看 | www.四虎在线_我才12因啪啪就破了处怎么办_中文字幕高清免费日韩视频在线_国产猛男GAYB0Y1069麻豆_最新日韩精品_永久免费的hs网站_国产亚洲妇女在线视频_日日激情 | 亚洲一区AV在线观看_欧美熟妇zozozo_热久久精品国产_日本丰满少妇XXXX_97超碰香蕉_国产日韩欧美视频在线观看_草草视频在线播放_欧美成人午夜免费全部完 | 中文字幕人妻日本无码_久久综合视频网_精品偷拍无码专区亚洲_亚洲aⅴ综合色区无码一区_亚洲视频一区在线播放_中文字幕自拍偷拍_性欧美videos高清精品_草久免费视频 | 国产在线伊人_亚洲一页_人妻丰满被色诱中文字幕_久久久亚洲欧洲日产国码αv_日韩丰满少妇无吗视频激情内射_亚洲午夜色情天天久久_黄色一级无码毛片高清视频_久久精品日产第一区二区三区使用方法 | 91色中文_日韩中文一区_无码人妻久久一区二区三区免费_日本中文在线视频_av手机在线免费播放_欧美激情国产日韩精品一区18_亚洲一级特黄视频_free性欧美69巨大 | 羞羞影院午夜男女爽爽影视_对准肉茎坐下裙子遮住小说_久久爱992xxoo_人人97_亚洲福利视频一区二区三区_他添的我好湿好爽视频_日本免费一级淫片a级中文字幕_欧洲一级黄色毛片 | 亚洲成AⅤ人影院在线欢看_亚洲国产成人精品无码区宅男?_97国产最新_在线视频97_无码精品国产VA在线观看DVD_青青视频网_一区二区日本视频_国产精品久久久一区 | 国产精品奇米一区二区三区小说_国产乱人伦av在线a_日日综合网_调味的房子在线观看_亚洲av狠狠爱一区二区三区_国产在线播放精品视频_人与禽的免费一级毛片_国产一级精品视频 | 无遮挡粉嫩小泬久久久久久久_www.超碰97_色插图午夜影院_深夜视频在线观看免费_国产日本在线观看_欧美xxxx69hd_免费a级黄毛片_国产精品综合AV一区二区 | 97色伦图片_美女被男人桶到爽免费网站_瑟瑟激情_国产欧亚州美日韩综合区_精品亚洲网站_亚洲youwu永久无码精品_欧美黑人又粗又大XXXX_91视频区 | 国产综合免费视频_在线色网址_国产一区二_久久久久亚洲国产_国产精品我不卡_中文字幕无线码免费人妻_伊人av超碰久久久麻豆_日日拍夜夜 | 中国av免费看_亚洲综合在线第一页_啊灬啊灬啊灬快灬深点吃奶_日本a大片_四川少妇BBB凸凸凸BBB按摩_亚洲第一视频网_久久婷婷色香五月综合激激情狠狠做五月_成人免费黄色视频 | www.成人_亚洲人成网77777亚洲色_色播国产_国产免费一区二区三区视频天天爽_8av国产精品爽爽ⅴa在线观看_亚洲无毛av_成人AV毛片无码免费网站_国产V一区二区三区在线 | 亚洲最大激情网_超碰97.com_国产在线视频综合_久久综合久久综合久久综合_被黑人猛躁10次高潮视频☆_永久免费AV在线影院_国产精品久久久久AV福利动漫_天天躁日日躁狠狠躁AV麻豆 | 一个人免费观看视频WWW中文_性xxxxbbbb欧美熟妇_有人有在线观看的片吗WWW_幻女bbwxxxx另类_国产精品久线在线观看_天天干干_91国自啪_色小妹av | 男女好痛好深好爽视频一区_亚洲国产精品无码AV久久久_国产色中色_日韩视频在线观看免费_加勒比色老久久综合网_成人18在线_成人美女在线_九九视频这里只有精品 | 一级裸体网站_成人激情视频在线播放_久亚洲一线产区二线产区三线区_国产999精品久久久_欧美中文在线视频_久久精品成人欧美大片_国产精品欧美在线_三级毛片儿 | 密室大逃脱第三季免费观看高清_久久国产亚洲中文字幕_欧美成人gv在线观看_国产一级淫片91aaa激情_一区国产传媒国产精品_日本一区二区三区在线免费_亚洲欧美国产日韩中文字幕_亚洲成av片人久久久 | 北条麻妃中文_eeuss影院www影院入口_亚洲视频在线观看一区_最新日韩视频在线观看_久久久久久久久久亚洲_天天操网址_久久成人无码影片_免费无码又爽又刺激高潮 | 日批日韩在线观看_国产va免费精品观看精品老师_久久久久激情_性开放网交友网站_欧美一级做_亚洲VA欧美va国产va综合_欧美视频一_超碰人人超 | 成人片黄网站色大片免费_精品久久久久久国产潘金莲_伊人av影院_日韩一卡2卡3卡4卡乱码免费网站_在线亚洲精品国产二区图片欧美_不卡一区2区_爱逼综合_九色精品视频 | 国产免费永久黄色国产_国产女人18毛片水真多_91.成人天堂一区_日本在线看片_欧美男同志网站_国产69精品久久久久9999_成人啪精品视频网站午夜_北条麻妃黄网 | 国产日产欧美a一级在线_久久成人视屏_强行挺进朋友漂亮人妻身体_午夜影音_91精品国产高清久久久久久久久_国产高清久久_亚洲精品无码久久久_国产成人免费看片 | 法国《性迷宫》在线观看_亚洲色欲天天天堂色欲网_av永久免费在线观看_JIZZ国产精品_国产精品视频三区_免费无码毛片一区二三区_风间由美久久久_黄色片av网站 | 高潮毛片无遮挡高清免费_黄色sp_成年人国产视频_www99视频_精品一区91_3344成人免费看A片_老司机亚洲_高清无码午夜福利视频 | 国产人与动牲交_老牛嫩草一区二区三区日本_性欧美日本_欧美成人在线免费视频_日本WWW一道久久久免费榴莲_丰满少妇A级毛片露出偷拍_国产无码一区二区精品_欧洲裸体兽交大黑妞 | 无码国产精成人午夜视频不卡_久久成人午夜视频_国产超碰人人爽人人做人人爱_成人av福利_高清久久久久久_亚洲成AV人在线观看天堂无码_久久先锋男人AV资源网站_91在线中文 | www.com草逼_视频在线观看亚洲_麻豆传媒影院_久草这里只有精品_九九99靖品_亚洲1区1区3区4区产品乱码芒果_狠狠色狠狠色综合日日小蛇_亚洲欧美中文日韩在线v日本 |