MODBUS通信協(xié)議_第1頁
MODBUS通信協(xié)議_第2頁
MODBUS通信協(xié)議_第3頁
MODBUS通信協(xié)議_第4頁
MODBUS通信協(xié)議_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MODBUS通信協(xié)議HZR、HZC系列產(chǎn)品采用RS485、RS232、CAN、EtherNet(TCPIP)等通信方式與當(dāng)?shù)乇O(jiān)控系統(tǒng)或上一級調(diào)度自動化系統(tǒng)連接。MODBUS是應(yīng)用層協(xié)議,可基于上述通信媒介進(jìn)行系統(tǒng)互連。MODBUS采用直接內(nèi)存訪問的模式,其基本協(xié)議定義了內(nèi)存訪問的具體細(xì)節(jié),各應(yīng)用程序或系統(tǒng)互連時只須提供內(nèi)存地址表即可。一、 HZR、HZC系列產(chǎn)品支持的MODBUS命令1、 連續(xù)讀n個字(功能碼03H)下行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):03H起始地址(WORD):0000HFFFFH讀的字?jǐn)?shù)(WORD):0001H007DH校 驗 碼(WORD):以

2、上所有字節(jié)的CRC16校驗和上行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):03H數(shù)據(jù)長度(BYTE):01HFAH數(shù)據(jù)內(nèi)容(BYTE):讀到的具體數(shù)據(jù)數(shù)據(jù)內(nèi)容(BYTE):讀到的具體數(shù)據(jù)。數(shù)據(jù)內(nèi)容(BYTE):讀到的具體數(shù)據(jù)校 驗 碼(WORD):以上所有字節(jié)的CRC16校驗和2、 寫1個字(功能碼06H)下行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):06H起始地址(WORD):0000HFFFFH寫入數(shù)據(jù)(WORD):0001HFFFFH校 驗 碼(WORD):以上所有字節(jié)的CRC16校驗和上行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):0

3、6H起始地址(WORD):0000HFFFFH寫入數(shù)據(jù)(WORD):0001HFFFFH校 驗 碼(WORD):以上所有字節(jié)的CRC16校驗和3、 連續(xù)寫n個字(功能碼10H)下行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):10H起始地址(WORD):0000HFFFFH寫的字?jǐn)?shù)(WORD):0001H007DH數(shù)據(jù)長度(BYTE):01HFAH數(shù)據(jù)內(nèi)容(BYTE):寫入的具體數(shù)據(jù)數(shù)據(jù)內(nèi)容(BYTE):寫入的具體數(shù)據(jù)。數(shù)據(jù)內(nèi)容(BYTE):寫入的具體數(shù)據(jù)校 驗 碼(WORD):以上所有字節(jié)的CRC16校驗和上行:設(shè)備地址(BYTE):01HFFH功 能 碼(BYTE):10H起

4、始地址(WORD):0000HFFFFH寫的字?jǐn)?shù)(WORD):0001H007DH校 驗 碼(WORD):以上所有字節(jié)的CRC16校驗和CRC計算例程:unsigned short CalculateCRC(unsigned short* pData,unsigned short wLength)unsigned short wCRC;wCRC = 0xffff;while(wLength-) wCRC = (wCRC>>8)c_wTableCRC(wCRC*pData+)&0x00ff;return wCRC;unsigned short c_wTableCRC256 =

5、 0x0000,0xc0c1,0xc181,0x0140,0xc301,0x03c0,0x0280,0xc241,0xc601,0x06c0,0x0780,0xc741,0x0500,0xc5c1,0xc481,0x0440,0xcc01,0x0cc0,0x0d80,0xcd41,0x0f00,0xcfc1,0xce81,0x0e40,0x0a00,0xcac1,0xcb81,0x0b40,0xc901,0x09c0,0x0880,0xc841,0xd801,0x18c0,0x1980,0xd941,0x1b00,0xdbc1,0xda81,0x1a40,0x1e00,0xdec1,0xdf8

6、1,0x1f40,0xdd01,0x1dc0,0x1c80,0xdc41,0x1400,0xd4c1,0xd581,0x1540,0xd701,0x17c0,0x1680,0xd641,0xd201,0x12c0,0x1380,0xd341,0x1100,0xd1c1,0xd081,0x1040,0xf001,0x30c0,0x3180,0xf141,0x3300,0xf3c1,0xf281,0x3240,0x3600,0xf6c1,0xf781,0x3740,0xf501,0x35c0,0x3480,0xf441,0x3c00,0xfcc1,0xfd81,0x3d40,0xff01,0x3f

