Jak korzystać z aplikacji produkcyjnych w środowiskach o dużym zróżnicowaniu
  • 04 Nov 2023
  • 7 Minuty do przeczytania
  • Współtwórcy

Jak korzystać z aplikacji produkcyjnych w środowiskach o dużym zróżnicowaniu


Article Summary

Jak korzystać z aplikacji produkcyjnych w środowiskach o dużej mieszance

Dowiedz się, jak skonfigurować instrukcje pracy w środowisku o wysokiej mieszance z Tulip.

W tym przewodniku dowiesz się...

  • Jak połączyć funkcje Tulip, aby dopasować je do środowiska o wysokim stopniu zmieszania.
  • Zalety i wady każdego podejścia do obsługi zmienności w systemie Tulip.

Czy zarządzasz setkami jednostek SKU na hali produkcyjnej? A może masz szereg procesów, które są ponownie wykorzystywane w wielu liniach produktów?

W tym przewodniku omówimy wszystkie różne sposoby, w jakie Tulip może pomóc w radzeniu sobie z dużą zmiennością produktów.

Istnieje wiele czynników, które mogą stworzyć "środowisko wysokiej mieszanki", więc nie ma jednego narzędzia lub funkcji w Tulip, które mogłyby objąć wszystkie scenariusze wysokiej mieszanki. Zamiast tego należy połączyć wiele funkcji, w zależności od sytuacji. Kluczowe czynniki obejmują

  • Liczba podłączonych urządzeń
  • Różnice między SKU
  • Wymagania analityczne dla danych Tulip
  • Czy istnieją "rodziny" produktów

Ogólnie rzecz biorąc, istnieje 5 różnych sposobów obsługi dużej liczby produktów:

  • Aplikacje: Tworzenie wyspecjalizowanych aplikacji dla każdego produktu lub każdej rodziny produktów.
  • Kroki: Tworzenie różnych kombinacji grup kroków
  • Tabele: Dynamiczne ładowanie danych instrukcji roboczych z tabel bez konieczności tworzenia wielu kroków.
  • Wyzwalacze: Używanie instrukcji "If" lub konkatenacji ciągów znaków do obsługi setek kombinacji
  • SQL: Jeśli w przeszłości pisałeś SQL, możesz użyć funkcji Connector do pracy z zewnętrzną bazą danych SQL.

Oto kilka strategii, których można użyć z każdą z tych funkcji.

Uwaga: Ten przewodnik jest przeznaczony dla użytkowników Tulip z pewnym doświadczeniem w tworzeniu aplikacji. Jeśli jeszcze nie tworzyłeś aplikacji, powinieneś zacząć od Tulip Basics

Aplikacje

Istnieją dwa sposoby wykorzystania wielu aplikacji do zarządzania złożonością.

Pierwszym sposobem jest utworzenie oddzielnej aplikacji dla każdego produktu lub SKU i użycie jednej aplikacji routingu do automatycznego wysyłania operatorów do właściwej aplikacji. Działa to dobrze, jeśli produkty na hali mają ograniczone nakładanie się instrukcji roboczych.

Oto pełny przewodnik po aplikacjach do routingu.

Aby to osiągnąć, należy utworzyć jednoetapową aplikację o nazwie "Routing". Może ona domyślnie działać na każdej stacji na hali. Gdy operator rozpoczyna nowe zlecenie pracy, może je zeskanować i zostać automatycznie przekierowany do właściwej aplikacji.

Krok może wyglądać tak, jak ten krok z terminala Tulip

Następnie można napisać serię instrukcji "Jeśli" w jednym wyzwalaczu na kroku, aby skierować operatorów do właściwego zestawu instrukcji.

Oto jak wyglądałaby instrukcja "If" dla produktu o SKU "1A2B3X4D".

Stanowi to wyzwanie - jeśli operator zeskanuje kod kreskowy w aplikacji routingu, będziesz musiał znaleźć sposób na przekazanie tych danych do następnej aplikacji. Skorzystaj z tego przewodnika, aby dowiedzieć się, jak przekazywać dane między aplikacjami.

Następnie możesz dołączyć jakieś potwierdzenie na początku każdej aplikacji, aby upewnić się, że operator nie pomylił SKU i nie trafił do niewłaściwej aplikacji.

Duplikowanie aplikacji z kompleksowym zestawem instrukcji

Możesz także użyć podejścia "wielu aplikacji", gdy wszystkie aplikacje używają podzbioru serii kroków. Działa to, gdy istnieje wiele wspólnych kroków między produktami.

