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