西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電

上傳人:jkl****17 文檔編號(hào):71524486 上傳時(shí)間:2022-04-07 格式:DOC 頁(yè)數(shù):12 大?。?.79MB
收藏 版權(quán)申訴 舉報(bào) 下載
西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電_第1頁(yè)
第1頁(yè) / 共12頁(yè)
西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電_第2頁(yè)
第2頁(yè) / 共12頁(yè)
西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電_第3頁(yè)
第3頁(yè) / 共12頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電》由會(huì)員分享,可在線閱讀,更多相關(guān)《西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、西門子S7_200 MODBUS通信協(xié)議和支持MODBUS RTU協(xié)議的電磁流量計(jì)、超聲波流量計(jì)的通信實(shí)例 S7_200系列PLC有一個(gè)通信口的也有兩個(gè)通信口的,這兩個(gè)口都支持MODBUS通信協(xié)議,不過要添加MODBUS庫(kù)文件(SP6版本的step7 micro/win 軟件自帶有MODBUS庫(kù)文件)。下面根據(jù)具體的項(xiàng)目來說明MODBUS的使用: 在項(xiàng)目中要采集進(jìn)水流量的瞬時(shí)流量、日累計(jì)、月累計(jì)、年累計(jì)量,流量計(jì)本身有4~20mA信號(hào)輸出和脈沖信號(hào)輸出,這些輸出信號(hào)都是瞬時(shí)量,只能轉(zhuǎn)換為瞬時(shí)流量,而累積量就要通過編寫程序來累加,而且信號(hào)的傳輸衰減和計(jì)算過程產(chǎn)生的誤差就會(huì)造成和實(shí)際的流

2、量相差很多,現(xiàn)在很多的流量計(jì)(包括其他的測(cè)量設(shè)備)都設(shè)計(jì)有通訊口,尤其是支持MODBUS協(xié)議,所以首選通信方式采集數(shù)據(jù),這樣可以直接讀取我們想要的數(shù)據(jù),只需做稍微的數(shù)據(jù)轉(zhuǎn)換就可以的,同時(shí)也減小了工作量提高準(zhǔn)確性(實(shí)際是按照流量收取費(fèi)用的)。 實(shí)際的硬件連接:10套s7-200組成PPI網(wǎng)絡(luò)(其中一個(gè)200站做主站),有一個(gè)從站要采集兩個(gè)不同廠家的流量計(jì)的相關(guān)信息。PPI網(wǎng)絡(luò)層已經(jīng)用去了一個(gè)端口0,還剩下一個(gè)端口1,那么就用這個(gè)端口并設(shè)置為自由口協(xié)議,在程序中調(diào)用MODBUS程序塊并填寫好必要的信息就可以了(其實(shí)調(diào)用MODBUS程序塊時(shí),程序塊內(nèi)就已經(jīng)設(shè)置好端口為自由口協(xié)議了)。 圖

3、1.MODBUS庫(kù)文件 圖2.控制指令 圖3.控制指令 這里MBUS_CTRL_P1指令要一直調(diào)用,有一點(diǎn)要指明:圖2中的程序是讀取其中一臺(tái)流量計(jì)的,圖3是讀取另一臺(tái)流量計(jì)的,這兩個(gè)流量計(jì)是不一樣的。這里最重要的是MBUS_MSG_P1指令中地址“Addr”的填寫,其實(shí)這里要填寫Modbus從站的寄存器地址(該地址內(nèi)有我們需要的信息),那么這個(gè)地址要怎么填寫呢,填寫多少呢?這就要查看從站設(shè)備(這里是流量計(jì))的“通信手冊(cè)”了,因?yàn)槊總€(gè)廠家的設(shè)備都不一樣,所以相同信息的寄存器地址也不一樣。下面是流量計(jì)廠家要的通訊手冊(cè)上的信息: RTU消息幀基本定義 0 1 2 3 4

4、 5 6 7 設(shè)備地址 功能編碼 地址1 地址0 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 8位字節(jié) 8位字節(jié) 8位字節(jié) 8位字節(jié) 8位字節(jié) 8位字節(jié) 8位字節(jié) 8位字節(jié) 一、 參數(shù)讀出命令 1、 主機(jī)命令格式 0 1 2 3 4 5 6 7 設(shè)備地址 功能代碼 地址1 地址0 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 1~99 03 0 00--35 0 1 XX XX 2、 從機(jī)回應(yīng)格式 0 1 2 3 4 5 6 設(shè)備地址 功能代碼 長(zhǎng)度 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 1~99 03

