2017-07-18 46 views
0

現在、OPC LabsのQuickOPCライブラリーを使用しています。私の現在の目的は、Matrikon Simulation OPCサーバーから項目値を読み込むための.NETコンソールアプリケーションを作成することです。QuickOPCを使用してリモートOPCサーバーを接続します。

シミュレーションサーバは、使用可能なIPアドレスを持つリモートマシン上で実行されています。このリモートマシンにログインするには、ユーザ名とパスワードを入力する必要があります。

次のように私の現在のコードは次のとおり

NetworkSecurity networkSecurity = new NetworkSecurity(UserName, Password, MachineName); 
ServerDescriptor serverDescriptor = new ServerDescriptor("\\\\xxx.xxx.xxx.xxx\\Matrikon.OPC.Simulation.1", networkSecurity); 
serverDescriptor.Scheme = "opcda"; 
DAItemDescriptor itemDescriptor = new DAItemDescriptor(ItemID); 

Console.WriteLine(client.ReadItemValue(serverDescriptor, itemDescriptor)); 

次のように例外がある:

例外:エラーコード-1073442759 (0xC0049039)OCC urredとOPCの動作不良、由来 'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'インテルの例外 には、この問題の詳細が含まれています。内部例外:Noメソッド を使用してProgIDをCLSIDに変換できます。

私はCLSID

ServerDescriptor("\\\\xxx.xxx.xxx.xxx\\{F8582CF2-88FB-11D0-B850-00C0F0104305}", networkSecurity); 

を使用しようとすると、例外が次のようになります。

例外:エラーコードとOPCの動作不良-2147024891 (0x80070005と) からOCC urred、発信元'OpcLabs.EasyOpcRaw.DataAccess.RawEasyDAClient'。インテルの例外 には、この問題の詳細が含まれています。内部例外:アクセスが拒否されました。

+1

私はQuickOPCメーカのOPC Labsを代表しています。ここでは他のユーザーの回答とコメントに示されているとおり、これはDCOMのセキュリティ上の問題です。元のエラーメッセージを説明するために、OPCEnumメソッドが機能しない場合、QuickOPCは、いわゆるリモートレジストリを使用してProgIDを解決しようとします。メソッドが成功しなかった場合は、このエラーメッセージが表示されます。とにかくと、実際のOPC通信のためのあなたがしますまだDCOM - あなたの管理者がDCOMを有効にするために不本意であれば、彼は最も可能性が高いだけでなく、リモートレジストリを有効に消極的になります。 – ZbynekZ

+0

@ZbynekZご返信ありがとうございます。 OPCクライアントをサーバーの同じマシンにインストールすることに決めましたが、答えは間違いありません。したがって、DCOMを有効にせずに正常に動作します。 – Christopher

答えて

1

"内部例外:アクセスが拒否されました"は、サーバーとクライアント間のDCOM通信を有効にする必要があることを意味します。サーバーアプリケーションとOPCEnumサービスの両方(ProgIDをCLSIDに変換するために使用されます)。

https://www.google.com/search?q=dcom+configuration+for+opc

+0

あなたの答えをありがとう。私はサーバーの管理者に連絡しました。彼は、DCOMが理由である可能性があることを確認しましたが、セキュリティポリシーの問題では有効にできません。すべて同じようにありがとう。 – Christopher

+0

あなたが(理解)DCOMを開くことができない場合は、トンネリングOPCを検討することができ、[OPC UAゲートウェイ](https://www.prosysopc.com/products/opc-ua-gateway/)または類似の製品を経由して例えば。これにより、サーバーとクライアントの間に専用のIPポートを1つだけ開くことができ、DCOM全体を開くよりはるかに安全です。 –

関連する問題