新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MODBUS在過程控制系統(tǒng)中的應用

MODBUS在過程控制系統(tǒng)中的應用

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

  目前大家使用的三種最常見的版本是:

  ■ ASC II

  ■ RTU

  ■ MODBUS/TCP

  所有的MODBUS信息都以相同的格式進行傳送。在這三種不同類型的MODBUS版本之間的唯一差別就是:信息是怎樣進行編碼的。

  在MODBUS RTU協(xié)議里面,數據以二進制進行編碼,而且每一個字節(jié)的數據只需要一個字節(jié)的通訊量。對于通訊速度在1200到115K波特率的RS232或者多分支網絡的RS485網絡來說,MODBUS RTU是一種理想的通訊協(xié)議。MODBUS RTU最為常見的通訊速率為9600和19200波特率。MODBUS RTU是得到最為廣泛應用的工業(yè)化協(xié)議,因此這份白皮書的主要部分將會集中討論MODBUS RTU的基本概念和應用。

MODBUS RTU基礎

  為了與一臺從設備進行通訊,主設備將會發(fā)送一個包含如下內容的訊息:

  ■ 設備地址

  ■ 功能代碼

  ■ 數據

  ■ 錯誤檢查

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

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

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

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

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

MODBUS存儲器映射

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

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

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

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


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



評論


相關推薦

技術專區(qū)

關閉