Перейти к содержанию

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

Битовую маску используют для оптимизации использования ресурсов (сокращение количества тегов) SCADA-системы. Вместо передачи статуса каждого дискретного сигнала (состояние агрегата, реле, аварии и т. д.) отдельным тегом, программист группирует логические сигналы в ПЛК в одно целое число (регистр 1 или 2 байта) и организует передачу данных на верхний уровень, где их можно разложить на биты.

Бит может находиться в одном из двух состояний:

  • логический 0 (выключено, false).
  • логическая 1 (включено, true).

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

7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0 бит
2⁷
2⁶
2⁵
2⁴
2³
2²
2¹
2⁰
128
64
32
16
8
4
2
1
1000 0000
0100 0000
0010 0000
0001 0000
0000 1000
0000 0100
0000 0010
0000 0001

Если сложить все значения степеней двойки, представленных в байте, то получится число 255.

2⁰ + 2¹ + 2² + 2³ + 2⁴ + 2⁵ + 2⁶ + 2⁷ = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255

Таким образом, один байт позволяет закодировать 256 различных значений (от 0 до 255).

Пример работы с битовой маской в "Симплайт 5" описан в соответствующем примере.