999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OPC技術的DCS數據獲取的實現方法

2018-05-14 13:45:46韓萌萌任帥男
科技風 2018年5期

韓萌萌 任帥男

摘 要:介紹了基于OPC技術的DCS數據獲取的原理和方法,結合實際敘述了上位機軟件DCS與OPC服務器之間的通信以及OPC服務器與OPC客戶端之間的通信,重點給出了關鍵程序示例。在OPC數據交換接口的基礎上,后續的上層應用系統的開發變得簡捷高效。

關鍵詞:OPC技術;數據獲取;DCS

中圖分類號:TP273 文獻標識碼:A

隨著企業信息化建設的投資比例增大,許多企業為了實現不同生產裝置的DCS系統和數據采集接口之間的數據通訊,解決生產管理過程中的上層監控與底層控制脫節的問題,提高企業生產效益,OPC技術應運而生。OPC作為軟件和硬件之間數據通信的橋梁,是一種標準。本文應用了OPC技術規范作用于DCS系統實現數據獲取的目的。

1 OPC技術

OPC(OLE for Process Control),是微軟公司以COM/DCOM技術為基礎,采用客戶端/服務器模式,開發出的應用于控制領域的一種工業標準。針對當前工業控制領域不同生產裝置互相通信的要求,OPC為其制定了完整的編程接口屬性和方法,這就為不同設備包括軟硬件之間的交互訪問提供了依據[1]。

OPC既可以應用于本地PC機,同時也支持網絡內不同應用程序間包括跨平臺應用程序間的通訊,實現了硬件設備與系統軟件之間實時通訊。該規范的基本思想是:由支持OPC接口的硬件廠商開發對應其硬件設備的OPC服務器,負責獲取硬件設備生產的數據并暫存;OPC客戶端,即支持OPC接口的系統軟件就可以通過連接OPC服務器來讀寫之前獲取到的數據。OPC連接模式如下圖所示。

OPC服務器支持兩種類型的數據訪問接口:自動化接口(Automation interface);定制接口(Custom interface)。兩種接口定義了OPC客戶端和OPC服務器之間進行通訊的方法。用戶可以自己編寫OPC客戶端程序,在客戶端程序中調用OPC服務器對象接口及對應的方法來訪問OPC服務器讀寫數據。

一個OPC數據訪問服務器中包含3類對象模型,OPC服務器(Server)、OPC組(Group)、OPC項(Item)。它們之間的聯系是Server對象維護有關服務器的信息并作為Group對象的容器,而Group對象維護有關其自身的信息,提供包容Item對象的機制,并管理Item對象[2-3]。

2 OPC客戶端程序的設計開發

這里采用了Java語言編寫的開源項目J-Interop和Utgard實現OPC客戶端[4]。

2.1 Utgard

Utgard屬于Openscada開源項目,基于J-Interop做的,純Java語言編寫,具有跨平臺的特點,用于和OPC Server進行通訊。Openscada可以很好的實現與OPC服務器的連接以及讀寫數據的功能,并且可以隨時獲取和修改OPC的Server和Item的屬性狀態信息等。而J-Intgard是純Java封裝的用于COM/DCOM通訊的開源項目。需要注意的是,在使用Utgard之前需要配置好服務器端的DCOM組件。

2.2 使用Utgard訪問OPC server

開發步驟及相應代碼大致為:

(1)導入關鍵jar包。

(2)編寫配置文件,設置連接服務器的主機用戶密碼等信息。

(3)遍歷當前所連接的服務器上所有支持OPC DA2.0規范的OPC服務器應用。

(4)創建ConnectionInformation類。

final ConnectionInformation ci = new ConnectionInformation();

ci.setHost(host);

ci.setClsid(serverList.getClsIdFromProgId ("Matrikon.OPC.Simulation"));

ci.setUser(user);

ci.setPassword(password);

其中通過Clsid的方式查找OPC Server更快,但如果事先不知道clsid,也可以通過ServerList類的getClsIdFromProgId方法來查詢相應OPC

Server名稱的Clsid。

(5)創建Server類并連接:ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();

Server server = new Server(ci, exec);

server.connect();

