發布日期:2022-04-27 點擊率:742 品牌:組態王_Kingview
OPC(OLE for process control)作為標準軟件接口,可以使各個生產商的設備和應用程序就能以統一的方式連接起來。WinCC 既可以用作 OPC 服務器提供數據,又可以作為 OPC 客戶機訪問其他OPC 服務器中的數據。WinCC集成的OPC服務器使得過程數據可由其它應用程序(OPC客戶機)訪問。在Excel中可以通過VBA腳本建立OPC 客戶端,并通過OPC接口讀取WinCC中的數據,并將修改的數據寫入WinCC。
1 OPC規范及功能
OPC是一種一致的獨立于制造商的軟件接口。OPC 接口基于 Microsoft Windows 的 COM(組件對象模型)和 DCOM(分布式組件對象模型)技術。 另一方面,OPC XML 則基于 Internet 標準 XML、SOAP 和 HTTP。
> COM
COM 是位于同一計算機上且屬于不同程序的對象之間進行通訊時采用的標準協議。服務端是提供服務的對象,比如提供數據。客戶端是使用由服務端提供的服務的應用程序。
> DCOM
DCOM 代表 COM 功能的擴展,從而允許對遠程計算機上的對象的訪問。
該接口允許在企業、管理辦公室和生產的應用程序之間進行標準化的數據交換。以前,訪問過程數據的應用程序受限于通訊網絡的訪問協議。使用 OPC 標準軟件接口,各個生產商的設備和應用程序就能以一致的方式連接起來。
OPC 客戶端是訪問過程數據、消息和 OPC 服務端歸檔歷史數據的應用程序。訪問需要通過 OPC 軟件接口。
OPC 服務端是一個程序,它為不同制造商的應用程序提供一個標準的軟件接口。OPC 服務端是在處理過程數據的應用程序、各種網絡協議和用于訪問這些數據的接口之間的中間層。
只有當設備的操作系統是基于 Windows COM 和 DCOM 技術時,才能使用 OPC 軟件接口進行數據交換。 目前,Windows 2000、Windows XP、Windows 2003 Server 和 Windows VISTA 具有這些軟件接口。
> XML
通過 DCOM 的通訊僅限于局域網。通過 XML 的數據交換使用 SOAP(簡單對象訪問協議)。SOAP 是獨立于平臺的、基于 XML 的協議。SOAP 可用于允許應用程序依靠 HTTP(超文本傳送協議),通過 Internet 或在多機種計算機網絡內相互進行通訊。
OPC 標準軟件接口由 OPC 基金會定義。OPC 基金會是工業自動化領域中處于領先地位的各公司的聯盟。WinCC 的 OPC 服務端支持下列規范。
OPC 數據訪問 1.0、2.05a 和 3.0
OPC 歷史數據訪問 1.20
OPC 報警和事件 1.10
OPC XML 數據訪問 1.01
OPC 數據訪問 (OPC DA) 是針對管理過程數據的規范。 WinCC OPC DA 服務端符合 OPC DA 規范 1.0、2.05a 和 3.0。
OPC 歷史數據訪問 (OPC HDA) 是針對管理歸檔數據的規范。該規范是 OPC 數據訪問規范的擴充。 WinCC V6.2 或更高版本的 WinCC OPC HDA 服務端符合 OPC HDA 規范 1.20。
OPC 報警和事件是發送過程報警和事件的補充規范。 WinCC V6.0 或更高版本的 WinCC OPC A&E 服務端符合 OPC A&E 規范 1.10。
OPC XML 標準支持通過 Internet 采用獨立于平臺的協議進行通訊。 客戶端不再局限于 Windows 環境 (DCOM)。 其它操作系統(如 LINUX)可以使用 HTTP 協議和 SOAP 接口在 Internet 上監視和交換 OPC 數據。
要使用 WinCC OPC HDA、WinCC-OPC-XML-DA 服務器和 WinCC OPC A&E 服務器,必須購買Connectivity Pack“連通性軟件包”授權。 “連通性軟件包” 授權必須安裝在用作 WinCC OPC HDA 服務器、WinCC OPC XML DA 服務器或 WinCC OPC A&E 服務器的 WinCC 服務器上。
2 在Excel中通過OPC DA訪問本地WinCC
WinCC OPC DA 服務器為其它應用程序提供 WinCC 項目的實時數據。 應用程序能夠在同一臺計算機上運行或在已聯網的遠程計算機上運行。 以這種方法,將WinCC 變量的實時數據提供給 Microsoft Excel。
在Microsoft Excel 中用VBA腳本語言建立OPC 客戶端,并通過OPC接口讀取WinCC中的數據,并將修改的數據寫入WinCC。通過OPC接口,Microsoft Excel作為OPC 客戶端發起通訊并發送讀/寫請求到OPC服務器,OPC服務器執行這些讀/寫請求。對于WinCC OPC DA 服務器功能,需要將WinCC項目運行系統激活即可。
為了能夠運行Excel中的VBA宏腳本,首先需要調整安全性設置。如圖1在“工具->宏->安全性”中,將Excel的安全級別設置為“中”。
圖1 安全性設置
打開文件excel_opc .xls,在“安全警告”中選擇“啟用宏”。
圖2啟用宏
在A1單元格輸入運行WinCC的計算機名稱。A3/A4單元格輸入WinCC中變量的名稱。點擊按鈕“啟動 WinCC OPC”,對應WinCC變量的當前值即可讀入到Excel單元格中。直接在B3/B4單元格中修改數值,對應WinCC中的變量值也會隨之修改。點擊按鈕“停止 WinCC OPC”,停止Excel與WinCC的OPC數據訪問。
以下為Microsoft Excel 作為客戶端的配置說明。
在Excel中創建一個接口,在VisualBasic 編輯器中的“工具->引用”中,選中“Siemens OPC DA Automation 2.0”組件,使VisualBasic能夠識別OPC對象。
圖3 OPC引用組件
創建所需的所有對象,如:“MyOPCGroup”對象
Dim: 創建一個變量
WithEvents: 這個對象可以提供事件(如 DataChange)
MyOPCGroup: 對象名
As OPCGroup: 變量類型
圖4
Sub StartClient() ’Microsoft Excel建立與OPC服務器的連接;
Set MyOPCServer = New OpcServer ’為“MyOPCServer”對象分配內存;
? MyOPCServer.Connect ServerName, NodeName
ServerName :WinCC OPC DA 服務器的名稱為 "OPCServer.WinCC"
NodeName:激活WinCC運行系統的計算機名稱
Set MyOPCGroupColl = MyOPCServer.OPCGroups
Microsoft Excel與OPC服務器的連接一旦建立,OPC組即被創建。這個通過集合對象來實現;
Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)
創建的組通過“MyOPCGroup”變量來尋址。設置MyOPCGroup.IsSubscribed = True,以便OPC組能夠提供DataChange等事件。
Set MyOPCItemColl = MyOPCGroup.OPCItems ’創建OPC項
MyOPCItemColl.AddItems 2, ItemIDs, ClientHandles, ServerHandles, Errors
ItemIDs 存儲在單元格A3/A4中,把指定的ItemIDs 傳送給集合對象"MyOPCItemColl.AddItems"
Private Sub MyOPCGroup_DataChange()
在Microsoft Excel中,調用如下用于OPC組事件處理的程序,它是OPC服務器的DataChange 事件,DataChange()這個事件處理程序提供了許多參數,如ItemValue(OPC項的值),客戶端句柄等。通過DataChange事件,當OPC項的值變化時,數據會自動發送。OPC項的當前值顯示在單元格B3/B4中。讀出值的質量代碼和時間戳顯示在C/D列單元格中。
Private Sub worksheet_change()
如果在Microsoft Excel的單元格B3/B4中輸入一個值,通過函數MyOPCGroup.SyncWrite將OPC項寫入到WinCC,寫入值和服務器句柄以參數形式傳遞給此函數。
Sub StopClient()
最后,斷開與OPC服務器的連接。
3 在Excel中通過OPC DA遠程訪問WinCC
可以通過DCOM從OPC客戶端遠程訪問OPC服務器WinCC OPC DA。但在A1單元格需要輸入的是遠程激活WinCC運行系統的計算機名稱。
圖5在Excel中通過OPC DA遠程訪問WinCC
由于遠程OPC的使用是作為一個DCOM在使用,所以OPC客戶端可以在網絡上任何一臺計算機運行,但是必須要配置DCOM的訪問權限。一個簡單的方法就是,在服務器與客戶端都使用相同的用戶名與密碼登錄。如果想配置DCOM,請參考DCOM配置的相關資料及下載中心文檔: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