5、 2 高字節(jié) 低字節(jié) XX XX 數(shù)據(jù) = 數(shù)據(jù)1 數(shù)據(jù)0; 注意:讀出時(shí),參數(shù)編號(hào)加1(MODBUS協(xié)議規(guī)定),如主機(jī)命令中參數(shù)編號(hào)為08,讀出的參數(shù)編號(hào)為09。 二、 讀出瞬時(shí)流量、流速、百分比、空管比、報(bào)警 1、 主機(jī)命令格式 0 1 2 3 4 5 6 7 設(shè)備地址 功能代碼 地址1 地址0 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 1~99 04 0 0 0 5 XX XX 2、 從機(jī)回應(yīng)格式 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 設(shè)備地址 功能代碼 字節(jié)數(shù)

6、量 流量高位 流量低位 單位數(shù)點(diǎn) 流速高位 流速低位 百分比高 百分比低 空管比高 空管比低 報(bào)警狀態(tài) crc crc 1-99 04 10 三、 讀出累計(jì)總量 1、 主機(jī)命令格式 0 1 2 3 4 5 6 7 設(shè)備地址 功能代碼 地址1 地址0 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 1~99 04 0 5 0 5 XX XX 2、 從機(jī)回應(yīng)格式 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 設(shè)備地址 功能代碼

7、 字節(jié)數(shù)量 正向總量3 正向總量2 正向總量1 正向總量0 反向總量3 反向總量2 反向總量1 反向總量0 總量單位 保留 Crc Crc 1-99 04 10 0 有的通信手冊(cè)并沒有給出例子,而是只有寄存器地址如另一臺(tái)流量計(jì)的通信手冊(cè):: 好了,有了對(duì)應(yīng)的寄存器地址我們就可以參照它來填寫指令中的地址“Addr”,注意一點(diǎn):指令中的地址不能直接填寫對(duì)應(yīng)寄存器的地址,s7-200中是這樣規(guī)定的: 我們讀取的就是從站的保持寄存器的地址,所以要在從站寄存器地址加上數(shù)字40000。例如第二個(gè)流量計(jì)的地址是400

8、01和40113(在圖3中),實(shí)際是讀取了從站的從第一個(gè)和第113個(gè)寄存器開始的信息。功能碼是03。 再來看一下第一個(gè)流量計(jì)中的地址是以3開頭的地址,即30011和30015,這里的程序是沒有錯(cuò)的,這就要看通信手冊(cè)中具體要主站發(fā)送的數(shù)據(jù)幀格式和功能碼,如下:可以看到功能碼是04,這里的功能碼04也是讀取保持寄存器的,那么如何讓PLC發(fā)出04這個(gè)功能碼呢?正常讀取從站時(shí)發(fā)出的功能碼是03(這也是MODBUS協(xié)議給定好的) 3、 主機(jī)命令格式 0 1 2 3 4 5 6 7 設(shè)備地址 功能代碼 地址1 地址0 數(shù)據(jù)1 數(shù)據(jù)0 CRC CRC 1~99 04

9、 0 0 0 5 XX XX 其實(shí)MODBUS標(biāo)準(zhǔn)協(xié)議中也有04這個(gè)功能指令,該指令命名為“讀取輸入寄存器”而不是“保持寄存器”。MODBUS協(xié)議當(dāng)然可以發(fā)送04這個(gè)指令,問題是s7-200中的MODBUS協(xié)議庫(kù)如何發(fā)送04這個(gè)指令呢?MODBUS指令要填寫的信息如下:這里的RW只能填寫0或1代表讀和寫,并不是具體的讀寫指令01、02、03還是04。 其實(shí)這里的RW功能就是告訴s7-200是讀還是寫,至于是具體讀什么或具體寫什么并不是從這里來確定的,是按照它下面的地址“Addr”來區(qū)分的。在step7 micro/win 軟件的幫助中是這樣規(guī)定的: 所以,在我們要讀取的

10、MODBUS從站的寄存器地址的基礎(chǔ)上加上40000,我們最終要輸入的地址就是4000x了(注意地址是從40001開始的而不是40000)。這樣輸入后,PLC在執(zhí)行MODBUS指令時(shí)就會(huì)判斷并發(fā)送的指令是03。同樣如果我們輸入的地址數(shù)據(jù)是3000x,PLC就會(huì)發(fā)送04這個(gè)指令了,也可以這樣理解,s7-200 MODBUS指令通過判斷輸入的信息地址“Addr”的最高位來發(fā)送具體的功能指令(03、04或其他)的。在設(shè)備和PLC通信之前最好先用調(diào)試軟件來調(diào)試設(shè)備通信是否正常,是否能采集到數(shù)據(jù),然后再編寫PLC程序。下面這個(gè)軟件就是模擬了PLC執(zhí)行MODBUS指令,從下面圖中可以看到30001對(duì)應(yīng)的F(

11、功能指令)是04。 還有一點(diǎn)就是編程時(shí)要注意MODBUS指令的調(diào)用:MBUS_CTRL_P1指令要一直調(diào)用, MBUS_MSG_P1同一條指令使能在沒有完成時(shí)要一直有效,要想再次調(diào)用該指令必須將使能端無效一次掃描讓完成標(biāo)志位復(fù)位。 SMB30和SMB130的停止位是1位,其他參數(shù)可以修改的。 ModBus功能碼 功能碼 名稱 作用 01 讀取線圈狀態(tài) 取得一組邏輯線圈的當(dāng)前狀態(tài)(ON/OFF) 02 讀取輸入狀態(tài) 取得一組開關(guān)輸入的當(dāng)前狀態(tài)(ON/OFF) 03 讀取保持寄存器 在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值 04 讀取輸入寄存器 在一個(gè)或

