




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章Modbus協(xié)議介紹Modbus協(xié)議介紹口兩種串行傳輸模式口信息幀口錯誤檢查方法PI-MBUS-300Modbus Protocol23Modbus協(xié)議介紹Modbus可編程控制器之間可相互通訊,也可與不同網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行通訊,支撐網(wǎng)絡(luò)有Modicon的Modbus和Modbus+工業(yè)網(wǎng)絡(luò)。網(wǎng)絡(luò)信息存取可由控制器內(nèi)置的端口,網(wǎng)絡(luò)適配器以及Modicon提供的模塊選件和網(wǎng)關(guān)等設(shè)備實現(xiàn),對OEM(機械設(shè)備制造商)來說,Modicon可為合作伙伴提供現(xiàn)有的程序,可使Modbus+網(wǎng)絡(luò)緊密地集成到他們的產(chǎn)品設(shè)計中去。Modicon的各種控制器使用的公共語言被稱為Modbus協(xié)議,該協(xié)議定義了
2、控制器能識別和使用的信息結(jié)構(gòu)。當(dāng)在Modbus網(wǎng)絡(luò)上進(jìn)行通訊時,協(xié)議能使每一臺控制器知道它本身的設(shè)備地址,并識別對它尋址的數(shù)據(jù),決定應(yīng)起作用的類型,取出包含在信息中的數(shù)據(jù)和資料等,控制器也可組織回答信息,并使用Modbus協(xié)議將此信息傳送出去。在其他網(wǎng)絡(luò)上使用時,數(shù)據(jù)包和數(shù)據(jù)幀中也包含著Modbus協(xié)議。如,Modbus+或MAP網(wǎng)絡(luò)控制器中有相應(yīng)的應(yīng)用程序庫和驅(qū)動程序,實現(xiàn)嵌入式Modbus協(xié)議信息與此網(wǎng)絡(luò)中用子節(jié)點設(shè)備間通訊的特殊信息幀的數(shù)據(jù) 轉(zhuǎn)換。該轉(zhuǎn)換也可擴展,處理節(jié)點地址,路由,和每一個特殊網(wǎng)絡(luò)的錯誤檢查方法。如包含在Modbus協(xié)議中的設(shè)備地址,在信息發(fā)送前就轉(zhuǎn)換成節(jié)點地址,錯誤檢
3、查區(qū)也用于數(shù)據(jù)包,與每個網(wǎng)絡(luò)的協(xié)議一致,最后一點是需用 Modbus協(xié)議,寫入嵌入的信息,定義應(yīng)處理的動作。圖1說明了采用不同通訊技術(shù)的多層網(wǎng)絡(luò)中設(shè)備的互連方法。在信息交換中,嵌入到每個網(wǎng)絡(luò)數(shù)據(jù)包中的Modbus協(xié)議,提供了設(shè)備間能夠交換數(shù)據(jù)的公共的語言。MODBUS PLUSAT/HC-984IAT/H4A984II和I和 白附脂IHOST/MMHIIHOST5MMHI IIMODBUSMODBUS4 個 Modus設(shè)備或網(wǎng)絡(luò)圖1: Modbus協(xié)議應(yīng)用示意圖* MB+ 為 ModbusModbus上的數(shù)據(jù)傳輸Modicon控制器上的標(biāo)準(zhǔn) Modbus端口是使用一個 RS-232兼容的串行接
4、口,定義了連接器,接線電纜,信 號等級,傳輸波特率,和奇偶校驗,控制器可直接或通過調(diào)制解調(diào)器 (以后簡稱Modems)接入總線(網(wǎng)絡(luò))。控制器 通訊使用主從技術(shù),即主機能起動數(shù)據(jù)傳輸,稱查詢。而其它設(shè)備(從機)應(yīng)返回對查詢作出的響應(yīng),或處理查詢所要求的動作。典應(yīng)的主機設(shè)備應(yīng)包括主處理器和編程器。典應(yīng)的從機包括可編程控制器。主機可對各從機尋址,發(fā)出廣播信息,從機返回信息作為對查詢的響應(yīng)。從機對于主機的廣播查詢,無響應(yīng) 返回Modbus協(xié)議報據(jù)設(shè)備地址,請求功能代碼,發(fā)送數(shù)據(jù),錯誤校驗碼,建立了主機查詢格式,從機的響應(yīng)信 息也用Modbus協(xié)議組織,它包括確認(rèn)動作的代碼,返回數(shù)據(jù)和錯誤校驗碼。若在
5、接收信息時出現(xiàn)一個錯誤或從 機不能執(zhí)行要求的動作時,從機會組織一個錯誤信息。并向主機發(fā)送作為響應(yīng)。在其它總線上傳輸數(shù)據(jù)除標(biāo)準(zhǔn)的Modbus功能外,有些 Modcon控制器內(nèi)置端口或總線適配器,在Modbus+總線上實現(xiàn)通訊或使用網(wǎng)絡(luò)適配器,在 MAP網(wǎng)絡(luò)上通訊。在這些總線上,控制器間采用對等的技術(shù)進(jìn)行通訊,即任意一個控制器可向其它控制器啟動數(shù)據(jù)傳送。因此,Modbus協(xié)議仍采用主從方式,若一臺控制器作為主機設(shè)備發(fā)送一個 類似,當(dāng)一臺控制器接受信息時,它就組織一個從機設(shè)備的響應(yīng)信息,一臺控制器既可作為從機,也可作為主機,常提供多重的內(nèi)部通道,允許并列處理主機和從機傳輸數(shù)據(jù) 在信息級,盡管網(wǎng)絡(luò)通訊
6、方法是對等的,但 信息,則可從一臺從機設(shè)備返回一個響應(yīng), 并返回至原發(fā)送信息的控制器。查詢響應(yīng)周期:圖2:主從查詢響應(yīng)周期查詢:查詢中的功能代碼為被尋址的從機設(shè)備應(yīng)執(zhí)行的動作類型。數(shù)據(jù)字節(jié)中包含從機須執(zhí)行功能的各附加信息, 如功能代碼03將查詢從機,并讀保持寄存器。并用寄存器的內(nèi)容作響應(yīng)。該數(shù)據(jù)區(qū)必須含有告之從機讀取寄存 器的起始地址及數(shù)量,錯誤校驗區(qū)的一些信息,為從機提供一種校驗方法,以保證信息內(nèi)容的完整性。響應(yīng):從機正常響應(yīng)時,響應(yīng)功能碼是查詢功能碼的應(yīng)答,數(shù)據(jù)字節(jié)包含從機采集的數(shù)據(jù),如寄存器值或狀態(tài)。如 出現(xiàn)錯誤,則修改功能碼,指明為錯誤響應(yīng)。并在數(shù)據(jù)字節(jié)中含有一個代碼,來說明錯誤,錯誤
7、檢查區(qū)允許主機 確認(rèn)有效的信息內(nèi)容。兩種串行傳輸模式控制器可使用 ASCII或RTU通訊模式,在標(biāo)準(zhǔn) Modbus上通訊。在配置每臺控制器時,用戶須選擇通訊模 式以及串行口的通訊參數(shù)。 (波特率,奇偶校驗等),在Modbus總線上的所有設(shè)備應(yīng)具有相同的通訊模式和串行 通訊參數(shù)。選才i ASCII或RTU模式用于標(biāo)準(zhǔn)的 Modbus總線。它定義了總線上串行傳輸信息區(qū)的“位”的含義,決定 信息打包及解碼方法。如在MAP和Modbus+總線上時,Modbus信息以幀的方式出現(xiàn),并與串行傳輸無關(guān),如請求讀保持寄存器可以 在Modbus+上的兩個控制器之間處理,而與使用的控制器的Modbus端口無關(guān)。A
8、SCII模式當(dāng)控制器以ASCII模式在Modbus總線上進(jìn)行通訊時,一個信息中的每 8位字節(jié)作為2個ASCII字符傳輸?shù)? 這種模式的主要優(yōu)點是允許字符之間的時間間隔長達(dá)IS,也不會出現(xiàn)錯誤。ASCII碼每一個字節(jié)的格式:編碼系統(tǒng):數(shù)據(jù)位:1個16進(jìn)制16 進(jìn)制,ASCII 字符 0-9,A-F1起始位7位數(shù)據(jù),低位先送奇/偶校驗時1位;無奇偶校驗時 0位(LRC ) 1位帶校驗1停止位;無校驗 2止位錯誤校驗區(qū):縱向冗余校驗RTU模式控制器以RTU模式在Modbus總線上進(jìn)行通訊時,信息中的每8位字節(jié)分成2個4位16進(jìn)制的字符,該模式的主要優(yōu)點是在相同波特率下其傳輸?shù)淖址拿芏雀哂贏SCII
9、模式,每個信息必須連續(xù)傳輸。RTU模式中每個字節(jié)的格式:編碼系統(tǒng):8位二進(jìn)制,十六進(jìn)制 0-9, A-F數(shù)據(jù)位:1起始位8位數(shù)據(jù),低位先送奇/偶校驗時1位;無奇偶校驗時 0位停止位1位(帶校驗);停止位2位(無校驗)帶校驗時1位停止位;無校驗時 2位停止位錯誤校驗區(qū):循環(huán)冗余校驗 (CRC)Modbus信息幀何論是ASCII模式還是RTU模式,Modbus信息以幀的方式傳輸,每幀有確定的起始點和結(jié)束點,使接收設(shè)備在信息的起點開始讀地址,并確定要尋址的設(shè)備(廣播時對全部設(shè)備),以及信息傳輸?shù)慕Y(jié)束時間。可檢測部分信息,錯誤可作為一種結(jié)果設(shè)定。對MAP或Modbus+協(xié)議可對信息幀的起始和結(jié)束點標(biāo)記
10、進(jìn)行處理,也可管理發(fā)送至目的地的信息,此時, 信息傳輸中Modbus數(shù)據(jù)幀內(nèi)的目的地址已無關(guān)緊要,因為Modbus+地址已由發(fā)送者或它的網(wǎng)絡(luò)適配器把它轉(zhuǎn)換成網(wǎng)絡(luò)節(jié)點地址和路由。ASCII 幀在ASCII模式中,以(:)號(ASCII3AH)表示信息開始,以回撤一換行鍵(CRLF) (ASCII OD和OAH)表示信息結(jié)束。對其它的區(qū),允許發(fā)送的字符為16進(jìn)制字符0-9,A-F。網(wǎng)絡(luò)中設(shè)備連續(xù)檢測并接收一個冒號(:)時,每臺設(shè)備對地址區(qū)解碼,找出要尋址的設(shè)備。字符之間的最大間隔為1S,若大于1S,則接收設(shè)備認(rèn)為出現(xiàn)了一個錯誤。典型的信息幀見下表開始地址功能數(shù)據(jù)縱向冗余 檢查結(jié)束1字符:2字符2字
11、符n字符2字符2字符圖3 ASCII信息幀例外:對于584和984A/B/X控制器,一個 ASCII信息可在LRC區(qū)后正常終止,而不需發(fā)送CRLF字符,此時出現(xiàn)IS的時間間隔,控制器也將認(rèn)為是正常中斷。RTU幀RTU模式中,信息開始至少需要有 3.5個字符的靜止時間, 依據(jù)使用的波特率, 很容易計算這個靜止的時間 (如下圖中的T1-T2-T3-T4)。接著,第一個區(qū)的數(shù)據(jù)為設(shè)備地址。各個區(qū)允許發(fā)送的字符均為16進(jìn)制的0-9,A-F。網(wǎng)絡(luò)上的設(shè)備連續(xù)監(jiān)測網(wǎng)絡(luò)上的信息,包括靜止時間。當(dāng)接收第一個地址數(shù)據(jù)時,每臺設(shè)備立即對它解碼, 以決定是否是自己的地址。發(fā)送完最后一個字符號后,也有一個3.5個字符
12、的靜止時間,然后才能發(fā)送一個新的信息。整個信息必須連續(xù)發(fā)送。如果在發(fā)送幀信息期間,出現(xiàn)大于1.5個字符的靜止時間時,則接收設(shè)備刷新不完整的信息,并假設(shè)下一個地址數(shù)據(jù)。同樣一個信息后,立即發(fā)送的一個新信息,(若無3。5個字符的靜止時間)這將會產(chǎn)生一個錯誤。是因為合并信息的CRC校驗碼無效而產(chǎn)生的錯誤。開始地址功能數(shù)據(jù)校驗終止T1-T2-T3-T48 B位S8 B位SNX8 B 位 S16B 位 ST1-T2-T3T-4圖4 RTU信息幀Modbus信息幀(Continued)地址設(shè)置信息地址包括2個字符(ASCII)或8位(RTU),有效的從機設(shè)備地址范圍0-247,(十進(jìn)制),各從機設(shè)備的尋址
13、范圍為1-247。主機把從機地址放入信息幀的地址區(qū),并向從機尋址。從機響應(yīng)時,把自己的地址放入響應(yīng)信息 的地址區(qū),讓主機識別已作出響應(yīng)的從機地址。地址0為于廣播地址,所有從機均能識別。當(dāng)Modbus協(xié)議用于高級網(wǎng)絡(luò)時, 則不允許廣播或其它方式替代。 如Modbus+使用令牌循環(huán),自動更新共享的數(shù)據(jù)庫。功能碼設(shè)置信息幀功能代碼包括字符 (ASCII)或8位(RTU)。有效碼范圍1-225(十進(jìn)制),其中有些代碼適用全部型號的Modicon控制器,而有些代碼僅適用于某些型號的控制器。還有一些代碼留作將來使用,有關(guān)功能代替碼的設(shè)置 將在第2章說明。當(dāng)主機向從句發(fā)送信息時,功能代碼向從機說明應(yīng)執(zhí)行的動
14、作。如讀一組離散式線圈或輸入信號的ON/OFF狀態(tài),讀一組寄存器的數(shù)據(jù),讀從機的診斷狀態(tài),寫線圈(或寄存器),允許下截、記錄、確認(rèn)從機內(nèi)的程序等。當(dāng)從機響應(yīng)主機時,功能代碼可說明從機正常響應(yīng)或出現(xiàn)錯誤(即不正常響應(yīng)),正常響應(yīng)時,從句簡單返回原始功能代碼;不正常響應(yīng)時,從機返回與原始代碼相等效的一個碼,并把最高有效位設(shè)定為“1”。如,主機要求從機讀一組保持寄存器時,則發(fā)送信息的功能碼為:0000 0011 (十六進(jìn)制03)若從機正確接收請求的動作信息后,則返回相同的代碼值作為正常響應(yīng)。發(fā)現(xiàn)錯時,則返回一個不正常響信息:1000 0011(十六進(jìn)制 83)從機對功能代碼作為了修改,此外,還把一個
15、特殊碼放入響應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機出現(xiàn)的錯誤類型和不正常響應(yīng)的原因。主機設(shè)備的應(yīng)用程序負(fù)責(zé)處理不正常響應(yīng),典型處理過程是主機把對信息的測試和診斷送給 從機,并通知操作者。數(shù)據(jù)區(qū)的內(nèi)容數(shù)據(jù)區(qū)有2個16進(jìn)制的數(shù)據(jù)位,數(shù)據(jù)范圍為 00-FF(16進(jìn)制),根據(jù)網(wǎng)絡(luò)串行傳輸?shù)姆绞剑瑪?shù)據(jù)區(qū)可由一對 ASCII字符組成或由一個 RTU字符組成。主機向從機設(shè)備發(fā)送的信息數(shù)據(jù)中包含了從機執(zhí)行主機功能代碼中規(guī)定的請求動作,如離散量寄存器地址, 處理對象的數(shù)目,以及實際的數(shù)據(jù)字節(jié)數(shù)等。舉例說明,若主機請求從機讀一組寄存器(功能代碼03),該數(shù)據(jù)規(guī)定了寄存器的起始地址,以及寄存器的數(shù)量。又如,主機要在一從機中寫一
16、組寄存器, (則功能代碼為10H)。該數(shù)據(jù)區(qū)規(guī)定了要寫入寄存區(qū)的起始地址, 寄存器的數(shù)量,數(shù)據(jù)的字節(jié)數(shù),以及要寫入到寄存器的數(shù)據(jù)。若無錯誤出現(xiàn),從機向主機的響應(yīng)信息中包含了請求數(shù)據(jù),若有錯誤出現(xiàn),則數(shù)據(jù)中有一個不正常代碼,使 主機能判斷并作出下一步的動作。數(shù)據(jù)區(qū)的長度可為“零”以表示某類信息,如,主機要求-從機響應(yīng)它的通訊事件記錄(功能代碼 OBH)。此時,從機不需要其他附加的信息,功能代碼只規(guī)定了該動作。信息幀錯誤校驗標(biāo)準(zhǔn)Modbus總線,有兩類錯誤檢查方法,錯誤檢查區(qū)的內(nèi)容按使用的錯誤檢查方法填寫。SDCII使用ASCII方式時,錯誤校驗碼為2個ASCII字符,錯誤校驗字符是LRC校驗結(jié)果
17、。校驗時,起始符為(:) 冒號結(jié)束符為CRLF字符。RTU使用RTU方式時,錯誤校驗碼為一個16位的值,2個8位字節(jié)。錯誤校驗值是對信息內(nèi)容執(zhí)行CRC校驗結(jié)果。CRC校驗信息幀是最后的一個數(shù)據(jù),得到的校驗碼先送低位字節(jié),后送高位字節(jié),所以CRC碼的高位字節(jié)是最后被傳送的信息。用行傳送信息在標(biāo)準(zhǔn)的Modbus上傳送的信息中,每個字符或字節(jié),按由左向右的次序傳送:最低有效位:(LSB )最高有效位:(MSB) ASCII數(shù)據(jù)幀位序:RTU數(shù)據(jù)幀位序:錯誤校驗方法標(biāo)準(zhǔn)的Modbus串行通訊網(wǎng)絡(luò)采用兩種錯誤校驗方法,奇偶校驗(奇或偶)可用于校驗每一個字符,信息幀校驗(LRC或CRC)適用整個信息的校驗
18、,字符校驗和信息幀校驗均由主機設(shè)備產(chǎn)生,并在傳送前加到信息中去。 從機設(shè)備在接收信息過程中校驗每個字符和整個信息。主機可由用戶設(shè)置的一個預(yù)定時間間隔,確定是否放棄傳送信息。 該間隔應(yīng)有足夠的時間來滿足從機的正常響應(yīng)。若主機檢測到傳輸錯誤時,則傳輸?shù)男畔o效。從機不再向主機返回響應(yīng)信息。此時,主機會產(chǎn)生一個超 時信息,并允許主機程序處理該錯誤信號。注意:主機向?qū)嶋H并未存在的從機發(fā)送信息時也會引起超時出錯信號。在MAP或Modbus+等其它網(wǎng)駱上使用時,采用比Modbus更高一級的數(shù)據(jù)幀校驗方法。在這些網(wǎng)絡(luò)中,不再運用Modbus中的LRC或CRC校驗方法。當(dāng)出現(xiàn)發(fā)送錯誤時,網(wǎng)絡(luò)中的通訊協(xié)議通知發(fā)
19、送設(shè)備有錯誤出現(xiàn), 并允許根據(jù)設(shè)置的情況,重試或放棄信息發(fā)送。若信息已發(fā)送,但從機設(shè)備未作響應(yīng),則主機通過程序檢查后發(fā) 出一個超時錯誤。奇偶校驗用戶可設(shè)置奇偶校驗或無校驗, 以此決定每個字符發(fā)送時的奇偶校驗位的狀態(tài)。何論是奇或偶校驗,它均會計算每個字符數(shù)據(jù)中值為“ 1”的位數(shù),ASCII方式為位數(shù)據(jù);RTU方式為8位數(shù)據(jù)。并根據(jù)“ 1”的位數(shù)值(奇 數(shù)或偶數(shù))來設(shè)定為“0”或“ 1”如一個RTU數(shù)據(jù)幀中8位數(shù)據(jù)位為:1100 0101在該幀中,值為“ 1”的總位數(shù)為4,即偶數(shù)。如采用奇校驗方式時,則 “1”的總位數(shù)為奇數(shù),即 5。發(fā)送信息時,計算奇偶位,并加到數(shù)據(jù)幀中,接收設(shè)備統(tǒng)計位值為“1”
20、的數(shù)量,若與該設(shè)備要求的不一致時產(chǎn)生一個錯誤。在 Modbus總線上的所有設(shè)備必須采用相同的奇偶校驗方式。注意:奇偶校驗只能檢測到數(shù)據(jù)幀在傳輸過程中丟失奇數(shù)“位”時才產(chǎn)生的錯誤。如采用奇數(shù)校驗方式時, 一個包含3個“1”位的數(shù)據(jù)丟失2個“1”位時,其結(jié)果仍然是奇數(shù)。若無奇偶校驗方式時,傳輸中不作實際的 校驗,應(yīng)附加一個停止位。LRC校驗ASCII方式時,數(shù)據(jù)中包含錯誤校驗碼,采用LRC校驗方法時,LRC校驗信息以冒號“:”開始,以CRLF字符作為結(jié)束。它忽略了單個字符數(shù)據(jù)的奇偶校驗的方法。LRC校驗碼為1個字節(jié),8位二進(jìn)制值,由發(fā)送設(shè)備計算LRC值。接收設(shè)備在接收信息時計算 LRC校驗碼。 并
21、與收到的LRC的實際值進(jìn)行比較,若二者不一致,亦產(chǎn)生一個錯誤。在梯形圖中,CKSM函數(shù)可計算數(shù)據(jù)信息中 LRC的校驗。用于主計算機時請查閱附錄C中的一個實例,它詳細(xì)說明LRC的校驗的過程。錯誤校驗方法CRC校驗RTU方式時,采用CRC方法計算錯誤校驗碼,CRC校驗傳送的全部數(shù)據(jù)。 它忽略信息中單個字符數(shù)據(jù)的奇 偶校驗方法。CRC碼為2個字節(jié),16位的二進(jìn)制值。由發(fā)送設(shè)備計算CRC值,并把它附到信息中去。接收設(shè)備在接收信息過程中再次計算 CRC值并與CRC的實際值進(jìn)行比較,若二者不一致,亦產(chǎn)生一個錯誤,校驗開始時,把 16 位寄存器的各位都置為“ 1”,然后把信息中的相鄰 2個8位字節(jié)數(shù)據(jù)放到當(dāng)
22、前寄存器中處理,只有每個字符的8位數(shù)據(jù)用于CRC處理。起始位,停止位和校驗位不參與CRC計算。CRC校驗時,每個8位數(shù)據(jù)與該寄存器的內(nèi)容進(jìn)行異或運算,然后向最低有效位(LSB)方向移位,用零填入最高有效位(MSB)后,再對LSB檢查,若LSB=1 ,則寄存器與預(yù)置的固定值異或,若 LSB=0 ,不作異或運算。重復(fù)上述處理過程, 直至移位8次,最后一次(第8次)移位后,下一個8位字節(jié)數(shù)據(jù)與寄存器的當(dāng)前值異或, 再重復(fù)上述過程。全部處理完信息中的數(shù)據(jù)字節(jié)后,最終得到的寄存器值為CRC值。CRC值附加到信息時,低位在先,高位在后。在梯形圖中, CKSM函數(shù)計算信息中的 CRC值。用于主計算 機時,可
23、查閱附錄 C中的一個實例,它詳細(xì)說明了 CRC的校驗。第二章數(shù)據(jù)和控制功能Modbus功能代碼格式Modbus功能代碼總結(jié)Modbus功能代碼說明功能代碼格式數(shù)字值表達(dá)若無特殊說明在此節(jié)文中用十進(jìn)制值表示,圖中的數(shù)據(jù)區(qū)則用十六進(jìn)制表示。Modbus信息中的數(shù)據(jù)地址Modbus信息中的所有數(shù)據(jù)地址以零作為基準(zhǔn),各項數(shù)據(jù)的第一個數(shù)據(jù)地址的編號為0如:在可編程控制器中“ coil 1 ”在Modbus信息中其地址值表示為0000Coil 127(十進(jìn)制)在Modbus信息中則為 007EH(126十進(jìn)制)保持寄存器 40001,在信息中數(shù)據(jù)地址為寄存器0000。功能代碼區(qū)為保持寄存器類型規(guī)定的操作,
24、因此,“4XXXX ”是缺省的地址類型。保持寄存器40108尋址寄存器地址為 006B hex(+進(jìn)制107)Modbus信息中區(qū)內(nèi)容圖7為一個例子,說明了 Modbus的查詢信息,圖8為正常響應(yīng)的例子,這兩例子中的數(shù)據(jù)均是 16進(jìn)制的, 也表示了以ASCLL或RTU方式構(gòu)成數(shù)據(jù)幀的方法。主機查詢是讀保持寄存器,被請求的從機地址是06,讀取的數(shù)據(jù)來自地址從 40108至40110 3個保持寄有器。注意,該信息規(guī)定了寄存器的起始地址為0107 (006BH)。從機響應(yīng)返回該功能代碼,說明是正常響應(yīng),字節(jié)數(shù)" Byle count”中說明有多少個 8位字節(jié)被返回。因無 論是ASCII方式
25、還是RTU方式,它表明了附在數(shù)據(jù)區(qū)中 8位字節(jié)的數(shù)量。ASCII方式時,字節(jié)數(shù)為數(shù)據(jù)中 ASCII 字符實際數(shù)的一半,每 4個位的16進(jìn)制值需要一個 ASCII字符表示,因此在數(shù)據(jù)中應(yīng)由2個ASCII字符來表示一個8位的字節(jié)。如RTU方式時,63H用一個字節(jié)(01100011)發(fā)送,而用ASCII方式時,發(fā)送需2個字節(jié),即ASCII “6”(0110110)和ASCII "3”(0110011)。8個位為一個單位計算“字節(jié)數(shù)”,它忽略了信息幀用(ASCII或RTU)組成的方法。字節(jié)數(shù)使用方法:當(dāng)在緩沖區(qū)組織響應(yīng)信息時,“字節(jié)數(shù)”區(qū)域中的值應(yīng)與該信息中數(shù)據(jù)區(qū)的字節(jié)數(shù)相等。QUERYEx
26、ampleASCIIRTUField Name(Hex)Characters8-Bit FieldHeader:(colon)NoneSlave Address06060000 0110Function03030000 0011Starting Address Hi00000000 0000Starting Address Lo6B6B01101011No. of Registers Hi00000000 0000No. of Registers Lo03030000 0011Error CheckLRC (2 chars.)CRC (16 bits)TrailerCR LFNoneTotal
27、 Bytes:178圖8說明“字節(jié)數(shù)”區(qū)在一個貢型響應(yīng)中的應(yīng)用。RESPONSEExampleASCIIRTUField Name(Hex)Characters8-Bit FieldHeader:(colon)NoneSlave Address060 60000 0110Function030 30000 0011Byte Count060 60000 0110Data Hi020 20000 0010Data Lo2B2 B0010 1011Data Hi000 00000 0000Data Lo000 00000 0000Data Hi000 00000 0000Data Lo636 30
28、110 0011Error CheckLRC (2 chars.)CRC (16 bits)TrailerCR LFNoneTotal Bytes:2311圖8:從機采用ASCII/RTU方式響應(yīng)Modbus+數(shù)據(jù)內(nèi)容在Modbus+網(wǎng)絡(luò)發(fā)送的Modbus信息應(yīng)需嵌入到 LLC (邏輯連接控制)級數(shù)據(jù)幀,Modbus信息區(qū)由8位字節(jié) 的數(shù)據(jù)組成,類似于 RTU中的信息組成。由發(fā)送設(shè)備把從機地址轉(zhuǎn)換成Modbus+路由地址,CRC數(shù)據(jù)不在Modbus信息中發(fā)送,因為會在更高級的數(shù)據(jù)鏈路控制層(HDLC)中進(jìn)行CRC校驗。其余的信息與原標(biāo)準(zhǔn)格式一致,應(yīng)用軟件(控制器中的MSTR或主機中的Modco
29、m III)可將這些信息幀組成數(shù)據(jù)包。圖9示例說明了如何將讀寄存器值的請求嵌入到+Modbus網(wǎng)絡(luò)的數(shù)據(jù)幀中。HDLC 級前導(dǎo)工作標(biāo)記廣播地址MAC/LLC 區(qū)CRC結(jié)束標(biāo)志目的地址原地址MAC功能字節(jié)數(shù)LLC區(qū)MODBUS 信息:從機地址功能代碼高位起始 地址低位起始 地址高位寄 存器數(shù)量低位寄 存器數(shù)量圖9: Modbus+數(shù)據(jù)內(nèi)容控制器支持的功能代碼卜表列出Modicon控制器支持的功能代碼:以十進(jìn)制表示。“Y”表示支持“ N”表示不支持。代碼名稱384 484 584 884 M84 98401讀線圈狀態(tài)YYYYYY02讀輸入狀態(tài)YYYYYY03讀線保持寄存器YYYYYY04讀輸入寄存
30、器YYYYYY05強制單個線圈YYYYYY06預(yù)置單個寄存器YYYYYY07讀小止常狀態(tài)YYYYYY08診斷(見第3章)09程序484NYNNNN10查詢484NYNNNN11通訊事件控制YNYNNY12通訊事件記錄YNYNNY13程序控制器YNYNNY14查詢控制器YNYNNY15強制多個寄存器YYYYYY16預(yù)置多個寄存器YYYYYY17報告從機IDYYYYYY18程序 884/M84NNNYYN19通訊鏈路復(fù)位NNNYYN20讀通用參考值NNYNNY21寫通用參考值NNYNNY22Mask Write 4X RegisterNNNNN23Read/Write 4X RegistersNN
31、NNN24Read FIFO 隊列NNNNN(1)功能代碼僅由984-785控制器支持01讀線圈狀態(tài)描述讀從機離散量輸出口的ON/OFF狀態(tài),不支持廣播。附錄B列出由不同控制器型號支持最大的參數(shù)清單。查詢1-16個線圈的尋址地址分為0-15。例:查詢信息規(guī)定了要讀的起始線圈和線圈量,線圈的起始地址為零, 請求從機設(shè)備17讀20-56線圈。QUERYField NameExample (Hex)Slave Address11Function01Starting Address Hi00Starting Address Lo13No. of Points Hi00No. of Roints Lo2
32、5Error Check (LRC or CRC)圖10:讀線圈狀態(tài)一查詢響應(yīng)響應(yīng)信息中的各線圈的狀態(tài)與數(shù)據(jù)區(qū)的每一位的值相對應(yīng),1=ON; 0=OFF。第一個數(shù)據(jù)字節(jié)的 LSB為查詢中的尋址地址,其他的線圈按順序在該字節(jié)中由低位向高位 排列,直至8個為止,下一個字節(jié)也是從低位向高位排例。若返回的線圈數(shù)不是 8的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位至字節(jié)的最高位全部填零,字節(jié)數(shù)區(qū)說明全 部數(shù)據(jù)的字節(jié)數(shù)。RESPONSEField NameExample (Hex)Slave Address11Function01Byte Count05Data (Coils 27-20)CDData (Coil
33、s 35-28)6BData (Coils 43-36)B2Data (Coils 51-44)0EData (Coils 56-52)1BError Check (LRC or CRC)圖11:讀線圈狀態(tài)一響應(yīng)線圈27-20的狀態(tài)用 CDH表示,二進(jìn)制值為11001101,該字節(jié)的 MCB為線圈27, LSB為20。線圈從左(27) 向右(20)狀態(tài)分別為 ON-ON-OFF-OFF-ON-ON-OFF-ON ,因此第一個字節(jié)中的線圈從左到右應(yīng)是27-20。下一個字節(jié)的線圈應(yīng)為35至28。位數(shù)據(jù)串行轉(zhuǎn)輸從低位到高位,即 20, 27, 28, 35。最后一個數(shù)據(jù)字節(jié)中,56-52線圈的X犬態(tài)
34、為1BH(或二進(jìn)制00011011),線圈56是左數(shù)第4位,線圈52是該字節(jié)的最低位,所線圈56至52的狀態(tài)分別為 ON-ON-OFF-ON-ON 注意3個剩余位(至最高位的數(shù))全部填0。02讀輸入位狀態(tài)說明讀從機離散量輸入信號的 ON/OFF狀態(tài)。不支持廣播。附錄 B列出各種型號控制器所支持的最大參數(shù)量。查詢查詢信息規(guī)定了要讀的輸入起始地址,以及輸入信號的數(shù)量。輸入起始地址為0, 1-16個輸入口的地址分別為 0-15。例:請求讀從機設(shè)備 17的10197-10218的輸入位狀態(tài)。QUERYField NameExample (Hex)Slave Address11Function02Sta
35、rting Address Hi00Starting Address LoC4No. of Points Hi00No. of Roints Lo16Error Check (LRC or CRC)圖12:讀輸入位狀態(tài)查詢。響應(yīng)響應(yīng)信息中的各輸入口的狀態(tài), 分別對應(yīng)于數(shù)據(jù)區(qū)中的每一位值, 1 = ON; 0 = OFF ,第一個數(shù)據(jù)字節(jié)的 LSB 為查詢中的尋址地址,其他輸入口按順序在該字節(jié)中由低位向高位排列,直至8個位為止。下一個字節(jié)中的 8個輸入位也是從低位到高位排列。若返回的輸入位數(shù)不是 8的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位直至字節(jié)的最高位全部填零。字節(jié)的最高位,字節(jié)數(shù)區(qū)。說明了全部數(shù)
36、據(jù)的字節(jié)數(shù)。例:對查詢作出響應(yīng)(參見上頁)。RESPONSEExampleField Name(Hex)Slave Address11Function02Byte Count03Data (Inputs 10204-10197)ACData (Inputs 10212-10205)DBData (Inputs 10218-10213) Error Check (LRC or CRC)35圖13:讀輸入位狀態(tài)響應(yīng)。輸入位10204-10197的狀態(tài)用35H (或二進(jìn)制 00110101)表示。輸入位為 LSB,輸入位 10218-10213 的狀態(tài)分別為 ON-ON-OFF-ON-OFF-ON,
37、注:t10218為左數(shù)第 3位,10213輸入位1取位還有2個剩余位需填零。03讀保持寄存器說明讀從機保持寄存器的二進(jìn)制數(shù)據(jù)不支持廣播,附錄B列出了由各種型號控制器所支持的最大的參數(shù)量查詢0000,寄存器1-16所對應(yīng)查詢信息規(guī)定了要讀的寄存器起始地址及寄存器的數(shù)量,寄存器尋址起始地址為 的地址分別為0-15QUERYExampleField Name(Hex)Slave Address11Function03Starting Address Hi00Starting Address Lo6BNo. of Points Hi00No. of Roints LoError Check (LRC
38、or CRC)03圖14:讀保持寄存器-查詢響應(yīng)響應(yīng)信息中的寄存器數(shù)據(jù)為二進(jìn)制數(shù)據(jù),每個寄存器分別對應(yīng) 2個字節(jié),第一個字節(jié)為高位值數(shù)據(jù),第二個字節(jié)為低位數(shù)據(jù)。對984-X8X型控制器(如984-685等),掃描數(shù)據(jù)的速率為每次125個寄存器。對其它控制器型號的掃描速率為每次32個寄存器,全部數(shù)據(jù)完成組合后返回響應(yīng)信息。例按查詢要求返回響應(yīng)。RESPONSEField NameExample (Hex)Slave Address11Function03Byte Count06Data Hi (Register 40108)02Data Lo(Register 40108)2BData Hi(R
39、egister 40109)00Data Lo(Register 40109)00Data Hi(Register 40110)00Data Lo(Register 40110)64Error Check (LRC or CRC)圖15:讀寄存器-響應(yīng)寄存器40108的數(shù)據(jù)用022BH 2個字節(jié)(或用十進(jìn)制555)表示,寄存器40109-40110中的數(shù)據(jù)為0000和0064H ,(十進(jìn)制時為0和100)04讀輸入寄存器說明讀從機輸入寄存器(3X類型)中的二進(jìn)制數(shù)據(jù),不支持廣播附錄B列出了由各種型號控制器所支持的最大的參數(shù)量查詢查詢信息規(guī)定了要讀的寄存器的起始地址及寄存器的數(shù)量,尋止起始地址為
40、0,寄存器1-16所對應(yīng)的地址分別為0-15。例:請求讀從機設(shè)備 17中的30009寄存器。QUERYExampleField Name(Hex)Slave Address11Function04Starting Address Hi00Starting Address Lo08No. of Points Hi00No. of Roints Lo01Error Check (LRC or CRC)圖16:讀輸入寄存器-查詢 響應(yīng)響應(yīng)信息中的寄存器數(shù)據(jù)為每個寄存器分別對應(yīng)2個字節(jié),第一個字節(jié)為高位數(shù)據(jù),第二個字節(jié)為低位數(shù)據(jù)。對984-X8X型控制器(如984-685等),掃描數(shù)據(jù)的速率為每次12
41、5個寄存器,對其它型號的控制器為每次32個寄存器。數(shù)據(jù)完成組合后,返回響應(yīng)信息。例按查詢要求返回響應(yīng)RESPONSEExampleField Name(Hex)Slave Address11Function04Byte Count02Data Hi(Register 30009)00Data Lo(Register 30009) Error Check (LRC or CRC)0A圖17:讀寄存器-響應(yīng)寄存器30009中的數(shù)據(jù)用000AH 2個字節(jié)(或用十進(jìn)制10)表示05強制單個線圈說明強制單個線圈(0X類型)為ON或OFF狀態(tài)。廣播時,該功能可強制所有從機中同一類型的線圈均為ON或OFF狀
42、態(tài)。注意:該功能可越過控制器內(nèi)存的保護(hù)狀態(tài)和線圈的禁止?fàn)顟B(tài)。線圈強制狀態(tài)一直保持有效直至下一個 控制邏輯作用于線圈為止。控制邏輯中無線圈程序時,則線圈處于強制狀態(tài)。附錄B中列出了由各種型號控制器所支持的最大的參數(shù)量。 查詢查詢信息規(guī)定了需要強制線圈的類型,線圈起始地址為0,線圈1的尋址地址為0由查詢數(shù)據(jù)區(qū)中的一個常量。規(guī)定被請求線圈的ON/OFF狀態(tài),F(xiàn)F00H值請求線圈處于 ON狀態(tài),0000H值請求線圈處于 OFF狀態(tài),其它值對線圈無效,不起作用。例:強制從機設(shè)備 17中的173線圈為ON狀態(tài)QUERYField NameExample (Hex)Slave Address11Functi
43、on05Coil Address Hi00Coil Address LoACForce Data HiFFForce Data Lo00Error Check (LRC or CRC)圖18:強制單個線圈-查詢 響應(yīng)線圈為強制狀態(tài)后即返回正常響應(yīng) 例:按查詢要求返回響應(yīng)RESPONSEField NameExample (Hex)Slave Address11Function05Coil Address Hi00Coil Address LoACForce Data HiFFForce Data Lo00Error Check (LRC or CRC)圖19:強制單個線圈06預(yù)置單個寄存器說明
44、把一個值預(yù)置到一個 4X類型保持寄存器中。廣播時,該功能把值預(yù)置到所有從機的相同類型的寄存器中。注意:該功能可越過控制器的內(nèi)存保護(hù)。使寄存器中的預(yù)置值保持有效。只能由控制器的下一個邏輯信 號來處理該預(yù)置值。若控制邏輯中無寄存器程序時,則寄存器中的值保持不變。附錄B中列出了各種型號控制器所支持的最大的參數(shù)量查詢查詢信息規(guī)定了要預(yù)置寄存器的類型,寄存器尋址起始地址為0,寄存器1所對應(yīng)的地址為0。請求的預(yù)置值在查詢數(shù)據(jù)區(qū),M84或484控制器使用一個10位二進(jìn)制值,其中高 6位設(shè)定為0,而其它類型的控制器使用16位值。例:請求把從機設(shè)備 17中的40002寄存器預(yù)置為0003H值。QUERYFiel
45、d NameExample (Hex)Slave Address11Function06Register Address Hi00Register Address Lo01Preset Data Hi00Preset Data Lo03Error Check (LRC or CRC)圖20:預(yù)置單個寄存器-查詢響應(yīng)寄存器內(nèi)容被預(yù)置后返回正常響應(yīng) 例:按查詢要求返回響應(yīng)RESPONSEField NameExample (Hex)Slave Address11Function06Register Address Hi00Register Address Lo01Preset Data Hi00P
46、reset Data Lo03Error Check (LRC or CRC)圖21:預(yù)置單個寄存器-響應(yīng)07讀不正常狀態(tài)說明讀從中機中8個不正常狀態(tài)線圈的數(shù)據(jù),某些線圈號已在不同型號的控制器中預(yù)定義,而其它的線圈由用戶編程,作為有關(guān)控制器的狀態(tài)信息,如"machine ON/OFF heads retraced,(縮回標(biāo)題),"safeties satisfied”(安全性?意),"error conditions "(存在錯誤條件)或其它用戶定義的標(biāo)志等。該功能碼不支持廣播。(在功能代碼中不需要線圈該功能代碼為存取該類信息提供了一種簡單的方法,不正常
47、線圈的類型是已知的 類型)預(yù)定義的不正常線圈號如下:控制器型號線圈設(shè)定M84,184/384,584,9841-8用戶定義484257電池狀態(tài)258-264用戶定義884761電池狀態(tài)762內(nèi)存保護(hù)狀態(tài)763764-768R10工況狀態(tài) 用戶預(yù)定義查詢例請求讀從機設(shè)備 17中的不正常狀態(tài)QUERYExampleField Name(Hex)Slave Address11Function07Error Check (LRC or CRC)圖22:讀不正常狀態(tài)-查詢響應(yīng)正常響應(yīng)包含8個不正常的線圈狀態(tài),為一個數(shù)據(jù)字節(jié),每個線圈一位。LSB對應(yīng)為最低線圈類型的狀態(tài)。例:按查詢要求返回響應(yīng):QUERY
48、Field NameExample (Hex)Slave Address11FunctionError Check (LRC or CRC)0B圖23:讀不正常狀態(tài)一響應(yīng)該例子中,線圈數(shù)據(jù)為6DH (二進(jìn)制0110 ,1101),從左到右(最高位至最低位)的線圈狀態(tài)分別為:OFF - ON-ON - OFF - ON - ON - OFF - ON。若控制器型號為 984,這些位表示線圈 8至1的狀態(tài);若控制器型號為 484則表示線圈 264至257的狀態(tài)。11 (0B Hex)取通訊事件計數(shù)器說明由從機通訊事件計數(shù)器返回一個狀態(tài)字和事件數(shù), 否已被從機正常處理,該功能代碼不支持廣播。依據(jù)一串
49、信息前后讀取的當(dāng)前數(shù)值,由主機決定其信息是信息成功完成 值不起作用。1次,使控制器的事件計數(shù)器加1,不正常響應(yīng),查詢命令或取事件計數(shù)器命令等,對計數(shù)通過診斷功能代碼 (08),(若重起動通訊選擇子功能代碼0001)或計數(shù)器和診斷寄存清零器代碼(000A)等可對事件計數(shù)器復(fù)位。查詢例:請求讀取從機設(shè)備17的通訊事件計數(shù)器QUERYField NameExample (Hex)110BSlave AddressFunctionError Check (LRC or CRC)圖24:讀取通訊事件計數(shù)器一查詢響應(yīng)正常響應(yīng)含一個帶2個字節(jié)的狀態(tài)字和一個雙字節(jié)的事件數(shù),若從機還未處理完以前發(fā)出的程序值狀態(tài)
50、字中的各位。均為 1 (FFFFH),處理完時,各位值均為0(0000H)。例:按查詢要求返回響應(yīng)QUERYField NameExample (Hex)Slave Address11Function0BStatus HiFFStatus LoFFEvent Count Hi01Event Count Lo08Error Check (LRC or CRC)圖25:讀取通訊事件計數(shù)器一響應(yīng)該列子中,態(tài)字是 FFFFH,說明從機還在處理程序,控制器計算的事件數(shù)為264 (0108H)12 (0C Hex)讀取通訊事件記錄說明由從機返回一個狀態(tài)字,事件數(shù),信息數(shù)和一個事件的數(shù)據(jù)區(qū)。不支持廣播狀態(tài)字
51、和事件數(shù)與讀取通訊事件計數(shù)器功能代碼(11,OBH)返回值相同。信息計數(shù)器包含從機處理,(最后一次再起動,計數(shù)器清零操作,或通電)的信息量,該值與由診斷功能代碼(08),總線信息數(shù)子功能代碼(11,0BH)返回的值相同。事件數(shù)據(jù)區(qū)包含0-64個字節(jié)。每個字節(jié)對應(yīng) Modbus送出的一個狀態(tài),或子機接收操作的一個狀態(tài)。由子機把事件送到順序排列的區(qū)域。字節(jié) 0為最新的事件,最大新的確字節(jié)刷新該區(qū)域的最老的字節(jié)。 查詢 例:請求從機設(shè)備 17讀取通訊事件記錄QUERYExampleField Name(Hex)Slave Address11Function0CError Check (LRC or
52、CRC)圖26:讀取通訊事件記錄一查詢響應(yīng)正常響應(yīng)含一個2個字節(jié)的狀態(tài)字區(qū),一個 2個字節(jié)的事件數(shù)區(qū)和一個2個字節(jié)的信息數(shù)區(qū),以及有0-64個字節(jié)的事件區(qū),一個字節(jié)數(shù)區(qū)定義上述4個區(qū)的數(shù)據(jù)的總長度。例:按查詢要求返回響應(yīng)RESPONSEField NameExample (Hex)Slave Address11Function0CByte Count08Status HI00Status Lo00Event Count Hi01Event Count Lo08Message Count Hi01Message Count Lo21Event 020Event 100Error Check (LRC or CRC)圖27:讀取通訊事件記錄一響應(yīng)在這例子中斗犬態(tài)字為 0000H,說明從機已完成程序處理從機計算的事件數(shù)為264 (0108H),已處理的信息數(shù)為289 (0121H) o最近的通訊事件在 Event 0字節(jié)中。數(shù)彳t 20H表示該從機已最后
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人出生日期與任職信息證明(6篇)
- 手房兩年后過戶合同
- 互聯(lián)網(wǎng)創(chuàng)業(yè)基礎(chǔ)知識
- 小學(xué)語文寫作教學(xué)的創(chuàng)新實踐
- 電子商務(wù)電商物流實戰(zhàn)案例解析題
- 環(huán)保教育在小學(xué)階段的實施路徑
- DB14-T 3400-2025 連香樹近地保護(hù)技術(shù)規(guī)程
- 外貿(mào)英語術(shù)語應(yīng)用與聽力訓(xùn)練題集
- 高中物理必修電學(xué)基本概念教學(xué)教案
- 跨地域電商平臺運營合作協(xié)議
- 湖北省武漢市2025屆高三年級五月模擬訓(xùn)練試題數(shù)學(xué)試題及答案(武漢五調(diào))
- 南京市生物地理中考指導(dǎo)書答案
- 諾和諾德制藥
- 長三角地區(qū)地圖(可以隨意更改顏色、轉(zhuǎn)動、組合))
- SIDEL吹瓶機原理ppt課件
- 抹灰工程施工方案預(yù)拌砂漿
- MSG-3中文版課件
- 盾構(gòu)施工總結(jié)(doc106頁)
- 轉(zhuǎn)發(fā)省局《關(guān)于加強非煤礦山安全生產(chǎn)班組建設(shè)的指導(dǎo)意見》的通知
- 第四節(jié)SS4改型電力機車常見故障處理
- 分部驗收橋梁主體驗收評估報告
評論
0/150
提交評論