




已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MODBUS協(xié)議,主要內(nèi)容,概述Modbus應(yīng)用協(xié)議規(guī)范Modbus協(xié)議在串行鏈路上的實(shí)現(xiàn),概述,1979年Modicon公司(現(xiàn)Schneider的一部分)提出的ModbusModbus最初作為工業(yè)串行鏈路的事實(shí)標(biāo)準(zhǔn)1997年Schneider電氣在TCP/IP上實(shí)現(xiàn)Modbus協(xié)議2004年Modbus作為我國(guó)國(guó)家標(biāo)準(zhǔn),Modbus技術(shù)規(guī)范組成,Modbus應(yīng)用協(xié)議規(guī)范Modbus協(xié)議在串行鏈路上的實(shí)現(xiàn)指南Modbus協(xié)議在TCP/IP上的實(shí)現(xiàn)指南Modbus標(biāo)準(zhǔn)技術(shù)規(guī)范由以上三部分組成,本次我們學(xué)習(xí)前面兩個(gè)部分。,Modbus技術(shù)規(guī)范的關(guān)系,Modbus應(yīng)用協(xié)議規(guī)范,協(xié)議簡(jiǎn)介數(shù)據(jù)幀格式事務(wù)處理數(shù)據(jù)模型功能碼,Modbus通信棧,Modbus應(yīng)用協(xié)議,Modbus是一種簡(jiǎn)單客戶(hù)機(jī)/服務(wù)器應(yīng)用協(xié)議客戶(hù)機(jī)能夠向服務(wù)器發(fā)送請(qǐng)求服務(wù)器分析請(qǐng)求,處理請(qǐng)求,向客戶(hù)機(jī)發(fā)送應(yīng)答,通用Modbus幀結(jié)構(gòu)協(xié)議數(shù)據(jù)單元(PDU),Modbus事務(wù)處理(無(wú)差錯(cuò)),當(dāng)服務(wù)器對(duì)客戶(hù)機(jī)響應(yīng)時(shí),它使用功能碼域來(lái)指示正常(無(wú)差錯(cuò))響應(yīng)或者出現(xiàn)某種差錯(cuò)(稱(chēng)為異常響應(yīng))對(duì)于一個(gè)正常響應(yīng)來(lái)說(shuō),服務(wù)器僅復(fù)制原始功能碼,Modbus事務(wù)處理(異常響應(yīng)),對(duì)于異常響應(yīng),服務(wù)器將原始功能碼的最高有效位設(shè)置邏輯1后返回異常碼指示差錯(cuò)類(lèi)型,異常碼,Modbus事務(wù)處理,ModbusPDU長(zhǎng)度,Modbus最初在串行鏈路上的實(shí)現(xiàn)(最大RS485ADU=256字節(jié))限制了ModbusPDU的長(zhǎng)度。因此,對(duì)串行鏈路通信來(lái)說(shuō),ModbusPDU=256-服務(wù)器地址(1字節(jié))-CRC(2字節(jié))253字節(jié)。從而:RS232/RS485ADU=253字節(jié)+服務(wù)器地址(1字節(jié))+CRC(2字節(jié))=256字節(jié)。TCPModbusADU=249字節(jié)+MBAP(7字節(jié))=256字節(jié)。,ModbusPDU結(jié)構(gòu),Modbus請(qǐng)求PDUmb_req_pdu=function_code,request_data,function_code-1字節(jié)Modbus功能碼request_data-n字節(jié)Modbus響應(yīng)PDUmb_rsp_pdu=function_code,response_data,function_code-1字節(jié)Modbus功能碼response_data-n字節(jié)Modbus異常響應(yīng)PDUmb_excep_rsp_pdu=function_code,exception_code,function_code-1字節(jié)Modbus功能碼+0 x80exception_code1字節(jié),Modbus數(shù)據(jù)模型,Modbus的數(shù)據(jù)模型是以一組具有不同特征的類(lèi)型為基礎(chǔ)建立的四個(gè)基本類(lèi)型為:,Modbus功能碼,有三類(lèi)MODBUS功能碼。它們是:公共功能碼是較好地被定義的功能碼,保證是唯一的,MODBUS組織可改變的,公開(kāi)證明的,具有可用的一致性測(cè)試,MBIETFRFC中證明的其中RFC為RequestforComments首字母的縮寫(xiě),它是IETF(互聯(lián)網(wǎng)工程任務(wù)推進(jìn)組織)的一個(gè)無(wú)限制分發(fā)文檔。RFC被編號(hào)并且用編號(hào)來(lái)標(biāo)識(shí)。包含已被定義的公共指配功能碼和未來(lái)使用的未指配保留供功能碼。用戶(hù)定義功能碼有兩個(gè)用戶(hù)定義功能碼的定義范圍,即65至72和十進(jìn)制100至110。用戶(hù)沒(méi)有MODBUS組織的任何批準(zhǔn)就可以選擇和實(shí)現(xiàn)一個(gè)功能碼不能保證被選功能碼的使用是唯一的。如果用戶(hù)要重新設(shè)置功能作為一個(gè)公共功能碼,那么用戶(hù)必須啟動(dòng)RFC,以便將改變引入公共分類(lèi)中,并且指配一個(gè)新的公共功能碼。保留功能碼一些公司對(duì)傳統(tǒng)產(chǎn)品通常使用的功能碼,并且對(duì)公共使用是無(wú)效的功能碼。,功能碼分類(lèi)其中128-255為異常響應(yīng)保留。,Modbus公共功能碼的定義,常用功能碼為0 x01,0 x02、0 x03、0 x04、0 x05、0 x06、0 x0F、0 x10,Modbus功能碼應(yīng)用實(shí)例(1),讀線圈(0 x01),響應(yīng),*N寄存器的數(shù)量/8,如果余數(shù)不等于0,那么N=N+1錯(cuò)誤,讀線圈實(shí)例,這是一個(gè)請(qǐng)求離散量輸出20-38的實(shí)例。將輸出27-20的狀態(tài)表示為十六進(jìn)制字節(jié)值CD,或二進(jìn)制11001101。輸出27是這個(gè)字節(jié)的MSB,輸出20是LSB。通常,將一個(gè)字節(jié)內(nèi)的比特表示為MSB位于左側(cè),LSB位于右側(cè)。第一字節(jié)的輸出從左至右為27至20。下一個(gè)字節(jié)的輸出從左到右為35至28。當(dāng)串行發(fā)射比特時(shí),從LSB向MSB傳輸:20.27、28.35等等。在最后的數(shù)據(jù)字節(jié)中,將輸出狀態(tài)38-36表示為十六進(jìn)制字節(jié)值05,或二進(jìn)制00000101。輸出38是左側(cè)第六個(gè)比特位置,輸出36是這個(gè)字節(jié)的LSB。用零填充五個(gè)剩余高位比特。,Modbus功能碼應(yīng)用實(shí)例(2),讀離散量輸入(0 x02),讀離散量輸入實(shí)例,這是一個(gè)請(qǐng)求讀取離散量輸入197-128的實(shí)例。將離散量輸入狀態(tài)204-197表示為十六進(jìn)制字節(jié)值A(chǔ)C,或二進(jìn)制10101100。輸入204是這個(gè)字節(jié)的MSB,輸入197是這個(gè)字節(jié)的LSB。將離散量輸入狀態(tài)218-213表示為十六進(jìn)制字節(jié)值35,或二進(jìn)制00110101。輸入218位于左側(cè)第3比特,輸入213是LSB這與讀線圈功能是相似的,只是讀取的數(shù)據(jù)類(lèi)型不同。,Modbus功能碼應(yīng)用實(shí)例(3),讀保存寄存器(0 x03),讀保持寄存器實(shí)例,Modbus功能碼應(yīng)用實(shí)例(4),讀輸入寄存器(0 x04),讀輸入寄存器實(shí)例,這與讀保存寄存器功能相似,只是數(shù)據(jù)類(lèi)型不同。,Modbus功能碼應(yīng)用實(shí)例(5),寫(xiě)多個(gè)線圈(0 x0F)其中1代表邏輯ON,0代表邏輯OFF,寫(xiě)多個(gè)線圈實(shí)例,Modbus功能碼應(yīng)用實(shí)例(6),寫(xiě)多個(gè)寄存器(0 x10),*N寄存器數(shù)量響應(yīng),錯(cuò)誤,寫(xiě)多個(gè)保持寄存器實(shí)例,其他功能碼與以上類(lèi)似,如有需要詳細(xì)了解,可閱讀MODBUS協(xié)議。,Modbus協(xié)議在串行鏈路上的實(shí)現(xiàn),主站/從站協(xié)議原理Modbus串行傳輸模式RTU模式Modbus串行傳輸模式ASCII模式,Modbus協(xié)議在串行鏈路上的實(shí)現(xiàn)模型,Modbus串行鏈路協(xié)議是一個(gè)主/從協(xié)議。該協(xié)議位于OSI模型的第二層。,位于OSI模型第7層的Modbus應(yīng)用層報(bào)文傳輸協(xié)議,供了連接于總線或網(wǎng)絡(luò)的設(shè)備之間的客戶(hù)機(jī)/服務(wù)器通信。在Modbus串行鏈路上客戶(hù)機(jī)的功能由主節(jié)點(diǎn)提供而服務(wù)器功能由子節(jié)點(diǎn)實(shí)現(xiàn)。,Modbus主站/從站協(xié)議原理,Modbus串行鏈路協(xié)議是一個(gè)主-從協(xié)議。在同一時(shí)刻,只有一個(gè)主節(jié)點(diǎn)連接于總線,一個(gè)或多個(gè)子節(jié)點(diǎn)(最大編號(hào)為247)連接于同一個(gè)串行總線。Modbus通信總是由主節(jié)點(diǎn)發(fā)起。子節(jié)點(diǎn)在沒(méi)有收到來(lái)自主節(jié)點(diǎn)的請(qǐng)求時(shí),從不會(huì)發(fā)送數(shù)據(jù)。子節(jié)點(diǎn)之間從不會(huì)互相通信。主節(jié)點(diǎn)在同一時(shí)刻只會(huì)發(fā)起一個(gè)Modbus事務(wù)處理。,Modbus通信模式,主節(jié)點(diǎn)以?xún)煞N模式對(duì)子節(jié)點(diǎn)發(fā)出Modbus請(qǐng)求:在單播模式,主節(jié)點(diǎn)以特定地址訪問(wèn)某個(gè)子節(jié)點(diǎn),子節(jié)點(diǎn)接到并處理完請(qǐng)求后,子節(jié)點(diǎn)向主節(jié)點(diǎn)返回一個(gè)報(bào)文(一個(gè)應(yīng)答)。在這種模式,一個(gè)Modbus事務(wù)處理包含2個(gè)報(bào)文:一個(gè)來(lái)自主節(jié)點(diǎn)的請(qǐng)求,一個(gè)來(lái)自子節(jié)點(diǎn)的應(yīng)答。每個(gè)子節(jié)點(diǎn)必須有唯一的地址(1到247),這樣才能區(qū)別于其它節(jié)點(diǎn)被獨(dú)立的尋址。在廣播模式,主節(jié)點(diǎn)向所有的子節(jié)點(diǎn)發(fā)送請(qǐng)求。對(duì)于主節(jié)點(diǎn)廣播的請(qǐng)求沒(méi)有應(yīng)答返回。廣播請(qǐng)求一般用于寫(xiě)命令。所有設(shè)備必須接受廣播模式的寫(xiě)功能。地址0是專(zhuān)門(mén)用于表示廣播數(shù)據(jù)的。,串行鏈路上的Modbus幀結(jié)構(gòu),地址域只含有子節(jié)點(diǎn)地址,該地址必須在Modbus串行總線上唯一Modbus主節(jié)點(diǎn)沒(méi)有地址功能碼指明服務(wù)器要執(zhí)行的動(dòng)作,遵從Modbus協(xié)議規(guī)范錯(cuò)誤檢驗(yàn)域是對(duì)報(bào)文內(nèi)容執(zhí)行冗余校驗(yàn)的計(jì)算結(jié)果。根據(jù)不同的傳輸模式(RTUorASCII)使用兩種不同的計(jì)算方法,CRC或者LRC,串行傳輸模式-RTU模式,當(dāng)設(shè)備使用RTU(RemoteTerminalUnit)模式在Modbus串行鏈路通信,報(bào)文中每個(gè)8位字節(jié)含有兩個(gè)4位十六進(jìn)制字符。這種模式的主要優(yōu)點(diǎn)是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。每個(gè)報(bào)文必須以連續(xù)的字符流傳送。RTU模式每個(gè)字節(jié)(11位)的格式為:編碼系統(tǒng):8位二進(jìn)制報(bào)文中每個(gè)8位字節(jié)含有兩個(gè)4位十六進(jìn)制字符(09,AF)BitsperByte:1起始位8數(shù)據(jù)位,首先發(fā)送最低有效位1位作為奇偶校驗(yàn)1停止位奇偶校驗(yàn)中,偶校驗(yàn)是默認(rèn)的,其它模式(奇校驗(yàn),無(wú)校驗(yàn))也可以使用,在無(wú)校驗(yàn)的模式下,有兩個(gè)停止位,串行傳輸模式-RTU模式,在RTU模式,報(bào)文幀由時(shí)長(zhǎng)至少為3.5個(gè)字符時(shí)間的空閑間隔區(qū)分整個(gè)報(bào)文幀必須以連續(xù)的字符流發(fā)送。如果兩個(gè)字符之間的空閑間隔大于1.5個(gè)字符時(shí)間,則報(bào)文幀被認(rèn)為不完整應(yīng)該被接收節(jié)點(diǎn)丟棄,串行傳輸模式-RTU模式,RTU接收驅(qū)動(dòng)程序的實(shí)現(xiàn),由于t1.5和t3.5的定時(shí),隱含著大量的對(duì)中斷的管理。在高通信速率下,這導(dǎo)致CPU負(fù)擔(dān)加重。因此,在通信速率等于或低于19200Bps時(shí),這兩個(gè)定時(shí)必須嚴(yán)格遵守;對(duì)于波特率大于19200Bps的情形,應(yīng)使用2個(gè)定時(shí)的固定值:建議的字符間超時(shí)時(shí)間(t1.5)為750s,幀間的超時(shí)時(shí)間(t1.5)為1.750ms。,串行傳輸模式-RTU模式,在RTU模式包含一個(gè)對(duì)全部報(bào)文內(nèi)容執(zhí)行的,基于循環(huán)冗余校驗(yàn)(CRC-CyclicalRedundancyChecking)算法的錯(cuò)誤檢驗(yàn)域。CRC域檢驗(yàn)整個(gè)報(bào)文的內(nèi)容。不管報(bào)文有無(wú)奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。CRC包含由兩個(gè)8位字節(jié)組成的一個(gè)16位值。CRC為常用的CRC-16校驗(yàn)方式,計(jì)算后,首先附加低字節(jié),然后是高字節(jié),串行傳輸模式-ASCII模式,在ASCII模式中,報(bào)文中的每個(gè)8位子節(jié)以?xún)蓚€(gè)ASCII字符發(fā)送例:子節(jié)0X5B會(huì)被編碼為兩個(gè)字符:0 x35和0 x42(ASCII編碼0 x35=5,0 x42=B)由于一個(gè)子節(jié)需要兩個(gè)字符,此模式比RTU效率低ASCII模式每個(gè)字節(jié)(10位)的格式為:編碼系統(tǒng):十六進(jìn)制,ASCII字符0-9,A-F。報(bào)文中每個(gè)ASCII字符含有1個(gè)十六進(jìn)制字符BitsperByte:1起始位7數(shù)據(jù)位,首先發(fā)送最低有效位1位作為奇偶校驗(yàn)1停止位奇偶校驗(yàn)中,偶校驗(yàn)是默認(rèn)的,其它模式(奇校驗(yàn),無(wú)校驗(yàn))也可以使用,在無(wú)校驗(yàn)的模式下,有兩個(gè)停止位,串行傳輸模式-ASCII模式,ASCII模式下的報(bào)文幀格式如下:報(bào)文必須以“:”開(kāi)始報(bào)文必須以“LF(0 x0D)CR(0 x0A)”結(jié)束數(shù)據(jù)用十六進(jìn)制ASCII碼值表示使用LRC進(jìn)行差錯(cuò)校驗(yàn)每個(gè)字符子節(jié)需要用兩個(gè)字符編碼。因此,為了確保ASCII模式和RTU模式在Modbus應(yīng)用級(jí)兼容,ASCII數(shù)據(jù)域最大數(shù)據(jù)長(zhǎng)度為(2x252)是RTU數(shù)據(jù)域(252)的兩
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)發(fā)區(qū)酒店建設(shè)設(shè)計(jì)合同書(shū)6篇
- 場(chǎng)物業(yè)管理合同書(shū)
- 供熱工程施工合同協(xié)議
- 建筑材料供應(yīng)合同(大沙、石子)6篇
- 建房施工勞務(wù)合同
- 2025年廣東貨運(yùn)從業(yè)資格證模擬考試
- 醫(yī)用護(hù)理床采購(gòu)合同范本
- 中國(guó)書(shū)法的演講稿
- 高壓電工(運(yùn)行)試題庫(kù)(附參考答案)
- 供貨合同范本 律師博客
- 中藥的煎法及注意事項(xiàng)
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter2 Array
- 認(rèn)識(shí)校園植物課件
- 大氣污染控制工程課程設(shè)計(jì)-某廠酸洗硫酸煙霧治理設(shè)施設(shè)計(jì)
- 外墻外保溫粘結(jié)強(qiáng)檢測(cè)PPT教案
- 信陽(yáng)礦產(chǎn)資源概況
- 標(biāo)準(zhǔn)擊實(shí)試驗(yàn)自動(dòng)計(jì)算記錄表
- 入門(mén)級(jí)新概念英語(yǔ)青少版A unit8
- 一個(gè)近乎完美的微信引流招生方案
- 旅行社安全檢查記錄表
- T_CEC 102.1-2016 電動(dòng)汽車(chē)充換電服務(wù)信息交換 第1部分_總則_(高清-最新版)
評(píng)論
0/150
提交評(píng)論