12、多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值 05 強(qiáng)置單線圈 強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài) 06 預(yù)置單寄存器 把具體二進(jìn)值裝入一個(gè)保持寄存器 07 讀取異常狀態(tài) 取得8個(gè)內(nèi)部線圈的通斷狀態(tài),這8個(gè)線圈的地址由控制器決定,用戶邏輯可以將這些線圈定義,以說明從機(jī)狀態(tài),短報(bào)文適宜于迅速讀取狀態(tài) 08 回送診斷校驗(yàn) 把診斷校驗(yàn)報(bào)文送從機(jī),以對(duì)通信處理進(jìn)行評(píng)鑒 09 編程(只用于484) 使主機(jī)模擬編程器作用,修改PC從機(jī)邏輯 10 控詢(只用于484) 可使主機(jī)與一臺(tái)正在執(zhí)行長(zhǎng)程序任務(wù)從機(jī)通信,探詢?cè)搹臋C(jī)是否已完成其操作任務(wù),僅在含有功能碼9的報(bào)文發(fā)送后,本功能碼才發(fā)送

13、11 讀取事件計(jì)數(shù) 可使主機(jī)發(fā)出單詢問,并隨即判定操作是否成功,尤其是該命令或其他應(yīng)答產(chǎn)生通信錯(cuò)誤時(shí) 12 讀取通信事件記錄 可是主機(jī)檢索每臺(tái)從機(jī)的ModBus事務(wù)處理通信事件記錄。如果某項(xiàng)事務(wù)處理完成,記錄會(huì)給出有關(guān)錯(cuò)誤 13 編程(184/384 484 584) 可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯 14 探詢(184/384 484 584) 可使主機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信,定期控詢?cè)搹臋C(jī)是否已完成其程序操作,僅在含有功能13的報(bào)文發(fā)送后,本功能碼才得發(fā)送 15 強(qiáng)置多線圈 強(qiáng)置一串連續(xù)邏輯線圈的通斷 16 預(yù)置多寄存器 把具體的二進(jìn)制值裝入一串連

14、續(xù)的保持寄存器 17 報(bào)告從機(jī)標(biāo)識(shí) 可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈的狀態(tài) 18 (884和MICRO 84) 可使主機(jī)模擬編程功能,修改PC狀態(tài)邏輯 19 重置通信鏈路 發(fā)生非可修改錯(cuò)誤后,是從機(jī)復(fù)位于已知狀態(tài),可重置順序字節(jié) 20 讀取通用參數(shù)(584L) 顯示擴(kuò)展存儲(chǔ)器文件中的數(shù)據(jù)信息 21 寫入通用參數(shù)(584L) 把通用參數(shù)寫入擴(kuò)展存儲(chǔ)文件,或修改之 22~64 保留作擴(kuò)展功能備用 65~72 保留以備用戶功能所用 留作用戶功能的擴(kuò)展編碼 73~119 非法功能 120~127 保留 留作內(nèi)部作用 128~255

15、 保留 用于異常應(yīng)答 ModBus網(wǎng)絡(luò)只是一個(gè)主機(jī),所有通信都由他發(fā)出。網(wǎng)絡(luò)可支持247個(gè)之多的遠(yuǎn)程從屬控制器,但實(shí)際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定。采用這個(gè)系統(tǒng),各PC可以和中心主機(jī)交換信息而不影響各PC執(zhí)行本身的控制任務(wù)。表2是ModBus各功能碼對(duì)應(yīng)的數(shù)據(jù)類型。 表2 ModBus功能碼與數(shù)據(jù)類型對(duì)應(yīng)表 代碼 功能 數(shù)據(jù)類型 01 位 02 讀 位 03 讀 整型、字符型、狀態(tài)字、浮點(diǎn)型 04 讀 整型、狀態(tài)字、浮點(diǎn)型 05 寫 位 06 寫 整型、字符型、狀態(tài)字、浮點(diǎn)型 08 N/A 重復(fù)“回路反饋”信息 15 寫 位 16 寫 整型、字符型、狀態(tài)字、浮點(diǎn)型 17 讀 字符型

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!