[Интерфейсы, ERP-системы, Управление разработкой, Управление проектами, Будущее здесь] Цифровая трансформация завода (ч. 3): волшебные интерфейсы и оживление железа

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
30-Янв-2021 22:32

Часть 1: CRM для ERPЧасть 2: Роботизация бизнес-процессовЧасть 3: Волшебные интерфейсы и оживление железа (в этой публикации)Часть 4: Личные кабинеты, чат-боты и dream teamВлияние рабочего места диспетчера на пропускную способность отгрузки на заводеЦифровизация предприятия - это не только процесс внедрение новых систем и сервисов. Этому предшествуют поиски узких мест в рабочих процессах и на конкретных рабочих местах пользователей.Рекомендация: Не айтишные книги, которые полезно прочитать айтишнику
  • Принципы. Жизнь и работа. Рэй Далио
  • Цель. Процесс непрерывного совершенствования. Элияху Голдратт
  • Гемба Кайдзен. Путь к снижению затрат и повышению качества. Масааки Имаи
Какие идеи обычно возникают, когда нужно увеличить пропускную способность отгрузки на заводе:
  • Увеличить количество точек для одновременной отгрузки на заводе.
  • Увеличить количество КПП для одновременного въезда/выезда на завод.
На первый взгляд ответы правильные и логичные. Остается только найти пару 10 или 100 млн. руб. на инвестиционный проект и реализовать его.
Узкое горлышко найдено, дело за малымЛичный опыт: Не верьте программистам и консультантамКогда программисты или консультанты тех. поддержки говорят вам, что у пользователей нет вопросов и проблем, потому что пользователи не обращались - это может означать, что:
  • У пользователя действительно все хорошо и прекрасно.
  • Пользователь не знает к кому обращаться со своими проблемами.
  • Пользователь много раз обращался, никто не решил проблему, потерял надежду и перестал обращаться.
  • Пользователь не видит проблем или привык к тому, что проблемы стали частью его повседневной жизни и адаптировался под них.
  • У пользователя нет возможности обратиться из-за отсутствия времени, так как оно полностью занято оперативной работой.
Еще одна причина:
  • Программист и консультант никогда не были в гемба и не видели, как именно пользователь работает с системой и насколько это соответствует реальным бизнес-процессам.
Общий счет 5:1 в пользу того, чтобы не верить программистам и консультантам, что у пользователей нет вопросов и проблем.
Завод находится в 150 км от моего непосредственного рабочего места. И точно уже не вспомню, письмо мне в почту со скриншотом ошибки или звонок на мобильный от диспетчера, что способствовало выехать меня на место, чтобы разобраться в причинах проблем.Выявленные на месте явные проблемы (без погружения в детали):
  • 3 рукописных журнала для оперативной работы (при наличии рабочего места в ERP).
  • 2 монитора, чтобы вывести нужную информацию (изображение с 2-х видеокамер, данные с 2-х промышленных весов, программы для вывода текста на Led-табло, монитор для работы в ERP).
  • Настольный калькулятор (для вычисления max. веса к погрузке по каждой машине).
  • Ручки и фломастеры (для заполнения настольных журналов).
  • Поток жалоб от диспетчера на ошибки в рабочем месте ERP и постоянные проблемы со вторым монитором, куда выводятся данные с промышленных весов.
Лайфхак #1: Фотографируйте рабочие места пользователейТак выглядело рабочее место диспетчера, когда я приехал и это было нормой с 2016 года.
Часть рабочего места диспетчера, вид сверху
Монитор 1 - данные с 2-х камер, данные с 2-х весов, программа для led-табло
Монитор 2 - интерфейс рабочего места в ERP, беспощадный и жестокий
Настольный калькулятор и журналы на столе диспетчера
Журнал прибывших машин на погрузку с отметками плановых точек погрузки на заводе
Журнал с очередью машин (кто и во сколько приехал, когда и кого грузить, кто отгружен)
Журнал выданных номерных пломб (учет по сериям) по сменам диспетчеровЛайфхак #2: Наблюдайте, слушайте диалоги, задавайте вопросыЭто помогло за одну 12-часовую смену понять суть работы диспетчера:
  • Регистрация прибытия водителей на погрузку.
  • Планирование времени отгрузки в журнале (формирование очереди).
  • Вызов водителей на погрузку по журналу (по очереди из числа прибывших)
  • Выдача номерных номерных пломб и магнитных карт, их регистрация в ERP (для погрузки).
  • Ручная отправка задания на промышленные весы (для взвешивания машины до погрузки).
  • Ручное вычисление max. веса к погрузке (по каждой машине с учетом грузоподъемности и веса пустой машины).
  • Ручная отправка на промышленные весы задания на погрузку (max. вес к погрузке).
  • Печать отгрузочных накладных (после окончания погрузки).
