www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> plc工業軟件使用 >> 正文

其實,Modbus通訊很簡單!——手把手教你,STEP7

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2024/9/20

主要內容:

  • S7-200 PLC Modbus通訊概述

  • S7-200 PLC Modbus通訊指令,STEP7

  • S7-200 PLC Modbus通訊常問問題

(1)Modbus通訊

S7-200的Modbus通訊:

  • S7-200只支持Modbus RTU協議,不支持Modbus ASCII協議;

  • Modbus是一種單主站的主/從通信模式。一條Modbus網絡上同時只能有一臺主站,從站可以有若干個(如下圖所示)。從站的地址范圍為1-247;

Modbus是一種單主站的主/從通信模式 
  • 一個Modbus通訊的傳輸字符應包括一個起始位,8個數據位,1個或0個校驗位(奇偶校驗或無校驗可選擇),以及一個停止位

  • 在S7-200 CPU通信口上實現的是RS485半雙工通信,使用的是S7-200的自由口功能。

 

上圖是一個典型的主站和從站的網絡結構,對于Modbus主站而言可以對從站進行讀或者寫的操作,其中它所支持的功能碼(FC,Function Code)包括主站左側表格中所述功能,例如功能碼為'01'時表示讀取單個/多個線圈(DO)狀態或功能碼為'04'時表示讀取單個/多個輸入寄存器(AI)狀態。而對于從站,我們只需要把Modbus的標準地址和從站的地址對應關系建立好就可以了,S7-200的從站與Modbus標準的對應關系如從站右側表格所示。表中左側是Modbus標準地址碼,其中1-128對應于S7-200的Q0.0-Q15.7,10001-10128對應于S7-200的I0.0-I15.7,30001-30032對應于AIW0-AIW62,40001-4xxx對應的是S7-200的保持寄存器(V區),它的范圍是T-T+2*(xxxx-1),T表示的是V區的起始地址,這一點由Modbus從站的指令所決定的。

MBUS_MSG指令說明 

Modbus的主站指令叫做MBUS_MSG,通過這條指令可以將Modbus的標準報文發給從站,例如在上圖例子當中從站的第一個字節是03,表示的是從站的地址,FC功能碼為03,表示的是讀取單個/多個保存寄存器,Modbus標準地址是40001,長度是10。隨著功能碼的不同,報文的格式會發生相應的變化,具體的報文格式需要去參閱Modbus的通訊手冊。

MBUS_SLAVE指令 

從站的指令時MBUS _SLAVE,在接到主站發給它的報文后會根據報文的需求返回報文,比如在上圖例子中返回的格式是第一個字節為從站的地址,第二個為功能碼,第三個是數據返回給主站,這樣就完成了一次Modbus通訊的請求與應答的過程。

(2)STEP7中Modbus庫文件的安裝和調用

55

如果想要應用Modbus指令庫,那么首先需要到因特網上或者向西門子的客服人員申請名稱為'Toolbox_V32-STEP 7-Micro WIN' 的指令庫,將它解壓并且安裝到Micro WIN當中就可以使用了,安裝后會在Micro WIN的庫文件當中出現上圖標記的三個庫,其中Port0和Port1都可以做Modbus Master,而Slave只有Port0口可以做。

3)Modbus庫文件的使用

西門子PLC的Modbus庫文件的使用 

使用方法很簡單,打開Modbus主站指令庫會有相應的指令塊出現,直接把指令塊拖拽到程序當中進行調用就可以了。

西門子PLD的Modbus庫文件的使用 

在調用Modbus庫指令的時候,需要注意一定記得為Modbus庫文件分配庫存儲區。具體的方法是右鍵單擊庫,然后選擇庫存儲區,在彈出來的對話框當中可以選擇建議地址,自動分配一個程序里面不會用到的地址區間,也可以人為地手動填寫起始地址,這個區間在程序當中不可以和其他的數據區相沖突,否則Modbus功能將不正常。所謂的庫存儲區其實就是Modbus指令庫能夠正常工作所必須的一部分背景數據,只要給它分配好區間并保證不與程序當中其他的地址相沖突就可以了。

(4)Modbus從站指令,MBUS_INIT初始化和MBUS_SLAVE從站指令

Modbus從站指令,MBUS_INIT初始化和MBUS_SLAVE從站指令 

