ДРАЙВЕР ДЛЯ СВЯЗИ С СЕРВЕРОМ ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА ПРОГРАММЫ РМТ ДЛЯ ВЫПЛАВЛЕНИЯ ТИТАНОВЫХ СЛИТКОВ ПРИ ПОМОЩИ ВАКУУМНО-ДУГОВЫХ ПЕЧЕЙ
Журнал: Научный журнал «Студенческий форум» выпуск №32(168)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №32(168)
ДРАЙВЕР ДЛЯ СВЯЗИ С СЕРВЕРОМ ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА ПРОГРАММЫ РМТ ДЛЯ ВЫПЛАВЛЕНИЯ ТИТАНОВЫХ СЛИТКОВ ПРИ ПОМОЩИ ВАКУУМНО-ДУГОВЫХ ПЕЧЕЙ
ПАО «Корпорация ВСМПО-АВИСМА» [1] – один из крупнейших в мире производителей титана, где технологический цикл начинается с переработки сырья и заканчивается выпуском готовых изделий с высокой степенью механической обработки.
На предприятии для выплавления титановых слитков используют вакуумно-дуговые печи (ВДП). На всех установках используется система полуавтоматического управления процессом, которые разрабатывались и устанавливались работниками корпорации более 10 лет назад. Помимо управления процессом, они так же выполняют сбор данных обо всех действиях оператора и значений со всех датчиков, установленных на ВДП.
Программа РМТ разрабатывалась на языке Delphi, исходный код которой утрачен. Исходя из этого, появилась задача, разработать ПО, которое бы повторило функционал старой программы, с введением новых функции. Было принято решение переписать программу с учетом новых веяний прогресса [2], [3].
Один из модулей системы РМТ – драйвер для связи с сервером технологического процесса (СТП).
Драйвер связи с СТП необходим для общения клиента с сервером СТП. Данные по ВДП за последние 10 суток хранятся на серверах СТП. Другого варианта для того, чтобы получить эту информацию, нет. Взаимодействие с серверами СТП планируется не только при помощи новой системы РМТ, но и другими ПО, которые будут разработаны в последующем[4]. По этой причине данный модуль вынесен отдельно.
Рассмотрим диаграмму классов драйвера, которая представлена на рисунке 1.
Рисунок 1. Диаграмма классов драйвера
Основной класс NETClient содержит в себе все необходимые элементы для связи с сервером СТП. Класс Pasport представляет структуру элементов, используемые в преставлении паспорта плавки. Класс NetStatus содержит информацию по загрузке больших файлов с сервера СТП. Класс Server – это структура из ip адреса, TCP порта и директории под архив. Класс TechCycle используется для конвертации байт данных в структуру для удобной работы в последующем. Класс ByteConverter содержит необходимые функции для конвертации массива байт в структуры.
На данный момент разработано минимально необходимое количество функций для работы с сервером СТП:
- CreateCode;
- Full_By_Name;
- Full_Dir_Browse;
- Full_Download;
- Full_Download_NH;
- Full_Keep_Alive;
- Full_Pasport_Download;
- Full_Server_Time;
- Full_Version.
В дальнейшем планируется расширить данный функционал.
Для выполнения экспериментальных исследований была составлена программа и методики испытаний, после чего произведены испытания. Было разработано отдельное консольное приложение, которое выполнило данные тесты.
Модуль был протестирован на качество работы, количество соединений и скорость передачи данных.
Тесты на качество осуществляют проверку соединения клиента с сервером СТП, отправку и получения данных, а также проверку на обработку ошибок.
Тесты на количество соединений подразумевают множество итераций. Начиная с одного подключения и увеличивая его до тех пор, пока не откажет клиент или сервер, или время запроса превысит 5 секунд.
Тесты на скорость передачи данных проверяют загрузку с сервера на клиент больших файлов. Данный тест необходимо проводить в несколько этапов увеличивая количество параллельных загрузок.
Приложение для тестирования драйвера связи с сервером СТП содержит 7 тестов. Каждый из них соответствует задаче, указанной в таблице 1. Рассмотрим данные тесты подробнее.
Тест «Установка и сброс соединения с сервером СТП 1 раз» устанавливает и сбрасывает соединение с сервером СТП. Результат выполнения теста представлен на рисунке 2. После нескольких попыток запуска теста максимально зафиксированное время на установку и сброс соединения являлось 15 миллисекунд.
Рисунок 2. Тест «Установка и сброс соединения с сервером СТП 1 раз»
Тест «Запрос времени сервера СТП» запрашивает время сервера. Все этапы выполнения отображаются в консоли. Результат выполнения теста представлен на рисунке 3.
Рисунок 3. Тест «Запрос времени сервера СТП»
Тест «Запрос паспорта плавки» запрашивает паспорт плавки. Все этапы выполнения отображаются в консоли. Результат выполнения теста представлен на рисунке 4.
Рисунок 4. Тест «Запрос паспорта плавки»
Тест «Запрос технологического цикла» запрашивает технологический цикл печи №10 за сутки. Все этапы выполнения отображаются в консоли. Результат выполнения теста представлен на рисунке 5.
Рисунок 5. Тест «Запрос технологического цикла»
Тест «Множественные итерации запроса файла с аналогово-дискретными сигналами, с последующим увеличением количества соединений на 1» запрашивает файл с аналогово-дискретными сигналами печи №10 с сервера с каждой итерацией увеличивая количество соединений. Все этапы выполнения отображаются в консоли. Результат выполнения теста представлен на рисунке 6.
Общая диаграмма результатов представлена на рисунке 7.
Рисунок 6. Тест «Множественные итерации запроса файла с аналогово-дискретными сигналами, с последующим увеличением количества соединений на 1»
Рисунок 7. Диаграмма результатов теста «Множественные итерации запроса файла с аналогово-дискретными сигналами, с последующим увеличением количества соединений на 1»
Таким образом, результаты проведения тестов показывают отличную работу драйвера. Также можно сделать ряд заключений по использованию драйвера:
- сервера работают нестабильно и могут задерживать ответ (рисунок 7);
- параллельно сервер поддерживает до 8 соединений на 1 ip адрес (рисунок 7);
- скорость ответа сервера не зависит от количества параллельных задач (рисунок 7).