版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Modbus協(xié)議介紹Modbus可編程控制器之間可相互通訊,也可與不同網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行通訊,支撐網(wǎng)絡(luò)有ModiconModbus和OEM(機(jī)械設(shè)備制造商)來(lái)說(shuō),Modicon可為合作伙伴提供現(xiàn)有的程序,可使Modbus+網(wǎng)絡(luò)緊密地集成到他們的產(chǎn)品設(shè)計(jì)中去。Modicon的各種控制器使用的公共語(yǔ)言被稱(chēng)為Modbus協(xié)議,該協(xié)議定義了控制器能識(shí)別和使用的信息結(jié)構(gòu)。當(dāng)在包含在信息中的數(shù)據(jù)和資料等,控制器也可組織回答信息,并使用Modbus協(xié)議將此信息傳送出去。在其他網(wǎng)絡(luò)上使用時(shí),數(shù)據(jù)包和數(shù)據(jù)幀中也包含著Modbus協(xié)議。如,Modbus+或MAP網(wǎng)絡(luò)控制器中有相應(yīng)的應(yīng)用程序庫(kù)和驅(qū)動(dòng)程序,實(shí)現(xiàn)嵌入式Modbus協(xié)議信息與此網(wǎng)絡(luò)中用子節(jié)點(diǎn)設(shè)備間通訊的特殊信息幀的數(shù)據(jù)轉(zhuǎn)換。該轉(zhuǎn)換也可擴(kuò)展,處理節(jié)點(diǎn)地址,路由,和每一個(gè)特殊網(wǎng)絡(luò)的錯(cuò)誤檢查方法。如包含Modbus協(xié)議中的設(shè)備地址,在信息和和和1:Modbus和*MB+為Modbus上的數(shù)據(jù)Mocon控制器上的標(biāo)準(zhǔn)Mobs端口是使用一個(gè)R-232(以后簡(jiǎn)稱(chēng)des)接入總線(xiàn)(網(wǎng)絡(luò))機(jī)能起動(dòng)數(shù)據(jù)傳輸,稱(chēng)查詢(xún)。而其它設(shè)備(從機(jī)應(yīng)返回對(duì)查詢(xún)作出的響應(yīng),或處理查詢(xún)所要求的動(dòng)作。典應(yīng)的主機(jī)設(shè)備應(yīng)包括Mdb用Mobs協(xié)議組織,它包括確認(rèn)動(dòng)作的代碼,返回?cái)?shù)據(jù)和錯(cuò)誤。若在接收信息時(shí)出現(xiàn)一個(gè)錯(cuò)誤或從機(jī)不能執(zhí)行要求的動(dòng)作時(shí),從機(jī)會(huì)組織一個(gè)錯(cuò)誤信息。并向主機(jī)發(fā)送作為響應(yīng)。在其它總線(xiàn)上傳輸數(shù)除標(biāo)Modbus功能外Modcon控制器內(nèi)置端口或總線(xiàn)適配器Modbus+總線(xiàn)上實(shí)現(xiàn)通訊或使用網(wǎng)絡(luò)適配器,在MAP網(wǎng)絡(luò)上通訊。在這些總線(xiàn)上,控制器間采用對(duì)等的技術(shù)進(jìn)行通訊,即任意一個(gè)控制器可向其它控制器啟動(dòng)數(shù)據(jù)傳送。因此,一臺(tái)控制息,絡(luò)訊是等,但Mobs仍方一器機(jī)送息,從臺(tái)從機(jī)設(shè)備返回一個(gè)響應(yīng),類(lèi)似,當(dāng)一臺(tái)控制器接受信息時(shí),它就組織一個(gè)從機(jī)設(shè)備的響應(yīng)信息,并返回至送信息的控制器。查詢(xún)響應(yīng)周期設(shè)備地設(shè)備地功能代功能代88錯(cuò)誤校錯(cuò)誤校
圖2兩種串行傳輸控制ASCIIRTU通訊模式,在Modbus上通訊。在配置每臺(tái)控制器時(shí),用戶(hù)須選擇通訊模式以及串行口的通訊參數(shù)。(波特率,奇偶校驗(yàn)等),在Modbus總線(xiàn)上的所有設(shè)備應(yīng)具有相同的通訊模式和串行通訊參數(shù)。選擇ASCIIRTU模式用于標(biāo)準(zhǔn)的Modbus總線(xiàn)。它定義了總線(xiàn)上串行傳輸信息區(qū)的“位”的含義,決定信息打包及如在MAP和Modbus+總線(xiàn)上時(shí),Modbus信息以幀的方式出現(xiàn),并與串行傳輸無(wú)關(guān),如請(qǐng)求讀保持寄存器可以在上的兩個(gè)控制器之間處理,而與使用的控制器的Modbus端口無(wú)關(guān)ASCII模當(dāng)控制器ASCII模式在Modbus總線(xiàn)上進(jìn)行通訊時(shí),一個(gè)信8位字節(jié)作為2ASCII字符傳輸?shù)?,這種模式的主要優(yōu)點(diǎn)是允許字符之間的時(shí)間間隔長(zhǎng)達(dá)IS,也不會(huì)出現(xiàn)錯(cuò)誤。ASCII碼每一個(gè)字節(jié)的格式編碼系統(tǒng):16進(jìn)制,ASCII字符0-9,A- 1個(gè)16進(jìn)數(shù)據(jù)位1奇/偶校1位;無(wú)奇0(LRC)112止位錯(cuò)誤校驗(yàn)區(qū):縱向冗余校驗(yàn)RTU模控制RTU模式在Modbus總線(xiàn)上進(jìn)行通訊82416進(jìn)制的字符,該模式的主要優(yōu)點(diǎn)是在相同波特率下其傳輸?shù)淖址拿芏雀哂贏(yíng)SCII模式,每個(gè)信息必須連續(xù)傳輸。RTU模式中每個(gè)字節(jié)的格式編碼系統(tǒng):8位二進(jìn)制,十六進(jìn)制0-9,A-數(shù)據(jù)位 1起始位數(shù)據(jù),低位先奇/偶校驗(yàn)時(shí)1位0停止位1位(帶校驗(yàn));2位(無(wú)校驗(yàn)帶校1位停止位;無(wú)校驗(yàn)2位停止位Modbus何論是ASCII模式還是RTU模式,Modbus信息以幀的方式傳輸,每幀有確定的起始點(diǎn)和結(jié)束點(diǎn),使接收設(shè)備在信息的起點(diǎn)開(kāi)始讀地址,并確定要尋址的設(shè)備(廣播時(shí)對(duì)全部設(shè)備),以及信息傳輸?shù)慕Y(jié)束時(shí)間??蓹z測(cè)部分信息,錯(cuò)誤可作為一種對(duì)MAP或Modbus+協(xié)議可對(duì)信息幀的起始和結(jié)束點(diǎn)標(biāo)記進(jìn)行處理,也可管理發(fā)送至目的地的信息,此時(shí),信息傳輸中Modbus數(shù)據(jù)幀內(nèi)的目的地址已無(wú)關(guān)緊要,因?yàn)镸odbus+地址已由發(fā)送者或它的網(wǎng)絡(luò)適配器把它轉(zhuǎn)換成網(wǎng)絡(luò)節(jié)點(diǎn)地址和路由。ASCII在A(yíng)SCII模式中,以(:)號(hào)(ASCII3AH)表示信息開(kāi)始,以回撤一換行鍵(CRLF)(ASCIIODOAH)表示信息結(jié)束對(duì)其它的區(qū),允許發(fā)送的字符16進(jìn)制字符0-9,A-F。網(wǎng)絡(luò)中設(shè)備連續(xù)檢測(cè)并接收一個(gè)冒號(hào)(:)時(shí),每臺(tái)設(shè)備對(duì)地址區(qū)解字符之間的最大間隔為1S,若大于1S,則接收設(shè)備認(rèn)為出現(xiàn)了一個(gè)錯(cuò)誤。開(kāi)地功數(shù)結(jié)1字2字2字n字2字2字:3ASCII例外:584984A/B/X控制器ASCII信息可LRC區(qū)后正常終止,而不需發(fā)送CRLF字符,此時(shí)出現(xiàn)>IS的時(shí)RTURTU模式中,信息開(kāi)始至少需要有3.5個(gè)字符的靜止時(shí)間,依據(jù)使用的波特率,很容易計(jì)算這個(gè)靜止的時(shí)間(如下圖中的T1-T2-T3-T4)。接著,第一個(gè)區(qū)的數(shù)據(jù)為設(shè)備地址。各個(gè)區(qū)允許發(fā)送的字符均為16進(jìn)制0-9,A-F否是自己的地址。發(fā)送完最后一個(gè)字符號(hào)后,也有一個(gè)3.5個(gè)字符的靜止時(shí)間,然后才能發(fā)送一個(gè)新的信息。整個(gè)信息必須連續(xù)發(fā)送。如果在發(fā)送幀信息期間,出現(xiàn)大于1.5個(gè)字符的靜止時(shí)間時(shí),則接收設(shè)備刷新不完整的信息,并同樣一個(gè)信息后,立即發(fā)送的一個(gè)新信息,(若無(wú)3。5個(gè)字符的靜止時(shí)間)這將會(huì)產(chǎn)生一個(gè)錯(cuò)誤。是因?yàn)楹喜⑿臗RC無(wú)效而產(chǎn)生的錯(cuò)誤開(kāi)地功數(shù)校終T1-T2-T3-8B8BN×8B16B位T1-T2-T3T-4RTUModbus信息幀(地址設(shè)信息地址包括2個(gè)字符AC)或8位(TU0247十進(jìn)制1-27。主機(jī)把從機(jī)地址放入信息幀的地址區(qū),并向從機(jī)尋址。從機(jī)響應(yīng)時(shí),把自己的地址放入響應(yīng)信息的地址區(qū),讓主機(jī)識(shí)別已作出響應(yīng)的從機(jī)地址。功能碼設(shè)信息幀功能代碼包括字符(ASCII)8位(RTU)。有效碼范1-225(十進(jìn)制),其中有些代碼適用全部型號(hào)的Modicon控當(dāng)主機(jī)向從句發(fā)送信息時(shí),功能代碼向從機(jī)說(shuō)明應(yīng)執(zhí)行的動(dòng)作。如讀一組離散式線(xiàn)圈或輸入信號(hào)的ON/OFF狀態(tài),讀一組00000011(十六進(jìn)10000011(從機(jī)對(duì)功能代碼作為了修改,此外,還把一個(gè)特殊碼放入響應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機(jī)出現(xiàn)的錯(cuò)誤類(lèi)型和不正常響應(yīng)的原因。主機(jī)設(shè)備的應(yīng)用程序負(fù)責(zé)處理不正常響應(yīng),典型處理過(guò)程是主機(jī)把對(duì)信息的測(cè)試和診斷送給從機(jī),并通知操作者。數(shù)據(jù)區(qū)的內(nèi)容數(shù)據(jù)216進(jìn)制的數(shù)據(jù)位,數(shù)據(jù)范圍為00-FF(16進(jìn)制),根據(jù)網(wǎng)絡(luò)串行傳輸?shù)姆绞剑瑪?shù)據(jù)區(qū)可由一對(duì)ASCII字組成RTU字符組成03,該要在一從機(jī)中寫(xiě)一組寄存器,(則功能代碼為10H)。該數(shù)據(jù)區(qū)規(guī)定了要寫(xiě)入寄存區(qū)的起始地址,寄存器的數(shù)量,數(shù)據(jù)的字節(jié)數(shù)據(jù)區(qū)的長(zhǎng)度可為“零”以表示某類(lèi)信息,如,主機(jī)要求-從機(jī)響應(yīng)它的通訊記錄(功能代碼OBH)。此時(shí),從機(jī)不信息錯(cuò)誤校標(biāo)準(zhǔn) 使用ASCII方式時(shí),錯(cuò)誤為2個(gè)ASCII字符,錯(cuò)誤校驗(yàn)字符是LRC校驗(yàn)結(jié)果。校驗(yàn)時(shí),起始符為(:)冒號(hào)結(jié)束符為CRLF字符。校驗(yàn)信息幀是最后的一個(gè)數(shù)據(jù),得到的先送低位字節(jié),后送字節(jié),所以CRC碼的字節(jié)是最后被傳送的信息。在標(biāo)準(zhǔn)的Modbus上傳送的信息中,每個(gè)字符或字節(jié),按由左向右的次序傳送ASCII數(shù)據(jù)幀位序:帶帶奇偶校無(wú)奇偶校5ASCIIRTU數(shù)據(jù)幀位序帶奇偶校無(wú)奇偶校6RTU錯(cuò)誤校驗(yàn)標(biāo)準(zhǔn)的Modbus串行通訊網(wǎng)絡(luò)采用兩種錯(cuò)誤校驗(yàn)方法,奇偶校驗(yàn)(奇或偶)可用于校驗(yàn)每一個(gè)字符,信息幀校驗(yàn)(LRC或主機(jī)可由用戶(hù)設(shè)置的一個(gè)預(yù)定時(shí)間間隔,確定是否放棄傳送信息。該間隔應(yīng)有足夠的時(shí)間來(lái)滿(mǎn)足從機(jī)的正常響應(yīng)。若主機(jī)檢測(cè)到傳輸錯(cuò)誤時(shí),則傳輸?shù)男畔o(wú)效。從機(jī)不再向主機(jī)返回響應(yīng)信息。此時(shí),主機(jī)會(huì)產(chǎn)生一個(gè)超時(shí)信息,并允許主機(jī)程的LRC或CRC校驗(yàn)方法。當(dāng)出現(xiàn)發(fā)送錯(cuò)誤時(shí),網(wǎng)絡(luò)中的通訊協(xié)議通知發(fā)送設(shè)備有錯(cuò)誤出現(xiàn),并允許根據(jù)設(shè)置的情況,重試奇偶校用戶(hù)可設(shè)置奇偶校驗(yàn)或無(wú)校驗(yàn),以此決定每個(gè)字符發(fā)送時(shí)的奇偶校驗(yàn)位的狀態(tài)。何論是奇或偶校驗(yàn),它均會(huì)計(jì)算每個(gè)字1CITU方式為81(奇數(shù)或偶數(shù))”或“1”如一個(gè)RTU8位數(shù)據(jù)位為1100在該幀中,值為“1”的總位數(shù)為4,即偶數(shù)。如采用奇校驗(yàn)方式時(shí),則“1”的總位數(shù)為奇數(shù),即5Modbus總線(xiàn)上的所有設(shè)備必須采用相同的奇偶校驗(yàn)方注意:奇偶校驗(yàn)只能檢測(cè)到數(shù)據(jù)幀在傳輸過(guò)程中丟失奇數(shù)“位”時(shí)才產(chǎn)生的錯(cuò)誤。如采用奇數(shù)校驗(yàn)方式時(shí),一個(gè)包 個(gè)“1”位的數(shù)據(jù)丟失2個(gè)“1”位時(shí),其結(jié)果仍然是奇數(shù)。若無(wú)奇偶校驗(yàn)方式時(shí),傳輸中不作實(shí)際的校驗(yàn),應(yīng)附加一個(gè)停止LRC校ASCII方式時(shí),數(shù)據(jù)中包含錯(cuò)誤,采用LRC校驗(yàn)方法時(shí),LRC校驗(yàn)信息以冒號(hào)“:”開(kāi)始,以CRLF字符作為結(jié)LRC為1個(gè)字節(jié),8位二進(jìn)制值,由發(fā)送設(shè)備計(jì)算LRC值。接收設(shè)備在接收信息時(shí)計(jì)算LRC。并與收到的LRC的實(shí)際值進(jìn)行比較,若二者不一致,亦產(chǎn)生一個(gè)錯(cuò)誤。在梯形圖中,CKSM函數(shù)可計(jì)算數(shù)據(jù)信息中LRC的校驗(yàn)。用于主計(jì)算機(jī)時(shí)請(qǐng)查閱附錄C中的一個(gè)LRC的校驗(yàn)的過(guò)錯(cuò)誤校驗(yàn)CRC校CRC2個(gè)字節(jié),16位的二進(jìn)制值。由發(fā)送設(shè)備計(jì)CRC值,并把它附到信息中去。接收設(shè)備在接收信息過(guò)程中為“1”,然后28位字節(jié)數(shù)據(jù)放到當(dāng)前寄存器中處理,只有每個(gè)字符8CRC處理。起始位,停止位和校驗(yàn)位不參與CRC計(jì)算。CRC校驗(yàn)時(shí),每個(gè)8位數(shù)據(jù)與該寄存器的內(nèi)容進(jìn)行異或運(yùn)算,然后向最低有效位(LSB)方向移位,用零填入最高有(MSB)后,再對(duì)LSB檢查,若LSB=1,則寄存器與預(yù)置的固定值異或,若LSB=0,不作異或運(yùn)算重復(fù)上述處理過(guò)程,直至移位8次,最后一次(8次)移位后8位字節(jié)數(shù)據(jù)與寄存器的當(dāng)前值異或,再重復(fù)上述過(guò)程。全部處理完信息中的數(shù)據(jù)字節(jié)后,最終得到的寄存器值為CRC值。CRC值附加到信息時(shí),低位在先,在后。在梯形圖中,CKSM函數(shù)計(jì)算信息中的CRC值。用于主計(jì)算機(jī)時(shí),可查閱附錄C中的一個(gè)實(shí)例,它詳細(xì)說(shuō)明了CRC的校驗(yàn)。第二數(shù)據(jù)和控制功Modbus功能代碼格Modbus功能代碼總Modbus功能代碼說(shuō)功能代碼格式數(shù)字值表Modbus信息中的數(shù)據(jù) 信息中的所有數(shù)據(jù)地址以零作為基準(zhǔn),各項(xiàng)數(shù)據(jù)的第一個(gè)數(shù)據(jù)地址的編號(hào)為0如在可編程控制器中“coil1Modbus信息中其地址值表示為Coil127(十進(jìn)制)Modbus信息中則007EH(126十進(jìn)制 保持寄存器40001,在信息中數(shù)據(jù)地址為寄存器0000。功能代碼區(qū)為保持寄存器類(lèi)型規(guī)定的操作,因此,“4XXXX”是保持寄存器40108尋址寄存器地址為006Bhex(+進(jìn)Modbus信息中區(qū)內(nèi)圖7為一個(gè)例子,說(shuō)明了Modbus的查詢(xún)信息,圖8為正常響應(yīng)的例子,這兩例子中的數(shù)據(jù)均是16進(jìn)制的,也表示了以ASCLL或RTU方式構(gòu)成數(shù)據(jù)幀的方法。主機(jī)查詢(xún)是讀保持寄存器,被請(qǐng)求的從機(jī)地址是06,的數(shù)據(jù)來(lái)自地址從40108至401103個(gè)保持寄有器。注意,該信息規(guī)定了寄存器的起始地址為0107(006BH)。從機(jī)響應(yīng)返回該功能代碼,說(shuō)明是正常響應(yīng),字節(jié)數(shù)“Bylecount”中說(shuō)明有多少個(gè)8位字節(jié)被返回。因無(wú)論是ASCII方式還是RTU方式,它表明了附在數(shù)據(jù)區(qū)中8位字節(jié)的數(shù)量。ASCII方式時(shí),字節(jié)數(shù)為數(shù)據(jù)中ASCII字符實(shí)際數(shù)的一半,每4個(gè)位的16進(jìn)制值需要一個(gè)ASCII字符表示,因此在數(shù)據(jù)中應(yīng)由2個(gè)ASCII字符來(lái)表示一個(gè)8位的字節(jié)。如RTU方式時(shí),63H用一個(gè)字節(jié)( )發(fā)送,而用ASCII方式時(shí),發(fā)送需2個(gè)字節(jié),即ASCII“6”( )。8個(gè)位為一個(gè)單位計(jì)算“字節(jié)數(shù)”,它忽略了信息幀用(ASCII或RTU)組成的方法。Field8-BitHeaderSlaveAddress0000Function0000StartingAddressHi開(kāi)始高地0000StartingAddressLo開(kāi)始低地0110No.ofRegisters0000No.ofRegisters0000TotalCRLF8圖7Field8-BitHeaderSlaveAddress00000Function00000ByteCount計(jì)算00000Data0000020010Data0000000000Data0000060110TotalCRLF8ASCII/RTUModbus+數(shù)據(jù)內(nèi)Modbus+網(wǎng)絡(luò)發(fā)送的ModbusLLC(邏輯連接控制)級(jí)數(shù)據(jù)幀,Modbus8位字節(jié)的數(shù)據(jù)組成,類(lèi)似于RTU中的信息組成。由發(fā)送設(shè)備把從機(jī)地址轉(zhuǎn)換成Modbus+路由地址,CRC數(shù)據(jù)不在Modbus信息中發(fā)送,因?yàn)闀?huì)在更高級(jí)的數(shù)據(jù)鏈路控制層(HDLC)中進(jìn)行CRC校驗(yàn)。其余的信息與原標(biāo)準(zhǔn)格式一致,應(yīng)用軟件(控制器中的MSTR或主機(jī)中的 圖9示例說(shuō)明了如何將讀寄存器值的請(qǐng)求嵌入到+Modbus網(wǎng)絡(luò)的數(shù)據(jù)幀中。工作標(biāo)記工作標(biāo)記廣播地MAC/LLCMAC級(jí)原地址MAC功能字節(jié)LLCLLC級(jí)輸出路由路由MODBUS起寄地存器數(shù)圖9:Modbus+控制器支持的功能代碼下表列出Modicon控制器支持的功能代碼:以十進(jìn)制表示。代碼名 384484584884讀線(xiàn)圈狀YYYYYY讀輸入狀YYYYYY讀線(xiàn)保持寄存YYYYYYYYYYYYYYYYYY預(yù)置單個(gè)寄存YYYYYYYYYYYY診斷(3章程序NYNNNN查詢(xún)NYNNNN通訊控YNYNNY通訊記YNYNNY程序控制YNYNNY查詢(xún)控制YNYNNY強(qiáng)制多個(gè)寄存YYYYYY預(yù)置多個(gè)寄存YYYYYY報(bào)告從機(jī)YYYYYY程序NNNYYN NNNYYN NNYNNY NNYNNY MaskWrite4XNNNNN Read/Write4XNNNNN ReadFIFO隊(duì)NNNNN984-785讀線(xiàn)圈狀態(tài)描讀從機(jī)離散量輸出口的ON/OFF狀態(tài),不支持廣播。附錄B列出由不同控制器型號(hào)支持最大的參數(shù)查查詢(xún)信息規(guī)定了要讀的起始線(xiàn)圈和線(xiàn)圈量,線(xiàn)圈的起始地址為零,1-16個(gè)線(xiàn)圈的尋址地址分為0-15。例:請(qǐng)求從機(jī)設(shè)備17讀20-56線(xiàn)圈。FieldSlaveAddressFunctionStartingAddressHi開(kāi)始高地StartingAddressLo開(kāi)始低地No.ofPointsNoofRointsLo查訊寄存器數(shù)ErrorCheck(LRCor—10:響 排列,直至8個(gè)為止,下一個(gè)字節(jié)也是從低位 0=OFF。第一個(gè)數(shù)據(jù)字節(jié)的LSB(最低 排列,直至8個(gè)為止,下一個(gè)字節(jié)也是從低位 若返回的線(xiàn)圈數(shù)不是8 的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位至字節(jié)的最全部填零,字節(jié)數(shù)區(qū)說(shuō)明全部數(shù)據(jù)的FieldSlaveAddressFunctionByteCount計(jì)數(shù)位(8位=1個(gè)Data(Coils27-Data(Coils35-Data(Coils43-Data(Coils51-Data(Coils56-ErrorCheck(LRCor—11:線(xiàn)圈27-20的狀態(tài)用CDH表示,二進(jìn)制值 ,該字節(jié)的MCB(內(nèi)存控制塊)為線(xiàn)圈27,LSB(最低有效符)為20。線(xiàn)圈從左(27)向右(20)狀態(tài)分別為ON-ON-OFF-OFF-ON-ON-OFF-ON,因此第一個(gè)字節(jié)中的線(xiàn)圈從左到右應(yīng)是27-20。下一個(gè)字節(jié)的線(xiàn)圈應(yīng)為35至28。位數(shù)據(jù)串行轉(zhuǎn)輸從低位到,即20…27,28…35。最后一個(gè)數(shù)據(jù)字節(jié)中,56-52線(xiàn)圈的狀態(tài)為1BH(或二進(jìn)制 ),線(xiàn)圈56是左數(shù)第4位,線(xiàn)圈52是該字節(jié)的最低位,所線(xiàn)圈56至52的狀態(tài)分別為ON-ON-OFF-ON-ON注意3個(gè)剩余位(至最的數(shù))全部填0。讀輸入位狀態(tài)說(shuō)讀從機(jī)離散量輸入信號(hào)的ON/OFF狀態(tài)。不支持廣播。附錄B列出各種型號(hào)控制器所支持的查查詢(xún)信息規(guī)定了要讀的輸入起始地址,以及輸入信號(hào)的數(shù)量。輸入起始地址為0,1-16個(gè)輸?shù)牡刂贩謩e為0-15。例:請(qǐng)求讀從機(jī)設(shè)備17的10197-10218的輸入位狀態(tài)。FieldSlaveAddressFunctionStartingAddressHi開(kāi)始高地StartingAddressLo開(kāi)始低地No.ofPointsNoofRointsLo查訊寄存器數(shù)ErrorCheck(LRCor—12:響響應(yīng)信息中的各輸?shù)臓顟B(tài),分別對(duì)應(yīng)于數(shù)據(jù)區(qū)中的每一位值,1=ON;0=OFF,第一個(gè)數(shù)據(jù)字節(jié)的LSB(最低有效字符)為查詢(xún)中的尋址地址,其他輸按順序在該字節(jié)中由低位向排列,直至8個(gè)位為止。下一個(gè)字節(jié)中的8個(gè)輸若返回的輸入位數(shù)不是8的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位直至字節(jié)的最全部填零。字節(jié)的最,字節(jié)數(shù)FieldSlaveAddressFunctionByteCountData(Inputs10204-Data(Inputs10212-Data(Inputs10218-ErrorCheck(LRCor—圖13輸入位10204-10197的狀態(tài)用35H(或二進(jìn)制 )表示。輸入位10218為左數(shù)第3位,10213輸入位為L(zhǎng)SB(最低有效字符,輸入位10218-10213的狀態(tài)分別為ON-ON-OFF-ON-OFF-ON,注意最位還有2個(gè)剩余位需填零。讀保持寄存器說(shuō)讀從機(jī)保持寄存器的二進(jìn)制數(shù)據(jù)不支持廣播,附錄B列出了由各種型號(hào)控制器所支查查詢(xún)信息規(guī)定了要讀的寄存器起始地址及寄存器的數(shù)量,寄存器尋址起始地址為0000,寄存器1-16所對(duì)應(yīng)的地址分別0-15FieldSlaveAddressFunctionStartingAddressHi開(kāi)始高地StartingAddressLo開(kāi)始低地No.ofPointsNoofRointsLo查訊寄存器數(shù)ErrorCheck(LRCor—圖14:讀保持寄存器-響響應(yīng)信息中的寄存器數(shù)據(jù)為二進(jìn)制數(shù)據(jù),每個(gè)寄存器分別對(duì)應(yīng)2個(gè)字節(jié),第一個(gè)字節(jié)為值數(shù)據(jù),第二個(gè)字節(jié)為低位對(duì)984-X8X型控制器(如984-685等),掃描數(shù)據(jù)的速率為每次125個(gè)寄存器。對(duì)其它控制器型號(hào)的掃描速率為每次FieldSlaveAddressFunctionByteCount計(jì)算DataHi(RegisterDataHi(RegisterDataHi(RegisterErrorCheck(LRCor—15:讀寄存器-寄存器40108的數(shù)022BH2個(gè)字節(jié)(555)表示40109-40110中的數(shù)據(jù)為00000064H,(十制時(shí)為0讀輸入寄存 說(shuō)讀從機(jī)輸入寄存器(3X類(lèi)型)中的二進(jìn)制數(shù)據(jù),不支持廣播,附錄B列出了由各種型號(hào)控制器所支持的最大的參數(shù)查查詢(xún)信息規(guī)定了要讀的寄存器的起始地址及寄存器的數(shù)量,尋止起始地址為0,寄存器1-16所對(duì)應(yīng)的地址分別為0-15例:請(qǐng)求讀從機(jī)17中的30009寄存器Field Slave StartingAddress No.ofPoints No.ofRoints ErrorCheck(LRCor 圖16:讀輸入寄存器-響響應(yīng)信息中的寄存器數(shù)據(jù)為每個(gè)寄存器分別對(duì)應(yīng) 984-X8X型控制器(984-685等),掃描數(shù)據(jù)的速率為每次125個(gè)寄存器,對(duì)其它型32個(gè)寄存器。例按查詢(xún)要求返回響FieldFieldSlave Byte DataHi(Register DataLo(Register30009) ErrorCheck(LRCor 17:讀寄存器-寄存器30009中的數(shù)據(jù)用000AH2個(gè)字節(jié)(或用十進(jìn)10)表強(qiáng)制單個(gè)線(xiàn)圈說(shuō)強(qiáng)制單個(gè)線(xiàn)圈(0X類(lèi)型)ONOFF狀態(tài)。廣播時(shí),該功能可強(qiáng)制所有從機(jī)中同一類(lèi)型的線(xiàn)圈均為ONOFF狀態(tài) 附錄B中列出了由各種型號(hào)控制器所支持的最大的參數(shù)查詢(xún)信息規(guī)定了需要強(qiáng)制線(xiàn)圈的類(lèi)型,線(xiàn)圈起始地址為0,線(xiàn)圈1的尋址地址為由查詢(xún)數(shù)據(jù)區(qū)中的一個(gè)常量。規(guī)定被請(qǐng)求線(xiàn)圈ON/OFF狀態(tài),F(xiàn)F00H值請(qǐng)求線(xiàn)圈處于ON狀態(tài),0000H值請(qǐng)求線(xiàn)圈處于OFF狀態(tài),其它值對(duì)線(xiàn)圈無(wú)效,不起作用。例:強(qiáng)制從機(jī)設(shè)備17中的173線(xiàn)圈為ONFieldSlaveCoilAddressHiCoilAddressDataHiDataErrorCheck(LRCor圖18:強(qiáng)制單個(gè)線(xiàn)圈-響FieldCoilAddressHiCoilAddressDataHiDataErrorCheck(LRCor19預(yù)置單個(gè)寄存器說(shuō)把一個(gè)值預(yù)置到一個(gè)4X類(lèi)型保持寄存器中。廣播時(shí),該功能把值預(yù)置到所有從機(jī)的相同類(lèi)型的寄存器中 附錄B中列出了各種型號(hào)控制器所支持的最大的參數(shù)量查詢(xún)信息規(guī)定了要預(yù)置寄存器的類(lèi)型,寄存器尋址起始地址為0,寄存器1所對(duì)應(yīng)的地址為0請(qǐng)求的預(yù)置值在查詢(xún)數(shù)據(jù)區(qū),M84484控制器使用10位二進(jìn)制值,其中高60,而其它類(lèi)型的控使用16例:請(qǐng)求把從機(jī)設(shè) 中 H值FieldSlaveRegisterAddressHiPresetDataHiPresetDataLoErrorCheck(LRCor圖20:預(yù)置單個(gè)寄存器-響FieldSlaveRegisterAddressRegisterAddressPresetDataPresetDataErrorCheck(LRCor圖21:預(yù)置單個(gè)寄存器-讀不正常狀態(tài)說(shuō)8個(gè)不正常狀態(tài)線(xiàn)圈的數(shù)據(jù),某些線(xiàn)圈號(hào)已在不同型號(hào)的控制器中預(yù)定義,而其它的線(xiàn)圈由用戶(hù)編程,作為有關(guān)控制器的狀態(tài)信息,如“machineON/OFF”,“headsretraced”,(縮回標(biāo)題,“safetiessatisfied”安全性滿(mǎn)意),“error該功能代碼為存取該類(lèi)信息提供了一種簡(jiǎn)單的方法,不正常線(xiàn)圈的類(lèi)型是已知的(在功能代碼中不需要線(xiàn)圈類(lèi)型)預(yù)定義用戶(hù)258-用戶(hù) R10工況狀764- 用戶(hù)預(yù)定查例請(qǐng)求讀從機(jī)設(shè)備17中的不正常狀FieldErrorCheck(LRCor圖22:讀不正常狀態(tài)-響FieldErrorCheck(LRCor正常響應(yīng)包含8 個(gè)不正常的線(xiàn)圈狀態(tài),為一個(gè)數(shù)據(jù)字節(jié),F(xiàn)ieldErrorCheck(LRCor圖23該例子中,線(xiàn)圈數(shù)據(jù)為6DH(二進(jìn)制0110,1101),從左到右(最至最低位)的線(xiàn)圈狀態(tài)分別為:OFF–ON–ON–OFFONONOFFON。若控制器型984,這些位表示81的狀態(tài);若484則表示線(xiàn)圈264至257的狀態(tài)。1111(0BHex)計(jì)數(shù)說(shuō)信息成功完成1次,使控制器的計(jì)數(shù)器加1,不正常響應(yīng),查詢(xún)命令或取計(jì)數(shù)器命令等,對(duì)計(jì)數(shù)值不起用例:請(qǐng)求從機(jī)設(shè)備17的通訊計(jì)數(shù)FieldErrorCheck(LRCor圖 通 響 均為1(FFFFH),處理完時(shí),各位值均為0(0000H)。圖 通圖 通 FieldSlaveStatusStatusEventCountEventCountErrorCheck(LRCor該列子中,狀態(tài)字是FFFFH,說(shuō)明從機(jī)還在處理程序,控制器計(jì)算的數(shù)為264(1212(0C通記說(shuō)由從機(jī)返回一個(gè)狀態(tài)字,數(shù),信息數(shù)和一個(gè)的數(shù)據(jù)區(qū)。不支持廣數(shù)器操作,或通電)的信息量,該值與由診斷功能代碼(08),總線(xiàn)信息數(shù)子功能代碼(11,0BH)返回的值相同。數(shù)據(jù)區(qū)包含0-64個(gè)字節(jié)。每個(gè)字節(jié)對(duì)應(yīng)Modbus送出的一個(gè)狀態(tài),或子機(jī)接收操作的一個(gè)狀態(tài)。由子機(jī)把送到順序排列的區(qū)域。字節(jié)0為的,最大新的確字節(jié)刷新該區(qū)域的最老的字節(jié)。查例:請(qǐng)求從機(jī)設(shè)備17通訊記FieldErrorCheck(LRCor圖 響正常響應(yīng)含一個(gè)2個(gè)字節(jié)的狀態(tài)字區(qū),一個(gè)2個(gè)字節(jié)的數(shù)區(qū)和一個(gè)2個(gè)字節(jié)的信息數(shù)區(qū),以及有0-64個(gè)字節(jié)的區(qū),一個(gè)字節(jié)數(shù)區(qū)定義上述4個(gè)區(qū)的數(shù)據(jù)的總長(zhǎng)度。圖 圖 FieldSlaveByteStatusStatusEventCountEventCountMessageCountMessageCountEventEventErrorCheck(LRCor在這例子中狀態(tài)字為0000H,說(shuō)明從機(jī)已完成程序處理從機(jī)計(jì)算的數(shù)為264(0108H),已處理的信息數(shù)為289(0121H)。最近的通訊在Event0字節(jié)中。數(shù)值20H表示該從機(jī)已最后進(jìn)入了只聽(tīng)狀態(tài)(ListenOnlyMode)。以前的在Event1字節(jié)中,數(shù)值00H表示該從機(jī)接收了一個(gè)通訊再起動(dòng)(CommunicationsRestart,響應(yīng)事12(0CHex)通訊記字節(jié)內(nèi)通訊記錄功能代碼返回的一個(gè)字節(jié)可為4種類(lèi)型之一,每一個(gè)字節(jié)中的高7位定義該字節(jié)的類(lèi)型,高從機(jī)Modbus接收從機(jī)接收查詢(xún)信息時(shí),字節(jié)的類(lèi)型,并在處理前。該字節(jié)的類(lèi)型。把高7位置1定義這,如果相應(yīng)條件“真”(true),則其他位也置1,字節(jié)中各位的含義如下。 未通訊未未只聽(tīng)接收1從機(jī)Modbus從機(jī)完成查詢(xún)信息處理后返回正常(或不正常)響應(yīng),或無(wú)響應(yīng)后,字節(jié)的類(lèi)型。通過(guò)高7位置“0”,高6位置“1”定義,若相應(yīng)的條件“真”(TRUE),則其他位置“1”。字節(jié)中各位含義如下 從機(jī)放棄不正常發(fā)送(不正常功能碼從機(jī)放棄不正常發(fā)送(5-從機(jī)程序NAK不正常發(fā)送(不正常功能碼從從機(jī)程序NAK不正常發(fā)送,出現(xiàn)寫(xiě)入超時(shí)從機(jī)程序NAK不正常發(fā)送,當(dāng)前只聽(tīng)方10從機(jī)進(jìn)入只聽(tīng)模當(dāng)從機(jī)進(jìn)入只聽(tīng)模式時(shí)這類(lèi)字節(jié),由04H數(shù)據(jù)定義,如下 2從機(jī)初始化通訊再起通訊口再起動(dòng)時(shí)由從機(jī)字節(jié)的類(lèi)型,診斷功能代碼(08)再帶起動(dòng)通訊選擇子功能代碼(0001)使從機(jī)通訊再起動(dòng)。該功能可把從機(jī)配置成錯(cuò)誤時(shí)繼讀方式(ContinueonError)或錯(cuò)誤時(shí)停止方式(StoponError)。若從機(jī)配置成“錯(cuò)誤時(shí)。0010203040506070。001020304050607015(0FH)強(qiáng)制多個(gè)線(xiàn)圈按線(xiàn)圈的順序把各線(xiàn)圈(0X類(lèi)型)強(qiáng)制成ON或OFF。廣播時(shí),該功能代碼可對(duì)各從機(jī)中相同類(lèi)型的線(xiàn)圈起強(qiáng)用 附錄B中列出了各種型號(hào)控制器所支持的最查詢(xún)信息規(guī)定了被強(qiáng)制線(xiàn)圈的類(lèi)型,線(xiàn)圈起始地址為0,線(xiàn)圈1尋址地址為0查詢(xún)數(shù)據(jù)區(qū)規(guī)定了被請(qǐng)求線(xiàn)圈ON/OFF如數(shù)據(jù)區(qū)的某位值為“1”表示請(qǐng)求的相應(yīng)線(xiàn)圈狀ON,位值為“0則為OFF下述例子為請(qǐng)求從機(jī)設(shè)備17中一組10個(gè)線(xiàn)20則尋址地址1913H),查詢(xún)的數(shù)為2個(gè)字節(jié),CD01H(二進(jìn) 00000001)相應(yīng)線(xiàn)圈的二進(jìn)制位排列如下 0 傳送的第一個(gè)字CDH對(duì)應(yīng)線(xiàn)圈為27-20,LSB對(duì)應(yīng)線(xiàn)圈20,傳送的第二個(gè)01H,對(duì)應(yīng)的線(xiàn)圈為29-28,LSB為繼圈28,其余未使用的位均填0FieldCoilAddressHiCoilAddresstyofCoilsByteCountDataHi(Coils27-20)DataLo(Coils29-ErrorCheck(LRCor圖28:強(qiáng)制多個(gè)線(xiàn)圈-查詢(xún)響FieldCoilAddressHiCoilAddresstyofCoilstyofCoilsErrorCheck(LRCor圖29 Hex)預(yù)置多個(gè)寄存器說(shuō)把數(shù)據(jù)按順序預(yù)置到 注意:該功能代碼可越過(guò)控制器的內(nèi)存保護(hù),在寄存器中的預(yù)置值一直保持有效,只能由控制器的下一個(gè)邏輯來(lái)處理寄附錄B中列出了各種型號(hào)控制器所支持的最查信息中規(guī)定了要預(yù)置的寄存器類(lèi)型,寄存器尋址的起始地址為0,寄存器10。查詢(xún)數(shù)據(jù)區(qū)中指定了寄存器的預(yù)置值,M84484型控10位二進(jìn)制數(shù)據(jù),2個(gè)字節(jié),剩余的高60。而其他類(lèi)型的控制器使用一個(gè)16二進(jìn)制數(shù)據(jù),每個(gè)寄存器2個(gè)字節(jié)例:請(qǐng)求在從機(jī)設(shè)備172個(gè)寄存器中放入預(yù)置值40002,預(yù)置000AH0102HFieldSlaveStartingAddressNo.ofRegistersNo.ofRegistersByteDataDataDataErrorCheck(LRCor圖響FieldStartingAddressHiNo.ofRegistersHiNo.ofRegistersErrorCheck(LRCor圖3117(11Hex)說(shuō)查例:請(qǐng)求報(bào)告從17ID和狀FieldErrorCheck(LRCor圖32:報(bào)告從機(jī)ID響 圖33報(bào)告從機(jī)ID—響應(yīng)從機(jī)ID總數(shù)據(jù)區(qū)第一個(gè)字節(jié)為Modicon控制器返回的從Slave0Micro1238917(11Hex)控制器返回一個(gè)4744AH),若控制J347Modbus從機(jī)接口已建立,內(nèi)部PIB表正常,則字節(jié)數(shù)74,其他情況字節(jié)數(shù)為4。4 SlaveID(2為 (0OFFFF Bit0=Bit1內(nèi)存保護(hù)狀(0OFF1Bit2,3控制器類(lèi)型:Bit20Bit30Bit2=1和Bit3=0指示Bits4-15=未J347正確建立,PIB表正常時(shí)返回附加70個(gè)字節(jié) 5,6 起始 執(zhí)行字節(jié)11-74PIB表,只有控制器工作,數(shù)據(jù)在有(2),PIB表如下 輸出線(xiàn)圈允許 輸入線(xiàn)圈允許 第一個(gè)獲取(16倍數(shù) (16的倍數(shù) 輸入寄存器數(shù) 輸出線(xiàn)圈RAM表地 功 未 功 A模式歷史表格地 DX請(qǐng)求 順序RAM地 50XX寄存器數(shù) 50XX表地 輸出線(xiàn)圈RAM映像地 輸入RAM映像地 延時(shí)輸出起動(dòng)延時(shí)輸出結(jié)束看門(mén)自鎖RAM地延時(shí)輸出組數(shù)量17(11Hex)報(bào)告584控制器返9的信息如下 從機(jī)ID號(hào)為(0OFFFF4K0頁(yè)內(nèi)1K狀態(tài)用戶(hù)邏輯段數(shù) 機(jī)器(配置表字的構(gòu)成如下ByteBit15=建立端口Bit14=建立端口Bit13=設(shè)定端口1地Bit12=設(shè)定端口2地Bit11=未Bit10=恒定(0OFF1ON)Bit9=單次掃描(0OFF,1Bit816/24-bit節(jié)點(diǎn)(024-bit節(jié)點(diǎn),116-bit節(jié)點(diǎn)ByteBit7MSBofbyte7)=ON1ON,不應(yīng)為0)Bit6=RUN運(yùn)行指示器狀態(tài)(0=ON,1=OFF)Bit5內(nèi)存(0ON1Bit4=BatteryOK(0=OK,1=不OK)電Bits3-0=未 機(jī)器(配置表格字字的構(gòu)成如下ByteBit15MSB外設(shè)(可控停止)Bit14=未用Bit13Bit12=不合法的外Bit11Bit10Bit9狀態(tài)RAM測(cè)試失Bit8不停ByteBit7MSB)=看門(mén)狗定時(shí)器Bit6=實(shí)時(shí)時(shí)鐘錯(cuò)誤Bit5CPU診斷失敗Bit4=無(wú)效的Bit3無(wú)效節(jié)點(diǎn)類(lèi)型Bit2邏輯檢查出錯(cuò)Bit1備用檢查出錯(cuò)Bit0=不合法配置17(11Hex)報(bào)告從機(jī)984型控制984型控制器返ID9個(gè)字節(jié),如 控制器為984型時(shí)從ID號(hào)為(0OFFFF4K0頁(yè)內(nèi)1K狀態(tài)用戶(hù)邏輯段數(shù) 機(jī)器(配置表字的結(jié)構(gòu)如下ByteBit15(MSB)=未賦Bit14-11=未賦Bit10=恒定(0OFF1ON)Bit9單次掃描(0OFF1ON)Bit8=16/24-bitBit10=恒定(0OFF1ON)Bit9=單次掃描(0OFF,1Bit8=16/24-bit節(jié)點(diǎn)(0=24-位節(jié)點(diǎn),1=16-位節(jié)點(diǎn)ByteBit7(MSB通電(1ON,不應(yīng)為Bit6運(yùn)行(0ON;1OFF)Bit5=內(nèi)存保護(hù)狀態(tài)(0=ON;1=OFF)Bit4=電池OK(0=OK1=OK)Bit3-1=未賦Bit0=內(nèi)存減少標(biāo)志(0=不減少;1=減少Bit0內(nèi)存減少內(nèi)存減少:機(jī)器狀態(tài)字以配99,10017563H,64HAFH)定義使用內(nèi)存下降值。若bit0=“1”下0頁(yè)(16位字)=99*4096)-(175低字節(jié)(16位字100*1024)-(175高字節(jié) 機(jī)器(配置表ByteBit15(MSB)=外設(shè)端口停止(可控停止)Bit14984ABX)=擴(kuò)展內(nèi)存部分損壞Bit13=Bit12=不合法的外Bit11Bit10=起動(dòng)Bit9狀態(tài)RAM測(cè)試失Bit8=邏輯檢測(cè)死循環(huán)或ByteBit7(MSB9)=看門(mén)狗定時(shí)器結(jié)Bit6實(shí)時(shí)時(shí)鐘Bit5(984ABXCPU診斷失Bit5(984使用表線(xiàn)圈不正確Bit4=S908IO標(biāo)題壞Bit3=無(wú)效節(jié)點(diǎn)類(lèi)型Bit2邏輯檢查Bit1=運(yùn)行方式下線(xiàn)Bit0不合法20(14Hex)讀通用類(lèi)型寄存器說(shuō)返回?cái)U(kuò)展內(nèi)存文件中的6X類(lèi)型寄存器內(nèi)容,不支查查詢(xún)信息包括,標(biāo)準(zhǔn)的Modbus從機(jī)地址,功能代碼,字節(jié)數(shù),以及錯(cuò)誤檢查區(qū)域。查詢(xún)信息中還指定要的寄存器組或組的地址類(lèi)型,每一組由一個(gè)單獨(dú)的“子請(qǐng)求”區(qū)定義,它包括7個(gè)字節(jié):寄存器類(lèi)型:16X型擴(kuò)展內(nèi)存文件號(hào):21-100001-文件中寄存器起始地址:2個(gè)字節(jié)要的寄存器數(shù)量:2個(gè)字要讀的寄存器數(shù)量與預(yù)期響應(yīng)的其它數(shù)據(jù)字節(jié)加在一起,過(guò)Modbus所允許的256個(gè)字節(jié)的長(zhǎng)度有效的擴(kuò)展內(nèi)存文件的數(shù)量取決于從機(jī)的配置和的安裝的內(nèi)存量,除最后一個(gè)外,其它10000寄存器,尋址地址為0000-270FH(十進(jìn)制0000-9999)。 注意:6X類(lèi)型擴(kuò)展寄存器的尋址地址與4X類(lèi)型的保持寄存器不同帶擴(kuò)展寄存器的984-758控制器中,最后文件中的最后一個(gè)(最高的)寄存器見(jiàn)下面2個(gè)表格984-785帶AS-M785-0320008984-785帶AS-M785-0323帶擴(kuò)展寄存器的其它控制器,最后文件中的最后一個(gè)寄存器(最)如下:擴(kuò)展內(nèi)存容量 最后文件數(shù) 最后一個(gè)寄存器(十進(jìn)制)247讀通用類(lèi)型寄存器例:請(qǐng)求讀從機(jī)設(shè)備17中的兩組類(lèi)型組包42存器組包32存器FieldByteSub–Req1,ReferenceTypeSub–Req1,FileNumberHiSub–Req1,FileNumberLoSub–Req1,StartingAddrHiSub–Req1,StartingAddrLoSub–Req1,RegisterCountHiSub–Req2,ReferenceTypeSub–Req2,FileNumberHiSub–Req2,FileNumberLoSub–Req2,StartingAddrHiSub–Req2,StartingAddrLoSub–Req2,RegisterCountHiErrorCheck(LRCorCRC)34響FieldByteSub–Res1,ByteCountSub–Res1,ReferenceTypeSub–Res1,RegisterDataHiSub–Res1,RegisterDataLoSub–Res1,RegisterDataHiSub–Res1,RegisterDataLoSub–Res2,ByteCountSub–Res2,ReferenceTypeSub–Res2,RegisterDataHiSub–Res2,RegisterDataLoSub–Res2,RegisterDataHiSub–Res2,RegisterDataLoErrorCheck(LRCorCRC)3521(15Hex)寫(xiě)通用類(lèi)型寄存器說(shuō)在6X類(lèi)型寄存器中,擴(kuò)展內(nèi)存文件,不支持廣播查查詢(xún)信息,包括標(biāo)準(zhǔn)的Modbus字節(jié)數(shù),以及錯(cuò)誤校驗(yàn)區(qū),查詢(xún)信息還指定要寫(xiě)入的寄存器組或組的地址,每一組由單獨(dú)的“子請(qǐng)求”區(qū)定義,它包括7字節(jié):擴(kuò)展內(nèi)存文件號(hào):21-100001-文件寫(xiě)入寄存器中的起始地址:2個(gè)字寄存器數(shù)量:2個(gè)字要寫(xiě)入的數(shù)據(jù),每一個(gè)寄存器2字寫(xiě)入文件需要的寄存器數(shù),加上查詢(xún)的其他數(shù)據(jù)其總長(zhǎng)度過(guò)Modbus所允許的256個(gè)字節(jié)有效的擴(kuò)展內(nèi)存文件數(shù)取決于從機(jī)控制器內(nèi)存的擴(kuò)展容量,除最后一個(gè)文件外,其它的每個(gè)文件均含10,000寄存器尋址地址為0000-270FH(十進(jìn)制0000- 注意:6X類(lèi)型的擴(kuò)展寄存器與4X型的保持寄存器的尋址方6X存器尋址起始地址為04X存器尋址起始地址為1帶擴(kuò)展寄存器的984-758控制器中最后一個(gè)文件中一個(gè)最后的(最高的)寄存器見(jiàn)下面2984-785帶AS-M785-032 表態(tài)擴(kuò)展內(nèi)存容量最后一個(gè)文件最后一個(gè)寄存器(十進(jìn)制) 984-785帶AS-M785-032用邏表擴(kuò)展內(nèi)存容最后最后寄存器(十進(jìn)3擴(kuò)展內(nèi)存容 最后文件 最后一個(gè)寄存器(十進(jìn)制247寫(xiě)通用類(lèi)型寄存器例:請(qǐng)求把數(shù)據(jù)寫(xiě)入從機(jī)設(shè)備17FieldByteSub–Req1,ReferenceTypeSub–Req1,FileNumberHiSub–Req1,FileNumberLoSub–Req1,StartingAddrHiSub–Req1,StartingAddrLoSub–Req1,RegisterCountHiSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoErrorCheck(LRCorCRC)圖36響正常響應(yīng)為返回查詢(xún)信息(即查詢(xún)和響FieldByteSub–Req1,ReferenceTypeSub–Req1,FileNumberHiSub–Req1,FileNumberLoSub–Req1,StartingAddrHiSub–Req1,StartingAddrLoSub–Req1,RegisterCountHiSub–Req1,RegisterCountLoSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoSub–Req1,RegisterDataHiSub–Req1,RegisterDataLoErrorCheck(LRCorCRC)圖3722(16Hex)掩碼寫(xiě)入4X類(lèi)型寄存說(shuō)通過(guò)AND掩碼,OR掩碼和寄存器當(dāng)前值來(lái)修改一個(gè)指定4X類(lèi)型寄存器的內(nèi)容,該功能代碼用于設(shè)置和請(qǐng)除寄存器中的該功能代碼只支持948-785查查詢(xún)可指定要寫(xiě)4X器,數(shù)據(jù)可作AND碼或OR。例當(dāng)前值A(chǔ)nd_Mask=Or_Mask=And_Mask=Result=值 例:把上面的掩碼值。掩碼寫(xiě)入從機(jī)設(shè)備17中的寄存器5FieldReferenceAddressHiAnd_MaskHiAnd_MaskLoOr_MaskHiErrorCheck(LRCor響FieldReferenceAddressHiAnd_MaskHiAnd_MaskLoOr_MaskHiErrorCheck(LRCor23(17Hex)讀/寫(xiě)4X類(lèi)型寄存器說(shuō)Modbus單次傳送中執(zhí)行一個(gè)讀操作和一個(gè)寫(xiě)操作。該功能代碼能把新的數(shù)據(jù)寫(xiě)入一組4X類(lèi)型寄存4X類(lèi)型寄存器中的數(shù)據(jù),不支持廣播,該功能只支持984-785查例:對(duì)從17詢(xún),讀出起始地址56寄存器內(nèi)容,并把數(shù)據(jù)寫(xiě)入起始地址為163寄存器FieldReadReferenceAddressHiReadReferenceAddresstytoReadHitytoReadWriteReferenceAddressHiWriteReferenceAddresstytoWriteHitytoWriteByteCountWriteData1HiWriteData1LoWriteData2HiWriteData2LoWriteData3HiWriteData3ErrorCheck(LRCor響FieldByteCountReadData1HiReadData1LoReadData2HiReadData2LoReadData3HiReadData3LoReadData4HiReadData4LoReadData5HiReadData5LoReadData6HiReadData6ErrorCheck(LRCor24(18Hex)讀FIFO查詢(xún)數(shù)說(shuō)讀一個(gè)先進(jìn)先出(FIFO)的4X類(lèi)型寄存器中查詢(xún)數(shù)據(jù),該功能代碼先返回查詢(xún)的寄存器數(shù),接著返回查詢(xún)數(shù)據(jù)。最多32寄存器數(shù)加31含有查詢(xún)數(shù)據(jù)的寄存器。984-785控制器支持該功能查查詢(xún)指定4X類(lèi)型FIFO詢(xún)寄存器的起始地址,該地址作為指針指向控制器的FINFOUT功能塊,它包含查詢(xún)的寄存器數(shù),跟在這地址后的是FIFO數(shù)據(jù)的寄存器。例:讀從機(jī)設(shè)17FIFO起始地41247存器(04DEHFieldFIFOPointerAddressHiFIFOPointerAddressLoErrorCheck(LRCor響若查31,則返回一個(gè)不正常響應(yīng)帶(不合法數(shù)據(jù)值)錯(cuò)誤03。FieldSlaveAddressByteCountHiByteCountLoFIFOCountHiFIFOCountFIFODataReg1HiFIFODataReg1LoFIFODataReg2HiFIFODataReg2LoFIFODataReg3HiFIFODataReg3ErrorCheck(LRCor該例中,返回被指向的FIFO地址(41247)帶查詢(xún)數(shù)3,后3數(shù)據(jù)寄存器,確良地址41248(十進(jìn)制01B8H);41249(十進(jìn)制47401284H);41250(十48981322HModbus08診斷子功能代功能代碼08-診斷說(shuō)功能代碼08提供一系列試驗(yàn),校驗(yàn)主機(jī)和從機(jī)間的通訊系統(tǒng)或檢查從機(jī)中出現(xiàn)錯(cuò)誤的各種條件,不支持廣播。 個(gè)字節(jié),定義試驗(yàn)的類(lèi)型。正常響應(yīng)時(shí),從機(jī)返回功能代碼和子功能代碼。大多數(shù)診斷測(cè)試,使用1個(gè)2字節(jié)的數(shù)據(jù)區(qū),向從機(jī)發(fā)送診斷數(shù)據(jù)和控制信息。有些診斷會(huì)產(chǎn)生需由從機(jī)返回的數(shù)據(jù),診斷對(duì)從機(jī)設(shè)備的影查例:請(qǐng)求從機(jī)設(shè)備17返回查詢(xún)數(shù)據(jù),使用一個(gè)子功能代碼“0”(0000H),需返回的數(shù)據(jù)(A537H)在一個(gè)2字節(jié)的數(shù)據(jù)FieldSlaveAddressSubfunctionHiDataHiErrorCheck(LRCor44響FieldSlaveAddressSubfunctionHiDataHiErrorCheck(LRCor45 2個(gè)例子說(shuō)明了查詢(xún)和響應(yīng)信息中的控制器支持的診斷功能代碼Modicon制器支持的子功能代碼列表如下:(代碼為十進(jìn)制)。YYYYYY再起動(dòng)通訊選YYYYYY返回診斷寄存YYYYYYYYYNNYYYYYYY05-備請(qǐng)除Ctrs斷標(biāo)YYYY返回總線(xiàn)信息YYYNNY返回總線(xiàn)通訊錯(cuò)YYYNNYYYYNNY返回從機(jī)信息YYYNNN返回從機(jī)不響應(yīng)YYYNNN返回NAKYYYNNYYYYNNY返回總線(xiàn)字符超YYYNNY返回超限錯(cuò)誤NNNYNN NNYNN獲取/清除Modbus+統(tǒng)計(jì)值NNNNY22-備診斷子功能返回查詢(xún)數(shù)00任再起動(dòng)通訊選查詢(xún)數(shù)據(jù)區(qū)FF00H值清除端口通訊 的記錄,而0000H值在重起動(dòng)前清除記錄。0000應(yīng)查詢(xún)數(shù)00FF診返回診斷寄存響應(yīng)時(shí),返回從機(jī)的16位診斷寄存器內(nèi)容。子功能代碼查詢(xún)數(shù)據(jù)區(qū) 00 00 診斷寄存器內(nèi)寄存器數(shù)據(jù)格Modicon控制器診斷寄存器每位的賦值列表如下bit15為最,相應(yīng)位置成“1”時(shí),為184/384診斷寄存 連續(xù)RunLightT-Bus不不ROM“0”測(cè)試失ROM1測(cè)試失ROM2測(cè)試失ROM3測(cè)試失RAM5000-53FF測(cè)試失RAM6000-67FF測(cè)試失敗,偶地RAM6000-67FF測(cè)試失敗,奇地定時(shí)器測(cè)試失診斷寄存 連CPU試驗(yàn)或運(yùn)行并行口測(cè)試失ROM0000-07FF測(cè)試失ROM0800-0FFF測(cè)試失ROM1000-17FF測(cè)試失ROM1800-1FFF測(cè)試失ROM4000-40FF測(cè)試失ROM4100-41FF測(cè)試失ROM4200-42FF測(cè)試失ROM4300-43FF測(cè)試失584/984診斷寄存 不合法配高速RAM后備無(wú)效TrafficCopCUP/Solve斷失看門(mén)狗定時(shí)器故障-掃描時(shí)間超過(guò)靜態(tài)RAM 外設(shè)口停止,無(wú)出錯(cuò)08診斷01Modbus選擇超過(guò)錯(cuò)2ModbusIOP34OurbusIOP5IO故障6CUP故7RAM檢89未未未未未未未ASCII輸入分隔查詢(xún)數(shù)據(jù)中的“CHAR”字符為信息結(jié)束的分隔符(替代缺省的LFASCII信息終了不用“LF”的作結(jié)束符時(shí)使用該子功能代碼查詢(xún)數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 CHAR 強(qiáng)置“只聽(tīng)模式唯一能處理“只聽(tīng)模式”的功能代碼為08,子功能代碼為1(再起動(dòng)通訊選擇功能代碼)。 00 00 10(0AH)計(jì)數(shù)器和診斷寄存對(duì)584或984型控制器,該功能代碼只對(duì)計(jì)數(shù)器(計(jì)數(shù)器通電時(shí)也),對(duì)其它類(lèi)型的控制器時(shí),該功能代碼對(duì)全部子功能代 查詢(xún)數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 連續(xù)CPU試驗(yàn)和RunLightParallelPort異步總線(xiàn)測(cè)試失ROM0000-07FF測(cè)試失連續(xù)ROM測(cè)試ROM0800-0FFF測(cè)試失ROM1800-17FF測(cè)試失ROM0000-1FFF測(cè)試失RAM4000-40FF測(cè)試失RAM4100-41FF測(cè)試失RAM4200-42FF測(cè)試失RAM4300-43FF測(cè)試失584/984診斷寄存 不合法配高速RAM后備檢測(cè)錯(cuò)無(wú)效TrafficCopCPU/Solve診斷失看門(mén)狗定時(shí)器故障-掃描時(shí)間超過(guò)NoEndofLogicNodedetected,ortyofendofsegmentwords(O)doesnotmatchtyofsegmentsconfigured表態(tài)RAM測(cè)試失StartofNetwork(SON)didnotbeginBadOrderofSolveIllegalPeripheralDimAwarenessNotPeripheralPortStopExecuted,notan11(0BH)返回總線(xiàn)信息 00 00 12(0CH)返回總線(xiàn)通訊錯(cuò)誤響應(yīng)數(shù)據(jù)區(qū)向主機(jī)返回再起動(dòng),計(jì)數(shù)器或通電后,從機(jī)所測(cè)測(cè)到的CRC校驗(yàn)錯(cuò)誤數(shù)。 00 00 CRC誤13(0DHex)返回總線(xiàn)不正常錯(cuò)誤響應(yīng)數(shù)據(jù)區(qū)向主機(jī)返回再起動(dòng),計(jì)數(shù) 或通電后,Modbus不正常響應(yīng)的數(shù)量。不正常響應(yīng)詳見(jiàn)附錄A子功能代 查詢(xún)數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 14(0EHex)返回從機(jī)信息子功能代碼查詢(xún)數(shù)據(jù)區(qū) 00 00 15(0FHex)返回從機(jī)不響應(yīng)子功能代碼查詢(xún)數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 16(10Hex)返回從機(jī)NAK數(shù)據(jù)區(qū)向主機(jī)返回再通電,計(jì)數(shù) ,返回NAK不正常響應(yīng)的信息量0000從機(jī)NAK08診斷17(11Hex)從機(jī)返回忙的次 子功能代碼查詢(xún)數(shù)據(jù)區(qū) 00 00 從機(jī)設(shè)備忙次18(12Hex)返回總線(xiàn)字符超限次子功能代碼查詢(xún)數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 從機(jī)設(shè)備忙次19(13Hex)返回IOP超限次數(shù)響應(yīng)數(shù)據(jù)區(qū)向主機(jī)返回,再起動(dòng),計(jì)數(shù)器(或通電)后,被訪(fǎng)向從機(jī)因一臺(tái)884IOP超限條件而無(wú)法次理信息的次數(shù)I0P超限是由于到達(dá)端口字符的速度高于從機(jī)能保存的速度或由于硬件故障丟失字符而引起。該功能代碼指定用于884型控制。子功能代碼查詢(xún)數(shù)據(jù)區(qū) 00 00 從機(jī)IOP20(14Hex)超限計(jì)數(shù)器和標(biāo)志對(duì)884超限錯(cuò)誤計(jì)數(shù)器,對(duì)錯(cuò)誤標(biāo)志復(fù)位,標(biāo)志的當(dāng)前狀態(tài)放在884診斷寄存器的0位。 00 00 08診斷21(15Hex)獲取/清除Modbus+的統(tǒng)計(jì)響應(yīng)數(shù)據(jù)區(qū)向主機(jī)返回信息量為108節(jié),5416字?jǐn)?shù)據(jù)。該功能與數(shù)據(jù)2字節(jié)長(zhǎng)度不同。數(shù)據(jù)中含有對(duì)從機(jī)設(shè)備中的確良Modbus+對(duì)等。處理器的統(tǒng)計(jì)數(shù),查詢(xún)時(shí)除功能代碼(08)和子功能代碼(0015H)外,還有一個(gè)2字節(jié)的操作區(qū),—0003獲取統(tǒng)計(jì)”操—0004清除統(tǒng)計(jì)”操00000000字節(jié) 數(shù)0000 00-0000Modbus+網(wǎng)絡(luò)統(tǒng) 含00節(jié)點(diǎn)012Modbus3主機(jī)4橋路加節(jié)5十六進(jìn)制軟件文本號(hào)(從字中讀12-15備加上低字節(jié)8位,為(十六進(jìn)制)軟件版本 [軟件版本(十六進(jìn)制最高有效位定義字15數(shù)器狀態(tài)變量0通電123空間4令牌56傳送7請(qǐng)求890不取單工雙工08診斷ModbusPlus絡(luò)統(tǒng)字位令牌通過(guò)計(jì)數(shù)器,通過(guò)令牌站一次,計(jì)數(shù)器2令牌旋轉(zhuǎn)時(shí)間 151后,含義如下:發(fā)送綬沖器DMA-underrun誤MAC功能代通訊再試計(jì)數(shù)08診斷ModbusPlus絡(luò)統(tǒng)字位令牌通過(guò)計(jì)數(shù)器,通過(guò)令牌站一次,計(jì)數(shù)器1令牌旋轉(zhuǎn)時(shí)間令牌循環(huán)期間數(shù)據(jù)主站失令牌循環(huán)期間程程序從站自動(dòng)退接收緩沖器超時(shí) 151發(fā)送DMAunderrun誤字位捆包成功計(jì)數(shù)無(wú)響應(yīng)錯(cuò)誤計(jì)數(shù)不正常響應(yīng)計(jì)數(shù)不正常通道計(jì)數(shù)不正常響應(yīng)計(jì)數(shù)有效站位圖表,節(jié)點(diǎn)有效站位圖表,節(jié)點(diǎn)有效站位圖表,節(jié)有效站位圖表,節(jié)有效站位圖表,節(jié)有效站位圖表,節(jié)有效站位圖表,節(jié)有效站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)令牌站位圖表,節(jié)全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)位圖表全局?jǐn)?shù)據(jù)表全局?jǐn)?shù)據(jù)位圖表08診斷Modbus+網(wǎng)絡(luò)統(tǒng)字位位圖中由接收緩沖器,緩沖器位圖中由接收緩沖器,緩沖器位圖中由接收緩沖器,緩沖器位圖中由接收緩沖器,緩沖器位圖中由接收緩沖器,緩沖器主機(jī)數(shù)據(jù)輸出通道1令開(kāi)始計(jì)數(shù)器主機(jī)數(shù)據(jù)輸出通道2令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道3令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道4令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道5數(shù)主機(jī)數(shù)據(jù)輸出通道6令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道7令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道8令開(kāi)始計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道41令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道42令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道43令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道44令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道45令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道46令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道47令處理計(jì)數(shù)從機(jī)數(shù)據(jù)輸入通道48令處理計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道81令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道82令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道83令開(kāi)始計(jì)數(shù)主機(jī)數(shù)據(jù)輸出通道84令開(kāi)始計(jì)數(shù)主機(jī)程序輸出通道86令開(kāi)始計(jì)數(shù)主機(jī)程序輸出通道87令開(kāi)始計(jì)數(shù)主機(jī)程序輸出通道88令開(kāi)始計(jì)數(shù)從機(jī)程序輸入通道C1令處理計(jì)數(shù)從機(jī)程序輸入通道C2令處理計(jì)數(shù)從機(jī)程序輸入通道C3處理 從機(jī)程序輸入通道C4令處理計(jì)數(shù)從機(jī)程序輸入通道C5令處理計(jì)數(shù)從機(jī)程序輸入通道C6令處理計(jì)數(shù)從機(jī)程序輸入通道C7令處理計(jì)數(shù)從機(jī)程序輸入通道C8令處理計(jì)數(shù)不正常代不正常響應(yīng)除廣播外,主機(jī)向從機(jī)設(shè)備發(fā)送查詢(xún)并希望有一個(gè)正常響應(yīng),主機(jī)查詢(xún)中有可能產(chǎn)生4種從機(jī)接收查詢(xún),通訊錯(cuò)誤正常處理信息,則返回一個(gè)正常響應(yīng)若從機(jī)接收查詢(xún),發(fā)現(xiàn)有(LRC或CRC)通訊錯(cuò)誤,并返回響應(yīng),此時(shí),依靠主機(jī)處理程序給出查詢(xún)超件正常響應(yīng)信息有2與正常響應(yīng)不相同的區(qū)域:功能代碼區(qū):正常響應(yīng)時(shí),從機(jī)的響應(yīng)功能代碼區(qū),帶原查詢(xún)的功能代碼。所有功能代碼的MSB為0(其值低于80H)。不正常響應(yīng)時(shí),從機(jī)把功能代碼的MSB置為1,使功能代碼值大于80H,高于正常響應(yīng)的值。這樣,主機(jī)應(yīng)用程序能識(shí)別不數(shù)據(jù)區(qū):正常響應(yīng)中,數(shù)據(jù)區(qū)含有(按查詢(xún)要求給出的)數(shù)據(jù)或統(tǒng)計(jì)值,在不正常響應(yīng)中,數(shù)據(jù)區(qū)為一個(gè)不正常代碼,它例:主機(jī)發(fā)出查詢(xún),從機(jī)不(為十六進(jìn)制數(shù)據(jù)12345No.ofCoils6No.ofCoils7EXCEPTION1234圖46上例中,從機(jī)設(shè)備地址10(0AH),讀線(xiàn)圈狀態(tài)的功能代碼(01),主機(jī)請(qǐng)求線(xiàn)圈狀態(tài)的地址為1245(04A1H)。注意:只讀不正常代碼代碼名 含不合能代 不合法數(shù)據(jù)地 不合法數(shù) 從機(jī)執(zhí)行主機(jī)請(qǐng)求的動(dòng)作時(shí)出現(xiàn)不可恢復(fù)的錯(cuò)誤 從機(jī)已接收請(qǐng)求處理數(shù)據(jù),但需要較長(zhǎng) 響應(yīng)。主機(jī)以此再發(fā)送一個(gè)“查詢(xún)程序完成”未決定從機(jī)是否已完成處理。 從機(jī)正忙于處理一個(gè)長(zhǎng)時(shí)程序命令,求主機(jī)在從機(jī)空閑時(shí)發(fā)送信 從機(jī)不能執(zhí)行查詢(xún)要求的程序功能時(shí),該代碼使用十進(jìn)制13或14代碼,向主機(jī)返回一個(gè)“不成內(nèi)存奇偶校驗(yàn)錯(cuò)誤從機(jī)讀擴(kuò)展內(nèi)存中的數(shù)據(jù)時(shí)ModiconPLC的最大查詢(xún)/響應(yīng)參數(shù)估算串行傳送時(shí)584984A/B/XPLC須最大最大查詢(xún)/響應(yīng)參數(shù)1讀線(xiàn)圈狀20002讀輸入狀20003讀線(xiàn)圈狀125125存4讀輸入狀125125存5強(qiáng)置單線(xiàn)678診9程序不支不支查詢(xún)不支不支獲取控獲取記70編程控制33字33查詢(xún)控制33強(qiáng)置多線(xiàn)100100存編程不支不支復(fù)位不支不支讀通用類(lèi)型寄存寫(xiě)通用類(lèi)型寄存1讀線(xiàn)圈狀200020002讀輸入狀200020003讀線(xiàn)圈狀1251254讀輸入狀1251255強(qiáng)置單線(xiàn)1161存1存788診9程序不支不支查詢(xún)不支不支獲取控獲取記70據(jù)編程控制33據(jù)33據(jù)查詢(xún)控制33據(jù)強(qiáng)置多線(xiàn)800800100100報(bào)告編程不支不支復(fù)位不支不支讀通用類(lèi)型寄存寫(xiě)通用類(lèi)型寄存估算串行處理時(shí)序處理順Modbus串行傳輸時(shí)按如下順序:括號(hào)ModbusModbusRTSCTS狀態(tài)向從機(jī)發(fā)送查詢(xún)信息。從機(jī)處理查詢(xún)數(shù)據(jù)。(C)檢查從機(jī)設(shè)RTS和CTS,modem向主機(jī)返回響應(yīng)信息。TimingRTSCTS起,可忽略該時(shí)間。對(duì)J478modem,該時(shí)間約5ms。使用下述,估算傳時(shí)間在PLC掃描結(jié)束時(shí),處理Modbus信息,情況延時(shí)是一個(gè)控制器掃描結(jié)束時(shí),Modbus端口的分配時(shí)間取決控制器的型號(hào)有些低檔控制器(184/384)該時(shí)間按處理的數(shù)量的大小而變化。0.5ms6.0ms(100存器)或至7.0ms(800線(xiàn)Modbus功能代碼1-4,1.5和16,可在從機(jī)工作的Modbus端口的分配時(shí)間內(nèi)允許主機(jī)請(qǐng)求從機(jī)處理的數(shù)據(jù):若從Modbus次服務(wù)期中能處理的點(diǎn)寄存4984-注意:‘984-X8X’指984(984-835,-685,etcLRC<1ms,CRC間約0.3ms(響應(yīng)而返回的8584984A/B/XPLC本應(yīng)用須知只適用Modicon584984/A/B/X器波特率:Modbus1端口2率為19200端口:使 :CR ASCII終止:ASCII,CRLF止。584984A/B/X控制器的一個(gè)信息,可在LRC終止,而不需發(fā)送CRLF字符,如LRC區(qū)后出現(xiàn)>IS時(shí)間間隔則控制器認(rèn)為信息是正常終止。附錄CLRC縱向冗余校縱向冗余校驗(yàn)區(qū)為1,8二進(jìn)制數(shù)據(jù),由發(fā)送設(shè)備計(jì)算LRC把計(jì)算值附到信息中。接收設(shè)備在接收信息時(shí),重新計(jì)算LRC值,并把計(jì)算值與LRC區(qū)中接收的實(shí)際值進(jìn)行比較,若兩者不相同,則產(chǎn)生一個(gè)錯(cuò)誤。信息中的相28丟棄進(jìn)位,然后進(jìn)行二進(jìn)制補(bǔ)碼,運(yùn)算計(jì)算LRCLRC一個(gè)8區(qū),因此每加一個(gè)新字符,會(huì)產(chǎn)生大于十進(jìn)制255的數(shù)值而謚出,因?yàn)?位,自動(dòng)放棄進(jìn)位。相加信息中的全部字節(jié),包括起始“:”號(hào)和結(jié)束符CRLF.并把結(jié)果送入8由FFH去最終的數(shù)據(jù)值LRC放入信息發(fā)送8位LRC(2個(gè)ASCII字符)時(shí),先送字符,后送低位字符,如:LRC值為61H(0110 例unsignedchar sg unsignedshortusDataLen緩沖器中的字節(jié)數(shù)。該功能返回LRC作為一種類(lèi)型“unsignedcharLRC產(chǎn)生的功staticunsignedcharLRC(ausg,unsignedchar*ausg;/*按信息的字節(jié)計(jì)算LRC*/unsignedshortusDataLen*按信息的字節(jié)計(jì)算LRC*/{unsignedcharuchLRC0*初始化LRC字符*/while(usDataLen––)/*通過(guò)數(shù)據(jù)緩沖器*/uchLRC+=*ausg++;/*加緩沖器字節(jié)無(wú)進(jìn)位return((unsignedchar)(–((char)uchLRC)));/*返回二進(jìn)制補(bǔ)碼}CRC環(huán)冗余校循環(huán)冗余校驗(yàn)CRC2字節(jié),含一個(gè)16位二進(jìn)制數(shù)據(jù)。由發(fā)送設(shè)備計(jì)算CCCC值,并把計(jì)算值與接收的在CRCCR開(kāi)始時(shí)先把寄存器的16位全部置成“1”,然后把相鄰2個(gè)88位數(shù)據(jù)用作產(chǎn)生R,起始位,停止位和奇偶校驗(yàn)位不加到CRC中。產(chǎn)生CRC的過(guò)程CRC寄存器向右移一位,MSB填零,檢查(若LSB為0):重復(fù)3,再右移一位(若LSB為1):CRC寄存器與AoolH進(jìn)行異或運(yùn)把CRC值放入信息發(fā)送信息中的16位CRC值時(shí),先送低8位,后送高8位。若CRC值為1241(0001001001000001):D 例 因此,由功能碼返回的CRC值,能直接CRC生成例unsignedchar sg 為生成CRC值,把指針unsignedshortusDataLen;緩沖器中的字節(jié)數(shù)。CRC產(chǎn)生的功unsignedshortCRC16(pusg,unsignedchar*pusg;/*按信息的字節(jié)數(shù)計(jì)算CRC*/unsignedshortusDataLen;/*tyofbytesinmessage{unsignedcharuchCRCHi=0xFF;/*初始化高字節(jié)*/unsignedcharuchCRCLo=0xFF;/*初始化低字節(jié)*/unsigneduIndex;/*把CRC表*/while(usDataLen––)/*通過(guò)數(shù)據(jù)緩沖器{uIndexuchCRCHi^*pusgg*計(jì)算CRC*/uchCRCHi=uchCRCLo^auchCRCHi[uIndex];uchCRCLo=auchCRCLo[uIndex]}return(uchCRCHi<<8|uchCRCLo)}字節(jié)/*TableofCRCvaluesforhigh–orderbyte*/staticunsignedcharauchCRCHi[]={0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版無(wú)息投資借款合同書(shū)示例3篇
- 2025版房地產(chǎn)項(xiàng)目土方挖填施工合同范本2篇
- 2025年度個(gè)人帶車(chē)庫(kù)帶私人泳池房產(chǎn)交易合同
- 2025年全球及中國(guó)橈動(dòng)脈止血器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)多功能推車(chē)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)液槽密封式高效送風(fēng)口行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球流程行業(yè)無(wú)線(xiàn)自動(dòng)化行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球并網(wǎng)型微型逆變器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024年煤礦企業(yè)安全生產(chǎn)知識(shí)競(jìng)賽試題庫(kù)及答案(共200題)
- 2025版智慧醫(yī)療項(xiàng)目共同墊資合作協(xié)議書(shū)3篇
- 2025年度廚師職業(yè)培訓(xùn)學(xué)院合作辦學(xué)合同4篇
- 《組織行為學(xué)》第1章-組織行為學(xué)概述
- 2024年山東省泰安市高考物理一模試卷(含詳細(xì)答案解析)
- 護(hù)理指南手術(shù)器械臺(tái)擺放
- 腫瘤患者管理
- 2025年中國(guó)航空部附件維修行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局、行業(yè)政策及需求規(guī)模預(yù)測(cè)報(bào)告
- 2025春夏運(yùn)動(dòng)戶(hù)外行業(yè)趨勢(shì)白皮書(shū)
- 《法制宣傳之盜竊罪》課件
- 窒息的急救解讀課件
- 下腔靜脈濾器置入術(shù)共27張課件
- 人教小學(xué)四年級(jí)上冊(cè)數(shù)學(xué)知識(shí)點(diǎn)歸納
評(píng)論
0/150
提交評(píng)論