從站指令一共有兩條,第一條是從站的初始化指令(MBUS_INIT),另一條是MBUS_SLAVE從站指令,在Modbus從站的初始化指令當中涉及哪些內容呢?首先,第一個引腳Mode表示等于1的時候是啟動Modbus,等于0的時候是關閉Modbus,Addr表示的是這個從站的從站地址,Baud表示波特率,Parity是奇偶校驗,0是無校驗,1是奇校驗,2是偶校驗,Delay是附加字符之間的延遲,MaxIQ表示的是最大I/Q地址(默認128),MaxAI表示的是最大AI長度(默認32),MaxHold表示的是最大的V存儲區(VW),最關鍵的是HoldStart,表示的是V區起始地址(對應40001),在之前已經提到過S7-200作為從站的時候,它的V區地址對應于Modbus標準地址的起始地址是可更改的,那么就在這里進行設定,在本例中如果HoldStart寫的是VB0,那么40001對應的地址就是VW0,40002對應的地址是VW2,40003對應的地址是VW4,以此類推,每一個標準的Modbus地址碼對應的是一個Word,以字為單位,同樣如果這里設的是VB100,那么40001對應的就是VW100,40002對應的是VW102,以此類推。這一條初始化指令只需要調用一次就可以了,所以在上圖中用的是SM0.1在上電的時候執行一次就可以了。

MBUS_SLAVE這個功能塊必須要用前面的條件必須是一直為1的,上圖中用SM0.0。

(5)Modbus主站指令,MBUS_CTRL

Modbus主站指令MBUS_CTRL 

Modbus主站指令當中的第一個塊叫做MBUS_CTRL,MBUS_CTRL有哪些內容呢?我們來看一下引腳定義的說明:首先Mode寫1的時候是選擇Modbus,寫0的時候是選擇PPI;Baud表示波特率;Parity是奇偶校驗,0是無校驗,1是奇校驗,2是偶校驗,這與從站的設置相類似;Timeout表示的是主站等待從站響應的時間(ms);Done位是初始化完成;Error位表示的是故障代碼。其中值得一提的是Timeout這個時間,主站等待從站響應的時間指的是什么呢?讓我們來看一下主站和從站之間通訊的過程:

 

首先,主站會發一幀讀寫請求給從站,在主站的讀寫請求發出后,從站應當在Timeout指定的時間內返回應答;如果在此時間內從站沒有應答,則主站發第2次讀寫請求,第2次還不行發第3次讀寫請求,如果連續3次在此時間內從站沒有應答,則主站認定從站無相應,放棄該從站并報錯。

MBUS_MSG主站指令 

下面來看主站的讀寫命令(MBUS_MSG),看一下引腳說明:首先First指的是讀寫請求觸發(沿觸發),每當First這一端來了一個沿,Modbus指令便會做出一次讀或者寫請求,RW標示的是這一次的命令是讀還是寫,0表示讀,1表示寫;Addr表示的是從站數據地址(Modbus標準地址格式),0開頭、1開頭、3開頭和4開頭的;Count指的是通訊數據的長度,最大120個字,單位可能是bit或word;DataPtr指的是參與通訊的本方數據區,如果是讀指令標示的是讀回來的指令放在本地的哪一塊數據區,如果是寫命令表示的是把本地的哪一塊數據發給對方;Done位和Error位分別是功能完成和故障代碼。

 

其中值得一提的是Count,剛才講過它的單位可能是bit或word,究竟是bit或word取決于當時所用的Modbus標準的地址碼是用的哪一塊,如果對于1-128而言這是一個DO的輸出,對于1開頭的是一個DI的輸入點,這個時候Count的單位指的是bit,而對于3開頭和4開頭的,那么是AI和保存寄存器,它們的單位是word。需要注意的是當Count的單位是Bit時,一定Count的數值設置為8的整數倍,否則會出錯,這是因為一個基本傳輸的字符是包含8個數據位的,沒有辦法只傳送一個或幾個bit。

(6)Modbus主從站輪詢

西門子plc的Modbus主從站輪詢 

當存在Modbus多主站輪詢的時候,在程序當中我們應當如何處理呢?上圖中展示了這種方法。例如第一個MBUS_MSG指令我們可以利用它的Done位(本例中為M2.1),把它作為第二條MBUS_MSG指令的First前面的激活端,也就是說第一個MBUS_MSG完成的時候才會去激活下一條MBUS_MSG指令,那么同樣,第二條指令完成時我們把它作為第三條MBUS_MSG指令的激活條件,在最后又把第三條指令的完成位還給第一條網絡,這樣的話就構成了一個循環的輪詢方式。

(7)Modbus FAQ

Q1:S7-200是否支持Modbus ASCII模式?

答:S7-200可以支持上述模式,但是沒有現成的指令庫,需要用戶自己利用自由口的方式編程。

