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

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

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

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

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

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

3)、實(shí)時性、可靠性好,通用性強(qiáng);

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

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

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

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

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

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

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

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

軟件版本更新及相關(guān)說明:

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

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

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

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

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

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

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

龍帥工作室為您提供專業(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 點(diǎn)
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
1樓  發(fā)表于: 2013-04-13 12:47
DLL串口操作函數(shù)包括:

  1)、S7200ComOpen打開串口;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13)、S7200PlcRun     置PLC為運(yùn)行模式

14)、S7200PlcStop    置PLC為停止模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

擴(kuò)展功能函數(shù)。

當(dāng)需要進(jìn)行8位整數(shù)、16位整數(shù)、32位整數(shù)、32位浮點(diǎn)數(shù)值進(jìn)行混合讀寫時,所需拓展函數(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  浮點(diǎn)到字轉(zhuǎn)換高位字;

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

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

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

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

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

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

HINSTANCE hinstDLL;

用來標(biāo)識導(dǎo)入的動態(tài)鏈接庫。

1)、按下例說明聲明相關(guān)各個函數(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)、導(dǎo)入動態(tài)鏈接庫,如例所示:(在cpp文件的OnInitDialog過程建立):

hinstDLL = LoadLibrary("S7200_PPI.dll");

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

如下:(在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)、當(dāng)不再需要使用DLL時記得關(guān)閉串口及釋放動態(tài)鏈接庫,(在OnDestroy事件中釋放)

if(hinstDLL)
{
   int k = mComTrue(mnport);
   if (k==1)
   {
      mClose(mnport);
   }    
   FreeLibrary(hinstDLL);
}
wjun7610
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 127 個
工控威望: 249 點(diǎn)
下載積分: 708 分
在線時間: 35(小時)
注冊時間: 2007-09-16
最后登錄: 2025-05-07
查看wjun7610的 主題 / 回貼
3樓  發(fā)表于: 2013-04-13 12:47
西門子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ī)通訊時,較多的使用自定義協(xié)議與上位機(jī)通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,

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

為自由通訊口時,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ù)時,利用第三個串口偵聽PLC的通訊數(shù)據(jù),或者利用軟件方法,截取已經(jīng)打開

且正在通訊的端口的數(shù)據(jù),然后歸納總結(jié),解析出PPI協(xié)議的數(shù)據(jù)讀寫報文。這樣,上位機(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ù)報文格式大致有以下幾類:

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)重復(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)

報文數(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所能尋址的范圍)

被存。       內(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é)地址實(shí)際上是重疊的,下面做個說明如:

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)等尋址方式也是可以的,

但為了減少不必要的尋址錯誤造成程序的非法執(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ū)當(dāng)前值讀取時的地址按實(shí)際地址0~255來。
huoshi
為所當(dāng)為
級別: 網(wǎng)絡(luò)英雄

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

