Работа с битами в SIMP Light 4. Обработка через скрипты. Часть 2
Последнее изменение:
Если вы не нашли ответ на свой вопрос, пожалуйста, свяжитесь с нашей службой технической поддержки через онлайн-чат
Скриптовое программирование в SCADA-системе "Симп Лайт" позволяет реализовывать сложные алгоритмы обработки данных, включая побитовое чтение, запись и анализ изменений состояний.
- Для работы с отдельными битами в "Симп Лайт" доступна встроенная функция GetBit, которая возвращает значение указанного бита заданного числа.
Эта функция упрощает задачу извлечения состояния конкретного бита из целого числа, что особенно полезно для работы с регистрами MODBUS.
Пример использования в Pascal Script:
- Вы также можете написать собственный скрипт для более сложной обработки бит.
При добавлении скрипта к каналу выберите тип запуска:
- "По таймеру" — для выполнения скрипта через заданные промежутки времени.
- "По событию записи в канал" — если скрипт должен запускаться при изменении значения канала.
Пример скрипта Pascal Script:
- Фиксация только изменений бит
Если необходимо фиксировать события только при изменении состояния бита (например, с 0 на 1 или наоборот), можно реализовать следующий алгоритм:
- 1. Сохранить состояние бит из предыдущей итерации.
- 2. Сравнить текущее состояние с предыдущим.
- 3. Фиксировать события только для изменённых бит.
- 4. При изменении состояния любого бита сгенерировать сообщение и записать его в журнал событий.
Пример фиксации событий:
Если значение в считываемом регистре изменяется, то например:
- при взведенном 0 бите мы увидим в журнале - 'Дверь открыта';
- при взведенном 1 бите мы увидим в журнале - 'Пожар';
- при взведенном 2 бите мы увидим в журнале - 'Охрана';
- при взведенном 3 бите мы увидим в журнале - 'Окно открыто';
- при взведенном 4 бите мы увидим в журнале - 'Тревога включена';
И так далее, на основе двоичной системы счисления
Таким образом, каждый бит можно связать с определённым событием или состоянием оборудования, что делает обработку данных более точной и информативной.