怎樣通過OPCClient與世紀星交互
發布時間:2019-08-02 15:36:10來源:
1 OPC簡介
OPC是 OLE for Process Control 的縮寫,即把 OLE 技術應用于工業控制領域。
OPC的出現為基于Windows的應用程序和現場過程控制應用建立了橋梁。在過去,為了存取現場設備的數據信息,每一個應用軟件開發商都需要編寫專用的接口函數。由于現場設備的種類繁多,且產品的不斷升級,往往給用戶和軟件開發商帶來了巨大的工作負擔。通常這樣也不能滿足工作的實際需要,系統集成商和開發商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設備驅動程序。在這種情況下,OPC標準應運而生。OPC標準以微軟公司的 OLE技術為基礎,它的制定是通過提供一套標準的OLE/COM接口完成的,在OPC技術中使用的是 OLE2技術,OLE標準允許多臺微機之間交換文檔、圖形等對象。
OPC是以OLE/COM機制作為應用程序的通訊標準。OLE/COM是一種客戶/服務器模式,具有語言無關性、代碼重用性、易于集成性等優點。OPC規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發中脫離出來。
應用程序與OPC服務器之間必須有 OPC 接口,OPC 規范提供了兩套標準接口:Custom 標準接口,OLE 自動化標準接口。通常在系統設計中采用OLE自動化標準接口,OLE 自動化標準接口,及采用 OLE 自動化技術進行調用,其技術為上節所述的 OLE 自動化技術。OLE 自動化標準接口定義了以下三層接口,依次呈包含關系:
1)OPC Server:OPC 啟動服務器,獲得其他對象和服務的起始類,并用于返回 OPC Group 類對象。
2)OPC Group:存儲由若干 OPC Item 組成的 Group 信息,并用于返回 OPC Item 類對象。
3)OPC Item:存儲具體 Item 的定義、數據值、狀態值等信息。
2 采用OPC規范設計系統的優勢
1)OPC規范以 OLE/DCOM 為技術基礎,而 OLE/DCOM 支持 TCP/IP 等網絡協議,因此可以將各個子系統從物理上分開,分布于網絡的不同節點上。
2)OPC按照面向對象的原則,將一個應用程序(OPC 服務器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統一的方式去調用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從低層的開發中脫離出來。
3)OPC實現了遠程調用,使得應用程序的分布與系統硬件的分布無關,便于系統硬件配置以及使得系統的應用范圍更廣。
4)采用OPC規范,便于系統的組態化,將系統復雜性大大簡化,可以大大縮短軟件開發周期,提高軟件運行的可靠性和穩定性,便于系統的升級與維護。
5)OPC 規范了接口函數,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而實現系統的開放性,易于實現與其它系統的接口。
3 使用VB6.0編寫OPC Client訪問世紀星
世紀星同時提供OPC Client和OPC Server兩種功能,想要通過OPC方式和世紀星交換數據,必須要編寫OPC Client和OPC Server其中的任意一種。由于編寫OPC Server程序具有一定難度,所以我們建議工程技術人員開發OPC Client來和世紀星的OPC Server交互。
1)世紀星工程
使用OPC Client訪問世紀星是不需要在世紀星中做任何特殊配置的,我們在世紀星中創建如下類型變量。在應用程序命令語言中讓這些變量發生變化。
圖1 變量列表
圖2 應用程序命令語言腳本
圖3 世紀星運行畫面
2)VB6.0編寫OPC Client
A、腳本
Option Explicit
Dim WithEvents opcSvr As OPCServer
Dim WithEvents opcGrp As OPCGroup
Dim opcItm(3) As OPCItem
Dim opcInt As Variant
Dim opcInfo As Variant
Dim opcDsc As Variant
Dim v As Variant
Dim q As Variant
Dim t As Variant
Private Sub cmdConnect_Click()
On Error GoTo ed
If opcSvr Is Nothing Then Set opcSvr = New OPCServer
opcSvr.Connect "CenturyStar.OPCServer", txtIP.Text
opcSvr.OPCGroups.DefaultGroupUpdateRate = 50
Set opcGrp = opcSvr.OPCGroups.Add("Group")
Set opcItm(0) = opcGrp.OPCItems.AddItem("opcInt", 1)
Set opcItm(1) = opcGrp.OPCItems.AddItem("opcInfo", 2)
Set opcItm(2) = opcGrp.OPCItems.AddItem("opcDsc", 3)
Set opcItm(3) = opcGrp.OPCItems.AddItem("opcFlt", 4)
If opcSvr.ServerState = 1 Then
MsgBox "opc服務器已連接!", vbOKOnly, "提示:"
tmrRun.Enabled = True
cmdConnect.Enabled = False
cmdDisConnect.Enabled = True
Else
MsgBox "opc服務器連接錯誤!", vbOKOnly, "提示:"
End If
ed:
End Sub
Private Sub cmdDisConnect_Click()
On Error GoTo ed
tmrRun.Enabled = False
opcSvr.OPCGroups.RemoveAll
opcSvr.Disconnect
Set opcSvr = Nothing
cmdDisConnect.Enabled = False
cmdConnect.Enabled = True
ed:
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo ed
cmdDisConnect_Click
ed:
End
End Sub
Private Sub tmrRun_Timer()
On Error GoTo ed
tmrRun.Enabled = False
If opcSvr.ServerState Then
opcItm(0).Read 1, v, q, t
txtInt.Text = v
opcItm(1).Read 1, v, q, t
txtInfo.Text = v
opcItm(2).Read 1, v, q, t
txtDsc.Text = v
opcItm(3).Read 1, v, q, t
txtFlt.Text = v
End If
tmrRun.Enabled = True
ed:
End Sub
B、畫面
圖4 OPC Client界面
3)示例說明
A、使用OPC之前可能需要安裝OPC Data Access 2.0 Components。
B、聯網運行需要配置DCOM,配置的詳細情節請參考世紀星幫助或世紀星安裝光盤中的《世紀星OPC Server配置指南》。
C、本例只演示從世紀星中讀取數據,讀者可自行研究回寫數據的例子。
4 世紀星 OPC Server 配置指南
由于Windows XP SP2操作系統的安全特性非常高,所以配置也相對其他系統而言是比較復雜的。下面以 Windows XP SP2操作系統為例來說明CenturyStar OPCServer的配置方法。
1) CenturyStar OPCServer的安裝
在安裝CenturyStar的過程中,CenturyStar OPCServer和OPC的核心組件會自動被安裝到計算機上。安裝成功后,計算機上會注冊有一個服務器: CenturyStar. OPCServer。
2)Windows安全性配置
1.防火墻
第一種方法是關閉防火墻。在控制面板中打開Windows防火墻,在“常規”頁面中選擇關閉。
第二種方法是不關閉防火墻,添加一個例外到防火墻并開放DCOM端口。在控制面板中打開安全中心,選擇Windows防火墻,在“例外”頁面中選擇添加程序。需要“添加的程序”有Microsoft Management Console(即:mmc.exe,目錄:C:/Windows/System32), OPCServer.exe(目錄:C:/CenturyStar),OPCClient.exe(目錄:C:/CenturyStar),OPCEnum.exe(目錄:C:/Windows/System32)。選擇“添加端口”,名稱:DCOM,端口:135,類型:TCP。
2.啟用文件共享
在控制面板中打開網絡安裝向導,在“文件和打印機共享”頁面選擇啟用。
3)DCOM配置
在開始菜單中選擇“運行”,輸入dcomcnfg,回車。打開“組件服務——計算機”,右鍵“我的電腦”——屬性,在“默認”屬性頁面,“在此計算機上啟用分布式COM”上打勾;“默認身份級別”選擇無,“默認模擬級別”選擇標識;在“默認協議”頁面,將“面向連接的TCP/IP”移到比較上方;在“COM安全”頁面里,“訪問權限”中“編輯限制”添加Everyone并附給所有權限,附給Anonymous Logon所有權限,“編輯默認值”添加Everyone并附給所有權限,附給System所有權限;“啟動和激活權限”中“編輯限制”添加Everyone并附給所有權限,“編輯默認值”添加Everyone并附給所有權限,附給Interactive,System所有權限。
展開我的電腦——DCOM配置,選擇CenturyStar.OPCServer,“常規”頁面“身份驗證”選擇無;“位置”頁面“在此計算機運行應用程序”上打勾;“安全”頁面在“配置權限”中添加Everyone并附給所有權限,附給System所有權限;在“標識”頁面中選擇“交互式用戶”。
OPCEnum的DCOM配置參考CenturyStar.OPCServer。
注意:配置完必須重起計算機才能生效,客戶機可配置參考服務器配置。
5 小結
如果需要世紀星和第三方軟件通訊盡量使用OPC方式,這種方式的優點是效率較高,容易實現網絡連接。