- Распечатать
Как использовать производственные приложения в условиях высокой проходимости
Как использовать производственные приложения в условиях высокой концентрации персонала
Узнайте, как с помощью Tulip можно настроить рабочие инструкции в среде с высокой степенью смешивания.
В этом руководстве вы узнаете...
- Как комбинировать функции Tulip, чтобы они подходили для работы в условиях высокой степени смешивания.
- Плюсы и минусы каждого подхода к обработке вариаций в Tulip.
Вы управляете сотнями SKU в своем цехе? Или у вас есть ряд процессов, которые повторно используются в нескольких линейках продукции?
В этом руководстве рассматриваются различные способы, с помощью которых Tulip может помочь вам справиться с высокой вариабельностью продукции.
Существует множество факторов, которые могут создать "среду с высоким содержанием смеси", поэтому в Tulip нет единого инструмента или функции, которые могли бы охватить все сценарии с высоким содержанием смеси. Вместо этого в зависимости от ситуации необходимо комбинировать несколько функций. К ключевым факторам относятся:
- Количество подключенных устройств
- Различия между SKU
- Требования к аналитике данных Tulip
- Наличие "семейств" продуктов.
В целом, существует 5 различных способов обработки большого количества продуктов:
- Приложения: Создание специализированных приложений для каждого продукта или каждого семейства продуктов.
- Шаги: Создание различных комбинаций групп шагов
- Таблицы: Динамическая загрузка данных рабочих инструкций из таблиц без создания нескольких шагов
- Триггеры: Использование операторов "Если" или конкатенации строк для обработки сотен комбинаций
- SQL: Если в прошлом вы писали на языке SQL, то можете использовать функции Connector для работы с внешней базой данных SQL.
Ниже приведены некоторые стратегии, которые можно использовать при работе с каждой из этих функций.
Примечание: Данное руководство предназначено для пользователей Tulip, имеющих некоторый опыт создания приложений. Если вы еще не создавали приложений, вам следует начать с "Основ работы с Tulip".
Приложения
Существует два способа использования нескольких приложений для управления сложностью.
Первый способ - создать отдельное приложение для каждого продукта или SKU и использовать одно приложение для маршрутизации, чтобы автоматически направлять операторов в нужное приложение. Это хорошо работает, если продукты на вашем этаже имеют ограниченное количество дублирующих друг друга рабочих инструкций.
Здесь представлено полное руководство по приложениям для маршрутизации.
Для достижения этой цели необходимо создать одноэтапное приложение под названием "Маршрутизация". По умолчанию оно может работать на каждой станции на вашем этаже. Когда оператор начинает новый рабочий заказ, он может отсканировать его и автоматически перейти к нужному приложению.
Шаг может выглядеть как этот шаг из терминала Tulip.
Затем в одном триггере на шаге можно написать серию операторов "If", чтобы направить операторов к нужному набору инструкций.
Вот как будет выглядеть оператор "If" для продукта с SKU "1A2B3X4D".
В связи с этим возникает проблема: если оператор сканирует штрихкод в приложении маршрутизации, необходимо найти способ передать эти данные в следующее приложение. Воспользуйтесь этим руководством, чтобы узнать, как передавать данные между приложениями.
В начале каждого приложения можно включить подтверждение, чтобы убедиться, что оператор не ошибся в SKU и не попал в неправильное приложение.
Дублирование приложения с полным набором инструкций
Можно также использовать подход "нескольких приложений", когда во всех приложениях используется подмножество ряда шагов. Это работает, когда между продуктами есть много общих шагов.
Сначала необходимо создать одно приложение "Общий шаблон", содержащее все шаги, которые используются в нескольких продуктах или SKU. Затем для каждого отдельного продукта продублируйте это приложение и вырежьте из него все шаги, не имеющие отношения к данному продукту.
Эти стратегии, основанные на использовании приложений, просты в управлении для всех новых пользователей Tulip, поскольку все триггеры просты. Схема "одно приложение - один продукт" проста для понимания. Однако если вы захотите изменить дизайн отдельных шагов, то при таком подходе вам придется переделывать шаг в каждом отдельном приложении.
Шаги/группы шагов
Отдельные шаги и группы шагов также можно сделать более динамичными, если ваши продукты имеют схожие рабочие инструкции. Вместо того чтобы создавать несколько приложений, можно создать множество групп шагов в рамках одного приложения и направлять операторов по группам шагов с помощью логики срабатывания.
Возможно, вам захочется включить этап сканирования штрихкода, как в примере, приведенном в разделе выше. Тогда данные штрихкода нужно будет хранить как переменную, чтобы привязать штрихкод к завершению работы приложения и направить оператора на нужный шаг.
Поскольку данные штрих-кода теперь хранятся в приложении, на них можно ссылаться и в дальнейшем, если необходимо перекомбинировать рабочие инструкции различными способами с помощью триггеров.
Это позволяет легко обновлять все шаги рабочих инструкций в одном месте из основного интерфейса Tulip. Однако если у вас сотни или тысячи SKU, то, возможно, вам захочется еще больше упростить обновление шагов в режиме реального времени, чтобы ведущие операторы или супервайзеры могли вносить изменения в режиме реального времени.
Для обновления каждого набора рабочих инструкций в режиме реального времени можно использовать форму Шаг с несколькими полями. Представим, что каждый шаг рабочей инструкции содержит следующие поля:
- Заголовок основной инструкции
- Детали инструкции
- Изображение
- Специальные примечания
Это может выглядеть примерно так:
Для обновления этих инструкций в режиме реального времени можно использовать форму Шаг, например, такую:
Затем можно сохранить результаты в таблице или базе данных SQL и получать их динамически, когда оператор проходит через приложение, основываясь на поле "Номер шага". Вот как это можно сделать.
Таблицы
Функция Tables в Tulip позволяет создать базу данных с данными приложения или наборами инструкций без написания кода. Вы можете использовать их для инструкций, если:
- Все продукты имеют различные наборы инструкций.
- Продукты имеют ряд общих процессов, таких как литье, очистка или аудит, и в рамках этих процессов практически отсутствует вариативность.
Кроме того, каждый шаг в инструкции должен иметь одинаковое содержание, например, один заголовок, один набор деталей и одно изображение.
Если ваши рабочие инструкции не подпадают ни под одну из этих двух категорий, то таблицы могут не подойти.
Однако если они соответствуют одной из этих категорий, то можно создать приложение, которое будет динамически загружать инструкции из таблицы всего за один шаг.
Сначала создайте таблицу с полями, как показано ниже:
Затем добавьте хотя бы одну запись, например:
Затем создайте приложение и создайте один шаг, который будет динамически загружать все рабочие инструкции. Вы будете использовать текстовый виджет "Запись таблицы" для изменения текста и изображения (изображений) на шаге, как только оператор будет готов к выполнению работы.
Ниже приведен пример макета, в котором используются поля из виджета "Запись таблицы":
Затем, когда оператор нажимает кнопку "Далее", вы не хотите переходить к следующему шагу. Вместо этого необходимо написать логику, при которой загружается следующая запись в таблице. Для этого необходимо использовать переменную, которая будет инкрементироваться при каждом нажатии кнопки для смены записи. Например, так:
WHEN
- "Кнопка нажата"
THEN
- "Манипуляция данными" "Инкремент значения" "счетчик"
- By: "Статическое значение" "Число" "1"
- "Записи в таблице" "Загрузить запись"
- By ID "Static Value" "text" (переменная, содержащая SKU) + (переменная счетчика) into: (placeholder записи)
Таким образом, вам понадобится одна переменная, содержащая активный SKU, и другая, которая будет последовательно вести подсчет по мере продвижения оператора.
Такой подход упрощает поддержку всего содержимого в нескольких наборах рабочих инструкций. Он хорошо работает, если инструкции имеют постоянный формат, но если в инструкциях есть несколько типов шагов, то, вероятно, следует использовать другой метод.
Использование логики триггеров
Почти в каждом сценарии, описанном выше, для успешного создания приложения (приложений) необходимо создать пользовательские триггеры. Мы уже показывали простые из них, такие как:
- Увеличение переменной счетчика
- Переход к новому приложению
- Переход к другой группе шагов
- Сохранить номер штрих-кода
Вот несколько более сложных шаблонов, которые могут появиться в любом из приведенных выше шаблонов построения приложений:
Серия выражений IF
Предположим, что на вашем предприятии имеется 50 различных активных SKU. Каждый из них имеет свой набор рабочих инструкций. Если вы хотите создать "приложение для маршрутизации", которое автоматически направляет операторов к нужному набору инструкций, вам потребуется создать 50 утверждений "if" с различными номерами SKU. Все это можно сделать в одном триггере. Хотя это требует создания множества утверждений "если/то" вручную, это позволяет любому человеку зайти в триггер и легко понять, что происходит.
Вот пример одного оператора if/then:
Конкатенация строк
Конкатенация означает просто "объединение двух строк". Поскольку идентификаторы записей таблицы являются строками, вы можете творчески подойти к использованию идентификатора строки для выдачи оператору нужного содержимого.
Допустим, у вас есть процесс очистки, который является общим для нескольких линий продукции. Он состоит из 5 этапов. Возможно, вы не захотите перестраивать одни и те же инструкции по очистке в нескольких приложениях, поскольку это будет сложно поддерживать.
Вместо этого можно создать таблицу под названием "Общие процедуры", в которую будут включены инструкции по общим процессам. Затем можно использовать идентификаторы записей типа "Уборка-1" и "Уборка-2", чтобы показать серию шагов в рамках одного процесса.
Затем в редакторе триггеров вы объедините конкретный процесс с переменной, которая увеличивается с каждым шагом. Вот пример из раздела "Таблицы", в котором мы объединили две переменные в поле "Static Value:Text".
При конкатенации строк вы можете не знать, когда остановиться. Другими словами, если в процессе очистки имеется 5 шагов, то необходимо перейти к другому шагу, как только счетчик достигнет цифры "6". Для этого можно использовать оператор "If" в триггере, чтобы сначала проверить, существует ли шаг.
Например:
IF
- "Таблица" "dynamic_work_instructions" "имеет запись с ID"
- "Static Value" "text" (вставьте сюда динамическое содержимое)
Использование SQL
Если у вас есть опыт создания баз данных SQL, то вы также можете создать SQL-коннектор для динамической загрузки текста и изображений из базы данных SQL. Это позволит создать один шаблон и загрузить в него данные, как в приведенном выше примере с таблицами.
Это хорошо работает, если у вас есть сложные требования к загрузке данных. Если вы планируете использовать такой подход, свяжитесь с представителем компании Tulip, и мы с удовольствием проконсультируем вас по настройке базы данных.
Дальнейшее чтение
- Как создавать цифровые рабочие инструкции в Tulip
- Как использовать терминал Tulip для создания масштабируемых рабочих инструкций
Вы нашли то, что искали?
Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!