(6)Utgard有兩種數據訪問方式——直接通過item的read/write方法或者使用AccessBase(讀取數據)。需要注意的是,不管采用哪一種方式,返回結果都是通過ItemState類來獲取,通過調用ItemState的getValue方法可以獲得訪問結果,返回結果是JIVarant類型的,里面包含了OPC訪問時的各種類型及處理方法。

按照上述方法步驟,使用Utgard連接至OPC服務器,然后使用Async20Access類隔時間段地進行異步讀取數據。客戶端程序在Windows下和Linux下均能成功連接OPC Server,并獲取到數據。

3 結語

本文給出了利用OPC技術實現DCS數據獲取的方法,基于Java語言成功開發出OPC客戶端并實現跨平臺連接OPC服務器。這一構建方法為工業領域上層應用系統的開發提供了一種有效途徑[5]。

參考文獻:

[1]胡強,趙英凱.OPC技術在DCS與工廠管理網數據通訊中的應用[J].工業儀表與自動化裝置,2002(03):25-28.

[2]王燕,王健.OPC接口技術在DCS數據交換中的應用[J].微計算機信息,2010,26(31):48-49+37.

[3]晏明軍.基于Java的OPC客戶端的實現[J].電子技術,2010,47(07):56-57.

[4]孫亮清.用Java實現OPC客戶端[J].上海船舶運輸科學研究所學報,2011,34(01):34-37.

[5]謝鵬華,牛昱光.DCS遠程監控實驗教學系統的OPC技術實現方法[J].太原理工大學學報,2011,42(02):149-154.

主站蜘蛛池模板: 尤物精品国产福利网站| 日韩第一页在线| 亚洲欧美在线精品一区二区| 欧美日韩精品一区二区视频| 久久精品人人做人人综合试看| 国产探花在线视频| 日本精品视频一区二区| 99久久国产精品无码| 国产精品制服| 伊人国产无码高清视频| 熟妇无码人妻| 国产一级视频久久| 免费 国产 无码久久久| 在线毛片免费| 国产在线视频导航| 国产主播福利在线观看| 亚洲天堂首页| 怡春院欧美一区二区三区免费| 亚洲成av人无码综合在线观看| 久久无码av三级| 2018日日摸夜夜添狠狠躁| 亚洲精品人成网线在线| 亚洲A∨无码精品午夜在线观看| 欧美国产日韩在线| 免费高清毛片| 日韩在线观看网站| 久久这里只有精品23| 黄片一区二区三区| 91口爆吞精国产对白第三集| 国产剧情一区二区| 色妺妺在线视频喷水| 国产一区二区三区在线观看免费| 欧美亚洲第一页| 激情视频综合网| 成人在线综合| 91在线视频福利| 国产真实自在自线免费精品| 日韩精品无码一级毛片免费| 亚洲人视频在线观看| 在线欧美一区| 亚洲一区二区三区在线视频| 99这里精品| 国产99视频免费精品是看6| 狠狠色丁香婷婷综合| 亚洲精品波多野结衣| 国产XXXX做受性欧美88| 内射人妻无码色AV天堂| 91欧美在线| 亚洲人成影视在线观看| 国产内射一区亚洲| 毛片网站观看| 亚洲国产精品无码久久一线| 最新国产高清在线| 国产精品久久久久久久久kt| 欧美中文一区| 色综合久久88色综合天天提莫| 国产va视频| 91精品久久久久久无码人妻| 国产成人亚洲日韩欧美电影| 色天天综合| 国产高潮流白浆视频| 野花国产精品入口| 亚洲欧美日本国产综合在线| 久久精品66| 国产幂在线无码精品| 成人毛片在线播放| 老司机久久精品视频| 中文字幕无码电影| 奇米影视狠狠精品7777| 广东一级毛片| 国产色婷婷| 日本欧美成人免费| 精品视频在线一区| 免费一级毛片完整版在线看| 亚洲视频无码| 国产在线日本| 国产欧美日韩va另类在线播放| 欧美色伊人| 欧美精品伊人久久| 成年午夜精品久久精品| 久久久久无码精品国产免费| 丰满的少妇人妻无码区|