當前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)安全產(chǎn)品 > 安全觸邊
發(fā)布日期:2022-04-27 點擊率:766 品牌:組態(tài)王_Kingview
OPC(OLE for process control)作為標準軟件接口,可以使各個生產(chǎn)商的設(shè)備和應(yīng)用程序就能以統(tǒng)一的方式連接起來。WinCC 既可以用作 OPC 服務(wù)器提供數(shù)據(jù),又可以作為 OPC 客戶機訪問其他OPC 服務(wù)器中的數(shù)據(jù)。WinCC集成的OPC服務(wù)器使得過程數(shù)據(jù)可由其它應(yīng)用程序(OPC客戶機)訪問。在Excel中可以通過VBA腳本建立OPC 客戶端,并通過OPC接口讀取WinCC中的數(shù)據(jù),并將修改的數(shù)據(jù)寫入WinCC。
1 OPC規(guī)范及功能
OPC是一種一致的獨立于制造商的軟件接口。OPC 接口基于 Microsoft Windows 的 COM(組件對象模型)和 DCOM(分布式組件對象模型)技術(shù)。 另一方面,OPC XML 則基于 Internet 標準 XML、SOAP 和 HTTP。
> COM
COM 是位于同一計算機上且屬于不同程序的對象之間進行通訊時采用的標準協(xié)議。服務(wù)端是提供服務(wù)的對象,比如提供數(shù)據(jù)??蛻舳耸鞘褂糜煞?wù)端提供的服務(wù)的應(yīng)用程序。
> DCOM
DCOM 代表 COM 功能的擴展,從而允許對遠程計算機上的對象的訪問。
該接口允許在企業(yè)、管理辦公室和生產(chǎn)的應(yīng)用程序之間進行標準化的數(shù)據(jù)交換。以前,訪問過程數(shù)據(jù)的應(yīng)用程序受限于通訊網(wǎng)絡(luò)的訪問協(xié)議。使用 OPC 標準軟件接口,各個生產(chǎn)商的設(shè)備和應(yīng)用程序就能以一致的方式連接起來。
OPC 客戶端是訪問過程數(shù)據(jù)、消息和 OPC 服務(wù)端歸檔歷史數(shù)據(jù)的應(yīng)用程序。訪問需要通過 OPC 軟件接口。
OPC 服務(wù)端是一個程序,它為不同制造商的應(yīng)用程序提供一個標準的軟件接口。OPC 服務(wù)端是在處理過程數(shù)據(jù)的應(yīng)用程序、各種網(wǎng)絡(luò)協(xié)議和用于訪問這些數(shù)據(jù)的接口之間的中間層。
只有當設(shè)備的操作系統(tǒng)是基于 Windows COM 和 DCOM 技術(shù)時,才能使用 OPC 軟件接口進行數(shù)據(jù)交換。 目前,Windows 2000、Windows XP、Windows 2003 Server 和 Windows VISTA 具有這些軟件接口。
> XML
通過 DCOM 的通訊僅限于局域網(wǎng)。通過 XML 的數(shù)據(jù)交換使用 SOAP(簡單對象訪問協(xié)議)。SOAP 是獨立于平臺的、基于 XML 的協(xié)議。SOAP 可用于允許應(yīng)用程序依靠 HTTP(超文本傳送協(xié)議),通過 Internet 或在多機種計算機網(wǎng)絡(luò)內(nèi)相互進行通訊。
OPC 標準軟件接口由 OPC 基金會定義。OPC 基金會是工業(yè)自動化領(lǐng)域中處于領(lǐng)先地位的各公司的聯(lián)盟。WinCC 的 OPC 服務(wù)端支持下列規(guī)范。
OPC 數(shù)據(jù)訪問 1.0、2.05a 和 3.0
OPC 歷史數(shù)據(jù)訪問 1.20
OPC 報警和事件 1.10
OPC XML 數(shù)據(jù)訪問 1.01
OPC 數(shù)據(jù)訪問 (OPC DA) 是針對管理過程數(shù)據(jù)的規(guī)范。 WinCC OPC DA 服務(wù)端符合 OPC DA 規(guī)范 1.0、2.05a 和 3.0。
OPC 歷史數(shù)據(jù)訪問 (OPC HDA) 是針對管理歸檔數(shù)據(jù)的規(guī)范。該規(guī)范是 OPC 數(shù)據(jù)訪問規(guī)范的擴充。 WinCC V6.2 或更高版本的 WinCC OPC HDA 服務(wù)端符合 OPC HDA 規(guī)范 1.20。
OPC 報警和事件是發(fā)送過程報警和事件的補充規(guī)范。 WinCC V6.0 或更高版本的 WinCC OPC A&E 服務(wù)端符合 OPC A&E 規(guī)范 1.10。
OPC XML 標準支持通過 Internet 采用獨立于平臺的協(xié)議進行通訊。 客戶端不再局限于 Windows 環(huán)境 (DCOM)。 其它操作系統(tǒng)(如 LINUX)可以使用 HTTP 協(xié)議和 SOAP 接口在 Internet 上監(jiān)視和交換 OPC 數(shù)據(jù)。
要使用 WinCC OPC HDA、WinCC-OPC-XML-DA 服務(wù)器和 WinCC OPC A&E 服務(wù)器,必須購買Connectivity Pack“連通性軟件包”授權(quán)。 “連通性軟件包” 授權(quán)必須安裝在用作 WinCC OPC HDA 服務(wù)器、WinCC OPC XML DA 服務(wù)器或 WinCC OPC A&E 服務(wù)器的 WinCC 服務(wù)器上。
2 在Excel中通過OPC DA訪問本地WinCC
WinCC OPC DA 服務(wù)器為其它應(yīng)用程序提供 WinCC 項目的實時數(shù)據(jù)。 應(yīng)用程序能夠在同一臺計算機上運行或在已聯(lián)網(wǎng)的遠程計算機上運行。 以這種方法,將WinCC 變量的實時數(shù)據(jù)提供給 Microsoft Excel。
在Microsoft Excel 中用VBA腳本語言建立OPC 客戶端,并通過OPC接口讀取WinCC中的數(shù)據(jù),并將修改的數(shù)據(jù)寫入WinCC。通過OPC接口,Microsoft Excel作為OPC 客戶端發(fā)起通訊并發(fā)送讀/寫請求到OPC服務(wù)器,OPC服務(wù)器執(zhí)行這些讀/寫請求。對于WinCC OPC DA 服務(wù)器功能,需要將WinCC項目運行系統(tǒng)激活即可。
為了能夠運行Excel中的VBA宏腳本,首先需要調(diào)整安全性設(shè)置。如圖1在“工具->宏->安全性”中,將Excel的安全級別設(shè)置為“中”。

