Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Серега от 10 Сентября 2024, 12:15:43

Название: Функции внутри скриптов
Отправлено: Серега от 10 Сентября 2024, 12:15:43
Добрый день!
Есть старый проект. Обновление до 14 версии планируется, но есть один вопросик.
Тип скрипта : по изменению переменной.
Текст скрипта :
Код: (delphi)
function picY(ymin:double; ymax:double; xmin:double; xmax:double; x:single) : single;
begin
  Result := ((ymax * (x - xmin)) / (xmax - xmin)) + ymin;
end;
begin
  Rectangle_1.Y := picY(517, 462, 0, 100, PositionObjectReal.Value);
end.
Вопрос : после обновлений ПО скады это работает? и корректно работает?
Название: Re: Функции внутри скриптов
Отправлено: Simple_Scada от 10 Сентября 2024, 21:09:16
Здравствуйте.

Да, будет работать также, как и в старой версии. Последний раз изменения в компилятор скриптов вносились в версии 2.3.4.7 (04 апреля 2019г.). Со всеми изменениями версий Simple-Scada можно ознакомится по ссылке (https://simple-scada.com/help/manual/whats-new.html). Для тестирования новых версий можно использовать бесплатные демо-версии (https://simple-scada.com/download-simple-scada).

При объявлении функции, параметры с одинаковым типом данных можно перечислить через запятую:
Код: (delphi)
function picY(ymin, ymax, xmin, xmax: double; x: single): single;
При работе со значением переменной рекомендуем всегда использовать явное приведение к нужному типу (https://simple-scada.com/help/script/convert-values.html). Если в функцию нужно передать значение Single, то используйте свойство переменной AsSingle (https://simple-scada.com/help/script/varassingle.html):
Код: (delphi)
Rectangle_1.Y := picY(517, 462, 0, 100, PositionObjectReal.AsSingle);
Название: Re: Функции внутри скриптов
Отправлено: Серега от 11 Сентября 2024, 08:34:17
Ясно. Спасибо!