使用下面的例程你可以在S7-200CPU之間設置一個簡單的Modbus通訊。這個例子是關于Modbus功能碼6的(寫從站保持寄存器), 也可以作為其他所支持的功能碼:1, 2, 3, 4, 5, 15 和16 的基本參數設置步驟 。
要求:要使用Modbus協議必須先在STEP 7 Micro/Win上安裝指令庫 。Modbus主站協議只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。
硬件設置
參數匹配
指令庫的存儲地址
保持寄存器值得傳輸
1.硬件設置例程中的Modbus通訊是在兩個S7-200 CPU的0號通訊口間進行的(最好每個CPU都有兩個通訊口)。在主站側也可以選擇相應庫文件 "MBUS_CTRL_P1" 和 "MBUS_MSG_P1"通過1號通訊口通信。通訊口1與Micro/WIN建立PG或PC連接,兩個CPU的通訊口0通過PPI電纜進行連接(電纜的 針腳 連接為2,3,7,8)。
2.參數匹配對于MODBUS通訊, 主站側需要程序庫 "MBUS_CTRL" 和 "MBUS_MSG",
①從站側需要程序庫 "MBUS_INIT" and "MBUS_SLAVE"。
在 Micro/WIN 中您需要為主站和從站新建一個項目,程序與參數設置見圖02。必須要保證主站與從站的“Baud”和"Parity"的參數設置要一致,并且程序塊"MBUS_MSG"中的"Slave"地址要與程序塊"MBUS_INIT"中的"Addr"所設置的一致 (見圖.02)。Micro/WIN“系統塊”中設置的0通訊口的波特率與MODBUS協議無關("Mode" = "1")。
下面的表格列出了程序塊各個參數選項及其意義
主站
MBUS_CTRL
表 01
1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執行MBUS_MSG時的錯誤代碼MBUS_MSG" 。
MBUS_MSG
表 02
1)參看STEP 7 Micro/WIN 幫助: "MODBUS主站執行MBUS_MSG時的錯誤代碼MBUS_MSG" 。
從站
MBUS_INIT
表 03
2)最大的地址取決于所用CPU的類型及其最大值。3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協議的錯誤代碼”。
MBUS_SLAVE
表 04
3)參看STEP 7 Micro/WIN 幫助: “MODBUS從站協議的錯誤代碼” 。
3.庫的存儲地址項目完成后必須要在Micro/WIN中定義庫的存儲地址,當定義完存儲區后, 要保證在任何情況下不能再被其它程序所使用 (主站側: "DataPtr" + "Count" 從站側: "HoldStart" + "MaxHold"
4.保持寄存器值的傳輸將程序下載到相應的CPU后,可以在狀態表中給主站側的V存儲區賦值,然后監視從站的變化。當主站的I0.0使能后,VW2中的內容就被發送到從站并寫入從站的VW2 。
①保持寄存器值的傳輸見圖.04。指針"DataPtr" 代表了V區被讀的起始地址。參數 "Count" 表明了地址"Addr" = "4xxxx" (保持寄存器)以字為單位被讀的個數。主站中被讀取的V存儲區被寫入地址為"Addr" = "40002" ("RW" = "1")的保持寄存器中。保持寄存器是以字為單位工作的,它與從站的V區地址對應。指針 "HoldStart" 明確了與保持寄存器起始地址40001相對應的V存儲區的初始地址。可以這樣計算從站的V區目標指針:
2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2
另外,要保證"MaxHold" 定義的數據區能夠包含主站側所要寫入的數據區 :
MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2
-
寄存器
+關注
關注
31文章
5363瀏覽量
121162 -
cpu
+關注
關注
68文章
10902瀏覽量
213013 -
S7-200
+關注
關注
13文章
408瀏覽量
50567
原文標題:西門子S7-200 Modbus最強解析圖解
文章出處:【微信號:GKB1508,微信公眾號:工控幫】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
IGT-DSER系列PLC通訊智能網關的配置說明(免編程的多臺PLC之間通訊篇)
如何利用無線MODBUS通訊模塊實現無線485通信?
![如何利用無線<b class='flag-5'>MODBUS</b><b class='flag-5'>通訊</b>模塊實現無線485通信?](https://file1.elecfans.com//web2/M00/08/9F/wKgZomb5GnKAUZ3PAAFzawXuiNo599.png)
【教程】比Modbus控制更簡單!S7 200 SMART利用Profinet網關擴展IO
![【教程】比<b class='flag-5'>Modbus</b>控制更<b class='flag-5'>簡單</b>!<b class='flag-5'>S7</b> <b class='flag-5'>200</b> SMART利用Profinet網關擴展IO](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
EG網關采集西門子S7-200smart轉Modbus協議
![EG網關采集西門子<b class='flag-5'>S7-200</b>smart轉<b class='flag-5'>Modbus</b>協議](https://file1.elecfans.com/web2/M00/05/DD/wKgZombfsEOALy_HAABY5VoBtU8086.png)
西門子PLC不得不說的事:S7-200SMART通信端口及連接方式
![西門子PLC不得不說的事:<b class='flag-5'>S7-200</b>SMART通信端口及連接方式](https://file1.elecfans.com//web2/M00/05/46/wKgaombNnPWAHuzaAABGBHlrYI890.jpeg)
S7協議讀取西門子S7-200 Smart PLC數據
![<b class='flag-5'>S7</b>協議讀取西門子<b class='flag-5'>S7-200</b> Smart PLC數據](https://file1.elecfans.com/web2/M00/FB/17/wKgZomaPVMyACXs0AAAumSg9lMg812.png)
PLC與變頻器的Modbus通訊方法
Modbus RTU轉PROFINET協議轉換網關 HT1S-PNS485-S10
Modbus-RTU通訊協議是什么?
西門子S7-200 Smart PLC加密設置全面指南
![西門子<b class='flag-5'>S7-200</b> Smart PLC加密<b class='flag-5'>設置</b>全面指南](https://file1.elecfans.com/web2/M00/C5/E4/wKgZomYDgYmAYMEdAAAtN0x2TYc508.png)
西門子S7-200 SMART的通信端口解析
![西門子<b class='flag-5'>S7-200</b> SMART的通信端口解析](https://file1.elecfans.com/web2/M00/C2/33/wKgaomXdV16AeMo-AAAnGY_biXY243.png)
S7-1200 PLC與V20變頻器Modbus通訊詳細指南
![<b class='flag-5'>S7</b>-1200 PLC與V20變頻器<b class='flag-5'>Modbus</b><b class='flag-5'>通訊</b>詳細指南](https://file1.elecfans.com/web2/M00/C0/E8/wKgZomXa3-6ABoICAABAl2HYBnI416.png)
評論