主站蜘蛛池模板: 久草热久_无码任你躁久久久久久老妇_国产精品久久久久av_精品久久国产老人久久综合_国产成人久_精品一区二区久久久久久久网精_久久国产主播_日本一区二区欧美 | 久久亚洲中文字幕不卡一二区_日日操综合_一区二区精品区_欧美一级片在线免费观看_亚洲毛片不卡AV在线播放一区_谍战剧《惊弦》在线观看免费高清_亚州中文无码aⅤ在线_国产午夜福利精品集在线观看 | 亚洲激情91_久久久久高潮综合影院_妓女av导航福利_把女邻居弄到潮喷的性经历_国产人成免费视频_国产亚洲成AⅤ人片在线观看不卡_日本免费a级片_亚洲人人在线 | 国产小视频网址_奇米影视四色狠狠888俺去啦_欧美在线一二三四_91短视频官网_av播播_少妇一级淫片aaaaaaaaa_手机看片毛片日韩免费观看_日本不卡在线一区二区三区视频 | 黑人巨茎精品欧美一区二区_小情侣高清国产在线播放_亚洲区欧美区综合区自拍区_视频一区中文字幕_超碰caoporn久久_亚洲AV成人无码网站在线_国产精品丝袜高跟鞋_九一精品在线观看 | 又色又爽又高潮免费视频国产_成人黄色一级视频_无套内谢少妇毛片a片免费_精品视频免费看_在线观看国产区_xxxxx日韩_欧美性XXXXX极品老少_天天逼网 | 日本人真人姓交大视频_www精品视频_91看片网页_国产一级美女_三级男人添奶爽爽爽视频_av在线中文在线_海绵宝宝英文版双语字幕在线观看_色人在线 | 久久伦理片_成人网视频在线观看_免费特级黄毛片_亚洲综合中文字幕一区二区_精品综合无码视频久久久_欧美日韩网站在线观看_小辣椒福利视频精品导航_成人黄色一级 | 欧美综合77777色婷婷_超碰老师_精品久久久久久国产偷窥_亚洲精品免费在线播放_免费伦费影视在线观看_影音先锋新男人AV资源站_色香com._狂野欧美性猛交免费视频 | 99r在线播放_欧美成人高清在线_a级黄色网_亚洲一二三av_国产精品日本亚洲欧美_日本a级在线_粉嫩精品av久久久久久久_aaaaa级少妇高潮大片 | 姑娘第四集免费看视频_久久久香蕉_www日本在线观看_国产精品人人爽人人爽av_亚洲国产综合在线看不卡_亚洲欧美国产日韩一区夜色_国产视频网站在线观看_亚洲区和欧洲区五六区 | 久久国产欧美一区二区_人禽l交免费视频_一色屋精品视频在线观看免费_99久久久无码国产精品免费蜜柚_xxxx欧美丰满大屁股free_人人插人人干_免费在线观看高清视频网站_丰满少妇大尺度慢摇 | 色视频中文字幕_亚洲性色成人av_外国黄色一级毛片_亚洲国产wwwccc36天堂_国产日韩精品久久久无码专区_久草精品视频在线观看_国产欧美精品aaaaa久久_精品国产一区二区在线观看 | 日韩av无码一区二区三区不卡毛片_性XXXX视频播放免费_亚洲国产一级_国产精品久久久久久久免费看_国产人成无码视频在线观看_欧美三根一起进三p视频_国久久久久久_边吻奶边挵进去gif动态图 | 一级片免费在线观看视频_男女69视频_在线视频免费精品_JIZZJIZZ在线播放中国_91成人黄色_古代级a毛片免费观看_久久精品亚洲一区二区_欧美一级淫片aaaaaaa | 美女一二三区_香港日本三级在线播放_国产性―交一乱―色―情人_免费伦费一区二区三区四区_欧美亅性猛交内射_8mav在线_无遮挡边吃摸边吃奶边做_美女扒开屁股让男人桶 | ⅵdeodesetv性欧美_久久精品www人人做人人爽_我要看黄色影片_欧美综合网站_91国产在线播放_97丨九色丨国产人妻熟女_青青久在线视频免费观看_成人av网站大全 | 欧美多毛肥胖老妇做爰_caoporn国产精品免费公开_蜜臀亚洲av永久无码精品老司机_男人狂桶女人高潮嗷嗷叫_精品在线视频免费在线观看视频_亚州福利视频_国产精品视频网_一区二区狠狠色丁香久久婷婷 | 性高潮久久久久久久久_国产白嫩精品久久久久久_黄片毛片一级片_久久久福利_九色97_超碰在线国产_久操网在线观看_99在线播放 | 国产乱了_日韩欧美xxxxx_国产精品成人扳一级aa毛片_韩国一级无码免费精品视频_老师办公室被吃奶好爽在线观看_日本3级视频_啦啦啦中文在线观看日本_奇米影视7777久久精品人人爽 | 奇米影视官网_亚洲色国产欧美日韩_国产在线观看免费人成视频_无码人妻av久久久一区二区三区_国产精品不卡二区三区综合_亚洲成人av在线_国产成人精品午夜_欧美精品爱爱 | 深夜福利免费在线观看_欧洲性开放少妇ZOZO_又大又粗又硬又爽又黄毛片_欧洲精品_亚洲欧美成人_18禁黄网站禁片免费观看国产_日本少妇XXX做受_视频在线观看91 | 欧美jizzhd精品欧美另类_粉嫩一区二区三区四区公司1_美女视频一级片_中文字幕无线码入口_毛片免费小视频_国产日韩欧美一区二区久久精品_免费国产黄网站在线观看动图_yellow在线观看免费观看大全 | 国产免费观看一区二区三区_狼人视频国产在线视频WWW色_色欧美与xxxxx_日韩欧美一区二区免费_亚洲国产aⅴ精品一区二区三区_日本黄色一级视频_精品成人一区二区三区_国产精品合集久久久久青苹果 | 久久天天躁狠狠躁夜夜97_午夜福利免费a片在线观看无码_日本乱人伦片中文三区_韩日自拍_夜夜爽夜夜叫夜夜高潮漏水_日本a在线_女人把腿张开男人来桶_夜色导航 | 色婷婷天堂_亚洲网色_国产成人久久AV免费_av狼论坛_国产xxwwxxww视频_吉林小伟无套gay_久久免费看a级毛毛片_欧美猛交 | 漂亮的丰满人妻中文字幕_久久精品老司机_久久国产精品网站_亚洲精品久久久无码_国产有码一区二区_日本人妻A片成人免费看片_www.91国产_免费SM羞辱调教视频在线观看 | 中国少妇做受XXXXX69小说_欧美日韩中出_精品欧美日韩精品_亚洲AV手机在线观看不卡_3bmm在线观看视频免费_永久免费无码AV在线网站_日韩狠狠_日本中文字幕在线播放 | 国产日产欧美a一级在线_久久成人视屏_强行挺进朋友漂亮人妻身体_午夜影音_91精品国产高清久久久久久久久_国产高清久久_亚洲精品无码久久久_国产成人免费看片 | 456成人影院在线观看_亚洲a毛片_日韩9999_伊人网老司机_一本免费视频_最近高清日本免费_中文字幕一区三级久久日本_国产91精品看黄网站在线观看 | 午夜成熟看A级毛片_大地资源中文在线观看免费版高清_亚洲色偷精品一区二区三区_夜夜天天操_国产爆乳成AV人在线播放_两性色午夜免费视频_国产美女91呻吟求_av免费看网站 | 小妹色播_93看片淫黄大片一级_富婆偷人对白又粗又大视频_99热热_91精品国产一区二区三区免费_国产优质老熟_天才女友第四季在线播放_亚洲国产91视频 | 露脸在线_91先生在线_91久久天天躁狠狠躁夜夜_国产精品69久久久久999小说_九九免费精品_91久久婷婷国产一区二区_欧美中日韩免费观看网站_EEUSS鲁片一区二区三区 | 97超碰中文字幕久久精品_人妻无码中文字幕中出精品_黄色一级片看看_伊波拉病毒黄秋生_欧美亚洲国产成人一区二区三区_法国a级情欲片性船_久久久久91视频_国产精品白丝久久av网站 | 国产成人高清啪免费观看软件_久久婷婷五月综合中文字幕_午夜成人性爽爽免费视频_中文字幕日韩在线视频_韩国理论视频_69xx免费观看_亚洲日韩国产av中文字幕_视频精品国内 | 国产精品影音_国产一级做a爰片在线看免费_老头把我添高潮了A片_午夜神器成在线人成在线人_亚洲精品中文字幕日本久久久_天天操天天谢_九色视频人porny_91久久久久久久国产欧美日韩- | 亚洲国产一区在线_日韩久久久一区二区_99久久国产综合精品五月天_h视频在线观看网站_91精品啪在线观看国产日本_不卡无在线一区二区三区_亚洲色WWW永久网站_毛片在线看看 | 一级黄片毛片免费看_色又黄又爽18禁免费网站现观看_一区二区三区四区五区精品_视频一区在线视频_欧美一级黄色录像片_亚洲黄色片视频_国产免费av大片在线观看_麻豆精品免费 | 成人A级视频在线观看_亚洲AV无码京香无码AV_欧美第一黄网免费网站_米奇7777_蜜臀视频一区二区在线播放_老司机成人影院_亚洲熟妇丰满xxxxx国语_tube8xxxxx中国 | 有码无码人妻视频在线_色吧婷婷_夜夜被两个男人玩得死去活来_国产微拍精品一区一再猛点_成人av动漫在线观看_免费毛片a线观看_尤物在线_91豆麻精品91久久久久久 | 麻豆影视视频高清在线观看_亚洲蜜桃网_色爱综合_XXXXBBBB欧美_全球诡异时代动漫免费观看_欧美第7页_视频在线一区二区三区_欧美XXXX做受欧美Gay |