日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 梯形圖實(shí)例 >> 正文

基于S7-200SMART實(shí)現(xiàn)Modbus TCP通信_(tái)200smart modbus tcp

作者:佚名    文章來源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2024/12/29

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

系列文章目錄

基于S7-200 SMART實(shí)現(xiàn)一鍵啟停
順序功能圖——(二)設(shè)計(jì)機(jī)組延時(shí)關(guān)機(jī)程序
基于S7-200 SMART實(shí)現(xiàn)MATLAB寫入與讀取PLC數(shù)據(jù)



前言

  Modbus TCP作為工業(yè)中的重要通信協(xié)議已經(jīng)受到了廣泛的運(yùn)用,西門子系列的PLC大多也支持免費(fèi)的Modbus TCP通信,本文將基于S7-200 SMART實(shí)現(xiàn)PLC與PC的Modbus TCP通信。


一、Modbus通信協(xié)議簡(jiǎn)介

  首先我們需要對(duì)通信有一個(gè)簡(jiǎn)單的認(rèn)識(shí),通信其實(shí)在我們生活中很常見,就像我們平時(shí)QQ微信的聊天、打電話甚至是寫信,都可以是通信。如果我們以寫信為例就能提取出三個(gè)重要部分:發(fā)信人、信息、發(fā)信人。對(duì)于現(xiàn)在的工業(yè)通信也有類似于此的主體,稱之為:主站、從站、數(shù)據(jù)或者是服務(wù)端、客戶端、數(shù)據(jù)。
 

圖1.1 主站、從站

  一般主站、從站進(jìn)行的的通信我們稱之為主從通信方式,在Modbus協(xié)議中的Modbus RTU和Modbus ASCII都屬于這種通信方式,在這種通信方式中,主站和從站可以理解為雇主和隨從的關(guān)系,只能由雇主向隨從提要求——由主站向從站發(fā)起通信(打工人落淚😵‍💫)。
 

圖1.2 服務(wù)端、客戶端

  Modbus TCP則是通過服務(wù)端、客戶端的方式進(jìn)行通信,在這種通信方式中,服務(wù)端和客戶端可以理解為商店和顧客之間的關(guān)系,只能顧客向商店提要求——由客戶端向服務(wù)端發(fā)起通信(顧客是上帝😎)。

二、工程環(huán)境

  以下的案例基于:

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

三、PLC——Server、PC——Client

1.流程

①在工程樹中MBUS_SERVER功能塊
 

圖3.1 在工程樹中MBUS_SERVER功能塊

②將MBUS_SERVER拖入程序窗口并設(shè)置參數(shù) 
 
圖3.2 將MBUS_SERVER拖入程序窗口并設(shè)置參數(shù)

  • EN:功能塊使能端
  • Connect:是否開始通信
  • IP_Port:IP端口號(hào)
  • MaxIQ:設(shè)置輸入/輸出線圈
  • MaxAI:設(shè)置輸入寄存器
  • MaxHold:設(shè)置保持寄存器
  • HoldStart:設(shè)置被操作的保持寄存器的起始地址
  • Done:通信是否結(jié)束的標(biāo)志
  • Error:錯(cuò)誤報(bào)文

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

圖3.3 Modbus存儲(chǔ)區(qū)


注意上述程序中使用的數(shù)據(jù)是通過數(shù)據(jù)塊進(jìn)行設(shè)置的: 

  

圖3.4 通過數(shù)據(jù)塊設(shè)置V寄存器數(shù)據(jù)


而且需要注意,如同使用高速計(jì)數(shù)器、PID等,要為MBUS_SERVER功能塊分配空間用于設(shè)定相關(guān)參數(shù): 

  

圖3.5 設(shè)置庫存儲(chǔ)器

 

圖3.6 分配地址

③連接PLC后點(diǎn)擊下載程序
 

圖3.7 連接PLC后點(diǎn)擊下載程序


④查找PLC 

  

圖3.8 查找PLC


⑤與PLC建立通信連接 

  

圖3.9 與PLC建立通信連接


⑥下載程序 

  

圖3.10 下載程序


⑦運(yùn)行PLC 

  

圖3.11 運(yùn)行PLC


⑧在STEP 7中監(jiān)視 

  

圖3.12 在STEP 7中監(jiān)視


⑨設(shè)置觸點(diǎn) 

  

圖3.13 設(shè)置觸點(diǎn)


⑩設(shè)置觸點(diǎn)為ON 

  

圖3.14 設(shè)置觸點(diǎn)為ON


⑪打開ModbusPoll 

  

圖3.15 打開ModbusPoll


⑫點(diǎn)擊Connect 

  

