Пишете крутые статьи? Публикуйте их в авторитетном журнале Workspace.
СофтЭксперт
Разработка комплексного ПО для автоматизации лакокрасочного производства в торговых точках
СофтЭксперт
#Разработка программного обеспечения

Разработка комплексного ПО для автоматизации лакокрасочного производства в торговых точках

74 
СофтЭксперт
СофтЭксперт Россия, Тула
Поделиться:
Разработка комплексного ПО для автоматизации лакокрасочного производства в торговых точках
Клиент

Производитель красок

Сфера

Промышленность

Регион

Россия

Сдано

Октябрь 2023

Задача

Одним из направлений деятельности заказчика является производство лакокрасочной продукции для различных видов покрытий в торговых точках.

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

Цель проекта — создать функционал для автоматизации этапов производственного цикла при формировании лакокрасочной продукции.

Задачи:

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

2. Разработка модуля взаимодействия с дозатором для колеровки по выбранной рецептуре.

3. Настройка многопользовательского режима для просмотра и ввода/выгрузки данных для торговых точек.

Ситуация до начала проекта

У заказчика возникли трудности с обновлением рецептурных баз ПО, которое ранее использовалось на клиентских точках, в том числе для формирования готовой продукции новых брендов, поэтому было решено создать собственное программное обеспечение.

Для модуля управления дозатором в торговых точках у заказчика были следующие требования:

- кроссплатформенность (возможность использования с разными операционными системами);

- единый инсталлер (простота установки модуля взаимодействия с дозатором в торговых точках);

- работа в режиме оффлайн (использование локальной базы данных без подключения к локальной сети);

- автоматическое обновление (единовременно во всех торговых точках для внесения изменений со стороны разработчика);

- загрузка рецептурной базы и колеровка (по выбранной рецептуре или для собственных рецептур под конкретного клиента).

Кроме того, модуль для колеровки должен был осуществлять взаимодействие с различными типами дозатора через общий UDCP драйвер (отправка команд драйверу и обработки сообщений от драйвера).

Для модуля формирования и хранения рецептур были сформированы отдельные требования:

- возможность переноса рецептурной базы (перегрузка уже готовых рецептур с сохранением данных о базовой красе, фасовке, поправочных коэффициентах и др.);

- возможность ввода новых рецептур (в том числе составление новых цветовых коллекций и оттенков);

- возможность онлайн и оффлайн выгрузки рецептурной базы (для последующей загрузки рецептурной базы в модуль взаимодействия с дозатором).

Решение

С учетом требований заказчика модуль формирования и хранения рецептурной базы решили реализовать как полноценный многопользовательский веб-сайт на ASP.NET Core платформе. Для разработки серверной части был выбран .NET Core 6.0 Framework (язык программирования C#), клиентская часть на React framework (язык программирования TypeScript). Для реализации многопользовательского режима выбрали бару данных Postgree SQL.

Модуль взаимодействия с дозатором решили реализовать как автономное десктоп-приложение. Для обеспечения кроссплатформенности всю функциональную часть реализовать как веб-сайт на ASP.NET Core платформе, используя аналогичный стэк (.NET Core 6.0 + React), и средствами Electron .NET Framework запаковать сайт в оконное приложение. Также мы использовали функционал (API) SignalR библиотеки для обновления клиентской части веб-сайта после обработки событий от UDCP драйвера на сервере.

Для обеспечения автономности работы модуля взаимодействия с дозатором в качестве локальной базы данных была выбрана SQLite, которая представляет собой файловую базу данных и не требует отдельной СУБД для подключения и работы с БД.

С учетом масштабности и целей проекта разработка проекта была разделена на несколько этапов.

1Разработан начальный вариант модуля взаимодействия с дозатором

На первом этапе был разработан начальный вариант модуля взаимодействия с дозатором и реализован функционал взаимодействия с дозаторами различных типов через общий UDCP драйвер, который включал в себя поддержку всех операций по взаимодействию с драйвером (инициализация, продувка сопел, перемешивание колорантов и т.д.), включая операцию ручной дозировки колорантов.

Схема. Механизм выгрузки рецептурной базы из основного веб-сайта в модуль взаимодействия с дозатором

Аналогичное решение использовано для загрузки новых обновлений для дескттоп-приложения на веб-сайт и автоматического скачивания обновлений с последующей автоматической установкой.

Модуль управления дозатором имеет клиент-серверную архитектуру. С клиента на сервер отправляется запрос на формирование команды UDCP драйверу, далее запрос обрабатывается и формируется файл с параметрами команды. На самом сервере происходит постоянный опрос наличия ответа от UDCP драйвера, и при получении результата обработки команды сервер уведомляет клиента через SignalR API.

2На втором этапе выполнены следующие задачи:

- разработка веб-сайта для хранения и формирования рецептурной базы с функционалом аутентификации и разграничением ролей пользователей;

- создание отдельных разделов для Marketing и R&D подразделений для удобства работы с ПО;

- разработка функционала хранения и редактирования информации для формирования рецептур (оттенки, формулы, колеровочные базы, фасовки, продукты и т.д.);

- перегрузка имеющейся базы рецептур в новую систему.

3Реализация механизма автоматической перегрузки рецептурной базы

На этом этапе был реализован механизм автоматической перегрузки рецептурной базы из веб-сайта в модуль управления дозатором.

Также был реализован визард для подбора рецептуры по требуемому цвету, продукту, фасовке с последующим формированием команды дозатору на колеровку выбранного цвета.

4На четвертом этапе в модуле взаимодействия с дозатором реализовали:

- функционал по сохранению истории всех колеровок, включая ручные колеровки и сервисные операции с возможностью повторной колеровки по записи в истории;

- функционал по созданию собственной рецептуры, а также кастомизации базовой рецептуры перед дозировкой;

- сбор статистики по расходу колорантов, ведение собственной клиентской базы и механизм автоматического обновления приложения при публикации новых версий ПО.

Результат

На момент публикации кейса система автоматизации производственного цикла лакокрасочной продукции прошла необходимые проверки и подтвердила работоспособность в 20 пилотных торговых точках заказчика, а общее количество торговых точек, в которые поставляется программное обеспечение, превышает 1500.

В модуле формирования и хранения рецептурной базы реализованы:

- перегрузка рецептур из базы по всем используемым брендам и продуктам с использованием различных факторов (базовая краска, фасовка, поправочные коэффициенты и т.д.);

- возможность ввода новых рецептур, включая составление новых цветовых коллекций, оттенков и др.;

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

В модуле взаимодействия с дозатором реализованы:

- возможность загрузки рецептурной базы в автоматическом режиме;

- возможность выбора формулы в виде визарда по заданному продукту, цвету, оттенку, фасовке;

- возможность корректировки и изменения формулы в выбранном рецепте перед отправкой команды на дозатор;

- возможность создания и хранения собственных рецептур, а также истории колеровок выполненных в конкретной торговой точке;

- возможность работы с клиентской базой и функционал по автоматическому сохранению восстановлению локальной базы.


Стек технологий


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

СофтЭксперт с удовольствием обсудит вашу задачу

Оставить заявку