Битовая маска

Битовая маска — компонент. Служит для реализации маскирования — выбора и установки отдельных битов или наборов из нескольких битов из двоичной строки или числа (позволяет осуществлять управление устройствами, имеющих 2 состояния).

Внешний вид компонента

Режим проектировщика Режим оператора
Битовая маска - Режим проектировщика Битовая маска - Режим оператора

Параметры:

Входные

  • Импульс — при подаче синхроимпульса, на выходе формирует выставленную маску.

Выходные

  • Маска — десятичное число, соответствующее битовой маске.

Настраиваемые свойства:

Общие свойства (окружение)

Частные свойства (в скобках значение, установленное по умолчанию):

  • Mask (1) — текущее десятичное значение маски.
  • BitQuantity (1) — установка количества разрядов маски.
  • FalseValue (0) — обозначение логического нуля.
  • TrueValue (1) — обозначение логической единицы.
  • Bitsname (Биты) — установка названия строки с битами.
  • ValuesName (Значение) — установка названия строки значения битов.

Программирование

При использовании компонента в сценарии и программируемом компоненте (скрипте) необходимо учитывать диапазоны значений подаваемых на входные ножки компонента, диапазоны значений свойств компонента, а также диапазоны значений параметров методов компонента.

Настраиваемые свойства:

Общие свойства (окружение)

Частные свойства (в скобках значение, установленное по умолчанию):

  • LONG Mask — установка и чтение значения маски (любое целое число типа Long).
  • LONG BitQuantity — установка и чтение количества разрядов (любое число).
  • BSTR FalseValue — установка и чтение обозначения логического нуля (строка).
  • BSTR TrueValue — установка и чтение обозначения логической единицы (строка).
  • BSTR BitsName — установка и чтение названия битов (строка).
  • BSTR ValuesName — установка и чтение названий значений битов (строка).

Методы:

  • LONG Bit(LONG num) — возвращает значение бита.
  • void Bit(LONG num, LONG newVal) — устанавливает значение бита.
  • Apply(void) — устанавливает применение маски.

Математическое описание

Битовая маска – набор битов, который при помощи поразрядной конъюнкции или дизъюнкции накладывается на набор битов, в котором требуется установить или сбросить некоторые разряды.

Например, в числе 011011112 требуется скинуть пятый бит. Для этого мы делаем маску 110111112 и с помощью поразрядной операцией И производим логическое умножение этих двоичных чисел.

Поразрядное И 01101111
11011111
Результат 01001111

Если в том же самом числе, 011011112 требуется установить четвертый бит, то это производится при помощи поразрядной операцией ИЛИ. Для этого мы создаем маску 000100002, далее производим логическое сложение.

Поразрядное ИЛИ 01101111
00010000
Результат 01111111

Пример

Проект в SCADA ZETView

Битовая маска - Пример

В этой схеме компонент Битовая маска производит операцию маскирование согласно установленным битам. Таймер служит для подачи импульса, по которому произойдет применение маски. Цифровой индикатор нужен для отображения маски в десятичной форме. Данный компонент используется для создания различных проектов, в том числе таких как анализатор спектра ZET 017 U16.

Результат работы проекта
Битовая маска - Результат работы проекта