由于各種各樣的原因,MODBUS是今天大家使用的工業協議當中最受歡迎的一種。它簡單、便宜、通用性強并且使用方便。
MODBUS的另一個優點是它實際上可以通過任何傳輸媒介進行通訊,其中包括雙絞線、無線通訊、光導纖維、以太網、電話調制解調器、移動電話以及微波等。這樣就意味著可以很容易的在一個新的或者是現有的工廠里面建立起MODBUS連接。事實上,一個正在MODBUS應用領域不斷成長的應用就是在老舊的工廠里面利用現有的雙絞線連接提供MODBUS數字通訊。
在這份白皮書當中,我們將會對MODBUS的工作方式進行研究,并且看一看在新老工廠里面使用MODBUS的一些巧妙方法。
圖1:一個由一臺“主站(一臺PLC或DCS)”以及最多247個“從站”設備構成的MODBUS RTU網絡。其網絡架構是多分支網絡連接。
表1:功能代碼
什么是MODBUS?
MODBUS是Modicon公司(即現在的Schneider Electric公司)于1979年開發的一種通訊協議,其目的是采用一根雙絞線與許多設備進行通訊。最初的方案使用RS232接口,但是MODBUS也適合于
RS485接口以便獲得更高的通訊速率、更長的通訊距離以及實現真正的多分支網絡結構。MODBUS很快就成了一種自動化工業領域的事實上的標準,Modicon公司也把它向社會進行了公開發布,不收任何版稅。
今天,最大的MODBUS 用戶和供應商組織MODBUS_IDA(www.MODBUS.org)仍然在繼續為全世界的MODBUS協議提供支持。
MODBUS是一種“主-從”結構的系統,在這里“主設備”與一個或是多個“從設備”進行通訊。比較典型的主設備一般是PLC(可編程邏輯控制器)、PC、DCS(分散控制系統)或者RTU(遠程終端單元)。MODBUS-RTU的從設備一般是現場儀表設備,所有這些現場儀表設備都以多分支網絡的方式連接到系統當中,參見圖1。當一個MODBUS-RTU主設備想要從一臺從設備得到數據的時候,這個主設備會發送一條包含該設備地址、所需要數據以及一個用于檢測錯誤的求和校驗碼的信息。網絡上的所有其它設備都可以看到這一條信息,但是只有地址被指定的設備才會作出反應。
MODBUS網絡上的從設備不能夠發起通訊聯絡,它們只能作出反應。換句話說,它們只能在別人對它說話的時候說話。有一些制造商正在開發“混合”型的MODBUS設備,它們平常的運行模式和MODBUS從設備相似,但是卻具備“寫”的能力,因此有時候這些設備會作為“偽主設備”運行。
目前大家使用的三種最常見的MODBUS版本是:
■ MODBUS ASC II
■ MODBUS RTU
■ MODBUS/TCP
所有的MODBUS信息都以相同的格式進行傳送。在這三種不同類型的MODBUS版本之間的唯一差別就是:信息是怎樣進行編碼的。
在MODBUS RTU協議里面,數據以二進制進行編碼,而且每一個字節的數據只需要一個字節的通訊量。對于通訊速度在1200到115K波特率的RS232或者多分支網絡的RS485網絡來說,MODBUS RTU是一種理想的通訊協議。MODBUS RTU最為常見的通訊速率為9600和19200波特率。MODBUS RTU是得到最為廣泛應用的工業化協議,因此這份白皮書的主要部分將會集中討論MODBUS RTU的基本概念和應用。
MODBUS RTU基礎
為了與一臺從設備進行通訊,主設備將會發送一個包含如下內容的訊息:
■ 設備地址
■ 功能代碼
■ 數據
■ 錯誤檢查
設備地址是一個從0到247的數字。發送給地址0(廣播訊息)的訊息可以被所有從設備接收到,但是數字1到247是特定設備的地址。在這個訊息廣播當中有一個例外,有一個從設備總是會對MODBUS訊息作出反應,這樣主設備就知道這條訊息已經被從設備接收到了。
功能代碼定義了從設備應該執行的命令,例如讀取數據、接受數據、報告狀態等等(參見表1)。功能代碼為從1到255的數字。有些功能代碼還擁有子功能代碼。
數據為讀取功能定義了在設備存儲器映射當中的地址,它包括被寫入設備存儲器的數據值,或是包括其它根據功能代碼的要求需要被執行的信息。
錯誤檢查是一個描述循環冗余校驗(CRC)的16-bit數值。循環冗余校驗碼(CRC)由主設備產生(通過一個包括對數據進行“或”運算以及移位運算的復雜程序產生),并且由接收設備進行檢查。如果CRC值不符,這個設備就會要求重新傳送訊息。在有些系統里面,還要對數據進行奇偶校驗。
當從設備執行了所要求的功能,它會返回一條訊息給主設備。這條返回的訊息包含了從設備的地址、所要求的功能代碼(這樣主設備就知道是誰在作出反應)、所要求的數據以及一個錯誤檢查值。
MODBUS存儲器映射
每一個MODBUS設備都有存儲器,在存儲器里面保存著過程變量數據。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連接方式。
圖2:控制室直連電纜 vs MODBUS
圖3:對等網連接模式。在某些案例當中,控制系統不能處理MODBUS信號。在這種情況下,可以采用使用雙重NCS設備的對等網解決方案,僅用一根MODBUS電纜就可以替代所有的控制室直連電纜。來自第二個NCS的模擬量輸出再通過硬接線直接連接到控制系統的I/O盤。
連接MODBUS設備
最容易的一種把現場設備連接到一個過程控制系統、PLC或是工業計算機系統的方法,就是簡單的把數字量以及模擬量I/O連接到一個具有MODBUS通訊能力的分散I/O系統里面。例如來自Moore Industries公司的NCS(Net Concentrator System)系統允許用戶對模擬量和數字量信號進行遠程連接,然后再通過雙絞線連接到一個MODBUS主設備。多個NCS系統可以安裝在全廠的幾個不同的地點,都通過MODBUS進行連接(參見圖2)。
這個解決方案即適合于新的工廠,也適用于現存的工廠。在許多現有的工廠里面,現場儀表設備通常是采用多芯電纜連接到DCS或者PLC系統的,每個設備都通過單獨的對絞電纜把模擬信號傳送出去。采用NCS系統,只需要這些電纜中的一個用來傳送MODBUS信號就可以了。假如工廠想要增加額外的現場儀表設備,卻不想安裝更多電纜(電纜安裝費用通常為每英尺100美元)的時候,這種解決方案就特別有用。一套分散I/O系統就可以滿足所有現存儀表I/O的需要,或者僅僅用它來傳送來自于所有新增現場儀表設備的數據。
在有些案例當中,控制系統不能處理MODBUS的信號。例如現有的控制系統有可能是為處理4到20毫安模擬量I/O和直接接線的數字量I/O而定制的,并且為現有的老系統進行重新編程使其支持MODBUS也非常困難。通常,用戶一般并不傾向于通過鋪設新電纜或是購買昂貴的MODBUS接口卡件來將新增加的遠程信號接入到系統中,因為對MODBUS接口卡件進行重新編程費用很高。在這種情況下,一種對等網絡方案(peer to peer)可以很好的解決問題。例如來自Moore Industries公司的CCS(Cable Concentrator System)和NCS(Net Concentrator System)系統就都具備對等網絡通訊能力。
NCS和CCS系統與一套分散I/O模件十分相似,但是具有更強的內建智能。并且NCS和CCS系統既可以被設置成對等網絡模式,也可以被設置成主從網絡(peer to host)模式。
使用一套對等網絡模式的NCS系統(參見圖3),配置了兩個網絡集中器;一個安裝在現場,另一個安裝在控制室?,F場儀表被連接到遠程的那個NCS。這個遠程NCS與控制室里的NCS之間通過一根雙絞線進行連接。然后控制室NCS的輸出再通過硬接線接入現有控制系統的模擬I/O盤。采用這種方法,來自新增現場變送器的模擬信號就能夠以原來模擬信號的狀態通過工廠現有的模擬I/O卡件接入控制系統。這使得新增信號帶來的編程和調試工作與新增數字接口卡件相比大大減少。這種對等網絡解決方案也能夠滿足雙向式通訊的要求,在這種情況下系統的現場側和控制室一側都可以有輸入和輸出能力。
HART借助MODBUS
老式工廠面臨的另一個挑戰是找出一種便宜而又方便的方法來發揮已經安裝的和“將要安裝的”HART智能儀表的優勢。HART的意思是可尋址遠程傳感器高速通道。HART是一種數字化協議,其設計初衷是使變送器能夠通過傳統工廠安裝的銅質對絞線在傳送
一路模擬信號的同時傳送數字化的數據。這使用戶能夠通過在這根對絞線上任何一點的連接對變送器進行遠程或是本地的組態、測試以及診斷。HART從設備既可以采用點對點的方式連接,也可以采用多分支網絡的方式進行連接。點對點連接是最常見的HART連接方式,在這種方式下HART變送器通過改變模擬回路上的電流來表征所需要的過程變量。當然,只監視數字化的HART數據也是可以的;不過在點對點的運行模式下,很少有人這么做。在HART變送器控制電流的同時,它還能夠通過HART數據流發送多種數字化的信息包。過程變量數據和數字化信息數據都可以被HART從設備或是變送器傳送。這些數據可以被用來監視儀表的完好情況或是被過程控制系統或者資產管理系統用來優化過程,幫助實現更加嚴密的控制或者防止意外的過程波動。在某些情況下,現有工廠可能有數以百計具有HART能力的儀表。不幸的是,由于種種原因許多工廠從來不開發這些HART儀表的潛在能力。
在目前資產管理系統、遠程診斷系統和先進控制獲得廣泛應用的環境下,許多工廠都希望能夠把HART儀表的數字化信息提取出來,但是他們的控制系統和現存的接線方式無法支持這種要求。這些控制系統可能無法從數字信號里面提取HART數據,或是這些控制系統僅僅想要看到硬接線的數字量和模擬量I/O信號。一臺HART儀表可以通過HART信號發送多達四個過程變量:PV(第一變量)、SV(第二變量)、TV(第三變量)、FV(第四變量)。另外還有各種比特和字節的狀態數據也可以被HART信號所傳送。但是,如果控制系統不能夠從數字化的HART信號里面讀取這些額外的過程變量數據或是任何其它診斷信息和狀態信息,那么這些數據就被白白浪費了。
用戶當然也可以選擇利用這些HART數據,即使對現有工廠里的老式系統也是如此。有些DCS公司能夠提供新型的升級版本的模擬量I/O卡板,這種卡板有能力“辨認出”這些HART數據。不過這樣的卡板通常會比傳統的模擬量I/O卡板昂貴三到五倍。此外還有一些HART信號混合單元可以安裝在現有的模擬量I/O回路里面,這種接口單元具備RS422和RS485輸出端口,可以被連接到資產管理系統或者DCSes系統。當然,這類HART信號混合單元的價格也是令人望而卻步的。另一個選擇項就是使用一種HART到MODBUS的轉換器,就像來自Moore Industries公司的HIM(HART信號接口模件),這是一種效費比較高而且具有靈活性的解決方案,它能夠以合理的價格選擇性的監視僅僅少數回路或者很多回路。
采用一個支持MODBUS RTU通訊的HART接口模件,就能夠簡單而且便宜的把所有HART數據都采集到控制系統里面(參見圖4)。這種HIM是智能化的設備,它即可以作為HART主站在前端運行,同時又可以作為MODBUS RTU的從設備在后端運行。HIM可以從變送器的模擬量信號里面提取出所有HART數據,卻不會影響或者干擾連接到控制系統去的4到20毫安信號。HIM還可以提供一個液晶顯示窗口、三路4到20毫安信號、兩個繼電器輸出和一個可選的雙路MODBUS RTU輸出。當用戶使用MODBUS選擇項的時候,HART數據被數字化的映射在HIM的MODBUS存儲器映射里面,然后作為MODBUS RTU主站的PLC或者DCS就可以從這個存儲器映射得到需要的數據了。將多個HIM采用多分支網絡方式連接起來并通過RS485接口傳送HART數據,這種架構從本質上來說幾乎就是一個小規模的資產管理系統,而費用卻只有其幾分之一。
無線MODBUS
一個MODBUS網絡可以相當容易的設置成通過無線連接進行工作(參見圖5)。從本質上來說,任何無線連接所作的都只不過是用布置在網絡各端的發射器/接收器來替代雙絞線電纜而已。很多無線電臺的制造商都支持MODBUS協議。但是由于無線電臺和調制解調器使用了一些加密和時間延遲方案,所以有一點非常重要:在你假定某些無線設備支持MODBUS協議之前,務必要先咨詢這些無線設備的供應商。
圖4:一個HART接口模件(HIM)從HART信號里面提取數字化數據并且把它存儲在自身的MODBUS存儲器映射里面,這樣任何MODBUS主設備就都可以讀取這些數據了。原始的4-20mA信號仍舊象以前一樣被連接到控制系統。
圖5:一臺無線接口(例如來自于Moore Industries公司的無線連接模件)使用RF連接代替了雙絞線。
很明顯,無線MODBUS的主要優點就是節約了鋪設線路的費用。在以前,為了監視和控制來自于罐區、井口以及各種遙遠地點的信號,其費用是及其昂貴的。
幸運的是,無線傳送的MODBUS對于控制系統或是主站、從站來說是透明的。例如上面提到的現有工廠里面的老式系統等,這類主機系統甚至都不知道存在著一個無線MODBUS網絡,因為它們
根本不需要面對這個無線MODBUS網絡。當一個MODBUS主站向從站提出一個要求時,這個訊息包被傳送到無線電發射臺。通常無線電發射臺會在發射之前對訊息包進行重新排隊和加密。一旦這個RF(無線電射頻)訊息包被從電臺接收到,從電臺會對它們進行解密并且把它們排序,使其重新代表一個有效的MODBUS訊息包。如果這個訊息包沒有被損壞或者發生混亂,它就會被發送到所要求的從站。這個從站將會對主站的要求作出相應的反應,剛才的過程就會再次重復一遍。
有些時候你必須特別注意一個被叫做“timeout”的MODBUS通訊參數,這一點很重要。Timeout表示:在嘗試重新發送訊息之前,MODBUS主站將會等待一個從站作出反應的時間的長短。根據無線電臺通訊情況好壞的不同,訊息包的發送可能會被延誤,這有可能造成一些不必要的重試和重新發送。采用今天的FHSS(跳頻擴頻)無線電臺,這些參數當中的大多數都可以進行修改以便高效率的傳送MODBUS訊息包。而對電臺的選址進行恰當的分析研究通??梢员苊庠S多通訊受阻的現象,其中需要進行的研究包括信號強度分析以及頻帶噪聲分析等。
以太網上的MODBUS
MODBUS/TCP常常被理解為以太網上的MODBUS。其實總的來說MODBUS/TCP不過是采用TCP/IP標準簡單的把MODBUS訊息包打包壓縮而已。這使得MODBUS/TCP設備馬上就可以方便的通過現有以太網和光纖網絡進行連接和通訊。與RS485接口相比,MODBUS/TCP還允許使用多得多的地址、可以采用多主站架構、傳送速率可以達到GB水平。雖然MODBUS RTU有每個網絡不能超過247個節點的限制,但是MODBUS/TCP網絡的從站數量僅受限于網絡物理層的能力。通常從站的數量一般在1024個左右。以太網在過程控制和自動化工業領域的迅速普及已經使得MODBUS/TCP成為應用最廣泛、增長速度最快的被以太網支持的工業協議。
雖然各家大小PLC供應商都有自己的以太網協議,但是他們幾乎全部都支持MODBUS/TCP。即便是對那些目前不支持MODBUS/TCP的PLC供應商來說,他們也可以找到很多家類似于Prosoft Technologies和SST的公司可以為他們的PLC產品提供底板安裝型的MODBUS/TCP通訊卡以及獨立安裝的網關等配件。
MODBUS/TCP的另一個優點是它的多主站能力。不像MODBUS RTU和MODBUS ASC II,MODBUS/TCP允許多個主站同時從同一個從站獲取數據。為什么MODBUS/TCP會具備這樣的能力呢?這是因為通過使用TCP/IP的以太網,無需令牌傳遞或是取得總線的完全控制權就可以發送、緩沖和遞交多個訊息。這對于許多RS485和RS422協議是很常見的情況。
通過MODBUS把控制放到現場去
到目前為止,我們僅僅涉及到了簡單的MODBUS數據采集系統。還有一種方案也是可能的,那就是把控制設備安裝在現場,然后通過MODBUS使其與中央控制系統進行通訊。前邊提到過的網絡集中器NCS同時也擁有功能強大的CPU(中央處理器單元)和實時控制內核,它也可以被編程用來執行控制功能,例如PID控制、ON/OFF控制、現場報警、復雜算術運算、診斷以及報警監視等。
因為它具有類似PLC的邏輯、PID類型的控制功能以及先進的計算能力,一臺NCS通常能夠滿足對一臺PLC、工業計算機或者一套小型DCS的功能要求,其價格卻只是后者的幾分之一。雖然MODBUS協議并不具備諸如基金會現場總線和CIP(通用工業協議)等其它協議的能力,但是它確實滿足了許多應用的需要。在這些應用里面,用戶喜歡在現場進行控制,同時可以通過以太網對現場進行監視和上位控制。而MODBUS協議就是滿足這種需要的最具效費比和最便捷的解決方案。
另一種“智能化”并且具有控制能力的MODBUS設備是來自于Moore Industries公司的MDS方程站。這是一種多功能控制器,它能夠執行很多種類型的控制功能和運算。有了MDS方程站,在實現簡單控制任務、多變量控制任務(例如監視和控制一個蒸煮器里的紙漿液位或者使用來自多個流量、溫度和壓力變送器的輸入信號實現質量流量計算)時就不再需要PLC或者大型控制器了。最多可以有127個MDS模件被安裝在一個MODBUS網絡上面來實現對工廠的控制或是采集整個工廠的信號。
PID(比例、積分和微分)控制器最初都是單機獨立運行的無通訊控制器。由于PLC和DCS都已經智能化,因此現在PID控制器也智能化了。今天,許多終端用戶依然青睞那些直接讀出和編程簡單的單回路控制器。諸如MODBUS等數字化通訊協議能夠給這些一直單機運行的儀表注入一些新的活力。通過對這些控制器進行多分支網絡連接,你可以創造一個你自己的小型分散控制系統,參見圖6。
MODBUS:通用的接口
圖6:具有MODBUS功能的設備(例如1/4 DIN 545雙回路PID控制器)能夠把控制功能布置到現場。將這些MODBUS設備連接成多分支網絡,并且把它們的輸出發送到一個基于WINDOWS的SCADA系統,這樣就創建了一個小型的分散控制系統。
當現代的控制領域持續不斷的產生和應用諸如現場總線和網狀網絡等先進概念的時候,MODBUS的簡單性以及它的便于在許多通訊媒介上實施應用的特點一直使它受到最廣泛的支持,并且成為全球應用最廣泛的工業協議。當使用現有老式控制系統的用戶發現自己需要擴充現場儀表或者增加遠程控制器的時候,他們都會采用MODBUS作為一個能夠解決復雜問題的簡單解決方案。當用戶試圖把一個外來設備連接到控制系統里面的時候,使用這個設備的MODBUS接口總被證明是最為容易的辦法。雖然MODBUS已經是最為古老的通訊方法之一,由于非常多的原因它也是最普及的通訊方法。MODBUS便于使用、非常可靠、價格低廉并且可以連接到控制工業領域幾乎所有的傳感器和控制設備。
歡迎轉載,本文來自電子發燒友網(http://www.nxhydt.com/)
評論
查看更多