Как получить данные с OPC-сервера в Unity3d

Я хочу получить данные (значения переменных) из программы, использующей для этого сервер OPC. Идея состоит в том, чтобы иметь возможность читать значение переменных, а также перезаписывать его. Я хочу сделать это в Unity3d.

Я, конечно, искал на многих веб-сайтах и ​​stackoverflow, но не могу найти решение своей проблемы.

До сих пор я использовал OPC-сервер «KEPServerEX 5» для получения информации из нужной программы. В единстве я написал несколько скриптов на C # с использованием библиотек opclabs, но проблема в том, что они и Unity не разделяют совместимость с .Net Framework (Unity использует v2.0 и эти библиотеки v4.5). Следовательно, я не могу использовать эти библиотеки и получать данные с сервера OPC. Я читал что-то о создании моста с помощью фитона для выполнения работы, но понятия не имею.

Кому-нибудь приходилось сталкиваться с такой проблемой? Вы бы знали, как это сделать?

Заранее спасибо!


person MetalxBeat    schedule 18.02.2016    source источник
comment
Вы знакомы с использованием WWW и т. д. для получения информации из сети? stackoverflow.com/a/33013590/294884   -  person Fattie    schedule 18.02.2016


Ответы (2)


.NET имеет обратную совместимость. Получаете ли вы ошибки компилятора по этому поводу?

И я не получаю ни одной части. Насколько я понимаю ваш проект, вы хотите считывать данные с сервера OPC. Это означает, что вы собираетесь реализовать клиент OPC в своем коде. Сервер OPC - это Kepware. OPC-клиент - это Unity. Это не имеет ничего общего с библиотеками или языком программирования. OPC - это протокол между сервером и клиентом. Может быть несколько причин, по которым они не могут обмениваться данными: одна из них может быть OPC Classic, а другая - OPC UA. Или OPC Classic с обеих сторон, но выпуск стандарта OPC Classic. Проверьте с официальным клиентом, работает ли сервер. Особенно с OPC Classic у вас могут возникнуть проблемы с DCOM и правами пользователей. И считайте возвращаемые значения из OPC.

http://www.advosol.com/OpcErrorLookup.aspx http://www.opcfoundation.org (идеальная база для всех ваших вопросов по OPC)

person Community    schedule 21.02.2016
comment
Спасибо за ваш ответ! Мне удалось решить проблему с библиотеками, используя их более раннюю версию. Однако я проверил сервер OPC с помощью клиента OPC, и он работает правильно. Я могу это заверить, потому что могу принудительно использовать переменные во внешней программе и видеть, как они меняются с клиентом OPC через сервер OPC. Этот KEPServerEX 5 KEPServerEX поддерживает OPC UA и многие из спецификаций OPC Classic, OPC DA, OPC AE и OPC HDA. Следовательно, я понимаю, что такой тип OPC не должен быть проблемой. - person MetalxBeat; 24.02.2016

Я решил проблему частично, так что, возможно, мое решение будет полезно для кого-то с похожей проблемой. Что мы сделали, так это использовали Cogent Datahub для подключения к серверу OPC. Сейчас мы работаем с базой данных для подключения Cogent Datahub к Unity3D, и это кажется возможным.

person MetalxBeat    schedule 03.03.2016