Простые замеры времени операций показали, что на заводе высокая скорость погрузки (одна машина грузится ~ 10 минут), но есть простои до 3-х минут между погрузкой машин , потому что диспетчер физически не успевает "обслужить" весь трафик.
Диалоги диспетчера с водителями обнажили бюрократию на рабочем месте и предвзятое отношение к водителям:
  • У одних водителей ничего не спрашиваем и не проверяем, у других - проверяем каждую букву в ФИО и гос. номерах.
  • Одни водители ожидают свою очередь, другие - проезжают на погрузку без очереди, хвастаясь перед другими водителями.
  • Одним водителям всё подробно рассказываем, других - игнорируем и не отвечаем на элементарные вопросы.
Все это порождало хаос в работе диспетчера и водителей, конфликты между людьми: между водителями и диспетчером, между самими водителями.
Анализ проблем показали, что узким местом на заводе является рабочее место диспетчера. Пропускную способность отгрузки можно увеличить без капитальных затрат, а помощью автоматизации.Нарисовались следующие задачи, которые были решены
  • Ускорить регистрацию прибывших на погрузку водителей.
  • Ускорить выдачу диспетчером номерных пломб и магнитных карт для водителей.
  • Развести машины по времени прибытия на завод.
  • Упорядочить очередь прибывших на погрузку машин.
  • Ускорить взвешивание машин до и после погрузки.
  • Привести в порядок интерфейс рабочего место диспетчера в ERP.
  • Убрать у диспетчера второй монитор, журналы, калькулятор и фломастеры.
На решение задач и автоматизации, которые дали наибольший эффект ~ 2 месяца с учетом покупки и настройки оборудования, закупки партий номерных пломб со штрихкодами, написания ТЗ и других связанных процессов.Рабочее место диспетчера преображалось по мере готовности: первым появился сканер штрихкодов, поочередно убирались журналы, калькулятор и фломастеры, менялось рабочее место в ERP, последним убрали второй монитор.На гифке сразу виден результат преобразований (автоматическая очередь машин в новом рабочем месте диспетчера в ERP).
Волшебное рабочее место диспетчера в ERP - маленький мир больших машинВремя "обслуживания" диспетчером одной машины сократилось в 10 раз
  • Автоматическая очередь машин через 1 КПП для 3-х точек отгрузки на заводе.
  • Автоматическое управление из ERP взвешиванием на промышленных весах.
  • Вся информация выведена на 1 экран 1 монитора пользователя.
  • Выдача номерных пломб и магнитной карты водителю с помощью сканера штрихкодов за 5 секунд.
  • Печать комплекта отгрузочных накладных диспетчером за 5 секунд.
  • Рабочее место диспетчера без журналов, калькулятора и фломастеров.
Почему мы установили диспетчеру сканер штрихкодов вместо считывателя магнитных карт, которые уже использовались на заводе? Все дело в номерных пломбах, удобстве и скорости работы для диспетчера.Так выглядят номерные пломбы для выдачи водителю:
  • Приходят в коробках по 10 тыс. шт. и соединены друг с другом пластиковыми "ножками" (особенность изготовления).
  • Изначально был только номер, затем мы заказали с нанесением штрихкодов.
  • Штрихкод просто кодирует номер самой пломбы.

Пластиковые номерные пломбы со штрихкодамиЧтобы диспетчеру было удобно одновременно выдавать номерные пломбы и магнитные карты, не путаясь в устройствах считывания, мы на магнитные карты наклеили штрихкоды с номером.
Примерка штрихкода для наклеивания на магнитную карту
Таким образом, диспетчер перед выдачей водителю сканирует номерные пломбы и магнитные карты на одном сканере штрихкодов и делает это машинально, не задумываясь.
  • Чтобы сканер различал штрихкоды, мы кодируем первый знак: 1 - штрихкод номерной пломбы, 2 - штрихкод магнитной карты.
  • Мы доработали подсистему распознавания штрихкодов, чтобы номерные пломбы не нужно было расцеплять до сканирования, и сканировать несколько раз без "задвоения" номеров штрихкодов.
ГЛАВНЫЙ РЕЗУЛЬТАТ: пропускная способность отгрузки продукции автотранспортом на заводе увеличена в 2 раза без капитальных затрат.
Подробнее, о том, что для этого было сделано, читайте далее...Электронная очередь для грузового автотранспортаФактически очередь начинает формироваться на этапе приема заказов:> с нашей доставкой, клиент указывает только дату и время выгрузки по адресу доставки.> на самовывозе, клиент указывает только дату и время погрузки на заводе.Клиентский сервис: когда завод принял заказ, то мы должны соблюдать время погрузки и выгрузки машин, не допускать простоев автотранспорта и срыва поставок клиентам.Конкурентное преимущество: мы поддерживаем такой высокий уровень сервиса, чтобы клиенты могли получить продукцию завода: "день в день" - для регионов до 300 км, на следующий день - для регионов до 600 км, и через день - для регионов свыше 600 км.Существующие ограничения на заводе при отгрузке в автотранспорт
  • Разная продукция завода отгружается в разные часы в течение суток.
  • Скорость отгрузки продукции на заводе не более 6 машин в час на 1 точку погрузки.
  • Один вид продукции отгружается с 2-х точек погрузки, второй - с одной точки.
  • Одновременно на заводе могут находиться не более 8 грузовых машин на всех точках погрузки.
  • Все машины заезжают на завод и выезжают с завода через 1 КПП и одного диспетчера в смену.
Пример настроек в ERP по действующим ограничениям
Настройки пропускной способности отгрузки в ERP
Настройки вариантов подбора свободного времени отгрузки продукции в ERPПри расчете свободного времени отгрузки на заводе также учитывается расстояние до пункта выгрузки у клиента и средняя скорость движения грузового автомобиля.Для некоторых видов продукции учитывается суточный лимит объема отгрузки вместо ограничения по количеству машин в час.
Автоматический подбор свободного часа погрузки на заводе (по заказу в ERP) для доставки клиенту ко времениВ какой момент формируются 3 разные очереди в ERP
  • Заказ клиента принят 21.01.2021 в 11:14.
  • Расстояние от завода до пункта разгрузки у клиента 630 км.
  • Чтобы доставить заказ клиенту 22.01.2021 к 8:00, машина должна приехать на завод для погрузки 21.01.2021 не позднее 15:00 - это плановая очередь погрузки.
  • Когда машины приезжают на завод для погрузки - это фактическая очередь прибытия.
  • По плановому времени погрузки по заказу и фактическому времени прибытия машин на завод строится реальная очередь на отгрузку.
Способы регистрация прибытия водителей на заводе:
  • через диспетчера
  • через уличный терминал
  • через чат-бот Telegram (подробнее в четвертой части)
  • через распознавание гос. номера машины (в планах на этот год)
Пример регистрации водителей через диспетчера в ERP
Диспетчер отмечает прибытие водителей правой кнопкой мыши в своем рабочем месте в ERP
  • Машины, которые фактически находятся на погрузке на заводе.
  • Очередь машин на погрузку по статусам:- кто еще не прибыл на завод (НЕ ПРИБЫЛ).- кто прибыл и ожидает своей очереди (В ОЧЕРЕДИ).- кто прибыл и автоматически приглашен к погрузке (К ПОГРУЗКЕ).
  • Динамические данные двух промышленных весов (показ только у диспетчера).
  • Изображение с двух камер на точках погрузки на заводе.
Пример регистрации водителей через уличный терминал на заводе
  • Сенсорный антивандальный монитор 24" российского производства (широкоформатный 16:9, TFT TN, 1920х1080, углы обзора 160/160), установлен на КПП завода.
  • Монитор без собственного ПО для подключения к любому ПК, с особыми характеристиками яркости (1000 кд/м2) и температурного режима (-30/+30), в защищенном корпусе (сталь 2 мм) c закаленным стеклом (4 мм) и весом ~ 20 кг.
  • Монитор подключен к системному блоку, на котором автоматически запускается ERP и разработанный нами интерфейс для самостоятельной регистрации прибытия водителей на погрузку.

Начальный экран - крупные шрифты, большие кнопки, не промахнешься
Шаг 1: Быстрый поиск по водительскому удостоверению - водитель не найден
Шаг 2: Быстрый поиск по цифрам гос. номера автомобиля
Шаг 3: Найденные по гос. номеру автомобили - выбор и подтверждение
Шаг 4: Проверка данных и регистрация прибытия на погрузкуТаймер обратного отсчета мотивирует водителя выполнять действия быстрее, чтобы не задерживать очередь у терминала.
Этот кейс также относится к теме оживления железа (оживление с помощью разработанного ПО для автономной работы в составе единой информационной системы), но здесь подробно рассматриваться не будет.
Пример регистрации водителей через чат-бот Telegram
Водитель отмечает прибытие на завод для погрузки в чат-боте Telegram
  • Команда прибытия на погрузку в чат-боте Telegram.
  • Уведомление водителя с подтверждением времени прибытия.
Чат-бот для водителей в Telegram интегрирован с ERP в режиме онлайн и работает автоматически по заданным сценариям (подробнее в четвертой части).Как происходит автоматический вызов водителя на погрузку из очереди:Способ регистрации прибытияКанал вызова на погрузкучерез диспетчерауличное LED-табло и SMSчерез уличный терминалуличное LED-табло и SMSчерез чат-бот Telegramуличное LED-табло и чат-бот Telegramчерез распознавание гос.. номера (в плане)уличное LED-табло и SMS (в плане)Пример приглашения водителей на погрузку по SMS
Автоматическое приглашение водителей на погрузку по SMSПример приглашения водителя на погрузку в чат-боте Telegram
1 - водитель отметил прибытие на завод, 2 - чат-бот автоматически пригласил на погрузкуНа скриншоте ниже видно историю взаимодействия водителей с чат-ботом Telegram в интерфейсе ERP (подробнее в четвертой части).
Автоматическое приглашение водителей на погрузку в чат-боте TelegramПример приглашения водителей через уличное Led-табло
Автоматическое приглашение водителей на LED-табло по гос. номеру автомобиля
  • Размер каждой LED-панели примерно 1,5 х 2 метра.
  • LED-панели развернуты на 2 стороны стоянки грузовых автомобилей перед заводом.
И если SMS или уведомление в чат-бот Telegram отправляется однократно, то приглашение на уличное LED-табло может выводиться несколько раз в соответствии с тем, как меняется автоматическая очередь в ERP:
  • Первый вызов и ожидание водителя в течение 5 минут.
  • Второй и последующие вызовы через каждые 5 минут, после вызова на погрузку следующего по очереди водителя и окончания погрузки очередной машины на заводе.
Таким образом, очередь на LED-табло постоянно автоматически обновляется и к погрузке вызываются разные водители из числа прибывших на завод.
Оживление LED-табло и автоматическое управление из ERPУличные LED-панели были куплены еще до начала работ по комплексной автоматизации рабочего места диспетчера, взамен старого (с которым раньше работали диспетчеры через программу для ручного вывода строк).
Фото от российского производителя LED-панелей (1,5 х 2 м), готовых к отправке на заводВместе с LED-панелями производитель предоставил программу для вывода строк на табло.
Окно программы для вывода текстовых строк на LED-таблоПосле реализации автоматической очереди погрузки в ERP, логично, что информация на табло должна выводиться также автоматически.Нам повезла, что изготовитель нашел документ с описанием протокола: описание формата пакетов второго уровня, вывода данных по строкам и столбцам, и пример одной функции подсчета контрольной суммы.Пример 3-х страниц с описанием протокола
Страница 2 описания протокола
Страница 5 описания протокола
Страница 8 описания протоколаС программистом 1С мы посмотрели протокол и не поняли, как именно управлять выводом очереди машин на табло из ERP.По нашей просьбе, изготовитель LED-панелей договорился с производителем компонент электроники, из которых оно состоит, чтобы они написали пример кода для программного вывода информации на табло. Пример был написан на языке Pascal, который программист с большим трудом перевел на язык 1С.Пример кода на языке Pascal (Delphi 10) по использованию протокола
unit ConnTypes;
interface
const
     RecBuffSizeByte=1024;
type
TLevel2Pack=packed record
  SrcAddr:word; //source address
  DstAddr:word; //receiver address
  PId:byte;     //Packet id
  Cmd:byte;   // Command code
  Flags:byte;  //options
  Status:byte; //command status
  DataLen:word; //length of data
  Data:array[0..RecBuffSizeByte-1] of byte;  //data
  end;
PLevel2Pack=^TLevel2Pack;
TLevel2Head=packed record
  SrcAddr:word; //source address
  DstAddr:word; //receiver address
  PId:byte;     //Packet id
  Cmd:byte;   // Command code
  Flags:byte;  //options
  Status:byte; //command status
  DataLen:word; //length of data
  end;
PLevel2Head=^TLevel2Head;
TFullPacket=packed record
  bSTX:byte;
  LenLo:byte;
  LenHi:byte;
  Data:array[0..RecBuffSizeByte*2-1+32] of byte;
  end;
PFullPacket=^TFullPacket;
function MakeFullPacket(Src:PLevel2Pack; Dst:Pointer):integer;
function EncodeWord(v:word):word;
implementation
uses CRCUnit;
function CS2word(cslo, cshi:byte):word;
var b:PByte;
begin
Result:=0;
b:=@Result;
b^:=cslo or $80;
inc(b);
b^:=$80 or ((cslo shr 7) and $01) or ((cshi and $3F) shl 1);
end;
function EncodeWord(v:word):word;
begin
Result:=((v and $3F80) shl 1) or (v and $7F) or $8080;
end;
function DecodeWord(v:word):word;
begin
Result:=((v and $7F00) shr 1) or (v and $7F);
end;
function EncodeDataForComm(Src, Dst:Pointer; SrcSize:integer):integer;
var PS, PD:PByte;
     i:integer;
     b:byte;
  begin
  PS:=Src;
  PD:=Dst;
  Result:=0;
  for i:=1 to SrcSize do
    begin
    b:=PS^ xor $80;
    if (b<$20) or (b=$7F)
       then begin
            PD^:=$7F;
            inc(PD);
            PD^:=b or $80;
            inc(Result);
            end
       else PD^:=b;
    inc(PS);
    inc(PD);
    inc(Result);
    end;
  end;
function MakeFullPacket(Src:PLevel2Pack; Dst:Pointer):integer;
var cs:word;
    PB:PByte;
    F:PFullPacket;
    PackLen:word;
    PackSize:integer;
  begin
  PB:=Dst;
  F:=Dst;
  cs:=0;
  PackLen:=word(Src^.DataLen+sizeof(TLevel2Head));
  CountCSNewW(Src, PackLen, cs);
  F^.bSTX:=$02;
  PWord(@F^.LenLo)^:=EncodeWord(PackLen);
  inc(PB, 3);// add bSTX, LenLo, LenHi
  PackSize:=EncodeDataForComm(Src, PB, PackLen);
  inc(PB, PackSize);
  PWord(PB)^:=EncodeWord(cs);
  inc(PB, 2); // add CsLo, CsHi
  PB^:=$03;
  Result:=PackSize+6;
  end;
end.
Таким образом, нам удалось реализовать полностью автоматическое управление выводом очереди на LED-табло из ERP.
Мы также реализовали автоматическое управление взвешиванием машин из ERP до и после погрузки на 2-х промышленных весах на заводе. Напишите в комментариях, если вам интересно узнать об этом подробнее.Спасибо, что дочитали до конца!
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_interfejsy (Интерфейсы), #_erpsistemy (ERP-системы), #_upravlenie_razrabotkoj (Управление разработкой), #_upravlenie_proektami (Управление проектами), #_buduschee_zdes (Будущее здесь), #_ui, #_interfejsy (интерфейсы), #_erp, #_erpsistemy (erp-системы), #_zavod (завод), #_digital, #_avtomatizatsija_predprijatija (автоматизация предприятия), #_integratsija_sistem (интеграция систем), #_propusknaja_sposobnost (пропускная способность), #_uzkoe_mesto (узкое место), #_interfejsy (
Интерфейсы
)
, #_erpsistemy (
ERP-системы
)
, #_upravlenie_razrabotkoj (
Управление разработкой
)
, #_upravlenie_proektami (
Управление проектами
)
, #_buduschee_zdes (
Будущее здесь
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 12:39
Часовой пояс: UTC + 5