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

Сервер Modbus OPC

 Ответить Ответить Страница  <1234>
Автор
Сообщение
Lectus Смотреть выпадающим
Новичок
Новичок


Присоединился: 21 Декабрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Lectus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Сервер Modbus OPC
    Опубликовано: 13 Июнь 2007 01:36
Спасибо за то что указали на узкие места.
Выпущена новая версия Lectus Modbus OPC/DDE server 3.6 (сборка 9) от 13.06.07 в которой улучшена производительность при работе с большими конфигурациями.

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


Если сравнивать Lectus OPC и MODBUS-OPC (сборка от 07.06.2007 ) то у Lectus период обновления переменных задается жестко и не варьируется в зависимости от времени обновления групп т.е. периодичность с верхнего уровня не управляется,



Это не верно. Для управления периодичностью опроса на верхнем уровне может использоваться предопределенная переменная POLL.

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


отсутствует поддержка OPC DA1 ,OPC DA3.


Спецификация OPC DA 1 безнадежно устарела, OPC DA 3 используется не во всех SCADA системах. OPC DA 2 была выбрана как наиболее распространенная. В будующем планируется добавить поддержку OPC DA 3.

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


Конфигурирование его при большом количестве тегов утомительно а формат конфигурационного файла довольно громоздок чтобы его сильно править тогда как
у MODBUS-OPC устройство довольно просто описать в формате csv и импортировать его в конфигураторе где его также легко править.


Это не проблема. Для одного из клиентов была разработана программа которая конвертирует конфигурацию из простого INI файла. Если пользователи посчитают нужным, выложу данную программу конвертации.

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


Кроме того Lectus не может работать как служба.


Что есть, то есть.
Посыпаю голову пеплом
Хотя я не считаю это крупным недостатком.
По мере реализации более приоритетных задач будет добавлена и данная функция.

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


Если сравнивать по производительности MODBUS-OPC (сборка от 07.06.2007 ) и Lectus (В качетстве ОРС клиента Matricon, в качестве slave усройства эмулятор Modbus Slave) на компьтере P-IV с частотой 3.2 Ггц и ОЗУ 1 гигабайтом памяти загруженость процессора Lectus-ом
где то в районе 30% причем загруженность периодически заскакивает за 50% и занимает память в районе 21 мегабайта (при обработке 1000 тегов формата int MODBUS RTU)
сервером MODBUS-OPC при аналогичных условиях загрузка процессора в среднем составляет 3% с заскоками до 12% и занимает память 8.9 мегабайта


При обработке 12000 тегов сервером MODBUS-OPC (по 3000 на discrete coils input и holding ) загрузка процессора составляла 8% и занимаемый объем памяти 22500кб и время от подключения к неработающему ОРС серверу до добавления всех тегов в группу составило примерно 3 минуты. Lectus при аналогичных действиях не вышел в рабочий режим после прошествия 30 минут, загрузил процессор на 100% и занял память за 220 мегабайт.


Вот более интересный тест при обрабоке 12000 тегов не компьютере с процессором P-II c частотой 233МГц и 256 ОЗУ MODBUS-OPC на рабочий режим вышел примерно через 15 минут


Если кому интересно то файл конфигурации на 12000 тегов для Lectus можно скачать отсюда http://www.modbusopc.com/lec.zip



См. выше.
Кстати, или я не туда смотрел, или эта конфигурация на 15000 тэгов.

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


Файл импорта для устройства на 12000 тегов для MODBUS-OPC можно скачать отсюда
http://www.modbusopc.com/my.zip


2. Может большинству данной функциональности и хватает, НО попробуйте меня убедить, зачем при равной стоимости приобретать менее функциональный и еще не до конца отлаженный продукт?


MODBUS-OPC более легок в настройке и гораздо менее требователен к системным ресурсам,
поддержка большего числа спецификаций ОРС.
Что касается отладки то для Windows регулярно выходят обновления да и у предложенного Вами для сравнения Lectus если почитать его файл readme.txt то там также указаны какие ошибки он правил т.е. по Вашему это так же не до конца отлаженные продукты?




Ошибки есть во всех программах. Нет их пожалуй только в не нужных или неиспользуемых.
Кроме того, ошибки подразделяются на критические и не критические, которые не отражаются на основной функциональности и чаще всего появляются в связи с появлением все новых возможностей.
Так вот, этап критических ошибок давно пройден.

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


