S7-200通過自由口連接MODBUS設(shè)備_第1頁
S7-200通過自由口連接MODBUS設(shè)備_第2頁
S7-200通過自由口連接MODBUS設(shè)備_第3頁
S7-200通過自由口連接MODBUS設(shè)備_第4頁
S7-200通過自由口連接MODBUS設(shè)備_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、S7-200通過自由口 MODBU連接接線方法如下CANONS S7-2OO自由口Q.QADDRESS西門子在 Micro/WIN V4.0 SP5中正式推出 Modbus RTU主站協(xié)議庫(西門子標(biāo) 準(zhǔn)庫指令)。隹 1 hlcxb膺 制酬即Port 0 闌 方 3 一| Modbus Master Port 1 (vl 2 0 二| Modbus Slave Port 0 (vl D E _J USS Protocol Port 0(vZ3)l 由“= U5S F7otQ8l 刊叮1 昭向.S _| Clockjnteger (vi d)可 _j MicroScale (vl .0)0 PT

2、OM.O)S _| Scaling |v1 2)0 _ Sign Operation (vlOJ+型調(diào)用子程序圖1.西門子標(biāo)準(zhǔn)指令庫(Micro/WIN V4.0 SP5)逸注意:1. Modbus RTU主站指令庫的功能是通過在用戶程序中調(diào)用預(yù)先編好的程序功能塊實(shí) 現(xiàn)的,該庫對(duì) Port 0和Port 1有效。該指令庫將設(shè)置通信口工作在自由口模式下。2. Modbus RTU主站指令庫使用了一些用戶中斷功能,編其他程序時(shí)不能在用戶程序中禁止中斷。3. Modbus RTU 主站庫對(duì)CPU的版本有要求。CPU的版本必須為 2.00或者2.01(即 訂貨號(hào)為 6ES721* *23-0BA* )

3、, 1.22版本之前(包括1.22版本)的S7-200 CPU 不 支持。使用Modbus RTU主站指令庫,可以讀寫Modbus RTU從站的數(shù)字量、模擬量I/O 以及保持寄存器。要使用Modbus RTU主站指令庫,須遵循下列步驟:1. 安裝西門子標(biāo)準(zhǔn)指令庫2. 按照要求編寫用戶程序調(diào)用 Modubs RTU主站指令庫Modbus RTU主站功能編程1. 調(diào)用Modbus RTU主站初始化和控制子程序使用SM0.0調(diào)用MBUS_CTR完成主站的初始化,并啟動(dòng)其功能控制:網(wǎng)絡(luò)注釋初始化剛odb皿主站通信a.DrMBUS.CTRLtl 4On1Mede1C.9600-BaudDorwd,-Pa

4、rityErrore.1000*TimeoutM0.0 f. -mbi g.圖2.用SM0.0調(diào)用Modbus RTU主站初始化與控制子程序各參數(shù)意義如下:a) EN使能:必須保證每一掃描周期都被使能(使用SM0.0)b) Mode 模式:為1時(shí),使能Modbus協(xié)議功能;為0時(shí)恢復(fù)為系統(tǒng)PPI 協(xié)議c) Baud 波特率: 支持的通訊波特率為 1200,2400,4800,9600,19200, 38400, 57600, 115200。d) Parity 校驗(yàn):校驗(yàn)方式選擇0=無校驗(yàn)1=奇較驗(yàn)2=偶較驗(yàn)e) Timeout超時(shí):主站等待從站響應(yīng)的時(shí)間,以毫秒為單位,典型的設(shè)置值為 1000

5、毫秒(1秒),允許設(shè)置的范圍為 1 - 32767。丄注意:這個(gè)值必須設(shè)置足夠大以保證從站有時(shí)間響應(yīng)。f) Done完成位:初始化完成,此位會(huì)自動(dòng)置1??梢杂迷撐粏?dòng) MBUS_MSG 讀寫操作g) Error初始化錯(cuò)誤代碼(只有在 Do ne位為1時(shí)有效):0 =無錯(cuò)誤1=校驗(yàn)選擇非法2=波特率選擇非法3=模式選擇非法2. 調(diào)用 Modbus RTU主站讀寫子程序 MBUS_MSG,發(fā)送一個(gè) Modbus請(qǐng)求;讀取從站輸入點(diǎn)a. m2,1MBUS_MSGEMb. M2.1First3010001-VBSOOO-SlaveRWAddr Count D希PhDaneErro(-M22 h. -M

6、B4 L圖3.調(diào)用Modbus RTU主站讀寫子程序各參數(shù)意義如下:a)EN使能:同一時(shí)刻只能有一個(gè)讀寫功能(即 MBUS_MSG )使能注意:建議每一個(gè)讀寫功能(即MBUS_MSG)都用上一個(gè) MBUS_MSG指 令的Done完成位來激活,以保證所有讀寫指令循環(huán)進(jìn)行(見例程)。b)First讀寫請(qǐng)求位:每一個(gè)新的讀寫請(qǐng)求必須使用脈沖觸發(fā)c)Slave從站地址:可選擇的范圍 1 -247d)RW從站地址:0二讀,1 =寫注意:關(guān)量輸出和保持寄存器支持讀和寫功能輸入和模擬量輸入只支持讀功能e)Addr讀寫從站的選擇讀寫的數(shù)據(jù)類型數(shù)據(jù)地址:00001至0xxxx -開關(guān)量輸出10001至1xxxx

