MODBUS在過(guò)程控制系統中的應用
■ 錯誤檢查
設備地址是一個(gè)從0到247的數字。發(fā)送給地址0(廣播訊息)的訊息可以被所有從設備接收到,但是數字1到247是特定設備的地址。在這個(gè)訊息廣播當中有一個(gè)例外,有一個(gè)從設備總是會(huì )對MODBUS訊息作出反應,這樣主設備就知道這條訊息已經(jīng)被從設備接收到了。
功能代碼定義了從設備應該執行的命令,例如讀取數據、接受數據、報告狀態(tài)等等(參見(jiàn)表1)。功能代碼為從1到255的數字。有些功能代碼還擁有子功能代碼。
數據為讀取功能定義了在設備存儲器映射當中的地址,它包括被寫(xiě)入設備存儲器的數據值,或是包括其它根據功能代碼的要求需要被執行的信息。
錯誤檢查是一個(gè)描述循環(huán)冗余校驗(CRC)的16-bit數值。循環(huán)冗余校驗碼(CRC)由主設備產(chǎn)生(通過(guò)一個(gè)包括對數據進(jìn)行“或”運算以及移位運算的復雜程序產(chǎn)生),并且由接收設備進(jìn)行檢查。如果CRC值不符,這個(gè)設備就會(huì )要求重新傳送訊息。在有些系統里面,還要對數據進(jìn)行奇偶校驗。
當從設備執行了所要求的功能,它會(huì )返回一條訊息給主設備。這條返回的訊息包含了從設備的地址、所要求的功能代碼(這樣主設備就知道是誰(shuí)在作出反應)、所要求的數據以及一個(gè)錯誤檢查值。
MODBUS存儲器映射
每一個(gè)MODBUS設備都有存儲器,在存儲器里面保存著(zhù)過(guò)程變量數據。MODBUS的配置決定了數據怎樣被恢復以及什么類(lèi)型的數據能夠被恢復。不過(guò),MODBUS配置并沒(méi)有規定設備供應商必須怎樣映射這些數據以及必須把這些數據映射在存儲器的哪個(gè)部分。下面是一個(gè)比較常見(jiàn)的例子,用來(lái)說(shuō)明理論上一個(gè)供應商可能怎樣映射不同類(lèi)型的過(guò)程變量數據。
離散量輸入和輸出是1-bit數值,并且每一個(gè)這種變量都有一個(gè)明確的地址。模擬量輸入(也被稱(chēng)為“輸入寄存器”)被存儲在16-bit寄存器里面。只需利用這些寄存器當中的兩個(gè)寄存器,MODBUS就可以支持IEEE 32-bit浮點(diǎn)格式。保持寄存器也是16-bit內部寄存器,可以支持浮點(diǎn)格式。
MODBUS配置定義了在寄存器映射里面的數據。假定設備供應商遵從了MODBUS規格書(shū)的要求(并非所有設備供應商都如此),那么MODBUS主設備就可以很容易的獲取所有遵從規格書(shū)規定的數據。在很多案例當中,設備供應商公布了存儲器的映射位置(參見(jiàn)表2),這樣就使得編程人員可以很
容易的為主設備與從設備之間的通訊進(jìn)行編程。

表2:大多數MODBUS兼容設備(例如來(lái)自于Moore Industries公司的TMZ溫度變送器)的說(shuō)明書(shū)或者操作手冊都公布了關(guān)鍵變量在存儲器映射里面的地址。TMZ溫度變送器的地址遵守了MODBUS規格書(shū)的要求。
讀取和寫(xiě)入數據
MODBUS擁有最多255個(gè)功能代碼,但是01(讀取輸出量)、02(讀取離散輸入)、03(讀取保持寄存器)以及04(讀取輸入寄存器)是最為常用的讀取功能代碼,這些代碼被用來(lái)從MODBUS從設備采集數據。
假如設備遵從了MODBUS配置的要求,那么設定主設備讀取和寫(xiě)入數據、檢查狀態(tài)、獲取診斷信息以及執行各種控制和監視功能的編程任務(wù)就變得非常簡(jiǎn)單了。
在大多數工廠(chǎng)里,現場(chǎng)儀表采用單獨的控制室直連對絞線(xiàn)電纜連接到控制系統(見(jiàn)下圖)。當儀表設備被連接到一種分散式I/O系統(例如來(lái)自于Moore Industries公司NCS系統)的時(shí)候(見(jiàn)中圖),你可以增加更多的現場(chǎng)設備,但是僅僅需要一根對絞線(xiàn)電纜就可以把所有數據傳送到MODBUS主站。在多個(gè)NCS系統以MODBUS網(wǎng)絡(luò )的方式組網(wǎng)連接的時(shí)候(見(jiàn)下圖),整個(gè)工廠(chǎng)的連接都能夠從對絞線(xiàn)電纜控制室直連的方式轉變成為MODBUS連接方式。

圖2:控制室直連電纜 vs MODBUS
電流變送器相關(guān)文章:電流變送器原理
評論