18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 梯形圖實例 >> 正文

基於S7-200SMART實現Modbus TCP通信_200smart modbus tcp

作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2024/12/29

關(guan) 鍵字:S7-200 SMART;Modbus TCP;Modbus Slave;Modbus Poll。

係列文章目錄

基於(yu) S7-200 SMART實現一鍵啟停
順序功能圖——(二)設計機組延時關(guan) 機程序
基於(yu) S7-200 SMART實現MATLAB寫(xie) 入與(yu) 讀取PLC數據



前言

  Modbus TCP作為(wei) 工業(ye) 中的重要通信協議已經受到了廣泛的運用,西門子係列的PLC大多也支持免費的Modbus TCP通信,本文將基於(yu) S7-200 SMART實現PLC與(yu) PC的Modbus TCP通信。


一、Modbus通信協議簡介

  首先我們(men) 需要對通信有一個(ge) 簡單的認識,通信其實在我們(men) 生活中很常見,就像我們(men) 平時QQ微信的聊天、打電話甚至是寫(xie) 信,都可以是通信。如果我們(men) 以寫(xie) 信為(wei) 例就能提取出三個(ge) 重要部分:發信人、信息、發信人。對於(yu) 現在的工業(ye) 通信也有類似於(yu) 此的主體(ti) ,稱之為(wei) :主站、從(cong) 站、數據或者是服務端、客戶端、數據。
 

圖1.1 主站、從站

  一般主站、從(cong) 站進行的的通信我們(men) 稱之為(wei) 主從(cong) 通信方式,在Modbus協議中的Modbus RTU和Modbus ASCII都屬於(yu) 這種通信方式,在這種通信方式中,主站和從(cong) 站可以理解為(wei) 雇主和隨從(cong) 的關(guan) 係,隻能由雇主向隨從(cong) 提要求——由主站向從(cong) 站發起通信(打工人落淚😵‍💫)。
 

圖1.2 服務端、客戶端

  Modbus TCP則是通過服務端、客戶端的方式進行通信,在這種通信方式中,服務端和客戶端可以理解為(wei) 商店和顧客之間的關(guan) 係,隻能顧客向商店提要求——由客戶端向服務端發起通信(顧客是上帝😎)。

二、工程環境

  以下的案例基於(yu) :

  • PC操作係統:WIN11
  • PLC:S7-200 SAMRT CPU ST60
  • 通信介質:普通網線一根
  • PLC編程軟件:STEP 7-Micro/WIN SMART V2.8
  • PC端客戶端模擬軟件:Modbus Poll 7.0
  • PC端服務端模擬軟件:Modbus Slave 6.2

三、PLC——Server、PC——Client

1.流程

①在工程樹中MBUS_SERVER功能塊
 

圖3.1 在工程樹中MBUS_SERVER功能塊

②將MBUS_SERVER拖入程序窗口並設置參數 
 
圖3.2 將MBUS_SERVER拖入程序窗口並設置參數

  • EN:功能塊使能端
  • Connect:是否開始通信
  • IP_Port:IP端口號
  • MaxIQ:設置輸入/輸出線圈
  • MaxAI:設置輸入寄存器
  • MaxHold:設置保持寄存器
  • HoldStart:設置被操作的保持寄存器的起始地址
  • Done:通信是否結束的標誌
  • Error:錯誤報文

輸入線圈、輸出線圈、輸入寄存器、保持寄存器是Modbus協議中定義(yi) 的四種不同的數據類型:
 

圖3.3 Modbus存儲區


注意上述程序中使用的數據是通過數據塊進行設置的: 

  

圖3.4 通過數據塊設置V寄存器數據


而且需要注意,如同使用高速計數器、PID等,要為(wei) MBUS_SERVER功能塊分配空間用於(yu) 設定相關(guan) 參數: 

  

圖3.5 設置庫存儲器

 

圖3.6 分配地址

③連接PLC後點擊下載程序
 

圖3.7 連接PLC後點擊下載程序


④查找PLC 

  

圖3.8 查找PLC


⑤與(yu) PLC建立通信連接 

  

圖3.9 與PLC建立通信連接


⑥下載程序 

  

圖3.10 下載程序


⑦運行PLC 

  

圖3.11 運行PLC


⑧在STEP 7中監視 

  

圖3.12 在STEP 7中監視


⑨設置觸點 

  

圖3.13 設置觸點


⑩設置觸點為(wei) ON 

  

圖3.14 設置觸點為ON


⑪打開ModbusPoll 

  

圖3.15 打開ModbusPoll


⑫點擊Connect 

  

圖3.16 點擊Connect

⑬設置連接參數
 

圖3.17 設置連接參數


⑭讀取默認讀寫(xie) 情況下的數據 

  

圖3.18 讀取默認讀取情況下的數據


⑮設置讀寫(xie) 參數 

  

圖3.19 設置讀寫參數


⑯設置讀寫(xie) 參數 

  

圖3.20 設置讀寫參數

⑰讀取結果
 
圖3.21 讀取結果

