版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ModbusModbus可編程控制器之間可相互通訊,也可與不同網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行通訊,支撐網(wǎng)絡(luò)有Modicon的Modbus和OEM(機(jī)械設(shè)備制造商)來說,Modicon可為合作伙伴提供現(xiàn)有Modbus+網(wǎng)絡(luò)緊密地集成到他們的產(chǎn)品設(shè)計(jì)中去。Modicon的各種控制器使用的公共語言被稱為Modbus協(xié)議,該協(xié)議定義了控制器能識(shí)別和使用的信息結(jié)構(gòu)。當(dāng)在取出包含在信息中的數(shù)據(jù)和資料等,控制器也可組織回答信息,并使用Modbus協(xié)議將此信息傳送出去。序庫(kù)和驅(qū)動(dòng)程序,實(shí)現(xiàn)嵌入式Modbus協(xié)議信息與此網(wǎng)絡(luò)中用子節(jié)點(diǎn)設(shè)備間通訊的特殊信息幀的數(shù)據(jù)轉(zhuǎn)換。4和AT/HC-和和1:Modbus協(xié)議應(yīng)用示意和 MB+Modbus的數(shù)ModiconModbusRS-232兼容的串行接口,定義了連接器,接線電纜,信號(hào)等級(jí),傳輸波特率,和奇偶校驗(yàn),控制器可直接或通過調(diào)制解調(diào)器(Modems)接入總線(網(wǎng)絡(luò))??刂破魍ㄓ嵤褂弥鲝募夹g(shù),確認(rèn)動(dòng)作的代碼,返回?cái)?shù)據(jù)和錯(cuò)誤。若在接收信息時(shí)出現(xiàn)一個(gè)錯(cuò)誤或從機(jī)不能執(zhí)行要求的動(dòng)作時(shí),從機(jī)會(huì)組織一個(gè)在其它總線上傳輸在MAP網(wǎng)絡(luò)上通訊。從一臺(tái)從機(jī)設(shè)備返回一個(gè)響應(yīng),類似,當(dāng)一臺(tái)控制器接受信息時(shí),它就組織一個(gè)從機(jī)設(shè)備的響應(yīng)信息,并返回至送信查詢響應(yīng)主主機(jī)查詢信88從機(jī)響應(yīng)信查詢
圖2:主從查詢響應(yīng)周響應(yīng)兩種串行傳輸口的通訊參數(shù)。(波特率,奇偶校驗(yàn)等),在Modbus總線上的所有設(shè)備應(yīng)具有相同的通訊模式和串行通訊參數(shù)。ASCII模式的主要優(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)1錯(cuò)誤校驗(yàn)區(qū):縱向冗余校驗(yàn)RTU點(diǎn)是在相同波特率下其傳輸?shù)淖址拿芏雀哂贏SCII模式,每個(gè)信息必須連續(xù)傳輸。ModbusASCII模式還是RTU模式,Modbus信息以幀的方式傳輸,每幀有確定的起始點(diǎn)和結(jié)束點(diǎn),使接收設(shè)備在信息的起點(diǎn)開始讀地址,并確定要尋址的設(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í),信息傳輸中 ASCII在ASCII模式中,以(:)號(hào)(ASCII3AH)表示信息開始,以回撤一換行鍵(CRLF)(ASCIIOD和OAH)表示信息結(jié)束1:22n223ASCIIRTU的T1-T2-T3-T4)。接著,第一個(gè)區(qū)的數(shù)據(jù)為設(shè)備地址。否是自己的地址。發(fā)送完最后一個(gè)字符號(hào)后,也有一個(gè)3.5個(gè)字符的靜止時(shí)間,然后才能發(fā)送一個(gè)新的信息。CRC無效而產(chǎn)生的錯(cuò)誤開地功數(shù)校終T1-T2-T3-8B8B位N×8B16BT1-T2-T3T-地址設(shè)信息地2個(gè)字符(ASCII)8位(RTU),有效的從機(jī)設(shè)備地0-247,(十進(jìn)制),各從機(jī)設(shè)備的尋址范圍1-247。主功能碼設(shè)制器,而有些代碼僅適用于某些型號(hào)的控制器。還有一些代碼留作將來使用,有關(guān)功能代替碼的設(shè)置將在第2章說明。返回與原始代碼相等效的一個(gè)碼,并把最高有效位設(shè)定為“1”。從機(jī)對(duì)功能代碼作為了修改,此外,還把一個(gè)特殊碼放入響應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機(jī)出現(xiàn)的錯(cuò)誤類型和不正常響應(yīng)的原因。主機(jī)設(shè)備的應(yīng)用程序負(fù)責(zé)處理不正常響應(yīng),典型處理過程是主機(jī)把對(duì)信息的測(cè)試和診斷送給從機(jī),并通知操作者。數(shù)據(jù)區(qū)的組成或由一個(gè)RTU字符組成。錯(cuò)誤校束符為CRLF字符。使用RTU方式時(shí),錯(cuò)誤為一個(gè)16位的值,2個(gè)8位字節(jié)。錯(cuò)誤校驗(yàn)值是對(duì)信息內(nèi)容執(zhí)行CRC校驗(yàn)結(jié)果。CRC串行傳送最低有效位:(LSB)最高有效位:(MSB)ASCII數(shù)據(jù)幀位序5ASCII6RTU位錯(cuò)誤校驗(yàn)Modbus串行通訊網(wǎng)絡(luò)采用兩種錯(cuò)誤校驗(yàn)方法,奇偶校驗(yàn)(奇或偶)可用于校驗(yàn)每一個(gè)字符,信息幀校驗(yàn)(LRC或主機(jī)可由用戶設(shè)置的一個(gè)預(yù)定時(shí)間間隔,確定是否放棄傳送信息。該間隔應(yīng)有足夠的時(shí)間來滿足從機(jī)的正常響應(yīng)。若主機(jī)檢測(cè)到傳輸錯(cuò)誤時(shí),則傳輸?shù)男畔o效。從機(jī)不再向主機(jī)返回響應(yīng)信息。此時(shí),主機(jī)會(huì)產(chǎn)生一個(gè)超時(shí)信息,并允許主機(jī)程序處理該錯(cuò)誤信號(hào)。注意:主機(jī)向?qū)嶋H并未存在的從機(jī)發(fā)送信息時(shí)也會(huì)引起超時(shí)出錯(cuò)信號(hào)。奇偶校1100在Modbus總線上的所有設(shè)備必須采用相同的奇偶校驗(yàn)方式。個(gè)“12個(gè)“1”位時(shí),其結(jié)果仍然是奇數(shù)。若無奇偶校驗(yàn)方式時(shí),傳輸中不作實(shí)際的校驗(yàn),應(yīng)附加一個(gè)停LRC的LRC的實(shí)際值進(jìn)行比較,若二者不一致,亦產(chǎn)生一個(gè)錯(cuò)誤。在梯形圖中,CKSMLRCC錯(cuò)誤校驗(yàn)CRCCRC2個(gè)字節(jié),16CRC值,并把它附到信息中去。接收設(shè)備在接收信息過停止位和校驗(yàn)位不參與CRC計(jì)算。述過程。全部處理完信息中的數(shù)據(jù)字節(jié)后,最終得到的寄存器值為CRC值。附錄C中的一個(gè)實(shí)例,它詳細(xì)說明了CRC的校驗(yàn)。第二數(shù)據(jù)和控制ModbusModbusModbus數(shù)字值表Modbus信息中的數(shù)據(jù) 信息中的所有數(shù)據(jù)地址以零作為基準(zhǔn),各項(xiàng)數(shù)據(jù)的第一個(gè)數(shù)據(jù)地址的編號(hào)為0Modbus信息中區(qū)圖7為一個(gè)例子,說明了Modbus的查詢信息,圖8為正常響應(yīng)的例子,這兩例子中的數(shù)據(jù)均是16進(jìn)制的,也表示了以ASCLL或RTU方式構(gòu)成數(shù)據(jù)幀的方法主機(jī)查詢是讀保持寄存器,被請(qǐng)求的從機(jī)地址是06,的數(shù)據(jù)來自地址從40108至401103個(gè)保持寄有器。注意,該信息規(guī)定了寄存器的起始地址為0107(006BH)。從機(jī)響應(yīng)返回該功能代碼,說明是正常響應(yīng),字節(jié)數(shù)“Bylecount8ASCII方式還是RTU方式,它表明了附在數(shù)據(jù)區(qū)中8位字節(jié)的數(shù)量。ASCII方式時(shí),字節(jié)數(shù)為數(shù)據(jù)中ASCII字符實(shí)際數(shù)的一半,416ASCII字符表示,因此在數(shù)據(jù)中應(yīng)2ASCII字符來表示一8位的字節(jié)。如RTU方式時(shí),63H用一個(gè)字節(jié)( )發(fā)送,而用ASCII方式時(shí),發(fā)送需2個(gè)字節(jié),即ASCII“6”( )。8個(gè)位為一個(gè)單位計(jì)算“字節(jié)數(shù)”,它忽略了信息幀用(ASCII或RTU)組成的方法。字節(jié)數(shù)使用方法:當(dāng)在緩沖區(qū)組織響應(yīng)信息時(shí)字節(jié)數(shù)”區(qū)域中的值應(yīng)與該信息中數(shù)據(jù)區(qū)的字節(jié)數(shù)相Field8-BitSlave00000000StartingAddress0000StartingAddress0110No.ofRegisters0000ErrorCheckCRLF0000Total8圖8說明“字節(jié)數(shù)”區(qū)在一個(gè)貢型響應(yīng)中的應(yīng)Field8-BitByteCountDataHiDataLoDataHiDataLoDataHiDataLo 0 00000 00000 00000 00002 00100 00000 00000 00006 0110LRC(2chars.) CRLF Total圖8:從機(jī)采用ASCII/RTU方式響Modbus+數(shù)據(jù)內(nèi)在Modbus+網(wǎng)絡(luò)發(fā)送的Modbus信息應(yīng)需嵌入到LLC邏輯連接控制)級(jí)數(shù)據(jù)幀,Modbus8位字節(jié)的數(shù)據(jù)組成,類似于RTU中的信息組成。制層(HDLC)中進(jìn)行CRC校驗(yàn)。其余的信息與原標(biāo)準(zhǔn)格式一致,應(yīng)用軟件(控制器中的MSTR或主機(jī)中的 圖9示例說明了如何將讀寄存器值的請(qǐng)求嵌入到+Modbus網(wǎng)絡(luò)的數(shù)據(jù)幀中。HDLC前前 工作標(biāo)記廣播地MAC/LLCMAC級(jí)目的地 原地址MAC功能字節(jié)LLCLLC級(jí)輸出路由路由器MODBUSMODBUS信息從機(jī)地 功能代圖9:Modbus+數(shù)據(jù)內(nèi)代碼名 384484584884M84YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY程序NYNNNN查詢NYNNNNYNYNNYYNYNNYYNYNNYYNYNNYYYYYYYYYYYYY報(bào)告從機(jī)YYYYYY程序NNNYYNNNNYYNNNYNNYNNYNNYNNNNNRead/Write4XNNNNNReadFIFONNNNN0101描查查詢信息規(guī)定了要讀的起始線圈和線圈量,線圈的起始地址為零,1-160-15。例:請(qǐng)求從機(jī)設(shè)備17讀20-56線圈。FieldSlaveAddressStartingAddressHiStartingAddressLoNo.ofPointsHiNo.ofRointsErrorCheck(LRCor—10:讀線圈狀態(tài)-查響若返回的線圈數(shù)不是8的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位至字節(jié)的最全部填零,字節(jié)數(shù)區(qū)說明全部數(shù)據(jù)的FieldByteErrorCheck(LRCor—11:讀線圈狀態(tài)-響27-20CDH表示,二進(jìn)制值為MCB27,LSB20。線圈從左(27)向右(20)至28。位數(shù)據(jù)串行轉(zhuǎn)輸從低位到,即20…27,28…35。最后一個(gè)數(shù)據(jù)字節(jié)中,56-52線圈的狀態(tài)為1BH(或二進(jìn)制 所線圈56至52的狀態(tài)分別為ON-ON-OFF-ON-ON注意3個(gè)剩余位(至最的數(shù))全部填0。0202說查例:請(qǐng)求讀從機(jī)設(shè)備17的10197-10218的輸入位狀態(tài)。FieldSlaveAddressStartingAddressHiStartingAddressLoNo.ofPointsHiNo.ofRointsErrorCheck(LRCor—12:讀輸入位狀態(tài)-查詢響響應(yīng)信息中的各輸?shù)臓顟B(tài),分別對(duì)應(yīng)于數(shù)據(jù)區(qū)中的每一位值,1=ON;0=OFF,第一個(gè)數(shù)據(jù)字節(jié)的LSB為查詢中的尋址地址,其他輸按順序在該字節(jié)中由低位向排列,直至8個(gè)位為止。下一個(gè)字節(jié)中的8個(gè)輸入位也是從低位到排列。若返回的輸入位數(shù)不是8的倍數(shù),則在最后的數(shù)據(jù)字節(jié)中的剩余位直至字節(jié)的最全部填零。字節(jié)的最,字節(jié)FieldSlaveByteData(Inputs10204-Data(Inputs10212-Data(Inputs10218-ErrorCheck(LRCor—圖13:讀輸入位狀態(tài)-響應(yīng)10204-1019735H(或二進(jìn)制)102183位,10213LSB,輸10218-10213ON-ON-OFF-ON-OFF-ON2個(gè)剩余位需填零。查0-15FieldSlaveStartingAddressStartingAddressNo.ofPointsNo.ofRointsErrorCheck(LRCor—圖14:讀保持寄存器-響響應(yīng)信息中的寄存器數(shù)據(jù)為二進(jìn)制數(shù)據(jù),每個(gè)寄存器分別對(duì)應(yīng)2個(gè)字節(jié),第一個(gè)字節(jié)為值數(shù)據(jù),第二個(gè)字節(jié)為低FieldByteDataLo(RegisterDataHi(RegisterDataLo(RegisterDataHi(RegisterDataLo(Register40110)—圖15:讀寄存器-0附錄B列出了由各種型號(hào)控制器所支持的最大的參數(shù)量查FieldSlaveAddressStartingAddressFieldSlaveAddressStartingAddressHiStartingAddressLoNo.ofPointsHiNo.ofRointsErrorCheck(LRCor—圖16:讀輸入寄存器-響FieldSlave Byte DataHi(Register DataLo(Register30009) ErrorCheck(LRCor 圖17:讀寄存器-注意:該功能可越過控制器內(nèi)存的保護(hù)狀態(tài)和線圈的狀態(tài)。線圈強(qiáng)制狀態(tài)一直保持有效直至下一個(gè)控制邏輯作查處于OFF狀態(tài),其它值對(duì)線圈無效,不起作用。FieldCoilAddressHiForceDataHiForceDataLoErrorCheck(LRCor—圖18:強(qiáng)制單個(gè)線圈-響FieldCoilAddressHiForceDataHiForceDataLoErrorCheck(LRCor—圖19:強(qiáng)制單個(gè) H值FieldRegisterAddressHiPresetDataHiPresetDataLoErrorCheck(LRCor—圖20:預(yù)置單個(gè)寄存器-響FieldRegisterAddressHiPresetDataHiPresetDataLoErrorCheck(LRCor—圖21:預(yù)置單個(gè)寄存器-8個(gè)不正常狀態(tài)線圈的數(shù)據(jù),某些線圈號(hào)已在不同型號(hào)的控制器中預(yù)定義,而其它的線圈由用戶編程,作該功能代碼為存取該類信息提供了一種簡(jiǎn)單的方法,不正常線圈的類型是已知的(在功能代碼中不需要線圈類型)預(yù)定控制器型線設(shè)查FieldErrorCheck(LRCor—圖22:讀不正常狀態(tài)-響FieldFieldErrorCheck(LRCor—圖23:讀不正常狀態(tài)該例子中,線圈數(shù)據(jù)為6DH(二進(jìn)制0110,1101),從左到右(最至最低位)的線圈狀態(tài)分別為:OFF–ON–ON–OFFONONOFFON98481484264至257的狀態(tài)。11(0BHex)取通訊事件計(jì)說(08),(0001)(000A)等可對(duì)事件計(jì)查例:請(qǐng)求從機(jī)設(shè)備17的通訊事件計(jì)數(shù)FieldErrorCheck(LRCor—圖 通訊事件計(jì)數(shù)器—查響正常響應(yīng)含一個(gè)帶2個(gè)字節(jié)的狀態(tài)字和一個(gè)雙字節(jié)的事件數(shù),若從機(jī)還未處理完以前發(fā)出的程序值狀態(tài)字中的各位。均為1 (FFFFH),處理完時(shí),各位值均為0(0000H)。FieldSlaveAddressStatusHiStatusLoEventCountHiErrorCheck(LRCor—圖 通訊事件計(jì)數(shù)器—響FFFFH264計(jì)數(shù)器清零操作,或通電)的信息量,該值與由診斷功能代碼(08),總線信息數(shù)子功能代碼(11,0BH)返回的值相同。事件數(shù)據(jù)區(qū)包0-64個(gè)字節(jié)。每個(gè)字Modbus送出的一個(gè)狀態(tài),或子機(jī)接收操作的一個(gè)狀態(tài)。由子機(jī)把事件送到順序排列的區(qū)域。字節(jié)0為的事件,最大新的確字節(jié)刷新該區(qū)域的最老的字節(jié)。查例:請(qǐng)求從機(jī)設(shè)備17通訊事件記FieldErrorCheck(LRCor—圖26:通訊事件記錄—查響2220-644個(gè)區(qū)的數(shù)據(jù)的總長(zhǎng)度。FieldByteCountStatusHIStatusLoEventCountHiMessageCountHiMessageCountLoEvent0EventErrorCheck(LRCor—通訊事件記錄—響0000H2640108H)289(0121H)。最近的通訊事件在Event0字節(jié)中。數(shù)值20H表示該從機(jī)已最后進(jìn)入了只聽狀態(tài)(ListenOnlyMode)。Event100H表示該從機(jī)接收了一個(gè)通訊再起動(dòng)事件(CommunicationsRestart,響應(yīng)事事件字節(jié)從機(jī)Modbus接收事件從機(jī)接收查詢信息時(shí),事件字節(jié)的類型,并在處理前。該事件字節(jié)的類型。把高7位置1定義這事件,如果相應(yīng)條件“真”(true)1,字節(jié)中各位的含義如下。 1Modbus發(fā)送事 (1-(10從機(jī)進(jìn)入只聽模當(dāng)從機(jī)進(jìn)入只聽模式時(shí)這類事件字節(jié),事件由04H數(shù)據(jù)定義,如下 2從機(jī)初始化通訊再(ContinueonError)(StoponError)。若從機(jī)配置成“錯(cuò)誤時(shí)0010203040506070(0X類型)ONOFFB查010OFF1710201913H)為2個(gè)字節(jié),CD01H(二進(jìn) 00000001)相應(yīng)線圈的二進(jìn)制位排列如下 傳送的第一個(gè)字節(jié)CDH對(duì)應(yīng)線圈為27-20, LSB對(duì)應(yīng)線圈20,傳送的第二個(gè)字節(jié)為01H,對(duì)應(yīng)的線圈為29-28,LSB為繼圈28,其余未使用的位均填“0。FieldCoilAddressHiCoilAddresstyofCoilsHityofCoilsByteForceDataHi(Coils27-20)ForceDataLo(Coils29-28)ErrorCheck(LRCorCRC)—28:強(qiáng)制多個(gè)線-響FieldCoilAddressHiCoilAddresstyofCoilsHityofCoilsErrorCheck(LRCor—圖29:強(qiáng)制個(gè)多個(gè)圈16(10Hex)預(yù)置多說)注意:該功能代碼可越過控制器的內(nèi)存保護(hù),在寄存器中的預(yù)置值一直保持有效,只能由控制器的下一個(gè)邏輯來處B查217240002000AH0102HFieldNameStartingAddressHiNo.ofRegistersHiNo.ofRegistersLoByteCountDataHiDataLoDataHiDataErrorCheck(LRCor—圖30:預(yù)置多個(gè)寄存響FieldStartingAddressHiNo.ofRegistersHiNo.ofRegistersLoErrorCheck(LRCor—圖31:預(yù)置多個(gè)寄存器—響17(11Hex)報(bào)告從機(jī)說查17IDFieldErrorCheck(LRCor—32ID—查響圖33報(bào)告從機(jī)ID—響應(yīng)ID總ModiconSlave0Micro123894744AH)J347ModbusPIB74,其他情況字節(jié)數(shù)為4。4 SlaveID(2 (0OFFFF Bit0=Bit1=(0OFF1Bit2,3=控制器類型:Bit20Bit30Bit21Bit30指示Bits4-15=J347正確建立,PIB70個(gè)字節(jié) 5,6 起始 執(zhí)行11-74PIB(2),PIB (16倍數(shù) (16的倍數(shù) RAM DX請(qǐng)求 RAM 50XX 50XX RAM RAM RAM 5849 ID(0OFFFF4K01K (ByteBit15=Bit14=Bit13=1Bit12=2Bit11=Bit10=(0OFF1ON)Bit9=單次掃描狀態(tài)(0=OFF,1=ON)Bit816/24-bit(024-bit節(jié)點(diǎn),116-bit節(jié)點(diǎn)ByteBit7(MSBofbyte7)=ON1ON,0)Bit6=RUN運(yùn)行指示器狀態(tài)(0=ON,1=OFF)Bit5=(0ON1Bit4BatteryOK0OK1=OK)電Bits3-0= (ByteBit15MSB)=(可控停止)Bit14=未用Bit13Bit12=不合法的外設(shè)Bit11Bit10Bit9=RAMBit8=ByteBit7(MSB)=Bit6=實(shí)時(shí)時(shí)鐘錯(cuò)誤Bit5CPU診斷失敗Bit4=無效的Bit3=無效節(jié)點(diǎn)類型Bit2=邏輯檢查出錯(cuò)Bit1=備用檢查出錯(cuò)Bit0=不合法配置984型控制 984ID(0OFFFF4K01K (ByteBit15(MSB)=Bit14-11=Bit10=(0OFF1ON)Bit9=單次掃描狀態(tài)(0=OFF,1=ON)Bit8=16/24-bitBit10=(0OFF1ON)Bit9=單次掃描狀態(tài)(0=OFF,1=ON)Bit816/24-bit(024-位節(jié)點(diǎn),116-位節(jié)點(diǎn)ByteBit7(MSB)=(1ON,Bit6=(0ON;1OFF)Bit5=內(nèi)存保護(hù)狀態(tài)(0=ON;1=OFF)Bit4=電池OK(0=OK,1=OK)Bit3-1=Bit0=內(nèi)存減少標(biāo)志(0=不減少;1=減少Bit0=內(nèi)存減少:99,10017563H64HAFH)定義使用內(nèi)存下降bit0=“1”下0頁(yè)(16位字)=99*4096)-(175低字節(jié)(16位字100*1024)-(175 (ByteBit15(MSB)=外設(shè)端口停止(可控停止)Bit14=(984A,B,X) =擴(kuò)展內(nèi)存部分損壞Bit13=Bit12=不合法的外設(shè)Bit11Bit10=Bit9=RAMBit8=ByteBit7(MSB9)=Bit6=Bit5(984A,B,XCPUBit5(984)使用表線圈不正確Bit4=S908IO標(biāo)題壞Bit3=無效節(jié)點(diǎn)類型Bit2=Bit1=運(yùn)行方式下線Bit0=20(14Hex說查組或組的地址類型,每一組由一個(gè)單獨(dú)的“子請(qǐng)求”區(qū)定義,它包括7個(gè)字節(jié):器,尋址地址為0000-270FH(十進(jìn)制0000-9999)。 984-785AS-M785-032存用邏表擴(kuò)展內(nèi)存容最后文最后寄存器(十進(jìn)制0008984-785帶AS-M785-032內(nèi)存用邏表擴(kuò)展內(nèi)存容最后文最后寄存器(十進(jìn)制3帶擴(kuò)展寄存器的其它控制器,最后文件中的最后一個(gè)寄存器(最)如下擴(kuò)展內(nèi)存容最后文件最后一個(gè)寄存器(十進(jìn)制247FieldByteSub–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)圖35:讀通用類型寄21(15Hex說查組的地址,每一組由單獨(dú)的“子請(qǐng)求”區(qū)定義,它包括7個(gè)字節(jié): 984-785AS-M785-032存用邏表擴(kuò)展內(nèi)存容最后一個(gè)寄存器(十進(jìn)制0008984-785帶AS-M785-032內(nèi)存用邏表最后文3帶擴(kuò)展寄存器的其它控制器,最后文件中的最后一個(gè)寄存器(最)如下最后一個(gè)寄存器247FieldByteSub–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:寫通用類型寄存響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)圖37:寫通用類型寄存22(16Hex4X型寄說查ANDAnd_Mask)ORor_MaskANDAnd_Mask=Or_Mask=And_Mask=Result=FieldReferenceAddressHiAnd_MaskHiAnd_MaskLoOr_MaskHiOr–MaskErrorCheck(LRCor圖38掩碼寫入4X類型響FieldReferenceAddressHiAnd_MaskHiAnd_MaskLoOr_MaskHiOr–MaskErrorCheck(LRCor圖39掩碼寫入4X類型23(17Hex4X23(17Hex4X說查FieldReadReferenceAddressHiReadReferenceAddresstytoReadHitytoReadWriteReferenceAddressHiWriteReferenceAddresstytoWriteHitytoWriteByteCountWriteData1HiWriteData1LoWriteData2HiWriteData2LoWriteData3HiWriteData3ErrorCheck(LRCor圖40:讀/寫4X類型寄存器響FieldByteCountReadData1HiReadData1LoReadData2HiReadData2LoReadData3HiReadData3LoReadData4HiReadData4LoReadData5HiReadData5LoReadData6HiReadData6ErrorCheck(LRCor圖41:讀/寫4X寄存器24(18HexFIFO說查存器數(shù),跟在這地址后的是FIFO數(shù)據(jù)的寄存器。FieldFIFOPointerAddressHiFIFOPointerAddressLoErrorCheck(LRCor圖42:讀FIFO響FieldSlaveAddressByteCountHiByteCountLoFIFOCountHiFIFOCountFIFODataReg1HiFIFODataReg1LoFIFODataReg2HiFIFODataReg2LoFIFODataReg3HiFIFODataReg3ErrorCheck(LRCor圖43:讀FIFO查詢數(shù)據(jù)08說功能使用一個(gè)子功能代碼(2個(gè)字節(jié),定義試驗(yàn)的類型。正常響應(yīng)時(shí),從機(jī)返回功能代碼功能代碼。診斷對(duì)從機(jī)設(shè)備的查FieldSlaveAddressSubfunctionHiDataHiDataErrorCheck(LRCor圖44:診斷-查響FieldSlaveAddressSubfunctionHiDataHiDataErrorCheck(LRCor圖45:診斷-響其中“Y”為支持,“N代名YYYYYYYYYYYYYYYYYYYYYNNYYYYYYYYYYYYYYNNYYYYNNYYYYNNYYYYNNNYYYNNNYYYNNYYYYNNYYYYNNYNNNYNNNNNYNNNNNNNY注意返回查詢子功數(shù)據(jù)區(qū)(查詢數(shù)據(jù)(響應(yīng)00FF00H0000H子功能代數(shù)據(jù)區(qū)(查詢數(shù)據(jù)(響應(yīng)0000FF子功能代碼查詢數(shù)據(jù)區(qū) 00 00 寄存器數(shù)184/384診斷寄存 說01RunLight23456789診斷寄存說 584/984診斷寄存 說 884 說ModbusIOPModbusModbusIOPModbusOurbusIOP CUP改變ASCII輸入分隔子功能代碼查詢數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 CHAR 強(qiáng)置 00 00 10(0AH)計(jì)數(shù)器和診斷寄存器子功能代 查詢數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 484 說ParallelPortROM0000-07FF測(cè)試失ROM0800-0FFF測(cè)試失ROM1800-17FF測(cè)試失ROM0000-1FFF測(cè)試失RAM4000-40FF測(cè)試失RAM4100-41FF測(cè)試失RAM4200-42FF測(cè)試失RAM4300-43FF測(cè)試失584/984診斷寄存 說TrafficCopCPU/SolveNoEndofLogicNodedetected,ortyofendofsegmentwords(O)doesnotmatchtyofsegmentsconfiguredStartofNetwork(SON)didnotbeginBadOrderofSolveIllegalPeripheralDimAwarenessNotPeripheralPortStopExecuted,notan11(0BH)返回總線信 00 00 12(0CH)返回總線通訊錯(cuò) 00 00 CRC13(0DHex)返回總線不正常錯(cuò) 00 00 14(0EHex)返回從機(jī)信子功能代碼查詢數(shù)據(jù)區(qū) 00 00 15(0FHex)返回從機(jī)不響子功能代碼查詢數(shù)據(jù) 響應(yīng)數(shù)據(jù)00 00 16(10Hex)返回從機(jī)NAK 00 00 17(11Hex)從機(jī)返回子功能代碼查詢數(shù)據(jù)區(qū) 00 00 18(12Hex)返回總線字符超限子功能代碼查詢數(shù)據(jù)區(qū)響應(yīng)數(shù)據(jù)00 00 19(13Hex)返回IOP超限次數(shù)884IOP子功能代碼查詢數(shù)據(jù)區(qū)響應(yīng)數(shù)據(jù)00 00 20(14Hex)超限計(jì)數(shù)器和標(biāo)志清零 00 00 21(15Hex)獲取ModbusPlus的統(tǒng)計(jì)機(jī)設(shè)備中的確良Modbus+對(duì)等。處理器的統(tǒng)計(jì)數(shù),查詢時(shí)除功能代碼(08)功能代碼(0015H)外,還有一個(gè)2字節(jié)的操作功能代子功能代操00000000獲取統(tǒng)計(jì)響功能代子功能代操字節(jié) 數(shù)0000 00 00ModbusPlus統(tǒng) 含 12...14備用 [軟件版本(十六進(jìn)制\ 字位含 151位后,含義如下:字位含字位含若從機(jī)接收查詢,發(fā)現(xiàn)有(LRC或CRC)通訊錯(cuò)誤,并返回響應(yīng),此時(shí),依靠主機(jī)處理程序給出查詢超件不正常響應(yīng)信息有2個(gè)與正常響應(yīng)不相同的區(qū)域:功能代碼區(qū):正常響應(yīng)時(shí),從機(jī)的響應(yīng)功能代碼區(qū),帶原查詢的功能代碼。所有功能代碼的MSB為0(其值低于80H)。不正常響應(yīng)時(shí),從機(jī)把功能代碼的MSB置為1,使功能代碼值大于80H,高于正常響應(yīng)的值。這樣,主機(jī)應(yīng)用程序能識(shí)別不正常數(shù)據(jù)區(qū):1Slave2345No.ofCoils6No.ofCoils7EXCEPTION1Slave23Exception4圖46:主機(jī)發(fā)出查詢,從機(jī)不正常代碼名 含不合能代 從機(jī)接收的是一種不能執(zhí)行功能代碼。發(fā)出查詢命令后,該代碼指示無程序功能不合法數(shù)據(jù)地 接收的數(shù)據(jù)地址,是從機(jī)不允許的地址不合法數(shù) 查詢數(shù)據(jù)區(qū)的值是從機(jī)不允許的值從機(jī)設(shè)備故 從機(jī)執(zhí)行主機(jī)請(qǐng)求的動(dòng)作時(shí)出現(xiàn)不可恢復(fù)的錯(cuò)誤 從機(jī)設(shè)備忙 從機(jī)正忙于處理一個(gè)長(zhǎng)時(shí)程序命令,請(qǐng)求主機(jī)在從機(jī)空閑時(shí)發(fā)送信息 功說查響123456789功說查 響123456789處理順從機(jī)處理查詢數(shù)據(jù)。(C)Timing對(duì)J478modem,該時(shí)間約5ms。4584984A/B/XPLC應(yīng)用須波特率:Modbus1和端2大允許的波特率為19200端口:使 ASCII,要送“零數(shù)據(jù)長(zhǎng)度”的信息,或無設(shè)備地址的信息,如下為一個(gè)不合法信息:CR 附錄CLRCLRCLRC加一個(gè)新字符,會(huì)產(chǎn)生大于十進(jìn)制2559位,自動(dòng)放棄進(jìn)位。把LRC放入信息 47LRC字符順例unsignedchar sg unsignedshortusDataLen緩沖器中的字節(jié)數(shù)。該功能返回LRC作為一種類型“unsignedchar”。LRC產(chǎn)生staticunsignedcharLRC(au sg,usDataLen)unsignedchar*au sg;/*按信息的字節(jié)計(jì)算LRC*/unsignedshortusDataLen*按信息的字節(jié)計(jì)算LRC*/{unsignedcharuchLRC0/*初始化LRC*/while(usDataLen––)/*通過數(shù)據(jù)緩沖器*/uchLRC sg/*加緩沖器字節(jié)無進(jìn)位return((unsignedchar)(–((char)uchLRC))*返回二進(jìn)制補(bǔ)碼}CRC環(huán)冗余(若LSB為1):CRC寄存器與AoolH把CRC值放入信 圖48:CRC例 CRC例unsignedchar sg unsignedshortusDataLenCRC產(chǎn)生unsignedshortCRC16(pu sg,usDataLen)unsignedchar*pu sg/*按信息的字節(jié)數(shù)計(jì)算CRC*/unsignedshortusDataLen;/*tyofbytesinmessage{unsignedcharuchCRCHi0xFF*初始化高字節(jié)*/unsignedcharuchCRCLo0xFF*初始化低字節(jié)*/unsigneduIndex;/*把CRC表*/while(usDataLen*通過數(shù)據(jù)緩沖器{uIndex=uchCRCHi^*pu sgg+*計(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,0xC0,0x80,0x41,0x00,0xC1,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,}低位字節(jié)/*TableofCRCvaluesforlow–orderbyte*/staticcharauchCRCLo[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電梯門套安全性能提升與安裝合同2篇
- 2025年度個(gè)人教育培訓(xùn)貸款循環(huán)還款合同模板3篇
- 二零二五年度農(nóng)村土地流轉(zhuǎn)勞務(wù)合作合同2篇
- 二零二五版?zhèn)€人貸款合同電子簽名與存證技術(shù)規(guī)范4篇
- 二零二五年度高端彩色打印服務(wù)外包合同模板4篇
- 二零二五年度出租車企業(yè)財(cái)務(wù)審計(jì)合同3篇
- 二零二五年度出租車租賃行業(yè)車輛保險(xiǎn)代理服務(wù)合同2篇
- 2025年度個(gè)人照明設(shè)備租賃協(xié)議書4篇
- 2025版名筑印象住宅小區(qū)電梯運(yùn)行數(shù)據(jù)統(tǒng)計(jì)分析合同3篇
- 二零二五年度醫(yī)院眼科手術(shù)中心承包運(yùn)營(yíng)合同4篇
- 加強(qiáng)教師隊(duì)伍建設(shè)教師領(lǐng)域?qū)W習(xí)二十屆三中全會(huì)精神專題課
- 2024-2025學(xué)年人教版數(shù)學(xué)七年級(jí)上冊(cè)期末復(fù)習(xí)卷(含答案)
- 2024年決戰(zhàn)行測(cè)5000題言語理解與表達(dá)(培優(yōu)b卷)
- 四年級(jí)數(shù)學(xué)上冊(cè)人教版24秋《小學(xué)學(xué)霸單元期末標(biāo)準(zhǔn)卷》考前專項(xiàng)沖刺訓(xùn)練
- 2025年慢性阻塞性肺疾病全球創(chuàng)議GOLD指南修訂解讀課件
- (完整版)減數(shù)分裂課件
- 銀行辦公大樓物業(yè)服務(wù)投標(biāo)方案投標(biāo)文件(技術(shù)方案)
- 第01講 直線的方程(九大題型)(練習(xí))
- 微粒貸逾期還款協(xié)議書范本
- 人教版七年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)課時(shí)練習(xí)帶答案
- NBT 47013.4-2015 承壓設(shè)備無損檢測(cè) 第4部分:磁粉檢測(cè)
評(píng)論
0/150
提交評(píng)論