OPC和DCOM配置(已測試)


來源:https://www.cnblogs.com/ioufev/p/9365919.html

本文為Java實現OPC通信的一部分

系統:使用win10 64位專業版

PDF文件:

在線參考:英文的

使用的OPCServer服務器:

*注意:OPC服務器中,當OPC賬戶注銷后,Opc Client 無法連接的問題,需要如下方式解決,錯誤提示如下:

 

或者

OPC服務器配置如下:

 

1.准備

1.1 OPC運行庫

KEPServer集成了OPC運行庫,所以不需要單獨安裝

1.2 創建用戶並賦予訪問權限 :計算機管理

創建用戶:

    OPCUser

    123456

添加到DCOM組

說明:如果用戶權限復雜,請用能登陸OPCServer的用戶。

 

2.配置說明

 

2.1 防火牆關於 DCOM 和 OPC 的規則 :高級安全 Windows Defender 防火牆

開放 DCOM 訪問 :DCOM(wmi)啟用

135端口:只有一個計算機不需要設置

創建 OPC 程序規則 :允許程序 OPCEnum(就是OPC運行庫的程序)

  位置:"C:\Windows\SysWOW64\OpcEnum.exe"

添加 OPC 服務器程序的規則:允許程序 KEPServer的server_runtime

  位置:"C:\Program Files (x 86) \Kepware\KEPServerEX 6\server_runtime.exe"

說明:如果使用了防火牆軟件,請把這2條規則添加到白名單。

 

2.2 配置 DCOM 安全:組件服務

配置 COM 的安全設置:我的電腦--COM屬性--安全--訪問、激活 配置

配置 OPCEnum 的安全設置 :OpcEnum的安全選項

配置 OPCServer 的安全設置 :KEPServer的安全選項

 

2.3 配置本地安全策略 :

本地安全策略 本地策略--網絡訪問--匿名 :啟用

 

2.4.關於Matrikon的DCOM配置

創建用戶-->添加到DCOM組

高級安全 Windows Defender 防火牆:創建 OPC 程序規則 :允許程序 OPCEnum

  位置:"C:\Windows\SysWOW64\OpcEnum.exe"

如果還不行,可以將OPCSim加入防火牆

  位置:"C:\Program Files (x86)\Matrikon\OPC\Simulation\OPCSim.exe"

其他不需要了。

3.用戶

最重要的是,【服務器端】需要安裝OPC核心包,否則怎么配置也掃描不到服務器的DA服務(OPC_2.0_Core_Components-Setup.exe),此包可以不在OPC賬號下安裝。

3.1 創建用戶(*服務器與客戶端的賬號密碼要一模一樣)

 

 

3.2添加到DCOM組

( *此處,可以增加超級管理員權限,用於登錄用戶,設置一些東西)

 

4.防火牆

4.1 配置防火牆規則:開放 DCOM 訪問

打開防火牆

找到(DCOM-In)

右鍵屬性--已啟用

 

4.2 創建 OPC 程序規則 :允許程序 OPCEnum

新建入站規則--程序--找到OpcEnum.exe

 

 

4.3 添加 OPC 服務器程序的規則:允許程序 KEPServer的server_runtime

新建入站規則--程序--找到server_runtime.exe

 

 

5.組件服務(*一般安裝完OPC核心包以后,下面設置保持默認就可以。但是要注意,要讓OPC用戶加入DCOM組中,在將DCOM組加入下面組件中即可。[默認DCOM組已經加入組件中了])

5.1組件服務:配置 COM 的安全設置

打開組件服務

 

(*此處默認身份驗證級別:無 或者 連接。經過測試都可以)

 

 

5.2組件服務:OpcEnum的安全選項

詳細信息

 

 

5.3組件服務:KEPServer的安全選項

 

 

6.本地安全策略(*此處不配置也好用)

6.1本地安全策略 本地策略--網絡訪問--匿名 :啟用

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

來源:https://blog.csdn.net/rizhaolutong/article/details/20309779

 

最近做了一個小項目,功能很簡單,就是編寫一個OPC客戶端軟件實現從OPC服務器上獲取數據然后轉存到DB中。項目雖小但是值得考慮的地方仍不少,所謂麻雀雖小,五臟俱全。

1、DCOM正常配置

 

網上關於DCOM的配置五花八門,各種各樣。當時剛開始配置的時候也是各種嘗試,雖然能調通,但卻不知道為什么通的。總結起來,主要是分為了兩點:首先,要保證有權限訪問對方,然后就是能夠啟動和激活com。

權限訪問經常出現的連接失敗等錯誤。這時候應該check一下:

a.對方防火牆是否關閉或者將相應的程序和端口加入到例外。

