![]() |
[img]https://content.screencast.com/users/Che66/folders/Capture/media/5ca9bc22-10d1-410b-9851-e7e2d7089f68/LWR_Recording.png[/img] [img]https://content.screencast.com/users/Che66/folders/Capture/media/674fc668-3d38-4557-bb92-7dca9f12fbc2/LWR_Recording.png[/img] |
[img]https://content.screencast.com/users/Che66/folders/Capture/media/a6cb197b-f235-4366-8b23-076568d5844c/LWR_Recording.png[/img] |
[img]https://content.screencast.com/users/Che66/folders/Capture/media/ae5dc8fe-bdfc-4eef-94b4-a067329e71c0/LWR_Recording.png[/img] |
[img]https://content.screencast.com/users/Che66/folders/Capture/media/bbbcadf5-88cb-4e4c-9399-1dacd27daa44/LWR_Recording.png[/img] |
Подсчет можно вести - сканированием ШК (штук, упаковок итд) как по отдельности каждый вид упаковки, так и врперемешку - вводом ШК вручную; - вводом количества вручную * например, 100 - 100 единиц счета * например, 20пробел100 - 20*100=2000 единиц счета * например, 11пробел20пробел4 - 21*20*4=880 единиц счета (11 слоев по 20x4 в слое) |
Поддерживается - работа без ШК - работа с неуникальными ШК (штуки и коробки одного маркированы штрихкодом штуки); - работа с разными ШК на упаковках одного товара - работа с неуникальными ШК разных товаров - работа с неуникальными артикулами разных товаров (если работа без ШК) |
Переключение на другую упаковку товара при сканировании штук и разных упаковок товара выполняется "прозрачно". Поддерживается ручное переключение на упаковку товара (если нет ШК) - курсором по списку или вводом команды типа .40 - точка40 = перейти на упаковку с вложенностью 40шт. Контролируется ввод левых упаковок |
Поддерживается "смешанный режим" ввода количества, например сначала ".40" потом "200" = перейти на упаковку "40", посчитано 200 упаковок . можно сразу ".40 200" - перейти на упаковку 40, 200 упаковок или ".40 11 10 5" - перейти на упаковку 40, посчитано 11*10*5 = 550 упаковок На клавиатуре ТСД кнопка "пробел" - большая, ею удобно вводить типа "11 10 5" - при вводе пробелы сразу подменяются на "11*10*5" Отлавливается и "блокируется" неправильный ввод, типа указания нецифровых символов. переход на штучный счет - .1 точка1 |
На приемке контролируется соблюдение правил приемки (настраиваемые) [img]https://content.screencast.com/users/Che66/folders/Capture/media/a2985303-cd81-48b4-8ef8-aab689929f52/LWR_Recording.png[/img] [img]https://content.screencast.com/users/Che66/folders/Capture/media/a09dfd3e-5fbb-413b-bbe2-2557044b2409/LWR_Recording.png[/img] |
Приведены выше основные "контрольные" проверки, по факту - их больше. Отлавливаются по возможности все отклонения от установленных "правил приемки". Задача - не допустить ошибок на приемке, чтобы потом это не повылазило на размещении по местам хранения и далее как снежный ком.. по цепочке... |
Сегодня сходил в контору, поменял моторола МС3090 на моторола 9190 - совсем другое дело! Пичалька только одна - жкран 480-640, а у меня формочки под размер в два раза меньше. |
Пока буду ваять под старый размер 240-320, главное - алгоритмы, формы перерисовать - 1-2 дня займет, тупо помайстрячить. |
Проверил мотороловские ТСД 9190, экраны такого же размера, но читабельность получше, за счет 480-640, подогнал пару форм чтобы посмотреть |
Сегодня много думал. Понравилось. Решил думать еще ;-). Алгоритм размещения с приемки. наверное, самый сложный алгоритм получится, много "эмпирических" правил, надо придумывать как их формализовать, чтобы решение получилось более-менее общее... |
по категориям товара: булки к булкам, яйки к яйкам. не смешивая теплое с мягким. |
55-Зелёный тролль > типа да. |
Сегодня наконец допилил основу алгоритма размещения - контроль по объему/весу, возможностьотключать расчет/контроль веса; - расчет вместимости по ВГХ и по количественному показателю; - ограничения/настройки на количество рабочих ячеек, в скольки может лежать артикул; - ограничения/настройки на микс артикулов в одной ячейке (что-то может считаться в ячейке по ВГХ, что-то по вместимости) - локации товара (привязка товара к конкретным ячейкам), настраивается; - размещение по приоритетам - в локации, к такому же товару итд. - куча контролей/отбраковок... .. и еще мало-мало всякого... .. и все это может в разных сочетаниях... .. типа колов ячеек для товара = 5, а локаций задано 2 - значит 3 ячейки для "свободного размещения" (динамическое назначение ячеек); .. в итоге сказать почему система положила в эту ячейку - с ходу и не скажешь... ;-) |
.. раза три рефакторил алгоритм и затык был на сложном сочетании условий/ситуаций. сеголдня наконец запилил. погонял на разных вариантах - получается ожидаемо. |
Сложнее всего во всех этих пилениях "велосипедов" для таких систем - то. что вариативность очень сильная разных ситуаций и по сути 95% алгоритмов это "перебор" и скрещивание кучи таблиц. Это я еще туда не приделал ограничения по доступу персонала к зонам, но бюджет мелкий, буду без этого делать. |
Завтра надо допилить алгоритм - распределение количества размещаемого товара по "приоритетам" доступных ячеек для размещения... Это по рабочим ячейкам, а по ячейкам резервного хранения - чуть попроще - заводские коробки мелкоштучки кидать в резервные ячейки привязанные по рейтингу к ячейкам где уже лежит этот товар в рабочих ячейках, а все что не влезло - куда влезет в рамках этого же "прохода". как-то так... завтрашний день уйдет на это, и потом еще день на собственно диалог размещения на ТСД, это уже попроще - взять насчитанное из "контейнера" и показать персоналу. а все что по той или иной причине не влезет в ячейки по плану - размещение "в свободном режиме", типа - жмак по товару - система показывает где есть ячейки где локации этого товара или лежит этот товар или свободные ячейки. и человек сам уэе раскидает если что-то планом плохо посчиталось. |
все проблемы - в недсотатке исходных данных или их низком качестве. На всех проектах и больших и малых твержу об этом заказ-чикам. и все время херня, пока сами в это не упрутся. посмотрим что будет на этом проекте. |
.. ни весов, ни объемов, ни штрихкодов... а собрать это все - это же не за 5 минут... |
Продолжаю "пилить" алгоритм размещения, сильно заковыристый выходит, туплю... трудность в том, что должен давать адекватное распределение товара по ячейкам хранения в широком диапазоне входных параметров, регулирующих правила размещения... хочется чтобы алгоритм был достаточно универсален на "любой" вариант размещения... |
64-Gosha > это всего лишь недоработки алгоритмов. в нормальной системе размещение отрабатывает в подавляющем количестве случаев без проблем. там где с размещением проблемы в автомате - почти всегда на складе бардак в куче моментов и нежелание/невозможность это привести в порядок. Как пример - "мой" склад - уже третий склад поменяли - везде размещение на автомате персонал делает. Насчет - живучее - ну да, может быть. когда ЛПР квалифицированный на складе живет и вручную все разруливает. Впрочем, склады разные бывают как и регламенты работы на них. А то что я в этой ветке описываю - на супер-пуперность не претендует. Я достаточно хорошо себе представляю что стоит сделать такую супер-пуперность. А в размещении в этом "проекте" - если справлюсь - полюбасику будет вариант "свободного размещения" как ты написал, для возможности ручного "закрытия" если система не разрулила. |
64-Gosha > "что решается административно - не надо решать программно." Программно надо решать чисто технические вопросы. размещение - чисто технический вопрос. Упирается в 1. достаточность и правильность исходных данных (с которыми проблемы это в порядке вещей) 2. соответствие склада товаропотоку (что тоже проблема) 3. собственно сами алгоритмы. |
Кстати, по моим наблюдениям на нескольких проектах - вполне хватило бы простой системы регистрации "в какой ячейке лежит какой артикул" (такой системе как и прочим присущи свои недостатки, но она проста и покрывает 80% процентов потребностей склада. а тои больше). Но даже такой системы собственники бизнеса/ответственные не могли организовать СВОИМИ силами. |
Вау! Сделал почти универсальный алгоритм размещения! Завтра подпилить промежуточную передачу параметров между разными шагами процесса и можно дизайнерить процесс на ТСД... |
Конечно, разработка через тестирование хорошая штука, но ресурсоемкая что капец. Полтора дня суммарно ушло на просто вдумчиво писал код и проигрывал его на сигнальных данных. И то, пару раз тупил - для того, чтобы понять что посчитано правильно - надо понять что посчитано правильно! ;-) а пока не протащишь расчет по всему телу алгоритма - фиг поймешь, глядя на входные и выходные данные - соответствуют (правильные) они друг другу или нет. Только самые глобальные настройки порождают уже 8 вариантов. а с учетом того, что размещение одного товара влияет на размещение следующего товара, при этом разные варианты количества миксов товара в ячейке/количества ячеек для товара - и прочие настройки - просчитать около полсусотни возможных ОСНОВНЫХ комбинаций - это можно застрелиться. |
так что протестил только простейшие варианты численных расчетов. а "комбинацию параметров" - сидел сильно думал. в итоге лапшеразвесистый алгоритм/код превратился в достаточно простой, но нихрена не очевидный код... ;-) |
Погонял на паре "сложных" тестов, вроде норм... Продакшен - покажет.. ;-) |
Погонял еще тесты, вроде норм. собственно сам план размещения насчитывает вроде норм. завтра буду пилить интерфейс для ТСД. |
Недооценил объем работ. все как обычно. на ПИ умножить надо. Адски программирую. много легаси-кода, потихоньку вычищаю, но будет на технический долг скорее всего... |
Вообще разновидностей экранов не сильно много, но внутри некоторые алгоритмы очень витеиватые получаются, ввиду отсутсвия времени на глубокую проработку по коду... |
Я попробовал в свое время на терминалах моторола mc32n0, не понравилось мне открывать еще терминальную сессию RDP на нем. попробовал запилить прогу на C# и запускать ее прямо на этом терминале , благо ОС позволяет. подобрал библиотеку для прямого доступа к MS SQL, и все очень прекрасно заработало, применил sdk моторола для доступа к сканеру терминала, datawedge стало также не нужным ( иногда не запускалось на терминале )... правда пришлось поднять независимую базу на ms sql специальную ( не 1С ) , но из 1с спокойно к ней обращаюсь и на запись и чтение... |
75-СпецХ > ну так ты программист, а я - девелопер... ;-) |
Пишу сейчас инвентаризацию по ТСД. инвент бывает 1- произвольный (тупо жмакнули по ячейке) 2- по заданию, когда указан адрес+товар (считать конкретный адрес в ячейке) 3- по заданию, когда указан только адрес (считать всю ячейку) 4- в общем случае 2 и 3 на один адрес м.б. одновременно После "входа в ячейку" поддерживается переключение из режима "считать всё" в режим "считать товар". В режиме "считать товар в ячейке" допускаетяс только просчет товаров, присутсвующих в списке товаров ячейки (или товаров указанных в задании на эту ячейку) Для работы в тяжелых условиях (при отсутствии ШК товаров) в список товаров ячейки включаются - числящиеся на остатке в ячейке - указанные в локациях для данной ячейки (статичная привязка товара к ячейке) Поддерживается идентификация товаров-дублей по артикулу/шк Контроль при окончании инвента ячейки на наличие непросчитанных товаров, блокировка выхода с подтверждением Ячейку можно идентфицировать сканом или вводом цифрового кода ячейки или выбором из списка ячеек Поддерживается очередность инвента - в списке заданий в самом верху - ячейки выданные на инвент конкретному сотруднику. Ячейки выданные в задание конкретному сотру - другой сотр взять не может. и еще всякого мало-мало... |
УФ! Сделал полностью инвентаризацию на ТСД. Получилось весьма кузявенько. Допилил мало-мало всяких плюшек для уменьшения жмаканий по клавишам ТСД при вводе количеств. типа при инвенте ячейки подсказывается ожидаемое (плановое) количество - можно посчитать товар и тупо подтвердить это количество сканом ячейки. Можно часть количества ввести с клавиатуры, оставшееся - подтвердить сканом ячейки. Считать можно штуками и производными упаковками - как вручную, так и сканами по соотв.единицам-упаковкам. и всякого еще мало-мало.. |
Делаю отбор (сборка товара в заказы на отгрузку). Поддерживается сборка по зонам, мультипикинг (кластерный отбор еще называют) - когда за один проход по ячейкам собирается несколько заказов каждый в свою "тару". |
Из [b]Главного меню[/b] попадаем в [b]ОТБОР[/b] [img]https://content.screencast.com/users/Che66/folders/Capture/media/94e4a36f-0c29-459d-b50d-2462d7556ee1/LWR_Recording.png[/img] |
По каждой зоне показывается количество заданий на сборку. Зоны персонал выбирает самостоятельно. если людей достаточно - то каждый бегает по совей зоне почти постоянно, если мало - собирает по зонам последовательно. . Выбрали нужную зону |
Текущее время: 18:00. Часовой пояс GMT +3. |