Najpierw należy utworzyć jedną aplikację "General Template", która zawiera wszystkie kroki używane przez wiele produktów lub jednostek SKU. Następnie, dla każdego odrębnego produktu, należy powielić aplik ację i wyciąć wszystkie kroki, które nie są istotne dla tego konkretnego produktu.

Te strategie oparte na aplikacjach są łatwe w zarządzaniu dla wszystkich nowych użytkowników Tulip, ponieważ wszystkie wyzwalacze są proste. Wzorzec "jedna aplikacja do jednego produktu" jest łatwy do zrozumienia. Jeśli jednak chcesz zmienić projekt poszczególnych kroków, takie podejście będzie wymagało ponownego wykonania kroku w każdej aplikacji.

Kroki/grupy kroków

Poszczególne kroki i grupy kroków można również uczynić bardziej dynamicznymi, jeśli produkty mają podobne instrukcje pracy. Zamiast tworzyć wiele aplikacji, można utworzyć wiele grup kroków w ramach jednej aplikacji i kierować operatorów przez grupy kroków za pomocą logiki wyzwalania.

Nadal możesz chcieć dołączyć krok skanowania kodu kreskowego, jak w przykładzie w sekcji powyżej. Następnie będziesz chciał przechowywać dane kodu kreskowego jako zmienną, aby powiązać kod kreskowy z ukończeniem aplikacji i skierować operatora do właściwego kroku.

Ponieważ dane kodu kreskowego są teraz przechowywane w aplikacji, można również odwołać się do nich później, jeśli chcesz ponownie połączyć instrukcje pracy na wiele sposobów za pomocą wyzwalaczy.

Ułatwia to aktualizację wszystkich kroków instrukcji pracy w jednym miejscu z poziomu głównego interfejsu Tulip. Jeśli jednak masz setki lub tysiące jednostek SKU, możesz chcieć jeszcze łatwiej aktualizować kroki w czasie rzeczywistym, aby główni operatorzy lub przełożeni mogli wprowadzać zmiany w czasie rzeczywistym.

Aby aktualizować w czasie rzeczywistym każdy zestaw instrukcji roboczych, można użyć kroku formularza z kilkoma polami. Wyobraźmy sobie, że każdy krok instrukcji pracy ma następujące pola:

  1. Główny nagłówek instrukcji
  2. Szczegóły instrukcji
  3. Obraz
  4. Uwagi specjalne

Może to wyglądać mniej więcej tak:

Aby aktualizować te instrukcje w czasie rzeczywistym, można użyć takiego kroku formularza:

Następnie można przechowywać wyniki w tabeli lub bazie danych SQL i pobierać je dynamicznie, gdy operator przechodzi przez aplikację w oparciu o pole "Step Number". Oto jak to zrobić.

Tabele

Funkcja Tables aplikacji Tulip umożliwia tworzenie bazy danych z danymi aplikacji lub zestawami instrukcji bez pisania jakiegokolwiek kodu. Można ich używać do instrukcji, jeśli:

  1. Wszystkie produkty mają różne zestawy instrukcji.
  2. Produkty mają szereg wspólnych procesów, takich jak odlewanie, czyszczenie lub audyt, a zmienność w ramach tych procesów jest niewielka lub żadna.

Ponadto każdy krok w instrukcji musi mieć tę samą treść, np. jeden nagłówek, jeden zestaw szczegółów i jeden obraz.

Jeśli instrukcje robocze nie należą do żadnej z tych dwóch kategorii, tabele mogą nie być dobrym rozwiązaniem.

Jeśli jednak są one zgodne z jednym z tych wzorców, można utworzyć aplikację w jednym kroku, która dynamicznie ładuje instrukcje pracy z tabeli.

Najpierw utwórz tabelę z polami jak poniżej:

Następnie dodaj co najmniej jeden rekord, na przykład:

Następnie utwórz aplikację i utwórz jeden krok, który dynamicznie załaduje wszystkie instrukcje robocze. Użyjesz widżetu tekstowego "Table Record", aby zmienić tekst i obraz(y) na kroku, gdy tylko operator będzie gotowy do postępu.

Oto przykładowy układ, który wykorzystuje pola z widżetu "Table Record":

Następnie, gdy operator naciśnie przycisk "Dalej", nie będziesz chciał przejść do następnego kroku. Zamiast tego będziesz chciał napisać logikę, aby załadowany został następny rekord w tabeli. Musisz użyć zmiennej, która będzie zwiększana po każdym naciśnięciu przycisku w celu zmiany rekordu. Na przykład tak:

WHEN

  • "Przycisk został naciśnięty"

