寄存器PLC地址指存放於(yu) 控製器中的地址,這些控製器可以是PLC,也可以使觸摸屏,或是文本顯示器。PLC地址一般采用10進製描述,共有5位,其中第一位代碼寄存器類型。第一位數字和寄存器類型的對應關(guan) 係如表1所示。PLC地址例如40001、30002等。
寄存器modbus協議地址指通信時使用的寄存器地址,在實際編程中,由於(yu) 寄存器PLC地址前綴的區分作用,所以隻需說明後4位數,而且需轉換為(wei) 4位十六進製地址。例如PLC地址40001對應尋址地址0x0000,40002對應尋址地址0x0001,寄存器尋址地址一般使用16進製描述。再如,PLC寄存器地址40003對應協議地址0002,PLC寄存器地址30003對應協議地址0002。在實際編程中,由於(yu) 前綴的區分作用,所以隻需說明後4位數,而且需轉換為(wei) 4位十六進製地址。
支持 Modbus 協議的設備或軟件,使用時用戶直接設置或看到的應 當是 Modbus 數據地址。Modbus 地址所訪問的數據,是通過各種 “功能”讀寫(xie) 而來。 功能碼是 Modbus 地址的底層。 如果 Modbus 通 信的一方提供的所謂 Modbus 協議隻有功能碼,則需要注意了解此 功能號與(yu) Modbus 地址間的對應關(guan) 係。
使用 modbus 地址時應注意下述問題:
1)40001~4xxxx 是美國 modicon 公司和 ge 公司 plc 使用的 modbus 地址,它是基於(yu) 1的地址,即同類元件的首地址為(wei) 1。西門子 plc 的 modbus 地址是基於(yu) 0的地址。
2)美國的 modbus 地址左起第2位用來表示元件的類型,例如 i0.0的 modbus 地址為(wei) 010001。 因為(wei) 數據類型已經包含在功能碼中了, 西門子的 i0.0的 modbus 地址實際上為(wei) 000000, i2.0的 modbus 地址為(wei) 000016(或十六進製數16#0010) ,而不是010017。
3)、無論V寄存器還是M寄存器,裏麵的不同數據類型(VB、VW、VD、MB、MW、MD)都是基於(yu) 寄存器內(nei) 存總字節地址為(wei) 偏移地址。
4)、在數據報文中,所有的modbus地址都是從(cong) 0開始的。也就是首次出現的數據項在報文中的地址為(wei) 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地址實際上分為(wei) 兩(liang) 種情況。
第一種情況:PLC作Modbus主站,Modbus地址和PLC手冊(ce) 裏的地址一致,例如作主站的S7-200的MBUS_MSG指令用於(yu) 向Modbus從(cong) 站發送請求消息,和處理從(cong) 站返回的響應消息。要讀取從(cong) 站(另一台S7-200)的I0.0開始的地址區時,它的輸入參數Addr(Modbus地址)為(wei) 10001。S7-200從(cong) 站保持寄存器的V區起始地址為(wei) VB200時,要讀取從(cong) 站VW200開始的V存儲(chu) 區時,保持寄存器的地址是40001。
第二種情況:PLC作從(cong) 站,PLC不用管什麽(me) Modbus地址,等著主站來讀寫(xie) 它的地址區就是了。
主站的計算機軟件(例如DCS或組態軟件)的編程人員需要編寫(xie) 實現Modbus通信的程序,首先需要確定Modbus RTU的報文結構。他們(men) 一般不熟悉PLC,因此PLC的編程人員往往需要和上位機軟件的編程人員一起來討論Modbus的報文結構。
最容易出問題的就是報文裏Modbus地址與(yu) PLC存儲(chu) 區地址的對應關(guan) 係。
S7 PLC手冊(ce) 給出的Modbus地址與(yu) Modicon公司和GE公司PLC使用的地址相同,是基於(yu) 1的地址,即同類元件的首地址為(wei) 1。而西門子PLC采用的是基於(yu) 0的地址,即同類元件的首地址為(wei) 0。Modbus報文中西門子PLC的Modbus地址也采用基於(yu) 0的地址。
PLC係統手冊(ce) 中的Modbus地址的最高位用來表示地址區的類型,例如I0.0的Modbus地址為(wei) 10001。因為(wei) 地址區類型的信息已經包含在報文的功能碼中了,報文中S7-200的I0.0的Modbus地址不是10001,而是0。報文中其他地址區的Modbus地址也應按相同的原則處理。例如當S7-200從(cong) 站保持寄存器的V區起始地址為(wei) VB200時,VW200對應的保持寄存器在報文中的Modbus地址為(wei) 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是指一個(ge) 字,一個(ge) 字分為(wei) 2個(ge) 字節,一個(ge) 字節8個(ge) 位,也就是說%MW10中有16個(ge) 位,從(cong) %MW10.0~%MW10.15。
%QW0.5.1.0.10
Q是輸出 ,0是機架,5是0號機架的第五個(ge) 模塊,1是第五號模塊的第一個(ge) 通道,0是第一個(ge) 通道的第0個(ge) 字,10是第0個(ge) 字的第10個(ge) 位。
無論MX、MB、MW、MD都是基於(yu) 內(nei) 存總字節地址為(wei) 偏移地址,也就是以%MB之後的地址為(wei) 偏移地址。
施耐德plc寄存器地址對應的modubs地址
寄存器地址 modubs 說明 公式
%QX1.0 000001.0 開關(guan) 量輸出 %QXx.y=000001+x.y
%IX1.0 010001.0 開關(guan) 量輸入 %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表示某個(ge) 字節地址,因為(wei) %MW50這個(ge) 地址中包含了%MB100、%MB101,%MX100.0其實是%MW50的第0位即40051.0
2、%MD40表示雙字,%MD40對應的首地址是%MW*2,也就是%MW80,%MD40對應的modbus地址為(wei) 0400801
例如:地址:40040;對應S7200地址:VW78;對應S7300地址:DB1.DBW78;
三菱FX係列PLC modbus地址對照表
OMRON PLC地址轉MODBUS協議對照表
將OMRON PLC接入支持MODBUS協議的上位DCS係統中,通過ASC模塊可滿足用戶的這一需求。具體(ti) 方法參考:
https://wenku.baidu***.com/view/3ff1d16da5e9856a5712601d.html
台達PLC寄存器地址與(yu) Modbus寄存器地址對照表
https://wenku.baidu***.com/view/f884db6d102de2bd97058836.html
永宏PLC寄存器Modbus地址表
https://wenku.baidu***.com/view/4843e77c30126edb6f1aff00bed5b9f3f90f72c8.html
信捷PLC寄存器Modbus地址表