Q2:項目編譯后為何出現很多錯誤?

答:使用指令庫時,若編譯后出現很多錯誤,一般是因為未指定庫指令數據存儲區。

Q3:Modbus從站的網絡地址與S7-200的CPU網絡地址有何關系?

答:沒有關系。支持網絡通信的通信協議必須有其自己的網絡尋址規定。Modbus從站的地址只是它在Modbus網絡上的地址,而通常所說的S7-200 CPU地址是CPU在西門子的PPI網絡上的站地址。

Q4:MBUS_MSG指令中代表數據長度的COUNT引腳單位是什么?

答:對于Modbus地址=0xxxx或1xxxx的,引腳單位為Bit;對于Modbus地址=3xxxx或4xxxx的,引腳單位為Word。

Q5:如何訪問大于9999的保持寄存器地址?

答:Modbus Master協議庫支持超過9999的保持寄存器地址。地址范圍為400001-465536。只需在調用MBUS_MSG子程序時給Addr參數賦相應的值即可,如416768。

Q6:為何有些HMI軟件使用Modbus RTU讀取S7-200中的實數會出現錯誤?

答:不同的廠家關于浮點數格式定義的不同,西門子的PLC遵循的是高位低存的規律,和其他的廠家有可能會不一樣,這樣讀回來的實數或整數的高低字節會發生反轉,這個時候可以通過監控、判斷,在程序當中把它掉過來就可以了。

Q7:MBUS_MSG顯示Error 6#?

答:Error 6#表示Modbus正在忙于其它請求。MBUS_MSG指令同時只能允許有一個讀寫操作處于運行過程,如果在一個讀寫操作尚未完成時啟用另外一個讀寫請求,就會發生Error 6#。利用Done位可以對規避這一問題。

Q8:MBUS_MSG顯示Error 3#?

答:Error 3#表示從站無應答。即主站的讀寫請求發出后,從站沒有在Timeout時間內返回報文。多種原因可以引起此故障,包括:

  • 硬件故障(線路,端口等問題)。

  • 錯誤的從站地址,波特率,奇偶校驗。

  • 從站不支持此功能碼,或不能被從站識別的從站數據地址。

  • Timeout時間過短(從站響應較慢),通過延長Timeout可以解決這個問題。

關注本公眾號,可提高PLC技術,拓寬PLC知識。