圖3.16 點(diǎn)擊Connect

⑬設(shè)置連接參數(shù)
 

圖3.17 設(shè)置連接參數(shù)


⑭讀取默認(rèn)讀寫情況下的數(shù)據(jù) 

  

圖3.18 讀取默認(rèn)讀取情況下的數(shù)據(jù)


⑮設(shè)置讀寫參數(shù) 

  

圖3.19 設(shè)置讀寫參數(shù)


⑯設(shè)置讀寫參數(shù) 

  

圖3.20 設(shè)置讀寫參數(shù)

⑰讀取結(jié)果
 
圖3.21 讀取結(jié)果

2.報(bào)文分析

 

圖3.22 Modbus TCP 報(bào)文格式

  Modbus TCP的報(bào)文形式

  • 事務(wù)處理標(biāo)識(shí)箱:Modbus請(qǐng)求/響應(yīng)事務(wù)處理的標(biāo)識(shí)
  • 協(xié)議標(biāo)識(shí)符:0=Modbus協(xié)議
  • 長(zhǎng)度:當(dāng)前之后的字節(jié)總數(shù)
  • 單元標(biāo)識(shí)符:串行鏈路活其它總線的從站識(shí)別
  • 功能碼:1——讀取輸出線圈、2——讀取輸入線圈、3——讀取保持寄存器、4——讀取輸入寄存器、5——寫入單線圈、6——寫入單寄存器、15——寫入多線圈、16——寫入多寄存器
  • 數(shù)據(jù):根據(jù)功能碼不同

 

圖3.23 Modbus TCP 報(bào)文

TX發(fā)送報(bào)文

  • 00 03:事務(wù)處理標(biāo)識(shí)箱
  • 00 00:Modbus協(xié)議
  • 00 06:后面有6個(gè)字節(jié)的數(shù)據(jù)
  • 01:1號(hào)從站
  • 03:讀取保持寄存器
  • 00 0A:從0AH=10地址開始
  • 00 14:讀取14H=20個(gè)數(shù)據(jù)

需要注意的是,雖然這里我們報(bào)文中顯示是從地址10開始,但實(shí)際上開始的地址需要結(jié)合PLC中MBUS_SERVER功能塊的端口設(shè)置的開始地址,例如本文中圖3.2設(shè)置的是VB10000,在軟件Modbus Poll中的操作的起始地址是VB10000+2×20=VB10020(數(shù)據(jù)是以兩字節(jié)為一單元)。
RX接收?qǐng)?bào)文

  • 00 03:事務(wù)處理標(biāo)識(shí)箱
  • 00 00:Modbus協(xié)議
  • 00 06:后面有6個(gè)字節(jié)的數(shù)據(jù)
  • 01:1號(hào)從站
  • 03:讀取保持寄存器
  • 28:后面有40個(gè)字節(jié)的數(shù)據(jù)
  • 00 0A:第一個(gè)數(shù)據(jù)10
  • 00 0B:第二個(gè)數(shù)據(jù)11
  • 00 0C:第三個(gè)數(shù)據(jù)12
  • 00 0D:第四個(gè)數(shù)據(jù)13
  • 00 0E:第五個(gè)數(shù)據(jù)14
  • 00 0F:第六個(gè)數(shù)據(jù)15
  • 00 10:第七個(gè)數(shù)據(jù)16
  • 00 11:第八個(gè)數(shù)據(jù)17
  • 00 12:第九個(gè)數(shù)據(jù)18
  • 00 13:第十個(gè)數(shù)據(jù)19
  • 00 14:第十一個(gè)數(shù)據(jù)20
  • 00 15:第十二個(gè)數(shù)據(jù)21
  • 00 16:第十三個(gè)數(shù)據(jù)22
  • 00 17:第十四個(gè)數(shù)據(jù)23
  • 00 18:第十五個(gè)數(shù)據(jù)24
  • 00 19:第十六個(gè)數(shù)據(jù)25
  • 00 1A:第十七個(gè)數(shù)據(jù)26
  • 00 1B:第十八個(gè)數(shù)據(jù)27
  • 00 1C:第十九個(gè)數(shù)據(jù)28
  • 00 1D:第二十個(gè)數(shù)據(jù)29

注意由于窗口不夠長(zhǎng)這里的RX部分報(bào)文沒有顯示出來

四、PLC——Client、PC——Server

1.流程

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

圖4.1 MBUS_CLIENT功能塊


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

  

圖4.2 MBUS_CLIENT各端口含義


不同情況下的端口設(shè)置: 

  

圖4.3 MBUS_CLIENT不同情況下的端口設(shè)置

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

同樣通過數(shù)據(jù)塊設(shè)置V寄存器:
 

