2015-07-03 7 views
0

Я использую сборку 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

ответ

1

Я думаю, что дата используется в методе ReadAtTime неправильно. Этот метод считывает данные в определенное время. Попробуйте использовать метод ReadRaw или ReadProcessed, где вы можете читать данные из диапазона дат.

 Смежные вопросы

  • Нет связанных вопросов^_^