Tags:Modbus通訊,STEP7,西門子PLC  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    最新推薦
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
    99久久er热在这里只有精品66| 日韩一区二区电影网| 亚洲成a人片综合在线| 日韩欧美国产一区二区在线播放| 国产精品白丝av| 亚洲激情校园春色| 欧美一区二区三区视频在线观看| 国产一区二区三区在线观看免费视频| 欧美激情综合网| 91免费小视频| 欧美aaaaaa午夜精品| 国产日韩精品视频一区| 日本久久精品电影| 免费在线视频一区| 中文字幕乱码久久午夜不卡| 欧美在线观看视频一区二区 | 欧美激情一区二区三区四区| 91麻豆swag| 久久99最新地址| 亚洲欧美另类久久久精品2019| 欧美一区二区三区播放老司机| 国产99久久久久久免费看农村| 亚洲裸体在线观看| 日韩欧美电影一区| 一本大道久久a久久综合婷婷| 久久精品国产精品亚洲精品 | 综合激情成人伊人| 日韩一级片在线观看| 97超碰欧美中文字幕| 美日韩一区二区| 亚洲色图第一区| 精品国产百合女同互慰| 色域天天综合网| 激情综合亚洲精品| 亚洲一线二线三线久久久| 久久久另类综合| 欧美人体做爰大胆视频| 国产91色综合久久免费分享| 亚洲成人av一区二区| 国产精品美女视频| 日韩欧美国产综合| 欧美无乱码久久久免费午夜一区| 国产一区二区三区国产| 亚洲成人综合视频| 中文字幕永久在线不卡| 欧美大片免费久久精品三p| 色就色 综合激情| 成人综合日日夜夜| 日本欧美一区二区| 一区二区三区不卡在线观看| 国产午夜精品一区二区三区嫩草| 91精品国产免费| 色狠狠综合天天综合综合| 高清国产一区二区三区| 蜜臀av性久久久久av蜜臀妖精 | 日韩精品视频网| 亚洲欧美激情一区二区| 国产喷白浆一区二区三区| 日韩欧美在线观看一区二区三区| 日本二三区不卡| 成人av第一页| 国内一区二区视频| 日本不卡视频在线| 亚洲一区二区偷拍精品| 1024精品合集| 中文一区一区三区高中清不卡| 欧美电影免费观看高清完整版| 欧美人伦禁忌dvd放荡欲情| 91无套直看片红桃| 懂色中文一区二区在线播放| 韩国v欧美v亚洲v日本v| 老司机午夜精品| 午夜成人免费电影| 亚洲成人免费在线| 亚洲一卡二卡三卡四卡| 亚洲精品高清视频在线观看| 国产精品久久久久婷婷二区次| 久久久三级国产网站| 精品国精品国产| 日韩欧美区一区二| 日韩三级伦理片妻子的秘密按摩| 欧美老肥妇做.爰bbww视频| 色狠狠色狠狠综合| 91色视频在线| 91免费观看在线| 91美女在线视频| 91蝌蚪porny| 91网站在线播放| 91美女蜜桃在线| 91视频精品在这里| 色播五月激情综合网| 91免费国产在线| 91福利视频久久久久| 在线免费精品视频| 欧美午夜影院一区| 欧美日韩小视频| 91.麻豆视频| 日韩精品一区二区三区视频| 欧美videossexotv100| 欧美电影免费观看高清完整版在线 | 91麻豆精品国产自产在线观看一区| 欧美日韩一卡二卡三卡 | 国产亚洲精品aa| 国产亚洲欧美日韩日本| 国产精品毛片久久久久久| 亚洲视频一区二区在线| 亚洲精品国产a久久久久久| 一区二区三区精品在线| 亚洲国产视频a| 日本亚洲最大的色成网站www| 免费欧美日韩国产三级电影| 黄网站免费久久| 国产91露脸合集magnet| 91免费看`日韩一区二区| 欧美性大战久久久| 欧美一区二区播放| 久久综合九色综合欧美98| 欧美激情一区在线观看| 国产精品免费视频观看| 亚洲免费av高清| 日韩激情中文字幕| 国产一区二区看久久| 成人av网站在线观看免费| 一本一道久久a久久精品综合蜜臀| 欧美三片在线视频观看| 日韩欧美国产综合在线一区二区三区| 精品国产亚洲在线| 亚洲欧洲99久久| 天天影视网天天综合色在线播放| 精品亚洲成a人| 99re免费视频精品全部| 欧美无乱码久久久免费午夜一区| 日韩视频不卡中文| 欧美激情在线观看视频免费| 亚洲精品国产成人久久av盗摄| 日本va欧美va精品发布| 成人性生交大片免费看中文| 在线亚洲欧美专区二区| 欧美大片一区二区| 亚洲特黄一级片| 日本欧美加勒比视频| 成人午夜又粗又硬又大| 欧美少妇bbb| 精品999在线播放| 亚洲激情图片一区| 激情综合网激情| 一本大道久久a久久精品综合| 日韩一卡二卡三卡四卡| 中文字幕亚洲综合久久菠萝蜜| 婷婷久久综合九色综合绿巨人 | 久久国产欧美日韩精品| av动漫一区二区| 欧美一区二区在线免费观看| 国产精品免费视频网站| 日韩精品一区第一页| 成人a级免费电影| 欧美高清激情brazzers| 国产精品嫩草久久久久| 日本aⅴ亚洲精品中文乱码| a亚洲天堂av| 欧美一卡二卡在线观看| 最新国产精品久久精品| 免费在线观看日韩欧美| 99re视频精品| 精品国产露脸精彩对白| 亚洲影视在线观看| 成人综合在线观看| 日韩一区二区视频| 亚洲日本在线a| 国精品**一区二区三区在线蜜桃| 91久久精品日日躁夜夜躁欧美| 久久精品夜色噜噜亚洲a∨| 亚洲国产另类av| www.亚洲免费av| 久久婷婷一区二区三区| 五月激情综合色| 99久久亚洲一区二区三区青草| 精品福利一区二区三区| 亚洲a一区二区| 91影视在线播放| 久久精品夜色噜噜亚洲aⅴ| 日本视频免费一区| 欧美性猛片aaaaaaa做受| 亚洲欧洲无码一区二区三区| 国产一区二区在线视频| 欧美精品一二三| 亚洲精品大片www| 成人午夜免费视频| 精品少妇一区二区三区在线播放| 亚洲一二三区不卡| 95精品视频在线| 国产欧美一二三区| 韩国欧美国产1区| 日韩午夜激情av| 午夜国产精品一区| 欧美综合久久久| 一区二区三区四区在线播放 | 亚洲视频在线观看三级| 成人一级黄色片| 久久久久99精品国产片|