===== Модуль распределенного сенсора =====
Модуль распределенного мониторинга деформации и температуры трубопроводов. Для работы модуля используется анализатор бриллюэновской частоты сдвига в оптоволокне из-за рассеяния Мандельштама-Бриллюэна. Частота сдвига изменяется от параметров кристаллической решетки оптоволокна, зависящих от деформационного напряжения и температуры волокна. Применение специального метода позволяет вычислять смещение в трех координатах измеряемого трубопровода по продольным относительным растяжениям оптоволокна, наклеенного на поверхность трубы. И позволяет измерять температуру при креплении оптоволокна в свободном проскальзывании.
==== Технические требования ====
Операционная система 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) и выбрать для данной шины тип устройства «спектроанализатор».