Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Написание OPC-сервера

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

ganainm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
http://www.opcconnect.com/delphi/sopc.zip Вот это реально проверенный и отлично работающий тулкит для создания оpc-сервера, причем абсолютно бесплатный.  

 
Бесплатный - да. Но не работающий. Тем более не абсолютно. Чтобы он у меня хоть как-то заработал (стал передавать значения тегов) пришлось сменить потоковую модель на tmApartment, а чтобы заработал как надо со всеми всех имеющимися  клиентами выловил и исправил еще 3 разной критичности бага.  
(1. Не все клиенты "видят" сервер как ОРС, ибо не хватает пары спецзаписей в реестре. 2. Баг в Енумираторе, проявляется когда клиент запрашивает не ровно столько групп, сколько создал, а больше. Енумератор должен вернуть столько, сколько реально есть, а в sOPC при этом возвращается E_FAIL со всеми вытекающими. 3. Баг в деструкторе главного объекта. Если клиент уничтожает группу просто присвоив NULL/nil, не вызвав перед этим RemoveGroup (а такое часто происходит при закрытии клиентского приложения), то группа не удаляется из списка внутри сервера, в результате, при отключении клиента в деструкторе инстанса сервера возникает неловленная исключительная ситуация AV (попытка вызвать Free у объекта, который уже был уничтожен ), после нее остальные операторы деструктора не выполняются, и, как следствие, счетчик ссылок на COM-объект не уменьшается. Т.е. клиент закрывается, а сервер считает, что он еще подключен и потому не закрывается автоматически (если этот клиент был единственным).
Эти баги выгреб - вроде все нормально работает. Не проверял правда PublicGroups - чую и там бесовщину, но доказать пока не могу.  
В остальном - отличный объект хорошо логически выстроенный.  
Действительно, можно не лезть и не разбираться как работает это OPC, а в одном-единственном  модуле  написать свои функции чтения и записи тегов и функцию заполнения адресного пространства тегами. Ну еще в dpr поменять имя и описание сервера на свои.  
Радует, что, в отличие от других открытых исходников серверов, тут реализована не плоская, а иерархическая модель адресного пространства, что позволяет группировать тэги как угодно с любым количеством уровней вложенности.

Всего записей: 1 | Зарегистр. 02-04-2013 | Отправлено: 15:23 02-04-2013
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Написание OPC-сервера


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru