工控綜合modbus協(xié)議中文版_第1頁
工控綜合modbus協(xié)議中文版_第2頁
工控綜合modbus協(xié)議中文版_第3頁
工控綜合modbus協(xié)議中文版_第4頁
工控綜合modbus協(xié)議中文版_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Modbus協(xié)議介紹Modbus可編程控制器之間可相互通訊,也可與不同網(wǎng)絡(luò)上的其他設(shè)備進行通訊,支撐網(wǎng)絡(luò)有ModiconModbus和OEM(機械設(shè)備制造商)來說,Modicon可為合作伙伴提供現(xiàn)有的程序,可使Modbus+網(wǎng)絡(luò)緊密地集成到他們的產(chǎn)品設(shè)計中去。Modicon的各種控制器使用的公共語言被稱為Modbus協(xié)議,該協(xié)議定義了控制器能識別和使用的信息結(jié)構(gòu)。當(dā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è)備地址,在信息和和和1:Modbus和*MB+為Modbus上的數(shù)據(jù)Mocon控制器上的標(biāo)準(zhǔn)Mobs端口是使用一個R-232(以后簡稱des)接入總線(網(wǎng)絡(luò))機能起動數(shù)據(jù)傳輸,稱查詢。而其它設(shè)備(從機應(yīng)返回對查詢作出的響應(yīng),或處理查詢所要求的動作。典應(yīng)的主機設(shè)備應(yīng)包括Mdb用Mobs協(xié)議組織,它包括確認(rèn)動作的代碼,返回數(shù)據(jù)和錯誤。若在接收信息時出現(xiàn)一個錯誤或從機不能執(zhí)行要求的動作時,從機會組織一個錯誤信息。并向主機發(fā)送作為響應(yīng)。在其它總線上傳輸數(shù)除標(biāo)Modbus功能外Modcon控制器內(nèi)置端口或總線適配器Modbus+總線上實現(xiàn)通訊或使用網(wǎng)絡(luò)適配器,在MAP網(wǎng)絡(luò)上通訊。在這些總線上,控制器間采用對等的技術(shù)進行通訊,即任意一個控制器可向其它控制器啟動數(shù)據(jù)傳送。因此,一臺控制息,絡(luò)訊是等,但Mobs仍方一器機送息,從臺從機設(shè)備返回一個響應(yīng),類似,當(dāng)一臺控制器接受信息時,它就組織一個從機設(shè)備的響應(yīng)信息,并返回至送信息的控制器。查詢響應(yīng)周期設(shè)備地設(shè)備地功能代功能代88錯誤校錯誤校

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

評論

0/150

提交評論