Поиск:

Ответ в темуСоздание новой темы Создание опроса
> c# OPC Client, Не могу подключится к OPC серверу 
:(
    Опции темы
Alexander8111
Дата 30.6.2016, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.6.2016

Репутация: нет
Всего: нет



Уважаемые специалисты, - 
уже создал данную тему  в разделе .Net, но вижу, что темы связанные с OPC тут так сказать периодически более активны, - поэтому повторю свой вопрос в данном разделе форума.
------------------------------------------------------------------------------------------------
В коде c# я подключаюсь к некому OPC серверу сети Bacnet (ID сервера JC.BNOPC). Данный код успешно подключается ко всем другим OPC серверам, которые мне приходилось использовать до этого, а в случае с этим сервером выдаются исключения:
The COM Server does not support the interface
или
OPC.ResultIdException: E_Fail
Исключения зависит от того какие dll я использую с сайта OPC foundation. Они собственно одинаковые (даты выпуска только разные) - это OpcNetApi.dll и OpcNetApi.Com.dll 
Колдовал много с настройками DCOM (так как гугл советует) - но все без толку.
Ниже приложен скрин проблемы. Всем благодарен за помощь smile 

Это сообщение отредактировал(а) Alexander8111 - 30.6.2016, 11:30

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  BNOPC_C_.png 131,52 Kb
PM MAIL   Вверх
jsharp36
Дата 1.7.2016, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.10.2011

Репутация: нет
Всего: 1



Побуду за капитана очевидность. Вряд ли здесь кто подробнее объяснит.

Не работал никогда с этими серверами. Но Вам ясно пишет эксепшин - COM-сервер не поддерживает данный интерфейс.
Т.е. у вас несовместимые дотнетовские dll с данным ком-сервером. Советы очень общие, не знаю, применимы в Вашем случае или нет - зависит от сложности кода-провайдера (на дотнете).

Очень кратко. Вдруг кто не знает. COM-сервера представляют собой до-дотнетовский способ коммуникаций между разным кодом у майкрософта. Двоичный код выставляет наружу интерфейсы (подобные по сути, как интерфейсы в дотнете). Но какого-то серьезного механизма версионности там нет. Когда подключаетесь к такому серверу, подключаетесь на свой страх и риск, может случиться, что ваш код по сигнатурам вызова функций не совпадет.
Что и случилось.

Обычно для таких серверов пишут библиотеки на дотнете, которые уже вы используете. В этих библиотеках скрыт механизм вызовов com-сервера.

Выход такой.
1. Искать адекватную вашему серверу библиотеку на дотнете.
2. Если 1 не получается, то найти исходники неправильной библиотеки на дотнете, разобраться и исправить под ваш COM-сервер, а до этого узнать, что за интерфейсы у вашего com-сервера.

Извините, если пишу очевидности и ответ бесполезен. Вообще, на дотнете редко найдешь специалиста, который бы работал с com-серверами и понимает что это такое

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.3716 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.