mudbus通訊協(xié)議_第1頁(yè)
已閱讀1頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Modbus通訊協(xié)議Modbus協(xié)議簡(jiǎn)介Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)進(jìn)行集中監(jiān)控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu)而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了一控制器請(qǐng)求訪問(wèn)其它設(shè)備的過(guò)程如果回應(yīng)來(lái)自其它設(shè)備的請(qǐng)求以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和

2、內(nèi)容的公共格式。當(dāng)在一Modbus網(wǎng)絡(luò)上通信時(shí)此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地址識(shí)別按地址發(fā)來(lái)的消息決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng)控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測(cè)的方法。在Modbus網(wǎng)絡(luò)上轉(zhuǎn)輸標(biāo)準(zhǔn)的Modbus口是使用一RS232C兼容串行接口它定義了連接口的針腳、電纜、信號(hào)位

3、、傳輸波特率、奇偶校驗(yàn)??刂破髂苤苯踊蚪?jīng)由Modem組網(wǎng)??刂破魍ㄐ攀褂弥鳌獜募夹g(shù)即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。典型的主設(shè)備:主機(jī)和可編程儀表。典型的從設(shè)備:可編程控制器。主設(shè)備可單獨(dú)和從設(shè)備通信也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信從設(shè)備返回一消息作為回應(yīng)如果是以廣播方式查詢的則不作任何回應(yīng)。Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、

4、所有要發(fā)送的數(shù)據(jù)、一錯(cuò)誤檢測(cè)域。從設(shè)備回應(yīng)消息也由Modbus協(xié)議構(gòu)成包括確認(rèn)要行動(dòng)的域、任何要返回的數(shù)據(jù)、和一錯(cuò)誤檢測(cè)域。如果在消息接收過(guò)程中發(fā)生一錯(cuò)誤或從設(shè)備不能執(zhí)行其命令從設(shè)備將建立一錯(cuò)誤消息并把它作為回應(yīng)發(fā)送出去。在其它類型網(wǎng)絡(luò)上轉(zhuǎn)輸在其它網(wǎng)絡(luò)上控制器使用對(duì)等技術(shù)通信故任何控制都能初始和其它控制器的通信。這樣在單獨(dú)的通信過(guò)程中控制器既可作為主設(shè)備也可作為從設(shè)備。提供的多個(gè)內(nèi)部通道可允許同時(shí)發(fā)生的傳輸進(jìn)程。1個(gè)奇偶校驗(yàn)位無(wú)校驗(yàn)則無(wú)

5、CRC域是兩個(gè)字節(jié)包含一16位的二進(jìn)制值。它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收到消息的CRC并與接收到的CRC域中的值比較如果兩值不同則有誤。CRC是先調(diào)入一值是全“1”的16位寄存器然后調(diào)用一過(guò)程將消息中連續(xù)的8位字節(jié)各當(dāng)前寄存器中的值進(jìn)行處理。僅每個(gè)字符中的8Bit數(shù)據(jù)對(duì)CRC有效起始位和停止位以及奇偶校驗(yàn)位均無(wú)效。CRC產(chǎn)生過(guò)程中每個(gè)8位字符都單獨(dú)和寄存器內(nèi)容相或()結(jié)果向最低有效位方向移動(dòng)最高有效位以0填充。LSB

6、被提取出來(lái)檢測(cè)如果LSB為1寄存器單獨(dú)和預(yù)置的值或一下如果LSB為0則不進(jìn)行。整個(gè)過(guò)程要重復(fù)8次。在最后一位(第8位)完成后下一個(gè)8位字節(jié)又單獨(dú)和寄存器的當(dāng)前值相或。最終寄存器中的值是消息中所有的字節(jié)都執(zhí)行之后的CRC值。CRC添加到消息中時(shí)低字節(jié)先加入然后高字節(jié)。CRC簡(jiǎn)單函數(shù)如下:unsignedshtCRC16(puchMsgusDataLen)unsignedpuchMsg要進(jìn)行CRC校驗(yàn)的消息unsignedshtusData

7、Len消息中字節(jié)數(shù)unsigneduchCRCHi=0xFF高CRC字節(jié)初始化unsigneduchCRCLo=0xFF低CRC字節(jié)初始化unsigneduIndexCRC循環(huán)中的索引while(usDataLen)傳輸消息緩沖區(qū)uIndex=uchCRCHi^puchMsgg計(jì)算CRCuchCRCHi=uchCRCLo^auchCRCHi[uIndexuchCRCLo=auchCRCLo[uIndex]return(uchCRCHi8

8、uchCRCLo)CRC高位字節(jié)值表staticunsignedauchCRCHi[]=0x000xC10x810x400x010xC00x800x410x010xC00x800x410x000xC10x810x400x010xC00x800x410x000xC10x810x400x000xC10x810x400x010xC00x800x410x010xC00x800x410x000xC10x810x400x000xC10x810x40

溫馨提示

  • 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ù)僅提供信息存儲(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)論