Автор |
Повідомлення |
Повідомлення створено: 07. 06. 2011 [09:14]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
svn1413 - работает. А периоды сбора и синхронизации в DAQGate?
Смысл в минимизации трафика между скадами (например, через GPRS интернет) при передаче данных раз в час, сутки и т.д. Сейчас ограничение 100 секунд. Перед другими способами передачи (например, MODBUS) DAQGate выигрывает в простоте настройки передачи большого количества параметров (сразу целый контроллер или несколько) и последующей модификации списка передаваемых параметров.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 07. 06. 2011 [20:24]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
svn1413 - работает. А периоды сбора и синхронизации в DAQGate?
Там нужен строго периодичный опрос, а лимиты меня устраивают.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 08. 06. 2011 [21:54]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Увеличение лимита в DAQGate со 100 секунд хотя бы до суток мне бы пригодилось. А чем обусловлена необходимость строго периодического выполнения? Насколько понимаю, в заданное время одна OpenSCADA делает запрос в другую OpenSCADA, получает ответ и размещает полученное в атрибутах... Да и с cron можно достичь строгой периодичности, если это так необходимо...
Заметка: при запуске OpenSCADA происходит однократное исполнение функций в ява-вычислителе не в заданное по cron время (может и в других контроллерах тоже). Далее работает по cron, если не останавливать скаду. Может быть не стоит запускать контроллеры при старте не в заданное время?
[Повідомлення редагувалось 1 раз(ів), останній раз 08.06.2011 в 21:58.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 09. 06. 2011 [08:09]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
Увеличение лимита в DAQGate со 100 секунд хотя бы до суток мне бы пригодилось. А чем обусловлена необходимость строго периодического выполнения?
Работой с архивами.
Впрочем, гляну ещё на возможность обхода.
"almaz" wrote:
Да и с cron можно достичь строгой периодичности, если это так необходимо...
Можно, но узнать это из кода возможности нет.
"almaz" wrote:
Заметка: при запуске OpenSCADA происходит однократное исполнение функций в ява-вычислителе не в заданное по cron время (может и в других контроллерах тоже). Далее работает по cron, если не останавливать скаду. Может быть не стоит запускать контроллеры при старте не в заданное время?
Стоит. Это инициирующий вызов. В одних случаях он используется для инициализации-восстановления архивов, в других просто как вызов-конструктор скрипта, через установку "f_start".
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 11. 06. 2011 [23:33]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Но ведь архивация - это отдельная от сбора данных задача и имеет свои периоды выполнения... Или архивируется по заданным при сборе данных временам и периодам? Привязка к часам (cron) нужна и при архивировании значений. Без этого не получится создавать учётные системы, в которых в архив периодически вносятся измеренные (накопленные) значения в точно заданное время.
А зачем узнавать из кода заданные настройки периодов? Ведь архивировать значения в зависимости от задачи можно и не строго периодически... Да и отрисовка графиков значений может производится по значениям, имеющим разные временные интервалы между измерениями...
Инициировать (запускать) контроллеры при старте надо. Я неправильно выразился выше. Имелось ввиду не запуск контроллеров, а ява-программы пользователя. Если период задан по cron, то и запуск должен производиться в точно заданное время. Если задан период в секундах, то можно первый запуск программы пользователя выполнить через заданное время после пуска скады (что, кстати, может ускорить запуск системы в целом и снизить мгновенную нагрузку на процессор при пуске).
Например, у меня настроена по cron отправка email в ява-вычислителе раз в сутки. И каждый раз при запуске скада email отправляется, что не нужно. А у кого-то может быть задан по cron запуск-останов какой-нибудь технологической станции... Перезапуски скады в случае технического обслуживания или других случаях бывают нужны, но при этом не должно быть незапланированных действий скады...
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 14. 06. 2011 [08:00]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
Но ведь архивация - это отдельная от сбора данных задача и имеет свои периоды выполнения... Или архивируется по заданным при сборе данных временам и периодам?
Не совсем. Для архиватора нужна строгая периодичность. Он данных не создаёт.
"almaz" wrote:
А зачем узнавать из кода заданные настройки периодов? Ведь архивировать значения в зависимости от задачи можно и не строго периодически... Да и отрисовка графиков значений может производится по значениям, имеющим разные временные интервалы между измерениями...
Может Вы начнёте в исходный код смотреть?
"almaz" wrote:
Например, у меня настроена по cron отправка email в ява-вычислителе раз в сутки. И каждый раз при запуске скада email отправляется, что не нужно.
Например, атрибут "f_start" есть для решения этой проблемы. А у меня, например, есть задачи, которые нужно решать именно при старте контроллера, а иногда при его останове!
P.S. Добавил cron в DAQ.DAQGate.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 14. 06. 2011 [12:45]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Спасибо. Вечером соберу svn опробовать DAQGate.
С запуском программы пользователя при старте в ява-вычислителе понятно. А другие контроллеры (блочный вычислитель и др.), настроенные по cron, не производят запуск программы пользователя при старте? Ведь там "f_start" отсутствует...
Архиватор сам не создаёт, но записывает данные уже подготовленные другим процессом. Если планирования cron в архиваторе нет, то как записывать значения в архив в учётных системах? Например, нужно каждый час в 0 минут 0 секунд архивировать значение, собранное (вычисленное) на долю секунды ранее задачей с коротким периодом выполнения.
Период архивации диктуется решаемой задачей. Неужели не может быть систем, которые, например, архивируют только в определённый период суток ? В определённые минуты и секунды определённого часа... Нестрогий период архивации... Могут быть. Зачем же скада ограничивает пользователя строгой периодичностью архивации?
PS Исходный код читаю, но нахождение ответов на вопросы таким путём непросто.
[Повідомлення редагувалось 1 раз(ів), останній раз 14.06.2011 в 12:46.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 14. 06. 2011 [14:46]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Понятно чем обусловлена строгая периодичность архивации. Выбранным для хранения форматом файла. Формат хранения в БД, вроде как, позволяет хранить данные и не строго периодические.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 14. 06. 2011 [14:53]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
С запуском программы пользователя при старте в ява-вычислителе понятно. А другие контроллеры (блочный вычислитель и др.), настроенные по cron, не производят запуск программы пользователя при старте? Ведь там "f_start" отсутствует...
Блочный вычислитель - тоже вычислитель, и т.д. меня устраивает.
"almaz" wrote:
Архиватор сам не создаёт, но записывает данные уже подготовленные другим процессом. Если планирования cron в архиваторе нет, то как записывать значения в архив в учётных системах? Например, нужно каждый час в 0 минут 0 секунд архивировать значение, собранное (вычисленное) на долю секунды ранее задачей с коротким периодом выполнения.
Читать архив из счётчика и писать в архив по метке времени, для текущих.
"almaz" wrote:
Период архивации диктуется решаемой задачей. Неужели не может быть систем, которые, например, архивируют только в определённый период суток ? В определённые минуты и секунды определённого часа... Нестрогий период архивации... Могут быть.
Не могут, в непрерывных процессах. Учим мат.часть и читаем концепцию до прояснения: http://wiki.oscada.org/Doc/OpisanieProgrammy#h824-6
P.S. У меня нет никаких проблем с учётом. Если такие проблемы есть у Вас то не нужно их перекладывать на OpenSCADA!
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 14. 06. 2011 [15:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
Понятно чем обусловлена строгая периодичность архивации. Выбранным для хранения форматом файла. Формат хранения в БД, вроде как, позволяет хранить данные и не строго периодические.
Глупость!
Раз прямые ссылки не помогают, то попробуйте хотябы мозгами раскинуть на прямую аналагию архивов значений: звуковые и видеопотоки, в которых есть понятие периода в виде выборок и кадров за секунду. Глупцы наверное?! :)
Learn, learn and learn better than work, work and work.
|