韓濱旭,沈玉玲,龐海亮
(上海電氣集團股份有限公司中央研究院,上海 200070)
組態軟件作為現今中央監控系統的主要開發工具正運用于眾多工業控制領域例如:石油、化工、制造業、污水處理、樓宇、軌道交通。在具體的監控系統工程實施中,所使用的設備例如終端信號采集設備和信號傳輸設備因行業需求的不同而有所區別。比如,在污水處理、軌道交通等環境監控系統中,大多使用PLC、智能儀表等信號采集和自動控制設備,這就導致了設備端到中央監控系統的數據傳輸通信協議也有所不同。另外,行業內的設備的通信協議尚無統一標準,因為傳輸介質的不同又衍生了眾多不同的通信準則。例如基于串口的施耐德公司莫迪康Modbus-RTU協議和其基于網絡TCP/IP的Modbus-TCP/IP協議,它們是基于兩種傳輸接口與介質的不同協議。因此,組態軟件作為可以適應于多行業的中央監控系統開發工具,需要多種通信協議驅動支持。
目前,在電力行業需求側監控系統開發過程中,組態軟件作為上位機系統開發的工具正廣泛被使用。IEC60870-5-104規約是基于網絡的對電力系統進行調度通信的通信標準,已經在上位中央監控系統與電力二級設備之間廣泛的使用,比如電力遠動終端單元RTU、通信管理機等等。如何在組態軟件中實現IEC60870-5-104規約推動組態軟件在電力行業應用的關鍵問題。本文將討論IEC60870-5-104規約在組態軟件中具體的驅動開發實現。
組態軟件是針對監控系統開發的專業工具,可為用戶提供針對數據采集以及過程控制的專業開發環境和系統運行環境。它們是在自動控制系統監控層一級的軟件平臺,通過用圖像組態形式替代傳統的編程方式,友好的開發環境為高效開發監控系統打下堅實的基礎[1]。上海電氣集團股份有限公司的NetControl是一款針對多行業監控系統應用的組態開發工具,此軟件基于Windows操作系統與微軟.NET的技術平臺通過C#編程語言進行開發,即將推出的2.0版本可在Windows所有32位和64位操作系統環境下運行,其具有內涵豐富的動畫圖庫、工程控件庫以及具有良好的網絡及數據管理能力。
由于組態軟件的通信驅動是相對獨立的,所以組態軟件對于通信驅動的管理方式都有其獨特性。NetControl的I/O采用的是基于接口與協議廠家的驅動管理方式,通信驅動的開發是基于不同的接口方式與軟件I/O服務器進行數據交互,現在所有的接口方式分類為串口類、以太網類以及板卡類型,根據三種不同驅動開發類型提供與I/O服務器連接的不同接口。同時通信驅動的開發具有與軟件開發界面的接口以及軟件工程變量讀寫的接口。由于組態軟件的通信驅動的開發與組態軟件的開發環境與運行環境的高度相關,通信驅動首先要讀取用戶配置并根據用戶配置與具體協議形成報文格式和解析方式。本文將以NetControl軟件為例具體介紹IEC60870-5-104規約的軟件通信驅動實現。
由于組態軟件NetControl具體傳輸方式以及物理接口調用等與OSI七層模型中應用層之下層的處理均在I/O服務器完成,針對本文所探討的問題即TCP/IP的網絡服務處理均在I/O服務器中完成。通信驅動只需要考慮104規約如何與NetControl的結合,即具體實現組態軟件中的報文組成和解析。
104規約中報文幀格式有兩種,即變長幀與定長幀,而每一幀均是一個應用規約數據單元(APDU),變長幀由應用規約控制信息(APCI)與應用服務數據單元(ASDU)組成,應用規約數據單元(APDU)長度是指從控制域第一個八位位組開始到幀尾的長度,APDU的最大長度為253(減去啟動字符與長度兩個字節),啟動字符68H十進制為104定義了數據流的起點,如圖1所示。

圖1 104規約變長幀格式[2]
定長幀僅由應用規約控制信息(APCI)構成,沒有應用數據服務單元(ASDU),總長度為6個八位位組即6個字節,而應用規約數據單元(APDU)長度固定為4個字節,通常,定長幀用于通信的監視功能以及通信過程的控制如激活連接、激活停止連接等,如圖2所示。

圖2 104規約定長幀格式[2]
根據應用規約控制信息的不同組成,104規約應用數據單元可分成三種不同幀類型:編號的信息傳輸類型I格式幀、編號的監視功能類型S格式幀與未編號的控制功能類型U格式幀。
同時根據報文所包含的數據類型的不同,數據功能不同,傳輸類型的不同等,104規約規定了ASDU的幀組成結構,如圖3所示。

圖3 應用規約數據單元ASDU結構[2]
在組態軟件的104規約通信驅動開發中正是結合用戶開發環境接口與運行環境還有以上報文格式根據規約的通信過程以及功能描述進行程序開發。
在組態軟件中,用戶進行I/O配置時首先需要選擇與現場實際情況相符的通信協議。之后如果是基于以太網的協議需要配置TCP/IP的相關參數例如:IP地址、端口號(104規約中規定為2404)等。同時還要針對具體規約例如104規約的具體內容進行配置,因為不同設備廠家在104規約的報文組成格式上是有差異的。如果要適用于多數場合那么在驅動開發時就要開放104規約幀結構中數據長度可自定義的部分的接口供用戶根據實際壞境設定,例如設備站號(即公共地址)、公共地址長度、信息體長度、傳輸原因長度[2],在驅動開發中通過開發環境開放的接口進行XAML語言設計,效果如圖4所示。