Функциональность продукта вполне приемлимая есть продукты   с гораздо меньшим функционалом но гораздо большей стоимостью, да и из полезных функций Lectus которые отсутсвуют в MODBUS-OPC это логирование и работа с модемами (но логирование оно полезно при отладке и будет реализовано в последующих версиях MODBUS-OPC, а работа с модемами у Lectus неэффективна поскольку устройство жестко привязывается к одному модему и если рассматривать случай когда мы имеем несколько модемов то при опросе устройства он будет ждать освобождения конкретного модема а не искать свободный)    




И свободный модем будет звонить тому модему который уже занят обменом с первым модемом ?

Если несколько устройств привязаны к одному модему, то подключение осуществляется только при первом обращении к модему. Последующие устройства только посылают непосредственно Modbus команды, если конечно к этому моменту не произошло отключение от модема в связи с истечением времени простоя (что настраивается в конфигурации).

Кстати, вы забыли указать следующие полезные возможности:
- поддержка Modbus TCP;
- работа в режиме "Master" и "Slave";
- реализация функциональности OPC и DDE сервера;
- вычисление значения переменной по заданной формуле;
- симулирование значения переменной (константа, случайное, счетчик);
- формирование любого Modbus запроса;
- передача/считывание данных любого SQL сервера;
- встроенный OPC клиент, для опроса загруженной конфигурации;
и др.

Из последних добавленных возможностей - это реализация Master и Slave на уровне узлов с поддержкой как прямого подключения, так и Modbus TCP и модемного подключения. Т.е. можно настроить получение данных с удаленного компьютера через TCP или модемное подключение.

Предлагаю посетителям этого форума оценить данную функциональность.
http://www.lectussoft.com/programs/opcserv.zip
Наверх
kuksevi Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 17 Апрель 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 12
Свойства публикации Свойства публикации   Ответить, цитируя автора - kuksevi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Июнь 2007 23:54

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

Спасибо за то что указали на узкие места.
Выпущена новая версия Lectus Modbus OPC/DDE server 3.6 (сборка 9) от 13.06.07 в которой улучшена производительность при работе с большими rонфигурациями.

Однако новая версия по сравнению с MODBUS-OPC (для 12000 тегов ) по производительности все равно проигрывает MODBUS-OPC хотя время загрузки и сократилось но оно все равно очень большое и к тому же загружает сильно процессор после чего работа других приложений крайне затруднительна и это на PIV c 3.2Ггц частотой , тогда как  MODBUS-OPC на P-II с 233 МГц показывает более стабильную работу

 

Если сравнивать Lectus OPC и MODBUS-OPC (сборка от 07.06.2007 ) то у Lectus период обновления переменных задается жестко и не варьируется в зависимости от времени обновления групп т.е. периодичность с верхнего уровня не управляется,

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


Это не верно. Для управления периодичностью опроса на верхнем уровне может использоваться предопределенная переменная POLL.

Я специально перепроверил предоперделенная переменная POLL у Вас используется для разового опроса но не как для изменения периода опроса.

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


Кстати, или я не туда смотрел, или эта конфигурация на 15000 тэгов. .

Конфигурация на 12000 тегов просто в одном из разделов имена  идут черех 1 тег0, тег2, тег 4 и т.д.


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


И свободный модем будет звонить тому модему который уже занят обменом с первым модемом ?

Если несколько устройств привязаны к одному модему, то подключение осуществляется только при первом обращении к модему. Последующие устройства только посылают непосредственно Modbus команды, если конечно к этому моменту не произошло отключение от модема в связи с истечением времени простоя (что настраивается в конфигурации).

Сервер то должен определять с каким номером установлена связь.

Просто я делал такое решение но выдавал не в ОРС а в базу MSSQL

сервер опрашивал около 800 удаленных устройств причем протоколы обмена с устройствами были не только  MODBUS но и МЭК и HARD и др.  Заказчика  интересовало считывание архивов с этих устройств так и  текущие данные (период опроса от нескольких минут  (обычно  1 раз в час) либо по команде непрерывный мониторинг с конретного устройства). Так вот на удаленном модеме обычно было одно устройство , а на некоторых до 4, на сервере 16 модемов. И алгоритм был примерно такой это нахождение есть ли уже нужное соединение и если нет то нахождение не занятого модема и установление связи

