21 мая 2021 IT директору 

Интеграция решения «КомЛайн:Цифровая маркировка» с ПО, управляющим производственным оборудованием

В данной статье мы расскажем о том, как решили задачу интеграции программного обеспечения вендора, управляющего узлами автоматизированной производственной линии, с решением «КомЛайн:Цифровая маркировка».

С 2021 года производители обязаны маркировать готовую молочную продукцию и отчитываться в государственной информационной системе мониторинга товаров («Честный знак») о вводе в оборот и отгрузке маркированных товаров.

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

Один из вендоров, чье оборудование установлено на многих российских молокозаводах, выбрал «Компанию КомЛайн», разработчика решения «КомЛайн:Цифровая маркировка», в качестве подрядчика для реализации программной части маркировки, техническую часть оставив за собой.

Решение «КомЛайн:Цифровая маркировка» предназначено для консолидации и управления данными по маркировке и интеграции с ПО, управляющим производственным оборудованием. Его относят к уровням автоматизации L3 (системы уровня предприятия, консолидация данных), L4 (интеграции с учетными системами предприятия – ERP, WMS и CRM) и L5 (интеграции с ГИС МТ). Решение реализовано на платформе «1С:Предприятие 8.3».

Перед нами стояла задача интегрировать ПО, управляющее узлами автоматизированной производственной линии (АСУТП, уровень автоматизации L2) — назовем его ПО вендора, с решением «КомЛайн:Цифровая маркировка».

В рамках пилотного проекта автоматизированный обмен данными между «КомЛайн:Цифровая маркировка» и ПО вендора должен быть реализован в части:

  1. Выгрузки кодов маркировки (полученных из «Честного ЗНАКА») из «КомЛайн:Цифровая маркировка» в ПО вендора для печати и нанесения на потребительские упаковки,

  2. Загрузки результирующих данных по агрегированной продукции из ПО вендора в «КомЛайн:Цифровая маркировка».

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

Решение задачи

Выгрузку заданий на производство с перечнем кодов маркировки в ПО, управляющее оборудованием, мы производим, используя методы API вендора.

API вендора представляет REST сервис с веб интерфейсом. Задача усложнялась тем, что вызываемые POST методы сервиса должны отправлять содержимое с Content-Type = multipart/form-data. Платформа 1С Предприятие 8.3 не имеет встроенных методов для отправки данного типа содержимого, поэтому был использован HTTP-клиент для «1С:Предприятие 8» – «1С:Коннектор[NB1]», распространяющийся по лицензии Apache.

Предположим, завод запланировал произвести молоко ультрапастеризованное жирностью 3,2% в количестве 60000 единиц и жирностью 2,5% в количестве 40000 единиц.

С помощью «КомЛайн:Цифровая маркировка» в ГИС МТ заказывается необходимое количество кодов, коды загружаются в конфигурацию. Создается документ «Задание на производство», в котором указываются номенклатура, партия номенклатуры, количество кодов маркировки, упаковка и производственная линия.

Документ «Задание на производство»

Рис. Задание на производство

Далее для конкретной строки задания на производство (в нашем примере – для производства каждого вида молока) из свободных кодов маркировки резервируется необходимое количество.

Следующий этап – выгрузка кодов маркировки в ПО вендора для печати и нанесения на потребительские упаковки. Это делается с помощью «1С:Коннектор[NB1]». Файл отправляется в формате псевдо CSV. Дело в том, что в файле CSV разделителем является запятая, но в кодах маркировки запятые тоже могут присутствовать. В связи с этим формат мы модифицировали.

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

Рис. Присоединенный файл с кодами маркировки, зарезервированными для строки задания на производство

В файле указываем, какие коды маркировки следует использовать для каких строк задания на производство: каждому DataMatrix коду соответствует уникальный идентификатор GUID строки задания на производство (для производства молока ультрапастеризованного жирностью 3,2% в количестве 59000 единиц GUID будет один, для молока ультрапастеризованного жирностью 2,5% в количестве 40000 единиц – другой). Для каждой выгруженной строки задания на производство в API вендора создается уникальное правило Rule name (GUID равен Rule name).

В файле указываем, какие коды маркировки следует использовать для каких строк задания на производство

Рис. Пример содержимого псевдо CSV файла

Согласно договоренности с интегратором факт успешной загрузки определяется по свойству КодСостояния (200) интерфейса HTTPОтвет. Если приходит сообщение об ошибке (КодСостояния = 500 и т.п.), ошибка фиксируется в журнале регистрации, и в «КомЛайн:Цифровая маркировка» происходит отмена транзакции. То есть если ПО вендора сообщило об ошибке при выгрузке кодов маркировки для строки задания на производство – молока ультрапастеризованного жирностью 2,5% в количестве 40000 единиц, то отменяется транзакция по данной строке документа. Для других строк задания на производство выгрузка кодов продолжается. Система также будет предпринимать попытки повторной отправки кодов для «проблемной» строки. Коды маркировки останутся зарезервированными под нее до устранения ошибки администратором (информация об ошибках автоматически направляется ему на почту).

Спустя некоторое время после успешной выгрузки кодов «КомЛайн:Цифровая маркировка» начинает проверять, было ли закончено производство по каждому созданному правилу.

Для каждой отправленной строки задания на производство мы делаем запрос в ПО вендора, чтобы получить идентификатор связанной с ней производственной линии MesId.

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

Для того чтобы получить финальный результат, используется метод GetRules (аналогично – для получения промежуточного результата). В ответе, помимо имени правила, есть свойство disabled, то есть правило отключено. Если правило отключено, значит, работа по нему завершена, и мы можем получить итоговый файл.

Файл, который в итоге поступает из ПО вендора в «КомЛайн:Цифровая маркировка», является результатом всей истории работы производственной линии по запрошенному правилу.

Данный файл имеет логарифмическую зависимость. Если мы заказали и нанесли 100 тысяч кодов маркировки, то файл будет содержать около 10 миллионов записей. В нем может быть информация о том, что код маркировки нанесен, что маркированный продукт упакован в короб, что код испорчен и продукт снят с линии, или вновь упакован и т.д. На каждое срабатывание производственного оборудования, связанное с кодом маркировки, происходит запись в данный файл.

Но нас интересует не вся история изменений производственной линии, а только конечный результат: агрегация маркированной продукции в короба и палеты, распознан ли код маркировки и качество его печати. Поэтому для каждого идентификатора производственной линии мы в «КомЛайн:Цифровая маркировка» делаем эмуляцию среза последних, то есть последнего использования кодов маркировки.

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

Возможна ситуация, когда не все задание на производство выполнено, например, из 100 тысяч упаковок сливок жирностью 33% произведено только 5 тысяч. Соответственно, использованы лишь 5 тысяч кодов маркировки из 100 тысяч, зарезервированных и выгруженных в ПО вендора. Тогда мы увидим, что работа по правилу, соответствующему GUID данной строки задания на производство, завершена и в итоговом файле всего 5 тысяч строк. В этом случае неиспользованные коды маркировки снимаются с резерва.

После получения итогового файла в «КомЛайн:Цифровая маркировка» генерируется отчет о нанесении кодов маркировки и вводе маркированной продукции в оборот.

Таким образом, задача интеграции ПО, управляющего узлами автоматизированной производственной линии, с решением «КомЛайн:Цифровая маркировка» успешно решена.

Сопутствующие продукты:
КомЛайн:Цифровая Маркировка

Давайте сотрудничать

Введите e-mail и/или телефон
Согласие на обработку персональных данных обязательно
Это поле необходимо заполнить Заполните телефон либо e-mail

Спасибо! Ваша заявка отправлена

В ближайшее время мы с Вами свяжемся!

Мы используем файлы cookie для обработки ваших персональных данных