Проектирование и внедрение системы по нанесению и считыванию DataMatrix кода, нанесению и контролю наличия этикетки на упаковке

+
<
>
Разработали и внедрили на предприятии по производству безалкогольных напитков: систему нанесения и считывания DataMatrix кода; нанесения и контроля наличия этикетки на упаковке, с агрегированием в групповую упаковку и формированием базы данных.

Система работает в двух режимах, под разные задачи. Маркировка для продукции на экспорт и маркировки Честный знак.

Первый режим работы.

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

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

Продукты собираются в группы в зависимости от упаковки. Далее сформированная группа упаковывается в короб и отправляется в зону паллетирования. Следующая камера считывает поды в группе, если были считаны не все DataMatrix коды, то агрегации не происходит, а групповая упаковка будет отбракована.

Режим работы Честного знака.

Первый тандем аппликаторов наносит DataMatrix кода на упаковку сверху.

Продукт проходит через пункт контроля, камера считывает DataMatrix код. Вторая камера в данном режиме не используется. Если DataMatrix код считывается, то код записывается в базу данных, а продукт двигается дальше по конвейеру к упаковочной машине, иначе подается сигнал на светозвуковую колонну и продукт отбраковывается с конвейера. При срабатывании отбраковщика более 5 раз, подается сигнал на остановку линии.

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

Групповая упаковка проходит через тандем аппликаторов для нанесения группового DataMatrix кода на упаковку сверху.

Групповая упаковка проходит третий пункт контроля, на котором установлена одна камера. Камера считывает единичный DataMatrix код на упаковке продукта и групповой DataMatrix код на коробе. При считывании одного из единичных DataMatrix кодов и группового DataMatrix кода, производится проверка привязанного к единичному коду временного группового кода. Временный групповой код привязан ко всем единичным DataMatrix кодам в упаковке. Временный групповой код меняется на считанный групповой код, а групповая упаковка двигается дальше по конвейеру, иначе подается сигнал на светозвуковую колонну и сигнал на остановку линии для ручной отбраковки.

В этом проекте, заказ DM кодов в системе ГИС МТ обеспечивает Заказчик. Формирование и отправка отчетов об использовании DM кодов в ГИС МТ выполняется силами Заказчика.

 

Результатом работы системы по нанесению и считыванию DataMatrix кода, нанесению и контролю наличия этикетки на упаковке является сформированная база данных с занесёнными кодами.

У ВАС ПОХОЖАЯ ЗАДАЧА? ОСТАВЬТЕ ЗАЯВКУ И МЫ РАСЧИТАЕМ ПРОЕКТ
Нажимая на кнопку, вы даёте согласие на обработку персональных данных в соответствии с политикой конфиденциальности
Похожие проекты
Робототехнические ячейки. Лабораторный стенд робот Дельта серии Quattro OMRON
Пищевая промышленность
Фармацевтика
Автомобильная отрасль
Самарская область
2024
Робототехнические ячейки. Лабораторная установка для паллетирования на базе коллаборативного робота
Пищевая промышленность
Фармацевтика
Автомобильная отрасль
Электротехника
Самарская область
2024
Подобрать оборудование
+
{{ in_view_website }} <div class="product_item" product-id="{{ id }}" order-multiplicity="{{ stock.order_multiplicity }}" catalog-elem="product-item"> <div class="img-container"> {% if productimage_set|length > 0 %} {% for productimage in productimage_set %} {% if productimage.photo and productimage.hide == false %} {% if loop.first %}<img src="{{ productimage.photo }}" alt="img" />{% endif %} {% else %} <img src="/static/core/images/nophoto1.png" alt="img"> {% endif %} {% endfor %} {% else %} <img src="/static/core/images/nophoto1.png" alt="img"> {% endif %} </div> <div class="right_product_content"> <div class="product-item_description"> <a class="name" href="{{ url }}">{{ name }}</a> <div class="article">Артикул: {{ article }}</div> {% if productproperty_set|length != 0 %} <div class="charactiristics"> {% for productproperty in productproperty_set %} <div class="char"> {% if loop.index < 4 %}<span>{{ productproperty.name }}</span> <span>{{ productproperty.value }}</span>{% endif %} </div> {% endfor %} </div> {% endif %} </div> <div class="price_conainer"> <div class="lot">{{ stock.lot_complect }} {{ stock.lot }}</div> <div class="price"> {% if price.rub_price_supplier and price.rub_price_supplier != 0 %} <span class="price_item">{{ price.rub_price_supplier }}</span> ₽ {% else %} по запросу {% endif %} </div> <div class="item-buttons_container"> <div class="quantity-buttons"> <button disabled class="minus-button"></button> <input type="number" value="1" oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" maxlength="3" onkeypress='validate(event)'> <button class="plus-button"></button> </div> <button class="add-specification-button"> В корзину <span></span> </button> </div> </div> </div> </div>
<div class="order_item" order-id="{{ id }}" order-elem="order-item"> <div class="description_order"> <div class="order_number">Заказ №{{ id_bitrix }}</div> <div class="order_date"> от <span class="order_date_value">{{ date_order }}</span> </div> <div class="order_status">{{ status_full }}</div> </div> <div class="order_composition"> <div class="order_composition_container"> {% for specification_list_item in specification_list.productspecification_set %} <div class="order_composition_item"> {{ specification_list_item.product_name }} - {{ specification_list_item.quantity }} {{ specification_list_item.lot.lot }} </div> {% endfor %} </div> <a href="{{ url }}"> <div class="add_more_btn">подробнее</div> </a> </div> <div class="order_invoice_details_container"> {% if bill_sum %} <div class="bill_sum_details"> <span class="price">{{ bill_sum_paid }}</span> ₽ <br> / <span class="price">{{ bill_sum }}</span> ₽ </div> {% else %} <div class="bill_sum_details none-invoice">счет не сформирован</div> {% endif %} </div> <div class="order_documents"> {% if specification_list.file %} <a href="{{ specification_list.file }}" target="_blank" class="order_documents_item">спецификация №{{ specification_list.number }} от {{ specification_list.date }}</a> {% endif %} {% if bill_file %} <a class="order_documents_item" href="{{ bill_file }}" target="_blank">счёт № {{ bill_name }} от {{ bill_date_start }}</a> {% endif %} {% for documentshipment_item in documentshipment_set %} <a class="order_documents_item" href="{{ documentshipment_item.file }}" target="_blank">акт № {{ documentshipment_item.id }} от {{ documentshipment_item.date }}</a> {% endfor %} {% if act_file %}<a class="order_documents_item">акт {{ act_file }}</a>{% endif %} </div> </div>
<div class="document_item" document-id="{{ id }}" document-elem="document-item"> <div class="name"> {% if name == "спецификация" %} {{ name }} № {{ number_document }} от {{ date_created }} {% elif name == "счёт" %} {{ name }} № {{ number_document }} от {{ date_created }} {% elif name == "акт" %} {{ name }} № {{ number_document }} от {{ date_created }} {% else %} {% endif %} </div> <div class="contract"> {% if requisites_contract %}№{{ requisites_contract }} c{% endif %} {{ requisites_legal_entity }} </div> <div class="summ_and_status"> <div class="summ_container"> {% if amount != 0 %} <span class="summ price">{{ amount }}</span> ₽ {% else %} {% endif %} </div> <div style="display:none" class="status">Подтверждена</div> </div> <div class="download"> <a href="{{ pdf }}" target="_blank">скачать</a> </div> </div>
<div class="project_item" project-id="{{ id }}" project-elem="project-item"> <a class="title_link" href="{{ url }}"> {{ category_name }}. {% if projectclientcategoryprojectmarking_set|length > 0 %} {% for marking_categ in projectclientcategoryprojectmarking_set %} {{ marking_categ.category_name }} {% if loop.last %} : {% else %} , {% endif %} {% endfor %} {% endif %} {{ name }} </a> <div class="project_description_content"> <div class="category_content"> {% for client_category in projectclientcategoryproject_set %} <div class="{% if client_category.category_check %}check{% endif %} category_elem"> {{ client_category.client_category_name }} </div> {% endfor %} </div> {{ category_project_marking_get }} <div class="place_content"> <div>{{ place_object }}</div> <div>{{ data_project }}</div> </div> </div> </div>
<!-- все заказы --> {% if specification_list.id %} <div class="specification_item table_item {% if status == "CANCELED" and bill_file %}bill_notpayment {% elif status == "COMPLETED" %} completed_order {% endif %} {% if bill_status == None and specification_list.tag_stop == false %}disabled{% endif %}" specification-id="{{ specification_list.id }}" data-cart-id="{{ specification_list.cart }}" order-id="{{ id }}" status="{{ status }}" superuser="{% if is_superuser == true %}true{% endif %}" specification-elem="specification-item"> <div class="table_item_value first_table_value"> <a class="order_number" href="{{ specification_list.url }}">№ {{ id }} от {{ specification_list.date }}</a> <input class="cart_id" type="hidden" value={{ specification_list.cart }}> {% if specification_list.date_update and specification_list.date != specification_list.date_update %} <div class="table_item_value_span">Обновлен: {{ specification_list.date_update }}</div> {% endif %} {% if date_completed %}<div class="table_item_value_span">Завершен: {{ date_completed }}</div>{% endif %} </div> <div class="table_item_value"> <div class="client">{{ name_req_full }}</div> </div> <div class="table_item_value"> {{ status_full }} {% if status == "CANCELED" %} {% if bill_file %} счет был до {{ bill_date_stop }} {% else %} спецификация была до <br> {{ specification_list.date_stop }} {% endif %} {% elif status == "COMPLETED" %} {{ date_completed }} {% elif status == "PAYMENT" %} {% if bill_sum_paid %} от {{ bill_date_start }} {% else %} до {{ bill_date_stop }} {% endif %} {% elif status == "PROCESSING" %} до {{ bill_date_stop }} {% endif %} </div> <div class="table_item_value "> <span class="price"> <b bill-sum-paid="{% if bill_sum_paid %}{{ bill_sum_paid }}{% else %}0{% endif %}" class="price_bill_sum_paid {% if bill_file and bill_sum_paid < bill_sum and status != "CANCELED" %}add_payment_button{% endif %}"> {% if bill_sum_paid %} {{ bill_sum_paid }} {% else %} 0 {% endif %} </b> <b>₽</b> / {{ specification_list.total_amount }} ₽ </span> {% if prepay_persent %} <div class="paument_tupe"> {% if postpay_persent != 0 %} предоплата: {{ prepay_persent }}% {% else %} предоплата: {{ prepay_persent }}% {% endif %} </div> {% endif %} </div> <div class="table_item_value invoice-table_item_value"> <a target="_blank" class="invoice-link" href="{{ bill_file }}">Cчет №{{ bill_name }} от {{ bill_date_start }}</a> {% if specification_list.file %} <a target="_blank" class="invoice-link" href="{{ specification_list.file }}">Cпецификация №{{ specification_list.number }} от {{ specification_list.date }} {{ specification_list.pdf.url }} </a> {% endif %} </div> <div class="table_item_value table_item_value_change_buttons_container"> <div data-type-save="update" class="change-bill-button">Изменить счет</div> <div data-type-save="hard_update" class="change-specification-button">Выставить новый счет</div> </div> </div> <!-- корзины без заказа--> {% else %} <div class="specification_item table_item spetification_item_no_complite_order {% if bill_status == false %}bill_notpayment{% endif %}{% if bill_status == None and specification_list.tag_stop == false %}disabled{% endif %}" specification-id="{{ specification_list.id }}" order-id="{{ id }}" status="{{ status }}" data-cart-id="{{ cart_list.id }}" superuser="{% if is_superuser == true %}true{% endif %}" specification-elem="specification-item"> <div class="table_item_value"> <a data-cart-id="{{ cart }}" href=""></a> <p>Заказ № {{ id }}</p> </div> <div class="table_item_value"> {% if name_req_full %} <div>{{ name_req_full }}</div> {% else %} <div class="">Отсутсвует</div> {% endif %} </div> <div class="table_item_value"> Статус: {{ status_full }} <br> </div> <div class="table_item_value "> <span class="price"> <b bill-sum-paid="{% if bill_sum_paid %}{{ bill_sum_paid }}{% else %}0{% endif %}" class="price_bill_sum_paid {% if bill_file and bill_sum_paid < bill_sum and status != "CANCELED" %}add_payment_button{% endif %}"> {% if bill_sum_paid %} {{ bill_sum_paid }} {% else %} 0 {% endif %} </b> <b>₽</b> / {{ specification_list.total_amount }} ₽ </span> {% if prepay_persent %} <div class="paument_tupe"> {% if postpay_persent != 0 %} предоплата: {{ prepay_persent }}% {% else %} предоплата: {{ prepay_persent }}% {% endif %} </div> {% endif %} </div> <div class="table_item_value table_item_value_change_buttons_container"> <div data-type-save="new" class="change-specification-button">Продолжить оформление</div> </div> </div> {% endif %}
<div product-id="{{id}}" search-specification-elem="search-specification-item" class="product_search_item"><span class="name">${el.name}</span><span class="search_button">Добавить</span></div>
<div class="invoice-item" invoice-elem="invoice-item" invoice-elem-id="{{ id }}"> <div class="name"> {% if product_new == None %} {{ product_okt_name }} {% else %} {{ product_new }} {% endif %} </div> <div class="article"> {% if product_new_article == None %} {{ product_okt_article }} {% else %} {{ product_new_article }} {% endif %} </div> <div class="stock"> {% if stock %} <div class="stock_item"> {% if stock.to_order %} Поставщик: <br> Под заказ {% else %} {% if stock.stock_supplier != None %} Поставщик: <span class="supplier_unit">{{ stock.stock_supplier_unit }}</span> шт {% else %} Поставщик: - {% endif %} {% endif %} </div> <div class="stock_item"> Motrum: <span class="motrum_unit">{{ stock.stock_motrum }}</span> {% if stock.stock_motrum_reserve %} Motrum резерв: <span class="motrum_unit_reserve">{{ stock.stock_motrum_reserve }}</span> {% endif %} </div> {% if stock.stock_supplier != None %} <span class="span-transit"style=" font-size: 10px; line-height: 5px; ">{{ stock.data_update }}</span> <br> <span class="span-transit"style=" font-size: 10px; line-height: 5px; "> {% if stock.transit_count %}Ближайшая поставка: {{ stock.data_transit }} - {{ stock.transit_count }} шт.{% endif %} </span> {% endif %} {% else %} {% if stock.to_order %}Под заказ{% endif %} Неизвестно {% endif %} </div> <label> <input placeholder="Укажите срок поставки" class="invoice-data-input" type="text" value="{{ text_delivery }}" /> <div class="error"></div> </label> </div>
<div class="vacancy_item" vacancy-id="{{ id }}" vacancy-elem="vacancy-item"> <div> <div class="vacancy_item_description"> <div class="vacancy_tilte_content"> <div class="title_content"> <div class="vacancy_name">{{ name }}</div> <div class="vacancy_title_content_descr"> <div class="vacancy_exp">{{ experience }}</div> <div class="vacancy_busyness">{{ busyness }}</div> </div> <div class="vacancy_price"> <div class="price_container"> {% if first %} <span class="price_description"> от <span class="price">{{ first }}</span> ₽ </span> {% endif %} {% if last %}<span class="price_description">до <span class="price">{{ last }}</span> ₽</span>{% endif %} {% if fixed %}<span class="price_description"><span class="price">{{ fixed }}</span> ₽</span>{% endif %} {% if first or last or fixed %}в месяц{% endif %} </div> <div class="price_type_payments">{{ type_payments }}</div> </div> </div> <div class="show_btn">подробнее</div> </div> <div class="vacancy_description_content"> {% if text %}<div class="vacancy_description">{{ text|safe }}</div>{% endif %} {% if responsibiliti %} <div class="vacancy_description_elem"> <div class="title">Что нужно:</div> <div class="description">{{ responsibiliti|safe }}</div> </div> {% endif %} {% if requirement %} <div class="vacancy_description_elem"> <div class="title">Что мы приветствуем:</div> <div class="description">{{ requirement|safe }}</div> </div> {% endif %} {% if conditions %} <div class="vacancy_description_elem"> <div class="title">Мы предлагаем:</div> <div class="description">{{ conditions|safe }}</div> </div> {% endif %} </div> <div class="submit_btn">откликнуться на вакансию</div> <div class="overlay_vacancy"> <div class="modal_window"> <div class="close_btn">+</div> <div class="title">Отклик на вакансию</div> <div vacancy-name="{{ name }}" class="vacancy_modal_form"> <label> <input class="name_input" type="text" placeholder="Ваше имя" /> <div class="error name_error"></div> </label> <label> <input class="phone_input" type="tel" placeholder="Ваш телефон"> <div class="error phone_error"></div> </label> <label class="file_label"> <div class="img_container"> <svg width="27" height="26" viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M15.195 20.5424L22.5666 13.1708L24.4204 11.317C26.6599 9.07747 26.6599 5.44641 24.4204 3.20685V3.20685V3.20685C22.0968 0.883299 18.3296 0.883297 16.006 3.20685L9.26445 9.94844L2.18613 17.0268C0.42648 18.7864 0.426476 21.6394 2.18612 23.399V23.399V23.399C3.65059 24.8635 6.02496 24.8635 7.48942 23.399L20.1421 10.7463" stroke="black" stroke-width="1.5" /> </svg> </div> <div class="file_description"> Прикрепить резюме </div> <input class="file_input" style="display:none" type="file" accept=".xls,.xlsx,.png,.jpeg,.jpg,.pdf,.txt,.doc,.docx,.ppt,.rtf,.tiff" /> <div class="error file_error"></div> </label> <textarea class="vacancy_textarea" placeholder="Ваше сообщение"></textarea> <button class="submit_btn">Отправить</button> <div class="politic_description"> Нажимая на кнопку, вы даёте согласие на обработку персональных данных в соответствии с <a target="_blank" href="/privacy-policy/">политикой конфиденциальности</a> </div> </div> </div> </div> </div> </div> </div>
<a href="{{ url }}" class="search_elem" search-elem-id="{{ id }}" search-elem="search-elem" data-url="{{ url }}"> <div class="search_elem_name">{{ name }}</div> <button class="product_link"> <div>Перейти</div> </button> </a>