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