Вопросы по скриптам в Simple-Scada 2

Автор Simple-Scada, 29 января 2016, 15:19:20

azrael454

Добрый день. Как можно реализовать сброс по времени? При достижении начала смены необходимо сбросить счетчики. Смены 3, идут одна за другой.

Simple-Scada

Ещё можно создать скрипт с типом события "Прошел час" и в нём написать такой код:
Код: pascal
begin
  if HourOf(Now) = 8 then // если сейчас 8 часов утра
  begin
    myVar1.Value := 0;    // то обнуляем переменные
    myVar2.Value := 0;
  end;
end.

bacchus1

Добрый день!
Пробую менять LimitType у переменной из скрипта. Для проверки у поля поставил свойство Границы. Как-то странно работает изменение LimitType, то отключает проверку границ, то не отключает. Иногда поле так и остается красным, хотя переменная уже не превышает границу. Прошу протестировать корректность работы свойства LimitType.
Если я правильно понял, то при запуске клиента это свойство становится таким, как сконфигурировано в проекте. Это так? Если да, то возможно ли его сохранять наряду с уставками?

Simple-Scada

Здравствуйте.

Сейчас, при смене LimitType у объектов которые связаны с переменной не происходит обновление отображения. Визуально компоненты обновятся только после изменения граничных значений или при переходе значения переменной в одну из граничных областей. В будущем сделаем чтобы при смене LimitType происходило обновление объектов.

bacchus1

Спасибо за ответ. А что по поводу сохранения заданного из скриптов LimitType при повторно перезапуске сервера?

Simple-Scada

Сделаем чтобы значение LimitType сохранялось вместе с граничными значениями переменной.

VladD

Добрый день...что не так?..пытаюсь управлять свойством Visible у объекта изображение...если через основную переменную (OnDataChange) скрипт работает и изображение то true то false, но вот через доп переменную..тот же самый скрипт (OnDataChangeEx)...это не работает совсем.

Simple-Scada

Здравствуйте.
Вы в скрипте с основной переменной объекта работаете? Если да, то он конечно не подойдёт на событие OnDataChangeEx, ведь нужно работать с доп. переменной (VariableEx).
Без кода скрипта трудно угадать что ещё может быть не так. Если в нём есть условия, то возможно они просто не проходят и т.п.

VladD


deldemo

Здравствуйте. Подскажите пожалуйста, возможно ли заполнять ComboBox через SQL запрос &

Dmitry_Impuls

Цитата: deldemo от 15 октября 2019, 13:09:28Здравствуйте. Подскажите пожалуйста, возможно ли заполнять ComboBox через SQL запрос &
Да
 :)

Simple-Scada

Цитата: deldemo от 15 октября 2019, 13:09:28Здравствуйте. Подскажите пожалуйста, возможно ли заполнять ComboBox через SQL запрос &
Здравствуйте. Для этого нужно отправить SQL-запрос на выполнение через RunSQL (пометить запрос уникальным тегом, например 20) и в отдельном скрипте с типом события "Выполнен SQL-запрос" убедиться что это запрос с тегом = 20. Далее пройти по полученному результату запроса и добавить каждую строку в раскрывающийся список через ComboBox.AddItem. Простой пример выполнения запроса и обработки результата описан в этой статье.

Пример скрипта "Выполнен SQL-запрос" с комментариями:
Код: pascal
begin
  if DataSet.Tag = 20 then         // если набор данных помечен тегом 20
  begin
    ComboBox1.Clear;               // очищаем список
    if DataSet.IsEmpty then Exit;  // прерываем выполнение, если набор данных пуст
    while not DataSet.EOF do       // проходим в цикле по всем строкам полученного набора данных
    begin
      ComboBox1.AddItem(DataSet.Fields[0].AsStr);  // добавляем строку из первой колонки набора данных в список ComboBox1
      DataSet.Next;                // переходим к следующей строке набора данных
    end;
  end;
end.

deldemo


lipvasko

подскажите по какому принципу выставляются цифры  при архивировании в базы данных , поле таблицы качество?

Simple-Scada

0 - плохое качество тега (также качество 0 может быть у тега, если он ещё ни разу не считался с OPC-сервера);
1 - хорошее качество;
2 - первое значение после запуска проекта;
3 - значение на момент выключения проекта;