圖1 安全性設(shè)置
打開文件excel_opc .xls,在“安全警告”中選擇“啟用宏”。

圖2啟用宏
在A1單元格輸入運行WinCC的計算機名稱。A3/A4單元格輸入WinCC中變量的名稱。點擊按鈕“啟動 WinCC OPC”,對應(yīng)WinCC變量的當前值即可讀入到Excel單元格中。直接在B3/B4單元格中修改數(shù)值,對應(yīng)WinCC中的變量值也會隨之修改。點擊按鈕“停止 WinCC OPC”,停止Excel與WinCC的OPC數(shù)據(jù)訪問。
以下為Microsoft Excel 作為客戶端的配置說明。
在Excel中創(chuàng)建一個接口,在VisualBasic 編輯器中的“工具->引用”中,選中“Siemens OPC DA Automation 2.0”組件,使VisualBasic能夠識別OPC對象。

圖3 OPC引用組件
創(chuàng)建所需的所有對象,如:“MyOPCGroup”對象
Dim: 創(chuàng)建一個變量
WithEvents: 這個對象可以提供事件(如 DataChange)
MyOPCGroup: 對象名
As OPCGroup: 變量類型

圖4
Sub StartClient() ’Microsoft Excel建立與OPC服務(wù)器的連接;
Set MyOPCServer = New OpcServer ’為“MyOPCServer”對象分配內(nèi)存;
? MyOPCServer.Connect ServerName, NodeName
ServerName :WinCC OPC DA 服務(wù)器的名稱為 "OPCServer.WinCC"
NodeName:激活WinCC運行系統(tǒng)的計算機名稱
Set MyOPCGroupColl = MyOPCServer.OPCGroups
Microsoft Excel與OPC服務(wù)器的連接一旦建立,OPC組即被創(chuàng)建。這個通過集合對象來實現(xiàn);
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
創(chuàng)建的組通過“MyOPCGroup”變量來尋址。設(shè)置MyOPCGroup.IsSubscribed = True,以便OPC組能夠提供DataChange等事件。
Set MyOPCItemColl = MyOPCGroup.OPCItems ’創(chuàng)建OPC項
MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
ItemIDs 存儲在單元格A3/A4中,把指定的ItemIDs 傳送給集合對象"MyOPCItemColl.AddItems"
Private Sub MyOPCGroup_DataChange()
在Microsoft Excel中,調(diào)用如下用于OPC組事件處理的程序,它是OPC服務(wù)器的DataChange 事件,DataChange()這個事件處理程序提供了許多參數(shù),如ItemValue(OPC項的值),客戶端句柄等。通過DataChange事件,當OPC項的值變化時,數(shù)據(jù)會自動發(fā)送。OPC項的當前值顯示在單元格B3/B4中。讀出值的質(zhì)量代碼和時間戳顯示在C/D列單元格中。
Private Sub worksheet_change()
如果在Microsoft Excel的單元格B3/B4中輸入一個值,通過函數(shù)MyOPCGroup.SyncWrite將OPC項寫入到WinCC,寫入值和服務(wù)器句柄以參數(shù)形式傳遞給此函數(shù)。
Sub StopClient()
最后,斷開與OPC服務(wù)器的連接。
3 在Excel中通過OPC DA遠程訪問WinCC
可以通過DCOM從OPC客戶端遠程訪問OPC服務(wù)器WinCC OPC DA。但在A1單元格需要輸入的是遠程激活WinCC運行系統(tǒng)的計算機名稱。

圖5在Excel中通過OPC DA遠程訪問WinCC
由于遠程OPC的使用是作為一個DCOM在使用,所以O(shè)PC客戶端可以在網(wǎng)絡(luò)上任何一臺計算機運行,但是必須要配置DCOM的訪問權(quán)限。一個簡單的方法就是,在服務(wù)器與客戶端都使用相同的用戶名與密碼登錄。如果想配置DCOM,請參考DCOM配置的相關(guān)資料及下載中心文檔:A0265 如何配置OPC DCOM。
WinCC在安裝時提供了OPC的客戶端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll),這個控件就是在VBA中引用到的控件。如果運行Excel的計算機上沒有安裝WinCC,可以使用批處理文件注冊dll文件。將整個文件夾 Reg拷貝到C:盤下,雙擊reg opc即可。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV