Я использую сборку OpcNetApi для подключения и чтения данных с сервера Matrikon OPC HDA. Соединение происходит, однако я получаю ошибку E_INVALIDHANDLE
как ResultID
при попытке вытащить некоторые тестовые данные с сервера. Это то, как далеко я получил:Чтение данных с сервера HDA возвращает E_INVALIDHANDLE
Opc.URL url = new Opc.URL("opchda://localhost/Matrikon.OPC.Simulation.1");
OpcCom.Factory fact = new OpcCom.Factory();
hdaServer = new Opc.Hda.Server(fact, url);
hdaServer.Connect();
// Read data from historian
DateTime[] times = new DateTime[1];
times[0] = DateTime.Now;
Opc.ItemIdentifier[] items = new Opc.ItemIdentifier[1];
items[0] = new Opc.ItemIdentifier();
items[0].ItemName = "Random.ArrayOfString";
items[0].ClientHandle = null; // which handle should I use?
ItemValueCollection[] itemsColl = hdaServer.ReadAtTime(times, items);
не отбрасывается Нет ошибок, но результаты не могут быть найдены в itemsColl
.
Random.ArrayOfString
- это существующий элемент OPC с имеющимися историческими значениями.
UPDATE
Я нашел решение, которое я работаю: https://github.com/jdecuyper/OPC-HDA-Client