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

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

Автор Тема: Вывод бита переменной  (Прочитано 1859 раз)

razorqhex

  • Пользователь
  • **
  • Сообщений: 79
    • Просмотр профиля
Вывод бита переменной
« : 06 Июля 2020, 15:00:40 »
Здравствуйте. Подскажите что я делаю не так. Мне нужно вывести в каком состоянии находится бит переменной. Пишу вот такой скрипт:
Код: (delphi)
varBit := GetBit(DiscreteInput_Output_VNS16.AsInt, 4);
Field158.Value := varBit.ToInt32;
Но объект Field158 не выводит никакое число

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вывод бита переменной
« Ответ #1 : 07 Июля 2020, 09:58:38 »
Здравствуйте.
Через меню редактирования переменных нужно создать новую внутреннюю переменную, которая будет хранить значение бита и её привязать к компоненту Поле. Затем записывать извлеченный бит в эту переменную, а поле автоматически отобразит значение. Если поле не связать с переменной, то "Field158.Value := ..." ничего не даст.
Ещё удобнее выводить значение бита в компонент Текст. Для этого Текст нужно связать с переменной из которой нужно извлечь бит. А на событие OnDataChange назначить скрипт с таким кодом:
Код: (delphi)
var
  aBit: Boolean;
begin
  aBit := GetBit(DiscreteInput_Output_VNS16.AsInt, 4);
  if (aBit) then Text1.Text := '1' else Text1.Text := '0';
end.
Теперь компонент Text1 будет отображать значение бита.

Некоторые компоненты имеют встроенную поддержку битов. Например Кнопка и Флажок. Т.е. можно добавить на мнемосхему Флажок, связать его с переменной и задать номер бита который нужно отобразить. Флажок автоматически будет извлекать и отображать бит, а писать скрипты не потребуется.