關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > MODBUS的應用分析

        MODBUS的應用分析

        作者: 時間:2012-05-06 來源:網絡 收藏

        ■ 錯誤檢查

        本文引用地址:http://www.104case.com/article/160658.htm

          設備地址是一個從0到247的數字。發送給地址0(廣播訊息)的訊息可以被所有從設備接收到,但是數字1到247是特定設備的地址。在這個訊息廣播當中有一個例外,有一個從設備總是會對訊息作出反應,這樣主設備就知道這條訊息已經被從設備接收到了。

          功能代碼定義了從設備應該執行的命令,例如讀取數據、接受數據、報告狀態等等(參見表1)。功能代碼為從1到255的數字。有些功能代碼還擁有子功能代碼。

          數據為讀取功能定義了在設備存儲器映射當中的地址,它包括被寫入設備存儲器的數據值,或是包括其它根據功能代碼的要求需要被執行的信息。

          錯誤檢查是一個描述循環冗余校驗(CRC)的16-bit數值。循環冗余校驗碼(CRC)由主設備產生(通過一個包括對數據進行“或”運算以及移位運算的復雜程序產生),并且由接收設備進行檢查。如果CRC值不符,這個設備就會要求重新傳送訊息。在有些系統里面,還要對數據進行奇偶校驗。

          當從設備執行了所要求的功能,它會返回一條訊息給主設備。這條返回的訊息包含了從設備的地址、所要求的功能代碼(這樣主設備就知道是誰在作出反應)、所要求的數據以及一個錯誤檢查值。

          存儲器映射

          每一個設備都有存儲器,在存儲器里面保存著過程變量數據。MODBUS的配置決定了數據怎樣被恢復以及什么類型的數據能夠被恢復。不過,MODBUS配置并沒有規定設備供應商必須怎樣映射這些數據以及必須把這些數據映射在存儲器的哪個部分。下面是一個比較常見的例子,用來說明理論上一個供應商可能怎樣映射不同類型的過程變量數據。

          離散量輸入和輸出是1-bit數值,并且每一個這種變量都有一個明確的地址。模擬量輸入(也被稱為“輸入寄存器”)被存儲在16-bit寄存器里面。只需利用這些寄存器當中的兩個寄存器,MODBUS就可以支持IEEE 32-bit浮點格式。保持寄存器也是16-bit內部寄存器,可以支持浮點格式。

          MODBUS配置定義了在寄存器映射里面的數據。假定設備供應商遵從了MODBUS規格書的要求(并非所有設備供應商都如此),那么MODBUS主設備就可以很容易的獲取所有遵從規格書規定的數據。在很多案例當中,設備供應商公布了存儲器的映射位置(參見表2),這樣就使得編程人員可以很

          容易的為主設備與從設備之間的通訊進行編程。

          

          表2:大多數MODBUS兼容設備(例如來自于Moore Industries公司的TMZ溫度變送器)的說明書或者操作手冊都公布了關鍵變量在存儲器映射里面的地址。TMZ溫度變送器的地址遵守了MODBUS規格書的要求。

          讀取和寫入數據

          MODBUS擁有最多255個功能代碼,但是01(讀取輸出量)、02(讀取離散輸入)、03(讀取保持寄存器)以及04(讀取輸入寄存器)是最為常用的讀取功能代碼,這些代碼被用來從MODBUS從設備采集數據。

          假如設備遵從了MODBUS配置的要求,那么設定主設備讀取和寫入數據、檢查狀態、獲取診斷信息以及執行各種控制和監視功能的編程任務就變得非常簡單了。

          在大多數工廠里,現場儀表采用單獨的控制室直連對絞線電纜連接到控制系統(見下圖)。當儀表設備被連接到一種分散式I/O系統(例如來自于Moore Industries公司NCS系統)的時候(見中圖),你可以增加更多的現場設備,但是僅僅需要一根對絞線電纜就可以把所有數據傳送到MODBUS主站。在多個NCS系統以MODBUS網絡的方式組網連接的時候(見下圖),整個工廠的連接都能夠從對絞線電纜控制室直連的方式轉變成為MODBUS連接方式。

          

        控制室直連電纜 vs MODBUS www.elecfans.com

          圖2:控制室直連電纜 vs MODBUS



        關鍵詞: 分析 應用 MODBUS

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 裕民县| 通河县| 怀化市| 绥芬河市| 左云县| 广水市| 司法| 新绛县| 门头沟区| 铁力市| 漠河县| 永年县| 石家庄市| 搜索| 荣昌县| 建昌县| 南投市| 雅江县| 霍邱县| 普兰店市| 平罗县| 毕节市| 民县| 广河县| 长岛县| 比如县| 昌邑市| 沙湾县| 莱西市| 陇西县| 北辰区| 沈阳市| 永丰县| 神农架林区| 桦川县| 胶州市| 新乡市| 简阳市| 大埔县| 合肥市| 泰顺县|