




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Modbus通訊協(xié)議RTU傳輸模式本說明僅做內(nèi)部參考,詳細(xì)請參閱英文版本.第一章 Modbus協(xié)議簡介Modbus協(xié)議是應(yīng)用于電子限制器上的一種通用語言.通過此協(xié)議,限制器相互之間、限制器經(jīng)由網(wǎng)絡(luò)例如以太網(wǎng)和其它設(shè)備之間可以通信.它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn).有 了它,不同廠商生產(chǎn)的限制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控.此協(xié)議定義了一個(gè)限制器能熟悉使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的.它描述了一限制器請求訪問其它設(shè)備的過程,如果回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯(cuò)誤并記錄.它制定了消息域格局和內(nèi)容的公共格式.當(dāng)在一 Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)限制器須要知道它們的設(shè)
2、備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動.如果需要回應(yīng),限制器將生成反應(yīng)信息并用 Modbus協(xié)議發(fā)出.在其它網(wǎng)絡(luò)上,包含了 Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀 或包結(jié)構(gòu).這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測的方法.協(xié)議在一根通訊線上使用應(yīng)答式連接半雙工,這意味著在一根單獨(dú)的通訊線上信號沿著相反的兩個(gè)方向傳輸.首先,主計(jì)算機(jī)的信號尋址到一臺唯一的終端設(shè)備從機(jī),然 后,在相反的方向上終端設(shè)備發(fā)出的應(yīng)答信號傳輸給主機(jī).協(xié)議只允許在主計(jì)算機(jī)和終端設(shè)備之間,而不允許獨(dú)立的設(shè)備之間的數(shù)據(jù)交換,這就不會在使它們初始化時(shí)占據(jù)通訊線路,而僅限于響應(yīng)到達(dá)本機(jī)的查詢信號
3、.1. 1傳輸方式傳輸方式是一個(gè)信息幀內(nèi)一系列獨(dú)立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)那么,以RTU模式在Modbus總線上進(jìn)行通訊時(shí),信息中的每8位字節(jié)分成2個(gè)4位16進(jìn)制的字符,每個(gè)信息必須連續(xù)傳輸下面定義了與Modebus協(xié)議-RTU方式相兼容的傳輸方式.代碼系統(tǒng) 8位二進(jìn)制,十六進(jìn)制數(shù) 0.9, A.F 消息中的每個(gè)8位域都是一個(gè)兩個(gè)十六進(jìn)制字符組成每個(gè)字節(jié)的位 1個(gè)起始位 8個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送 1個(gè)奇偶校驗(yàn)位,無校驗(yàn)?zāi)敲礋o 1個(gè)停止位有校驗(yàn)時(shí),2個(gè)Bit 無校驗(yàn)時(shí)錯(cuò)誤檢測域 CRC能環(huán)冗長檢測1.1.1 . 2 協(xié)議當(dāng)信息幀到達(dá)終端設(shè)備時(shí),它通過一個(gè)簡單的“口進(jìn)入尋址到的設(shè)備
4、,該設(shè)備去掉 數(shù)據(jù)幀的“信封數(shù)據(jù)頭,讀取數(shù)據(jù),如果沒有錯(cuò)誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后, 它將自己生成的數(shù)據(jù)參加到取得的“信封中,把數(shù)據(jù)幀返回給發(fā)送者.返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址Address 被執(zhí)行了的命令Function 執(zhí)行命令生成的被請求數(shù)據(jù)Data和一個(gè)校驗(yàn)碼Check.發(fā)生任何錯(cuò)誤都不會有成功的響應(yīng).1. 2. 1 信息幀AddressFunctionDataCheck8-Bits8-BitsN x 8-Bits16-Bits圖1 -1 .信息幀格式特注:Modbus信息幀所允許的最大長度為256個(gè)字節(jié),即N的范圍是大于等于零且小于等于 252 N0 , 252
5、.即,所有的數(shù)據(jù)一共 256個(gè),數(shù)據(jù)剩下253個(gè).1.1.2 地址Address域信息幀地址域信息地址在幀的開始局部,由 8位組成,有效的從機(jī)設(shè)備地址范圍 0-247十進(jìn)制,各從機(jī)設(shè)備的尋址范圍為1-247.主機(jī)把從機(jī)地址放入信息幀的地址區(qū),并向從機(jī)尋址.從機(jī)響應(yīng)時(shí),把自己的地址放入響應(yīng)信息的地址區(qū),讓主機(jī)識別已作出響應(yīng)的從機(jī)地址.地址0為播送地址,所有從機(jī)均能識別.當(dāng)Modbus協(xié)議用于高級網(wǎng)絡(luò)時(shí),那么不允許廣播或其它方式替代.1.1.3 功能Function域信息幀功能域代碼告訴了被尋址到的終端 執(zhí)行何種功能.有效碼范圍1-225十進(jìn)制, 有些代碼是適用于所有限制器, 有些適應(yīng)于某種限制器
6、,還有些保存以備后用.有關(guān)功能代 替碼的全部內(nèi)容見附錄Ao當(dāng)主機(jī)向從句發(fā)送信息時(shí),功能代碼向從機(jī)說明應(yīng)執(zhí)行的動作.如讀一組離散式線圈或輸入信號的ON/OFF狀態(tài),讀一組存放器的數(shù)據(jù),讀從機(jī)的診斷狀態(tài),寫線圈或存放器,允許下截、記錄、確認(rèn)從機(jī)內(nèi)的程序等.當(dāng)從機(jī)響應(yīng)主機(jī)時(shí),功能代碼可說明從機(jī)正常響應(yīng) 或出現(xiàn)錯(cuò)誤即不正常響應(yīng),正常響應(yīng)時(shí),從句簡單返回原始功能代碼;不正常響應(yīng)時(shí),從 機(jī)返回與原始代碼相等效的一個(gè)碼,并把最高有效位設(shè)定為“1.如,主機(jī)要求從機(jī)讀一組保持存放器時(shí),那么發(fā)送信息的功能碼為:0000 0011 十六進(jìn)制03假設(shè)從機(jī)正確接收請求的動作信息后,那么返回相同的代碼值作為正常響應(yīng).發(fā)現(xiàn)
7、錯(cuò)時(shí),那么返回一個(gè)不正常響信息:1000 0011十六進(jìn)制 83從機(jī)對功能代碼作為了修改,此外,還把一個(gè)特殊碼放入響應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機(jī)出現(xiàn)的錯(cuò)誤類型和不正常響應(yīng)的原因,不正常響應(yīng)見附錄Bo主機(jī)設(shè)備的應(yīng)用程序負(fù)責(zé)處理不正常響應(yīng),典型處理過程是主機(jī)把對信息的測試和診斷送給從機(jī),并通知操作者.表1 - 1列出了所有設(shè)備常用的功能碼、它們的意義及它們的初始功能.表1 - 1常用功能碼代碼名稱作用01讀取線圈狀態(tài)取得一組邏輯線圈的當(dāng)前狀態(tài)ON/OFF02讀取輸入狀態(tài)取得一組開關(guān)輸入的當(dāng)前狀態(tài)ON/OFF03讀取保持存放器在一個(gè)或多個(gè)保持存放器中取得當(dāng)前的二進(jìn)制值04讀取輸入存放器在一個(gè)或多個(gè)輸入
8、存放器中取得當(dāng)前的二進(jìn)制值05強(qiáng)置單線圈強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài)06預(yù)置單存放器放置一個(gè)特定的二進(jìn)制值到一個(gè)單存放器中07讀取異常狀態(tài)取得8個(gè)內(nèi)部線圈的通斷狀態(tài)15強(qiáng)置多線圈強(qiáng)置串連續(xù)邏輯線圈的通斷16預(yù)置多存放器放置一系列特定的二進(jìn)制值到一系列多存放器中17報(bào)告從機(jī)標(biāo)識可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈的狀態(tài)1.2.4 數(shù)據(jù)域數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時(shí)采集到的數(shù)據(jù).這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者極限值. 他由數(shù)據(jù)區(qū)有2個(gè)16進(jìn)制的數(shù)據(jù)位2的8次方256,數(shù)據(jù)范圍為00-FF16進(jìn)制.例如:功能域碼告訴終端讀取一個(gè)存放器,數(shù)據(jù)域那么需要指明從
9、哪個(gè)存放器開始及讀取多少個(gè)數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機(jī)之間的不同水平而有所不同.假設(shè)無錯(cuò)誤出現(xiàn),從機(jī)向主機(jī)的響應(yīng)信息中包含了請求數(shù)據(jù),假設(shè)有錯(cuò)誤出現(xiàn),那么數(shù)據(jù)中有一個(gè)不正常代碼,使主機(jī)能判斷并作出下一步的動作.數(shù)據(jù)區(qū)的長度可為“零以表示某類信息.1. 2. 5 錯(cuò)誤校驗(yàn)域該域允許主機(jī)和終端檢查傳輸過程中的錯(cuò)誤.有時(shí),由于電噪聲和其它干擾, 一組數(shù)據(jù)在從一個(gè)設(shè)備傳輸?shù)搅硪粋€(gè)設(shè)備時(shí)在線路上可能會發(fā)生一些改變,出錯(cuò)校驗(yàn)?zāi)軌虮WC主機(jī)或者終端不去響應(yīng)那些傳輸過程中發(fā)生了改變的數(shù)據(jù),這就提升了系統(tǒng)的平安性和效率, 出錯(cuò)校驗(yàn)使用了 16位循環(huán)冗余的方法,即 CRC校驗(yàn).錯(cuò)誤檢測域包含一 16Bits
10、值用兩個(gè)8位的字符來實(shí)現(xiàn).錯(cuò)誤檢測域的內(nèi)容是通過對消 息內(nèi)容進(jìn)行循環(huán)冗長檢測方法得出的.CRC域附加在消息的最后,添加時(shí)先是低字節(jié)然后是高字節(jié).故CRC的高位字節(jié)是發(fā)送消息的最后一個(gè)字節(jié).1. 2. 6 字符的連續(xù)傳輸當(dāng)消息在標(biāo)準(zhǔn)的 Modbus系列網(wǎng)絡(luò)傳輸時(shí),每個(gè)字符或字節(jié)按由左到右的次序方式發(fā)送: 最低有效位LSB .最高有效位MSB.位的序列是:有奇偶校驗(yàn)啟始位12345678奇偶位停止位無奇偶校驗(yàn)啟始位12345678停止位停止位圖1 - 2 . 位順序RTU1 . 3錯(cuò)誤檢測1、奇偶校驗(yàn)用戶可以配置限制器是奇或偶校驗(yàn),或無校驗(yàn).這將決定了每個(gè)字符中的奇偶校驗(yàn)位是 如何設(shè)置的.如果指定
11、了奇或偶校驗(yàn),“1的位數(shù)將算到每個(gè)字符的位數(shù)中ASCII模式7個(gè)數(shù)據(jù)位,RTU中8個(gè)數(shù)據(jù)位.例如 RTU字符幀中包含以下 8個(gè)數(shù)據(jù)位:1 1 0 0 0 1 0 1整個(gè)“ 1的數(shù)目是4個(gè).如果便用了偶校驗(yàn),幀的奇偶校驗(yàn)位將是0,便得整個(gè)“ 1的個(gè)數(shù)仍是4個(gè).如果便用了奇校驗(yàn),幀的奇偶校驗(yàn)位將是1,便得整個(gè)“ 1的個(gè)數(shù)是5個(gè).如果沒有指定奇偶校驗(yàn)位,傳輸時(shí)就沒有校驗(yàn)位,也不進(jìn)行校驗(yàn)檢測.代替一附加的停 止位填充至要傳輸?shù)淖址麕?2、CRC檢測RTU方式時(shí),采用CRC方法計(jì)算錯(cuò)誤校驗(yàn)碼,CRC校驗(yàn)傳送的全部數(shù)據(jù). 它忽略信息 中單個(gè)字符數(shù)據(jù)的奇偶校驗(yàn)方法.循環(huán)冗余校驗(yàn)CRC域占用兩個(gè)字節(jié),包含了
12、一個(gè) 16位的二進(jìn)制值.CRC值由傳送 設(shè)備計(jì)算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時(shí)重新計(jì)算CRC值,然后與接收到的CRC域中的值進(jìn)行比擬,如果這兩個(gè)值不相等,就發(fā)生了錯(cuò)誤.CRC開始時(shí)先把存放器的 16位全部置成“ 1,然后把相鄰2個(gè)8位字節(jié)的數(shù)據(jù)放入當(dāng) 前存放器中,只有每個(gè)字符的8位數(shù)據(jù)用作產(chǎn)生 CRC,起始位,停止位和奇偶校驗(yàn)位不加至ij CRC中.在生成CRC時(shí),每個(gè)8位字節(jié)與存放器中的內(nèi)容進(jìn)行異或,然后將結(jié)果向低位移位, 高位那么用“ 0補(bǔ)充,最低位LSB移出并檢測,如果是 1,該存放器就與一個(gè)預(yù)設(shè)的固 定值進(jìn)行一次異或運(yùn)算,如果最低位為0,不作任何處理.上述處理重復(fù)進(jìn)行,
13、知道執(zhí)行完了 8次移位操作,當(dāng)最后一位第 8位移完以后,下 一個(gè)8位字節(jié)與存放器材的當(dāng)前值進(jìn)行異或運(yùn)算, 同樣進(jìn)行上述的另一個(gè) 8次移位異或操作, 當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是CRC值.生成一個(gè)CRC的流程為:1、 預(yù)置一個(gè)16位存放器為0FFFFH 全1,稱之為CRC存放器.2、 把數(shù)據(jù)幀中的第一個(gè) 8位字節(jié)與CRC存放器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC存放器.3、 將CRC存放器向右移一位,最高位填以 0,最低位移出并檢測.4、 如果最低位為0:重復(fù)第3步下一次移位.如果最低位為1:將CRC存放器與一個(gè)預(yù)設(shè)的固定值0A001H進(jìn)行異或運(yùn)算.5、 重復(fù)第3步和第4步
14、直到8次移位.這樣處理完了一個(gè)完整的八位.6、 重復(fù)第2步到第5步來處理下一個(gè)八位,直到所有的字節(jié)處理結(jié)束.7、 最終CRC存放器得值就是 CRC的值.CRC值附加到信息時(shí),低位在先,高位在后.查閱 附錄C中的一個(gè)實(shí)例,它詳細(xì)說明 了 CRC的校驗(yàn).第二章 Modbus數(shù)據(jù)和限制功能詳解Modbus信息中的所有數(shù)據(jù)地址以零作為基準(zhǔn),各項(xiàng)數(shù)據(jù)的第一個(gè)數(shù)據(jù)地址的編號為0.假設(shè)無特殊說明在此節(jié)文中用十進(jìn)制值表示,圖中的數(shù)據(jù)區(qū)那么用十六進(jìn)制表示.圖2-1為一個(gè)例子,說明了 Modbus的查詢信息,圖 2-2為正常響應(yīng)的例子,這兩例 子中的數(shù)據(jù)均是16進(jìn)制的,也表示了以 RTU方式構(gòu)成數(shù)據(jù)幀的方法.主機(jī)
15、查詢是讀保持存放器 ,被請求的從機(jī)地址是 06,讀取的數(shù)據(jù)來自地址40108保持寄有器.注意,該信息規(guī)定了存放器的起始地址為0107 006BH o從機(jī)響應(yīng)返回該功能代碼,說明是正常響應(yīng),字節(jié)數(shù)" Byle count中說明有多少個(gè) 8 位字節(jié)被返回.它說明了附在數(shù)據(jù)區(qū)中8位字節(jié)的數(shù)量,當(dāng)在緩沖區(qū)組織響應(yīng)信息時(shí),“字節(jié)數(shù)區(qū)域中的值應(yīng)與該信息中數(shù)據(jù)區(qū)的字節(jié)數(shù)相等.如RTU方式時(shí),63H用一個(gè)字節(jié)01100011發(fā)送.8個(gè)位為一個(gè)單位計(jì)算“字節(jié)數(shù),它忽略了信息幀用組成的方法.AddrFunData start reg hiData start reg loData #of regs hi
16、Data #of regs loCRC16 hiCRC16 lo06H03H00H6BH00H01HXXHXXH圖2 T Modbus的查詢信息AddrFunByte countData1 hiData1 LoData 2 hiData2 loData3 hiData3 loCRC16 hiCRC16 lo06H03H06H02H2BH00H00H00H63HXXHXXH圖2 - 2 Modbus的響應(yīng)信息2. 1讀取線圈狀態(tài)功能碼01讀取從機(jī)離散量輸出口 DO,0X類型的ON/OFF狀態(tài),不支持播送.查詢查詢信息規(guī)定了 要讀的起始線圈和線圈量, 線圈的起始地址為 0000H, 1-16個(gè)線圈
17、的尋址地址分為 0000H -0015H DO1=0000H, DO2=0001H ,依此類推.圖2 - 3的例子是從地址為 17的從機(jī)讀取DO1至DO6的狀態(tài).AddrFunDO start reg hiDO start reg loDO #of regs hiDO #of regs loCRC16 hiCRC16 lo11H01H00H00H00H06HXXHXXH圖2 - 3讀取線圈狀態(tài)-查詢響應(yīng)響應(yīng)信息中的各線圈的狀態(tài)與 數(shù)據(jù)區(qū)的每一位的值相對應(yīng),即每個(gè) DO占用一位1 = ON, 0 = OFF,第一個(gè)數(shù)據(jù)字節(jié)的 LSB為查詢中的尋址地址,其他的線圈按順序在該字節(jié) 中由低位向高位排列
18、,直至8個(gè)為止,下一個(gè)字節(jié)也是從低位向高位排例.假設(shè)返回的線圈數(shù)不是8的倍數(shù),那么在最后的數(shù)據(jù)字節(jié)中的剩余位至字節(jié)的最高位全部填0,字節(jié)數(shù)區(qū)說明全部數(shù)據(jù)的字節(jié)數(shù).圖2 -4所示為線圈的輸出狀態(tài)響應(yīng)的實(shí)例.AddrFunByte countDataCRC16 hiCRC16 lo11H01H01H2AHXXHXXH數(shù)據(jù)000000DO2DO1MSB765432LSB圖2 -4讀取線圈狀態(tài)-響應(yīng)2. 2讀取輸入狀態(tài)功能碼02讀取從機(jī)離散量 輸入信號DI,0X類型的ON/OFF狀態(tài),不支持播送.查詢查詢信息規(guī)定了要讀的輸入起始地址,以及輸入信號的數(shù)量.輸入的起始地址為0000H ,1-16個(gè)輸入口的
19、地址分別為 0-15 DO1=0000H , DO2=0001H ,依此類推.圖2 - 5的例子是從地址為 17的從機(jī)讀取DI1到DI16的狀態(tài).AddrFunDI start addr hiDI start addr loDI num hiDI num loCRC16 hiCRC16 lo11H02H00H00H00H10HXXHXXH圖2 - 5讀取輸入狀態(tài)-查詢響應(yīng)響應(yīng)信息中的各輸入口的狀態(tài),分別對應(yīng)于 數(shù)據(jù)區(qū)中的每一位值,1 = ON; 0 = OFF ,第一個(gè)數(shù)據(jù)字節(jié)的LSB為查詢中的尋址地址,其他輸入口按順序在該字節(jié)中由低位向高位排 列,直至8個(gè)位為止.下一個(gè)字節(jié)中的8個(gè)輸入位也是
20、從低位到高位排列.假設(shè)返回的輸入位數(shù)不是8的倍數(shù),那么在最后的數(shù)據(jù)字節(jié)中的剩余位直至字節(jié)的最高位全部填零.字節(jié)數(shù)區(qū)說明了全部數(shù)據(jù)的字節(jié)數(shù).圖2 -6所示為讀數(shù)字輸出狀態(tài)響應(yīng)的實(shí)例.AddrFunByte countData1Data2CRC16 hiCRC16 lo11H02H02H33HCCHXXHXXH數(shù)據(jù)1DI8DI7DI6DI5DI4DI3DI2DI1MSBLSB2DI16DI15DI14DI13DI12DI11DI10DI9MSBLSB圖2 - 6讀取輸入狀態(tài)-響應(yīng)2. 3讀取保持存放器功能碼03讀取從機(jī)保持存放器4X類型的二進(jìn)制數(shù)據(jù),不支持播送.查詢查詢信息規(guī)定了要讀的保持存放器起
21、始地址及保持存放器的數(shù)量,保持存放器尋址起始地址為0000H ,存放器1-16所對應(yīng)的地址分別為 0000H -0015Ho圖2 - 7的例子是從17號從機(jī)讀3個(gè)采集到的根本數(shù)據(jù) U1、U2、U3,U1的地址為0000H, U2的地址為 0001H, U3的地址為 0002H oAddrFunData start addr hiData start addr loData #of regs hiData #of regs loCRC16 hiCRC16 lo11H03H00H00H00H03HXXHXXH圖2 - 7讀取保持存放器-查詢響應(yīng)響應(yīng)信息中的存放器數(shù)據(jù)為二進(jìn)制數(shù)據(jù),每個(gè)存放器分別對應(yīng)
22、2個(gè)字節(jié),第一個(gè)字節(jié)為高位值數(shù)據(jù),第二個(gè)字節(jié)為低位數(shù)據(jù).圖 2 - 8 的例子是讀取 U1,U2,U3U1=03E8H,U2=03E7H,U3=03E9H的響應(yīng).AddrFunByte countData1 hiData1 LoData 2 hiData2 loData3 hiData3 loCRC16 hiCRC16 lo11H03H06H03HE8H03HE7H03HE9HXXHXXH圖2 - 8讀取保持存放器-響應(yīng)2.4 讀取輸入存放器功能碼04讀取從機(jī)輸入存放器3X類型中的二進(jìn)制數(shù)據(jù),不支持播送.查詢查詢信息規(guī)定了要讀的存放器的起始地址及存放器的數(shù)量,尋止起始地址為0,存放器1-16所
23、對應(yīng)的地址分別為 0000H -0015Ho圖2 - 9的例子是請求17號從機(jī)的0009存放器.AddrFunDO addr hiDO addr loData #of regs hiData #of regs loCRC16 hiCRC16 lo11H04H00H08H00H01HXXHXXH圖2 - 9讀取輸入存放器-查詢響應(yīng)響應(yīng)信息中的存放器數(shù)據(jù)為每個(gè)存放器分別對應(yīng)2個(gè)字節(jié),第一個(gè)字節(jié)為高位數(shù)據(jù),第二個(gè)字節(jié)為低位數(shù)據(jù).圖2 -10的例子存放器30009中的數(shù)據(jù)用000AH 2個(gè)字節(jié)表示.AddrFunByte countData hiData LoCRC16 hiCRC16 lo11H04
24、H02H00H0AHXXHXXH圖2 - 10讀取輸入存放器-響應(yīng)2.5 強(qiáng)置單線圈功能碼05強(qiáng)制單個(gè)線圈DO, 0X類型為ON或OFF狀態(tài),播送時(shí),該功能可強(qiáng)制所有從機(jī)中 同一類型的線圈均為 ON或OFF狀態(tài).該功能可越過限制器內(nèi)存的保護(hù)狀態(tài)和線圈的禁止?fàn)顟B(tài).線圈強(qiáng)制狀態(tài)一直保持有效直至下一個(gè)限制邏輯作用于線圈為止.限制邏輯中無線圈程序時(shí),那么線圈處于強(qiáng)制狀態(tài).查詢查詢信息規(guī)定了需要強(qiáng)制一個(gè)單獨(dú)線圈的類型,線圈的起始地址為0000H , 1-16個(gè)線圈的尋址地址分為 0000H -0015H DO1=0000H, DO2=0001H ,依此類推.由查詢數(shù)據(jù)區(qū)中的一個(gè)常量,規(guī)定被請求線圈的ON
25、/OFF狀態(tài), FF00H值請求線圈處于ON狀態(tài),0000H值請求線圈處于 OFF狀態(tài),其它值對線圈無效,不起作用.圖示2-11的例子是請求17號從機(jī)開DO1的On狀態(tài).AddrFunDO addr hiDO addr loValue hiValue loCRC16 hiCRC16 lo11H05H00H00HFFH00HXXHXXH圖示2-11強(qiáng)制單線圈-查詢響應(yīng)圖2 -12所示為對這個(gè)命令請求的正常響應(yīng)是在DO狀態(tài)改變以后傳送接收到的數(shù)據(jù).AddrFunDO addr hiDO addr loValue hiValue loCRC16 hiCRC16 lo11H05H00H00HFFH00
26、HXXHXXH圖示2-12強(qiáng)制單線圈-響應(yīng)2. 6預(yù)置單存放器功能碼06把一個(gè)值預(yù)置到一個(gè)保持存放器 4X類型中,播送時(shí),該功能把值預(yù)置到 所有從機(jī) 的相同類型的存放器中.該功能可越過限制器的內(nèi)存保護(hù).使存放器中的預(yù)置值保持有效. 只能由限制器的下一個(gè)邏輯信號來處理該預(yù)置值.假設(shè)限制邏輯中無存放器程序時(shí),那么存放器中的值保持不變.查詢查詢信息規(guī)定了要預(yù)置存放器的類型,存放器尋址起始地址為0000H ,存放器1所對應(yīng)的地址為0000H o圖示2-13的例子是請求17號從機(jī)0040H.的值為2717.AddrFunData start reg hiData start reg loValue hi
27、Value loCRC hiCRC lo11H06H00H40H0A卜9DHXXHXXH圖示2-13預(yù)設(shè)單存放器-查詢響應(yīng)圖2 -14所示對于預(yù)置單存放器請求的正常響應(yīng)是在存放器值改變以后 將接收到的數(shù)據(jù)傳送回去.AddrFunData start reg hiData start reg loValue hiValue loCRC hiCRC lo11H06H00H40H0A卜9DHXXHXXH圖小2-14預(yù)設(shè)單奇存器響應(yīng)2. 7讀取異常狀態(tài)功能碼7讀從中機(jī)中8個(gè)不正常狀態(tài)線圈的數(shù)據(jù),某些線圈號已在不同型號的限制器中預(yù)定義,而其它的線圈由用戶編程,作為有關(guān)限制器的狀態(tài)信息,如“ machin
28、e ON/OFF",“heads retraced,縮回標(biāo)題,asafeties satisfied平安性滿意,“error conditions "存在錯(cuò)誤條件或其它用戶定義的標(biāo)志等.該功能碼不支持播送.該功能代碼為存取該類信息提供了一種簡單的方法,不正常線圈的類型是的在功限制器型號線圈設(shè)定M84,184/384,584,9841-8用戶定義484257電池狀態(tài)258-264用戶定義884761電池狀態(tài)762內(nèi)存保護(hù)狀態(tài)763R10工況狀態(tài)764-768用戶預(yù)定義能代碼中不需要線圈類型預(yù)定義的不正常線圈號如下:查詢圖示2-15的例子是請求讀從機(jī)設(shè)備AddrFunCRC16
29、 hiCRC16 lo11H07HXXHXXH17中的不正常狀態(tài).圖示2-15讀取異常狀態(tài)-查詢響應(yīng)正常響應(yīng)包含 8個(gè)不正常的線圈狀態(tài),為一個(gè)數(shù)據(jù)字節(jié),每個(gè)線圈一位.LSB對應(yīng)為最低線圈類型的狀態(tài).圖2 -16所示按查詢要求返回響應(yīng):AddrFunDO DataCRC16 hiCRC16 lo11H07H6DHXXHXXH圖示2-16讀取異常狀態(tài)-響應(yīng)該例子中,線圈數(shù)據(jù)為 6DH 二進(jìn)制0110 ,1101,從左到右最高位至最低位的線圈 狀態(tài)分別為:OFF - ON - ON - OFF - ON - ON - OFF - ON.假設(shè)限制器型號為 984,這 些位表示線圈 8至1的狀態(tài);假設(shè)限
30、制器型號為 484那么表示線圈264至257的狀態(tài).2. 8強(qiáng)置多線圈功能碼15按線圈的順序把各線圈 DO, 0X類型強(qiáng)制成 ON或OFF.播送時(shí),該功能代碼可 對各從機(jī)中相同類型的線圈起強(qiáng)制作用.該功能代碼可越過內(nèi)存保護(hù)和線圈的禁止?fàn)顟B(tài)線圈.保持強(qiáng)制狀態(tài)有效,并只能由限制器的下一個(gè)邏輯來處理.假設(shè)無線圈限制邏輯程序時(shí),線圈將保持強(qiáng)制狀態(tài).查詢查詢信息規(guī)定了被強(qiáng)制線圈的類型,線圈的起始地址為 0000H , 1-16個(gè)線圈的尋址地址分為 0000H -0015H DO1=0000H , DO2=0001H ,依此類推.查詢數(shù)據(jù)區(qū)規(guī)定了被請求線圈的ON/OFF狀態(tài),如數(shù)據(jù)區(qū)的某位值為 “1表示請
31、求的相應(yīng)線圈狀態(tài)為 ON,位值為“ 0",那么為OFF狀態(tài).圖示2-17例子為請求從機(jī)設(shè)備17中一組10個(gè)線圈為強(qiáng)制狀態(tài),起始線圈為 20 那么尋址地址為 19或13H,查詢的數(shù)據(jù)為 2個(gè)字節(jié),CD01H 二進(jìn)制11001101 0000 0001相 應(yīng)線圈的二進(jìn)制位排列如下:Bit:1100110100000001Coll:2726252423222120-2928傳送的第一個(gè)字節(jié)CDH對應(yīng)線圈為 27-20, LSB對應(yīng)線圈 20,傳送的第二個(gè)字節(jié)為01H,對應(yīng)的線圈為29-28, LSB為繼圈28,其余未使用的位均填“ 0.AddrFunDO addr hiDO addr lo
32、Data #of reg hiData #of reg loByte countValue hiValue loCRC hiCRC lo11H0FH00H13H00H0AH02HCDH01HXXHXXH圖示2-17強(qiáng)置多線圈-查詢響應(yīng)正常響應(yīng)返回從機(jī)地址,功能代碼,起始地址以及強(qiáng)制線圈數(shù). 圖2 -18對上述查詢返回的響應(yīng).AddrFunDO addr hiDO addr loData #of reg hiData #of reg loCRC16 hiCRC16 lo11H0FH00H13H00H0AHXXHXXH圖示2-18強(qiáng)置多線圈-響應(yīng)2. 9預(yù)置多存放器功能碼16把數(shù)據(jù)按順序預(yù)置到各
33、4X類型存放器中,播送時(shí)該功能代碼可把數(shù)據(jù)預(yù)置到全部 從機(jī)中的相同類型的存放器中.該功能代碼可越過限制器的內(nèi)存保護(hù), 在存放器中的預(yù)置值一直保持有效, 只能由限制 器的下一個(gè)邏輯來處理存放器的內(nèi)容, 限制邏輯中無該存放器程序時(shí), 那么存放器中的值保持 不變.查詢查詢信息規(guī)定了要預(yù)置存放器的類型,存放器尋址起始地址為 0000H ,存放器1所對應(yīng)的地址為0000H o圖示2-19的例子是請求17號從機(jī)0040H.的值為178077833.AddrFunData start reg hiData start reg loData #of reg hiData #of reg loByte coun
34、tValue hiValue loValue hiValue loCRC hiCRC lo11H10H00H40H00H02H04H40H89H0A卜1 9DHXXHXXH圖示2-19預(yù)設(shè)多存放器-查詢響應(yīng)圖2 - 20所示對于預(yù)置單存放器請求的正常響應(yīng)是在存放器值改變以后將接收到的數(shù) 據(jù)傳送回去.AddrFunData start reg hiData start reg loData #of reg hiData #of reg loCRC16 hiCRC16 lo11H10H00H40H00H02HXXHXXH圖小2-20預(yù)設(shè)多奇存器響應(yīng)2. 10報(bào)告從機(jī)標(biāo)識功能碼17返回一個(gè)從機(jī)地址限
35、制器的類型,從機(jī)的當(dāng)前狀態(tài),以及有關(guān)從機(jī)的其他說明,不支 持播送.查詢圖示2-21的例子是請求報(bào)告從機(jī)設(shè)備17的標(biāo)識ID和狀態(tài).AddrFunCRC16hiCRC16lo11H11HXXHXXH圖示2-21報(bào)告從機(jī)標(biāo)識-查詢響應(yīng)圖2 -22所示正常響應(yīng)格式,數(shù)據(jù)內(nèi)容對應(yīng)每臺限制器的類型.AddrFunByte CountSlave idRun Indicator StatusAdditfional DataCRC16 hiCRC16 lo11H11HXXHXXHXXHXXHXXHXXH圖示2-22報(bào)告從機(jī)標(biāo)識-響應(yīng)從機(jī)ID總結(jié)數(shù)據(jù)區(qū)第一個(gè)字節(jié)為Modicon限制器返回的從機(jī) IDSlave I
36、DController0Micro 841 4842 184/3843 5848 8849 984特注:詳細(xì)信息見 Modbus協(xié)議英文版或中文版.第三章附錄附錄A : MODBUS全部功能碼ModBus網(wǎng)絡(luò)是一個(gè)工業(yè)通信系統(tǒng),由帶智能終端的可編程序限制器和計(jì)算機(jī)通過公用線 路或局部專用線路連接而成.其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件.它可應(yīng)用于各種數(shù)據(jù)采 集和過程監(jiān)控.下表 3-1是ModBus的功能碼定義.表3-1 ModBus功能碼功能碼名稱作用01讀取線圈狀態(tài)取小一組邏輯線圈的當(dāng)前狀態(tài)ON/OFF)02讀取輸入狀態(tài)取小一組開關(guān)輸入的當(dāng)前狀態(tài)ON/OFF)03讀取保持存放器在一個(gè)或多個(gè)保持
37、存放器中取得當(dāng)前的二進(jìn)制值04讀取輸入存放器在一個(gè)或多個(gè)輸入存放器中取得當(dāng)前的二進(jìn)制值05強(qiáng)置單線圈強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài)06預(yù)置單存放器把具體二進(jìn)值裝入一個(gè)保持存放器07讀取異常狀態(tài)取彳導(dǎo)8個(gè)內(nèi)部線圈的通斷狀態(tài),這 8個(gè)線圈的地址由 限制器決定,用戶邏輯可以將這些線圈定義,以說明 從機(jī)狀態(tài),短報(bào)文適宜于迅速讀取狀態(tài)08回送診斷校驗(yàn)把診斷校驗(yàn)報(bào)文送從機(jī),以對通信處理進(jìn)行評鑒09編程只用于484使主機(jī)模擬編程器作用,修改PC從機(jī)邏輯10控詢只用于484可使主機(jī)與f正在執(zhí)行長程序任務(wù)從機(jī)通信,探詢該從機(jī)是否已完成其操作任務(wù),僅在含有功能碼9的報(bào)文發(fā)送后,本功能碼才發(fā)送11讀取事件計(jì)數(shù)可使主機(jī)發(fā)
38、出單詢問,并隨即判定操作是否成功,尤 其是該命令或其他應(yīng)答產(chǎn)生通信錯(cuò)誤時(shí)12讀取通信事件記錄可是主機(jī)檢索每臺從機(jī)的ModBus事務(wù)處理通信事件記錄.如果某項(xiàng)事務(wù)處理完成,記錄會給出有關(guān)錯(cuò)誤13編程(184/384 484 584)可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯14探詢(184/384 484 584)可使土機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信,定期控詢該從機(jī)是否已完成其程序操彳僅在含有功能13的報(bào)文發(fā)送后,本功能碼才得發(fā)送15強(qiáng)置多線圈強(qiáng)置一串連續(xù)邏輯線圈的通斷16預(yù)置多存放器把具體的二進(jìn)制值裝入一串連續(xù)的保持存放器17報(bào)告從機(jī)標(biāo)識可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈 的狀態(tài)18(884
39、 和 MICRO 84 )可使主機(jī)模擬編程功能,修改PC狀態(tài)邏輯19重置通信鏈路發(fā)生非可修改錯(cuò)誤后,是從機(jī)復(fù)位于狀態(tài),可重 置順序字節(jié)20讀取通用參數(shù)584L顯示擴(kuò)展存儲器文件中的數(shù)據(jù)信息21寫入通用參數(shù)584L把通用參數(shù)寫入擴(kuò)展存儲文件,或修改之22 64保存作擴(kuò)展功能備用65 72保存以備用戶功能所 用留作用戶功能的擴(kuò)展編碼73119非法功能120127保存留作內(nèi)部作用128255保存用于異常應(yīng)答ModBus網(wǎng)絡(luò)只是一個(gè)主機(jī),所有通信都由他發(fā)出.網(wǎng)絡(luò)可支持247個(gè)之多的遠(yuǎn)程附屬控 制器,但實(shí)際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定.采用這個(gè)系統(tǒng),各PC可以和中央主機(jī)交換信息而不影響各 PC執(zhí)行
40、本身的限制任務(wù).表 3-2是ModBus各功能碼對應(yīng)的數(shù)據(jù)類 型.表3-2 ModBus功能碼與數(shù)據(jù)類型對應(yīng)表代碼功能數(shù)據(jù)類型01讀位02讀位03讀整型、字符型、狀態(tài)字、浮點(diǎn)型04讀整型、狀態(tài)字、浮點(diǎn)型05寫位06寫整型、字符型、狀態(tài)字、浮點(diǎn)型08N/A重復(fù)“回路反應(yīng)信息15寫位16寫整型、字符型、狀態(tài)字、浮點(diǎn)型17讀字符型附錄B:不正常響應(yīng)不正常響應(yīng):除播送外,主機(jī)向從機(jī)設(shè)備發(fā)送查詢并希望有一個(gè)正常響應(yīng),主機(jī)查詢中有可能產(chǎn)生4種事件:從機(jī)接收查詢,通訊錯(cuò)誤正常處理信息,那么返回一個(gè)正常響應(yīng)事件.由于通訊出錯(cuò),從機(jī)不能接收查詢數(shù)據(jù),因而不返回響應(yīng).此時(shí),主機(jī)依靠處理程序給 出查詢超時(shí)事件.假設(shè)
41、從機(jī)接收查詢,發(fā)現(xiàn)有 LRC或CRC通訊錯(cuò)誤,并返回響應(yīng),此時(shí),依靠主機(jī)處理 程序給出查詢超時(shí)事件.從機(jī)接收查詢,無通訊錯(cuò)誤,但無法處理如讀不存在的線圈和存放器 時(shí),向主機(jī)報(bào)告 錯(cuò)誤的性質(zhì).不正常響應(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)用程序能識別不正常響應(yīng)事件,能檢查不正 常代碼的數(shù)據(jù)區(qū).數(shù)據(jù)區(qū):正常響應(yīng)中,數(shù)據(jù)區(qū)含有 按查詢要求給出的數(shù)據(jù)或統(tǒng)計(jì)值,在不正常響應(yīng) 中,數(shù)據(jù)區(qū)為一個(gè)不正常代碼
42、,它說明從機(jī)產(chǎn)生不正常響應(yīng)的條件和原因.例:主機(jī)發(fā)出查詢,從機(jī)不正常響應(yīng).為十六進(jìn)制數(shù)據(jù).查詢:AddrFunDO startDO startDO #ofDO #ofCRC16CRC16reg hireg loregs hiregs loHiLo0AH01H04HA1H00H01HXXHXXH響應(yīng)不正?;蚶釧ddrFunException CodeCRC16 HiCRC16 Lo0AH81H二02HXXHXXH圖3 -1 .不正常信息幀格式上例中,從機(jī)設(shè)備地址100AH,讀線圈狀態(tài)的功能代碼01,主機(jī)請求線圈狀態(tài)的地址為124504A1H.注意:只讀一個(gè)指定線圈,地址為 0001.假設(shè)從機(jī)中
43、不存在此線圈地址時(shí),即以不正常代碼02,向主機(jī)返回一個(gè)不正常響應(yīng).說明為不合法地址.表3-3 ModBus的不正常代碼:代碼名稱含義01不合法功能代碼從機(jī)接收的是一種不能執(zhí)行功能代碼.發(fā)出查詢命令后,該代 碼指示無程序功能.02不合法數(shù)據(jù)地址接收的數(shù)據(jù)地址,是從機(jī)不允許的地址.03不合法數(shù)據(jù)查詢數(shù)據(jù)區(qū)的值是從機(jī)不允許的值.04從機(jī)設(shè)備故障從機(jī)執(zhí)行主機(jī)請求的動作時(shí)出現(xiàn)不可恢復(fù)的錯(cuò)誤.05確認(rèn)從機(jī)已接收請求處理數(shù)據(jù),但需要較長的處理時(shí)間,為防止主 機(jī)出現(xiàn)超時(shí)錯(cuò)誤而發(fā)送該確認(rèn)響應(yīng).主機(jī)以此再發(fā)送一個(gè)“查 詢程序完成未決定從機(jī)是否已完成處理.06從機(jī)設(shè)備忙碌從機(jī)正忙于處理一個(gè)長時(shí)程序命令,請求主機(jī)在從
44、機(jī)空閑時(shí)發(fā)送信息.07否認(rèn)從機(jī)不能執(zhí)行查詢要求的程序功能時(shí),該代碼使用十進(jìn)制13或14代碼,向主機(jī)返回一個(gè)“不成功的編程請求信息.主 機(jī)應(yīng)請求診斷從機(jī)的錯(cuò)誤信息.08內(nèi)存奇偶校驗(yàn)錯(cuò) 誤從機(jī)讀擴(kuò)展內(nèi)存中的數(shù)據(jù)時(shí),發(fā)現(xiàn)有奇偶校驗(yàn)錯(cuò)誤,主機(jī)按從 機(jī)的要求重新發(fā)送數(shù)據(jù)請求.附錄C: CRC校驗(yàn)生成程序CRCI單函數(shù)如下:unsigned short CRC16(puchMsg, usDataLen)unsigned char *puchMsg ;/*要進(jìn)行 CR或驗(yàn)的消息 */unsigned short usDataLen ;/*消息中字節(jié)數(shù) */(unsigned char uchCRCHi =
45、0xFF ; /*高 CRC節(jié)初始化 */unsigned char uchCRCLo = 0xFF ; /*低 CRC字節(jié)初始化 */unsigned ulndex ;/* CRC 循環(huán)中的索引 */ while (usDataLen-) /*傳輸消息緩沖區(qū) */(ulndex = uchCRCHi A *puchMsgg+ ; /* 計(jì)算 CRC */ uchCRCHi = uchCRCLo a auchCRCHiuIndex; uchCRCLo = auchCRCLouIndex;)return (uchCRCHi << 8 | uchCRCLo); )/* CRC高位字節(jié)值
46、表*/static unsigned char auchCRCHi口 = 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01,0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x8
47、0, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81
48、,0x40, 0x01,0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81,0x40, 0x01,0xC0, 0x80, 0x4
49、1,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x00, 0xC1,0x81,0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00
50、, 0xC1,0x81,0x40, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01,0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1,0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40 );/* CRC低
51、位字節(jié)值表*/static char auchCRCLo = 0x00, 0xC0, 0xC1,0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村建私房合同范本
- Module1Unit 2 I feel nervous when I speak Chinese.教學(xué)設(shè)計(jì)- 2024-2025學(xué)年外研版英語八年級下冊
- 專家工作合同范本模板
- 公寓購房合同范本
- 保潔人員勞務(wù)合同范本
- 刺繡行業(yè)雇工合同范本
- 分公司設(shè)立合同范本
- 農(nóng)戶銷售果樹合同范本
- 農(nóng)用農(nóng)機(jī)出售合同范本
- 保險(xiǎn)條款合同范本
- 幼兒園大班音樂教案《我們多快樂》
- GB/T 22919.9-2024水產(chǎn)配合飼料第9部分:大口黑鱸配合飼料
- 體育與兒童心理健康教育教材教學(xué)課件
- 婚姻家庭法(第三版)教案全套 項(xiàng)目1-9 婚姻家庭法概述-特殊婚姻家庭關(guān)系
- 可持續(xù)采購與供應(yīng)鏈管理
- 心肺復(fù)蘇及AED教學(xué)
- 電梯維保經(jīng)營計(jì)劃書
- 工程部部門助理崗位職責(zé)
- 急需學(xué)科專業(yè)引導(dǎo)發(fā)展清單
- DB4401-T 71-2020 臭氧-活性炭深度凈水工藝設(shè)計(jì)與運(yùn)行管理技術(shù)規(guī)程
- 會計(jì)廉政培訓(xùn)課件
評論
0/150
提交評論