摘要:隨著技術(shù)的發(fā)展,原先互不相干的互聯(lián)網(wǎng)和現(xiàn)場總線,得以相互延伸與整合,大大豐富了工業(yè)控制的手段。在原先由軟PLC與現(xiàn)場總線技術(shù)構(gòu)建的Web監(jiān)控系統(tǒng)中,再集成應(yīng)用RIA技術(shù),使得這種基于RIA架構(gòu)的Web遠(yuǎn)程監(jiān)控,既實(shí)現(xiàn)了現(xiàn)場總線網(wǎng)絡(luò)內(nèi)網(wǎng)與Intemet外網(wǎng)之間的信息交換,又利用RIA和多層結(jié)構(gòu)提高了系統(tǒng)的性能,改善了用戶體驗(yàn),形
摘要:隨著技術(shù)的發(fā)展,原先互不相干的互聯(lián)網(wǎng)和現(xiàn)場總線,得以相互延伸與整合,大大豐富了工業(yè)控制的手段。在原先由軟PLC與現(xiàn)場總線技術(shù)構(gòu)建的Web監(jiān)控系統(tǒng)中,再集成應(yīng)用RIA技術(shù),使得這種基于RIA架構(gòu)的Web遠(yuǎn)程監(jiān)控,既實(shí)現(xiàn)了現(xiàn)場總線網(wǎng)絡(luò)內(nèi)網(wǎng)與Intemet外網(wǎng)之間的信息交換,又利用RIA和多層結(jié)構(gòu)提高了系統(tǒng)的性能,改善了用戶體驗(yàn),形成了一種有效的工業(yè)控制與管理信息化的集成解決方案。
關(guān)鍵詞:RIA;軟PLC;Web監(jiān)控;現(xiàn)場總線
現(xiàn)場總線控制技術(shù)融合了最新的網(wǎng)絡(luò)技術(shù),促進(jìn)了從標(biāo)準(zhǔn)以太網(wǎng)延伸到工業(yè)控制領(lǐng)域的進(jìn)程,這種進(jìn)程使得通過Web對遠(yuǎn)程或惡劣工業(yè)環(huán)境中的實(shí)時(shí)監(jiān)控成為可能 與此同時(shí),RIA(riehInternetapplieation,富因特網(wǎng)應(yīng)用)技術(shù)的發(fā)展改善了傳統(tǒng)的Web應(yīng)用的體驗(yàn) 為此,在Web遠(yuǎn)程監(jiān)控中運(yùn)用RIA架構(gòu),利用RIA的異步傳輸和局部刷新技術(shù),可以改善數(shù)據(jù)快速交互,滿足實(shí)時(shí)性的要求,也提供了一種更直觀、更好的用戶體驗(yàn)。
1系統(tǒng)結(jié)構(gòu)
基于RIA架構(gòu)和軟PLC技術(shù)的Web現(xiàn)場總線控制系統(tǒng)主要由3個(gè)模塊組成,分別是現(xiàn)場UO!監(jiān)控中心和Web應(yīng)用 其結(jié)構(gòu)如圖l所示 .
系統(tǒng)模塊的邏輯功用是:現(xiàn)場FO采集控制現(xiàn)場設(shè)備的運(yùn)行狀況數(shù)據(jù),然后經(jīng)現(xiàn)場總線交送給監(jiān)控中心,同時(shí)也可以接受監(jiān)控中心發(fā)回的邏輯控制指令;監(jiān)控中心由軟PLC構(gòu)成,主要發(fā)送指令至現(xiàn)場FO,完成預(yù)設(shè)的邏輯控制動作,同時(shí)也接受由Web應(yīng)用發(fā)來的干預(yù)指令 而Web應(yīng)用則形成了遠(yuǎn)程的監(jiān)控界面 其中涉及的主要技術(shù)包括用于控制邏輯的軟PLC!用于數(shù)據(jù)采集的遠(yuǎn)程FO端子,以及帶來更好的用戶體驗(yàn)的基于RIA的Web應(yīng)用 .
2系統(tǒng)硬件技術(shù)特點(diǎn)
2.1軟PLC
軟PLC即軟件形式的邏輯控制器,以軟件形式封裝實(shí)現(xiàn)硬件PLC的全部功能 相比于傳統(tǒng)的硬件PLC,軟PLC是基于PC機(jī)的,這使得它既能完成傳統(tǒng)PLC的邏輯控制功能,同時(shí)更易于融入現(xiàn)場總線網(wǎng)絡(luò)的體系結(jié)構(gòu),便于采用一系列開放的國際工業(yè)標(biāo)準(zhǔn),實(shí)現(xiàn)真正意義上的工業(yè)自動化與信息化的無縫集成 目前,軟PLC的執(zhí)行標(biāo)準(zhǔn)是IEC61131一 該標(biāo)準(zhǔn)的定義涵蓋了PLc整個(gè)生命周期的各個(gè)部分,如設(shè)備調(diào)試!安裝維護(hù)!編程語言!設(shè)備通信等 該標(biāo)準(zhǔn)定義的PLC編程語言,包括了目前使用最廣泛的5種:梯形圖(ladderdia腳m)!結(jié)構(gòu)文本(strueturelist)!J頃序功能圖(sequentialfunetionehart)!功能塊圖(funetionbloekdi聊m)和指令表(instruetionlist)[.] 軟PLe工作原理圖如圖2所示 .
基于RIA和軟PLC的現(xiàn)場總線監(jiān)控系統(tǒng)采用了Bekhoff公司的軟PLC產(chǎn)品TwinCAT,TwinCAT軟件系統(tǒng)支持IEc61巧8公布的全部現(xiàn)場總線標(biāo)準(zhǔn),其編程環(huán)境完全支持IEC61131一3,還可以根據(jù)不同需求和用戶喜好實(shí)現(xiàn)上述5種PLC編程語言的混合編程 使用時(shí)只需在PC機(jī)上插加對應(yīng)不同現(xiàn)場總線協(xié)議的通信卡,就可以對連接在現(xiàn)場總線上的現(xiàn)場設(shè)備進(jìn)行邏輯控制 為了實(shí)現(xiàn)控制現(xiàn)場物理FO節(jié)點(diǎn)與軟PLc中的FO控制變量的數(shù)據(jù)組態(tài)映射,TwinCAT提供了系統(tǒng)管理器(systemman路er),如圖3所示 .
2.2OPC數(shù)據(jù)交換
本系統(tǒng)中,軟PLC與Web應(yīng)用之間的數(shù)據(jù)交換是用oPe(o比fo:proeesseontrol)實(shí)現(xiàn)的,作為一種得到微軟公司支持的用于信息交換技術(shù)的標(biāo)準(zhǔn)接口,OPC的主要技術(shù)包括:
1.COM/nCOM(eomponentobjeetmodeFdistributedc0M,組件對象模型/分布式組件對象模型標(biāo)準(zhǔn)) .他是微軟公司開發(fā)的通信組件,支持不同網(wǎng)絡(luò)的不同對象之間的相互通信。
2.OLE(objeetlinkingandembedding,對象鏈接和嵌人技術(shù))。定義和實(shí)現(xiàn)了一種允許應(yīng)用程序作為軟件 對象 (數(shù)據(jù)集合和操作數(shù)據(jù)的函數(shù))彼此進(jìn)行 連接 的機(jī)制,也是由微軟公司制定的在應(yīng)用程序之間傳輸和共享信息的一組綜合標(biāo)準(zhǔn)。
3.ActiveX。是一些以D幾(動態(tài)鏈接庫)為主要表現(xiàn)形式的組件或文檔,使用時(shí)以引用方式插人應(yīng)用程序。ActiveX組件的應(yīng)用技術(shù)基礎(chǔ)是組件對象模型(COM)。
4.TwinCAT軟件。在數(shù)據(jù)交換時(shí)提供了一個(gè)基于AetiveX技術(shù)的AdsOex.Oex控件,借助于該控件,TwinCAT可方便快捷地實(shí)現(xiàn)與VB、C#或Delphi之間的數(shù)據(jù)交換。軟PLC中對應(yīng)實(shí)際FO的變量常采用變量數(shù)組進(jìn)行定義,下面的代碼通過Adsocx聲明了變量數(shù)組ErmrRetl[20]。
2.3遠(yuǎn)程I/O端子
遠(yuǎn)程FO端子是分布于現(xiàn)場總線末端用來連接控制現(xiàn)場各種傳感器、操作終端和控制器的端子,用于收集現(xiàn)場監(jiān)控信號。其物理鏈路是:現(xiàn)場設(shè)備的各種I/0信號-總線端子-現(xiàn)場總線耦合器-計(jì)算機(jī)中的現(xiàn)場總線通信卡-PC機(jī)-軟PLC。對于不同的控制和監(jiān)控對象(如開關(guān)信號、模擬信號、轉(zhuǎn)速信號等),可以通過更換不同類型的I/O端子來實(shí)現(xiàn)。如需采用不同的總線協(xié)議,如profibus、InterbuS、CAN、ControlNET等,只需更換該物理鏈路中的總線通信卡和現(xiàn)場總線藕合器,同時(shí)對總線拓?fù)渥飨鄳?yīng)調(diào)整即可 本系統(tǒng)中的TwinCAT軟件PLC支持IEC61158標(biāo)準(zhǔn)中包含的主要總線協(xié)議,無需針對不同總線協(xié)議作特別調(diào)整.
3軟件系統(tǒng)的實(shí)現(xiàn)
3.1RIA技術(shù)
與基于文本的傳統(tǒng)Web頁面相比,在基于RIA的Web應(yīng)用中,由于數(shù)據(jù)能夠被異步緩存在客戶端,故可實(shí)現(xiàn)接口更健壯、反應(yīng)更靈敏、響應(yīng)速度更快并具有媲美桌面系統(tǒng)界面功能的Web應(yīng)用。
RIA是基于XML、腳本語言和WebServiee的。對開發(fā)者而言,應(yīng)用RIA技術(shù)有著多種途徑:基于Flash的Flex、基于.NET技術(shù)的SilverUght及基于Java技術(shù)的JavaFX等。相比較而言,Flash的強(qiáng)大影響使得Flex技術(shù)成為廣受青睞的解決方案,Flex編程模型、Flash等各個(gè)產(chǎn)品也構(gòu)成了完整的RIA開發(fā)平臺。對用戶而言,使用Flex與使用Flash一樣,無系統(tǒng)平臺和瀏覽器兼容性問題,只需在客戶端運(yùn)行環(huán)境中安裝有FlashPlayer就可以了。
由于RIA的應(yīng)用模型是多層架構(gòu)的,與此對應(yīng),本系統(tǒng)的結(jié)構(gòu)被劃分成明顯的功能單元和多層邏輯結(jié)構(gòu):客戶層、表示層、業(yè)務(wù)邏輯層和資源層(見圖4)。這種多層架構(gòu)可以降低系統(tǒng)各層之間的藕合度,使得客戶端與數(shù)據(jù)庫隔離,這樣既可有效地保證系統(tǒng)的安全可靠,又使系統(tǒng)具有較好的可擴(kuò)展性與可維護(hù)性。
3.2多層邏輯結(jié)構(gòu)
1.客戶層。由基于RIA的Web應(yīng)用來實(shí)現(xiàn)。使用瀏覽器,系統(tǒng)可以顯示所有的動態(tài)監(jiān)控?cái)?shù)據(jù)和完成控制指令設(shè)置等操作。基于RIA的Web應(yīng)用采用Flex的開發(fā)語言ActionScriPt3.0和編譯器,使用時(shí)Flex會在weh服務(wù)器中生成和發(fā)布swf文件,并在客戶端Web瀏覽器訪問服務(wù)器時(shí),由客戶端的FlashPlayer下載和運(yùn)行。
2.表示層。Flex本身不能直接與數(shù)據(jù)庫通信,系統(tǒng)的表示層是用ASP.NET來完成的,當(dāng)用戶需要進(jìn)行數(shù)據(jù)交換時(shí),AsP.NET服務(wù)器負(fù)責(zé)與數(shù)據(jù)庫的通信(由ASP.NET經(jīng)由中間層提供的ServieeInterface接口進(jìn)行訪問)。Flex本身可以通過多種方式和Socket進(jìn)行數(shù)據(jù)交換,如WebService、HTTPSerVice、RemoteObject等。本系統(tǒng)采用了WebService方式。下面為使用webservice進(jìn)行數(shù)據(jù)交互通信的一個(gè)簡單示例。
首先準(zhǔn)備后臺服務(wù)端的WebService。
這里,使用wsdl設(shè)置WebServiee的URL,最終,由load的onRequest()方法指定testService調(diào)用webService的MyTest()。其中onSuccess()方法用于處理調(diào)用成功的信息,而onFault()用于處理調(diào)用失敗的信息。
3.中間層。所有與數(shù)據(jù)有關(guān)的處理,如并發(fā)操作,完整性和一致性控制、安全控制等都是在這一層完成。
4.業(yè)務(wù)層。完成控制系統(tǒng)需求的業(yè)務(wù)邏輯,由軟PLC對經(jīng)由現(xiàn)場采集的I/O數(shù)據(jù)按照業(yè)務(wù)需求加工處理,并保存和更新數(shù)據(jù)庫數(shù)據(jù)。與常見的多層體系相同,在業(yè)務(wù)層中完成系統(tǒng)的數(shù)據(jù)庫訪問事務(wù)。如需要將系統(tǒng)整合到企業(yè)的信息管理系統(tǒng)中,可以通過業(yè)務(wù)層以定制方式組織各公用數(shù)據(jù)庫的連接。通常認(rèn)為,這是一種值得推薦的企業(yè)生產(chǎn)信息管理模式。
5.資源層。資源層是為系統(tǒng)提供資源服務(wù)的,如數(shù)據(jù)庫的數(shù)據(jù)資源。開發(fā)者也可以利用該層集成與整合企業(yè)的其他信息資源。
3.3完成中間層
系統(tǒng)多層架構(gòu)中的中間層的實(shí)現(xiàn)主要依托WebService。WebService主要利用HTTP和SOAP(simpleobjectaccessprotocol)協(xié)議使業(yè)務(wù)數(shù)據(jù)在Web傳輸,也就是說,webService在系統(tǒng)中形成了一種多層應(yīng)用通信機(jī)制的規(guī)范。這樣,中間層可以做到:遠(yuǎn)程監(jiān)控用戶可以從Web頁面直接調(diào)用中間層組件,從而不再需要建立某些相關(guān)的互動頁面,提高了系統(tǒng)開發(fā)效率。系統(tǒng)網(wǎng)頁的開發(fā)是基于C#的,使用WebService時(shí),直接使用了.NET的SOAP客戶端。
系統(tǒng)運(yùn)行時(shí),用戶通過瀏覽器訪問遠(yuǎn)程監(jiān)控現(xiàn)場的操控頁面并對控制節(jié)點(diǎn)發(fā)出控制信號。作為響應(yīng),web頁面以SOAP協(xié)議與WebService組件通信,將獲得的控制信號以參數(shù)形式傳遞給Webservice,再由webservice調(diào)用軟PLC中預(yù)設(shè)的業(yè)務(wù)控制邏輯(TwinCAT程序中的POU(programorganizationunit)并執(zhí)行,從而實(shí)現(xiàn)了對遠(yuǎn)程現(xiàn)場節(jié)點(diǎn)的控制.
在本系統(tǒng)中,實(shí)現(xiàn)WebService的主要步驟是:首先需要生成SOAP代理類:在命令行使用Wsdl.EXE(webservicesDescriptionLanguage)生成代理類:Ws-dl.exe/l:C#/n:mywebservice/out:test.eshttp://292.168.0.4/myControl.asmx;然后,需要編譯并部署代理類,以便將代理類文件myControl.cs編譯為DLL文件,存放在bin文件夾下:CSC/t:libray/out:binmy-Control.dllmyControl.es/r:System.dll/r:System.Web.serviee.dll/r:system.XML,dll。一旦生成代理類后,Web服務(wù)就如同系統(tǒng)的內(nèi)置類般,只需通過在Web應(yīng)用程序項(xiàng)目中 添加Web引用 來建立與WebService的聯(lián)系,就可直接使用Web服務(wù)了。
系統(tǒng)運(yùn)行時(shí),Web頁面首先查詢對WebSercice進(jìn)行分類和描述的UDDI(universaldeseription,discovery,andintegration)協(xié)議注冊表,在完成對指定WebServ-ice的定位后,由代理類對象實(shí)現(xiàn)與實(shí)際的遠(yuǎn)程WebService以SOAP協(xié)議進(jìn)行通信,然后由WebService完成相應(yīng)的業(yè)務(wù)邏輯。這樣,WebService組件作為中間層,形成了與表示層和業(yè)務(wù)層之間的紐帶。
4結(jié)束語
軟PLC+現(xiàn)場總線+分布式遠(yuǎn)程I/O的控制系統(tǒng)集成和利用了PC平臺上的硬件和軟件資源,簡化了工控系統(tǒng)的組成結(jié)構(gòu),提高了效率,也降低了系統(tǒng)成本。以此為基礎(chǔ),再將其與基于RIA的Weh技術(shù)集成,借助RIA架構(gòu)帶來的數(shù)據(jù)異步傳輸和局部刷新,可實(shí)現(xiàn)數(shù)據(jù)快速交互。這樣,只需通過瀏覽器,就可以在遠(yuǎn)程對控制系統(tǒng)完成組態(tài)、診斷和實(shí)時(shí)監(jiān)控,其中的RIA技術(shù)又大大改善了Web監(jiān)控的可視化體驗(yàn)性能與系統(tǒng)的響應(yīng)性能。