2.報文分析

 

圖3.22 Modbus TCP 報文格式

  Modbus TCP的報文形式

  • 事務處理標識箱:Modbus請求/響應事務處理的標識
  • 協議標識符:0=Modbus協議
  • 長度:當前之後的字節總數
  • 單元標識符:串行鏈路活其它總線的從站識別
  • 功能碼:1——讀取輸出線圈、2——讀取輸入線圈、3——讀取保持寄存器、4——讀取輸入寄存器、5——寫入單線圈、6——寫入單寄存器、15——寫入多線圈、16——寫入多寄存器
  • 數據:根據功能碼不同

 

圖3.23 Modbus TCP 報文

TX發送報文

  • 00 03:事務處理標識箱
  • 00 00:Modbus協議
  • 00 06:後麵有6個字節的數據
  • 01:1號從站
  • 03:讀取保持寄存器
  • 00 0A:從0AH=10地址開始
  • 00 14:讀取14H=20個數據

需要注意的是,雖然這裏我們(men) 報文中顯示是從(cong) 地址10開始,但實際上開始的地址需要結合PLC中MBUS_SERVER功能塊的端口設置的開始地址,例如本文中圖3.2設置的是VB10000,在軟件Modbus Poll中的操作的起始地址是VB10000+2×20=VB10020(數據是以兩(liang) 字節為(wei) 一單元)。
RX接收報文

  • 00 03:事務處理標識箱
  • 00 00:Modbus協議
  • 00 06:後麵有6個字節的數據
  • 01:1號從站
  • 03:讀取保持寄存器
  • 28:後麵有40個字節的數據
  • 00 0A:第一個數據10
  • 00 0B:第二個數據11
  • 00 0C:第三個數據12
  • 00 0D:第四個數據13
  • 00 0E:第五個數據14
  • 00 0F:第六個數據15
  • 00 10:第七個數據16
  • 00 11:第八個數據17
  • 00 12:第九個數據18
  • 00 13:第十個數據19
  • 00 14:第十一個數據20
  • 00 15:第十二個數據21
  • 00 16:第十三個數據22
  • 00 17:第十四個數據23
  • 00 18:第十五個數據24
  • 00 19:第十六個數據25
  • 00 1A:第十七個數據26
  • 00 1B:第十八個數據27
  • 00 1C:第十九個數據28
  • 00 1D:第二十個數據29

注意由於(yu) 窗口不夠長這裏的RX部分報文沒有顯示出來

四、PLC——Client、PC——Server

1.流程

  PLC作為(wei) 客戶端PC作為(wei) 服務端的流程類似,隻不過在程序中需要調用的是MBUS_CLIENT功能塊而在PC中需要使用的是Modbus Slave軟件。
在STE7中的程序:
 

圖4.1 MBUS_CLIENT功能塊


上述功能塊的各端口含義(yi) : 

  

圖4.2 MBUS_CLIENT各端口含義


不同情況下的端口設置: 

  

圖4.3 MBUS_CLIENT不同情況下的端口設置

根據圖4.2可知,圖4.1中的程序設置了客戶端需要的服務端的IP為(wei) 192.168.2.2、IP端口為(wei) 502、寫(xie) 入數據、從(cong) 第1個(ge) 地址開始、寫(xie) 入10個(ge) 數據、寫(xie) 入的數據存放在以VB6000為(wei) 開始的V寄存器中。

同樣通過數據塊設置V寄存器:
 

圖4.4 通過數據塊設置V寄存器數據

 

圖4.5 Modbus Slave讀取到的數據

2.報文分析

 

圖4.6 Modbus Slave通信報文

TX發送報文

  • 11 64:事務處理標識箱
  • 00 00:Modbus協議
  • 00 06:後麵有06H=6個字節的數據
  • FF:255號從站
  • 10:寫入多個保持寄存器
  • 00 00:從00H=0地址開始
  • 00 0A:讀取0AH=10個數據

RX接收報文

  • 11 64:事務處理標識箱
  • 00 00:Modbus協議
  • 00 1B:後麵有1BH=27個字節的數據
  • FF:255號從站
  • 00 00:從00H=0地址開始
  • 00 0A:讀取0AH=10個數據
  • 16:後麵有16H=20個字節數據
  • 00 14:第一個數據20
  • 00 16:第二個數據22
  • 00 18:第三個數據24
  • 00 1A:第四個數據26
  • 00 1C:第五個數據28
  • 00 1E:第六個數據30
  • 00 20:第七個數據32
  • 00 22:第八個數據34
  • 00 24:第九個數據36
  • 00 26:第十個數據38
      
    圖4.7 顯示報文

總結

  本文基於(yu) S7-200 SMART和Modbu Poll、Modbus Slave實現了PC與(yu) PLC之間的Modbus TCP通信。過程比較詳細,提供給適合剛剛入門的小白食用,包學包會(hui) ,學不會(hui) ,那就再學學😁

Tags:TCP通信,200smart,modbus  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
推薦文章
最新推薦
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