寄存器PLC地址與寄存器modbus協議地址

寄存器PLC地址指存放於控制器中的地址,這些控制器可以是PLC,也可以是觸摸屏,或是文本顯示器。PLC地址一般採用10進制描述,共有5位,其中第一位代碼寄存器類型。第一位數字和寄存器類型的對應關係如表1所示。PLC地址例如40001、30002等。

寄存器modbus協議地址指通信時使用的寄存器地址,在實際編程中,由於寄存器PLC地址前綴的區分作用,所以只需說明後4位數,而且需轉換為4位十六進制地址。例如PLC地址40001對應尋址地址0x0000,40002對應尋址地址0x0001,寄存器尋址地址一般使用16進制描述。再如,PLC寄存器地址40003對應協議地址0002,PLC寄存器地址30003對應協議地址0002。在實際編程中,由於前綴的區分作用,所以只需說明後4位數,而且需轉換為4位十六進制地址。

支持 Modbus 協議的設備或軟件,使用時用戶直接設置或看到的應 當是 Modbus 數據地址。Modbus 地址所訪問的數據,是通過各種 “功能”讀寫而來。 功能碼是 Modbus 地址的底層。 如果 Modbus 通 信的一方提供的所謂 Modbus 協議只有功能碼,則需要注意瞭解此 功能號與 Modbus 地址間的對應關係。

使用 modbus 地址時應注意下述問題:

1)40001~4xxxx 是美國 modicon 公司和 ge 公司 plc 使用的 modbus 地址,它是基於1的地址,即同類元件的首地址為1。西門子 plc 的 modbus 地址是基於0的地址。

2)美國的 modbus 地址左起第2位用來表示元件的類型,例如 i0.0的 modbus 地址為010001。 因為數據類型已經包含在功能碼中了, 西門子的 i0.0的 modbus 地址實際上為000000, i2.0的 modbus 地址為 000016(或十六進制數16#0010) ,而不是010017。

3)、無論V寄存器還是M寄存器,裡面的不同數據類型(VB、VW、VD、MB、MW、MD)都是基於寄存器內存總字節地址為偏移地址。

寄存器PLC地址與寄存器modbus協議地址

寄存器PLC地址與寄存器modbus協議地址

4)、在數據報文中,所有的modbus地址都是從0開始的。也就是首次出現的數據項在報文中的地址為0。比如:(All data addresses in Modbus messages are referenced to zero. The first occurrence of a data item is addressed as item number zero.)

5)、Modbus地址實際上分為兩種情況。

第一種情況:PLC作Modbus主站,Modbus地址和PLC手冊裡的地址一致,例如作主站的S7-200的MBUS_MSG指令用於向Modbus從站發送請求消息,和處理從站返回的響應消息。要讀取從站(另一臺S7-200)的I0.0開始的地址區時,它的輸入參數Addr(Modbus地址)為10001。S7-200從站保持寄存器的V區起始地址為VB200時,要讀取從站VW200開始的V存儲區時,保持寄存器的地址是40001。

第二種情況:PLC作從站,PLC不用管什麼Modbus地址,等著主站來讀寫它的地址區就是了。

主站的計算機軟件(例如DCS或組態軟件)的編程人員需要編寫實現Modbus通信的程序,首先需要確定Modbus RTU的報文結構。他們一般不熟悉PLC,因此PLC的編程人員往往需要和上位機軟件的編程人員一起來討論Modbus的報文結構。

最容易出問題的就是報文裡Modbus地址與PLC存儲區地址的對應關係。

S7 PLC手冊給出的Modbus地址與Modicon公司和GE公司PLC使用的地址相同,是基於1的地址,即同類元件的首地址為1。而西門子PLC採用的是基於0的地址,即同類元件的首地址為0。Modbus報文中西門子PLC的Modbus地址也採用基於0的地址。

PLC系統手冊中的Modbus地址的最高位用來表示地址區的類型,例如I0.0的Modbus地址為10001。因為地址區類型的信息已經包含在報文的功能碼中了,報文中S7-200的I0.0的Modbus地址不是10001,而是0。報文中其他地址區的Modbus地址也應按相同的原則處理。例如當S7-200從站保持寄存器的V區起始地址為VB200時,VW200對應的保持寄存器在報文中的Modbus地址為0,而不是40001。

施耐德plc modbus地址對照表

000001至000XXX是實際輸出,對應%QX0.0-%QXX.X

010001至010XXX是實際輸入,對應%IX0.0-%IXX.X

030001至030032是模擬量寄存器,對應%AIW0,16位一路依次類推

040001至040XXX是保持寄存器,對應%MX0.0-%MXX.X,1對1,要是%MW就對應16位,依次類推。施耐德PLC中 W表示字 16位,D表示雙字 32位。比如:%MW10和%MD10。B表示字節 8位,X表示位。比如:%MB0和%MX0.0~%MX0.7

%MW10.4

%MW10是指一個字,一個字分為2個字節,一個字節8個位,也就是說%MW10中有16個位,從%MW10.0~%MW10.15。

%QW0.5.1.0.10

Q是輸出 ,0是機架,5是0號機架的第五個模塊,1是第五號模塊的第一個通道,0是第一個通道的第0個字,10是第0個字的第10個位。

寄存器PLC地址與寄存器modbus協議地址

無論MX、MB、MW、MD都是基於內存總字節地址為偏移地址,也就是以%MB之後的地址為偏移地址。

施耐德plc寄存器地址對應的modubs地址

寄存器地址 modubs 說明 公式

%QX1.0 000001.0 開關量輸出 %QXx.y=000001+x.y

%IX1.0 010001.0 開關量輸入 %IXx.y=010001+x.y

%AIW0 030001 模擬量輸入 %AIWx=030001+x

%MD40 0400801 保持寄存器 %MDx.y=040001+x*2.y

%MW50.0 040051.0 保持寄存器 %MWx.y=040001+x.y

%MX100.0 040051.0 保持寄存器 %MXx.y=040001+x/2.y

注意:

1、%MX100.0表示某個字節地址,因為%MW50這個地址中包含了%MB100、%MB101,%MX100.0其實是%MW50的第0位即40051.0

2、%MD40表示雙字,%MD40對應的首地址是%MW*2,也就是%MW80,%MD40對應的modbus地址為0400801


西門子s7系列plc modbus地址對照表

寄存器PLC地址與寄存器modbus協議地址

例如:地址:40040;對應S7200地址:VW78;對應S7300地址:DB1.DBW78;

三菱FX系列PLC modbus地址對照表

寄存器PLC地址與寄存器modbus協議地址

OMRON PLC地址轉MODBUS協議對照表

將OMRON PLC接入支持MODBUS協議的上位DCS系統中,通過ASC模塊可滿足用戶的這一需求。具體地址對照關係參考下面鏈接。

https://wenku.baidu.com/view/3ff1d16da5e9856a5712601d.html

臺達PLC寄存器地址與Modbus寄存器地址對照表

具體地址對照關係參考下面鏈接。

https://wenku.baidu.com/view/f884db6d102de2bd97058836.html

永宏PLC寄存器Modbus地址表

具體地址對照關係參考下面鏈接。

https://wenku.baidu.com/view/4843e77c30126edb6f1aff00bed5b9f3f90f72c8.html

信捷PLC寄存器Modbus地址表

寄存器PLC地址與寄存器modbus協議地址


分享到:


相關文章: