Инвентаризация склада ручным сканером

И

В конце фильмов пишут, что все персонажи вымышлены и любые совпадения случайны. Но зачем это было писать во “Властелине колец”? Кто-то, вероятно, хотел бы отдохнуть в Новой Зеландии, но боится, что всё испортит армия орков.

James Anthony Patrick “Jimmy” Carr

Я вот, например, в совпадения верю не особо. Всё-таки, техническое образование. Чаще всего совпадения не случайны и это можно доказать с помощью математического аппарата той же стохастической динамики, например.

Любое событие неизбежно, иначе его бы не произошло.

Вчера в чатике пользователей Netix Triceps активно обсуждали инвентаризацию складов. В частности, адресную систему и штрих-кодирование, чтобы упростить и ускорить инвентаризацию с помощью терминалов сбора данных (ТСД). Именно в этот момент я ехал в гости к своим товарищам с целью помочь им разобраться с ручным сканером штрих-кодов. Они созрели до автоматизации некоторых складских процессов, купили новую железку и попросили скрестить её с Triceps.

Делюсь с вами этим совпадением не потому что написать больше нечего, а потому что я узнал что-то новое, а это всегда интересно и полезно. Тем более, что этот опыт вы сможете применить на практике хоть завтра. Будущее уже наступило и ТСД для сверки склада в настоящее время не особо-то и нужен.

У меня есть кое-какой скромный опыт автоматизации складских процессов. Самый большой складской проект, в котором я принимал непосредственное участие, по иронии судьбы был складом запчастей. Там было 26 500 квадратных метров площади.

Что я там делал

Компания, в которой я работал на тот момент, занималась автоматизацией бизнес-процессов владельцев этого склада. Я в проекте отвечал за программное обеспечение и оптимизацию складских процессов. Это был мой квалификационный тест на переход из категории Middle в категорию Senior.

Часть людей мы заменили на роботов и в результате в смене для обслуживания всего этого хозяйства вместо 43 человек осталось 4. Я занимался оптимизацией алгоритмов этих роботов, чтобы они действовали сообща. Из коробки они так не умели. Но потом мы их научили и процессы на складе задвигались ощутимо быстрее.

Потом мы внедрили более точный график заезда грузовой техники. Раньше грузовики подъезжали на погрузку-разгрузку в определённые час и минуту (например, 16:25, 18:14 или 05:56). Моё решение требовало от них подъезжать в определённые час, минуту и секунду, то есть 16:24:19, 18:14:16 или 05:56:03. Поначалу водители недовольно ворчали, но когда поняли профит, с удовольствием начали укладываться в нормативы.

При более точном времени заезда, а также благодаря роботизации и оптимальному построению маршрутов, грузовики вместо привычных им 40 минут стали проводить там не более 15.

Можно было, конечно, сделать ещё лучше, но категорию Senior я таки получил, значит, моя работа заказчиков устроила.

Был опыт и на более скромных складах, в том числе и на таких:

Пример склада
Так тоже бывает

У моих друзей складик поскромнее, что-то около 9.5 миллионов рублей. Вроде, не очень мало, но и не особо уже интересно. Ради халявного обеда я бы к ним, разумеется, не поехал. Но они подкупили меня тем, что заявили возможность провести инвентаризацию склада без терминала сбора данных, только лишь одним ручным сканером. Купили какую-то интересную железку, которая является беспроводным ручным сканером со встроенной памятью и продавец пообещал, что она покроет все их запросы.

А вот это уже стало поинтереснее. Когда я услышал про инвентаризацию склада без ТСД, сразу представилась картина, как человек ходит с ноутбуком или планшетом между полками и пикает всё подключенным туда. Или сканер с очень длинным проводом, способный дотянуться до любого закоулка склада.

Вроде как все нормальные люди для инвентаризации используют ТСД, а для оперативных задач — принять или отгрузить товар — пользуются уже ручными сканерами. А эти парни видимо решили сэкономить и заюзать одно устройство для всех операций. Что ж, посмотреть на это было достаточно интересно, поэтому я согласился приехать к ним, чтобы помочь настроить коннект между Triceps и их новой игрушкой. А на самом деле, конечно, чисто поржать, глядя на то, как по складу ходит чел с ноутбуком, открытым там документом сверки склада и воткнутым туда шнурком от сканера.

Знакомство с устройством

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

В качестве сканера оно работало. Прописалось в Windows и соединилось с Triceps на раз, без всяких танцев с бубном и дополнительных настроек. Буквально: воткнул, подождал и заработало. Я походил по складу, попикал товар — всё тут же добавлялось в документы. Даже в самых дальних углах связь была устойчивой, информация мгновенно передавалась в Triceps.