圖4.4 通過數(shù)據(jù)塊設(shè)置V寄存器數(shù)據(jù)

 

圖4.5 Modbus Slave讀取到的數(shù)據(jù)

2.報(bào)文分析

 

圖4.6 Modbus Slave通信報(bào)文

TX發(fā)送報(bào)文

  • 11 64:事務(wù)處理標(biāo)識(shí)箱
  • 00 00:Modbus協(xié)議
  • 00 06:后面有06H=6個(gè)字節(jié)的數(shù)據(jù)
  • FF:255號(hào)從站
  • 10:寫入多個(gè)保持寄存器
  • 00 00:從00H=0地址開始
  • 00 0A:讀取0AH=10個(gè)數(shù)據(jù)

RX接收?qǐng)?bào)文

  • 11 64:事務(wù)處理標(biāo)識(shí)箱
  • 00 00:Modbus協(xié)議
  • 00 1B:后面有1BH=27個(gè)字節(jié)的數(shù)據(jù)
  • FF:255號(hào)從站
  • 00 00:從00H=0地址開始
  • 00 0A:讀取0AH=10個(gè)數(shù)據(jù)
  • 16:后面有16H=20個(gè)字節(jié)數(shù)據(jù)
  • 00 14:第一個(gè)數(shù)據(jù)20
  • 00 16:第二個(gè)數(shù)據(jù)22
  • 00 18:第三個(gè)數(shù)據(jù)24
  • 00 1A:第四個(gè)數(shù)據(jù)26
  • 00 1C:第五個(gè)數(shù)據(jù)28
  • 00 1E:第六個(gè)數(shù)據(jù)30
  • 00 20:第七個(gè)數(shù)據(jù)32
  • 00 22:第八個(gè)數(shù)據(jù)34
  • 00 24:第九個(gè)數(shù)據(jù)36
  • 00 26:第十個(gè)數(shù)據(jù)38
      
    圖4.7 顯示報(bào)文

總結(jié)

  本文基于S7-200 SMART和Modbu Poll、Modbus Slave實(shí)現(xiàn)了PC與PLC之間的Modbus TCP通信。過程比較詳細(xì),提供給適合剛剛?cè)腴T的小白食用,包學(xué)包會(huì),學(xué)不會(huì),那就再學(xué)學(xué)😁

Tags:TCP通信,200smart,modbus  
責(zé)任編輯:admin
相關(guān)文章列表
基于S7-200 SMART實(shí)現(xiàn)一鍵啟停_200smart 一鍵啟停
基于S7-200 SMART實(shí)現(xiàn)MATLAB寫入與讀取PLC數(shù)據(jù)_matlab
西門子200smart高速計(jì)數(shù)器指令向?qū)Ъ俺绦颍ㄊ詹兀┨菪螆D實(shí)例
【案例】S7-200SMART運(yùn)動(dòng)定位程序梯形圖實(shí)例
S7-200SMART PLC實(shí)時(shí)時(shí)鐘指令
|分享| S7-200SMART常用指令(二)
|分享| S7-200SMART常用指令(一)
200smart【編程入門】_S7200smart編程入門梯形圖入門
西門子200 smart程序控制指令_200smart程序框架_FOR循環(huán)_子程序
三菱plc FX3U與三菱E800變頻器專用指令通信應(yīng)用,IVDR指令和 IVCK
200SMART什么是中斷程序?如何快穩(wěn)準(zhǔn)理解中斷并完成程序編寫?
神級(jí)匯總,西門子PLC中斷指令及例程 ATCH和ENI
詳解S7-200SMART兩臺(tái)PLC之間的MODBUS主從站通信Modbus-RTU詳解測(cè)
三菱PLC的modbus-rtu通訊實(shí)例_三菱小型PLC FX3U系列Modbus 通訊教
STEP7運(yùn)動(dòng)控制 S7-200Smart控制運(yùn)動(dòng)軸(脈沖電機(jī)/伺服)教程
西門子200SMART與眾辰變頻器的MODBUS通信實(shí)例40001和十六進(jìn)制的轉(zhuǎn)
運(yùn)動(dòng)控制(三)使用200Smart控制步進(jìn)電機(jī),運(yùn)動(dòng)控制指令A(yù)XIS0_CT
西門子S7-200smart通過瞬時(shí)流量來計(jì)算累計(jì)流量的一種方法 中斷IN
西門子plc S7-200smart實(shí)現(xiàn)設(shè)備故障報(bào)警
西門子S7-200 smart通過modbus rtu 協(xié)議采集K37A數(shù)據(jù)項(xiàng)目案例
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
推薦文章
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