Наверх
Lectus Смотреть выпадающим
Новичок
Новичок


Присоединился: 21 Декабрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Lectus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Июнь 2007 11:08
Первоначально опубликовано kuksevi


Однако новая версия по сравнению с MODBUS-OPC (для 12000 тегов ) по производительности все равно проигрывает MODBUS-OPC хотя время загрузки и сократилось но оно все равно очень большое и к тому же загружает сильно процессор после чего работа других приложений крайне затруднительна и это на PIV c 3.2Ггц частотой , тогда как  MODBUS-OPC на P-II с 233 МГц показывает более стабильную работу


Загрузка происходит один раз при старте. Затем сервер работает в штатном режиме сутками, а то и месяцами.
В этом случае критичнее не то что при старте сильно загружается процессор, а загрузка в штатном режиме и отсутствие утечек памяти.

Кроме того у большинства моих клиентов использовалась конфигурация с не более чем 10000 переменными. Т.к. SCADA система с увеличением тэгов очень существенно растет в цене.

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


Если сравнивать Lectus OPC и MODBUS-OPC (сборка от 07.06.2007 ) то у Lectus период обновления переменных задается жестко и не варьируется в зависимости от времени обновления групп т.е. периодичность с верхнего уровня не управляется,

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


Это не верно. Для управления периодичностью опроса на верхнем уровне может использоваться предопределенная переменная POLL.



Я специально перепроверил предоперделенная переменная POLL у Вас используется для разового опроса но не как для изменения периода опроса.




Верно. SCADA система или OPC клиент самостоятельно опрашивают переменные с необходимой периодичностью.

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


Сервер то должен определять с каким номером установлена связь.

Просто я делал такое решение но выдавал не в ОРС а в базу MSSQL


Сервер опрашивал около 800 удаленных устройств причем протоколы обмена с устройствами были не только  MODBUS но и МЭК и HARD и др.  Заказчика  интересовало считывание архивов с этих устройств так и  текущие данные (период опроса от нескольких минут  (обычно  1 раз в час) либо по команде непрерывный мониторинг с конретного устройства). Так вот на удаленном модеме обычно было одно устройство , а на некоторых до 4, на сервере 16 модемов. И алгоритм был примерно такой это нахождение есть ли уже нужное соединение и если нет то нахождение не занятого модема и установление связи



Я не нашел в Вашей программе возможности связываться через модемы, по протоколам МЭК, HARD и всего что указано выше.
Наверх
kuksevi Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 17 Апрель 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 12
Свойства публикации Свойства публикации   Ответить, цитируя автора - kuksevi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Июнь 2007 13:08

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


Загрузка происходит один раз при старте. Затем сервер работает в штатном режиме сутками, а то и месяцами.
В этом случае критичнее не то что при старте сильно загружается процессор, а загрузка в штатном режиме и отсутствие утечек памяти.

Кроме того у большинства моих клиентов использовалась конфигурация с не более чем 10000 переменными. Т.к. SCADA система с увеличением тэгов очень существенно растет в цене.

Да но он и в штатном режиме загружает процессор и потребляет памяти на порядок выше чем MODBUS-OPC, MODBUS-OPC так-же в штатном работает и сутками и месяцами

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


Верно. SCADA система или OPC клиент самостоятельно опрашивают переменные с необходимой периодичностью.

Кривое решение. Если нужно поменять период опроса то нужно либо перелопатить конфигурацию, либо SCADA должна мониторить эту предопределенную переменную анализировать ее и заносить в нее по необходимости значение вместо того чтобы раз указать с каким желательным периодом  мониторить нужные теги

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


Я не нашел в Вашей программе возможности связываться через модемы, по протоколам МЭК, HARD и всего что указано выше.

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

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

Присоединился: 29 Ноябрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 8
Свойства публикации Свойства публикации   Ответить, цитируя автора - добряк Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Июнь 2007 16:32

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

...

Если сравнивать Lectus OPC и MODBUS-OPC (сборка от 07.06.2007 ) то у Lectus период обновления переменных задается жестко и не варьируется в зависимости от времени обновления групп т.е. периодичность с верхнего уровня не управляется

... 

