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