Битовая маска
Битовую маску используют для оптимизации использования ресурсов (сокращение количества тегов) 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" описан в соответствующем примере.