Какой смысл менять с верхнего уровня  период "физического" опроса сервером переменных? Предположим, есть несколько клиентов, которые опрашивают одни и те же теги с разной периодичностью.  Период чтения сервером данных (тегов) из физического устройства должен быть, на мой взгляд, как раз жестким. Иначе будет "бардакс". Далее сервер предоставляет клиентам  данные по тегам с запрошенной периодичностью..

Или я что то не так понимаю?

Наверх
kuksevi Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 17 Апрель 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 12
Свойства публикации Свойства публикации   Ответить, цитируя автора - kuksevi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Июнь 2007 10:38
Первоначально опубликовано добряк

Какой смысл менять с верхнего уровня  период "физического" опроса сервером переменных? 

Потому что на практике такая необходимость очень часто возникает. Да и к тому же   такое поведение сервера рекомендовано по спецификации.

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

Предположим, есть несколько клиентов, которые опрашивают одни и те же теги с разной периодичностью.  Период чтения сервером данных (тегов) из физического устройства должен быть, на мой взгляд, как раз жестким. Иначе будет "бардакс". Далее сервер предоставляет клиентам  данные по тегам с запрошенной периодичностью..

Или я что то не так понимаю?

Ну раз один из клиентов так захотел получать данные с завышенной периодичностью, то
сервер в таком случае будет с завышенной периодичностью обновлять свой кеш, но  группы будут мониторить кеш с заданным им периодом и клиентам предоставлять данные с заданным для их периодом, так   что никакого бардака здесь нет, бардак будет в этой АСУТП.

А вообще-то интересно услышать по этому поводу  мнение и других участников форума

Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Июль 2007 07:42

На мой взгляд, вполне логично, когда для каждого тега или группы тегов можно задать свое время опроса. Т.к.  как правило, бывают "быстрые" сигналы и "медленные" и опрашивать их все с одинаковой  скоростью зачастую не имеет смысла.

С уважением!
Наверх
kuksevi Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 17 Апрель 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 12
Свойства публикации Свойства публикации   Ответить, цитируя автора - kuksevi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 05 Июль 2007 10:43
Первоначально опубликовано globus

На мой взгляд, вполне логично, когда для каждого тега или группы тегов можно задать свое время опроса. Т.к.  как правило, бывают "быстрые" сигналы и "медленные" и опрашивать их все с одинаковой  скоростью зачастую не имеет смысла.

А что мешает разнести в клиенте по разным группам такие каналы и опрашивать их с разной скоростью тем более что достигается большая гибкость и соотвествие спецификации OPC вот выдержка из спецификации

4.5.1.4 Update Rate

The client can specify an ‘update rate’ for each group. This determines the time between when the exception limit is checked. If the exception limit is exceeded, the CACHE is updated. The server should make a ‘best effort’ to keep the data fresh. This also affects the maximum rate at which notifications will be sent to the IAdvise sink. The server should never send data to a client at a rate faster than the client requests.

IMPORTANT:

Note that this is NOT necessarily related to the server's underlying processing rate. For example if a device is performing PID control at 0.05 second rate the an MMI requests updates at a 5 second rate via OPC, the device would of course continue to control at a 0.05 second rate.

In addition, the server implementation would also be allowed to update the cached data available to sync or async read at a higher rate than 5 seconds if it wished to do so. All the update rate indicates is that (a) callbacks should happen no faster than this and (b) the cache should be updated at at least this rate.

The update rate is a ‘request’ from the client. The server should respond with an update rate that is as close as possible to that requested.

Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Июль 2007 22:06
Первоначально опубликовано kuksevi


А что мешает разнести в клиенте по разным группам такие каналы и опрашивать их с разной скоростью тем более что достигается большая гибкость и соотвествие спецификации OPC вот выдержка из спецификации


На мой взгляд, возрастает загрузка cpu, что негативно скажется на общей производительности системы, если на одном компьютере будет находиться клиент и сервер. Если я не прав то поправьте меня.
С уважением!
Наверх
uzga Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 07 Октябрь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 359
Свойства публикации Свойства публикации   Ответить, цитируя автора - uzga Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 09 Июль 2007 06:08
Если для некоторой группы устанавливается больший период опроса, то нагрузка на ЦПУ должна уменьшиться.
Наверх
 Ответить Ответить Страница  <1234>

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

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