Simple-Scada forum
Simple-Scada 2 => Ваши вопросы => Тема начата: Rolich от 18 Апреля 2024, 10:27:13
-
Доброго всем времени суток
В проекте имеется внешняя переменная, период опроса которой установлен 1 секунда и запись в базу по изменению
Обратил внимание, что запись значений в подключенную базу данных происходит не по факту изменения переменной, а с задержкой 5-10 минут
Можно ли сто-то сделать, чтобы данные в базе появлялись сразу по факту изменения значения переменной ?
Спасибо
-
Здравствуйте.
Можно ли сто-то сделать, чтобы данные в базе появлялись сразу по факту изменения значения переменной ?
Такой возможности нет. Архивные данные накапливаются в оперативной памяти и периодически сбрасываются в БД. Это сделано для оптимизации и быстродействия. Если требуется получать из БД текущие значения переменных, например в стороннее приложение, то см. статью по ссылке (https://simple-scada.com/help/script/passval.html).
-
Добрый день.
А если резкая пропажа питания или что-то еще, запишутся ли тогда переменные в базу?
Какое время записи переменной будет в базе: время изменения переменной или время записи?
-
Здравствуйте.
А если резкая пропажа питания или что-то еще, запишутся ли тогда переменные в базу?
При использовании системы архивации v2 (https://simple-scada.com/help/manual/archsysv2.html), в случае сбоев в работе БД, разрывов связи с БД и т.д., сервер Simple-Scada может сохранить у себя в буфере ~ 2 млн. записей, которые будут записаны в БД после восстановления связи. В случае сбоя питания часть данных за последние пять минут будет потеряна.
Какое время записи переменной будет в базе: время изменения переменной или время записи?
Время изменения переменной.
-
Архивные данные накапливаются в оперативной памяти и периодически сбрасываются в БД. Это сделано для оптимизации и быстродействия.
Здравствуйте! А с какой периодичностью данные попадают в БД с учетом этой оптимизации и настройки архивации переменной "по изменению"? Или может дело не в периодичности а в какой-то внутренней логике (например сохранение при заполнении внутреннего архива скады или вроде того)? Пока что замечен нерегулярный интервал в 10-15 минут + сохранение по событиям запуска и выключения клиента.
Есть-ли возможность как-то настроить сохранение данных из архива скады в БД без скриптов со своими SQL запросами?
-
Здравствуйте.
Если это нужно для передачи данных через БД в стороннее приложение, то возможен только способ описанный в сообщении выше - ссылка (https://simple-scada.com/help/script/passval.html). Если для чего-то другого, то максимально подробно опишите задачу, возможно мы сможем предложить решение.
А с какой периодичностью данные попадают в БД с учетом этой оптимизации
Какого-либо фиксированного периода нет. Чем реже меняется переменная, тем реже данные попадают в БД. Также, данные сбрасываются в БД при остановке проекта.
-
если это внешняя переменная и она крайне вероятно - на отдельном OPC UA сервере (откуда SCADA берет) - более верный путь брать N раз в секунду отдельным сервисом (python-скриптом) и записывать в БД вашей системы, не используя для этого механизмы SCADA. Разделять потоки данных для разных систем на первой точке-источнике данных.