question

Łukasz E avatar image
0 Likes"
Łukasz E asked Connor A commented

Processflow - pull from globaltable

processflow.fsmHello,

I' got a model - 2 item Types.

Product enters the conveyor - product stops on DP (and it has to be resumed by an operator which walks to the control panel after the item arrives). - how is it possible?

After that the product stops at the end of conveyor, then the operator should check if any of the 3 machines is free, if so he should check if anyone need this product, if so he should put the product on this machine, if don't he should put the product to the right power and free conveyor (based on a product Type). If the machine finishes the process, operator should unload it, and machine should pull the next item type from the right plan, so the operator should load the product from the right conveyor or wait for the arrival of this Type.

How to do it correctly? Should I use the list? Because i don't know how to and I will have the plan in the global table.

Please, I would be really grateful!

Teoretical model in the attachment.

processflowglobal tablepullpower and free conveyorstop and resume
processflow.fsm (65.1 KiB)
· 1
5 |100000 characters needed characters left characters exceeded

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Hi @Łukasz E, was one of Krzysztof J's answers helpful? If so, please click the "Accept" button at the bottom of the one that best answers your question. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·
Krzysztof J avatar image
0 Likes"
Krzysztof J answered

Zobacz załącznik - kwestia dodania rozładunku maszyny wydaje mi się banalna, więc jej nie uwzględniałem. Należy jeszcze dołożyć jakiś warunek, który zamknie nam podbijanie etykiet jak skończy się plan produkcyjny.processflow_6.fsm


processflow-6.fsm (81.2 KiB)
5 |100000 characters needed characters left characters exceeded

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Krzysztof J avatar image
0 Likes"
Krzysztof J answered Łukasz E edited

Po kolei (English version maybe later...):

1. Produkt wjeżdża na przenośnik i generujemy token "on arrival" na naszym DP.

2. Używasz "Custom code" celem zatrzymania - jest tam wbudowana formatka "Stop/resume item on conveyor" i wybieramy akcję "Stop item"

3. Tutaj zakładam, że coś się dzieje, bo w jakimś celu zatrzymujemy ten produkt

4. Logika dla operatora - podchodzi sobie do panelu ("Travel")

5. Jak dojdzie to odpalamy ponownie "Stop/resume item on conveyor" i wybieramy tym razem akcję "Stop item"

Część z wyborem produktów z planu:

1. Zakładam, że tabele jakie są w modelu obrazują sekwencję, w jakiej mają działać procesory. Nie wiem na ile celowo tabela 1 różni się od tabel 2 i 3 swoją strukturą ale dobrze byłoby to ujednolicić (albo sekwencja, np 1122121112 albo to samo tylko w formie dwóch kolumn 121212 z qty równym 221131).

2. Jeżeli zatem dobrze rozumiem (patrz pt. 1) to sugestia jest jak dalej.

3. Każdej z maszyn dodajemy etykietę - nazwijmy ją RodzajProduktu. Można dodać trigger "On reset" aby ta wartość ustawiała się automatycznie jako pierwsza z odpowiednich tabel.

4. Na końcu przenośnika wkładamy DP i "On arrival" sprawdzamy co tam wpadło. Najlepiej zrobić sztuczną listę - dodajemy listę, w toolbox, jedno pole typu Label na którym będziemy odbijać rodzaj produktu. (Triggers -> On Arrival -> list -> push to list)

5. W Process Flow mamy strukturę jak w kolejnych punktach.

6. Zaczynamy "On arrival" na naszym DP końćzącym przenośnik.

7. Nastepnie nasze procesory tworzą grupę i zajmujemy dowolny procesor z grupy, ale: musimy wpisać na Acquire "WHERE value.RodzajProduktu = puller.item.RodzajProduktu" (etykieta na paczce musi się zgadzać z etykietą na maszynie).

8. Jak znajdzie maszynę to tutaj prosto - travel, Load, Unload itp.

9. Jak nie znadzie to na Acquire masz na samym dole "use max wait timer" i tam zaznaczasz wysłanie tokena na destynację drugą.

10. Drugą destynacją jest już po prostu odłożenie na Buf1 lub Buf2.

11. Na Buf1 i Buf2 też wypadałoby dać wpisywanie na listę, tak żeby te produkty pobierały/zajmowały maszyny. (Tutaj trzeba sprecyzować, czy pobieramy tylko z końca czy dowolny dostępny na przenośniku - determinuje to moment wpisania na listę).

12. Po każdym "process finish" na maszynie trzeba zrobić update etykiety RodzajProduktu.



· 1
5 |100000 characters needed characters left characters exceeded

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

processflow.fsmDzięki za odpowiedź.

Pierwsza część jest prosta i zrozumiała, wprowadziłem ją.

Jeśli chodzi o drugą część:

Boxy na przenośniku to pudełka i one muszą trafić na jedną z maszyn. Maszyna faktycznie pakuje wypełnienie pudełka (ale nie jest to symulowane), jedynie chodzi o to żeby wpadał odpowiedni typ pudełka w odpowiedniej kolejności.

Proces wygląda tak:

Pudełko (obojętnie czy z głównego przenośnika czy z Buf1 czy Buf2, to które dostępne) -> trafia na maszynę (maszyna ta, która dostępna, maszyna powinna być jak najkrócej bezczynna), maszyna dostaje właściwe pudełko -> trwa proces -> i po procesie operator rozładowuje maszynę i odkłada pudełko na właściwą kolejkę (unload type 1 lub 2). dlatego każda maszyna ma swój plan w formie tabeli, bo pudełko wchodzi zawsze tylko na jedną maszynę.

Nie bardzo wiem jak dodać tę kwestię Acquire "WHERE value.RodzajProduktu = puller.item.RodzajProduktu" wydaje mi się że etykiety wszystkie ogarnąłem, ale nie wiem jak to ugryźć, wtedy grupa procesorów też miała by być jako resource? Bo na maszynie może być tylko jeden produkt naraz.

Jeśli chodzi o Buf1 (Typ 1) i Buf2 (Typ 2) to są to zwykłe conveyory LIFO, jeśli maszyny są zajęte to Buf1 i Buf2 są załadowywane paczkami i ostatnia paczka, która wejdzie będzie pobierana jako pierwsza. Właśnie nie wiem czy tu musi być lista? Bo jeśli zwolni się jakaś maszyna i powiedzmy, że teraz chce paczkę Type 2, to wystarczy sprawdzić czy na Buf2 są jakieś paczki, jeśli są to pobieramy tę która weszła jako ostatnia i wkładamy na tę maszynę, a jeśli Buf2 jest pusty, no to maszyna będzie stała pusta i czekała na paczkę Typu2.


Podrzucam też trochę zaktualizowany model.

0 Likes 0 ·
processflow.fsm (64.7 KiB)

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.