何斌全,黃勁松,李瓊峰,黃振林,郭宏海
(1.湖南柿竹園有色金屬有限責任公司, 湖南 郴州市 423037; 2.杭州和利時自動化有限公司, 浙江 杭州 310018)
集控平臺是將礦石開采、加工過程中具有感知、監(jiān)控能力的各類采集傳感器和控制器進行聯(lián)網(wǎng),采集其生產(chǎn)過程中的數(shù)據(jù),再運用數(shù)據(jù)融合、智能分析等技術不斷將分析的結果融入到金屬礦生產(chǎn)過程的各個環(huán)節(jié),從而大幅提高采礦、選礦的工作效率,改善礦石分選質量,降低成本和資源消耗,最終實現(xiàn)將傳統(tǒng)的礦石生產(chǎn)方式轉化為智能化方式。
柿竹園金屬礦集控平臺數(shù)據(jù)接入過程中,存在以下2個問題:設備、測點變化時系統(tǒng)無法自動識別;一部分測點在設備層、監(jiān)控層、執(zhí)行層的信 息已經(jīng)不一致,導致很多功能無法使用。為解決上述問題,采用一種新的數(shù)據(jù)接入方式——即插即用,進行技術研究和設計。功能主要包括:全面感知、實時采集和規(guī)范化集成,用數(shù)字化和可視化方式呈現(xiàn);統(tǒng)一生產(chǎn)數(shù)據(jù)平臺和金屬礦信息模型;基于標準通信協(xié)議解決設備自動接入網(wǎng)絡,實現(xiàn)設備自描述、自接入,做到系統(tǒng)自發(fā)現(xiàn)、自組態(tài)、“零”配置[1]。
當外部設備增加、拆除時(要求該設備具備自描述能力),系統(tǒng)能自動偵測、識別并配置系統(tǒng)資源;不需要重新組態(tài),或僅需要很少量的配置即可完成設備的維護工作。如在礦山自動化系統(tǒng)建設、生產(chǎn)和運維過程中,系統(tǒng)能夠主動發(fā)現(xiàn)生產(chǎn)現(xiàn)場新安裝或拆除的設備(如移動變電站),并根據(jù)設備上送的自描述配置信息動態(tài)分配設備地址,自動識別設備上送的遙測、遙信等實時數(shù)據(jù),并自動更新拓撲線路。
(1)即插即用的設備應支持自描述,設備之間支持互操作。
(2)SCADA系統(tǒng)對設備自動掃描、識別和連接。
(3)SCADA系統(tǒng)對設備的信息模型自動匹配。
(4)SCADA系統(tǒng)對接入的設備具備四遙功能。
(5)SCADA系統(tǒng)可接收設備的事件和日志,并存入系統(tǒng)[2-3]。
(1)各EIP子網(wǎng)通過中繼器或網(wǎng)關設備組成域,域內(nèi)各EIP設備支持互操作,域內(nèi)各節(jié)點可刪減和擴充。
(2)工程師站:組態(tài)工具解析EDS文件,創(chuàng)建設備模板及其對應的設備實例。
(3)通信站:EIP通信協(xié)議站位于SCADA的FEP EIP驅動中,負責和域間的EIP設備通信,遍歷、掃描網(wǎng)絡中的設備。
(4)實時服務站:實時服務站運行實時庫服務,服務在啟動時負責在內(nèi)存中創(chuàng)建設備實例,且對實例進行綁定管理,構建拓撲信息。
(5)操作站:SCADA操作站上提供EIP設備的操作面板和參數(shù)窗口,可對EIP設備進行監(jiān)視和控制,動態(tài)展示設備拓撲結構及設備的運行狀態(tài)[4]。
1.2.1 技術架構
即插即用相關組件與平臺之間的關系(紅色部分)見圖1。
圖1 即插即用相關組件與平臺之間的關系
(1)EIP驅動。設計FEP驅動程序實現(xiàn)和EIP設備的通信,該驅動程序功能設計包含:①驅動配置,F(xiàn)EP組態(tài)工具提供組態(tài)界面,可配置訪問方式、采集周期、用于與實時庫交互信息的數(shù)據(jù)點;②識別設備過程,通過發(fā)送ListIdentity命令,周期檢測目前網(wǎng)絡中存在的EIP設備,根據(jù)掃描情況,將設備標識信息(制造商、類型、型號、序列號、版本)和狀態(tài)信息打包上送至在線對象管理插件;③數(shù)據(jù)采集,解析從實時庫服務下發(fā)的控制信息字符流,向設備發(fā)送控制;從設備采集實時參數(shù),構建信息字符流,向實時庫服務發(fā)送;④與實時服務交互,通過組態(tài)定義的字節(jié)流類型的數(shù)據(jù)點,傳送預先定義好格式的字節(jié)流;⑤通信及鏈路維護,實現(xiàn)EIP通信模型(UCMM、連接管理對象、標識對象、路由對象、端口對象等),負責掃描物理網(wǎng)絡中的設 備,負責建立、維護和釋放與各設備的鏈路[5]。
(2)對象管理插件。對象管理插件分為在線部分和離線部分,離線部分作為數(shù)據(jù)庫組態(tài)工具的插件來實現(xiàn),集成EDS解析器功能,通過解析EDS文件,自動創(chuàng)建設備模板;在線部分作為實時庫服務的插件,被實時庫服務運行時加載,動態(tài)維護設備實例和實際設備的映射關系,構建拓撲信息和位置信息,提供訪問接口。
(3)即插即用HMI組件。以HMI組件的方式設計和實現(xiàn),圖形打開時加載該組件,功能設計包含:圖中構建設備的拓撲圖,更新設備的運行狀態(tài);提供操作面板,執(zhí)行遙控、遙調命令;提供參數(shù)窗口,展示設備遙測、遙信信息。
1.2.2 功能架構
即插即用相關組件的功能架構見圖2。
圖2 即插即用相關組件功能架構
驅動框架對象:繼承于驅動框架基礎類,實現(xiàn)主板、端口、設備相關功能。
UCMM對象:用于建立、斷開驅動與EIP設備的連接。
連接管理對象:用于建立、釋放和維護與指定EIP設備的鏈路。
消息路由對象:用于轉發(fā)收到的EIP數(shù)據(jù)報文,將其發(fā)送給最終接收者。
以太網(wǎng)接口對象:用于管理通信所使用的以太網(wǎng)配置信息及分配網(wǎng)絡資源。
應用對象:用于描述當前的EIP驅動對象。
設備管理對象:用于將當前在網(wǎng)絡中掃描到的設備的標識信息和狀態(tài)信息打包傳遞給通知管理對象。
通知管理對象:用于接收設備管理對象上送的數(shù)據(jù)包,然后將其傳送給在線對象管理插件。 EDS解析器:用于解析EIP相關的EDS文件。 模板管理(離線部分):根據(jù)EDS文件自動創(chuàng)建設備模板。
實例管理(在線部分):動態(tài)維護設備實例和實際設備的映射關系。
拓撲管理:根據(jù)設備實例的映射信息和設備的連接參數(shù)信息、位置參數(shù)信息,構建設備間的拓撲信息和位置信息。
數(shù)據(jù)處理:用于打包或解析與FEP進行交互的字節(jié)流信息。
圖元管理對象:獲取實時庫中的設備實例信息,動態(tài)創(chuàng)建、管理、銷毀對應的圖符對象,然后在HMI圖形頁面中顯示。
配置界面:提供EIP設備操作面板,執(zhí)行遙控、遙調操作;提供設備參數(shù)窗口,展示遙測、遙信信息;獲取在線對象管理插件提供的設備間的拓撲關系和位置信息,在HMI頁面上進行繪制[6]。
離線對象管理插件包含EDS解析器、模板管理兩部分,兩者之間的關系見圖3。
圖3 離線對象管理插件
2.1.1 EDS解析器
EDS文件由設備供應商提供,用來描述設備的版本信息、類型信息、設備內(nèi)部的對象信息、參數(shù)信息、連接信息等,文件內(nèi)部的數(shù)據(jù)格式類似于INI配置文件,CIP規(guī)范定義EDS內(nèi)容分段書寫,各段代表不同的信息內(nèi)容,有的段信息獨立,而有的段和其他段又有關聯(lián),所以在設計解析器時,需要考慮各段的解析方法、解析后所構建出的對象間的關聯(lián)關系以及對外部提供的訪問接口。
CEDSInterpreter:EDS解析器類,提供外部可訪問的接口,管理內(nèi)部對象,CEDSInterpreter使用單例模式實現(xiàn)。
CEDSFileReader:讀取EDS文件內(nèi)容,將段信息分隔,以便下一步解析使用。
CEDSNode:段信息解析基類,子類實現(xiàn)對不同類型段的解析方法。
CFileNode:用于解析文件信息段。
CDeviceNode:用于解析設備信息段。
CParamNode:用于解析參數(shù)信息段。
按照CIP規(guī)范定義的段類型依次實現(xiàn),在此不再一一敘述。
CEntry:配置信息段中的鍵值對信息。
2.1.2 模板管理
模板管理用來從EDS中獲取解析信息(段及段內(nèi)的條目信息),然后調用平臺數(shù)據(jù)庫組態(tài)工具提供的數(shù)據(jù)接口,創(chuàng)建對應的設備模板(包括對象屬性及子對象),新創(chuàng)建的模板按照制造商、版本、種類、型號信息進行區(qū)分。
數(shù)據(jù)庫組態(tài)中定義的設備對象、子對象以及屬性的結構應和EDS中定義的對象信息保持一致。
設備對象:EDS文件中非“Object Class”類型的字段;設備子對象:EDS文件中“Object Class”類型的字段;設備屬性:Param定義的相關信息或必要的其他參數(shù)信息。
CInstanceManager:管理組態(tài)過程所有動態(tài)創(chuàng)建的EIP設備相關對象實例,提供外部可訪問的接口,CInstanceManager使用單例模式實現(xiàn)。
CInstanceCreater:用于創(chuàng)建指定類型的實例,提供虛函數(shù)。
CDeviceObjCreater:創(chuàng)建設備類型的實例。
CAccessAdapter:用于訪問平臺數(shù)據(jù)庫的適配器類,使用抽象方法。
CAPIAdapter:使用平臺提供的API接口進行數(shù)據(jù)訪問。
目前V4平臺尚未提供創(chuàng)建設備模板的接口,可按照以下步驟實現(xiàn):按照V4平臺定義的模板結構的格式,創(chuàng)建CSV格式的模板文件;調用平臺提供的導入模板文件的方式在組態(tài)工具中生成。
2.1.3 FEP組態(tài)
FEP服務和實時庫服務之間的交互通過預先定義的FEP設備數(shù)據(jù)點實現(xiàn),在離線組態(tài)工具中組態(tài)一個IO站點,定義一個FEP設備,該FEP設備對應一個EIP主站,無需配置設備地址、端口等,但需要配置掃描周期;在該設備中定義一個字節(jié)流類型的數(shù)據(jù)點,F(xiàn)EP服務通過該數(shù)據(jù)點將掃描的設備信息、得到的設備參數(shù)信息、下發(fā)控制的返回信息等按照指定的格式打包,然后傳遞給實時庫服務的在線對象管理插件,對象管理插件將該數(shù)據(jù)包拆包,然后做后續(xù)處理,反向的數(shù)據(jù)流向和處理方式與正向雷同[7]。
2.2.1 實例管理
實例管理用來動態(tài)維護實時庫預分配的實例和網(wǎng)絡中實際設備的映射關系,從而為外部提供當前可供訪問的實例對象信息。在線對象管理插件以平臺實時庫插件的方式提供,在插件加載的配置文件中配置過程調用接口。
綁定和解除綁定的機制:
(1)實例管理組件獲取當前實時庫中所有EIP類型的預置設備實例,分類型進行管理。
(2)FEP驅動端上送當前網(wǎng)絡掃描的設備全列表及相應狀態(tài)信息,需包含設備唯一標識信息(如設備序列號)和設備制造商及類型信息。
(3)實例管理組件根據(jù)上送的設備全列表信息和當前的實例映射表進行對比,如果未發(fā)現(xiàn)(設備標識信息數(shù)據(jù)點內(nèi)容為空)則新分配一個實例(用得到的設備信息初始化相關數(shù)據(jù)點),如果發(fā)現(xiàn)則更新設備的運行狀態(tài)。
(4)當前的實例映射表中如果未在上送的設備全列表信息中出現(xiàn),則刪除該實例中設備的序列號等信息,解除綁定。
2.2.2 拓撲管理
從實例管理獲得有效的設備實例,然后從每個設備實例獲取拓撲、位置相關的參數(shù)信息,構建成xml格式的數(shù)據(jù)包,該xml表述了當前各實例間的連接關系以及位置關系。
CToplogManager:拓撲管理的實現(xiàn)類。
為實現(xiàn)對設備拓撲的展示,要求設備參數(shù)自身提供位置坐標或與其關聯(lián)設備的連接信息。
2.2.3 實例產(chǎn)生的報警
實例和設備綁定后,如果實例產(chǎn)生報警,則由實時庫服務向報警服務發(fā)送報警事件,此后,如果該設備和實例解除綁定,則本插件負責調用報警服務接口,抑制該設備產(chǎn)生的報警信息;如果后續(xù)該設備重新恢復上線,則本插件負責將原先抑制的報警信息解除抑制[8]。
2.3.1 驅動框架對象
EIP通信驅動程序以DLL方式實現(xiàn),作為一個標準的Fep驅動程序,驅動框架對象繼承于驅動框架基礎類,用于實現(xiàn)打開、關閉、初始化、通信等基本流程,驅動框架對象由FEP服務的驅動管理器對象進行調度。
CFepEIPDrv:實現(xiàn)EIP驅動對象,進行驅動對象的創(chuàng)建、初始化、釋放等。
CFepEIPDevice:對應于EIP網(wǎng)絡中的一個SCANNER設備對象,創(chuàng)建和管理內(nèi)部對象(如UCMM對象、連接管理對象、以太網(wǎng)接口對象等),實現(xiàn)數(shù)據(jù)雙向通信。
CFepEIPPrtcl:內(nèi)部使用基類方法,不重寫,報文和協(xié)議相關的處理由內(nèi)部的設備管理類實現(xiàn)。
(1)UCMM對象。對應于CIP規(guī)范中的 UCMM對象,用于處理未連接報文,包括Forward Open Service、Forward Close Service、Unconnected Send Service,觸發(fā)創(chuàng)建或斷開連接的操作。
CUCMMObject:處理UCMM相關報文的對象。
CCIPObject:CIP規(guī)范中定義的相關類的基類,提供基本的訪問接口。
(2)連接管理對象。對應于CIP規(guī)范中的連接管理對象,用于創(chuàng)建、維護、釋放通信鏈路,交換報文和數(shù)據(jù)信息。
CCMObject:對應于CIP規(guī)范中定義的Connection Manager Object,類代碼0X06,實現(xiàn)規(guī)范中定義的屬性、服務、動作、錯誤碼、定時器和狀態(tài)機。
(3)消息路由對象。對應于CIP規(guī)范中的消息路由對象,用于將接收到的報文信息轉發(fā)給最終的接收者。
CRouterObject:對應于CIP規(guī)范中定義的Message Router Object,類代碼0X02,實現(xiàn)規(guī)范中定義的屬性、服務、動作、錯誤碼和狀態(tài)機。
(4)以太網(wǎng)接口對象。對應于通信過程用到的以太網(wǎng)端口信息,存儲配置數(shù)據(jù),初始化端口,建立TCP或UDP鏈路,發(fā)送或接收以太網(wǎng)數(shù)據(jù)。
CEthernetObject:封裝對以太網(wǎng)的操作,保存配置信息。
(5)應用對象。對應于SCANNER設備對象,讀取配置信息,構建運行環(huán)境,維護內(nèi)部對象。
CAPPObject:對應于CIP規(guī)范中定義的Application Object,對應于本驅動對象實例,作為SCANNER應用對象。
(6)通知管理對象。用于接收設備管理對象上送的當前網(wǎng)絡設備信息(設備列表、設備狀態(tài)、設備參數(shù)等),然后通過FEP設備點將打包的信息發(fā)送給在線實時庫,在線對象管理插件進行拆包,動態(tài)綁定或解除綁定設備對象實例[9]。
CEventCallBackObject:該對象作為回調類被設備管理對象調用。
(7)設備管理對象。掃描、解析當前網(wǎng)絡中的EIP設備,構建設備信息列表,打包數(shù)據(jù),交由通知管理對象。
接收在線對象管理插件發(fā)送的數(shù)據(jù)包,進行拆包,向設備發(fā)送指令。
CScannerObject:周期在EIP網(wǎng)絡中掃描的設備,獲得設備在線信息、狀態(tài)信息。
2.3.2 即插即用HMI組件設計
(1)圖元管理對象。EIP HMI 組件以Activex控件的方式提供,不提供離線組態(tài)頁面,在圖形離線組態(tài)中加入到指定的頁面中,HMI在線打開相關圖形時加載插件。
圖元管理對象屬于該插件的圖元繪制部分,調用在線對象管理插件提供的接口,獲得EIP類型的所有設備對象實例列表和設備信息,包括設備標識、設備名、版本信息、制造商信息、位置信息、設備狀態(tài)、設備圖標等,然后調用HMI平臺接口,動態(tài)創(chuàng)建相應圖元且在界面中顯示。
CEIPHMI:EIP HMI Activex控件主類。
CEIPGraphManager:管理EIP相關圖元的類。
(2)配置界面。CEIPOPPanel提供操作面板窗口,從數(shù)據(jù)庫實例中獲取設備的詳細參數(shù)信息,且以界面的方式展現(xiàn),實現(xiàn)四遙操作。
(3)圖符庫。平臺HMI組態(tài)工具提供EIP相關設備的圖符庫,按照設備的制造廠商、類型、型號、版本號進行歸類管理,圖符可被實例化的屬性包括制造廠商、類型、型號、版本號、設備序列號、設備狀態(tài)、設備位置等信息,且圖符體現(xiàn)EDS中文件定義的各對象及其各對象間的連接關系。
在線運行時,F(xiàn)EP驅動層首先遍歷網(wǎng)絡中的設備,獲取其標識信息、類型信息、運行狀態(tài)信息、位置信息等,然后實時庫服務的在線對象管理插件根據(jù)標識信息動態(tài)和預置實例進行綁定,HMI端從實時庫服務中獲取被綁定的設備實例,然后動態(tài)創(chuàng)建圖元,用設備實例的信息對圖元相關的變量初始化,將底層設備、數(shù)據(jù)庫實例、圖形對象三者關聯(lián)在一起。
集控平臺數(shù)據(jù)接入實現(xiàn)了采礦、選礦過程中數(shù)據(jù)的提取,實現(xiàn)了以生產(chǎn)裝備數(shù)字化、生產(chǎn)過程智能化、數(shù)據(jù)獲取自動化、信息傳輸網(wǎng)絡化、經(jīng)營管理信息化為特點的智能礦山建設初級階段,使企業(yè)生產(chǎn)中的直接勞動生產(chǎn)力提高了15%~30%,間接人工效率提升了30%~40%,能耗降低了5%~8%,設備綜合效率提升了15%左右,設備停機時間下降了20%左右,同時,數(shù)據(jù)不斷累積、分析,為后期利用大數(shù)據(jù)分析技術進行數(shù)據(jù)價值深度挖掘,實現(xiàn)各控制系統(tǒng)的不斷優(yōu)化和管控平臺功能的不斷完善提供了基礎性保障[10]。