b.檢查“控制面板”-“管理工具”-“本地安全策略”-“網絡訪問:本地賬戶的共享和安全模式”設為“經典-本地用戶以自己的身份驗證”。

    c.dcom的默認配置中沒有加入相應用戶的權限。即,服務端的訪問限制中要存在客戶端發起訪問的賬戶。一般添加everyone賬戶,這也可以讓所有的賬戶都有權限,這也雖然方便但是不安全,對於安全性要求高的還要設置統一賬戶,統一密碼。

對於啟動和激活權限,簡單的設定也是全加入everyone賬戶。(這里要說明一點,有些資料說不能在“限制”中添加everyone賬戶否則會導致無妨訪問等問題,本人試了試發現並沒有像說的那樣,還有的資料說要將Interactive,system,network,administrator賬戶一並加入,這里我也沒有加入,但依然可以訪問。具體原因沒有探索。。。)如果是使用opc客戶端枚舉DCOM端的com名稱,則需要配置opcenum時加入ANONYMOUS LOGO賬戶,然而,這只是用於枚舉com名稱,並不會影響訪問。就是說如果事先知道com名稱則不需要配置opcenum,直接使用com名稱來訪問應該也是可以的。在配置具體的opc服務時,我覺得基本不用配置,使用默認的配置一般都是可以的,如果不行再按照opcenum的配置來配就可以。如果實在不知道怎么配,那就簡單的給所有可配的把上述幾種提到的轉戶一股腦的全加進去,也未嘗不可。

2、失誤配置

不能不說,我這人手賤。在嘗試了各種配置不果時,我會嘗試一些奇葩的配置。而這也讓我嘗到不少的苦頭。
         a.在參照網上的配置,將“控制面板”-“管理工具”-“本地安全策略”-“DCOM-安全描述符。。。”的“沒有定義”修改了一下,結果怎么也無法改回去了。而且還導致了“組建服務-“我的電腦”-“COM安全”-“編輯限制”變為灰色的,直接無妨編輯了。經過各種查找,刪除注冊表“HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DCOM”就可以了。
         b.另一個失誤是將“組建服務-“我的電腦”-“COM安全”中的everyone賬戶給刪除了,導致這個“COM安全”都編程灰色,無法編輯。依然是通過刪除注冊表項“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole”下的限制和默認項,不過在刪除前,先導出保存一下注冊表。防止誤刪。
        c.還有一個失誤是不小心刪除了OpcEnum “安全”里的某個選項的賬戶,導致整個OpcEnum都無法配置。無論重重新regserver,還是重新安裝opcenum.exe,都無濟於事。最后,依然是通過修改萬能的注冊表,“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{13486D44-4821-11D2-A494-3CB306C10000}”額,刪除那個來着,忘記了,好像也是個限制,如果沒有權限,右鍵添加相應用戶的權限。
   總之,以上失誤導致的問題,除非重裝系統,否則,即便是重新按照DCOM等也不能解決問題,任何配置都可以通過注冊表來修改。也不要因此就將這個注冊表導出備份,因為當你再導入的時候,會有很多項提示沒有權限,而你也不知道是那個地方有問題,按個添加權限不現實。所以,需要修改那個項,就導出那個項好了。

3、交互式用戶還是啟動用戶

這個問題,一開始一直不明白,只是聽別人說選這交互式用戶就行了。直到有一天,發現“交互式用戶”無法啟動COM,“啟動用戶”卻可以啟動COM,我才研究了一下這兩個用戶的區別。
交互式用戶:何謂交互,就是交換,互換。當你通過DCOM訪問對方的時候,采用交互式用戶會將你的訪問賬戶“轉換”為對方當前登錄的賬戶。所有的操作都是以對方當前登錄用戶的權限來操作的。當有多個用戶訪問的時候,都是以對方當前的登錄用戶來操作。如果,之前已經有人啟動了服務,則使用之,不會再啟動一個服務。是多對一個的關系。
  啟動用戶:啟動用戶沒有轉換的過程,你是以什么身份訪問還是按照什么身份訪問,只要你有這個權限。對方系統會給每一個登錄到其系統的賬戶單獨的開辟一份空間來啟動相應的服務。也就是說,當有多個用戶訪問的時候,會導致多個內存空間,這樣可能會導致內存的浪費。
值得一說到 是,我當初訪問的OPC服務器是個工程機,而且裝在機房,我只能通過遠程連接來配置,當時選擇的是交互式用戶,配置完以后我通過遠程連接重啟了電腦,然后在遠程連接登錄進去,始終都無法啟動com服務,提示說“因為配置標識不正確,無妨啟動服務。。”,反反復復排除都無法解決,然而,選擇啟動用戶就可以。最后發現我是使用遠程連接登錄的,采用交互式用戶會轉換為遠程連接的用戶,而這個用戶我又沒有配置訪問和啟動權限,所以一直無妨連接,最后還是跑到機房把電腦重啟,然后使用管理員賬戶登錄進去,然后再遠程連接,這樣就可以了。
萬惡的DCOM,萬惡的OPC。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM