Проектирование и внедрение системы считывания DM-кода

+
<
>
Разработали и внедрили, единообразные системы нанесения и считывания DM-кода, на трех предприятиях группы компаний Заказчика, всего 10 линий. Формируем базы данных с интеграцией системы в Программный модуль для работы с системой ГИС МТ.

На первом этапе без агрегирования в групповую упаковку и паллеты.

Линии: стекло, ПЭТ, различного объема от 0,5л до 5л.

Требования к системе.

Нанесение DM-кода маркировки при помощи аппликатора.

DM-код наносится на крышку бутылки. Минимальный размер изображения DM-кода 11х11 мм. Качество нанесения DM-кода должно соответствовать уровню, не ниже С. Ширина свободного белого поля вокруг кода не должна быть меньше 2х ширины модуля кода.

На линии установили сканеры для автоматического считывания DM-кода. Сканеры установили на специальные кронштейны. После сканера обеспечили пневматическую отбраковку в виде участков конвейера с накопительными столами.

Для отображения статистики считанных и не считаных кодов, отображения ошибок, сообщений для оператора и выбора сервисных функций, предусмотрели встраиваемые сенсорные моноблоки, установленные в двери шкафа управления системой. Установили ручные сканеры для удаления отбракованных упаковок из базы данных.

Предусмотрели возможность печати этикеток самостоятельно, при помощи специального принтера с подмотчиком. Задание на печать отправляет производитель продукции, посредством программного обеспечения.

В работе используется программное обеспечение, нашего партнера, «Контур.Маркировка» компании АО «ПФ «СКБ Контур» для работы с системой ГИС МТ (заказ DM кодов в ГИСМТ, загрузка DM кодов в базу данных, формирование и отправка отчетов об использовании DM кодов в ГИС МТ).

Сервер для установки ПО для работы с системой ГИС МТ обеспечил самостоятельно Заказчик. Сервер установили на производственной площадке.

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

Общие технические требования для автоматической линии:
  •  Материал исполнения шкафов – нержавеющая сталь;
  •  Исполнения электрооборудования – общепромышленное;
  •  Питание 220В, 50 Гц;
  •  Подвод воздуха до места установки пневматической системы отбраковки давлением 6 атм;
  •  Сечение воздушной линии 8мм;
  •  Сигнализация о несчитанном коде.
  •  Пневматическая система для отбраковки бутылок с накопительным столом.

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

У ВАС ПОХОЖАЯ ЗАДАЧА? ОСТАВЬТЕ ЗАЯВКУ И МЫ РАСЧИТАЕМ ПРОЕКТ
Нажимая на кнопку, вы даёте согласие на обработку персональных данных в соответствии с политикой конфиденциальности
Похожие проекты
Робототехнические ячейки. Лабораторный стенд робот Дельта серии 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>