Пожалуйста, включите JavaScript для просмотра этого сайта.

Скрипты Simple-Scada

История: Примеры скриптов > Работа с БД

Запись в БД по таймеру

Пред. Вверх След. Еще

Допустим имеется проект в Simple-Scada и мы настроили подключение к СУБД MySQL к базе данных с именем "my_database" - теперь в нее сохраняются сообщения, тренды и т.д. Теперь необходимо создать в БД пользовательскую таблицу и записывать в нее значение требуемой переменной с заданной периодичностью.

Для этого сначала нужно создать таблицу, в которую мы будем записывать значения переменной. Для создания таблицы воспользуемся программой "MySQL Workbench". Таблица будет состоять из двух колонок: "timestamp" (отметка времени) и "value" (значение переменной). Откроем нашу БД, кликнем правой кнопкой мыши по разделу "Tables" и в раскрывшемся меню выберем пункт "Create Table":

 

Заполним структуру таблицы в соответствии с требованиями. Назовем таблицу "my_archive":

 

Теперь необходимо реализовать периодическую запись переменной в таблицу "my_archive". Для примера, будем записывать переменную температуры с именем "vrTemperature" и типом данных "Double". Создадим скрипт с типом события "Таймер" - в параметре скрипта "Интервал" укажем, с какой частотой должен выполняться скрипт, например 60 секунд. Напишем код скрипта:

var
  aQuery: string;
begin
  // запрос на вставку в БД значения переменной vrTemperature
  aQuery := 'INSERT IGNORE INTO `my_archive` (`timestamp`, `value`) ' +
            'VALUES (NOW(), ' + QuotedStr(vrTemperature.AsStr) + ')';
  RunSQL(aQuery, nil0);
end.

Сохраним проект. Теперь значение переменной "vrTemperature" будет с заданной периодичностью записываться в созданную нами таблицу.