OPC DCOM詳細配置方法 - 不關防火牆不換登陸用戶

1. 前言

  OPC DCOM的設置是實現跨網絡OPC通信的基礎,現有的一些OPC DCOM配置教程雖然講解了如何配置DCOM,但沒有講清楚爲什麼要這麼做,而且各個教程涉及的配置方法也不盡相同。

  爲了徹底搞清楚OPC DCOM的配置過程,我重新做了兩臺機器的系統,一臺是Windows 7 32位,一臺是Windows 10 64位,並且重零開始完整的測試了正常運行OPC DCOM所需的最少的配置條件,並進而測試瞭如何在不關閉Windows防火牆,不切換專用用戶(一般的教程都需要在OPC客戶端和OPC服務器的計算機上使用同一個用戶賬戶登錄)。不敢獨享成果,拿出來和各位專業人士商榷。

  本文爲原創文章,請勿抄襲。謝謝

2. 基礎知識

  如何順利的配置OPC相關的DCOM?首先需要了解OPC DA的工作模式及相關程序(組件、服務)以及Windows的DCOM組件工作機制,然後才能正確的配置OPC DCOM。

  所謂的正確配置DCOM,不僅僅是能完成客戶端與服務器的通信,而是要求能夠確保Windows系統的安全,還包括靈活運用Windows賬戶,而不是非得需要在服務器和客戶端計算機上使用同一個賬戶。另外,也無需關閉Windows防火牆就能實現OPC DCOM通信。

2.1 OPC DCOM的工作機制。