7、c0,0x3e80,0xfe41,0xfa01,0x3ac0,0x3b80,0xfb41,0x3900,0xf9c1,0xf881,0x3840,0x2800,0xe8c1,0xe981,0x2940,0xeb01,0x2bc0,0x2a80,0xea41,0xee01,0x2ec0,0x2f80,0xef41,0x2d00,0xedc1,0xec81,0x2c40,0xe401,0x24c0,0x2580,0xe541,0x2700,0xe7c1,0xe681,0x2640,0x2200,0xe2c1,0xe381,0x2340,0xe101,0x21c0,0x2080,0xe041,0xa

8、001,0x60c0,0x6180,0xa141,0x6300,0xa3c1,0xa281,0x6240,0x6600,0xa6c1,0xa781,0x6740,0xa501,0x65c0,0x6480,0xa441,0x6c00,0xacc1,0xad81,0x6d40,0xaf01,0x6fc0,0x6e80,0xae41,0xaa01,0x6ac0,0x6b80,0xab41,0x6900,0xa9c1,0xa881,0x6840,0x7800,0xb8c1,0xb981,0x7940,0xbb01,0x7bc0,0x7a80,0xba41,0xbe01,0x7ec0,0x7f80,0x

9、bf41,0x7d00,0xbdc1,0xbc81,0x7c40,0xb401,0x74c0,0x7580,0xb541,0x7700,0xb7c1,0xb681,0x7640,0x7200,0xb2c1,0xb381,0x7340,0xb101,0x71c0,0x7080,0xb041,0x5000,0x90c1,0x9181,0x5140,0x9301,0x53c0,0x5280,0x9241,0x9601,0x56c0,0x5780,0x9741,0x5500,0x95c1,0x9481,0x5440,0x9c01,0x5cc0,0x5d80,0x9d41,0x5f00,0x9fc1,0

10、x9e81,0x5e40,0x5a00,0x9ac1,0x9b81,0x5b40,0x9901,0x59c0,0x5880,0x9841,0x8801,0x48c0,0x4980,0x8941,0x4b00,0x8bc1,0x8a81,0x4a40,0x4e00,0x8ec1,0x8f81,0x4f40,0x8d01,0x4dc0,0x4c80,0x8c41,0x4400,0x84c1,0x8581,0x4540,0x8701,0x47c0,0x4680,0x8641,0x8201,0x42c0,0x4380,0x8341,0x4100,0x81c1,0x8081,0x4040;通訊數(shù)據(jù)的類型

11、及格式說明:信息傳輸為異步方式,并以字節(jié)為單位。在主站和從站之間傳遞的通訊信息是11位的字格式:字格式(串行數(shù)據(jù))11位二進(jìn)制起始位1位數(shù)據(jù)位8位奇偶校驗位1位:有奇偶校驗位/無:無奇偶校驗位停止位1位:有奇偶校驗位/2位:無奇偶校驗位 通訊數(shù)據(jù)(信息幀)格式數(shù)據(jù)格式:地址碼功能碼數(shù)據(jù)區(qū)錯誤校檢數(shù)據(jù)長度:1字節(jié)1字節(jié)N字節(jié)16位CRC碼(冗余循環(huán)碼) 注:1、1個字節(jié)由8位二進(jìn)制數(shù)組成(既8 bit)。 2、ModBus是Modicon公司的注冊商標(biāo)。 3、“從機”在本文件中既為PDM。一、通訊信息傳輸過程:當(dāng)通訊命令由發(fā)送設(shè)備(主機)發(fā)送至接收設(shè)備(從機)時,符合相應(yīng)地址碼的從機接收通訊命令

12、,并根據(jù)功能碼及相關(guān)要求讀取信息,如果CRC校驗無誤,則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果(數(shù)據(jù))返送給主機。返回的信息中包括地址碼、功能碼、執(zhí)行后的數(shù)據(jù)以及CRC校驗碼。如果CRC校驗出錯就不返回任何信息。1.1 地址碼: 地址碼是每次通訊信息幀的第一字節(jié)(8位),從1到255。這個字節(jié)表明由用戶設(shè)置地址的從機將接收由主機發(fā)送來的信息。每個從機都必須有唯一的地址碼,并且只有符合地址碼的從機才能響應(yīng)回送信息。當(dāng)從機回送信息時,回送數(shù)據(jù)均以各自的地址碼開始。主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機返回的地址碼表明回送的從機地址。相應(yīng)的地址碼表明該信息來自于何處。1.2 功能碼: 是每次通訊信息

