使用下面的例程你可以在S7-200CPU之間設(shè)置一個(gè)簡(jiǎn)單的Modbus通訊。這個(gè)例子是關(guān)于Modbus功能碼6的(寫從站保持寄存器), 也可以作為其他所支持的功能碼:1, 2, 3, 4, 5, 15 和16 的基本參數(shù)設(shè)置步驟 。
要求:要使用Modbus協(xié)議必須先在STEP 7 Micro/Win上安裝指令庫 。Modbus主站協(xié)議只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。
硬件設(shè)置
參數(shù)匹配
指令庫的存儲(chǔ)地址
保持寄存器值得傳輸
1.硬件設(shè)置例程中的Modbus通訊是在兩個(gè)S7-200 CPU的0號(hào)通訊口間進(jìn)行的(最好每個(gè)CPU都有兩個(gè)通訊口)。在主站側(cè)也可以選擇相應(yīng)庫文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通過1號(hào)通訊口通信。通訊口1與Micro/WIN建立PG或PC連接,兩個(gè)CPU的通訊口0通過PPI電纜進(jìn)行連接(電纜的 針腳 連接為2,3,7,8)。
2.參數(shù)匹配對(duì)于MODBUS通訊, 主站側(cè)需要程序庫 "MBUS_CTRL" 和 "MBUS_MSG",
①從站側(cè)需要程序庫 "MBUS_INIT" and "MBUS_SLAVE"。
在 Micro/WIN 中您需要為主站和從站新建一個(gè)項(xiàng)目,程序與參數(shù)設(shè)置見圖02。必須要保證主站與從站的“Baud”和"Parity"的參數(shù)設(shè)置要一致,并且程序塊"MBUS_MSG"中的"Slave"地址要與程序塊"MBUS_INIT"中的"Addr"所設(shè)置的一致 (見圖.02)。Micro/WIN“系統(tǒng)塊”中設(shè)置的0通訊口的波特率與MODBUS協(xié)議無關(guān)("Mode" = "1")。
下面的表格列出了程序塊各個(gè)參數(shù)選項(xiàng)及其意義
主站
MBUS_CTRL
表 01
1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執(zhí)行MBUS_MSG時(shí)的錯(cuò)誤代碼MBUS_MSG" 。
MBUS_MSG
表 02
1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執(zhí)行MBUS_MSG時(shí)的錯(cuò)誤代碼MBUS_MSG" 。
從站
MBUS_INIT
表 03
2)最大的地址取決于所用CPU的類型及其最大值。3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協(xié)議的錯(cuò)誤代碼”。
MBUS_SLAVE
表 04
3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協(xié)議的錯(cuò)誤代碼” 。
3.庫的存儲(chǔ)地址項(xiàng)目完成后必須要在Micro/WIN中定義庫的存儲(chǔ)地址,當(dāng)定義完存儲(chǔ)區(qū)后, 要保證在任何情況下不能再被其它程序所使用 (主站側(cè): "DataPtr" + "Count" 從站側(cè): "HoldStart" + "MaxHold"
4.保持寄存器值的傳輸將程序下載到相應(yīng)的CPU后,可以在狀態(tài)表中給主站側(cè)的V存儲(chǔ)區(qū)賦值,然后監(jiān)視從站的變化。當(dāng)主站的I0.0使能后,VW2中的內(nèi)容就被發(fā)送到從站并寫入從站的VW2 。
①保持寄存器值的傳輸見圖.04。指針"DataPtr" 代表了V區(qū)被讀的起始地址。參數(shù) "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字為單位被讀的個(gè)數(shù)。主站中被讀取的V存儲(chǔ)區(qū)被寫入地址為"Addr" = "40002" ("RW" = "1")的保持寄存器中。保持寄存器是以字為單位工作的,它與從站的V區(qū)地址對(duì)應(yīng)。指針 "HoldStart" 明確了與保持寄存器起始地址40001相對(duì)應(yīng)的V存儲(chǔ)區(qū)的初始地址。可以這樣計(jì)算從站的V區(qū)目標(biāo)指針:
2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2
另外,要保證"MaxHold" 定義的數(shù)據(jù)區(qū)能夠包含主站側(cè)所要寫入的數(shù)據(jù)區(qū) :
MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2
-
寄存器
+關(guān)注
關(guān)注
31文章
5359瀏覽量
120789 -
cpu
+關(guān)注
關(guān)注
68文章
10889瀏覽量
212377 -
S7-200
+關(guān)注
關(guān)注
13文章
408瀏覽量
50497
原文標(biāo)題:西門子S7-200 Modbus最強(qiáng)解析圖解
文章出處:【微信號(hào):GKB1508,微信公眾號(hào):工控幫】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論