7、 -開關(guān)量輸入30001至3xxxx -模擬量輸入40001至4xxxx -保持寄存器f)Count數(shù)據(jù)個(gè)數(shù)通訊的數(shù)據(jù)個(gè)數(shù)(位或字的個(gè)數(shù))注意: Modbus主站可讀/寫的最大數(shù)據(jù)量為120個(gè)字(是指每一個(gè)MBUS_MSG 指令)g)g. DataPtr數(shù)據(jù)指針:如果是讀指令,讀回的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中如果是寫指令,要寫出的數(shù)據(jù)放到這個(gè)數(shù)據(jù)區(qū)中h)Done完成位讀寫功能完成位i)Error錯(cuò)誤代碼: 只有在Done位為1時(shí),錯(cuò)誤代碼才有效0 =無錯(cuò)誤1 =響應(yīng)校驗(yàn)錯(cuò)誤2 =未用3 =接收超時(shí)(從站無響應(yīng))4 = 請(qǐng)求參數(shù)錯(cuò)誤 (slave address, Modbus address, co

8、unt, RW)5 = Modbus/自由口未使能6 = Modbus正在忙于其它請(qǐng)求7 =響應(yīng)錯(cuò)誤(響應(yīng)不是請(qǐng)求的操作)8 =響應(yīng)CRC校驗(yàn)和錯(cuò)誤101 =從站不支持請(qǐng)求的功能102二從站不支持?jǐn)?shù)據(jù)地址103二從站不支持此種數(shù)據(jù)類型104 =從站設(shè)備故障105 =從站接受了信息,但是響應(yīng)被延遲106二從站忙,拒絕了該信息107二從站拒絕了信息108 =從站存儲(chǔ)器奇偶錯(cuò)誤常見的錯(cuò)誤:如果多個(gè)MBUS_MS指令同時(shí)使能會(huì)造成6號(hào)錯(cuò)誤從站delay參數(shù)設(shè)的時(shí)間過長會(huì)造成主站 3號(hào)錯(cuò)誤從站掉電或不運(yùn)行,網(wǎng)絡(luò)故障都會(huì)造成主站 3號(hào)錯(cuò)誤3. 在CPU的V數(shù)據(jù)區(qū)中為庫指令分配存儲(chǔ)區(qū)(Library Mem

9、ory )Modbus Master指令庫需要一個(gè)284個(gè)字節(jié)的全局 V存儲(chǔ)區(qū)。1如下圖所示在”程序塊”上點(diǎn)擊右鍵選擇”庫內(nèi)存區(qū)2.出現(xiàn)對(duì)話框,分配一個(gè)大小為 284的存儲(chǔ)區(qū)域。注意:不要與別的存儲(chǔ)區(qū)域相沖突。Modbus RTU主站協(xié)議庫的補(bǔ)充說明此為西門子正式推出的標(biāo)準(zhǔn)庫指令說明資料。在Modbus RTU Master協(xié)議和PPI協(xié)議之間切換:Modbus RTU Master協(xié)議指令庫使通信口工作在自由口模式下,此時(shí)不能與Micro/WIN軟件通信。要在切換回PPI協(xié)議,可以:將MBUS_CTR指令的Mode輸入端設(shè)置為邏輯“ 0”*將CPU的允許模式選擇開關(guān)置為 STOP位置Modb

10、us RTU Master協(xié)議庫的執(zhí)行時(shí)間:Modbus RTU Master協(xié)議庫的MBUS_CTRL旨令不需要很長的執(zhí)行時(shí)間。 MBUS_ 需要1.11 ms用于初始化,在后續(xù)的每個(gè)掃描周期中只占用0.41 ms。調(diào)用MBUS_MS子程序會(huì)加長處理時(shí)間。大部分時(shí)間都用于 CRC校驗(yàn)的計(jì)算。 每讀、寫一個(gè)字的數(shù)據(jù)就需要1.85 ms掃描時(shí)間。數(shù)據(jù)最多的情況下(讀、寫120 字的數(shù)據(jù)),掃描時(shí)間大概會(huì)擴(kuò)增加 222 ms。讀操作的時(shí)間主要消耗在接收數(shù) 據(jù)上;寫操作的時(shí)間主要消耗在發(fā)送數(shù)據(jù)上。Modbus地址通常Modbus地址由5位數(shù)子組成,包括起始的數(shù)據(jù)類型代號(hào),以及后面的偏 移地址。Mod

