Visual Studio 2008 (C#) は、COM オブジェクトの相互運用機能を作成しました。私が使用している主なオブジェクトはOPCHDAServerClass、 、IOPCHDAItems、およびOPCHDAItemです。コードは次のとおりです。
OPCHDAServerClass server = new OPCHDAServerClass();
server.Connect("OPC.PHDServerHDA.1");
OPCHDAItem item = server.OPCHDAItems.AddItem("MyItem",1);
3 行目で、AddItemメソッドはOPCHDAItem. 相互運用の定義AddItemは次のとおりです。
[DispId(1610743813)]
OPCHDAItem AddItem(string ItemID, int ClientHandle);
私が得る例外は次のとおりです。
タイプ「OPCHDAServerClass」のオブジェクトをタイプ「IOPCHDAItems」にキャストできません。
このエラー メッセージが表示される理由がわかりません。 server.OPCHDAItems実装しIOPCHDAItemsます。OPCHDAServerClassサーバー ( ) が にキャストされている理由がわかりませんIOPCHDAItems。
Python で最初のプロトタイピングを行ったところ、問題なく動作したので、COM コンポーネントが機能していることがわかります。これはpythonコードです:
server = win32com.client.dynamic.Dispatch("Uniformance.OPCHDA.Automation.1")
server.Connect("OPC.PHDServerHDA.1")
item = server.OPCHDAItems.AddItem("MyItem", 1)
誰かが同様の問題を見て、回避策を知っていますか?