摘要:針對油庫液位變送器數(shù)據(jù)變送能力的不足,本文利用IEC61850通訊協(xié)議設(shè)計并實現(xiàn)了新型的數(shù)據(jù)變送器。shou先,通過分析IEC61850的特點及其概念模型論證了跨行業(yè)應(yīng)用該協(xié)議的可行性;其次,討論了設(shè)備功能的劃分,并給出了設(shè)備功能描述文件的重點片段;#后,設(shè)計、實現(xiàn)了智能設(shè)備與IEC61850的數(shù)據(jù)接口以及與原有液位儀的數(shù)據(jù)通訊。應(yīng)用實踐表明,該新型的液位變送器不僅提高了數(shù)據(jù)變送能力,而且使監(jiān)控信息系統(tǒng)不再依賴某種特定的液位儀。
一、引言
用液位儀獲取油庫的油位、水位、溫度等數(shù)據(jù)是加油站信息系統(tǒng)的重要組成部分。液位儀在用傳感器獲取各項數(shù)據(jù)后,將數(shù)據(jù)變送至信息系統(tǒng)進(jìn)行數(shù)據(jù)集中處理的模式有:利用4~20mA模擬信號或Modbus串口協(xié)議。在實際應(yīng)用中發(fā)現(xiàn)這兩種工作模式有下列不足:①信息系統(tǒng)對數(shù)據(jù)的解析嚴(yán)重依賴特定的液位儀,使得液位儀更新和信息系統(tǒng)升級相互制約、無法好立進(jìn)行;②信息系統(tǒng)所獲得的測量數(shù)據(jù)缺乏品質(zhì)、時標(biāo)等信息,對數(shù)據(jù)分析不利;③在數(shù)據(jù)傳輸過程中若發(fā)生線路中斷,則無法追溯歷史數(shù)據(jù),不利于故障分析。
顯然,液位儀現(xiàn)有的數(shù)據(jù)變送模式已無法滿足油庫信息化系統(tǒng)建設(shè)的需求,故此設(shè)計并實現(xiàn)了新型的液位變送器。該設(shè)備以嵌入式操作系統(tǒng)為基礎(chǔ)、借助電力系統(tǒng)中普及應(yīng)用的IEC61850協(xié)議,成功地克服了液位儀現(xiàn)有數(shù)據(jù)變送模式的缺點,為油庫管理的信息化和自動化控制預(yù)留豐富的接口。
二、應(yīng)用IEC61850的可行性
1.IEC61850的特點
IEC61850是變電站自動化系統(tǒng)通信的國際標(biāo)準(zhǔn),其目的是實現(xiàn)不同廠商設(shè)備間的無縫信息通信和互操作。該標(biāo)準(zhǔn)的突出特點有:①開放、分層的拓?fù)浣Y(jié)構(gòu);②面向?qū)ο蟮慕y(tǒng)一建模技術(shù);③建模與具體實現(xiàn)相好立、服務(wù)與通信網(wǎng)絡(luò)好立;④提供能夠自我描述的數(shù)據(jù)對象及服務(wù);⑤不同的廠商設(shè)備間可互操作。
2.設(shè)備描述的概念模型
IEC61850用客戶/服務(wù)器概念來實現(xiàn)設(shè)備的互操作和系統(tǒng)無縫集成,服務(wù)器的核心功能是提供數(shù)據(jù)服務(wù),客戶端,亦即后臺信息系統(tǒng),通過請求數(shù)據(jù)服務(wù)獲取數(shù)據(jù)信息,其中能提供數(shù)據(jù)服務(wù)的設(shè)備也稱作智能電子設(shè)備(IED)。
客戶/服務(wù)器進(jìn)行信息交互的基礎(chǔ)是設(shè)備功能描述文件,它XML語言為基礎(chǔ),詳細(xì)地描述了與通信相關(guān)的智能電子設(shè)備結(jié)構(gòu)和參數(shù)、通信系統(tǒng)結(jié)構(gòu)及它們之間關(guān)系。由于XML擁有可擴展性和自定義性、異構(gòu)系統(tǒng)間的信息無障礙互通、數(shù)據(jù)內(nèi)容與顯示處理相分離等特點, 因此功能描述文件能夠在不同廠家的IED和信息系統(tǒng)之間進(jìn)行交換。同時,功能描述文件采用面向?qū)ο蟮慕7绞,使得?shù)據(jù)對象、設(shè)備功能以及數(shù)據(jù)服務(wù)具備自描述特性。以上2點決定了客戶/服務(wù)器之間不存在直接的依賴關(guān)系,換言之二者的設(shè)計與實現(xiàn)完全可以好立進(jìn)行。
圖1 是描述I E D設(shè)備功能的概念模型,位于頂層的是服務(wù)器(Server),它擁有名稱和IP地址。Server以下的邏輯層次依次為邏輯設(shè)備(LD)、邏輯節(jié)點(LN)、數(shù)據(jù)(Data)、數(shù)據(jù)屬性(DA)以及數(shù)據(jù)屬性功能約束(FCDA),它們都以對象的方式存在。FCDA約束了DA的特性,表明DA所屬的類別,如ST代表狀態(tài)數(shù)據(jù),MX代表測量數(shù)據(jù)。此外,LN中包含相同類別的FCDA所構(gòu)成數(shù)據(jù)集(DataSet)、指明數(shù)據(jù)服務(wù)方式的報告控制塊(RCB)以及可用于歷史數(shù)據(jù)追溯的日志控制塊(LCB)等對象模型。圍繞設(shè)備功能描述,服務(wù)器端提供不同的服務(wù),如讀值、報告、日志、控制。
根據(jù)以上的敘述可看出, 雖然IEC61850是變電站自動化的標(biāo)準(zhǔn),但因為它廣泛吸收了計算機、通訊和工業(yè)自動化領(lǐng)域的成熟技術(shù),使得它可以無障礙地直接應(yīng)用到其它的自動化控制領(lǐng)域。正是基于上述認(rèn)識,本文決定采用IEC61850通訊協(xié)議設(shè)計和實現(xiàn)智能的液位數(shù)據(jù)變送器,使得設(shè)備實現(xiàn)、數(shù)據(jù)傳輸、信息處理系統(tǒng)的相互好立。
三、設(shè)備功能描述
IEC61850在電力系統(tǒng)的應(yīng)用已經(jīng)成熟,因此對如何描述設(shè)備功能亦有著詳盡的規(guī)范可以遵循,但如何描述液位變送器的設(shè)備功能則需探討。經(jīng)實際分析認(rèn)為新設(shè)計的變送器應(yīng)具備的功能有:數(shù)據(jù)測量、信息告警、日志服務(wù)、設(shè)備遙控。限于篇幅,本文只從數(shù)據(jù)測量和日志記錄2個方面簡要敘述。
1.定義測量數(shù)據(jù)集
綜合相關(guān)文獻(xiàn)并結(jié)合油罐信息采集的實際需求,本文將測量數(shù)據(jù)分為2組:地衣組是液位、水位、溫度、體積、密度等與儲油量相關(guān)的數(shù)據(jù);第二組是泵電流、泵進(jìn)口壓力、油氣濃度等收油、發(fā)油相關(guān)的數(shù)據(jù),每一組數(shù)據(jù)對應(yīng)一個數(shù)據(jù)集。
一個FCDA描述了一個被測數(shù)據(jù)對象,相同性質(zhì)的數(shù)據(jù)對象構(gòu)成一個數(shù)據(jù)集,例如與儲油量相關(guān)的數(shù)據(jù)構(gòu)成個數(shù)據(jù)集dsMeasure,圖2是數(shù)據(jù)集的示例。圖2所示是定義地衣組測量數(shù)據(jù)集實例的一部分,數(shù)據(jù)集名稱為dsMeasure。設(shè)服務(wù)器名為YG21MONT,則在客戶/服務(wù)器中表示油液高度數(shù)據(jù)的語義路徑為YG21MONT/SIML1$MX$OilLvl。
需要說明的是,由于測量數(shù)據(jù)的品質(zhì)、時標(biāo)等信息對測量值起到置信說明的緣故,因此本文在定義被測量對象時沒有細(xì)化到daName,而僅有doName,這是與電力系統(tǒng)中常見的配置方法所不同之處。
按類似的方法可以定義狀態(tài)數(shù)據(jù)集dsState,如閥門位置、液位開關(guān)位置;告警數(shù)據(jù)集dsAlarm包括油氣濃度告警、溫度告警、水位告警等信息。
2.定義日志服務(wù)
當(dāng)客戶端因網(wǎng)絡(luò)故障沒有收到IED發(fā)來的數(shù)據(jù)報告,客戶端則可以通過日志服務(wù)檢索歷史數(shù)據(jù)。日志的內(nèi)容按時間順序構(gòu)成一個“先入先出”隊列,因此客戶端可次序獲取歷史測量數(shù)據(jù)或告警信息,這為數(shù)據(jù)核對和故障分析帶來了極大便利。
日志模型包括日志控制塊和日志內(nèi)容2部分,圖3是設(shè)備功能描述中關(guān)于日志服務(wù)的內(nèi)容片段,它定義數(shù)據(jù)集dsMeasure作為日志內(nèi)容,而logName與數(shù)據(jù)集中的ldInst名稱應(yīng)相一致。
日志內(nèi)容也是面向?qū)ο蠼Y(jié)構(gòu),對象成員包括數(shù)據(jù)集中的數(shù)據(jù)對象、原因代碼、觸發(fā)選項,客戶端可以通過修改LogEna為false停止日志服務(wù)功能。觸發(fā)選項TrgOps指明或者發(fā)生數(shù)據(jù)值變化、或者發(fā)生數(shù)據(jù)品質(zhì)變化時才添加日志內(nèi)容。
日志內(nèi)容是保存在RAM中的隊列,為保證IED重啟后日志內(nèi)容不丟失,因此在添加隊列條目時,同時將之保存為磁盤文件,當(dāng)IED重啟后shou先將文件內(nèi)容依次加載到隊列中。本文的日志服務(wù)實現(xiàn)始終保存#近6個月的日志內(nèi)容
四、軟件實現(xiàn)
目前,IEC61850通訊協(xié)議的實現(xiàn)大都采用SISCO公司的MMS-EASE Lite軟件包,它利用MMS(報文制造規(guī)范)實現(xiàn)與IEC61850的數(shù)據(jù)映射本文的也采用該軟件包。
為集中精力驗證I E C 6 1 8 5 0協(xié)議在設(shè)計液位變送器應(yīng)用中的可行性,本文在原有的液位儀等監(jiān)測設(shè)備與IEC61850之間添加了一個轉(zhuǎn)換層,該轉(zhuǎn)換層一方面對上實現(xiàn)與MMS-EASE Lite的數(shù)據(jù)接口,另一方面與監(jiān)測設(shè)備仍采用串行通訊的方式周期性查詢監(jiān)測設(shè)備的數(shù)據(jù)、狀態(tài)等。作者認(rèn)為:從經(jīng)濟角度和實現(xiàn)周期角度來看,采用“轉(zhuǎn)換”模式是改造現(xiàn)有液位儀系統(tǒng)較為可行的方案。
該轉(zhuǎn)換層利用可運行utuLinux2.6.24嵌入式操作系統(tǒng)的S3C2440的工控板實現(xiàn)的,其硬件資源有主頻400MHz, 內(nèi)存64MB,一個以太網(wǎng)口, 三個串行口,一個SD卡接口。本文中的可執(zhí)行程序、設(shè)備功能描述文件以及日志文件都是保存在SD中的。
故而,軟件實現(xiàn)主要考慮論如何合理地實現(xiàn)的MMS-EASE Lite數(shù)據(jù)接口、高效地完成與監(jiān)測設(shè)備的數(shù)據(jù)通訊。
1.?dāng)?shù)據(jù)接口
客戶端獲取服務(wù)器數(shù)據(jù)對象的過程如下:①客戶端解析設(shè)備功能描述文件獲取對象的語義路徑,以之為參數(shù)請求讀數(shù)據(jù)服務(wù);②服務(wù)器端應(yīng)用程序訪問內(nèi)存中該對象的實例后,將結(jié)果傳遞給通信映射程序,然后將其映射為MMS的讀響應(yīng)服務(wù); ③將響應(yīng)報文按客戶端組織報文的流程發(fā)送給客戶端;④客戶端接收到報文后分析、確認(rèn)為讀數(shù)據(jù)服務(wù)的響應(yīng)。
此可見,客戶端是數(shù)據(jù)的消費者,而數(shù)據(jù)的生產(chǎn)者則是不同廠商的液位監(jiān)測設(shè)備。為了能夠程序少改動、甚至不改動的情況下,#大限度兼容不同廠家的液位監(jiān)測設(shè)備,本文在在消費者與生產(chǎn)者之間增加了用內(nèi)存實現(xiàn)的數(shù)據(jù)庫作為二者的數(shù)據(jù)接口。
以數(shù)據(jù)集dsMeasure為例,shou先為該數(shù)據(jù)集中的數(shù)據(jù)對象定義通用的數(shù)據(jù)結(jié)構(gòu)
DATA_YC.
typedef struct
{
FLOATfValue;
UINT16 uQuality;
MMS_UTC_TIME utc;
}DATA_YC
其中fValue為數(shù)據(jù)值,uQuality為數(shù)據(jù)品質(zhì),utc為UTC(shijie標(biāo)準(zhǔn)時)格式的時標(biāo)。
然后分配內(nèi)存區(qū)域容納RDB_YC型的數(shù)組
typedef struct
{
UINT16 uDevId;
UINT16 uGrpNum;
UINT16 uItemNum;
DATA_YC dataYc;
}RDB_YC;
其中uDevId用于區(qū)分監(jiān)測不同油罐的液位儀設(shè)備,uGrpNum用于區(qū)分相同設(shè)備中的不同數(shù)據(jù)集,例如3.1中與液位相關(guān)的數(shù)據(jù)和與進(jìn)油相關(guān)的數(shù)據(jù)屬于不同的分組,uItemNum則同一個數(shù)據(jù)集中的不同數(shù)據(jù)項。
通過uDevId、uGrpNum、uItemNum可以有效地將之與數(shù)據(jù)對象的語義路徑非常好地關(guān)聯(lián)起來,如此服務(wù)器在為客戶端提供數(shù)據(jù)服務(wù)時,只需查看內(nèi)存中的關(guān)系數(shù)據(jù)庫即可,這一方面wuxu擔(dān)心直接向液位儀查詢數(shù)據(jù)而導(dǎo)致服務(wù)響應(yīng)超時,令一方面也不必關(guān)心具體的液位儀類型。
利用內(nèi)存關(guān)系數(shù)據(jù)庫的另一個優(yōu)點,可以方便地檢查每2次數(shù)據(jù)之間變化的覺對值和相對值,為判斷數(shù)據(jù)品質(zhì),如溢出、越界、抖動、不一致,提供直接依據(jù)。
2﹒串行數(shù)據(jù)通訊
發(fā)送命令、等待響應(yīng)、接收數(shù)據(jù)、分析結(jié)果Modbus串行數(shù)據(jù)通訊的常見模式,但作者發(fā)現(xiàn)等待時間過短會造成響應(yīng)數(shù)據(jù)接收的遺漏,等待時間過長則又會嚴(yán)重地影響嵌入式系統(tǒng)的運行效率,使得客戶端的服務(wù)請求經(jīng)常得不到及時的響應(yīng)。經(jīng)過權(quán)衡,本文采用圖4所示的方式與液位儀進(jìn)行數(shù)據(jù)通訊。
圖4顯示本文以2個好立的線程分別處理串行口數(shù)據(jù)的發(fā)送和接收工作。shou先,IEC61850服務(wù)程序可以接收客戶端發(fā)來的遠(yuǎn)程操作命令,同時用定時器周期性地查詢液位儀以及油泵的測量數(shù)據(jù)、狀態(tài)信息以及告警信息。為了使同一時刻到達(dá)的命令可以井然有序地通過串行口發(fā)送,本文用同步原語的方式將這些命令緩存于命令鏈表CallList中。在向CallList中添加節(jié)點之前,需要遍歷鏈表,以確保所添加的命令類型是非常好的。
其次,當(dāng)函數(shù)Uart_Write()被調(diào)用時,它從CallList中取出一個命令節(jié)點并以設(shè)備相關(guān)的方式構(gòu)造Modbus數(shù)據(jù)報文,構(gòu)造好的數(shù)據(jù)包添加到待發(fā)送數(shù)據(jù)鏈表SendList中。寫串行口的線程周期性地檢查SendList中是否有待發(fā)數(shù)據(jù),若有則調(diào)用操作系統(tǒng)所提供的接口函數(shù)將數(shù)據(jù)序列寫入串行口。與此同時,UartWrite()啟動超時定時器,如果所發(fā)報文在指定的時間內(nèi)未得到響應(yīng),重發(fā)一次報文,若仍無響應(yīng),則通知IEC61850的客戶端:“設(shè)備通訊連接中斷”。
#后,串行口接收線程周期地讀串行口,無論讀出多少數(shù)據(jù)都將之依先后順序存入數(shù)據(jù)接收緩沖區(qū),供數(shù)據(jù)分析函數(shù)使用。分析函數(shù)根據(jù)具體設(shè)備的Modbus規(guī)約檢查數(shù)據(jù)的完整性、正確性。如果接收長度不足以構(gòu)成一個完整的數(shù)據(jù)報文,則暫不作分析;如果通過數(shù)據(jù)完整性和正確性的檢查就進(jìn)行數(shù)據(jù)解析,根據(jù)報文的種類解析出信息結(jié)果,并將結(jié)果放入內(nèi)存關(guān)系數(shù)據(jù)庫中;同時將解析過程所消耗的字節(jié)數(shù)從接收緩沖區(qū)中刪除,剩余數(shù)據(jù)作為下一個數(shù)據(jù)報文的內(nèi)容留作以后分析使用。
一次成功的數(shù)據(jù)分析說明從SendList發(fā)出的數(shù)據(jù)報文得到了正確的響應(yīng),此時即可再次觸發(fā)函數(shù)Uart_Write()的執(zhí)行。從這里可以看到,Uart_Write()中設(shè)置超時定時器的一個重要目的:防止所發(fā)數(shù)據(jù)報文得不到響應(yīng)后,導(dǎo)致整個發(fā)送流程中斷,進(jìn)而影響與其它設(shè)備的正常通訊。
至此,本文將與具體液位儀設(shè)備相關(guān)的Modbus協(xié)議隱藏在了IED設(shè)備內(nèi)部,而對外統(tǒng)一地顯露IEC61850數(shù)據(jù)服務(wù)接口,有效地消除了傳統(tǒng)液位儀與后臺信息系統(tǒng)間的強耦合關(guān)系。
五、應(yīng)用實踐
文中所設(shè)計的智能液位變送器,本文結(jié)合常州鐘樓儲油罐液位儀以及油泵監(jiān)測設(shè)備做了實地應(yīng)用實驗。所有的液位儀和油泵監(jiān)測設(shè)備都通過RS485掛接在工控板的2個串行口上。設(shè)定IED的服務(wù)器名稱為YG21MONT,其局域網(wǎng)地址為192.168.1.21,而控制中心對設(shè)備的了解只來自設(shè)備功能描述文件。借助互聯(lián)網(wǎng)的遠(yuǎn)程登陸服務(wù),位于南京的控制中心可成功地連接IED設(shè)備,并實現(xiàn)數(shù)據(jù)信息的獲取,如圖5所示,其中左側(cè)是監(jiān)測對象列表,右側(cè)為監(jiān)測數(shù)據(jù)現(xiàn)實。
應(yīng)用實踐表明,無論在IED設(shè)備內(nèi)部獲取測量數(shù)據(jù)的方式如何,但它對外都采用了統(tǒng)一的IEC61850數(shù)據(jù)服務(wù),這使得數(shù)據(jù)信息系統(tǒng)與具體液位儀設(shè)備不再相互依賴,故而本文所設(shè)計的新型液位智能變送器是成功的。
六、 結(jié)束語
本文利用IEC61850協(xié)議設(shè)計和實現(xiàn)了新型液位變送器,它具有以下幾個特點:
1﹒所變送的數(shù)據(jù)對象可以根據(jù)油庫管理信息化的需要自由擴展,不受液位儀具體的型號限制;
2﹒客戶端/服務(wù)器端(即IED設(shè)備端)不存在著直接的耦合關(guān)系,二者的技術(shù)升級不再相互影響,可以好立進(jìn)行;
3﹒測量數(shù)據(jù)除了擁有數(shù)值屬性外,還具有品質(zhì)和時標(biāo)屬性,測量數(shù)據(jù)還可以實現(xiàn)歷史追溯,為分析IED設(shè)備的故障提供了便利。
目前,雖然所設(shè)計的IED設(shè)備預(yù)留了遙控功能的接口,但具體實現(xiàn)尚未完成,這也是后續(xù)工作的重點。
相關(guān)文章tuijian:差壓液位變送器在油田中的應(yīng)用及常見故障分析、相關(guān)產(chǎn)品tuijian:雙法蘭液位計、