圖4 用戶信息配置效果
而對于用戶配置信息讀寫的后臺邏輯則通過XAML的后臺源代碼與其他類進行綁定,

類IEC104ConfigData可為后續的在運行環境下的報文組成與報文解析提供用戶信息配置的參數。
雙Boost單相逆變器并網控制策略//黃松偉,唐芬,肖琦,劉京斗,辛振,PohChiang LOH//(16):167
在運行環境的驅動開發中,首先需要讀取用戶在開發環境下的參數配置。通過新建一個104規約的模型類IEC104Protocol并生成一個類IEC104ConfigData在IEC104Protocol的實例可以獲得用戶在開發環境下的參數配置,之后在IEC104Protocol中根據參數配置定義104規約的幀結構。
在一般電力中央監控系統中,組態軟件提供遙信(只讀開關量)、遙測(只讀模擬量)、遙控(只寫開關量)、遙調(只寫模擬量)等四個“四遙”的寄存器區間。NetControl運行環境中,因為通信方式的關系104規約通信過程的實現又分為兩個部分:讀指令與寫指令。在只讀部分中,104規約中在總召喚指令發出后,設備端即被控站會將遙信與遙測的信息主動陸續上發到控制站即中央監控系統所以這相當于是一個類似于“主動上傳”的方式而寫指令的步驟是“預置”、“預置確認”、“遙控執行”一直到“執行確認”,這個過程類似是“輪詢”的機制[4]。組態軟件的I/O服務器接口提供了選擇通信工程收發報文方式的接口,104規約屬于輪詢與主動上傳的聯合模式。

104規約在運行環境中的過程首先是從本地初始化開始,一直到總召喚后進入數據采集階段,過程如圖5所示。

圖5 104規約驅動流程
中間沒有寫指令的內容是因為在I/O服務器中寫指令作為高優先級可中斷通信過程直接執行而并不是周期性的執行,由于104規約對于初始化沒有特殊要求則初始化選擇默認的系統初始化,并將用戶參數傳遞到新生成的IEC104Protocol實例中:

通過調用重載的方法Connect()完成鏈路連接,它需要生成一個新的TaskInfo實例,其中包含了驅動需要封裝的下發報文CommandInfo(),以及需要返回的報文格式信息ResponseInfo(),之后通過I/O服務器執行發送CommandInfo()中需要下發的報文并按照ResponseInfo()中規定的格式篩選返回報文,建立連接的第一步就是首次握手,首次握手的報文獲取是從類UFrame中獲取:

在服務方法ServiceMethod中,重載ProcessServiceR esponse(ServiceProcessInfo info, byte[] data)依據功能具體定義的名字info.ServiceID對特定過程(例如首次握手“FirstHandshake”)返回結果data進行解析并通過SetServiceResult(serviceID,result)返回解析結果,并可以進行下一步對時和總召喚過程與首次握手一致。總召喚因為廠家的區別,有全程只做一次總召喚也有定時總召喚或事件觸發下次總召喚,但進行下次總召喚前都需要設備端即被控端發送本次總召喚的結束楨。所以104規約在組態軟件中的驅動可根據總召喚的結束楨來發下一次的總召喚,而判斷是否發下一次總召喚是在重載主動上發的報文分析重載方法中進行的:如果收到的字節數組的傳輸原因即第九和第十個字節是0x0A和0x00那么就是總召喚結束楨[2]。而其他所有的遙信與遙測楨以及變位主動上傳均是在此方法中進行解析,并通過Registers()的方法返回給組態軟件中的寄存器組:b

當在傳輸過程中出現遙控或者遙調這些高優先級寫指令時,如前所述的傳輸過程會出現中斷并執行寫指令的傳輸過程,如圖6所示。

圖6 遙控指令傳輸過程
而組態軟件提供用戶對組態軟件中用戶生成寄存器組(即通常工程中的點表)的讀取,則使用CreateSampleGroup的方法建立數據下發的打包,最后根據具體遙控、遙調的報文屬性(例如是單點或是雙點)生成IFrame中的新實例并通過重載方法BuildWriteTaskInfo配置報文信息,再通過執行寫指令重載方法ExecuteWriteCommand進行下發。
本文詳細介紹了組態軟件中IEC60870-5-104規約通信驅動的實現過程,解決了104規約與組態軟件應如何結合以適應不同場合的應用,通過對用戶配置信息的讀取和104規約幀格式模式的建立,與軟件各項接口配合開發出具體的104規約驅動。此方法適用于多種商用組態軟件,并在之后的使用過程中不斷改進,為相關組態軟件產品在電力行業的推廣應奠定基礎。
[1] 歐金成,歐世樂,林德杰,彭備戰.組態軟件的現狀與發展[J].自動化博覽,2002,19(2):42-45.
[2] DL/T634.5104-2002.遠動設備及系統第5-104部分:傳輸規約采用標準傳輸協議子集的IEC60870-5-101,網絡訪問[S].
[3] 馬曉紅,管荑,林祺蓉.104規約在調度自動化系統中的應用[J].山東電力技術,2011,(6):1-5,14.
[4] 趙淵,沈智健.基于TCP/IP的IEC60870-5-104遠動規約在電力系統中的應用[J].電網技術,2003:27(10):56-60,71.