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

基于Java的OPC數據采集系統的設計與實現

2019-07-16 03:14:59于波彭亮陳前程
電腦知識與技術 2019年15期

于波 彭亮 陳前程

摘要:針對工業控制領域中生產設備種類繁多,數據通信協議不一致,系統集成越發復雜,使得企業難以實現對生產數據采集等問題,提出基于OPC技術的解決方案。鑒于現今企業上層應用系統多為JavaEE架構,通過采用Java語言實現的Utgard開源類庫與OPC通信技術來構建數據采集系統,這不僅降低企業成本,便于自動化控制,同時也是一種新型工業數據采集方式,具有實際應用價值。

關鍵詞:OPC;Java;Utgard;數據采集系統;工業控制

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

文章編號:1009-3044(2019)15-0116-03

Abstract: In the field of industrial control, there are many kinds of production equipment, inconsistent data communication protocols and more complex system integration, which make it difficult for enterprises to realize production data acquisition. A solution based on OPC technology is proposed. In view of the Java EE architecture of the upper application systems of enterprises nowadays, the data acquisition system is constructed by Utgard open source components and OPC communication technology implemented in Java language. This not only reduces the cost of enterprises and facilitates automatic control, but also is a new type of industrial data acquisition method, which has practical application value.

Key words: OPC; Java; Utgard; Data Acquisition System; Industrial Control

1 背景

傳統工控領域中,為了實現數據采集系統,需要通過驅動程序與現場設備進行數據交換,但由于傳統的過程控制系統是一對一的系統,任何一種上位監控軟件或其他應用軟件,在使用某種硬件設備時都需要開發專用的驅動程序。工作量繁重且不易于系統集成。使用OPC技術可以很好解決上述問題。OPC提供通用的接口規范,用于各種過程控制設備之間的通訊,不論過程中采用何種應用軟件和硬件設備。

由于上層管理軟件越來越多采用Java開發,為了更好地集成,本系統用Java實現。Java語言具有安全性、平臺獨立與可移植性、多線程、動態性等特點 。利用這些特點可以方便高效編寫桌面應用程序、Web應用程序等。同時開發過程中為了不依賴COM組件以及DLL等,保證平臺可移植性,使用純Java開發的Utgard開源類庫與OPC通信。

2 OPC技術

2.1 OPC基本結構與通訊方式

OPC——OLE for Process Contrl,微軟公司制定的一套規范的接口協議,它是為了不同供應廠商的設備和應用程序之間的軟件接口標準化,使其間的數據交換更加簡單化的目的而提出的。它基于OLE、COM、DCOM技術,采用客戶端/服務器(Client/Server)結構,規定了OPC Client與OPC Server之間遵循的規范接口。服務端由控制設備的生產廠商將硬件設備驅動程序和通信程序封裝成獨立的服務器,客戶端通過規范接口與服務端通信,在開發客戶端時可以不包含任何通信接口,程序不必關心揮服務器的最佳性能,底層的硬件設備特性,也不必考慮軟硬件如何如通信,只要遵循數據接口協議,就能夠從服務器中取得數據。標準規訂了2種通信方式:同步通信方式和異步通信。OPC基本結構如圖1所示。

2.2 OPC數據存儲格式

不同于傳統關系型數據庫的表存儲, OPC存儲格式是樹形結構。

服務端主機存有多個OPC Server,每個OPC Server存有多個item,item中存儲內容就是當前生產設備中需要采集與監控的數據項。客戶端在獲取數據時,需指明服務器主機名,具體Server以及需要獲取的item所在路徑。

客戶端除了Server,在其下面還有一個存儲層級Group,它分類存儲Server端的item,所以在獲取item時不僅可以一個個獲取,還可以通過批處理技術,通過創建維護一個個Group,將需要獲取的多個item放到這些Group中,一次性獲取出來,從而降低了每獲取一個item而創建一次連接所帶來的消耗問題。

OPC數據存儲格式如圖2所示:

3 基于Java的OPC數據采集系統的實現

3.1 Kepware作為 OPC服務器