Отличное решение для инвентаризации складов небольшого (линейного) размера. Открыл документ Корректировка остатков, и ходи себе, пропикивай полочки. Не нужно никаких ТСД, не нужно загружать в них данные, не нужно возиться с их подключением к Triceps и последующей передачей напиканной информации. Всё на лету будет добавляться в документ. Легко и просто.

Инвентаризация склада большого размера

А что делать если склад раскинул свои просторы достаточно широко и сканер физически не достреливает до базы? В документации было заявлено 100 метров в условиях прямой видимости, но нагромождение железных полок с товаром почти наверняка сократит заявленный радиус метров до 30 в лучшем случае. Я сколько не пытался, не смог заставить сканер потерять связь с базой, находясь на подопытном складе.

Чтобы протестировать, как он поведёт себя в условиях потери сигнала, я сунул в карман пару подшипников и вышел с ними на улицу. На всякий случай отошёл на 100 шагов от здания. Там как следует попикал свои подшипники (блин, фраза-то какая литературная получилась — “попикать свои подшипники”, надо будет сохранить в копилку эвфемизмов), и пошёл довольный смотреть, что же получилось.

Как и ожидалось, никакого упоминания моих попиканных подшипников в документах не нашлось. Что ж, кажется, я сумел сломать китайское чудо техники и доказать его непригодность к инвентаризации складов определённого размера. Терминалы сбора данных реабилитированы, без них нельзя, всем спасибо, разбегаемся.

Собравшись сжечь дурацкий сканер в бочке на заднем дворе, я решил, что разжигать его нужно его же собственной инструкцией, для большего эффекта. И когда нёс её на задний двор, краем глаза заметил пункт “Асинхронный режим”. Память заботливо подкинула фразу товарищей, о том, что эта штука имеет встроенную память, и паззлы вдруг сошлись. Асинхронный режим плюс память, это же… Это же… Точняк, вот оно чо! Дошло наконец!

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

Эта штука имеет три режима работы:

  • Синхронный режим;
  • Асинхронный режим;
  • Режим накопления.

Инвентаризация склада в синхронном режиме

В синхронном режиме сканер работает как обычный проводной сканер, просто с длинным невидимым проводом. Всё, что пикнули, тут же передаёт в документ. Отошли сильно далеко — извините. Он пикнет (скотина!), но информацию не передаст (вот передаст!). Правда, о том, что вы отошли сильно далеко, он всё же сообщит. Когда он в зоне приёма, лампочка на его голове горит синим цветом. Это означает, что можно уверенно пикать, всё будет доставлено. Но когда мы покидаем зону приёма, лампочка тут же начинает гореть красным, говоря о том, что передачи не будет. Я понимаю, что в пылу работы, когда считаешь склад с десяти вечера, до открытия сервиса остались считанные часы, а склад ещё даже на две трети не пройден, можно и не заметить, что какая-то лампочка вдруг поменяла цвет или не придать значения.

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

Инвентаризация склада в асинхронном режиме

В асинхронном режиме сканер натурально включает голову и начинает использовать встроенную в него память. Устроено это так, что любую информацию он сперва сохраняет у себя в памяти, и передаёт уже оттуда. Если получает подтверждение, что база информацию приняла, этот штрих-код из памяти удаляется и передаётся следующий.

На деле это означает, что пока вы в зоне комфорта действия базы, информация о штрихах передаётся практически с той же скоростью, что и в синхронном режиме. Когда вы вышли из зоны, штрихи копятся в памяти и передаются как только сканер вновь ловит базу. В память моего конкретного экземпляра влезало 5 000 штрихов. То есть, даже если вы под спидами пикаете склад со скоростью 1 штрих в секунду, вам хватит этой памяти на 83 минуты. Не ленитесь просто появляться в зоне действия базы хотя бы раз в час, и вы гарантированно не протеряете ни одного штриха. Ну и понятное дело, что существуют устройства с гораздо большим объёмом памяти.

Работа в режиме накопления

А что делать если склад настолько большой, что для его инвентаризации хотя бы за два выходных дня требуются усилия нескольких человек? Хотя, если у вас такой склад, то вы точно в советах давно уже не нуждаетесь и сами можете любого научить. Пусть будет склад поменьше, но сжатые сроки на его сверку. Например, надо успеть за ночь и вы понимаете, что нужно вывести для этого несколько человек.

С ТСД вроде всё просто: дал каждому по устройству, они обошли каждый свой участок, потом по очереди выгрузили данные из ТСД в Triceps, и готово. С ручными сканерами выглядит сложнее. Дать каждому по сканеру можно, а что делать с базой? Ставить одну на всех или каждому свою?

