'
Фам А.Н.А.
БЛОК СХЕМА ПРОГРАММЫ ДЛЯ МОДУЛЯ ПОДДЕРЖКИ АППАРАТУРЫ *
Аннотация:
в статье представлен вариант блок схемы для системы удаленного сбора данных и управления инженерным оборудованием
Ключевые слова:
блок схема, функция опроса, инженерное оборудование, сервер, автоматизация, управление
УДК 681.5
Фам А.Н.А.
магистрант
Югорский государственный университет
(г. Ханты-Мансийск, Россия)
БЛОК СХЕМА ПРОГРАММЫ
ДЛЯ МОДУЛЯ ПОДДЕРЖКИ АППАРАТУРЫ
Аннотация: в статье представлен вариант блок схемы для системы удаленного сбора данных и управления инженерным оборудованием.
Ключевые слова: блок схема, функция опроса, инженерное оборудование, сервер, автоматизация, управление.
Задача нашей программы - сделать опрос всего оборудования и сохранить данные в БД, а также выполнять запросы, которые поступают с web-интерфейса, блок схема приведена на рисунке 1.
Для выполнения данных задач сначала создадим функцию lister, которая будет ждать сообщения от web-интерфейса.
Для ожидания сообщения можно использовать ZeroMQ библиотека обмена сообщениями (Messaging Queue, MQ), которая без особых усилий позволяет создавать сложные коммуникационные решения. В функции lister контекст zmq создает сокеты через его ctx.socket метод. Далее создаем маршрутизатор, который принимает запросы, добавляет конверт с информацией об этом получателе запроса и делает это новое сообщение доступным для дальнейшей обработки путем соединения кода и привязываем сокет к нашему серверу. Поток «повисает» в ожидании сообщения, при получении которого сохраняется в msg.
Когда сообщение приходит, происходит его распаковка и запрос в БД о данных контролера и оборудовании.
Далее используя простейшую блокировку посредством механизма mutex, которая на время работы потока с ресурсом закрывает последний от других обращений. Таким образом, если на данный момент происходит опрос оборудования, чтобы не было коллизий происходит блокировка потока на mutex и как только заканчивается очередная транзакция чтения, поток разблокируется для отправки команды на устройство, заблокировав при этом поток опроса оборудования. Терморегулятор имеет протокол ModBus RTU, поэтому команда отправляется в com-порт, используя библиотеки Pyserial и modbus-tk. Полученный ответ масштабируется и записывается в БД посредством функции update_SQL().
Параллельно работе потока lister работает основной поток программы, в котором происходит периодичный опрос оборудования. В бесконечном цикле сначала вытаскивается список физических устройств из БД.
Затем в цикле для каждого физического устройства извлекаются логические с их атрибутами.
По полученному списку логических устройств запускается цикл непосредственного опроса.
Далее по этому массиву необходимо вычислить циклический избыточный код CRC16 на основе полинома ModBus. Для этого вызывается написанная ранее функция и передается ей указатель на массив «а» (crc16(а)). Результат добавляется к массиву и отправляется в порт для запроса данных. Затем проверяется наличие ответа и, в случае успеха, результат извлекается и записывается в базу данных с указанием отметки времени.
Рис. 1. Блок схема программы
СПИСОК ЛИТЕРАТУРЫ:
Номер журнала Вестник науки №12 (57) том 3
Ссылка для цитирования:
Фам А.Н.А. БЛОК СХЕМА ПРОГРАММЫ ДЛЯ МОДУЛЯ ПОДДЕРЖКИ АППАРАТУРЫ // Вестник науки №12 (57) том 3. С. 448 - 451. 2022 г. ISSN 2712-8849 // Электронный ресурс: https://www.вестник-науки.рф/article/6805 (дата обращения: 29.03.2024 г.)
Вестник науки СМИ ЭЛ № ФС 77 - 84401 © 2022. 16+
*