選取Kepware充當OPC服務器,Kepware作為OPC服務器可以方便獲取PLC中的運轉數據等信息,它的優勢在于支持市場上絕大多數的PLC廠商,Kepware主要應用領域有數據采集技術,歷史數據訪問技術以及遠程數據訪問技術等等。

3.2 使用Utgard開源類庫與OPC服務器通訊

Utgard 是一個純Java開發的開源類庫, 是OpenSCADA項目底下的子項目,具有跨平臺特性,全部基于DCOM實現,利用Utgard庫文件,可以實現與OPC服務器進行通訊。它支持在Windows及Linux操作系統上運行,支持組查詢,同步,異步查詢,以及單點的發布訂閱模式。

3.3 MySQL數據庫存儲數據

選用MySQL作為持久化存儲系統,它是一種關系型數據庫,具有體積小、速度快、總體擁有成本低,同時開源免費等特點。使用MySQL存儲生產設備中采集過來的關鍵數據參數,將這些數據采集存儲起來,可以方便日后追溯。這些數據適用于各種類型的過程和生產控制,它可以追溯到產品的以下信息:哪個零件被安裝于成品中了?產品生產過程中,產生了哪些需要控制的關鍵參數,是否都合格?以及對當前制造過程的嚴密控制等等。

3.4 數據采集系統設計實現

首先在本地操作系統環境好配置好DCOM,接著使用Utgard實現OPC數據采集系統,在Eclipse項目工程中導入openscada.opc.dcom 和openscada.opc.lib 2 個庫,其中openscada. opc. dcom 庫使用 J-Interop 實現了與 DCOM 的交互,openscada.opc.lib 庫實現了 OPC 接口程序,這些庫是用 Java 開發。使用Utgard提供的API函數,建立與OPC服務器的連接,讀取和寫入OPC服務器中的變量的參數值,將這些變量的值地傳遞給軟件系統,進而持久化存儲起來,采集進追溯系統。數據采集流程如圖3所示。

4 數據采集系統的軟件編程實現

OPC數據存取服務器由三個對象組成:服務器對象(Server)、組對象(Group)和項對象(Item)。通過與OPC Server建立連接后即可讀取數據或寫入數據。Utgard支持三種讀取數據方式,分別是同步查詢,異步查詢,發布訂閱模式查詢,支持一種寫入方式,同步寫入。以下是數據采集系統編程實現關鍵API展示:

4.1 與OPC Server建立連接

ConnectionInformation ci = newConnectionInformation();

ci.setHost(ipAddress); //OPC Server的主機地址

ci.setDomain("");

ci.setUser("opcUser");// DCOM配置中OPC用戶

ci.setPassword("123456");//OPC用戶密碼

ci.setClsid("7BC0CC8E-482C-47CA-ABDC-0FE7F9C6E729"); //Kepware軟件在注冊表的ID

Server server = new Server(ci, Executors.newSingleThreadScheduledExecutor());//啟動服務

server.connect();

4.2 Item的同步查詢

Group group = server.addGroup();

Item item = group.addItem("Random.Real5");

