Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: razorqhex от 06 Июля 2020, 15:00:40

Название: Вывод бита переменной
Отправлено: razorqhex от 06 Июля 2020, 15:00:40
Здравствуйте. Подскажите что я делаю не так. Мне нужно вывести в каком состоянии находится бит переменной. Пишу вот такой скрипт:
Код: (delphi)
varBit := GetBit(DiscreteInput_Output_VNS16.AsInt, 4);
Field158.Value := varBit.ToInt32;
Но объект Field158 не выводит никакое число
Название: Re: Вывод бита переменной
Отправлено: Simple-Scada от 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 будет отображать значение бита.

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