Если каждому свою, то придётся расчехлять несколько компьютеров, потому что несколько баз на одном компе жить не будут. Если одну на всех, то работать с ней в один момент времени сможет только один сканер, так как перед работой нужно обязательно выполнить сопряжение сканера и базы, чтобы они друг друга увидели. Так что же делать?

Работать в режиме накопления! В этом режиме устройство ничего на базу не передаёт, а тихо-мирно сохраняет всё у себя во внутренней памяти. Далее мы подходим к базе, говорим “Ну-ка, выкладывай, что у тебя там есть”, и сканер построчно выгружает что он там напикал сразу в документ! И это важно, что сразу в документ, минуя всякие прокладки. То есть, не надо будет вызывать окно работы с ТСД в Triceps, пытаться сперва закачать, а потом скачать данные. Не нужны никакие дополнительные драйверы и бубен. Всё добавится в документ напрямую как если бы вы последовательно пикнули этот товар обычным проводным сканером.

Практические примеры

ТСД или ручной сканер

Разумеется, я знаю за ТСД. Знаю, что в них есть встроенная логика и что ручной сканер, пусть даже и с памятью, очень тупой по сравнению с ними. Но на самом деле данная тупость нам только на руку!

Инвентаризация склада должна проводиться только в режиме инкогнито! Оператор на складе не должен знать ничего о правильном количестве товара. И даже о его названии. Некоторые практикуют обход склада силами не заинтересованных людей, которые вообще ничего в запчастях не понимают. Например, мойщик, уборщица или кассир. Я поддерживаю такой подход. Оператор должен просто ответственно пройти и пропикать нужную часть склада, не оставляя пробелов. Разбираться, где недостача, где пересорт, а где человеческий фактор нужно только после того, как склад фактически отпикан. И этим должны заниматься уже совсем другие люди, а оператора можно поблагодарить и отпустить домой.

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

Ни в коем случае не надо заливать в ТСД знания о правильном количестве, наименовании или расположении товара! А равно и сообщать сотрудникам, сколько чего должно быть. Этим вы самостоятельно стимулируете сотрудников на махинации. Если он видит пересорт, у него может возникнуть желание забрать лишний товар себе. Если он видит недостачу и понимает, что она возникла не без его участия, ему ничто не помешает дважды пикнуть на одном и том же товаре.

Раньше ручные сканеры не имели встроенной памяти и были неудобны для инвентаризации складов больше определённого размера. Сейчас это ограничение с них снято и вы можете смело отложить ваши ТСД подальше (или хотя бы отключить у них всю вредную логику в виде подсказок, чего бы украсть) и пользоваться ручными сканерами. Пользы от этого будет сильно больше, времени потратите меньше, результат получите более честный и при этом с меньшими затратами как на оборудование, так и на операторов.

Адресное хранение на складе

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

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

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

В упомянутом во вступлении чятике пользователей Netix Triceps я прочитал вопрос, можно ли помечать адреса на складе штрих-кодами. Типа, чтобы сперва оператор пикал штрих-код полки, затем товар на полке и Система уже сопоставляла не только остатки, но и адреса.

А вот и можно!

Такой подход широко используют наши клиенты на больших складах. Слово “больших” подчёркнуто не случайно. У нас принято “большим” называть склад, который люди никак не смогут сверить за указанное время. Например, когда у вас десяток тысяч квадратных метров площади, полки 15 метров в высоту и на всё про всё есть 6 часов. Даже если согнать туда роту людей, они не справятся, так как  будут сильно друг другу мешать.

На такие склады мы загоняем роботов. А они гораздо лучше читают штрих-коды на полках, нежели их адреса, пусть даже написанные очень разборчивым почерком. Поэтому если вы планируете в части складских процессов заменить людей роботами, вам действительно не обойтись без штрих-кодирования адресов. А если не планируете, то задумайтесь, надо ли оно вам. Времени потратите немало, мозги разработчикам склюёте порядочно, а результат может вас и не удовлетворить. И получится, что многочасовой труд многих людей приведёт к вашему: “Это не то, чего я ожидал, Triceps — отстой, разработчики не справились”.

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

Адресация ради адресации вам не нужна. Равно как и штрихи ради штрихов.

А что делать тем, кому реально нужны штрих-коды на полках, и это не блажь, а бизнес-необходимость? Конечно же, клеить штрих-коды с адресами на полки, что же ещё им делать-то… А как потом эти штрихи считывать? Да также, штрих-сканером и считывать. Другого способа нет. А как потом превращать эти штрихи в реальные адреса, которыми оперирует Triceps?