System.out.println(“ItemName:” + item.getId() + “Value:" + item.read(false).getValue());

server.dispose();

4.3 Item的異步查詢

AccessBase access = new SyncAccess(server, PERIOD);

access.addItem("Random.Real5", new DataCallback() {

public void changed(Item item, ItemState itemstate) {

System.out.println("ItemName:"+item.getId()+"value:" + itemstate.getValue());

}

});

access.bind();

Thread.sleep(SLEEP);

access.unbind();

server.dispose();

4.4 Item的發布訂閱查詢

AccessBase access = new Async20Access(server, PERIOD, false);

access.addItem("Random.Real5", new DataCallback() {

private int count;

public void changed(Item item, ItemState itemstate) {

System.out.println("ItemName:"+item.getId()+"value:" + itemstate.getValue()); }

});

access.bind();

access.unbind();

server.dispose();

4.5 Item的同步寫入

Group group = server.addGroup();

Item item = group.addItem("Square Waves.Real4");

final Float[] integerData = new Float[] { 1202f, 1203f, 1204f };

final JIArray array = new JIArray(integerData, false);

final JIVariant value = new JIVariant(array);

item.write(value);

server.dispose();

5 結束語

隨著工業生產的快速發展,企業生產規模越發龐大,生產設備逐日增多,使用OPC技術可以有效簡化生產過程控制中數據采集任務的簡化。使用OPC技術可以使得現場控制設備與上層控制系統和生產管理軟件之間的通訊更加方便靈活。本系統采用Java語言開發,可以更好地與現今Java EE企業架構系統集成,同時利用純Java編寫的Utgard開源類庫與OPC服務器通信,具有平臺無關性,可移植性等優點,同時在穩定性和擴展性上都具有很大的操作性,這種新型的數據采集方式有很大的實際應用場景。

參考文獻:

[1] 王林. 基于SOA的生產運行管理系統的設計與實現[M]. 北京: 電子工業出版社, 2015.

[2] 李堃弸. 測控領域中基于 VB的數據采集的設計與實現[J]. 微計算機信息,2005(1): 46-47.

[3] 盧宏, 汪金良, 曾青云. 基于OPC技術的WinCE實時數據采集[J].自動化博覽, 2006(8): 58-60.

[4] 劉莉. 用VB編寫OPC客戶端程序的方法[J]. 工業控制計算機,2005,18(5):5-6.

[5] 王俊萍. OPC技術在擴展SCADA系統中的應用[J]. 現代電子技術,2005(10):42-44.

[6] 馬增良, 蘭斌. OPC數據訪問服務器實現機制研究[J]. 計算機工程與應用,2003, 39(21): 65-67.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 欧美中文字幕在线播放| 日本色综合网| 九色视频最新网址| 97在线免费| 亚洲av无码久久无遮挡| 91精品日韩人妻无码久久| 日本91在线| 一本色道久久88综合日韩精品| 喷潮白浆直流在线播放| 亚洲第一页在线观看| 欧美日本在线| 国产区免费| 国产亚洲视频中文字幕视频| 99伊人精品| 久热re国产手机在线观看| 激情无码字幕综合| 国产女人在线观看| 欧美日韩北条麻妃一区二区| 亚洲人成在线精品| 午夜影院a级片| 国产精品一区在线麻豆| 国产91视频免费观看| 成人精品午夜福利在线播放| 亚洲无码高清一区二区| 任我操在线视频| 亚洲第一黄色网| 亚洲综合第一页| 99视频在线看| 久久精品亚洲热综合一区二区| 伊人国产无码高清视频| 91欧美在线| 一个色综合久久| 77777亚洲午夜久久多人| 免费jjzz在在线播放国产| av在线5g无码天天| 又黄又爽视频好爽视频| 国产福利不卡视频| 国产成人精品高清在线| 午夜视频www| 性欧美精品xxxx| 国产真实二区一区在线亚洲| 无码乱人伦一区二区亚洲一| 激情无码字幕综合| 青青草91视频| 欧美激情福利| 国产女人在线观看| yjizz视频最新网站在线| 色香蕉影院| 少妇高潮惨叫久久久久久| 日韩激情成人| 囯产av无码片毛片一级| 久久动漫精品| 亚洲天堂777| 精品久久久久久中文字幕女| 国产一区二区免费播放| 亚洲国语自产一区第二页| 国产成人亚洲无码淙合青草| 国产黄色片在线看| 成人久久18免费网站| 最新国产麻豆aⅴ精品无| 国产一级毛片网站| 77777亚洲午夜久久多人| 亚洲精品亚洲人成在线| 欧美综合成人| 亚洲A∨无码精品午夜在线观看| 3344在线观看无码| 亚洲一区二区日韩欧美gif| 国产在线视频二区| 国产成人a在线观看视频| 亚洲精品高清视频| 免费高清毛片| 国产欧美日韩综合在线第一| 情侣午夜国产在线一区无码| 精品成人一区二区| 99精品在线视频观看| 欧美在线视频不卡第一页| 99精品福利视频| 亚洲三级成人| 欧美一级高清免费a| 五月天综合婷婷| 在线观看亚洲天堂| 天堂在线视频精品|