MB3480學習心得_第1頁
MB3480學習心得_第2頁
MB3480學習心得_第3頁
MB3480學習心得_第4頁
MB3480學習心得_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、基礎(chǔ)知識:1、什么是Modbus?Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個品牌)在1979年發(fā)明的,是全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議。2、主-從結(jié)構(gòu):主設(shè)備查詢查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。從設(shè)備回應如果從設(shè)備產(chǎn)生正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):像寄存器值或

2、狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認消息內(nèi)容是否可用。每個MODBUS幀都包括地址域  功能域  數(shù)據(jù)域 錯誤檢測域3、Modbus的三種通信協(xié)議:Modbus協(xié)議分為三種通信方式:Modbus RTU、Modbus ASCII以及Modbus TCP。首先,Modbus TCP的通信格式和Modbus RTU非常相似,唯一的差別只是Modbus RTU最后帶兩個字節(jié)的CRC校驗,而Modbus TCP沒有。其次,Modbus ASCII的通信格式與Mo

3、dbus RTU其實“神合貌離”,就是把Modbus RTU的每一個字節(jié)(例如:27H)高四位(2)和低四位(7)拆分為兩個字節(jié),并以ASCII碼的方式表現(xiàn)出來(32 37),再給命令幀分別加上起始符和結(jié)束符便可以,當然Modbus RTU和Modbus ASCII的校驗的方式不同,這里暫不詳述,所以同一條命令用Modbus RTU方式和Modbus ASCII方式表現(xiàn)出來,雖然在命令長度的上有很大的區(qū)別,但其實際表達的意思卻是一樣。4、RTU方式:幀定界 :MODBUS RTU方式下,每兩個字符之間發(fā)送或者接收的時間間隔不能超過1.5倍 字符傳輸時間。如果兩個字符時間間隔超過了3.

4、5倍的字符傳輸時間,規(guī)約就認為一幀數(shù)據(jù)已經(jīng)接收,新的一幀數(shù)據(jù)傳輸開始。備注:NPort與MGate產(chǎn)品的區(qū)別就在于,MGate在每幀報文的之后,增加了3.5倍的字符傳輸時間,而NPort則沒有。5、ASCII方式:幀定界:“:”幀起始   “CR LF” 幀結(jié)束 ASCII方式用兩個ASCII字符表示一個8位數(shù)據(jù),比如16進制的3A用字符“3”和字符“A”表示。6、Modbus TCPModbus TCP數(shù)據(jù)幀包含報文頭、功能代碼和數(shù)據(jù)3個部分:MBAP報文頭(MBAP:Modbus Application Protocol,Modbus應用協(xié)

5、議)分4個域,共7個字節(jié):自注:這里的客戶端、服務器端是指TCP的Client、Server端。二、MGate說明:1、通信模式1)MGate配置文件中:Modbus采用主從結(jié)構(gòu),只有兩種模式:Master和SlaveRTU/ASCII Slave:PC作為Master主,裝置作為Slave從;RTU/ASCII Master:PC作為Slave從,裝置作為Master主;RTU與ASCII的區(qū)別:a) 校驗:RTU:CRC(循環(huán)冗長校驗);ASCII:LRC(縱向冗長校驗);校驗碼用于檢查信息的完整性;b)消息格式不同:RTU:消息中每個字節(jié)(8Bit)包含2個4Bit的十六進制字符,優(yōu)點:

6、同樣波特率下,比ASCII傳送更多的數(shù)據(jù);ASCII:消息中每個字節(jié)(8Bit)都作為一個ASCII碼(2個十六進制字符)發(fā)生,優(yōu)點:字符發(fā)送的時間間隔可達到1秒而不產(chǎn)生錯誤;2)說明手冊中:兩種通信模式:A)以太網(wǎng)Master串口Slave:Modbus TCP可支持同時16個連接,串口支持RS-232和RS-422/485,其中RS-232和RS-422僅能連一個設(shè)備,RS-485可連接31個設(shè)備;B)串口Master以太網(wǎng)Slave:可支持32個Modbus TCP slave設(shè)備;三、實測:1、結(jié)構(gòu):筆記本電腦網(wǎng)口àMB3480à筆記本+UPort 1150;2、U