Есть один способ… Самые догадливые наверняка уже подумали: “Ну щас опять будет за свой Excel затирать…”, и они правы! Действительно, можно это сделать через Excel.

Находясь на складе у моих товарищей, я решил провести небольшой эксперимент. Взял первый попавшийся генератор штрих-кода в Интернете и нагенерил им штрихов на 5 рядом стоящих полок. Штрих-коды соответствовали адресу полки в Triceps. Далее договорился с собой, что при инвентаризации полки я сперва пикаю штрих-код полки, потом содержимое, потом код следующей полки, и так далее. То есть, в массиве информации у меня сперва шёл адрес полки, потом некоторое количество запчастей, потом опять полка, потом опять запчасти.

Адреса полок я заранее забил в Excel, чтобы он умел отличать полки от запчастей. Далее я прошёлся по полкам и выгрузил массив данных в Excel. После чего за полчаса написал небольшую процедурку, которая видя (уже известный) адрес полки просто растягивала его на все запчасти на этой полке, пока не встречала следующий адрес полки, после чего растягивала уже его.

Назначение адресов полкам склада на основе штрих-кодов
Превращаем штрих-коды в адреса
Не Triceps чего-то не умеет, а вы пока не знаете, как от него это получить

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

Разработчики Triceps предоставили нам настолько широкие возможности взаимодействия с ним, что говорить про то, что он чего-то там не умеет, просто стыдно.

Не уверен, что есть хотя бы пяток ваших хотелок, которые нельзя было бы реализовать без участия разработчиков из Netix. Если думаете, что есть, можем подискутировать в комментариях.

Заключение

Беспроводной сканер с памятью объединяет в себе достоинства ручного сканера и терминала сбора данных. С его помощью можно провести инвентаризацию склада практически любого размера. Всё будет зависеть от радиуса действия сигнала и размера встроенной памяти.

При этом такой подход не требует дополнительного шага в виде закачивания данных из Triceps в ТСД, скачивания данных из ТСД в Triceps и вставки их в документ. Достаточно открыть документ коррекции склада и пропикать склад. Данные будут поступать в документ по мере их поступления в сканер: или моментально, или после появления сканера в зоне действия базы, или после принудительной выгрузки данных.

Может приключиться ситуация, когда штрих-кода в карточке товара не окажется. Её описание читайте в отдельной статье про нераспознанные штрих-коды.

Новые технологии сперва внедряются на бумаге

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

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

Кому интересно, что за сканер мне достался, пишите в комментариях, я в скину ссылочку персонально на e-mail.

Макар Алексеев

makar@100-sto.ru
Telegram
Instagram

16 комментариев

  • Отличная статья. Вот только боюсь этот сканер не может одной важной штуки из-за которой в основном используют ТСД. Если ШК нет в БД Трицепса, то и в ТСД он не попадет. Когда мы будем пикать ТСД такой товар, то услышим сигнал (в зависимости от настроек), отличающийся от привычного. Что сообщит нам о том, что такого ШК в Трицепсе нет, и было бы неплохо его добавить.
    Ваш же сканер не сообщит об этом и потом будет сложно понять что это за товар. Но возьму на заметку, так как если выстроен процесс внесения всех ШК в БД, то подобное не должно происходить.
    Спасибо

    • Да, всё верно. Звук будет ровно такой же.

      Спасибо, что указали на этот нюанс, я о нём даже не подумал! Вот что значит, коллективный разум и “век живи — век учись”.

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

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

      Вот такую функцию полезно будет добавить в Triceps. Если со сканера приходит неизвестный штрих, не игнорировать его, а добавлять и как-то помечать, мол, не знаю, что это. Или в какой-нибудь специальный буфер такие штрихи складывать, чтобы потом отдельно с ними поработать.

      • И что делать потом с этими штрихами? Как узнать, какой это был товар и где он лежит?

  • Отправьте пожалуйста наименование сканера, и рекомендации если есть.

    • Ссылку на железку отправил в личку.

      По поводу рекомендаций, тут всё стандартно: Номенклатура должна быть с присвоенными штрихами, по одной полке дважды не проходить, пользоваться документом “Корректировка остатков”, после инвентаризации попросить Трицепс вычислить разницу. Далее может оказаться, что часть товара является просто пересортом (например, вместо одного масляного фильтра списали другой), это не является недостачей.

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

        • Не забывайте и главную рекомендацию: почаще читайте и перечитывайте этот блог :-)!

  • Макар, здравствуйте! Только что прочитал вашу статью “Инвентаризация склада ручным сканером”! Спасибо за статью – очень полезно и познавательно! Но сразу возник вопрос – какой сканер вы использовали?