0219 【萬泉河】論OPC UA協議對工控行業的重要性
OPC UA協議已經推出來大約10多年了。 然而具體的年數不清楚,因為對于使用者來說, 推出協議沒啥用,重要的是需要有支持這個協議的產品。而且需要市面上支持的產品足夠多,產品之間互相通訊的時候可以選擇這個協議,然后才會重視它使用它。
所以,盡管OPC UA已經誕生10多年,但在產業界,支持的產品力度還不夠的情況下,工控同行不重視它,甚至即便有使用過,但仍然不重視,也是正常的。
然而,我在這里要跟大家推薦的是, 對工控行業來說OPC UA會越來越重要,同行們需要逐漸認識到它的重要性, 甚至有能力有前瞻性的工程師,從現在開始就要逐漸鋪墊積累,提前布局掌握它了。而更有能力的產品開發者,軟件開發者,則更可以從中發現商機,提前布局了。
關于OPC是什么,以及之前的OPC DA的概念,同行們應該很熟悉了。 新入門的新手不懂的話可以自己從網上找相關文章看一看。
而關于OPC UA, 網上其實也早就有了很多概念性的介紹, 其中許多還是以通俗、簡介等目的介紹的。大家也不妨關鍵字搜索后逐篇過一下。了解個大概。
我這里絕不照抄所有網上已有文章內容,只發表自己的觀點。請讀者獨立思考,客觀判斷, 有選擇地接受,謬誤之處,則請毫不留情的批評,拒絕。
UA是Unified Architecture 的簡寫,中文字面含義是統一架構。
然而,如果從字面理解統一架構,僅僅把他當作已有所有OPC概念的升級版或者大一統,就徹底的錯了,就看不到其重要性了。
UA統一架構的不是OPC自己,而是對操作系統平臺的統一。即,它是支持所有操作系統平臺之間的直接通訊。
操作系統就是除了微軟的WINDOWS系統, 其它所有的平臺都可以支持。 包括了各種我們現在耳熟能詳的LINUX, ANDRIOD , IOS,CODESYS, 以及微軟自己的WINCE等等。以及未來可能出現并流行的所有的操作系統。
為什么講它可以通用于所有操作系統平臺?因為協議本身只定義了通訊協議的內容。那么各廠家,各操作系統,只要能滿足協議規定的規范的內容,則都可以實現。 所以具體的開發工作OPC基金會并不負責。 所以他當然可以宣稱對所有平臺都支持,從而成為跨平臺的協議。因為他所定義的協議不依賴于操作系統。
而與此對應的是老的OPC DA協議, 是嚴重依賴DCOM協議的,而DCOM協議是微軟推出的用于電腦間通訊的協議,微軟也曾經參與了OPC DA的制訂,造成的后果便是,所有非微軟的操作系統平臺全部無法使用OPC DA協議,甚至微軟自己的WINCE。因為它們沒有能力支持DCOM。
進一步造成的后果是,以往, 所有的人機界面設備在跟PLC通訊的時候, 如果不包含PLC品牌的驅動, 而需要走OPC協議的時候,就必須在電腦上安裝一個OPC SERVER的軟件中間件。 這個中間件作為一個后臺系統服務,一方面負責跟就地的PLC通訊,另一方面向本地或網絡內的其他電腦設備提供OPC數據服務。
這個OPC SERVER軟件通常是由PLC廠家提供,比如西門子的 SIMATIC NET, 三菱的MX OPSERVER等等。同時也有一些通用于各廠家協議的專業的OPC SERVER軟件, 最著名的即大名鼎鼎的 KEPSERVER。
所以, 以往在實現OPC DA的通訊的配置中,貌似以為上位機軟件與PLC進行OPC通訊, 其實不然。 其實電腦上跟PLC通訊的還是PLC的協議,如西門子的S7協議。 如果只有一臺電腦, 那么所謂的OPC通訊,只是電腦上的兩個程序進程之間的通訊而已。 比如WINCC或者IFIX或者組態王跟 OPC SERVER之間的通信。
所以,那個時候,電腦跟PLC的通訊網絡各種各樣,基本都基于各廠家自己的協議和網卡, 有少部分以太網,但大部分是基于RS485的網絡。
然而,當所有主流PLC都支持以太網的時候,電腦和PLC之間,以及觸摸屏和PLC之間都是通過交換機接到以太網的鏈接的時候, 通訊還要靠OPC來實現協議轉換, 第三方的觸摸屏如果沒有開發出針對特有品牌的通訊協議驅動的時候,有沒有通用協議?
沒有。這就很尷尬了。
而OPC UA的出現,解決了這個問題。
既然UA協議不依賴于平臺, 那么各廠家的PLC在自家平臺上大展神通, 只要其PLC有提供以太網口, 只要在以太網口上實現了OPC UA SERVER功能, 那么所有的OPC 客戶端都可以直接來訪問,而不再依賴于一個特定的OPC SERVER 中間件。
如此可以實現:
1, 觸摸屏通過OPC UA協議直接訪問PLC。
2, 不同的PLC之間通過OPC UA協議訪問。
3, 上位機電腦SCADA上位機軟件直接與PLC通訊。
這些功能擴展都是以前OPC DA協議時不可能實現的。
其中,1和2是完全全新的配置模式,而3的變化比較少,僅僅少了OPC SERVER中間件。
這對各PLC廠商無所謂, 他們反而可以省了開發OPC SERVER 軟件的人力,不過這部分研發人員轉向其自身嵌入系統的OPC UA SERVER的功能開發,大致可以相當于不虧不賺。
然而對專業售賣OPC SERVER的軟件公司,比如KEP和MATRIK等來說,幾乎是滅頂之災。因為沒有他們的生存空間了。若干年后,當所有品牌PLC和HMI, SCADA都支持了OPC UA之后,就沒人再需要他們了。
所以,站在專業OPC SERVER軟件的角度, 描述OPC UA的態度就會很曖昧,就會很言不由衷,比如會不會有意無意發表一些誤導同行的觀點。
比如許多同行所理解的OPC UA,談到優點的時候僅僅是在電腦之間做通訊的時候不需要配置DCOM,而過去據說DCOM配置起來相當麻煩,非常難以成功。
從我個人的經驗,DCOM完全沒有傳說中的那么難。 給一個簡單的提示, 如果一臺電腦完全安裝好需要的所有控制軟件后, 直接克隆到另一臺,之后對方僅僅更改電腦名,即兩臺電腦的操作系統、軟件環境完全一致, 用戶名和密碼等全部都一致的情況下, OPC DA通訊可以直接成功,不需要為DCOM做任何的配置,甚至完全可以無視。
所以,當我看到許多人對OPC UA的錯誤言論的時候,首先猜測他們是不是因為受到了一些刻意的誤導。
然而,我所列出的上述的 OPC UA的優點好像并不能引起很多人的興趣。也更不覺得有何重要性而言。
是的,一直以來我也這么認為的。因為到目前為止, 不管是觸摸屏還是上位機軟件,當下都有通訊實現方案,也不覺得有多少痛點。
而真正的重點在后面。
進入重點之前, 先看一篇我2年前寫過的一篇文章:
《【萬泉河】PLC編程:我夢寐以求的符號尋址》
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1565815&b_id=80當時我苦苦追求的符號尋址,后來發現, 解決方案竟然是OPC UA。
西門子WINCC和S7-1500之間的通訊自然有固有的方法, 然而換一些品牌,比如把WINCC換為觸摸屏, 甚至第三方品牌觸摸屏的時候, 逐漸發現OPC UA才是最完美的解決之道,而且因為UA的統一架構, 那么會成為所有品牌的統一解決方案。
即, OPC UA可以實現對PLC的符號尋址。
對所有品牌PLC。 甚至對S7-1200/1500,都不再需要數據塊非優化。即,即便是優化的數據塊, 也可以通過OPC UA直接進行數據通訊,因為這種通訊已經不需要絕對地址了。
有了OPC UA, 如果觸摸屏也支持了(現在已經開始有品牌支持),那么只要選擇OPC UA通道,對PLC的數據就可以直接建立訪問。
然而,需要客戶端軟件有完備的瀏覽變量功能。
通過在線瀏覽變量,就可以選擇并在數秒內建立所有需要的變量。
這相當便捷。
所以,去年我在開發其他品牌的標準化架構的時候,最看重的是這個品牌的PLC是否已經支持了OPC UA,因為只要支持,只要把UA通訊打通, 那我就不需要再學別的通訊方案了。 工作量也大為簡化了。 原有的WINCC程序可以直接無縫對接移植過來。
如果是真實的工程項目,這種無縫移植帶來的高效率自是無可比擬的。 所耗費的時間簡直忽略不計!
而更進一步, 如果所有的上位機軟件如果也支持OPC UA, 那只要再做一套上位機的項目程序模板,在項目開發、程序移植各環節的工作量,也全部非常簡單。從wincc到上位機, 從一個項目的上位機到下一個項目的上位機。都會帶來異乎尋常的高效率體驗。
甚至, 在OPC UA的協議規范中,還特別涉及了對面向對象的支持?梢园岩粋設備對象的數據打包整體對接,這些工作到目前為止,都還在幻想藍圖里,還沒有落地成為現實,所以絕對值得我們每個人期待。。。。
我在前面一篇文章推薦過的上位機開發工具PCHMI.DLL,
《0210【萬泉河】用組態觸摸屏程序的方法生成上位機EXE軟件》
https://mp.weixin.qq.com/s/5hfgLZrWNvnt0TqopDDQcg這個工具里面包含了對OPC UA的支持,然而我研究后發現,其支持力度還很弱, 甚至作者對OPC UA的理解都很淺,當然也是因為不重視, 不感興趣,因而更不支持變量瀏覽功能。所以要達到實戰功能, 能實現我們要求的符號尋址,都還有很長的路要走。
所以暫時放棄了UA路線, 還是先能實現與BST的對接為目標,先實現彈出式窗口的設計操作模式。變量效率的提高方面,可以作為將來的話題。
然而,我發現工控同行中的大多數,通常思想懶惰,沒有上進心。
當遇到各種功能實現不了效率低下的時候,不會首先審視是不是自己的能力和水平的原因,而是只會自顧個兒的在那兒抱怨,更不會想到自己挖掘其中的需求,找到好的解決方案,除了能提高自己的工作效率,同時說不定還能為自己儲備積累一些資源。
我上周與一位有C#經驗的朋友交流開發需求的時候, 對方竟然指點我去找某某高手去定制開發, 完全沒有看到這其中存在的機會。
當所有人都在抱怨這個行業臟苦累的時候,有沒有想過這其中反而蘊藏了無限的機會, 你只要能做出一點點創新, 幫助別人有一點點效率的提高, 都有可能為你自己帶來豐富的回報。
越是落后的行業,機會越多。 如果你時常抱怨這個行業落后,那說明機會就擺在你面前。
就看你有沒有能力抓住機遇。
最后,上文中征集PCHMI二次開發合作項目繼續進行中,目前響應者了了。說明這個行業具備這項能力且工作之余有閑暇進行技術開發的人還太少了, 說明了什么, 說明這里面都是機會!