Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Rolich от 18 Апреля 2024, 10:27:13

Название: Частота записи в БД
Отправлено: Rolich от 18 Апреля 2024, 10:27:13
Доброго всем времени суток
В проекте имеется внешняя переменная, период опроса которой установлен 1 секунда и запись в базу по изменению
Обратил внимание, что запись значений в подключенную базу данных происходит не по факту изменения переменной, а с задержкой 5-10 минут
Можно ли сто-то сделать, чтобы данные в базе появлялись сразу по факту изменения значения переменной ?
Спасибо
Название: Re: Частота записи в БД
Отправлено: Simple_Scada от 18 Апреля 2024, 11:58:38
Здравствуйте.

Цитировать
Можно ли сто-то сделать, чтобы данные в базе появлялись сразу по факту изменения значения переменной ?
Такой возможности нет. Архивные данные накапливаются в оперативной памяти и периодически сбрасываются в БД. Это сделано для оптимизации и быстродействия. Если требуется получать из БД текущие значения переменных, например в стороннее приложение, то см. статью по ссылке (https://simple-scada.com/help/script/passval.html).
Название: Re: Частота записи в БД
Отправлено: mamontovsk от 18 Апреля 2024, 14:21:05
Добрый день.
А если резкая пропажа питания или что-то еще, запишутся ли  тогда переменные в базу?
Какое время записи переменной будет в базе: время изменения переменной или время записи?
Название: Re: Частота записи в БД
Отправлено: Simple_Scada от 18 Апреля 2024, 15:42:45
Здравствуйте.

Цитировать
А если резкая пропажа питания или что-то еще, запишутся ли  тогда переменные в базу?
При использовании системы архивации v2 (https://simple-scada.com/help/manual/archsysv2.html), в случае сбоев в работе БД, разрывов связи с БД и т.д., сервер Simple-Scada может сохранить у себя в буфере ~ 2 млн. записей, которые будут записаны в БД после восстановления связи. В случае сбоя питания часть данных за последние пять минут будет потеряна.

Цитировать
Какое время записи переменной будет в базе: время изменения переменной или время записи?
Время изменения переменной.
Название: Re: Частота записи в БД
Отправлено: LookAtMyOnion от 07 Июля 2026, 12:26:55
Архивные данные накапливаются в оперативной памяти и периодически сбрасываются в БД. Это сделано для оптимизации и быстродействия.

Здравствуйте! А с какой периодичностью данные попадают в БД с учетом этой оптимизации и настройки архивации переменной "по изменению"? Или может дело не в периодичности а в какой-то внутренней логике (например сохранение при заполнении внутреннего архива скады или вроде того)? Пока что замечен нерегулярный интервал в 10-15 минут + сохранение по событиям запуска и выключения клиента.
Есть-ли возможность как-то настроить сохранение данных из архива скады в БД без скриптов со своими SQL запросами?
Название: Re: Частота записи в БД
Отправлено: Simple_Scada от 08 Июля 2026, 21:35:56
Здравствуйте.

Если это нужно для передачи данных через БД в стороннее приложение, то возможен только способ описанный в сообщении выше - ссылка (https://simple-scada.com/help/script/passval.html). Если для чего-то другого, то максимально подробно опишите задачу, возможно мы сможем предложить решение.

Цитировать
А с какой периодичностью данные попадают в БД с учетом этой оптимизации
Какого-либо фиксированного периода нет. Чем реже меняется переменная, тем реже данные попадают в БД. Также, данные сбрасываются в БД при остановке проекта.
Название: Re: Частота записи в БД
Отправлено: Eugene_ от 10 Июля 2026, 12:24:25
если это внешняя переменная и она крайне вероятно - на отдельном OPC UA сервере (откуда SCADA берет) - более верный путь брать N раз в секунду отдельным сервисом (python-скриптом) и записывать в БД вашей системы, не используя для этого механизмы SCADA. Разделять потоки данных для разных систем на первой точке-источнике данных.