OPC(OLE for Process Control)實際上是壹套標準。我對這套標準了解不多,所以理解為使用過程中的壹套協議或規範,主要用於工業控制領域。OPC有很多規範,我主要用OPC DA規範來讀寫數據。還有其他規範,如OPC UA和OPC HDA。如果妳是做OPC服務器開發的,查壹下這個資料。這篇博文主要介紹OPC客戶端開發的知識。
使用OPC DA讀寫客戶端時,我們使用自定義接口,還有自動化接口。下面是開發自定義界面涉及的三個關鍵對象:OpcServer、OpcGroup和OpcItem。下圖顯示了它們之間的邏輯關系:
在開發客戶端時,需要使用OpcServer對象來實現客戶端與Opc服務器的連接。壹個OpcServer對象下有多個OpcGroup,壹個OPC group下有多個OpcItem。自定義界面下的客戶端開發是基於組的操作,數據讀寫都是通過opcgroup進行的。
構建程序運行環境
程序運行所需的軟件和硬件環境:
。Net框架4.0
Simatic Net 2008(或其他)HF1
西門子300(或其他)PLC
我們可以通過本機的配置實現OPC的遠程連接。我沒有用這種方法。第壹,這種配置比較麻煩,但是這種方法不穩定。所以我用這臺機器安裝了壹個OPCServer來實現與PLC的交互。
對於OPCServer軟件,我選擇了SimaticNet 2008 HF1(安裝WinCC時,我會有安裝SimaticNet的選項)。沒有什麽特別的原因,但是我比較熟悉,PLC是西門子的。
我們可以在不編寫OPC客戶端程序的情況下,測試如何通過OPCServer與PLC進行交互。首先,在我們安裝SimaticNet之後,我們需要配置站配置編輯器,如下所示:
首先,我們需要指定站名。上圖叫PCStation。單擊下面的電臺名稱進行更改。接下來,在堆棧1上選擇壹個OPCServer,在堆棧3上選擇壹個通信網卡。
接下來我們需要在Step 7中建立站組態編輯器與PLC的連接,暫時稱為組態。在組態過程中,要建立與站組態編輯器相對應的Opc Server和IE General(具有相同的棧號),站組態編輯起著橋梁作用,主要是在PLC和Opc Server之間建立壹個S7連接。暫時沒有拿到配置圖,以後再補。
當我們完成配置後,如何判斷配置是否正確?SimaticNet的目錄裏有壹個軟件叫Opc Scout(Opc Scout V10)。打開下圖:
上圖列出了這臺機器中的所有服務器,我們可以使用名為OPC.SimaticNET的服務器,雙擊這臺服務器可以添加壹個組,雙擊這臺服務器幾次可以添加多個組,驗證了上圖中服務器和組的關系。
我們雙擊新創建的組,進入如下界面:
上圖列出了所有的連接。在上述配置中建立的S7連接可以在S7節點中看到。展開此節點以查看我們已經建立的S7連接,如下圖所示:
上圖列出了名為S7 connection_1的S7連接,展開了Object對象,列出了PLC的結構。我們選擇壹個來構建我們的新物品,因為我這裏沒有PLC模塊,所以不能截圖給大家看。
至此,我們的OPC客戶端的運行環境已經搭建完成。
編寫OPC客戶端程序。
我們需要使用OPC基金會提供的自定義接口進行開發。在Visual Studio中,我們指的是兩個名為OpcRcw.Comn.dll和OpcRcw.Da.dll的dll。
我們定義壹個名為OpcDaCustomAsync的類,讓這個類繼承自:IOPCDataCallback,IDisposable。
轉載,僅供參考,祝您愉快,滿意請采納。