7、Port 1150設(shè)置:默認為RS-232方式,注意設(shè)置為RS-485(也可為RS-232),方法:“控制面板”à“設(shè)備管理器”à3、MB3480的設(shè)置:1)主從模式的設(shè)定:以PC端作為Master、裝置作為Slave為例;2)設(shè)置串口狀態(tài):3)ID映射:說明:a)Modbus TCP通信標準端口號為502,所有的端口號都是502,串口通過ID好識別;b) ID表中設(shè)置情況:15:Port1;610:Port2;c) 從站偏移量:可不設(shè),以下為例子,假定偏移量為3;4、使用的軟件:前提說明:兩套軟件:軟件一:自己在網(wǎng)上找的Modbus Poll和Modbus Slave,注

8、意:Modbus Poll:只作為Master(主端)(TCP Master和RTU Master都用它);Modbus Slave:只作為Slave(從端)(TCP Slave和RTU Slave都用它);軟件二:劉丹提供的ModScan32和ModSim32,注意:ModScan32:只作為Master(主端)(TCP Master和RTU Master都用它);ModSim32:只作為Slave(從端)(TCP Slave和RTU Slave都用它);軟件一:Modbus Poll(用于TCP Master)Modbus Slave(用于串口的Slave)1) 打開Modbus Slav

9、e:選擇“Connectiong”注意:UPort 1150映射為主機的COM2口,使用這里選擇Port2;ID號:1;功能碼:3;2) 打開Modbus Poll:選擇“Connection”,端口號為502;ID號:1;功能碼:3;3) 注意事項:a) Modbus Poll和Modbus Slave設(shè)置的ID號、功能碼必須一致;b) 通信成功的判斷:可從Modbus Poll軟件本身、MGate Manager的“監(jiān)控”來觀察;注意:Mdobus Slave軟件無法判斷連接是否成功;通信成功的界面:Modbus Poll:Tx值不斷增加,Err值為0(Err指響應的返回值);MGate

10、Managerà“監(jiān)控”:通信不成功的界面:比如:將Modbus Slave的連接斷開,則Modbus Poll會報錯:正確的連接,則Err=0;MGate Managerà“監(jiān)控”:圖中:TCP Req、RTU Req(通過MB3480轉(zhuǎn)發(fā)到RTU串口的),沒有Resp。c) 其他功能鍵的使用:Modbus Poll:Read/Write Definition:可設(shè)置ID號、功能碼、地址;Reset Counters:充值計數(shù)器;其中:地址可自定義,但是Modbus Poll和Modbus Slave的地址設(shè)置都要一致;Modbus Slave:Slave Definit

11、ion:可設(shè)置ID號、功能碼、地址;軟件二:ModScan32:用于TCP Master;ModSim32:用于RTU Slave;1) 打開ModSim32軟件:直接打開目錄,點擊“ModSim32.exe”即可;點擊“OK”;等幾秒鐘,“OK”由灰色變?yōu)楹谏纯牲c擊;等幾秒鐘,“OK”由灰色變?yōu)楹谏纯牲c擊;“File”à“New”:“Connection”à“Port2”-UPort 1150在筆記本上映射的端口號為COM;2)打開ModScan32軟件:直接打開目錄,點擊“ModScan32.exe”即可;“Connection”à“Remote TCP/

12、IP Server”:3)注意事項:a)ModScan32和ModSim32的Address(地址)、Device Id(ID號)、MODBUS Point Type(功能碼,為3)設(shè)置必須一致,其中:ID號:Port1為15;功能碼:為3;Address:可自己設(shè)定,只要ModScan32和ModSim32的一致就可以了;b) 連接不成功的界面:比如:將Address一個設(shè)置為“0001”,另一個設(shè)置為“0100”,則會連接不成功,如下界面:而ModSim32則不會有報錯信息;錯誤一:出現(xiàn)“*MODBUS Message TIME-OUT*”,如果正確的連接,則沒有這行報錯;錯誤二:Numb

13、er of Polls的值一直在增加,而Valid Slave Responses的值不變,這說明TCP Master一直發(fā)送請求,卻一直沒有得到回應;當正確連接后,點擊“Reset Ctrs”后,這個計數(shù)值就會清零,重新累計,出現(xiàn)的數(shù)據(jù)應該是Number of Polls與Valid Slave Responses一致;c)當修改設(shè)置后,參數(shù)會自動執(zhí)行,不要重啟軟件或按鍵;d)如果所有設(shè)置都正確,但是連接卻還是報錯,這種情況下,只要將ModScan32和ModSim32軟件重新開啟就可以了,因為這個軟件是沒有經(jīng)過注冊的;5、監(jiān)控和數(shù)據(jù)報文:1)一個完整的輪詢過程:TCP Req(TCP請求)