11、busMaster協(xié)議庫把標(biāo)準(zhǔn)的 Modbus地址映射為所謂 Modbus功能號(hào),讀寫從站的數(shù)據(jù)。Modbus Master協(xié)議庫支持如下地址: 00001 - 09999 :數(shù)字量輸出(線圈) 10001 - 19999 :數(shù)字量輸入(觸點(diǎn)) 30001 - 39999 :輸入數(shù)據(jù)寄存器(通常為模擬量輸入) 40001 - 49999 :數(shù)據(jù)保持寄存器Modbus Master協(xié)議庫支持的功能為了支持上述Modbus地址的讀寫,ModbusMaster協(xié)議庫需要從站支持下列功厶匕冃匕: 表1.需要從站支持的功能Modbus從站須支持的功能Modbus地址讀/寫00001 - 09999 讀功

12、能 1數(shù)字量輸出寫功能5 :寫單輸出點(diǎn)功能15 :寫多輸出點(diǎn)10001 - 19999 讀功能 2數(shù)字量輸入寫30001 - 39999 讀功能 4輸入寄存器寫40001 - 49999 讀功能 3功能16 :寫多寄存器單元Modbus地址和S7-200存儲(chǔ)區(qū)地址的映射S7-200通過Modbus Master和Slave 協(xié)議庫通信時(shí),Modbus地址和S7-200 內(nèi)存儲(chǔ)區(qū)地址的 映射關(guān)系都類似。Modbus保持寄存器地址映射舉例:Modbus保持寄存器地址S7-200存儲(chǔ)區(qū)字尋址S7-200存儲(chǔ)區(qū)字節(jié)尋址4000112 34VW20012 34VB200124000256 78VW202

13、56 78VB20134400039A BCVW2049A BCVB20256VB20378VB2049AVB205BCModbus數(shù)字量地址映射舉例:位地址(Oxxxx和Ixxxx )數(shù)據(jù)總是以字節(jié)為單位打包讀寫。 第一個(gè)字節(jié)中的最 低有效位對(duì)應(yīng)Modbus地址的起始地址。如下圖所示:VX7VX.01000610007 110006 110005L 100311- 100021 1000310D04圖4.數(shù)字量地址映射舉例常問問題ModbusRTU主站庫對(duì)CPU的版本是否有要求,為什么編譯例子程序時(shí),會(huì) 遇到4個(gè)錯(cuò)誤?Modbus RTU主站庫對(duì)CPU的版本確實(shí)有要求,CPU的版本必須為2.

14、00或者 2.01(即訂貨號(hào)為6ES721* *23-0BA*) , 1.22版本之前(包括1.22 版本) 的S7-200 CPU不支持。Modbus指令庫啟動(dòng)后,如何通過同一個(gè)通信端口進(jìn)行CPU監(jiān)控?Modbus指令庫使用的是CPU的自由口通信功能,工作在自由口模式下的通訊口 不能使用Micro/WIN的PPI編程通信監(jiān)控。如果通信口都已經(jīng)被占用,可以考 慮:加一個(gè)通信模塊(如 EM 277、CP 243-1、EM241等)擴(kuò)展出一個(gè)編程通 信口中止自由口模式,可以將 CPU上的模式開關(guān)從RUN撥到STOP;或者保 持處于RUN狀態(tài),用程序停止指令庫的Modbus模式(參見指令庫應(yīng)用)?&

15、#39;如何理解Modbus地址與功能碼的區(qū)別?Modbus地址與Modbus的功能碼是兩個(gè)層次的概念根據(jù)Modbus通信協(xié)議,Modbus數(shù)據(jù)的地址使用 0xxxx、1xxxx、3xxxx和4xxxx 的形式,分別表示數(shù)字量輸出、數(shù)字量輸入、模擬量輸入等數(shù)據(jù)地址。在使用 S7-200的指令庫時(shí),Modbus數(shù)據(jù)地址與S7-200的I/O 和數(shù)據(jù)存儲(chǔ)區(qū)地址間 有特定的對(duì)應(yīng)關(guān)系。有些設(shè)備表明它支持 Modbus RTU通信協(xié)議,但也詳細(xì)提供了讀寫數(shù)據(jù)的詳細(xì)通 信幀格式,其中包括如何指定Modbus站的地址,需要讀寫數(shù)據(jù)類型、長度等等。數(shù)據(jù)幀有特定字節(jié)指出此指令讀寫的數(shù)據(jù)類型和地址,此字節(jié)的數(shù)據(jù)內(nèi)容即所謂 “功能碼”,如功能1指定讀取單個(gè)/多個(gè)數(shù)字量輸出點(diǎn)的值。支持Modbus協(xié)議的設(shè)備或軟件,使用時(shí)用戶直接設(shè)置或看到的應(yīng)當(dāng)是Modbus數(shù)據(jù)地址。Modbus地址所訪問的數(shù)據(jù),是通過各種“功能”讀寫而來。功能碼 是Modbus地址的底層。如果Modbus通信的一方提供的所謂 Modbus協(xié)議只有 功能碼,則需要注意了解此功能號(hào)與 Modbus地址間的對(duì)應(yīng)關(guān)系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論