===== Модуль распределенного сенсора ===== Модуль распределенного мониторинга деформации и температуры трубопроводов. Для работы модуля используется анализатор бриллюэновской частоты сдвига в оптоволокне из-за рассеяния Мандельштама-Бриллюэна. Частота сдвига изменяется от параметров кристаллической решетки оптоволокна, зависящих от деформационного напряжения и температуры волокна. Применение специального метода позволяет вычислять смещение в трех координатах измеряемого трубопровода по продольным относительным растяжениям оптоволокна, наклеенного на поверхность трубы. И позволяет измерять температуру при креплении оптоволокна в свободном проскальзывании. ==== Технические требования ==== Операционная система Ubuntu 20/22, Linux OS 64 битная. PHP версии 7.3, модуль работы с PostgreSQL и ClickHouse. Е.2.3 Требования к вычислительным ресурсам: 1 ядро, поддерживающее 64-битные вычисления, 500 Мбайт на жестком диске для временных данных. ==== Описание работы ==== Для работы модуля необходимо настроенное и работающее ПО от производителя анализатора бриллюэновской частоты сдвига – Ftbviewer. Ftbviewer производит сбор данных с анализатора и формирует данные по частоте сдвига в оптоволокне, из которых вычисляется деформация и температура трубопровода. Модуль находится в директории «//Spectrogram//», которая содержит директорию модуля Analyzer, в которой находятся скрипты для обработки данных анализатора, и директорию Share, которая содержит файлы с данными, генерируемыми программой Ftbviewer. Данные для работы модуля находятся в директории «//Share/monitoring//», маска имен файлов данных для регулярных выражений выглядит так: ''$mask="/monitoring#ch00#s00#(.+)Z#a#bsf.txt$/uUm"''. Т.е. файл начинается на «''monitoring#ch00#s00#''» и заканчивается на «''Z#a#bsf.txt''». Если меняется канал подключения оптоволокна, то соответственно, маска имен файлов должна быть изменена, так как изменится номер канала //ch00// в названии файла. Анализатор и программное обеспечение Ftbviewer настраивается отдельно (важно правильно его настроить для получения качественных и стабильных результатов измерении). Для запуска модуля из консоли настроен скрипт //data_processing.sh//. Модуль может быть вызван или из системы, или из консоли в контейнере //docker «php»// и начинает выполняться с PHP-скрипта //index.php//. Блок-схема работы модуля: {{документация:модуль_распределенного_сенсора:блок-схема_модуля_расп_сенсора.jpg?nolink&415x469|блок-схема_работы_модуля_analyzer.jpg}} Скрипт //index.php// обеспечивает выбор файла данных, который необходимо обработать, вызывает работу программы //DistributedSensorAnalyser//, которая вычисляет деформацию и температуру, опираясь на данные до деформации из файла данных для начального положения трубопровода «//reference_data_ref.dat//». Далее скрипт берет результаты работы программы из файла //data_json.txt//, подготавливает их для отправки в базу данных и отправляет. В конце работы скрипта удаляются файлы в директории «//Share//» по маске «//monitoring#*Z.msr//», где «*» - любые символы, оставляя 10 последних файлов, и файлы данных по маске для регулярных выражений ''"/monitoring#ch00#s00#(.+)Z#a#bsf.txt$/uUm"'', оставляя 50 последних. Файлы в директории модуля: * ''DistributedSensorAnalyser'' – программа для расчета продольных и поперечных смещений, температуры; * ''index.php'' – PHP-скрипт для запуска обработки данных с анализатора и отправки результатов измерения; * ''index_check.php'' – PHP-скрипт для тестирования шины, устройств и каналов; * ''data_processing.sh'' – bash-скрипт для запуска модуля через cron в контейнере; * ''config.php'' – файл настроек модуля, должен быть в //gitignore//; * ''config_example.php'' – пример файла настроек модуля. **DistributedSensorAnalyser** //DistributedSensorAnalyser// – программа для расчета продольных и поперечных смещений, температуры ОМ. В качестве входных данных принимает файл измерений Ftbviewer. Блок-схема работы программы: {{документация:модуль_распределенного_сенсора:схема_работы_модуля_распределенного_сенсора.jpg?nolink&648x842|схема_работы_модуля_распределенного_сенсора.jpg}} При работе программы считается, что к анализатору подключена одна линия оптоволокна, три части которого надежно приклеены к поверхности трубы и выполняют роль детектора относительного удлинения, и четвертая часть, прикрепленная, но свободно движущаяся, для измерения температуры. Три части, надежно прикрепленные к трубе под углами 90 градусов, при деформации трубы деформируются вместе с поверхностями, к которым прикреплены. Четвертая, свободно движущая часть оптоволокна не испытывает деформационные натяжения, так как эта часть подвижная, при этом изменения в бриллюэновской частоте сдвига обусловлены температурой оптоволокна. Схема размещения линий деформации и измерения температуры: {{документация:модуль_распределенного_сенсора:схема_деформ_и_темп.jpg?nolink&462x348|схема_analyzer.jpg}} ==== Настройка модуля ==== Настройка модуля происходит в файле //config.php//, пример содержит файл //config_example.php//. Содержание файла //config_example.php//: Где ''$api_token'' — токен для доступа, ''$directory'' — путь к данным относительно директории скрипта, ''$mask'' — маска регулярного выражения для файлов данных, ''$bus'' — код шины, на данный момент не используется, ''$segment_code'' — код сегмента без цифр. **Настройка запуска по расписанию** Для запуска модуля из консоли нужно использовать скрипт //data_processing.sh//, который запускает модуль в контейнере //docker «php»//. Для запуска модуля по расписанию, настраивается запуск скрипта //data_processing.sh// через cron от имени root в требуемый интервал. При новой установке необходимо проверить права на запуск как исполняемой программы //data_processing.sh RealTimeSpectrum//. Содержание скрипта //data_processing.sh//: «/opt/monitoring/dc exec -T php php /var/www/html/Spectrogram/Analyzer/index.php» Данные означают: * ''/opt/monitoring/dc'' – запуск docker; * ''exec'' – команда выполнить; * ''-T'' – не создавать виртуальное tty-устройство для виртуальной консоли; * ''php'' – запуск контейнера php; * ''php /var/www/html/Spectrogram/Analyzer/index.php'' – запуск PHP-скрипта //index.php//, путь указан в среде контейнера. **Тестирование и юнит тесты** Файл //index_check.php// – примеры запросов для тестирования и проверок. **Подключения модуля в системе мониторинга** Модуль обеспечивает сбор данных с распределенного сенсора, для чего необходимо создать в системе мониторинга шину REST API(JSON) и выбрать для данной шины тип устройства «спектроанализатор».