Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Проблемы при запуске своего OPC сервера к

 Ответить Ответить
Автор
Сообщение
kill Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Ноябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 36
Свойства публикации Свойства публикации   Ответить, цитируя автора - kill Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Проблемы при запуске своего OPC сервера к
    Опубликовано: 29 Апрель 2005 11:00

Добрый день, господа! Пишу на prOPC для Делфи.

У меня проблема такая со своим сервером - если его запустить, а потом клиент к нему обращается, то все нормально. Если клиент начинает обращаться к незапущеному еще серверу, последний выдает ошибку типа "инструкция там-то, обратилась к памяти по адресу тому-то. Память не может быть read". Поскольку отладить такую фишку невозможно, пытался выловить баг ексепшинами. Выяснилось, что он возникает при запуске процедуры регистрации сервера (RegisterOPCServer) и до запуска конструктора сервера. Т.е. где-то "внутри" prOPC. Как известно, в чужой код лезть - занятие неблагодарное, поэтому прошу помочь тех, кто с этим имел дело.

Сказанное выше не означает, что я подозреваю в глючности саму библиотеку, видимо я что-то не так прописал. Хотя небольшой опыт в разработке на этой основе уже имеется. Помогите, чем можете.

просто Шурик
Наверх
KostyaK Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 02 Август 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 110
Свойства публикации Свойства публикации   Ответить, цитируя автора - KostyaK Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 13 Март 2007 08:29
Первоначально опубликовано kill

 Если клиент начинает обращаться к незапущеному еще серверу, последний выдает ошибку типа "инструкция там-то, обратилась к памяти по адресу тому-то.  ... Выяснилось, что он возникает при запуске процедуры регистрации сервера (RegisterOPCServer) и до запуска конструктора сервера.

У меня регистрация сервера происходит при запуске программы. Для этого в код проги на Delphi надо добавить строку

initialization
  RegisterOPCServer(ServerGUID, ServerVersion, ServerDesc, ServerVendor, TDemo.Create)

После этого сервер регистрируется в системе и проблем с его вызовом не возникает.

Если сервер не запущен, но инициализирован подобным образом, то при обращении к нему со стороны клиента он автоматически запускается (как и предусматривает технология ОРС).

Минус подобного способа (регистрации в момент запуска программы). Если я добаляю/убираю в ходе работы сервера теги/группы тегов, то подобные изменения клиент увидит только после перезапуска сервера (те при его перерегистрации). А добавление тегов необходимо, например, при изменении конфигурации устройств, подключаемых к серверу.

Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz