Информационные технологии: что предложил новатор?

Ведущий инженер-программист (разработчик алгоритмов) ЦАСиИТ Александр Деменёв создал компьютерную программу, которая позволяет передавать в систему «Магнезиус» данные при сортировке сырья на рентгено-трансмиссионном сепараторе. Его проект «Разработка программного обеспечения для чтения параметров РТС-100 ДОФ» занял второе место в конкурсе новаторов в разделе «Информационные технологии и автоматизированные системы управления».

Созданный программный продукт является самостоятельным и в то же время дополняет многофункциональную программу, которой оборудование было обеспечено с начала его эксплуатации.


Вкратце поясним назначение и принцип работы трансмиссионного (или рентгенографического) сепаратора РТС-100 (по маркировке производителя – XSS(Т)100). Данное оборудование служит для обогащения сырья посредством разделения магнезитовой массы фракции 60-150 мм. Принцип действия трансмиссионного сепаратора основан на свойстве материалов поглощать рентгеновское излучение, которое измеряется при помощи специальных детекторов. Сортировка производится, исходя из разницы в интенсивности излучения. Куски породы просвечиваются рентгеном, двигаясь друг за другом по транспортёрной ленте, оборудованной пневматическим клапаном (форсункой). Если в куске недостаточно магнезита, в момент его прохождения мимо клапана срабатывает исполнительный механизм, и сжатый воздух отстреливает пустую породу в бункер с хвостами обогащения, а качественный магнезит продолжает движение по ленте и попадает в разгрузочный бункер.


Сам сепаратор произвела немецкая фирма Steinert, а программное обеспечение к нему было разработано московской компанией «ГеоТестСервис». Программа позволяет задать критерии сортировки сырья (содержание магнезита, плотность, размер фракции и другое), а кроме критериев отбора, позволяет увидеть в реальном времени характеристики проходящего через сепаратор сырья. Но в данную программу не были заложены функции передачи и архивирования данных в системе «Магнезиус», что необходимо для качественного и количественного контроля процесса сортировки в удалённом режиме. Это недостающее звено и разработал Александр Деменёв. Перед ним стояла задача сделать своего рода перевод из визуальной формы подачи информации в знаковую, то есть перевести картинку, выводимую на экран монитора, в текстовой формат. Он создал программу, которая способна преобразовать изображение цифры в её значение, то есть распознавать и архивировать числовые данные.


– Программное обеспечение, поставляемое с АРМ оператора РТС-100, не позволяет в реальном времени получать данные через различные протоколы, базы данных, или текстовые файлы, – поясняет Александр Деменёв. – Стоит также отметить, что программа использует отрисовку интерфейса средствами OpenGL (подобно играм). Так, к примеру, обычное окно программ в Windows содержит в себе различные элементы: текстовые поля, кнопки, различные переключатели и к ним можно обратиться через API Windows для получения, к примеру, текста из текстового поля сторонней программы. Но поскольку программа сепаратора использует OpenGL, все элементы в ней нарисованы. Получить с неё данные удалось благодаря распознаванию пикселей, из которых состоит изображение на экране.


Пиксель – минимальный элемент двухмерного растрового изображения. Каждый элемент имеет определенный цвет и местоположение. Если на картинке (в нашем случае, изображении на экране) приняв её за плоскость, задать условную систему координат, у каждого символа (пикселя) будет свой «адрес», состоящий из двух значений – относительно осей абсцисс (X) и ординат (Y).

Начинаем сравнивать пиксели, взяв какую-то цифру, например 0. Программа по порядку перебирает точки по одним и тем же координатам. Цвет пикселя в цифровом изображении должен совпадать с тем, что на экране монитора. Если все пиксели совпали, изображение соответствует данной цифре. Переходим к другой цифре, единичке, например. В общем-то, ничего хитрого нет. Просто идёт сравнение каждой точки, одного изображения с другим. Была картинка, стали цифры.


В рабочем режиме программа периодически делает снимок экрана определенной области, преобразует изображение в черное и белое для фильтрации лишних оттенков и сравнивает попиксельно с эталонным изображением. Координаты символов не меняются, поскольку окно программы сортировки запускается развернутым на весь экран (с разрешением 1280 на 1024 пикселя). При этом размер для всех символов фиксирован высотой 14 пикселей и длиной 9 пикселей. Сравнение изображений с таким малым размером происходит очень быстро, менее секунды.


После распознавания символов программа предоставляет данные по промышленному протоколу MODBUS TCP/IP скада-системе TraceMode, которая, в свою очередь, осуществляет запись в базу данных веб-портала «Магнезиус». Протокол MODBUS предоставляет собой таблицу со значениями в виде чисел, каждая строка в этой таблице имеет свой адрес и свое значения по этому адресу. Используя данный протокол, можно обратиться к АРМ сортировки по IP адресу и запросить значения регистров по заранее известным адресам.


Данное программное обеспечение имеет следующие преимущества. Во-первых, она предоставляет актуальные данные относительно критериев сортировки сырья. Во-вторых, программа не требует установки и не меняет системные настройки АРМ. В-третьих, она не модифицирует программу сортировки. В-четвёртых, благодаря этой программе появилась возможность архивировать данные. Версия платформы для написания данной программы была бесплатной, поэтому задача не включала в себя вопрос дополнительных вложений. Был затрачен исключительно труд программиста.


Оценивая степень сложности разработанной программы, можно упомянуть о других программах, которые переводят сканированный или снятый на камеру текст в формат Word. Эти программы распознавания текста основаны на подобии нейронным сетям человеческого мозга, они применяются в случаях, когда нельзя обозначить задачу чёткими условиями. На сканах или фото могут быть пятна, помарки, пометки от руки. Программе приходится додумывать эти изображения и отфильтровывать их. В нашем же случае снимок всегда чистый. Мне пришлось отфильтровать только фон. Моя программа проще, она не использует нейронные сети. К тому же, это узко-профильная вещь. На другом сепараторе будет уже другой программный продукт.


Благодарим за фото Василия Максимова