Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Переменные со сдвигом запятой  (Прочитано 5977 раз)

Timothy Clement

  • Постоялец
  • ***
  • Сообщений: 166
  • ОАО Борисовский завод "Металлист"
    • Просмотр профиля
    • Полымя
Переменные со сдвигом запятой
« : 12 Декабря 2018, 09:59:31 »
Для демонстрации проблемы сделал небольшой скрипт. В проекте 4 одинаковых внутренних переменных типа Int со шкалой -4000..6000 и свойством сдвиг запятой -1.
На экране 4 окна вывода связанные с этими переменными и кнопка со скриптом OnClick:
Код: (delphi)
begin
// во все переменные записываем одинаковое значение
 Tag1.Value := 1001;
 Tag2.Value := 1001;
 Tag3.Value := 1001;
 Tag4.Value := 1001;
// первую переменную больше не используем в скрипте
// со второй переменной выполняем одно действие
 Tag2.Value := Tag2.Value;
// с третьей переменной выполняем два действия
 Tag3.Value := Tag3.Value + 0;
 Tag3.Value := Tag3.Value - 0;
// с четвёртой переменной выполняем три действия
 Tag4.Value := Tag4.Value + 0;
 Tag4.Value := Tag4.Value - 0;
 Tag4.Value := Tag4.Value;
end.
В итоге при нажатии кнопки видим 4 разных показания при одинаковом значении всех переменных, то есть при каждом действии со значением происходит сдвиг запятой.
« Изменён: 12 Декабря 2018, 16:06:23 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Переменные со сдвигом запятой
« Ответ #1 : 12 Декабря 2018, 17:40:26 »
Для правильного присвоения используйте свойства переменной OriginalAsInt, OriginalAsFloat и OriginalAsExtended, например:
Код: (delphi)
Tag1.Value := Tag1.OriginalAsInt + 1;
Обдумаем и скорее всего изменим систему преобразования значений, чтобы конструкции приведённые Вами не приводили к излишнему сдвигу значений.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: Переменные со сдвигом запятой
« Ответ #2 : 20 Февраля 2019, 11:34:50 »
Исправили процесс присваивания в обновлении Simple-Scada 2.3.4.0.