Битовая маска — компонент. Служит для реализации маскирования — выбора и установки отдельных битов или наборов из нескольких битов из двоичной строки или числа (позволяет осуществлять управление устройствами, имеющих 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 и с помощью поразрядной операцией И производим логическое умножение этих двоичных чисел.
Если в том же самом числе, 011011112 требуется установить четвертый бит, то это производится при помощи поразрядной операцией ИЛИ. Для этого мы создаем маску 000100002, далее производим логическое сложение.
Проект в SCADA ZETView
В этой схеме компонент Битовая маска производит операцию маскирование согласно установленным битам. Таймер служит для подачи импульса, по которому произойдет применение маски. Цифровой индикатор нужен для отображения маски в десятичной форме. Данный компонент используется для создания различных проектов, в том числе таких как анализатор спектра ZET 017 U16.
Результат работы проекта