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

логика работы OPC сервера

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


Присоединился: 02 Февраль 2005
Online Status: Offline
Публикации: 11
Свойства публикации Свойства публикации   Ответить, цитируя автора - HAlex Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: логика работы OPC сервера
    Опубликовано: 02 Февраль 2005 14:25
Здравствуйте Уважаемые господа и дамы.
Хочу у Вас спросить вот о чем. Передо мной встала задача написать ОРС сервер для нестандартного оборудования (контроллер, который управляет этим оборудованием, собственной разработки). Проблем с написанием самого ОРС сервера, т.е реализации всех интерфейсов стандарта DA2, нет (есть конечно подводные камни, но они потихоньку решаются ). Вопрос в другом, я не пойму как организовать обмен между моим сервером и контроллером.... подробнее: у контроллера есть какой то набор команд, которые формируются в виде, ну например [A][N][D0..Dn] где А - адрес контроллера, N - номер команды, D - набор данных (все в байтах), так вот, есть команда настройки каких-либо параметров контроллера, в этой команде передается сразу множество параметров (это необходимо для минимизации трафика, т.к. обмен происходит по радиоканалу), судя по документации по OPCDA (или как я ее понимаю) изменение какого-либо параметра, должно повлечь за собой рано или поздно его запись непосредственно в контроллер, но я не могу записывать отдельно каждый параметр, в данном случае можно записать только совокупность параметров, так вот я не пойму, как лучше, или как надо организовать работу ОРС сервера в этом случае ?
На данный момент у меня это сделано так: сначала с клиентской части должен прийти запрос на чтение этих параметров, а затем, когда пользователь изменит какие-либо параметры (тэги), он изменяет дополнительный тэг, который заставляет ОРС сервер послать команду непосредственно в контроллер. Прав ли я ? ....... и попутно... судя по документации OPCDA, в метод Write (IOPCSync, IOPCSync2) можно с клиента передать сразу множество значений параметров (тэгов) в одной транзакции, как такое можно организовать на клиенте, из диалоговых форм, например в Genesis?
Заранее спасибо!
Наверх
kill Смотреть выпадающим
Новичок
Новичок


Присоединился: 22 Ноябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 36
Свойства публикации Свойства публикации   Ответить, цитируя автора - kill Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Февраль 2005 08:52

Я делал так: в отдельном потоке с некоторой периодичностью происходит обмен с устройством, т.е. полученная инфа хранится в памяти. Когда приходит запрос на значение параметров, сервак просто выдает то, что знает. А когда клиент изменяет параметр (они у нас редко изменяются юзером), поток опроса приостанавливается и просто шлется соотв. команда.

Может, я не правильно вопрос понял?

просто Шурик
Наверх
HAlex Смотреть выпадающим
Новичок
Новичок


Присоединился: 02 Февраль 2005
Online Status: Offline
Публикации: 11
Свойства публикации Свойства публикации   Ответить, цитируя автора - HAlex Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Февраль 2005 09:46
[QUOTE=kill]

Может, я не правильно вопрос понял?


Да, немного не поняли :) ... вот по аналогии с другими программами (Ворд, Ексель и т.д. не важно), у них есть форма настройки, где можно настроить отображение документа, ну и так далее, т.е. сначала пользователь поменяет значение каких-либо настроек (множество настроек), а потом, нажав кнопочку "Применить", эти настройки вступят в силу, т.е.мне надо за одну транзакцию послать сразу множество параметров в контроллер. Насколько я понял, стандартный СКАДА такие вещи делать не могут ...
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Февраль 2005 10:48

Первоначально опубликовано HAlex

нажав кнопочку "Применить", эти настройки вступят в силу, т.е.мне надо за одну транзакцию послать сразу множество параметров в контроллер. Насколько я понял, стандартный СКАДА такие вещи делать не могут ...

Почему же не могут? Предположим, пользователь редактирует некие внутренние переменные. А по нажатию кнопки их знчения копируются в соответствующие теги OPC. При открытии формы во внутренние переменные можно записывать актуальные значения тегов.

Инженер-системотехник
+7 (916) 477 3925
Наверх
HAlex Смотреть выпадающим
Новичок
Новичок


Присоединился: 02 Февраль 2005
Online Status: Offline
Публикации: 11
Свойства публикации Свойства публикации   Ответить, цитируя автора - HAlex Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Февраль 2005 11:12
Ага, с клиентом теперь наступило полное понимание, спасибо :). Т.е логика работы моего сервера должна быть такой: есть множество тэгов для настройки каких-либо параметров контроллера.В начале, после запуска сервера, эти тэги имеют плохое качество, следовательно, клиент не может их редактировать. Сервер или клиент производят запрос на контроллер для инициализации этих тэгов, после этого клиент редактирует один или более тэгов, и потом все (которые отредактированы и которые нетронуты) параметры сервер отправляет опять в контроллер.
Так ?
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 03 Февраль 2005 11:48

Да. Смысл в том, что сервер будет кэшировать данные.

Инженер-системотехник
+7 (916) 477 3925
Наверх
 Ответить Ответить

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

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