14、à轉(zhuǎn)為RTU Req(RTU請求)àRTU Resp(RTU回應)àTCP Resp(TCP回應);2) 報文內(nèi)容:分析如下:TCP Req:01 00 00 00 00 06 01 03 00 63 00 05TCP請求 MBAP報頭 從設(shè)備ID 起始地址 讀寄存器個數(shù)7個Byte(字節(jié))功能碼MBAP報頭格式:MBAP包含7個字節(jié):01 00:處理標識ID,取決于設(shè)備的類型,取值一般為0000到FFFF;00 00:協(xié)議ID,0=Modbus協(xié)議;00 06:后面跟隨的字節(jié)個數(shù)(包含從設(shè)備ID號),此例:后面跟隨了6個字節(jié);01:從設(shè)備的ID號;RTU Req

15、:01 03 00 63 00 05 75 D7RTU請求 從設(shè)備ID 起始地址 讀寄存器個數(shù)功能碼 CRC校驗碼(高à低)-RTU方式;RTU Resp:01 03 0A 00 01 00 02 00 03 00 04 00 05 CF 24RTU回應 從設(shè)備ID 回復的數(shù)據(jù) 校驗碼長度 CRC(高à低) 功能碼 TCP Resq:TCP回應01 00 00 00 00 0D 01 03 0A 00 01 00 02 00 03 00 04 00 05 MBAP報頭 從設(shè)備ID 長度 回復的數(shù)據(jù) 功能碼MBAP:00 0D:13-后面跟隨13個字節(jié);6、較深入的報文內(nèi)容:

16、1)Modbus Poll向多個寄存器發(fā)送數(shù)據(jù)的報文分析:a)Modbus Poll中的設(shè)置:雙擊紅框部分,界面:Value中填入要發(fā)送的數(shù)據(jù),注意:這是十進制,對于“監(jiān)控”中是十六進制;Slave ID:Port所接從設(shè)備的ID;Address:這是寄存器地址,第1個是0,第2個是1;b)多寄存器報文分析:監(jiān)控中看到的數(shù)據(jù):分析: 第一組:i)TCP Req:TCP發(fā)送請求;時間數(shù)據(jù)0.000 03 36 00 00 00 06 01 03 00 00 00 0A MBAP報頭從設(shè)備ID 起始地址 讀寄存器個數(shù) 功能碼MBAP:03 36:處理標識ID;00 00:協(xié)議ID,0=Mdobus

17、;00 06:后面跟隨的字節(jié)個數(shù);01:從設(shè)備ID;ii)RTU Req:通過MB3480轉(zhuǎn)換到串口的請求;時間數(shù)據(jù)0.00001 03 00 00 00 0A C5 CD 從設(shè)備ID 起始地址 寄存器個數(shù) CRC校驗碼 功能碼注意:i)與ii)的起始地址、寄存器個數(shù)是一樣的;ii)在i)的基礎(chǔ)上,去掉了MBAP報頭,并且增加了CRC校驗碼;iii)RTU Resp:從串口RTU回應的數(shù)據(jù);時間數(shù)據(jù)0.090 01 03 14 00 0F 00 10 00 11 00 12 00 00 00 00 00 00 00 00 00 00從設(shè)備ID 長度 15 16 17 18 00 00 11 6

18、9 功能碼校驗碼一共10個寄存器:00 0F:表示15;00 10:表示16;00 11:表示17;00 12:表示18;其余寄存器為00,沒有發(fā)送數(shù)據(jù);注意:第i)、ii)是請求,沒有具體數(shù)據(jù),只有寄存器起始地址和寄存器個數(shù);第iii)、iv)開始回應數(shù)據(jù);iv)TCP Resp:通過MB3480轉(zhuǎn)到TCP的回應數(shù)據(jù);時間數(shù)據(jù)0.090 03 36 00 00 00 17 01 03 14 00 0F 00 10 00 11 00 12 00 00 00MBAP報頭 從設(shè)備ID 長度 00 00 00 00 00 00 00 00 00 功能碼 數(shù)據(jù)注意:第iv)的MBAP報頭與i)的報頭是一樣的;第二組:與第一組一樣,需要注意的:MBAP報頭不同;起始地址、寄存器個數(shù),甚至校驗碼都是一樣的;2)ModScan32向多個寄存器發(fā)送數(shù)據(jù)的報文:4001:<00000> 第一個寄存器,發(fā)送的數(shù)據(jù)是0;4001:<00000&g

溫馨提示

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

評論

0/150

提交評論