




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章Modbus通信協(xié)議
5.1Modbus通信協(xié)議概述
Modbus是MODICON公司1979年為其生產(chǎn)的PLC設(shè)計(jì)的一種通信協(xié)議。從功能上看,Modbus是一種現(xiàn)場(chǎng)總線,現(xiàn)已成為通用工業(yè)標(biāo)準(zhǔn)。很多型號(hào)的PLC、儀表、變頻器、HMI、組態(tài)軟件均支持Modbus。1989年Modicon公司又開(kāi)發(fā)推出了ModbusPlus。1998年施耐德公司推出基于TCP/IP以太網(wǎng)的Modbus/TCP。5.1.1Modbus通信協(xié)議特點(diǎn)
Modbus為應(yīng)用層報(bào)文傳輸協(xié)議,僅定義了通信的消息結(jié)構(gòu)。Modbus信息幀包括從機(jī)地址、功能碼、數(shù)據(jù)區(qū)和數(shù)據(jù)校驗(yàn)碼。Modbus定義了控制器可以識(shí)別和使用的消息結(jié)構(gòu),描述了控制器訪問(wèn)另一設(shè)備的過(guò)程、被訪問(wèn)者如何應(yīng)答、偵測(cè)和提交差錯(cuò)信息。把網(wǎng)絡(luò)上的通信參與者規(guī)定為“主站”(Master)和“從站”(Slave),同一網(wǎng)絡(luò)上只能有一個(gè)主站,其余均為從站。只有主站能主動(dòng)訪問(wèn),從站只能被動(dòng)應(yīng)答。Modbus是主從訪問(wèn)的單主控制網(wǎng)絡(luò)。每個(gè)從站都有自己的地址編號(hào),地址1個(gè)字節(jié),范圍0~255。地址00H為廣播地址。通過(guò)協(xié)議中的功能代碼傳輸總線命令,實(shí)現(xiàn)主站和從站之間的信息交換。主要特點(diǎn):物理接口使用RS-232C、RS-422、RS-485組成主從訪問(wèn)的單主控制網(wǎng)絡(luò);主站輪詢從站時(shí),從站回應(yīng)相應(yīng)信息。主站也可對(duì)所有從站進(jìn)行廣播通信。通過(guò)通信報(bào)文結(jié)構(gòu)完成對(duì)從節(jié)點(diǎn)操作。5.1.2Modbus的傳輸網(wǎng)絡(luò)
1.在標(biāo)準(zhǔn)Modbus網(wǎng)絡(luò)上傳輸
Modicon協(xié)議最早采用的標(biāo)準(zhǔn)串行接口是RS-232C?,F(xiàn)在可采用RS-422、RS-485、光纖等。主機(jī)可對(duì)某從機(jī)查詢,該從機(jī)返回信息作為響應(yīng)。若出現(xiàn)差錯(cuò)或從機(jī)無(wú)法執(zhí)行要求動(dòng)作時(shí),從機(jī)會(huì)向主機(jī)發(fā)送差錯(cuò)信息。主機(jī)也可對(duì)所有從機(jī)廣播查詢,從機(jī)對(duì)于主機(jī)的廣播查詢無(wú)響應(yīng)返回。在標(biāo)準(zhǔn)Modbus網(wǎng)絡(luò)上,Modbus協(xié)議有兩種模式:ASCIIRTU(RemoteTerminalUnit)一個(gè)Modbus通信網(wǎng)絡(luò)上只能有一種模式,不允許兩種模式混用。2.在其它類型網(wǎng)絡(luò)上傳輸
有些Modbus控制器可使用內(nèi)置接口或網(wǎng)絡(luò)適配器,在ModbusPlus或者以太網(wǎng)上通信。在這些網(wǎng)絡(luò)上,控制器間采用對(duì)等(p2p)技術(shù),任一控制器可發(fā)起向其它的數(shù)據(jù)傳送。在不同傳輸過(guò)程中,某一控制器既可作從機(jī),也可作主機(jī)。形成客戶機(jī)/服務(wù)器模式。5.1.3Modbus的查詢—回應(yīng)周期
查詢(Query):主設(shè)備發(fā)起的數(shù)據(jù)傳輸回應(yīng)(Response):從設(shè)備對(duì)主設(shè)備查詢作出的回復(fù)主設(shè)備可單獨(dú)和某從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。單獨(dú)查詢某從設(shè)備,則相應(yīng)從設(shè)備執(zhí)行查詢請(qǐng)求的功能,并返回一消息作為回應(yīng);以廣播方式查詢,則所有從設(shè)備執(zhí)行查詢請(qǐng)求的功能,但不用作任何回應(yīng)。如果在查詢消息接收過(guò)程中產(chǎn)生差錯(cuò),或從設(shè)備不能完成請(qǐng)求的功能,從設(shè)備回應(yīng)差錯(cuò)消息。主設(shè)備接收到回復(fù),或在一定時(shí)限內(nèi)未收到回復(fù),將根據(jù)設(shè)定程序進(jìn)行相應(yīng)舉措。5.1.4Modbus的兩種傳輸模式
ASCII模式和RTU模式,任何一種都能在標(biāo)準(zhǔn)Modbus網(wǎng)絡(luò)通信。用戶根據(jù)需要選擇想要的傳輸模式。同一Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同傳輸模式和串口參數(shù)(波特率、校驗(yàn)方式等)。
ASCII模式消息中每個(gè)8位字節(jié)都要用兩個(gè)ASCII字符表示并以異步方式傳輸。優(yōu)點(diǎn):字符發(fā)送時(shí)間間隔可達(dá)1秒而不產(chǎn)生差錯(cuò)。編碼系統(tǒng)十六進(jìn)制,ASCII字符0~9,A~F消息中每個(gè)ASCII字符包含一個(gè)十六進(jìn)制字符每個(gè)字節(jié)的位1個(gè)起始位7個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送1個(gè)奇偶校驗(yàn)位,無(wú)校驗(yàn)則無(wú)該位1個(gè)停止位(有校驗(yàn)時(shí)),或2個(gè)停止位(無(wú)校驗(yàn)時(shí))差錯(cuò)檢測(cè)域
LRC(LongitudinalRedundancyCheck,縱向冗余校驗(yàn))RTU模式消息中每個(gè)8位字節(jié)都是原始的十六進(jìn)制字符(包含2個(gè)),無(wú)需編碼,以異步方式傳輸。優(yōu)點(diǎn):在同樣波特率下,可比ASCII模式傳送更多的數(shù)據(jù)。編碼系統(tǒng)8位二進(jìn)制,十六進(jìn)制數(shù)0~9,A~F消息中每個(gè)8位由兩個(gè)十六進(jìn)制字符組成每個(gè)字節(jié)的位1個(gè)起始位8個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送1個(gè)奇偶校驗(yàn)位,無(wú)校驗(yàn)則無(wú)該位1個(gè)停止位(有校驗(yàn)時(shí)),或2個(gè)停止位(無(wú)校驗(yàn)時(shí))差錯(cuò)檢測(cè)域
CRC(CyclicalRedundancyCheck,循環(huán)冗余校驗(yàn))5.2Modbus消息幀格式
5.2.1消息幀包含的信息
每個(gè)消息幀包含4類信息,按發(fā)送的先后順序分別為(字節(jié)數(shù)指未編碼原始信息字節(jié)數(shù)):地址(1字節(jié))功能碼(1字節(jié))數(shù)據(jù)段(n字節(jié),n≥0)差錯(cuò)檢測(cè)碼(ASCII:1字節(jié);RTU:2字節(jié))消息幀中包含以上有關(guān)信息的區(qū)域分別稱為地址域、功能域、數(shù)據(jù)域、差錯(cuò)檢測(cè)域。
1.地址域地址信息一個(gè)字節(jié)??赡艿膹脑O(shè)備地址是1~247。主設(shè)備通過(guò)將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來(lái)選通從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時(shí),它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個(gè)設(shè)備作出的回應(yīng)。ASCII模式時(shí),地址域包含2字節(jié);RTU模式時(shí),地址域1字節(jié)。地址0用作廣播地址。2.功能域
功能代碼是一個(gè)字節(jié)??赡艿拇a范圍是1~255。其中有些代碼適用于所有控制器,有些應(yīng)用于某種控制器,還有些保留以備后用。功能碼中較常使用的是1、2、3、4、5、6號(hào)功能碼,可實(shí)現(xiàn)對(duì)PLC數(shù)字量和模擬量的讀寫(xiě)操作。ASCII模式時(shí),功能域包含2字節(jié);RTU模式時(shí),功能域1字節(jié)。
當(dāng)消息從主設(shè)備發(fā)往從設(shè)備時(shí),功能代碼域?qū)⒏嬷畯脑O(shè)備需要執(zhí)行哪些行為。當(dāng)從設(shè)備回應(yīng)時(shí),使用功能代碼域指示是正?;貞?yīng)(執(zhí)行無(wú)誤)還是異?;貞?yīng)(產(chǎn)生錯(cuò)誤)。對(duì)正常回應(yīng),從設(shè)備僅回應(yīng)相應(yīng)的功能代碼。對(duì)異?;貞?yīng),從設(shè)備返回與正常代碼相同的代碼,但要在其最高位置1。例如:一從主設(shè)備發(fā)往從設(shè)備的消息要求讀一組保持寄存器,使用功能碼03H。如果正常執(zhí)行,從設(shè)備回應(yīng)功能碼03H;如果異議,從設(shè)備回應(yīng)功能碼83H。異常回應(yīng)時(shí),除了修改功能碼,從設(shè)備還將一個(gè)描述具體差錯(cuò)的代碼放到回應(yīng)消息的數(shù)據(jù)域中,這能告訴主設(shè)備具體發(fā)生了什么差錯(cuò)。主設(shè)備應(yīng)用程序得到異常的回應(yīng)后,典型的處理過(guò)程是重發(fā)消息,或者診斷發(fā)給從設(shè)備的消息并報(bào)告給操作員。3.數(shù)據(jù)域數(shù)據(jù)域由字節(jié)組成,每個(gè)字節(jié)的取值范圍是00~FFH。根據(jù)傳輸模式,數(shù)據(jù)域可以由一對(duì)對(duì)ASCII字符或由一個(gè)個(gè)RTU字符組成。主設(shè)備請(qǐng)求消息幀的數(shù)據(jù)域?yàn)閺脑O(shè)備執(zhí)行請(qǐng)求功能時(shí)要使用附加信息。如果執(zhí)行過(guò)程中無(wú)差錯(cuò),從設(shè)備返回的消息幀數(shù)據(jù)域包含請(qǐng)求的數(shù)據(jù);如果有差錯(cuò),此域包含異常代碼。在某種消息中數(shù)據(jù)域可以沒(méi)有(0長(zhǎng)度)。如主設(shè)備請(qǐng)求不需附加信息時(shí)。4.差錯(cuò)檢測(cè)域
ASCII模式時(shí),差錯(cuò)檢測(cè)值是采用LRC方法對(duì)消息內(nèi)容計(jì)算后得出的LRC校驗(yàn)碼,1字節(jié)長(zhǎng)度,故ASCII模式的差錯(cuò)檢測(cè)域包含2個(gè)ASCII字符。RTU模式時(shí),差錯(cuò)檢測(cè)值使采用CRC方法對(duì)消息內(nèi)容計(jì)算得出的CRC校驗(yàn)碼,2字節(jié)長(zhǎng)度,所以RTU模式的差錯(cuò)檢測(cè)域是2字節(jié)長(zhǎng)度。5.2.2差錯(cuò)檢測(cè)方法
ASCII傳輸模式采用LRC幀檢測(cè)RTU模式采用CRC幀檢測(cè)幀檢測(cè)應(yīng)用于整個(gè)消息,在消息發(fā)送前由發(fā)送方產(chǎn)生的,接受方在接收過(guò)程中檢測(cè)。1.奇偶校驗(yàn)
在每一組字符幀的數(shù)據(jù)后添加奇偶校驗(yàn)位,使碼元中總的1的個(gè)數(shù)為奇數(shù)或偶數(shù)。ASCII模式是7個(gè)數(shù)據(jù)位,RTU是8個(gè)數(shù)據(jù)位。例如,RTU字符幀數(shù)據(jù)為
11000101奇偶校驗(yàn)只能檢測(cè)出傳輸過(guò)程中字符幀1的個(gè)位數(shù)出錯(cuò)。如果不指定奇偶校驗(yàn),傳輸不進(jìn)行校驗(yàn),要傳輸字符幀中的奇偶校驗(yàn)位用一附加停止位填充替代。奇校驗(yàn):使數(shù)據(jù)位+校驗(yàn)位總的1的個(gè)數(shù)為奇數(shù)。1偶校驗(yàn):使數(shù)據(jù)位+校驗(yàn)位總的1的個(gè)數(shù)為偶數(shù)。02.LRC校驗(yàn)
ASCII模式時(shí),消息幀包括了一基于LRC校驗(yàn)方法的差錯(cuò)檢測(cè)域。LRC域檢測(cè)根據(jù)地址域、功能域和數(shù)據(jù)域內(nèi)容計(jì)算得到(不包括開(kāi)始的冒號(hào)符及后面的回車換行符)。LRC域包含了一個(gè)字節(jié)信息(LRC值)。LRC值由發(fā)送方計(jì)算并以兩個(gè)ASCII碼字符形式放到消息幀中發(fā)送;接收方在接收消息后同樣計(jì)算LRC,并將結(jié)果和接收消息中LRC域中的LRC值比較,兩值不等,說(shuō)明有差錯(cuò)。LRC基本算法:將消息中的地址信息(1字節(jié))、功能碼信息(1字節(jié))、數(shù)據(jù)信息(n字節(jié))連續(xù)累加,丟棄超出8位的部分,只保留一個(gè)字節(jié)。實(shí)際上,Modbus網(wǎng)絡(luò)的發(fā)送方在對(duì)信息碼元累加后,還要取其補(bǔ)碼。將補(bǔ)碼轉(zhuǎn)換成兩個(gè)ASCII字符,填入ASCII模式的消息幀格式,高位在前,低位在后。Modbus網(wǎng)絡(luò)接收方,在接收到消息幀中所有字符后,將地址域、功能域、數(shù)據(jù)域、差錯(cuò)校驗(yàn)域的ASCII代碼信息還原成原始信息碼后,求所有數(shù)據(jù)單元字節(jié)和,丟棄超出8位的部分。如果累加結(jié)果是0,認(rèn)為該消息幀的傳輸正常無(wú)差錯(cuò),否則傳輸失敗。地址域、功能域、數(shù)據(jù)域消息未經(jīng)ASCII編碼的原始值(16進(jìn)制)02
03
002A0008
3.CRC校驗(yàn)02H+03H+00H+FAH+00H+08H=107H07HF9HF95.2.3消息幀格式
無(wú)論什么模式,傳輸設(shè)備都要將Modbus消息轉(zhuǎn)為有起點(diǎn)和終點(diǎn)的幀。這能使接收方獲知每條消息何時(shí)開(kāi)始,何時(shí)結(jié)束。1.ASCII模式的幀格式
消息以冒號(hào)‘:’字符(ASCII碼3AH)作為消息幀的起始。以回車‘CR’(ASCII碼0DH)、換行‘LF’(ASCII碼0AH)作為消息幀的結(jié)束。字符間發(fā)送時(shí)間間隔不能超過(guò)1秒,否則接收方認(rèn)為傳輸錯(cuò)誤。2.RTU模式的幀格式
消息以至少3.5個(gè)字符時(shí)間的停頓間隔為開(kāi)始和結(jié)束。1個(gè)字符時(shí)間是RTU模式時(shí)傳輸一個(gè)字符所需時(shí)間,與傳輸格式和波特率有關(guān)。RTU模式用時(shí)間間隔作為消息幀的起始和結(jié)束標(biāo)志,傳輸信息是未經(jīng)過(guò)編碼的原始碼元。整個(gè)消息幀必須作為一個(gè)連續(xù)信息流傳輸。如果一幀內(nèi)部有超過(guò)1.5個(gè)字符時(shí)間的停頓,接收方將丟棄接收到的不完整消息,并假定下一字節(jié)是一個(gè)新消息的地址域。如果一個(gè)新消息是在小于1.5個(gè)字符時(shí)間內(nèi)接著前個(gè)消息開(kāi)始,接收方將認(rèn)為它是前一消息的延續(xù)。3.Modbus網(wǎng)絡(luò)傳輸舉例
設(shè)在Modbus網(wǎng)絡(luò)上,主機(jī)向地址為06H的從機(jī)發(fā)出查詢,請(qǐng)求讀取從地址006BH開(kāi)始的3個(gè)16位寄存器數(shù)據(jù)。分析收發(fā)過(guò)程,并寫(xiě)出兩種模式的幀。1.主機(jī)查詢過(guò)程
查找功能碼表,完成該行為的功能碼是03H
寄存器的地址和數(shù)量都屬于主機(jī)發(fā)給從機(jī)的包含在數(shù)據(jù)域中的附加信息,在Modbus中都用雙字節(jié)表示。寄存器地址006BH,寄存器數(shù)量0003H。主機(jī)要向從機(jī)發(fā)送6個(gè)字節(jié)的原始數(shù)據(jù):06H
03H
00H
6BH
00H
03H。發(fā)送前主機(jī)還要計(jì)算LRC校驗(yàn)碼(ASCII模式),或CRC校驗(yàn)碼(RTU模式),放入查詢消息幀的校驗(yàn)域。計(jì)算LRC校驗(yàn)碼06H+03H+00H+6BH+00H+03H=77HNOT(77H)+1=89H對(duì)應(yīng)的ASCII碼是:38H(‘8’),39H(‘9’)。2.從機(jī)回應(yīng)過(guò)程
從機(jī)在檢測(cè)到消息幀的起始(ASCII模式‘:’,RTU模式3.5個(gè)字符時(shí)間),并確認(rèn)收到的查詢地址是本機(jī)地址后,接收全部消息幀的信息。在檢測(cè)到消息幀的結(jié)束(ASCII模式‘CR’,‘LF’;RTU模式至少1.5個(gè)字符時(shí)間),發(fā)收過(guò)程結(jié)束。從機(jī)在接受過(guò)程中,對(duì)接收的每個(gè)字符進(jìn)行奇偶校驗(yàn)(如果設(shè)定),如有差錯(cuò),接收過(guò)程結(jié)束,從機(jī)開(kāi)始等待接收新的消息幀。ASCII模式時(shí),消息幀全部正常接收完,從機(jī)將ASCII碼信息轉(zhuǎn)換為原數(shù)據(jù)信息(包括地址、功能、數(shù)據(jù)和LRC校驗(yàn))。從機(jī)計(jì)算校驗(yàn)碼,與接收到校驗(yàn)進(jìn)行比較,判斷接收過(guò)程是否有差錯(cuò)。字符奇偶校驗(yàn)、幀校驗(yàn)均無(wú)差錯(cuò)時(shí),從機(jī)才有可能對(duì)主機(jī)正?;貞?yīng),否則是異?;貞?yīng),或無(wú)回應(yīng)。正常響應(yīng),從機(jī)的回應(yīng)消息幀中功能代碼還是接收到的代碼;否則該
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供石材材料合同范例
- 二手車庫(kù)轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本3篇
- 加盟白酒品牌合同范例
- 勞務(wù)合同標(biāo)準(zhǔn)文本2003
- 住建備案合同標(biāo)準(zhǔn)文本
- 保證合同為無(wú)償合同標(biāo)準(zhǔn)文本
- 2025年石油化工行業(yè)春季成本下行疊加資本開(kāi)支放緩中下游曙光已現(xiàn)
- 2025年山西國(guó)際能源集團(tuán)有限公司所屬企業(yè)社會(huì)招聘258人筆試參考題庫(kù)附帶答案詳解
- 跨界合作提升教育質(zhì)量的必由之路
- 銷售談判中的語(yǔ)言藝術(shù)與策略運(yùn)用
- PLM解決方案與NX培訓(xùn)教材課件
- 部編版六年級(jí)下冊(cè)道德與法治全冊(cè)優(yōu)秀課件
- 【精選】方劑學(xué)解表劑練習(xí)題
- 【課件】第3課 象外之境-中國(guó)傳統(tǒng)山水畫(huà) 課件-2022-2023學(xué)年高中美術(shù)人教版(2019)美術(shù)鑒賞
- 英語(yǔ)滬教版小學(xué)五年級(jí)下冊(cè)Unit6優(yōu)質(zhì)課課件1
- 誤吸的護(hù)理應(yīng)急預(yù)案
- 法制宣傳教育小報(bào)
- 上海西郊國(guó)際農(nóng)產(chǎn)品展示直銷中心貴州館入駐方案
- 手壓式手電筒設(shè)計(jì)(棘輪機(jī)構(gòu)及電路設(shè)計(jì))
- 等離子體水處理技術(shù)
- 危重孕產(chǎn)婦救治中心建設(shè)與管理指南
評(píng)論
0/150
提交評(píng)論