采用Modbus協(xié)議實(shí)現DCS系統中監控級數據集成
摘要:Modbus協(xié)議實(shí)現水泥生產(chǎn)生料系統中不同操作站的監控數據集成,采用ATL開(kāi)發(fā)出基于Modbus通訊協(xié)議的一種通用接口組件,使得各異構成站點(diǎn)可以方便地互連。介紹網(wǎng)絡(luò )的拓撲結構和實(shí)現方法,并把Modbus和其它幾種協(xié)議如NetDDE、OPC的集成方式作了比較和討論。
本文引用地址:http://dyxdggzs.com/article/255690.htm關(guān)鍵詞:DCS 監控數據集成 Modbus COM
數據集成是DCS系統中的關(guān)鍵。一個(gè)典型DCS系統從結構上可分為四層[1]:現場(chǎng)級、控制級、監控級和管理級。本文討論的是監控級,在這一級有許多并列的子站,一般采用計算機作為為機接口,各站點(diǎn)可按功能劃分,分別采集相應的現場(chǎng)信號和控制某些局部設備。但是,各站點(diǎn)之間不是孤立的,它們必須互相配合、協(xié)調才能保證產(chǎn)品質(zhì)量和實(shí)現連續生產(chǎn),這就需要各站點(diǎn)能互通訊息。另外,上級管理網(wǎng)也需要與監控級子站交互數據,以實(shí)現全局的監控和優(yōu)化。
然而,子站是采用不同開(kāi)發(fā)平臺、不同通訊協(xié)議組成的異構系統,可能由不同的廠(chǎng)家和個(gè)為開(kāi)發(fā)。要為每種協(xié)議寫(xiě)一個(gè)轉換接口或驅動(dòng)是比較繁瑣的,特別是在站點(diǎn)和協(xié)議較多的時(shí)候。因此,怎樣有效集成數據,避免信息孤島的出現,是DCS系統中常遇到難點(diǎn)問(wèn)題之一。
比較好的方法是各站點(diǎn)都采用標準協(xié)議進(jìn)行數據通訊,而不必為每一種協(xié)議開(kāi)發(fā)一個(gè)通訊接口。目前這方面的協(xié)議比較多,Modbus就是其中的一種。
1 Modbus協(xié)議簡(jiǎn)介
Modbus協(xié)議包括ASCII、RTU、PLUS、TCP等,并沒(méi)有規定物理層。此協(xié)議定義了控制器能夠認識和使用的消息結構,而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò )進(jìn)行通信的[2]。標準的Modicon控制器使用RS232C實(shí)現串行的Modbus。RS232C規定了連接器針腳、接線(xiàn)、信號電平、波特率、奇偶校驗等信息,Modbus的ASC水、RTU協(xié)議則在此基礎上規定了消息、數據的結構、命令和就答的方式,如圖1所示。數據通訊采用Maser/Slave方式,Master端發(fā)出數據請求消息,Slave端接收到正確消息后就可以發(fā)送數據到Master端以響應請求;Master端也可以直接發(fā)消息修改Slave端的數據,實(shí)現雙向讀寫(xiě)。
圖2是一個(gè)典型的Modbus應用示例。Modbus可以應用在支持Modbus協(xié)議的PIC和PLC之間、PLC和個(gè)人計算機之間、計算機和計算之間、遠程PLC和計算機之間以及遠程計算機之間(通過(guò)Modem連接),可見(jiàn)Modbus的應用是相當廣泛的。由于Modbus是一個(gè)事實(shí)上的工業(yè)標準,許多廠(chǎng)家的PLC、HMI、組態(tài)軟件都支持Modbus,而且Modbus是一個(gè)開(kāi)放標準,其協(xié)議內容可以免費獲得,一些小型廠(chǎng)商甚至個(gè)人都可根據協(xié)議標準開(kāi)發(fā)出支持Modbus的產(chǎn)品或軟件,從而使其產(chǎn)品聯(lián)入到Modbus的數據網(wǎng)絡(luò )中。因此,Modbus有著(zhù)廣泛的應用基礎。
在實(shí)際應用中,可以使用RS232、RS485/422、Modem加電話(huà)線(xiàn)、甚至TCP/IP來(lái)聯(lián)網(wǎng)[3]。所以,所以,Modbus的傳輸介質(zhì)種類(lèi)較多,可以根據傳輸距離來(lái)選擇。
2 Modbus的具體應用
這里介紹的Modbus的具體應用是某廠(chǎng)的水泥生料生產(chǎn)質(zhì)量控制系統。此系統中一共有5個(gè)子站:鈣鐵分析儀、四元素分析儀、料位位/料漿塞、配料秤、配庫。每一個(gè)子站由一臺計算機和相關(guān)軟、硬件組成,控制系統組成如圖3所示。
從圖3可看出,系統基本上是兩個(gè)控制回路:一路由鈣鐵分析儀、配料秤及控制算法組成,實(shí)現磨前精配,即出磨生料質(zhì)量的在線(xiàn)實(shí)時(shí)閉環(huán)控制;另一路由四元素分析儀、料漿塞、料位儀組成,實(shí)現摩后調配,即入窯前料漿質(zhì)量的均化控制。配庫算法在第二條回路中起控制、優(yōu)化和網(wǎng)絡(luò )接口的作用。系統控制參數的改變由兩個(gè)事件觸發(fā):鈣鐵儀分析的結果和四元素分析的結果。這兩個(gè)分析結果由對用戶(hù)定期采得的實(shí)際生產(chǎn)中的樣品的分析得到。從圖3還可看出,各站之間是相互聯(lián)系的,它們的協(xié)作關(guān)系到生料生產(chǎn)的質(zhì)量。
在網(wǎng)絡(luò )設計中,不僅要實(shí)現各站之間數據交換,同時(shí)還要考慮到網(wǎng)絡(luò )的靈活性、通用性、可擴展性。例如,數據源站點(diǎn)應能比較容易地增減數據、目標站點(diǎn)可能有多個(gè)、數據流向應該是雙向的、所有生料系統的數據需送到廠(chǎng)級DCS中,因此網(wǎng)絡(luò )的實(shí)現比較復雜。
由于Modbus協(xié)議具有多樣性、可靠性等特點(diǎn),而且是工業(yè)級標準協(xié)議,完全可以適合具體應用,因此用Modbus實(shí)現網(wǎng)絡(luò )。
要在每個(gè)站點(diǎn)都用源程序實(shí)現Modbus是不實(shí)現的,因為應用程序開(kāi)發(fā)平臺不一樣,有Visual C++等,不可能實(shí)現代碼復用。但是,每個(gè)站點(diǎn)讀寫(xiě)Modbus數據的操作又是相同的,為解決這個(gè)問(wèn)題,我們采用COM技術(shù)。COM也是軟件模塊之間數據通訊的標準。COM的特點(diǎn)是語(yǔ)言無(wú)關(guān)性、對時(shí)程的透明性和可以實(shí)現二進(jìn)制重用[4]。因為它的接口是開(kāi)放的,所以支持COM技術(shù)的客戶(hù)程序可以通過(guò)其公共接口調用COM組件的內部功能。眾所周知,在Windows2000中,COM+甚至是構成操作系統的基礎。
最后,采用ATL開(kāi)發(fā)出了兩個(gè)COM組件,即Modbus Master組件和Modbus Slave組件。ATL是一個(gè)基于C++模擬技術(shù)的框架,它主要用在甚至COM的軟件開(kāi)發(fā)上,使用它可以大大簡(jiǎn)化組件的開(kāi)發(fā)過(guò)程并提高代碼的效率[5]。Master和Slave組件都包含ASCII、RTU、TCP三種方式,實(shí)現了Class0、Class1規定的功能[3]。每個(gè)子站的客戶(hù)程序不需要了解Modbus的具體協(xié)議和實(shí)現方式,只需調用組件公開(kāi)出來(lái)的方法,就可以與遠程計算機交換數據,實(shí)現Modbus協(xié)議透明、網(wǎng)絡(luò )數據傳輸透明。例如Slave端的組件,客戶(hù)端只需修改其連接數據就可以使變化反應到Master端,而Master端修改了數據后,Slave端會(huì )觸發(fā)事件通知客戶(hù)。
網(wǎng)絡(luò )結構沒(méi)有使用點(diǎn)對點(diǎn)的連接,而是采用了星型連接,在一個(gè)站點(diǎn)上建立一個(gè)實(shí)時(shí)數據庫,相當于一個(gè)數據中心。所有站點(diǎn)都只與數據中心相連,各站數據也發(fā)送到數據中心集中。網(wǎng)絡(luò )結構見(jiàn)圖4。
3 討論
3.1 關(guān)于具體應用
圖4所示的網(wǎng)絡(luò )結構中,一方面,系統封裝了Modbus協(xié)議和網(wǎng)絡(luò )的實(shí)現,實(shí)現了功能復用,減少了重復操作,并且使網(wǎng)絡(luò )調試比較方便;另一方面,星型結構使增加數據、增加站點(diǎn)都很方便,原則上每個(gè)站點(diǎn)都可以取得任意站點(diǎn)的數據,而不需要增加新的連接。在圖4所示的網(wǎng)絡(luò )結構下,可以方便地把配庫和配料秤相連,實(shí)現半庫調配(根據料漿質(zhì)量反饋控制配料秤配方),將控制回路增加到3條。部分實(shí)時(shí)數據還可以存入歷史數據庫,以便長(cháng)期保存和事后分析查詢(xún)。
3.2 Modbus協(xié)議的其它特點(diǎn)
除了在簡(jiǎn)介中提到的應用廣泛的特點(diǎn)外,Modbus還有其它特點(diǎn)。Modbus協(xié)議需要對數據進(jìn)行校驗,串行協(xié)議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗,但TCP模式?jīng)]有額外規定校驗,因為T(mén)CP協(xié)議是一個(gè)面向連接的可靠協(xié)議。另外,Modbus采用主從方式定時(shí)收發(fā)數據,在實(shí)際使用中如果某Slave站點(diǎn)斷開(kāi)后(如故障或關(guān)機),Master端可以診斷出來(lái),而當故障修復后,網(wǎng)絡(luò )又可自動(dòng)接通。因此,Modbus協(xié)議的可靠性較好。
Modbus定義了很多功能,對工業(yè)上的實(shí)際應用考慮比較全面。而且協(xié)議仍在發(fā)展中,用戶(hù)還可自定義功能碼??梢?jiàn),Modbus的擴展性是比較好的。
對于一些重復發(fā)送的檢測數據,可以采用Unsolicited方式,即Master端不需發(fā)送請求,而由Slave端主動(dòng)發(fā)送數據。這樣可以降低網(wǎng)絡(luò )數據流量,以提高傳輸速度。因此,Modbus協(xié)議應用也比較靈活。
3.3 與NetDDE協(xié)議的對比
NetDDE協(xié)議有幾個(gè)缺點(diǎn):一是技術(shù)太老,Win98平臺上沒(méi)有32位的API,只有16位的,因此在32位平臺上實(shí)現起來(lái)較困難,而且NetDDE不能實(shí)現串行連接;二是傳輸數據量小,傳輸批量數據比較煩;三是連接斷開(kāi)后不能自動(dòng)恢復。因此,沒(méi)有使用NetDDE來(lái)實(shí)現我們的網(wǎng)絡(luò )。
3.4 工業(yè)數據集成的新方向
OPC是一種開(kāi)放的應用程序之間數據通訊的工業(yè)規范和標準,它采用客戶(hù)/服務(wù)器體系,基于OLE/COM技術(shù),為硬件廠(chǎng)商和應用軟件開(kāi)發(fā)者提供了一套標準的接口[6]。OPC結構先進(jìn)、速度快、功能強大,是今后工業(yè)數據集成發(fā)展的方向。但是,OPC比較新穎,對開(kāi)發(fā)者的要求較高,開(kāi)發(fā)難度較大,而且OPC產(chǎn)品價(jià)格比較昂貴,國內DCS應用中尚未普及,其推廣和發(fā)展還需要一個(gè)過(guò)程。
總之,Modbus具有開(kāi)放性、用戶(hù)范圍廣、易實(shí)現、擴展性好、可靠性強等優(yōu)點(diǎn)。所以們采用Modbus協(xié)議和COM技術(shù)來(lái)實(shí)現監控數據的集成,在與自開(kāi)發(fā)的應用程序連接和與FOXBORO、ROSEMOUNT、CIMPLICITY等DCS系統及HMI的連接中都取得了比較好的效果。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論