2.1.1 Client和Server在同一臺計算機

  當Client和Server在同一臺計算機時,首先,Client向OpeEnum組件(CLSID: {13486D51-4821-11D2-A494-3CB306C10000})發起查詢本機已註冊的所有OPC服務器(包括2.0標準(GUID : {63D5F431-CFE4-11D1-B2C8-0060083BA1FB})的及1.0標準(GUID : {63D5F430-CFE4-11d1-B2C8-0060083BA1FB})的服務器。OpcEnum組件負責返回所有已註冊的OPC服務器信息。
  第二步,OPC Client獲取已註冊OPC服務器信息後,確定需要連接的OPC服務器,並通過ConnectionPoint接口及AdviseSink接口獲取服務器的各種配置信息、數據項(Tag)實時數據及其它通知(如服務器關閉)。

圖表 1 OPC Clientt/Server安裝在同一臺計算機

2.1.2 Client和Server在不同的計算機

  OPC Slient和Server安裝在不同的計算機上,如果需要實現Client和Serve的互聯互通,Client和Server所在計算機必須安裝有標準的OPC DA組件,並完成系統註冊。標準的OPC DA組件包括:

  • opc_aeps.dll
  • opcbc_ps.dll
  • opccomn_ps.dll
  • opcdaauto.dll
  • opchda_ps.dll
    opcproxy.dll
    opcsec_ps.dll
圖表 2 OPC Client/Server安裝在不同的計算機

  首先,OPC客戶端軟件訪問OPC服務器所在計算機上註冊的OPCEnum.exe,查詢服務器所在計算機上已註冊的所有OPC服務器。OpcEnum組件負責返回所有已註冊的OPC服務器信息。

  第二步,OPC Client獲取已註冊OPC服務器信息後,確定需要連接的OPC服務器,並通過ConnectionPoint接口及AdviseSink接口獲取服務器的各種配置信息、數據項(Tag)實時數據及其它通知(如服務器關閉)。

  在簡單瞭解OPC客戶端與服務器的通訊過程後,可以得出一個結論,無論是在同一臺計算機還是不同的計算機,OPC客戶端和服務器之間的通訊主要涉及三個部分:OPC Client、OPCEnum.exe和OPC Server。

  下面以Windows 7 32位版本爲例,說明OPC DCOM的配置過程。

3 基本(最簡單)的配置方法

3.1 概述

  本節所介紹內容,均通過Windows 10及Windows 7的測試。

3.2 關閉Windows防火牆

  爲了簡化介紹如何建立OPC DCOM通訊的過程,先不考慮防火牆的問題,在建立好DCOM通訊後,在考慮防火牆。所以首先需要禁止Windows 防火牆的功能。關閉Windows防火牆,按如下步驟操作:控制面板 -> 系統和安全 -> Windows防火牆,按下圖操作關閉“家庭或工作(專用)網路位置”及“公用網路位置”防火牆。

圖表 3 關閉Windows防火牆

3.3 建立相互能識別的用戶賬號

  爲了完成網路中兩臺計算機的互相訪問,必須保證在OPC客戶端和OPC服務器上有同樣用戶名並且密碼非空的用戶賬戶。

3.3.1 添加用戶賬戶

  在OPC客戶端和OPC服務器所在的計算機操作系統中添加同樣的用戶,注意:
• 該賬戶必須有相同的賬戶用戶名和密碼;
• 使用Windows域時, 用戶賬戶是由域控制器來同步;
• • 使用多域時,需要作域間的信任或者添加本地用戶到受影響的計算機上。

  Windows 7添加用戶步驟如下:控制面板 -> 系統和安全 -> 管理工具 -> 計算機管理 -> 本地用戶和組。
在這裏插入圖片描述
圖表 4 本地用戶和組

  鼠標左鍵雙擊左側樹結構中的“本地用戶和組”,然後選擇“用戶”節點。
在這裏插入圖片描述
圖表 5 用戶

  然後選擇“操作” -> “新用戶”菜單,在新用戶對話框中輸入用戶名和密碼,如下圖所示。
在這裏插入圖片描述
圖表 6 添加新用戶

  填寫完成後,按“創建”按鈕,即完成添加用戶賬戶。注意:在OPC客戶端和OPC服務器計算機上要創建相同用戶名和密碼的用戶!

3.3.2 設置本地安全策略

  本步驟需要在OPC客戶端及OPC服務器所在計算機上進行設置。以Windows 7爲例,說明設置本地安全策略步驟如下:控制面板 -> 管理工具 -> 本地安全策略,或點擊Windows 開始按鈕,在“搜索程序和文件”對話框中輸入 “secpol.msc”。
在這裏插入圖片描述
圖表 7 本地安全策略

  在“本地安全策略”對話框中,展開(鼠標左鍵雙擊)左側“本地策略” -> “安全選項”項,在右側的列表框中,找到“網路訪問:本地賬戶的共享和安全模型”,將其更改爲“經典 – 對本地用戶進行身份驗證,不改變其本來身份”。
在這裏插入圖片描述
圖表 8 本地安全策略 – 安全選項
在這裏插入圖片描述
圖表 9 本地賬戶的共享和安全模型屬性

3.4 配置系統DCOM 設置

  OPC客戶端及OPC服務器所在計算機系統的DCOM設置影響着Windows的DCOM的應用,包括OPC的應用,由於OPC客戶端沒有自己的DCOM的設置,所以它受缺省DCOM的配置的影響,因此需要作必要的改變。

3.4.1 系統默認的組件服務通用屬性

  系統默認的組件服務通用屬性如下面(Windows 10的截圖,Windows 7相同)
在這裏插入圖片描述
圖表 10 系統組件服務通用屬性 - 默認屬性
在這裏插入圖片描述
圖表 11 系統組件服務通用屬性 - 訪問權限-安全限制
在這裏插入圖片描述
圖表 12 系統組件服務通用屬性 - 訪問權限-默認值
在這裏插入圖片描述
圖表 13 系統組件服務通用屬性 - 啓動和激活權限-安全限制
在這裏插入圖片描述
圖表 14 系統組件服務通用屬性 - 啓動和激活權限-默認值

3.4.2 修改組件服務通用屬性

  1. 點擊Windows的開始按鈕,在“搜索程序和文件”對話框中輸入:dcomcnfg,並回車。

  2. 在彈出的“組件服務”對話框中。展開左側“控制檯根節點”,展開到“我的電腦”。鼠標右鍵選擇“我的電腦”,在彈出菜單中選擇“屬性”。
在這裏插入圖片描述
圖表 15 DCOM通用屬性設置

  3. 在彈出的“我的電腦屬性”頁中,選擇“默認屬性”頁,按下圖設置。有一些設置教程的這一步和下面的OPC Server設置均將默認身份驗證級別設置爲“無”,但爲了確保網絡通訊的安全性,而且已經在客戶端和服務器的計算機上建立了相同的用戶,因此,還是設置爲“連接”比較好
在這裏插入圖片描述
圖表 16 我的電腦默認屬性

  4. 選擇默認協議,確保“面向連接的TCP/IP”協議存在於“DCOM協議”中。
在這裏插入圖片描述
圖表 17 默認協議

  5. 選擇“COM 安全”頁,分別如圖選擇“訪問權限”和“啓動和激活權限”的“編輯限制”和“編輯默認值”按鈕。
在這裏插入圖片描述
圖表 18 COM安全

  6. “訪問權限” – “編輯限制”對話框
確保Everyone、opcuser和ANONYMOUS LOGON三個用戶都被添加到“組或用戶名”列表中,並且上述三個用戶的“本地訪問”和“遠程訪問”都被允許。
在這裏插入圖片描述
圖表 19 訪問權限 - 編輯限制

  7. “訪問權限” – “默認訪問權限”
確保SYSTEM、opcuser都被添加到“組或用戶名”列表中,並且上述賬戶的本地訪問”和“遠程訪問”都被允許。
在這裏插入圖片描述
圖表 20 訪問限制 - 編輯默認值

  8. “啓動和激活權限”- “編輯限制”
確保Everyone、opcuser用戶被添加到“組和用戶名”列表中,並且“本地啓動”、“遠程啓動”、“本地激活”和“遠程激活”都被允許。
在這裏插入圖片描述
圖表 21 啓動和激活權限 - 編輯限制

  9. “啓動和激活權限”- “編輯默認值”
確保opcuser、INTERACTIVE和SYSTEM用戶被添加到“組和用戶名”列表中,並且“本地啓動”、“遠程啓動”、“本地激活”和“遠程激活”都被允許。
在這裏插入圖片描述
圖表 22 啓動和激活權限 - 編輯默認值

  經過上述步驟,組件服務的通用屬性就設置好了。記住,OPC客戶端和OPC服務器所在的計算機都需要設置。

3.4.3 OPC Server的DCOM 設置

  點擊Windows的開始按鈕,在“搜索程序和文件”對話框中輸入:dcomcnfg,並回車。

  在彈出的“組件服務”對話框中。展開左側“控制檯根節點”,展開到“DCOM配置”。然後在右側的DCOM組件列表中找到需要配置的OPC Server,鼠標右鍵選擇該服務器,然後選“屬性”。
在這裏插入圖片描述
圖表 23 組件服務

  分別按下面的設置,設置OPC Server。

  1. OPC Server常規屬性
在這裏插入圖片描述
圖表 24 OPC Server 常規屬性

  2. OPC Server位置屬性
在這裏插入圖片描述
圖表 25 OPC Server位置屬性

  3. OPC Server安全屬性
其中,配置權限選擇自定義,並且不需要修改。
在這裏插入圖片描述
圖表 26 OPC Server安全屬性
在這裏插入圖片描述
  4. OPC Server終結點屬性

圖表 27 OPC Server終結點屬性

  5. OPC Server標識屬性
OPC Server標識屬性通常設置爲“交互式用戶”即可。
在這裏插入圖片描述

圖表 28 OPC Server標識屬性

  這幾個選項的含義及作用如下:
  交互式用戶:這個賬戶是當前登陸此計算機的用戶賬戶,也就是說必須有賬戶登陸,否則不能啓動OPC 服務器,當此用戶註銷時,OPC Server就會關閉;
  啓動用戶:OPC 服務器以訪問的用戶認證,操作系統會爲每個訪問的用戶創建一個實例,這樣會有三個問題出現,若OPC Server只允許一個用戶訪問時,當系統中已經有了一個實例,再有其它用戶就無法訪問。若是OPC Server允許多個用戶訪問時,那麼帶來的問題是隨着不同用戶的訪問,就會打開多個實例,這樣就會佔用更多的計算機的資源。另外的一個問題是硬件的搶佔,如串口,當一個使用了,其它的用戶就無法再使用。因此通常不使用此選項。
  下列用戶:OPC Server以指定的用戶賬戶認證,這種情況需要在OPC Server的計算機上存在着要指定的賬戶,而且對於OPC Client必須知道此用戶。否則無法訪問。
  系統賬戶(僅用於服務):OPC Server以操作系統賬戶認證,對於工作組還是域,系統賬戶都能被識別,也不需要有用戶登陸。但OPC server必須以服務的方式啓動。

3.4.4 OPCEnum設置

  OPCEnum的設置和OPC Server的設置基本相同,只有“標識”屬性不同,可參照下圖設置。
在這裏插入圖片描述
圖表 29 OPCEnum設置 – 標識01
  有的系統在這一步無法設置Interactive User賬戶,那就將用戶設置爲opcuser。
在這裏插入圖片描述
圖表 30 OPCEnum設置 - 標識 02

3.4.5 小結

  經過3.2 至 3.4 的設置後,OPC客戶端和服務器就能夠實現跨網絡的互聯互通了。但此時還存在兩個問題,一是Windows防火牆還處於關閉狀態,這會帶來潛在的安全問題。二是OPC客戶端和OPC服務器所在的Windows操作系統必須以相同的用戶賬戶登錄,這種登錄模式可以滿足賬戶敏感度不高的應用環境,但對企業及應用,例如混合了MRP、ERP等應用的環境,各計算機的Windows平臺都使用一個賬戶登錄是不能滿足應用及安全需求的。

  第3章介紹如何解決這兩個問題。

4 增強安全性的配置

  按照第二節的教程設置好OPC DCOM後,跨網絡的OPC訪問就能實現了,但此時,Windows防火牆是關閉的,這肯定會帶來安全隱患,因此,最好還是打開Windows防火牆。

  但打開Windows防火牆後,如果不做任何設置,OPC的訪問就會被防火牆阻隔。按照下面的步驟設置Windows防火牆的入、出站規則,即可實現OPC網絡訪問的正常化。

4.1 入站規則

4.1.1 OPCEnum

  選擇控制面板 -> 系統和安全 –> Windows防火牆 -> 高級設置。然後選擇“入站規則”。
在這裏插入圖片描述
圖表 31 Windows防火牆高級設置

  鼠標右鍵選擇“入站規則”,然後先擇“新建規則”。
在這裏插入圖片描述
圖表 32 Windows防火牆入站規則 - 規則類型
在這裏插入圖片描述
圖表 33 Windows防火牆入站規則 - 程序

  在Windows 10 64位系統中,OpcEnum.exe位於Windows/SysWOW64路徑下。
在這裏插入圖片描述
圖表 34 Windows防火牆入站規則 - 操作
在這裏插入圖片描述
圖表 35 Windows防火牆入站規則 - 配置文件
在這裏插入圖片描述
圖表 36 Windows防火牆入站規則 - 名稱

4.1.2 OPC服務器、OPC客戶端

  OPC服務器和OPC客戶端參考OPCEnum的設置過程設置入站規則即可。

4.2 出站規則

  OPCEnum、OPC服務器和OPC客戶端的出站規則與入站規則類似,在此不再重複。需要注意的是,在“新建出站規則嚮導”中“操作”頁面,一定要選擇“允許連接”。

  設置完成入站規則和出站規則後,在Windows防火牆打開狀態下,也可以實現OPC客戶端與OPC服務器的跨網絡訪問,並且能夠保證對應的計算機在網絡上的安全性。

5 不同的賬戶登錄

  在3.2節中提到,如果要實現跨網絡的OPC通訊,最簡單的辦法就是在OPC客戶端和OPC服務器所在的計算機上設置相同的賬戶(同樣的用戶名和同樣的密碼),但這也帶來一個問題,一些其它的企業級應用,如ERP等,可能會有同樣的對登錄賬戶的需求,而在企業所有的網絡計算機上設置並使用相同的用戶賬戶登錄是不現實的,同時也會有潛在的安全問題。下面給出解決辦法。

  在OPC客戶端所在的計算機上,選擇控制面板 -> 用戶賬戶和家庭安全,然後選擇“憑據管理器”。如下圖所示。
在這裏插入圖片描述
圖表 37 Windows憑據管理器

  然後選擇“添加Windows憑據”。
在這裏插入圖片描述
圖表 38 添加Windows憑據

  在“添加Windows憑據對話框”中,輸入用於連接OPC服務器的網絡地址、用戶名、密碼。

  此時需注意,如果在連接OPC服務器時,使用的是IP地址,則在Internet地址欄目中就應該填寫IP地址,如果使用的是計算機名,則填寫計算機名,或者乾脆兩種憑據都加上。如下圖。
在這裏插入圖片描述
圖表 39 Windows憑據 - IP地址
在這裏插入圖片描述
圖表 40 Windows憑據最終狀態

  添加完Windows憑據後,即使使用其它用戶賬戶登錄Windows,也能實現和OPC服務器的通訊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章