王超
(中石化石油工程設(shè)計(jì)有限公司,東營 257026)
WANG Chao
(OFFSHORE OIL ENGINEERING CO.,LTD. Tianjin 300451, China)
(SINOPEC Petroleum Engineering Corporation, Dongying 257026, China)
當(dāng)前,在石油天然氣上游行業(yè),大型聯(lián)合站數(shù)量不斷增多,規(guī)模也越來越大,規(guī)模大的DCS系統(tǒng)測控點(diǎn)數(shù)可達(dá)上萬點(diǎn)甚至幾萬點(diǎn)。而DCS作為目前工業(yè)控制的主要手段,技術(shù)已經(jīng)相當(dāng)成熟,以其強(qiáng)大的功能、多樣化的軟件和可靠的性能深得用戶青睞[1]。同時(shí)企業(yè)作為投資方,希望用最小的投入獲得最大的收益,一套好的自控系統(tǒng)不但能降低系統(tǒng)不穩(wěn)定性,提高可用和可靠性,而且可以將前期資金投入、后期的運(yùn)維費(fèi)用降到最低。傳統(tǒng)的DCS集成方式在提供優(yōu)良控制性能的同時(shí),往往伴隨著高額的資金投入。隨著總線和通信技術(shù)的發(fā)展,F(xiàn)CS(現(xiàn)場總線控制系統(tǒng))越來越受到人們的關(guān)注,總線技術(shù)作為工業(yè)自動(dòng)化的重要成員之一,在現(xiàn)代化的自控系統(tǒng)中也扮演者越來越重要的角色。同時(shí),結(jié)合DCS和總線技術(shù)的多元化的組網(wǎng)方式也為站場自控系統(tǒng)的集成提供了更多的解決方案。
IEC(International Electrotechnical Commission)對現(xiàn)場總線的定義為:Conceptually, a fieldbus is a digital, serial,multidrop, data bus for communication with industrial control and instrumentation devices such as – but not limited to –transducers, actuators and controllers. 從其定義可以看出,現(xiàn)場總線是一種支持多節(jié)點(diǎn)的數(shù)字式串行總線技術(shù),用于工業(yè)設(shè)備及控制器之間的通信。具有可靠性好、抗電磁干擾、系統(tǒng)開放性高、通信速率快、造價(jià)及維護(hù)成本低廉等特點(diǎn)[2]?,F(xiàn)場總線技術(shù)發(fā)展至今,技術(shù)比較成熟而且得以廣泛應(yīng)用的有FF(基金會現(xiàn)場總線)、PROFIBUS現(xiàn)場總線、ContrlNet、Interbus現(xiàn)場總線、基于Modbus的現(xiàn)場總線等等。其中基于Modbus協(xié)議的現(xiàn)場總線被廣泛應(yīng)用在石油天然氣上游站場控制系統(tǒng)。
最初,Modbus是Modicon公司為其自動(dòng)化設(shè)備開發(fā)的通信協(xié)議,經(jīng)過三十多年的發(fā)展,現(xiàn)已成為自動(dòng)化領(lǐng)域最流行的協(xié)議之一。作為典型的請求—應(yīng)答協(xié)議,Modbus的通信基于客戶機(jī)—服務(wù)器模型。從OSI(開放系統(tǒng)互連)七層模型來看,Modbus協(xié)議屬于應(yīng)用層協(xié)議,需要借助基礎(chǔ)通信層提供的服務(wù)實(shí)現(xiàn)通信。它只對用于應(yīng)用層的協(xié)議數(shù)據(jù)單元(PDU)作了定義[3],PDU包含功能碼和數(shù)據(jù),功能碼長度為一個(gè)字節(jié),有效范圍是十進(jìn)制1~255(128~255為異常響應(yīng)保留),功能碼向服務(wù)器指示將執(zhí)行的操作類型。數(shù)據(jù)域在請求和應(yīng)答幀中包含的內(nèi)容是不同的,在請求幀中數(shù)據(jù)域包括離散量和寄存器地址以及字節(jié)數(shù)等;在應(yīng)答幀中數(shù)據(jù)域包含了客戶機(jī)請求的數(shù)據(jù)信息。Modbus簡單協(xié)議數(shù)據(jù)單元PDU只提供了應(yīng)用層功能服務(wù),要實(shí)現(xiàn)在網(wǎng)絡(luò)上的通信,需要在PDU上引入一些附加域,構(gòu)成應(yīng)用數(shù)據(jù)單元,從而使Modbus能夠提供數(shù)據(jù)鏈路層服務(wù),進(jìn)而實(shí)現(xiàn)各種網(wǎng)絡(luò)上的Modbus通信。
1)依托以太網(wǎng)的Modbus TCP/IP。
2)RS-485、光纖、無線等介質(zhì)上的異步串行通信。
3)高速令牌網(wǎng)絡(luò)Modbus PLUS[4]。
4)在實(shí)際應(yīng)用中,不同的Modbus通信實(shí)現(xiàn)方式可存在于一個(gè)網(wǎng)絡(luò)體系中,不同的通信結(jié)構(gòu)之間通過Modbus網(wǎng)關(guān)設(shè)備實(shí)現(xiàn)互聯(lián)。
在物理層,串行鏈路上的Modbus可以使用不同的物理接口,而工業(yè)上最常用的是兩線制RS-485。串行鏈路上的Modbus協(xié)議基于主—從協(xié)議模型,在同一時(shí)刻總線上Modbus主站只允許有一臺,但從站可以存在一臺或多臺。在Modbus通信過程中,請求由主站發(fā)起,從站只有接收到來自主站的請求時(shí),才進(jìn)行通信響應(yīng)。主站同一時(shí)間只能發(fā)起一個(gè)事務(wù)處理請求且從站之間無法獨(dú)立進(jìn)行Modbus通信。串行鏈路上的Modbus幀是在PDU上引入地址域和差錯(cuò)檢驗(yàn)域后形成的通用Modbus串行鏈路PDU,如圖1所示,其中地址域占一個(gè)字節(jié),也就是說串行鏈路Modbus尋址空間為28=256,尋址規(guī)則如下:0為廣播地址;1~247用作從站地址;248~255為保留地址;串行鏈路中Modbus主站沒有特定地址,從站有且有唯一確定的地址(1~247)。
在串行鏈路上進(jìn)行Modbus通信時(shí),數(shù)據(jù)有兩種傳輸模式可供用戶選擇——RTU模式或ASCII模式。在對每個(gè)Modbus設(shè)備進(jìn)行配置的時(shí)候,用戶根據(jù)需要選擇傳輸模式及波特率等串口參數(shù),但須注意,同一個(gè)串行總線上的所有Modbus設(shè)備其傳輸模式和串口參數(shù)必須相同[5]。無論采用哪種傳輸模式,在數(shù)據(jù)傳輸過程中,數(shù)據(jù)收發(fā)設(shè)備都會按照設(shè)定的傳輸模式識別單個(gè)字節(jié)數(shù)據(jù),拼接成為Modbus幀。
2.2.1 Modbus RTU模式
In traditional Chinese culture,there are many specified words and phrases with special meanings.Sometimes equivalent English words cannot be found.Translator must respect the history fact and choose the proper words,especially those related to royal family.
當(dāng)數(shù)據(jù)在Modbus網(wǎng)絡(luò)上以RTU模式進(jìn)行傳輸時(shí),消息幀中每個(gè)8位字節(jié)都是由兩個(gè)4位十六進(jìn)制字符(范圍0~9,A~F)組成。RTU模數(shù)傳輸速率較快,在同樣的波特率下,數(shù)據(jù)密度相對ASCII模式要高。
通信過程中,Modbus報(bào)文需要以數(shù)據(jù)幀的形式發(fā)送,這就要求對Modbus幀的起始和結(jié)束位置進(jìn)行約定,使接收設(shè)備能夠識別幀頭幀尾,對于不完整的報(bào)文,接收設(shè)備能夠檢測識別,并且設(shè)置錯(cuò)誤標(biāo)志。
在RTU模式中,規(guī)定時(shí)長不少于3.5個(gè)字符的空閑時(shí)間將兩幀報(bào)文間隔開來。即兩個(gè)報(bào)文幀之間必須有不少于3.5個(gè)字符的空閑時(shí)間,接收設(shè)備才能識別為兩個(gè)報(bào)文幀。如圖2所示。
圖2 Modbus RTU 報(bào)文幀
在RTU模式中,每幀報(bào)文都必須以連續(xù)的字符流進(jìn)行傳輸,如果一幀報(bào)文中兩個(gè)字符之間出現(xiàn)大于1.5個(gè)字符的空閑時(shí)間間隔,則此幀報(bào)文被識別為不完整報(bào)文,接收設(shè)備予以丟棄。
2.2.2 Modbus ASCII模式
當(dāng)數(shù)據(jù)在Modbus網(wǎng)絡(luò)上以ASCII模式進(jìn)行傳輸時(shí),報(bào)文中的每個(gè)8位字節(jié)需要用兩個(gè)ASCII字符發(fā)送。例如要發(fā)送數(shù)據(jù)“0C”,需要先發(fā)送數(shù)據(jù)“0”(對應(yīng)16進(jìn)制ASCII編碼為30),再發(fā)送數(shù)據(jù)“C”(對應(yīng)16進(jìn)制ASCII編碼為43)。由于發(fā)送一個(gè)字節(jié)需要占用兩個(gè)字符的時(shí)間,所以ASCII模式數(shù)據(jù)吞吐率要比RTU模式低。
與RTU模式不同,在ASCII模式下,規(guī)定報(bào)文的起始標(biāo)志為一個(gè)“:”字符(十六進(jìn)制ASCII 3A),結(jié)束標(biāo)志必須為“CRLF”(十六進(jìn)制ASCII 0D和0A)。在通信過程中,當(dāng)Modbus設(shè)備監(jiān)聽到總線上出現(xiàn)“:”字符后,就開始譯碼后續(xù)字符直到出現(xiàn)“CRLF”為止。傳輸過程中同一報(bào)文兩個(gè)字符間的允許間隔時(shí)間也比RTU模式要長,最長間隔時(shí)間可達(dá)1秒,如果出現(xiàn)大于1秒的間隔時(shí)間,則認(rèn)為出現(xiàn)傳輸錯(cuò)誤。如圖3所示。
TCP/IP上的Modbus采用客戶機(jī)-服務(wù)器模型進(jìn)行通信,在同一個(gè)網(wǎng)絡(luò)上的各個(gè)計(jì)算機(jī)是平等的關(guān)系,即同一網(wǎng)絡(luò)上的各個(gè)計(jì)算機(jī)在不同時(shí)刻既可能是客戶機(jī)又可能是服務(wù)器。
區(qū)別于串行鏈路上的Modbus應(yīng)用數(shù)據(jù)單元,在TCP/IP上使用一種專用的報(bào)文頭——MBAP報(bào)文頭(Modbus應(yīng)用協(xié)議報(bào)文頭)來識別Modbus應(yīng)用數(shù)據(jù)單元[6]。如圖4所示。
圖4 TCP/IP上的Modbus應(yīng)用數(shù)據(jù)單元
在OSI七層模型應(yīng)用層以下,Modbus/TCP沿用普通以太網(wǎng)技術(shù)。Modbus用戶數(shù)據(jù)需要經(jīng)過層層封裝,形成以太網(wǎng)幀結(jié)構(gòu)才能通過以太網(wǎng)進(jìn)行傳輸。如圖5所示,以太網(wǎng)的幀結(jié)構(gòu)與封裝過程。從圖中可以看到,用戶數(shù)據(jù)將按照以太網(wǎng)結(jié)構(gòu)逐層添加首部信息,封裝打包成以太網(wǎng)數(shù)據(jù)幀[7]。
圖5 以太網(wǎng)幀結(jié)構(gòu)與封裝過程
雅達(dá)油田中心處理站的功能是將Kushk和Hosseinieh兩個(gè)區(qū)塊輸送的原油經(jīng)過分離、處理,成為潔凈的輕質(zhì)、重質(zhì)原油及天然氣后計(jì)量外輸,生產(chǎn)過程中產(chǎn)生的污水則進(jìn)入污水處理系統(tǒng)。整個(gè)站場從工藝流程上大致可劃分為輕重質(zhì)原油處理、天然氣處理、污水處理、配套輔助設(shè)施四個(gè)部分。中心處理站的控制系統(tǒng)稱為ICSS(Integrated Control and Safety System),是一種全分布式的控制系統(tǒng),由以下子系統(tǒng)組成:
1)過程控制系統(tǒng) (PCS)
2)緊急停車系統(tǒng) (ESD)
3)火氣系統(tǒng) (FGS)
4)高集成保壓系統(tǒng) (HIPPS)
5)機(jī)械監(jiān)控系統(tǒng) (MMS)
6)操作數(shù)據(jù)系統(tǒng) (ODS)
7)資產(chǎn)管理系統(tǒng) (AMS)
8)第三方軟件應(yīng)用
9)各橇塊子系統(tǒng)
PCS進(jìn)行主工藝監(jiān)控、記錄及報(bào)表,是一個(gè)基于微控制器技術(shù)的用高速數(shù)據(jù)通道連接的系統(tǒng),為站場提供所有的圖表和文字信息,并為ESD和FGS提供接口。PCS執(zhí)行數(shù)據(jù)采集、控制、操作員界面等功能。而站場內(nèi)眾多的橇塊子系統(tǒng)與PCS之間有大量的信息需要傳輸,比如橇塊內(nèi)部電機(jī)狀態(tài)的采集、橇塊狀態(tài)指示等等。在系統(tǒng)設(shè)計(jì)上,這些信號可以通過硬線、網(wǎng)絡(luò)或者串行鏈路實(shí)現(xiàn),而硬線接入的成本較高,以太網(wǎng)口在通用性和可靠性上稍顯遜色,而串行鏈路上的Modbus作為一種成熟的通信手段,不僅組網(wǎng)方便,實(shí)現(xiàn)成本低,而且由于其開放性,在石油行業(yè)的普及是其他一些總線和通信手段所不能比擬的。此外,站場分區(qū)域設(shè)置有4個(gè)現(xiàn)場輔助控制室,這就使得現(xiàn)場設(shè)備與PCS系統(tǒng)的距離大大縮短,為RS-485總線通信提供了有利條件,在沒有中繼器的情況下,一條RS-485總線可以掛接32個(gè)Modbus收發(fā)模塊。在這樣的情況下,用 RS-485總線上的Modbus協(xié)議進(jìn)行橇塊子系統(tǒng)與PCS之間的通信不失為一種經(jīng)濟(jì)可靠的解決方案。在生產(chǎn)過程中PCS系統(tǒng)要獲取站場的各種輸入信號,在人機(jī)界面實(shí)現(xiàn)工藝流程顯示和報(bào)警、對設(shè)備進(jìn)行遠(yuǎn)程操作等功能,因此對于經(jīng)由Modbus傳輸?shù)男盘杹碚f,PCS是請求的發(fā)起者,應(yīng)當(dāng)設(shè)置為Modbus主站,其他設(shè)備設(shè)置為從站,以Modbus-RTU模式進(jìn)行通信。
硬件上Modbus通信模塊采用COM741-S,該模塊為4通道串行通信模塊,每個(gè)通道可根據(jù)需要設(shè)置為RS-485/RS-232通信,亦可以由兩個(gè)COM741-S連接成為冗余模式。COM741-S模塊的軟件設(shè)置集成在SUPCON ECS-700系統(tǒng)中,在用戶界面中可方便的對COM741-S模塊進(jìn)行串行通信參數(shù)、命令設(shè)置及調(diào)試等操作。
基于Modbus協(xié)議的通信對于石油天然氣站場自動(dòng)化領(lǐng)域具有重要的意義,它為系統(tǒng)間、系統(tǒng)與設(shè)備間的通信提供了一種經(jīng)濟(jì)可靠的通信方式,在石油天然氣開發(fā)上游的應(yīng)用前景十分廣闊;同時(shí),在Modbus應(yīng)用過程中也不能忽視協(xié)議本身的一些局限性和不足,比如通信速率不高,在TCP/IP上的Modbus設(shè)備訪問的非實(shí)時(shí)性等。在自動(dòng)化系統(tǒng)設(shè)計(jì)中應(yīng)綜合考慮各種實(shí)際情況,合理配置系統(tǒng)機(jī)構(gòu),揚(yáng)長避短,提高系統(tǒng)可用性和可靠性。□
[1] 馮冬芹.石油化工自動(dòng)化技術(shù)的應(yīng)用與發(fā)展趨勢[J].數(shù)字化工,2004,12:9.
[2] 姜濤.現(xiàn)場總線控制系統(tǒng)的應(yīng)用優(yōu)勢[J].科學(xué)觀察,2010,6:103.
[3] 張文君,基于MODBUS協(xié)議的工業(yè)有線/無線網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2011,4.
[4] 朱漢德.基于MODBUS/TCP的工業(yè)以太網(wǎng)現(xiàn)場控制站設(shè)計(jì)[D].廣州:華南理工大學(xué),2008,05.
[5] 趙釗.基于Modbus協(xié)議的DCS系統(tǒng)與PLC系統(tǒng)的通信[J].節(jié)能技術(shù),2011,29(168):341.
[6] 郭永偉.基于Modbus協(xié)議的電力監(jiān)控系統(tǒng)[D].成都:電子科技大學(xué),2007.
[7] 陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用[M].徐用懋審,第2版.北京:清華大學(xué)出版社,2008,10: 235-238.