13、幀傳送的第二個字節(jié)。ModBus通訊規(guī)約可定義的功能碼為1到127。PDM系列儀表/變送器僅用到其中的一部分功能碼。作為主機請求發(fā)送,通過功能碼告訴從機應(yīng)執(zhí)行什么動作。作為從機響應(yīng),從機返回的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應(yīng)主機并且已進(jìn)行相關(guān)的操作。 表8.1 MODBUS部分功能碼功能碼定 義操 作(二進(jìn)制)02讀開關(guān)量輸入讀取一路或多路開關(guān)量狀態(tài)輸入數(shù)據(jù)01讀開關(guān)量輸出讀取一路或多路開關(guān)量輸出狀態(tài)數(shù)據(jù)03讀寄存器數(shù)據(jù)讀取一個或多個寄存器的數(shù)據(jù)05寫開關(guān)量輸出控制一路繼電器“合/分”輸出06寫單路寄存器把一組二進(jìn)制數(shù)據(jù)寫入單個寄存器10寫多路寄存器把多組二進(jìn)制數(shù)據(jù)寫入多個寄

14、存器1.3 數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包括需要由從機返送何種信息或執(zhí)行什么動作。這些信息可以是數(shù)據(jù)(如:開關(guān)量輸入/輸出、模擬量輸入/輸出、寄存器等等)、參考地址等。例如,主機通過功能碼03告訴從機返回寄存器的值(包含要讀取寄存器的起始地址及讀取寄存器的長度),則返回的數(shù)據(jù)包括寄存器的數(shù)據(jù)長度及數(shù)據(jù)內(nèi)容。對于不同的從機,地址和數(shù)據(jù)信息都不相同(應(yīng)給出通訊信息表)。二、MODBUS功能碼簡介2.1 功能碼“02”:讀1路或多路開關(guān)量狀態(tài)輸入例如:主機要讀取地址為01,開關(guān)量DI1DI4的輸入狀態(tài)。從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:起始位地址DI寄存器數(shù)據(jù)(16進(jìn)制)備 注00000BDI1/DI2/D

15、I4狀態(tài)為“1”,DI3狀態(tài)為“0”主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息備 注從機地址101 發(fā)送至地址為01的從機功能碼102 讀開關(guān)量輸入狀態(tài)起始BIT位20000 起始BIT位地址為0000讀數(shù)據(jù)長度20004 讀取4路開關(guān)量輸入狀態(tài)位CRC碼279C9由主機計算得到CRC碼從機(PDM)響應(yīng)返回的報文格式:從機響應(yīng)字節(jié)數(shù)返回的信息備 注從機地址101 來自從機01功能碼102 讀開關(guān)量輸入狀態(tài)數(shù)據(jù)長度101 1個字節(jié)(8個BIT位)DI狀態(tài)數(shù)據(jù)10BDI寄存器內(nèi)容CRC碼2E04F 由從機計算得到CRC碼2.2 功能碼“01”:讀1路或多路開關(guān)量輸出狀態(tài)例如:主機要讀取地址為0

16、1,開關(guān)量DO1,DO2的輸出狀態(tài)。從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:起始位地址DO寄存器數(shù)據(jù)(16進(jìn)制)備 注000002DO2輸出狀態(tài)為“1”,DO1輸出狀態(tài)為“0”主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息備 注從機地址101 發(fā)送至地址為01的從機功能碼101 讀開關(guān)量輸出狀態(tài)起始BIT位20000 起始BIT位地址為0000讀數(shù)據(jù)長度20002 讀取2路繼電器輸出狀態(tài)位CRC碼2BDCB由主機計算得到CRC碼從機(PDM)響應(yīng)返回的報文格式:從機響應(yīng)字節(jié)數(shù)返回的信息備 注從機地址101 來自從機01功能碼101 讀開關(guān)量輸出狀態(tài)數(shù)據(jù)長度101 1個字節(jié)(8個BIT位)DO狀態(tài)

17、數(shù)據(jù)102DO寄存器內(nèi)容CRC碼2D049 由從機計算得到CRC碼2.3 功能碼“03”:讀多路寄存器輸入例如:主機要讀取地址為01,起始地址為0116的3個從機寄存器數(shù)據(jù)。從機(PDM)數(shù)據(jù)寄存器的地址和數(shù)據(jù)為:寄存器地址寄存器數(shù)據(jù)(16進(jìn)制)對應(yīng)PDM電量01161784UA01171780UB0118178AUC主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息備 注從機地址101 發(fā)送至地址為01的從機功能碼103 讀取寄存器起始地址20116 起始地址為0116數(shù)據(jù)長度30003 讀取3個寄存器(共6個字節(jié))CRC碼2E5F3由主機計算得到CRC碼從機(PDM)響應(yīng)返回的報文格式:從機響應(yīng)

18、字節(jié)數(shù)返回的信息備 注從機地址101 來自從機01功能碼103 讀取寄存器讀取字106 3個寄存器共6個字節(jié)寄存器數(shù)據(jù)121784地址為0116內(nèi)存的內(nèi)容寄存器數(shù)據(jù)221780地址為0117內(nèi)存的內(nèi)容寄存器數(shù)據(jù)32178A 地址為0118內(nèi)存的內(nèi)容CRC碼25847 由從機計算得到CRC碼2.4 功能碼“05”:寫1路開關(guān)量輸出(“遙控”)例1:開關(guān)量輸出點DO1,其當(dāng)前狀態(tài)為“分”,主機要控制該路繼電器“合”。 控制命令為:“FF00”為控制繼電器“合”;“0000”為控制繼電器“分”;主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息備 注從機地址101 發(fā)送至地址為01的從機功能碼105 寫開