THEN

  • "Manipulacja danymi" "Przyrost wartości" "licznik"
  • By: "Wartość statyczna" "Liczba" "1"
  • "Rekordy tabeli" "Załaduj rekord"
  • By ID "Static Value" "text" (zmienna zawierająca SKU) + (zmienna licznika) into: (symbol zastępczy rekordu)

Będziesz więc potrzebował jednej zmiennej, która zawiera aktywną jednostkę SKU, a drugiej, która konsekwentnie zlicza w górę w miarę postępów operatora.

Takie podejście ułatwia utrzymanie całej zawartości w wielu zestawach instrukcji roboczych. Działa dobrze, jeśli instrukcje mają spójny format, ale jeśli masz wiele rodzajów kroków w instrukcjach, prawdopodobnie będziesz chciał użyć innej metody.

Korzystanie z logiki wyzwalania

W prawie każdym scenariuszu opisanym powyżej konieczne będzie utworzenie niestandardowych wyzwalaczy, aby pomyślnie zbudować aplikację (aplikacje). Pokazaliśmy już proste, takie jak

  • Zwiększanie zmiennej licznika
  • Przejście do nowej aplikacji
  • Przejście do innej grupy kroków
  • Zapisanie numeru kodu kreskowego

Oto kilka bardziej zaawansowanych wzorców, które mogą pojawić się w każdym z powyższych wzorców tworzenia aplikacji:

Seria instrukcji IF

Załóżmy, że masz 50 różnych aktywnych jednostek SKU w swojej fabryce. Każdy z nich ma oddzielny zestaw instrukcji roboczych. Jeśli chcesz utworzyć "aplikację routingu", która automatycznie wysyła operatorów do właściwego zestawu instrukcji, będziesz musiał utworzyć 50 instrukcji "if" z różnymi numerami SKU. Wszystko to można zrobić w jednym wyzwalaczu. Chociaż wymaga to ręcznego tworzenia instrukcji if/then, pozwala to każdemu kliknąć w wyzwalacz i łatwo zrozumieć, co się dzieje.

Oto przykład jednej instrukcji if/then:

String Concatenation

Konkatenacja oznacza po prostu "połączenie dwóch ciągów znaków". Ponieważ identyfikatory rekordów tabeli są ciągami znaków, możesz wykazać się kreatywnością, używając identyfikatora ciągu znaków, aby dostarczyć operatorowi odpowiednią zawartość.

Załóżmy, że masz proces czyszczenia, który jest wspólny dla wielu linii produktów. Składa się on z 5 kroków. Możesz nie chcieć przebudowywać tych samych instrukcji czyszczenia w wielu aplikacjach, ponieważ będzie to trudne do utrzymania.

Zamiast tego można utworzyć tabelę o nazwie "Common Procedures", która zawiera instrukcje dotyczące wspólnych procesów. Następnie możesz użyć identyfikatorów rekordów, takich jak "Cleaning-1" i "Cleaning-2", aby pokazać serię kroków wokół jednego procesu.

Następnie, w edytorze wyzwalaczy, należy połączyć określony proces ze zmienną, która zwiększa się z każdym krokiem do przodu. Oto przykład z sekcji "Tabele" powyżej dotyczący łączenia dwóch zmiennych w polu "Wartość statyczna:Tekst".

W przypadku konkatenacji ciągów znaków możesz nie wiedzieć, kiedy przestać. Innymi słowy, jeśli w procesie czyszczenia jest 5 kroków, musisz przejść do innego kroku, gdy licznik osiągnie "6". Aby to osiągnąć, można użyć instrukcji "If" w wyzwalaczu, aby najpierw sprawdzić, czy krok istnieje.

Na przykład

IF

  • "Tabela" "dynamic_work_instructions" "ma rekord z ID"
  • "Wartość statyczna" "tekst" (wstaw tutaj zawartość dynamiczną)

Używanie SQL

Jeśli masz już doświadczenie w tworzeniu baz danych SQL, możesz również utworzyć konektor SQL, aby dynamicznie ładować tekst i obrazy z bazy danych SQL. Umożliwi to utworzenie szablonu w jednym kroku i załadowanie do niego danych, podobnie jak w powyższym przykładzie z tabelami.

Działa to dobrze, jeśli masz skomplikowane wymagania dotyczące ładowania danych. Skontaktuj się z przedstawicielem Tulip, jeśli planujesz skorzystać z tego podejścia, a chętnie doradzimy Ci, jak skonfigurować bazę danych.

Więcej informacji


Czy znalazłeś to, czego szukałeś?

Możesz również udać się na stronę community.tulip.co, aby opublikować swoje pytanie lub sprawdzić, czy inni mieli do czynienia z podobnym pytaniem!


Czy ten artykuł był pomocny?