Автор |
Повідомлення |
Повідомлення створено: 14. 06. 2011 [15:57]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Не глупцы. Убрав из потока метки времени каждого отдельного измерения уменьшается объём передаваемых (сохраняемых) данных. Соответственно, увеличивается производительность всей системы. Естественно, тут без строгих периодов между измерениями не обойтись. Поэтому именно форматом хранения и передачи данных обусловлены строгие периоды. Ну и измерительной аппаратурой, конечно же.
Матчасть же говорит о том, что нелинейное квантование гораздо лучше обычного. Это которое с переменными временными интервалами.
Архиватор на БД имеет метку времени для каждого элемента (судя по описанию структуры таблицы)...
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 14. 06. 2011 [16:21]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
Матчасть же говорит о том, что нелинейное квантование гораздо лучше обычного. Это которое с переменными временными интервалами.
Это уже хранение, где и в OpenSCADA выполнена похожая оптимизаци, на FS.
"almaz" wrote:
Архиватор на БД имеет метку времени для каждого элемента (судя по описанию структуры таблицы)...
И адрессуется прямо на метки, в соответствии с квантом!
P.S. Вы бы попробовали вначале вникнуть в реализацию и код, а затем уже выливали сюда мысли, более предметные. Если же вникнуть не получается то и словам Вашим тут грош-цена.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 15. 06. 2011 [01:14]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
"roman" wrote: Блочный вычислитель - тоже вычислитель, и т.д. меня устраивает. И меня тоже. Потому что программа пользователя в блочном вычислителе при запуске и останове скады не запускается. Похоже и в других контроллерах тоже. Это нужная особенность логического уровня и ява-вычислителя, при использовании которых необходимо отслеживать состояние f_start и f_stop в программе пользователя.
"roman" wrote: P.S. Добавил cron в DAQ.DAQGate. Прекрасно работает. Теперь его можно настроить на минимальный трафик. Правда при интенсивном использовании отражённого контроллера трафик набегает также с хорошей скоростью, но от этого можно уйти, используя отражённые данные изредка.
"roman" wrote: Читать архив из счётчика и писать в архив по метке времени, для текущих. Да. Если есть счётчик, архивирующий данные точно по времени. А если OpenSCADA выполняет функцию счётчика с подключенным только первичным датчиком?
Надо будет поэкспериментировать с функцией set:
http://wiki.oscada.org/Doc/FLibSYS?v=9in#h378-8
Для огромного количества параметров писать в ява костыль к архиватору не совсем конечно хорошая идея. Архивация по cron средствами скады была бы куда удобнее. Да и как покажет себя запись данных с точными временными метками (возможно нелинейных) в строго периодические архивы? Посмотрим...
[Повідомлення редагувалось 1 раз(ів), останній раз 15.06.2011 в 01:21.]
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 15. 06. 2011 [07:44]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
"roman" wrote: Блочный вычислитель - тоже вычислитель, и т.д. меня устраивает. И меня тоже. Потому что программа пользователя в блочном вычислителе при запуске и останове скады не запускается.
Запускается. Бросить взгляд в исходник опять не соизволили. :(
"almaz" wrote:
"roman" wrote: P.S. Добавил cron в DAQ.DAQGate. Прекрасно работает. Теперь его можно настроить на минимальный трафик. Правда при интенсивном использовании отражённого контроллера трафик набегает также с хорошей скоростью, но от этого можно уйти, используя отражённые данные изредка.
Опять заблуждение! DAQ.DAQGate уже оптимизирует трафик и чем чаще опрос тем трафик на единицу запроса меньше, за счёт запроса только изменений и редких событий синхронизации. На большом периоде накапливается много изменений и в каждом осуществляется синхронизация, опять - читаем исходник, а затем утверждаем!
Если нужно уменьшение именно трафика, то включайте упаковку трафика протокола "SelfSystem".
"almaz" wrote:
"roman" wrote: Читать архив из счётчика и писать в архив по метке времени, для текущих. Да. Если есть счётчик, архивирующий данные точно по времени. А если OpenSCADA выполняет функцию счётчика с подключенным только первичным датчиком?
Получим то что и должны и это не проблема OpenSCADA.
Текущие значения пишутся в буфер, а не непосредственно в архив и здесь нет никаких проблем.
"almaz" wrote:
Архивация по cron средствами скады была бы куда удобнее. Да и как покажет себя запись данных с точными временными метками (возможно нелинейных) в строго периодические архивы? Посмотрим...
Жду реализации Ваших заявлений в виде нового модуля архивов!
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 15. 06. 2011 [09:27]
|
almaz
Almaz Karimov
Contributor
Автор теми
Зареєстрован(а) с: 25.09.2008
Повідомлення: 516
|
Блочный вычислитель проверил экспериментально (вначале на svn1413, потом на 1421). Отправка email идёт только в указанное по cron время и перепуски скада на это не влияют. Но у меня отсутствуют параметры функции f_* Возможно из-за этого. При указании функции в ява-вычислителе эти параметры появлялись автоматически в библиотеке функций.
DAQGate также проверил экспериментально. Если указать период, например, 1 секунда - трафик набегает ежесекундно (независимо от изменений в отражаемом контроллере). Соответственно, при увеличении периода трафик уменьшается. На большом объёме передаваемых данных не тестировал. Возможно в зависимости от периода набегает только служебный трафик и с данными будет другая картина. Сжатие трафика, конечно, надо использовать.
Если текущие значения (с метками времени) пишутся в буфер, то что будет когда буфер заполнится? Он сохранится в архив в виде строго периодических данных и мы теряем записанные в буфер значения с точным временем?
Возможно и нужен будет новый модуль архиватора (даже два: на ФС и БД), который записывает значения по cron с метками времени. Буфер в данном случае должен быть лимитирован количеством записей, а не отрезком времени.
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Повідомлення створено: 15. 06. 2011 [10:31]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"almaz" wrote:
Блочный вычислитель проверил экспериментально (вначале на svn1413, потом на 1421). Отправка email идёт только в указанное по cron время и перепуски скада на это не влияют.
Плохо проверяли:
1|/DemoStation/sub_UI/mod_QTCfg/ | roman| Установлено </DemoStation/sub_DAQ/mod_BlockCalc/cntr_test/%2fcntr%2fst%2frun_st> у <1>!
1|/DemoStation/sub_DAQ/mod_BlockCalc/cntr_test/ | Запуск контролера!
0|TEST Log | TEST 00: 1 : 0 : -2e-06 # Стартовый вызов
0|TEST Log | TEST 00: 0 : 0 : -35.008716 # Первый плановый вызов
0|TEST Log | TEST 00: 0 : 0 : -60.011052 # Второй плановый вызов
1|/DemoStation/sub_UI/mod_QTCfg/ | roman| Установлено </DemoStation/sub_DAQ/mod_BlockCalc/cntr_test/%2fcntr%2fst%2frun_st> у <0>!
1|/DemoStation/sub_DAQ/mod_BlockCalc/cntr_test/ | Останов контролера!
0|TEST Log | TEST 00: 0 : 1 : -35.720545 # Последний вызов
"almaz" wrote:
Но у меня отсутствуют параметры функции f_* Возможно из-за этого.
Не влияет. Читаем первоисточник.
"almaz" wrote:
Если текущие значения (с метками времени) пишутся в буфер, то что будет когда буфер заполнится? Он сохранится в архив в виде строго периодических данных и мы теряем записанные в буфер значения с точным временем?
Нормально будет. Продолжаем читать первоисточник и прекращаем догадки.
Learn, learn and learn better than work, work and work.
|