19、關(guān)量輸出狀態(tài)輸出BIT位20000 對應(yīng)輸出繼電器BIT位(DO1)控制命令2FF00 控制該路繼電器輸出為“合”狀態(tài)位CRC碼28C3A由主機計算得到CRC碼從機(PDM)響應(yīng)返回的報文格式: 與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。例2:開關(guān)量輸出點DO2,其當(dāng)前狀態(tài)為“合”,主機要控制該路繼電器“分”。主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息備 注從機地址101 發(fā)送至地址為01的從機功能碼105 寫開關(guān)量輸出狀態(tài)輸出BIT位20001 對應(yīng)輸出繼電器BIT位(DO2)控制命令20000 控制該路繼電器輸出為“合”狀態(tài)位CRC碼29C0A由主機計算得到CRC碼從機(PDM)響應(yīng)返回的

20、報文格式: 與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。2.5 功能碼“06”:寫單路寄存器例如:主機要把數(shù)據(jù)07D0,保存到地址為002C的從機寄存器中去(從機地址碼為01)。通訊數(shù)據(jù)保存結(jié)束后,地址為002C的PDM表原存儲信息為:地址原來存儲數(shù)據(jù)(16進(jìn)制)002C04B0主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送的信息舉例從機地址101 發(fā)送至地址為01的從機功能碼106 寫單路寄存器起始地址2002C 要寫入的寄存器地址寫入數(shù)據(jù)207D0 對應(yīng)的新數(shù)據(jù)CRC碼2 4BAF由主機計算得到的CRC碼從機(PDM)響應(yīng)返回的報文格式: 與主機發(fā)送的報文格式及數(shù)據(jù)內(nèi)容完全相同。2.6功能碼“10”:

21、寫多路寄存器主機利用這個功能碼把多個數(shù)據(jù)保存到PDM表的數(shù)據(jù)存儲器中去。Modbus通訊規(guī)約中的寄存器指的是16位(即2字節(jié)),并且高位在前。這樣PDM的存儲器都是二個字節(jié)。由于Modbus通訊規(guī)約允許每次最多保存60個寄存器,因此PDM一次也最多允許保存60個數(shù)據(jù)寄存器。例如:主機要把0064,0010保存到地址為002C,002D的從機寄存器中去(從機地址碼為01)。通訊數(shù)據(jù)保存結(jié)束后,地址為002C/002D的PDM表內(nèi)存儲信息為:地址原來存儲數(shù)據(jù)(16進(jìn)制)002C04B0002D1388主機發(fā)送的報文格式:主機發(fā)送字節(jié)數(shù)發(fā)送信息舉例從機地址101發(fā)送至從機01功能碼110寫多路寄存器

22、起始地址2002C要寫入的寄存器的起始地址保存數(shù)據(jù)字長度20002保存數(shù)據(jù)的字長度(共2字)保存數(shù)據(jù)字節(jié)長104保存數(shù)據(jù)的字節(jié)長度(共4字節(jié))保存數(shù)據(jù)1204B0數(shù)據(jù)地址002C保存數(shù)據(jù)221388數(shù)據(jù)地址002DCRC碼2FC63由主機計算得到的CRC碼從機(PDM)響應(yīng)返回的報文格式:從機響應(yīng)字節(jié)數(shù)字節(jié)數(shù)舉例從機地址101來自從機01功能碼110寫多路寄存器起始地址2002C起始地址為002C保存數(shù)據(jù)字長度20002保存2個字長度的數(shù)據(jù)CRC碼28001由從機計算得到的CRC碼三、錯誤校驗碼(CRC校驗):主機或從機可用校驗碼進(jìn)行判別接收信息是否正確。由于電子噪聲或一些其它干擾,信息在傳輸過程中有時會發(fā)生錯誤,錯誤校驗碼(CRC)可以檢驗主機或從機在通訊數(shù)據(jù)傳送過程中的信息是否有誤,錯誤的數(shù)據(jù)可以放棄(無論是發(fā)送還是接收),這樣增加了系統(tǒng)的安全和效率。MODBUS通訊協(xié)議的CRC(冗余循環(huán)碼)包含2個字節(jié),即16位二進(jìn)制數(shù)。CRC碼由發(fā)送設(shè)備(主機)計算,放置于發(fā)送信息幀的尾部。接收信息的設(shè)備(從機)再重新計算接收到信息的CR

溫馨提示

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

最新文檔

評論

0/150

提交評論