幫助文檔
關(guān)于Modbus通訊協(xié)議的基本信息介紹
MODBUS基本概念
Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。
Modbus具有以下幾個(gè)特點(diǎn):
● 標(biāo)準(zhǔn)開放,用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán)。
● Modbus支持多種電氣接口,如RS232、RS485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無(wú)線等。
● Modbus協(xié)議幀格式簡(jiǎn)單、緊湊,通俗易懂,用戶使用容易,廠商開發(fā)簡(jiǎn)單。
MODBUS網(wǎng)絡(luò)的兩種傳輸模式
控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗(yàn)方式等),在配置每個(gè)控制器的時(shí)候,在一個(gè)Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。
●ASCII模式
當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國(guó)標(biāo)準(zhǔn)信息交換代碼)模式通信,在消息中的每個(gè)8Bit字節(jié)都作為一個(gè)ASCII碼(兩個(gè)十六進(jìn)制字符)發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1秒而不產(chǎn)生錯(cuò)誤。
●RTU模式
當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU(遠(yuǎn)程終端單元)模式通信,在消息中的每個(gè)8Bit字節(jié)包含兩個(gè)4Bit的
十六進(jìn)制字符。
這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可比ASCII模式傳送更多的數(shù)據(jù)。
Modbus RTU信息幀
Modbus信息以幀的方式傳輸,每幀有確定的起始點(diǎn)和結(jié)束點(diǎn),使接收設(shè)備在信息的起點(diǎn)開始讀地址,并確定要尋址的設(shè)備,以及信息傳輸?shù)慕Y(jié)束時(shí)間。
RTU模式中,信息開始至少需要有3.5個(gè)字符的靜止時(shí)間,依據(jù)使用的波特率,很容易計(jì)算這個(gè)靜止的時(shí)間(如下圖中的T1-T2-T3-T4)。
各個(gè)區(qū)允許發(fā)送的字符均為16進(jìn)制的0-9,A-F。
網(wǎng)絡(luò)上的設(shè)備連續(xù)監(jiān)測(cè)網(wǎng)絡(luò)上的信息,包括靜止時(shí)間。當(dāng)接收地址數(shù)據(jù)時(shí),每臺(tái)設(shè)備立即對(duì)它解碼,以決定是否是自己的地址。發(fā)送完后一個(gè)字符號(hào)后,也有一個(gè)3.5個(gè)字符的靜止時(shí)間,然后才能發(fā)送一個(gè)新的信息。整個(gè)信息必須連續(xù)發(fā)送。如果在發(fā)送幀信息期間,出現(xiàn)大于1.5個(gè)字符的靜止時(shí)間時(shí),則接收設(shè)備刷新不完整的信息,并假設(shè)下一個(gè)地址數(shù)據(jù)。
地址設(shè)置
有效的從機(jī)設(shè)備地址范圍0-247(十進(jìn)制),各從機(jī)設(shè)備的尋址范圍為1-247。
主機(jī)把從機(jī)地址放入信息幀的地址區(qū),并向從機(jī)尋址。從機(jī)響應(yīng)時(shí),把自己的地址放入響應(yīng)信息的地址區(qū),讓主機(jī)識(shí)別已作出響應(yīng)的從機(jī)地址。
地址0為于廣播地址,所有從機(jī)均能識(shí)別。
功能碼設(shè)置
Modbus常用的功能代碼:
數(shù)據(jù)區(qū)的內(nèi)容
數(shù)據(jù)區(qū)有2個(gè)16進(jìn)制的數(shù)據(jù)位,數(shù)據(jù)范圍為00-FF(16進(jìn)制)。
主機(jī)向從機(jī)設(shè)備發(fā)送的信息數(shù)據(jù)中包含了從機(jī)執(zhí)行主機(jī)功能代碼中規(guī)定的請(qǐng)求動(dòng)作,如邏輯線圈地址,處理對(duì)象的數(shù)目,以及實(shí)際的數(shù)據(jù)字節(jié)數(shù)等。
7 錯(cuò)誤校驗(yàn)
CRC域是兩個(gè)字節(jié),包含一16位的值,2個(gè)8位字節(jié),它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收
到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有誤。

閩公網(wǎng)安備 35021102001331號(hào)