版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、modbus協(xié)議介紹modbus協(xié)議介紹9/9modbus協(xié)議介紹 ModBus 協(xié)議Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是全球第一個(gè)真正用于工業(yè)現(xiàn)場的總線協(xié)議,在中國,Modbus已經(jīng)成為國家標(biāo)準(zhǔn)GB/T19582-2008。ModBus網(wǎng)絡(luò): HYPERLINK /view/591160.htm t /_blank 系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。Modbus協(xié)議:控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。當(dāng)在同一Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器需要知道它們的設(shè)備地址,
2、識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(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ò)誤檢測的方法。支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。許多工業(yè)設(shè)備,包括PLC,DCS,智能儀表等都在使用Modbus協(xié)議作為他們之間的通信標(biāo)準(zhǔn)。控制器能直接或經(jīng)由Modem組網(wǎng)。 標(biāo)準(zhǔn)的Modbus口是使用 HYPERLINK /view/501609.htm t /_blank RS-232-C兼容 HYPERLINK /view/161
3、117.htm t /_blank 串行接口,它定義了連接口的針腳、電纜、信號位、傳輸 HYPERLINK /view/119333.htm t /_blank 波特率、 HYPERLINK /view/444171.htm t /_blank 奇偶校驗(yàn)。Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、錯(cuò)誤檢測域。從設(shè)備回應(yīng)消息也由Modbus協(xié)議構(gòu)成,包括:確認(rèn)要行動的域、任何要返回的數(shù)據(jù)、和一錯(cuò)誤檢測域。如果在消息接收過程中發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤消息并把它作為回應(yīng)發(fā)送出去。查詢: HYPERLINK /view/100
4、5328.htm t /_blank 數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息:從何寄存器開始讀、要讀的寄存 器數(shù)量,錯(cuò)誤檢測域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息內(nèi)容是否正確的方法 回應(yīng):查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):像寄存器值或狀 態(tài)。如果有錯(cuò)誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯(cuò)誤的,同時(shí)數(shù)據(jù) 段包含了描述此錯(cuò)誤信息的代碼。錯(cuò)誤檢測域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。傳輸方式:2種傳輸模式:一種模式是ASCII(美國信息 HYPERLINK /view/5481005.htm t /_blank 交換碼),另一種模式是RTU(遠(yuǎn) 程 HYPERLINK /vie
5、w/34654.htm t /_blank 終端設(shè)備)。2種模式不能混用。ASCII可打印字符便于故障檢測,而且對 用高級語言(如Fortran)編程的主計(jì)算機(jī)及主PC很適宜。RTU則適用于 HYPERLINK /view/111847.htm t /_blank 機(jī) 器語言編程的計(jì)算機(jī)和PC主機(jī) (1)ASCII模式與RTU模式相互轉(zhuǎn)換: RTU模式傳輸?shù)臄?shù)據(jù):是8位二進(jìn)制字符,分高位和低位,每部分各含4位。 ASCII模式傳輸?shù)臄?shù)據(jù):是16位十六進(jìn)制字符。 轉(zhuǎn)換:將RTU的每4個(gè)高位和低位分別轉(zhuǎn)換成ASCII對應(yīng)的16進(jìn)制字符。 區(qū)別:ASCII模式使用的 HYPERLINK /view/
6、263416.htm t /_blank 字符雖是RTU模式的兩倍,但ASCII數(shù)據(jù)的譯碼和處理更為容易一些用RTU模式時(shí)報(bào)文字符必須以連續(xù)數(shù)據(jù)流的形式傳送,用ASCII模式,字符之間可產(chǎn)生長達(dá)1s的間隔,以適應(yīng)速度較慢的機(jī)器。ASCII模式一個(gè)信息中的每4位字節(jié)作為1個(gè)ASCII字符傳輸,如數(shù)值63H用ASCII方式時(shí),需發(fā)送兩個(gè)字節(jié),即ASCII“6(0110110)和ASCII”3“(0110011),1個(gè)ASCII字符占用的位數(shù)有7位和8位,國際通用7位為多。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1秒而不產(chǎn)生錯(cuò)誤。代碼系統(tǒng): 十六進(jìn)制,ASCII HYPERLINK /view/
7、263416.htm t /_blank 字符0.9,A.F 消息中的每個(gè)ASCII字符都是一個(gè)十六進(jìn)制字符組成 每個(gè)字節(jié)的位: 1個(gè)起始位7個(gè) HYPERLINK /view/190231.htm t /_blank 數(shù)據(jù)位,最小的有效位先發(fā)送1個(gè) HYPERLINK /view/492663.htm t /_blank 奇偶校驗(yàn)位,無校驗(yàn)則無1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)Bit(無校驗(yàn)時(shí))錯(cuò)誤檢測域 LRC(縱向冗長檢測)RTU模式當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU模式通信,在消息中的每個(gè)8Bit字節(jié)按照原值傳送,不做處理,如63H,RTU將直接發(fā)送01100011。這種方式的主要優(yōu)點(diǎn)
8、是:數(shù)據(jù)幀傳送之間沒有間隔,相同波特率下傳輸數(shù)據(jù)的密度要比ASCII高,傳輸速度更快。代碼系統(tǒng):8位二進(jìn)制, HYPERLINK /view/3107737.htm t /_blank 十六進(jìn)制數(shù)0.9,A.F消息中的每個(gè)8 HYPERLINK /view/1256879.htm t /_blank 位域都是一或兩個(gè)十六進(jìn)制字符組成 每個(gè)字節(jié)的位:1個(gè)起始位8個(gè) HYPERLINK /view/190231.htm t /_blank 數(shù)據(jù)位,最小的有效位先發(fā)送1個(gè) HYPERLINK /view/492663.htm t /_blank 奇偶校驗(yàn)位,無校驗(yàn)則無1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)Bi
9、t(無校驗(yàn)時(shí))9.數(shù)據(jù)校驗(yàn)方式CRCCRC域是兩個(gè)字節(jié),包含一16位的二進(jìn)制值。它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有誤。CRC是先調(diào)入一值是全“1”的16位寄存器,然后調(diào)用一過程將消息中連續(xù)的8位字節(jié)和當(dāng)前寄存器中的值進(jìn)行處理。僅每個(gè)字符中的8Bit數(shù)據(jù)對CRC有效,起始位和停止位以及 HYPERLINK /view/492663.htm t /_blank 奇偶校驗(yàn)位均無效。CRC產(chǎn)生過程中,每個(gè)8位字符都單獨(dú)和寄存器內(nèi)容相異或(XOR),結(jié)果向最低有效位方向移動,最高有效位以0填充。LSB被提取出來檢測,如果L
10、SB為1,寄存器單獨(dú)和預(yù)置的值或一下,如果LSB為0,則不進(jìn)行。整個(gè)過程要重復(fù)8次。在最后一位(第8位)完成后,下一個(gè)8位字節(jié)又單獨(dú)和寄存器的當(dāng)前值相異或(XOR)。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行之后的CRC值。CRC添加到消息中時(shí),低字節(jié)先加入,然后高字節(jié)。CRC-16錯(cuò)誤校驗(yàn)程序如下: HYPERLINK /view/175122.htm t /_blank 報(bào)文(此處只涉及 HYPERLINK /view/190231.htm t /_blank 數(shù)據(jù)位,不指起始位、停止位和任選的 HYPERLINK /view/492663.htm t /_blank 奇偶校驗(yàn)位)被看作是
11、一個(gè)連續(xù)的二進(jìn)制,其最高有效位(MSB)首選發(fā)送。報(bào)文先與X16相乘(左移16位),然后看X16+X15+X2+1除,X16+X15+X2+1可以表示為二進(jìn)制數(shù)11000,0000,0000,0101。整數(shù)商位忽略不記,16位余數(shù)加入該報(bào)文(MSB先發(fā)送),成為2個(gè)CRC校驗(yàn)字節(jié)。余數(shù)中的1全部初始化,以免所有的零成為一條報(bào)文被接收。經(jīng)上述處理而含有CRC字節(jié)的報(bào)文,若無錯(cuò)誤,到接收設(shè)備后再被同一多項(xiàng)式(X16+X15+X2+1)除,會得到一個(gè)零余數(shù)(接收設(shè)備核驗(yàn)這個(gè)CRC字節(jié),并將其與被傳送的CRC比較)。全部運(yùn)算以2為模(無進(jìn)位)。習(xí)慣于成串發(fā)送數(shù)據(jù)的設(shè)備會首選送出字符的最右位(LSB-最
12、低有效位)。而在生成CRC情況下,發(fā)送首位應(yīng)是被除數(shù)的最高有效位MSB。由于在運(yùn)算中不用進(jìn)位,為便于操作起見,計(jì)算CRC時(shí)設(shè)MSB在最右位。生成多項(xiàng)式的位序也必須反過來,以保持一致。多項(xiàng)式的MSB略去不記,因其只對商有影響而不影響余數(shù)。生成CRC-16校驗(yàn)字節(jié)的步驟如下:裝如一個(gè)16位 HYPERLINK /view/6159.htm t /_blank 寄存器,所有數(shù)位均為1。該16位寄存器的高位 HYPERLINK /view/60408.htm t /_blank 字節(jié)與開始8位字節(jié)進(jìn)行“異或”運(yùn)算。運(yùn)算結(jié)果放入這個(gè)16位寄存器。把這個(gè)16寄存器向右移一位。若向右(標(biāo)記位)移出的數(shù)位是1
13、,則生成多項(xiàng)式10,1000,000,0000,001和這個(gè)寄存器進(jìn)行“異或”運(yùn)算;若向右移出的數(shù)位是0,則返回。重復(fù)和,直至移出8位。另外8位與該十六位寄存器進(jìn)行“異或”運(yùn)算。重復(fù),直至該 HYPERLINK /view/175122.htm t /_blank 報(bào)文所有字節(jié)均與16位 HYPERLINK /view/6159.htm t /_blank 寄存器進(jìn)行“異或”運(yùn)算,并移位8次。這個(gè)16位寄存器的內(nèi)容即2字節(jié)CRC錯(cuò)誤校驗(yàn),被加到報(bào)文的最高有效位。另外,在某些非ModBus通信協(xié)議中也經(jīng)常使用CRC16作為校驗(yàn)手段,而且產(chǎn)生了一些CRC16的變種,他們是使用CRC16多項(xiàng)式X16
14、+X15+X2+1,單首次裝入的16位寄存器為0000;使用CRC16的反序X16+X14+X1+1,首次裝入寄存器值為0000或FFFFH。CRC簡單函數(shù)如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101unsignedchar*puchMsg;/*要
15、進(jìn)行CRC校驗(yàn)的消息*/unsignedshortusDataLen;/*消息中字節(jié)數(shù)*/unsignedshortCRC16(puchMsg,usDataLen)unsignedcharuchCRCHi=0 xFF;/*高CRC字節(jié)初始化*/unsignedcharuchCRCLo=0 xFF;/*低CRC字節(jié)初始化*/unsigneduIndex;/*CRC循環(huán)中的索引*/while(usDataLen-)/*傳輸消息緩沖區(qū)*/uIndex=uchCRCHi*puchMsg+;/*計(jì)算CRC*/uchCRCHi=uchCRCLoauchCRCHiuIndex;uchCRCLo=auchCR
16、CLouIndex;return(uchCRCHi8)|uchCRCLo);/*CRC高位字節(jié)值表*/staticunsignedcharauchCRCHi=0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00
17、,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80
18、,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00
19、,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81
20、,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x00,0 xC1,0 x81,0 x40,0 x01
21、,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40,0 x01,0 xC0,0 x80,0 x41,0 x01,0 xC0,0 x80,0 x41,0 x00,0 xC1,0 x81,0 x40;/CRC低位字節(jié)值表staticcharauchCRCLo=0 x00,0 xC0,0 xC1,0 x01,0 xC3,0 x03,0 x02,0 xC2,0 xC6,0 x06,0 x07,0 xC7,0 x05,0 xC5,0 xC4,0 x04,0 xCC,0 x0C,0 x0D,0 xCD,0 x0F,0 xCF,0 xCE,0 x0E,0 x0A,0 xCA
22、,0 xCB,0 x0B,0 xC9,0 x09,0 x08,0 xC8,0 xD8,0 x18,0 x19,0 xD9,0 x1B,0 xDB,0 xDA,0 x1A,0 x1E,0 xDE,0 xDF,0 x1F,0 xDD,0 x1D,0 x1C,0 xDC,0 x14,0 xD4,0 xD5,0 x15,0 xD7,0 x17,0 x16,0 xD6,0 xD2,0 x12,0 x13,0 xD3,0 x11,0 xD1,0 xD0,0 x10,0 xF0,0 x30,0 x31,0 xF1,0 x33,0 xF3,0 xF2,0 x32,0 x36,0 xF6,0 xF7,0 x37
23、,0 xF5,0 x35,0 x34,0 xF4,0 x3C,0 xFC,0 xFD,0 x3D,0 xFF,0 x3F,0 x3E,0 xFE,0 xFA,0 x3A,0 x3B,0 xFB,0 x39,0 xF9,0 xF8,0 x38,0 x28,0 xE8,0 xE9,0 x29,0 xEB,0 x2B,0 x2A,0 xEA,0 xEE,0 x2E,0 x2F,0 xEF,0 x2D,0 xED,0 xEC,0 x2C,0 xE4,0 x24,0 x25,0 xE5,0 x27,0 xE7,0 xE6,0 x26,0 x22,0 xE2,0 xE3,0 x23,0 xE1,0 x21
24、,0 x20,0 xE0,0 xA0,0 x60,0 x61,0 xA1,0 x63,0 xA3,0 xA2,0 x62,0 x66,0 xA6,0 xA7,0 x67,0 xA5,0 x65,0 x64,0 xA4,0 x6C,0 xAC,0 xAD,0 x6D,0 xAF,0 x6F,0 x6E,0 xAE,0 xAA,0 x6A,0 x6B,0 xAB,0 x69,0 xA9,0 xA8,0 x68,0 x78,0 xB8,0 xB9,0 x79,0 xBB,0 x7B,0 x7A,0 xBA,0 xBE,0 x7E,0 x7F,0 xBF,0 x7D,0 xBD,0 xBC,0 x7C,0 xB4,0 x74,0 x75,0 xB5,0 x77,0 xB7,0 xB6,0 x76,0 x72,0 xB2,0 xB3,0 x73,0 xB1,0 x71,0 x70,0 xB0,0 x50,
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《沉箱預(yù)制施工方案》課件
- 小學(xué)五年級數(shù)學(xué)上期小數(shù)點(diǎn)乘除法計(jì)算練習(xí)題合集
- 七年級生物上冊第一單元生物和生物圈知識點(diǎn)總結(jié)(新版)新人教版
- 教師資格證考試普通話要求
- 《切事故都可以預(yù)防》課件
- 二年級上冊11 葡萄溝(教案)
- 瀝青砼攤鋪合同協(xié)議書
- 焊接培訓(xùn)資料:焊接應(yīng)力的消除
- 健康行業(yè)助理工作總結(jié)評述
- 電梯電梯銷售經(jīng)理銷售業(yè)績總結(jié)
- JGJ46-2024 建筑與市政工程施工現(xiàn)場臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)
- 江西省2023-2024學(xué)年高二上學(xué)期期末教學(xué)檢測數(shù)學(xué)試題 附答案
- 2023-2024-1習(xí)思想學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 說明書hid500系列變頻調(diào)速器使用說明書s1.1(1)
- 數(shù)字化設(shè)計(jì)與制造PPT課件
- 個(gè)人信息查詢使用授權(quán)書
- 工作證明(通用)
- 通達(dá)信-低位放量公式(已驗(yàn)證)
- 第四章 船舶動力管路系統(tǒng)
- 全球?qū)嶒?yàn)室儀器耗材國際品牌簡介
- 空白數(shù)獨(dú)格子
評論
0/150
提交評論