Добрый день.
Посмотрите здесь, возможно, поймете в какую сторону дальше копать.
https://stackoverflow.com/questions/...ut-frustration
Здесь можете посмотреть инструменты для разработки.
https://www.opcconnect.com/source.php
Добрый день.
Посмотрите здесь, возможно, поймете в какую сторону дальше копать.
https://stackoverflow.com/questions/...ut-frustration
Здесь можете посмотреть инструменты для разработки.
https://www.opcconnect.com/source.php
Последний раз редактировалось v.borovikov; 26.11.2019 в 17:16.
Копать-то понятно в какую сторону. Нужны правильные библиотеки (OpcNetApi.dll, OpcNetApi.Com.dll) за которые OPC foundation хочет денег. Есть OpenSource проекты, но по какой-то причине они пока у меня не могут запуститься или же там сразу пишут, что приложение будет работать при наличие указанных библиотек.
Странны две вещи:
1) Matrikon OPC Explorer не видит запущенный на том же компе OWEN OPC Server, хотя обещают что должен видеть всё. При этом если рядом поставить OPC от ИнСАТ, его видит.
2) На старом OPC никаких дополнительных телодвижений не требовалось. на VB было достаточно кода
Set MyServer = New OPCServer
MyServer.Connect "OWEN.RS485", ""
Частично еще вопрос обсуждался здесь https://owen.ru/forum/showthread.php?t=645
Вообще очень мало информации по этому вопросу.
Кажется нашел что искал тут http://www.cyberforum.ru/asutp/thread1274395.html
Завтра проверю.
Последний раз редактировалось settom; 26.11.2019 в 21:49.
Итак, дело сдвинулось с мёртвой точки.
Поиск информации в интернете привел к следующему списку, требуется:
1) Наличие бибилиотек OpcNetApi.dll и OpcNetApi.Com.dll (найдены)
2) Запущенный и сконфигурированный OPC (cделано, данные все приходят)
3) Пример, чтобы было где подсмотерть (как вариант а) https://github.com/overash/K6_asking б) http://www.cyberforum.ru/asutp/thread1274395.html)
Следующий затык был вызван непониманием, какое имя сервера должно быть указано. В строке подосоединения к серверу нужно указывать не имя, заданное в конфигураторе, а то имя, которое присваивается серверу в системе. Но узнать его без дополнительного софта проблематично. Ребята, разрабы, добавьте это readonly поле на вкладку свойств сервера в конфигураторе, облегчите людям жизнь. Пока это можно узнать например при помощи правильного сканера OPC (тут крылся еще один мой недосмотр, использовал какой-то не тот софт), например MatrikonOPC Explorer, вот правильная ссылка https://www.matrikonopc.com/portal/d...s.aspx?dID=176 (требуется бесплатная регистрация). В итоге видим, что есть на компе (см скрин в приложении) и то что нам нужно называется Owen.OPCNet.DA.1
Далее проверяем коннект таким куском кода.
Если всё ОК, то server.Connect ошибки не вызывает.Opc.URL url;
Opc.Da.Server server;
OpcCom.Factory fact = new OpcCom.Factory();
url = new Opc.URL("opcda://localhost/Owen.OPCNet.DA.1");
server = new Opc.Da.Server(fact, null);
server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));
Далее надо конфигурировать узлы и тэги. Если будет нужно, то наверное смогу это описать позже. А в идеале нужна целая статья.
Последний раз редактировалось settom; 27.11.2019 в 12:13.