УкраїнськаEnglishmRussian
Вхід/Новий
У темі багато повідомлень

Период и последовательность выполнения в блочном и ява-вычислителе


Автор Повідомлення
Повідомлення створено: 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.



1114