MODBUS在過(guò)程控制系統(tǒng)中的應(yīng)用
■ 錯(cuò)誤檢查
設(shè)備地址是一個(gè)從0到247的數(shù)字。發(fā)送給地址0(廣播訊息)的訊息可以被所有從設(shè)備接收到,但是數(shù)字1到247是特定設(shè)備的地址。在這個(gè)訊息廣播當(dāng)中有一個(gè)例外,有一個(gè)從設(shè)備總是會(huì)對(duì)MODBUS訊息作出反應(yīng),這樣主設(shè)備就知道這條訊息已經(jīng)被從設(shè)備接收到了。
功能代碼定義了從設(shè)備應(yīng)該執(zhí)行的命令,例如讀取數(shù)據(jù)、接受數(shù)據(jù)、報(bào)告狀態(tài)等等(參見(jiàn)表1)。功能代碼為從1到255的數(shù)字。有些功能代碼還擁有子功能代碼。
數(shù)據(jù)為讀取功能定義了在設(shè)備存儲(chǔ)器映射當(dāng)中的地址,它包括被寫(xiě)入設(shè)備存儲(chǔ)器的數(shù)據(jù)值,或是包括其它根據(jù)功能代碼的要求需要被執(zhí)行的信息。
錯(cuò)誤檢查是一個(gè)描述循環(huán)冗余校驗(yàn)(CRC)的16-bit數(shù)值。循環(huán)冗余校驗(yàn)碼(CRC)由主設(shè)備產(chǎn)生(通過(guò)一個(gè)包括對(duì)數(shù)據(jù)進(jìn)行“或”運(yùn)算以及移位運(yùn)算的復(fù)雜程序產(chǎn)生),并且由接收設(shè)備進(jìn)行檢查。如果CRC值不符,這個(gè)設(shè)備就會(huì)要求重新傳送訊息。在有些系統(tǒng)里面,還要對(duì)數(shù)據(jù)進(jìn)行奇偶校驗(yàn)。
當(dāng)從設(shè)備執(zhí)行了所要求的功能,它會(huì)返回一條訊息給主設(shè)備。這條返回的訊息包含了從設(shè)備的地址、所要求的功能代碼(這樣主設(shè)備就知道是誰(shuí)在作出反應(yīng))、所要求的數(shù)據(jù)以及一個(gè)錯(cuò)誤檢查值。
MODBUS存儲(chǔ)器映射
每一個(gè)MODBUS設(shè)備都有存儲(chǔ)器,在存儲(chǔ)器里面保存著過(guò)程變量數(shù)據(jù)。MODBUS的配置決定了數(shù)據(jù)怎樣被恢復(fù)以及什么類型的數(shù)據(jù)能夠被恢復(fù)。不過(guò),MODBUS配置并沒(méi)有規(guī)定設(shè)備供應(yīng)商必須怎樣映射這些數(shù)據(jù)以及必須把這些數(shù)據(jù)映射在存儲(chǔ)器的哪個(gè)部分。下面是一個(gè)比較常見(jiàn)的例子,用來(lái)說(shuō)明理論上一個(gè)供應(yīng)商可能怎樣映射不同類型的過(guò)程變量數(shù)據(jù)。
離散量輸入和輸出是1-bit數(shù)值,并且每一個(gè)這種變量都有一個(gè)明確的地址。模擬量輸入(也被稱為“輸入寄存器”)被存儲(chǔ)在16-bit寄存器里面。只需利用這些寄存器當(dāng)中的兩個(gè)寄存器,MODBUS就可以支持IEEE 32-bit浮點(diǎn)格式。保持寄存器也是16-bit內(nèi)部寄存器,可以支持浮點(diǎn)格式。
MODBUS配置定義了在寄存器映射里面的數(shù)據(jù)。假定設(shè)備供應(yīng)商遵從了MODBUS規(guī)格書(shū)的要求(并非所有設(shè)備供應(yīng)商都如此),那么MODBUS主設(shè)備就可以很容易的獲取所有遵從規(guī)格書(shū)規(guī)定的數(shù)據(jù)。在很多案例當(dāng)中,設(shè)備供應(yīng)商公布了存儲(chǔ)器的映射位置(參見(jiàn)表2),這樣就使得編程人員可以很
容易的為主設(shè)備與從設(shè)備之間的通訊進(jìn)行編程。
表2:大多數(shù)MODBUS兼容設(shè)備(例如來(lái)自于Moore Industries公司的TMZ溫度變送器)的說(shuō)明書(shū)或者操作手冊(cè)都公布了關(guān)鍵變量在存儲(chǔ)器映射里面的地址。TMZ溫度變送器的地址遵守了MODBUS規(guī)格書(shū)的要求。
讀取和寫(xiě)入數(shù)據(jù)
MODBUS擁有最多255個(gè)功能代碼,但是01(讀取輸出量)、02(讀取離散輸入)、03(讀取保持寄存器)以及04(讀取輸入寄存器)是最為常用的讀取功能代碼,這些代碼被用來(lái)從MODBUS從設(shè)備采集數(shù)據(jù)。
假如設(shè)備遵從了MODBUS配置的要求,那么設(shè)定主設(shè)備讀取和寫(xiě)入數(shù)據(jù)、檢查狀態(tài)、獲取診斷信息以及執(zhí)行各種控制和監(jiān)視功能的編程任務(wù)就變得非常簡(jiǎn)單了。
在大多數(shù)工廠里,現(xiàn)場(chǎng)儀表采用單獨(dú)的控制室直連對(duì)絞線電纜連接到控制系統(tǒng)(見(jiàn)下圖)。當(dāng)儀表設(shè)備被連接到一種分散式I/O系統(tǒng)(例如來(lái)自于Moore Industries公司NCS系統(tǒng))的時(shí)候(見(jiàn)中圖),你可以增加更多的現(xiàn)場(chǎng)設(shè)備,但是僅僅需要一根對(duì)絞線電纜就可以把所有數(shù)據(jù)傳送到MODBUS主站。在多個(gè)NCS系統(tǒng)以MODBUS網(wǎng)絡(luò)的方式組網(wǎng)連接的時(shí)候(見(jiàn)下圖),整個(gè)工廠的連接都能夠從對(duì)絞線電纜控制室直連的方式轉(zhuǎn)變成為MODBUS連接方式。
圖2:控制室直連電纜 vs MODBUS
電流變送器相關(guān)文章:電流變送器原理
評(píng)論