C 環境下的OPC客戶端程式開發 1

2021-09-26 08:10:44 字數 1279 閱讀 5756

opc是目前工業環境下應用最廣泛的資料通訊手段。

這個說法其實太過簡略,但是對於剛剛接觸opc開發的新手來說,也足夠用了。

什麼,你不是新手?

… …不是新手你來這裡幹嘛?

opc這玩意誕生在2023年。當時五家工業軟體開發公司坐在一起吵了整整4個月,還有一家專業的軟體公司坐在一邊當特別顧問。沒錯,這個特別顧問就是微軟

微軟做顧問的地方自然少不了com技術的應用,這也是opc技術實現中一項非常重要的內容。所幸對於使用者來說,我們不必從頭開始了解com技術的細節,就可以使用它。

opc標準將針對plc的訪問變成了針對opc伺服器的訪問。這使得一套按照opc標準開發的客戶端應用程式可以連線到任何乙個opc伺服器,在這之前想要連線不同型別的plc,程式設計師必須搞懂對應plc的通訊協議。

通過連線不同的opc伺服器,opc客戶端可以連線不同型別的plc,讀寫其中的變數,反饋到實際應用中就是讀取工藝引數,自動控制動作…

引用opc相關的元件

使用opc協議中定義的opcserver,opcgroups,opcgroup,opcitems,opcitem實現資料讀寫。

如果樂意,封裝乙個操作opc的類。

當然,在這之前你應當了解一下opc通訊的基本常識。這裡有幾個必須弄清楚的概念,首先最重要的三個概念是opcserveropcitem

opcserver是通訊資料的**,它相當於工業環境中的所有plc

接下來是opcitem,它相當於某台plc中某個記憶體區域的某個變數。

那麼什麼groups,什麼group是什麼玩意?

這些東西是為了便於分類而存在的。乙個實際的例子就是:工業環境下可能具備多台plc,如果其中一台關機或者掉線,我們的應用程式又沒有對這些plc中的變數進行分組,那麼有可能會產生關聯性的影響 – 大面積的失去響應。

基本的opc客戶端工作的時候,一般遵循下面這樣的步驟:

例項化乙個opcserver型別的變數mserver,用來對應某個指定的opc伺服器。

通過mserver獲得groups,再通過這個groups新增乙個group。

實現並且繫結這個group需要響應的所有事件。

唔…就是這麼簡單。改天再來貼**。

未完待續…

ps 我在另一篇文章裡提到的opc讀寫測試的demo專案: opc的前世今生.

namespace fwopcdll 

}

C 開發OPC客戶端

第乙個隨筆,使用了open live write,作為客戶端.最近使用c 開發乙個小軟體,主要功能是opc客戶端.以後會開發各類別的協議,作為,協議的 棧.因為我本人是搞自動化的,所以搞自動化小夥伴像我這樣喜歡程式設計的可能有,但是一般是邏輯思維強,但是底子相對還是弱的.1,c 開發opc的準備工作...

客戶端C 讀取opc資料

客戶端讀取資料,網上很多,但是在剛開始的時候總會遇到各種問題,在這裡寫點,權且自己當個記錄吧。opcdaauto.dll 需要註冊 regsvr32 s opcdaauto.dll 如果win7下有問題,在c windows syswow64路徑下,註冊 opcdaauto.dll using op...

c 下 socket 客戶端 程式設計

using system.io using system.net.sockets using system.net private void button4 click object sender,eventargs e s new socket addressfamily.internetwork...