Sekvenční vychystávání

From PlcWiki

(Difference between revisions)
Jump to: navigation, search
(Created page with 'Zatím pouze surový záznam chatu, když jsme s Honzou řešili problém se sekvencí na sekvenčním vychystávání: … na vra4 je speciální pracoviště na sekvenční v…')
(Důležité produkční soubory sekvenčního kernelu)
 
(32 intermediate revisions not shown)
Line 1: Line 1:
-
Zatím  pouze surový záznam chatu, když jsme s Honzou řešili problém se sekvencí na sekvenčním vychystávání:
+
== '''Úvod''' ==
-
… na vra4 je speciální pracoviště na sekvenční vychystávání, které je mimo objekt SAS ve Vrchlabí. cca 500m daleko.
+
 
-
Tam běží tzv. "sekvenční kernel" a k němu je připojena jedna klientská stanice se sekvenčním klientem. Všechno běší na jednom počítači - seqvr. Na obrazovce je screen toho sekv. klienta. Je to jiná aplikace, než normální kliet, proto tam není vidět žádná sekvence.
+
Sekvenční vychystávání je způsob přípravy dílů pro kokpit často ještě v momentu kdy výroba samotného kokpitu nebyla na výrobní lince zahájena. V SAS se používá buď sekvenční vychystávání, což znamená přípravu dílů do palet na základě produkčních dat přijatých do kernelu. Každá paleta obsahuje díly pro více kokpitů. Druhý způsob přípravy dílů je založen na tzv. tablet kitting metodě, kdy se  připravují boxy pro konkrétní kokpity a pro data se používá aplikace na tabletu. Tento článek pojednává sekvenčním vychystávání tak, jak je implementováno na linkách SAS například v Saarlouis, Boleslavi či Wolfsburgu.
-
[19:46:43] Petr Zalabák: ten sekvenční klient komunikuje se sekvenčním kernelem, který mu poskytuje informace co se má vychystávat.
+
 
-
[19:48:39] Petr Zalabák: dataflow je následující. Kernel na lince dostane data, zapíše si je do výrobní sekvence (jako všude jinde) a navíc je (přijmutá originální data) odplivne do souboru, který je následně modulem plc_seq_sender odeslán sekvenčnímu kernelu.
+
 
-
[19:49:22] Petr Zalabák: ten data přijme a rozdělí jednotlivé díly do palet pro definovaná pracoviště.
+
 
-
[19:50:52] Petr Zalabák: paleta pro každé pracoviště má definováno, kolik se na ni vejde kusů. to kernel ví a počítá, kolik dílů (kokpitů) již na paletu dal. Když ji naplní, založí novou paletu s novým číslem a začne ji zaplňovat.
+
 
-
[19:51:22] Petr Zalabák: pro každé pracoviště je ten poček kusů na paletě různý.
+
== '''Dataflow''' ==
-
[19:54:21] Petr Zalabák: pracovník na obrazovce vidí, které palety jsou v jakém stavu.
+
 
-
Protože je palet víc, než 6, jak jsou políčka na obrazovce, tak se obrazovky automaticky střídají, jako třeba odlety letadel na letišti.
+
 
-
[19:55:03] Petr Zalabák: co okýnko na obrazovce, to pracoviště, pro které se má vychystávat.
+
[[File:slsdataflow_small.png]]
-
[19:56:04] Petr Zalabák: např. KO - kombi - je tam paleta 7416 - ta je již na lince, atd.
+
 
-
[20:00:58] Petr Zalabák: pracovník se sám rozhodne, pro které pracoviště bude vychystávat. Např. chce vychystávat pro pracoviště KO. Má svoje čárové kódy pro sekvenční vychystávání, tak naskenuje kód, který klientovi řekne, že potřebuje vychystávat KO a ten mu vytiskne tzv. paletovou průvodku, na které je číslo palety a seznam dílů, které ma na ni narovnat (v určeném úpřadí). Tím se paleta označí, jako "připravuje se". Když ji celou narovná, vezme tu paletovou průvodku a naskenuje její barkód. tím se paleta přepne do stavu "připravena" a můžou ji odvézt na linku.
+
Data přijatá z JISu (či jiného zdroje) putují skrz dataflow do hlavního kernelu. V rámci dataflow existuje odbočka, která přísluší sekvenčnímu kernelu plc_skrnl. Z důvodu přehlednosti se používá druhé instance kernelu jako kernelu pro sekvenční vychystávání, ale i klasický kernel obsahuje sekvenční vychystávání a může pracovat v tomto režimu.  
-
[20:02:24] Petr Zalabák: když ji načtou na lince, označí se jako "na lince", když z ní vezmou poslední díl, zmizí úplně.
+
 
-
[20:02:52] Petr Zalabák: veškeré údaje o paletách poskytuje sekvenční kernel
+
 
-
[20:03:40] Petr Zalabák: jak klientovi pro sekvenční vychystávání, tak klientům na lince, které sekvenčnímu kernelu oznamují, že odebrali díl z palety.
+
 
-
[20:05:14] Petr Zalabák: takže ty data jsou v souborech pallet.dat - hlavičkové rekordy jednotlivých palet a equence.dat, kde je seznam dílů a jejich rozmístění na paletách.
+
== '''Kernel a jeho konfigurace''' ==
-
[20:06:41] Petr Zalabák: jak přicházejí data od normaálního kernelu, tak je sekvenční kernel zapisuje do těchto souborů
+
 
-
[20:07:19] Petr Zalabák: jak je klienti odebírají, tak je (po paletách) sekvenční kernel zase z těchto souborů maže.
+
 
-
[20:09:09] Petr Zalabák: pro nějaký reset sekvence nemá sekvenční kernel žádné nástroje, všechno se musí editovat ručně.
+
Kernel přijímá data tak, jak přicházejí do systému. Postupně v sekvenci připravuje díly a řadí je do palet. To - do jaké palety jaký díl přijde se řídí pomocí konfiguračního souboru splan.
-
[20:09:25] Petr Zalabák: co je potřeba přesně udělat?
+
 
-
[20:11:23] jan_vejvoda: od seq čísla 616 tam byly špatný kokpity, vymazal jsem je, ale asi bude potřeba ještě něco udělat s pallet.dat ale jeho struktura mi nic neříká ...
+
[[File:splan.png]]
-
[20:13:02] Petr Zalabák: první řádek pro tento kokpit v souboru sequence.dat je tento:
+
 
-
06483333        BV03    BV03-1J1614105AM        PS      PALPS3878      1      #0616
+
Výše je ukázka takové konfigurace převzatá ze závodu SAS SLS.
-
[20:13:44] Petr Zalabák: ten říká, že díl BV03-1J1614105AM pro pracoviště PS je na paletě PALPS3878.
+
 
-
[20:14:30] Petr Zalabák: v souboru pallet.dat je pro tuto paletu řádek:
+
<xml>
-
PALPS3878      13:47:46        13:48:35        20:09:53        04      0032
+
WPID = S2
-
[20:15:21] jan_vejvoda: tak že ho taky promažu ....?
+
Name = Clusters
-
[20:15:21] Petr Zalabák: ten říká, že paleta je ve stavu "04" a je na ní ještě 32 neodebraných dílů. jdu se podívat, co je stav 04
+
MaxPalletItems = 24
-
[20:15:31] Petr Zalabák: pozor
+
</xml>
-
[20:16:03] Petr Zalabák: pokud je na paletě ještě nějaký jiný díl (pro jiný kokpit), tak se vymazat nesmí
+
 
-
[20:16:41] Petr Zalabák: tzn. dá se číslo palety vygrepovat z sequence.dat a to nám řekne, které kokpity na paletě mají díly
+
Toto jsou základní údaje: identifikátor a název palety. Počet dílů na paletě.
-
[20:17:25] Petr Zalabák: v těch datech se ručně strašně špatně maže.
+
 
-
[20:18:01] Petr Zalabák: skoro by bylo nejlepší zjistit, od kterého kokpitu nemají vychystáno, potom oba soubory snulovat a poslat tam data znovu.
+
<xml>
-
[20:19:05] Petr Zalabák: problém bývá v tom, že pro různá pracoviště mají první nevychystaný kokpit různý, protože na paletách nejsou stejné nebo nesoudělné počty, kolik se na ně vejde.
+
PickingPartCheck = Yes
-
[20:19:28] Petr Zalabák: ale s tím si většinou poradí.
+
</xml>
-
[20:23:48] Petr Zalabák: pokud bychom to chtěli nastavit třeba na ten kokpit 616, tak je potřeba se podívat do souboru sequence dat, na kterých paletách díly, zastavit posílání dat, stopnout sekvenční kernel, vymazat z pallet.dat tyto palety a všechy palety s vyššími čísly, vymazat tento kokpit a všechny další ze souboru sequence.dat, unstopnout sekvenční kernel a pustit data znovu od kokpitu 616
+
 
-
[20:24:07] Petr Zalabák: je to dost složité.
+
Toto je parametr odpovídající za to, zda se budou díly na paletě po jejím zkompletování ještě skenovat pro kontrolu. Při nastavení na '''Yes''' musí pracovník pro zkompletování palety vzít scanner a postupně naskenovat všechny díly. Právě pro správné přiřazení skenování ke konkrétní paletě, je v konfiguraci obsažen i SelectPattern a ReplacePattern, který ze skenování vezme konkrétní část určenou k porovnávání.
-
[20:25:06] Petr Zalabák: troufneš si na to?
+
SelectPattern '''musí mít shodu s celým vstupem''', jinak nefunguje korektně ReplacePattern.
-
[20:25:14] jan_vejvoda: navíc mohu zopakovat problém kterej se řešil na začátku - poslat staré kokpity ...
+
 
-
[20:25:42] jan_vejvoda: kde je historie?
+
<xml>
-
[20:29:01] Petr Zalabák: historie není :-) posílání dat je tady trochu odlišné.
+
SelectPattern[0] = ^_((BM5T|CM5T|F1ET|G1ET)-10849-\w{2}).*$
-
[20:30:54] Petr Zalabák: data dostáváme v boleslavi na lince mba5, na počítači gwskmb protokolem p-mon rovnou ze Škodovky. Všechny procesy, které jsou potom dál pro transport na kernel do vr a dále na sekvenční kernel, data pouze předávají, žádnou historii neukládají.
+
ReplacePattern[0] =
-
[20:31:42] Petr Zalabák: jediná možnost je říct našemu p-mon serveru na gwskmb, od kterého kokpitu chceme přenos zopakovat.
+
</xml>
-
[20:31:58] jan_vejvoda: :)
+
 
-
[20:32:27] Petr Zalabák: tu datovou stránku bych mohl udělat, ale potřeboval bych pročistit ty soubory.
+
Další parametr v kunfiguraci je
-
[20:33:24] jan_vejvoda: ok, stopnu dq2dirq, nebo jak se to tu jmenuje, taky kernel a jdu čistit, OK?
+
 
-
[20:34:49] Petr Zalabák: zjisti od nich, od kterého kokpitu je potřeba to vyčistit
+
<xml>
-
[20:35:02] Petr Zalabák: já to potom stopnu
+
AutomaticPrintWhenReady = No
-
[20:35:49] Petr Zalabák: teoreticky stačí, když budeš vědět od kterého kokpitu čistit, potom si zastavíš sekvenční kernel a začneš čistit
+
</xml>
-
[20:42:02] jan_vejvoda: Chyška říkal, že jsou tam dvě sekvence, série a Indie, je prý potřeba na to dát pozor
+
 
-
[20:42:59] jan_vejvoda: jinak je možno vymazat vše za #0616
+
Ten určuje, zda pracovník na sekvenční stanici musí naskenovat barcode pro paletu (např. PLCPALS2) aby ji započal vychystávát. Pokud je tento parametr nastaven na Yes, tak je paleta připravena k naplnění okamžitě, jak se v kernelu naplní všechny pozice. Důsledek toho je, že se rovnou vytiskne soupiska vychystávaných dílů (ta se jinak tiskne v momentě, kdy pracovník naskenuje barcode pro paletu).
-
[20:44:04] Petr Zalabák: já se podívám, jak je to s tou Indií
+
 
-
[20:44:36] jan_vejvoda: stopuju kernel, OK?
+
<xml>
-
[20:44:45] Petr Zalabák: moment ještě
+
Printer = presequencing_printer2
-
[20:44:50] jan_vejvoda: ok
+
</xml>
-
[20:44:57] jan_vejvoda: |-)
+
 
-
[21:24:57] Petr Zalabák: jsi tam?
+
Tento parametr udává tiskárnu, na které se bude tisknout průvodka k paletě (pracovní ve skutečnosti vychystává díly na základě průvodky, na obrazovku v podstatě nekouká). Tiskárna musí být definována v '''CUPS'''u na všech sekvenčních stanicích. Funguje to tak, že všechny stanice připojené k sekvenčnímu kernelu zobrazují to samé a v momentě, kdy má dojít k tisku, se začnou sápat po tiskárně - první, které se to podaří, bude fyzicky tisknout. Proto musí být tiskárna definována na všech, nikdy není jistota, od kuď se vlastně bude tisknout, může to být jakákoliv sekvenční stanice připojená ke konkrétnímu skernelu.
-
[21:25:18] jan_vejvoda: ano
+
 
-
[21:25:33] Petr Zalabák: nebyl jsi na Skype online, tak jsem psal na psi
+
Jednou z nejdůležitějších součástí konfigurace je i výčet dílů pro danou paletu
 +
 
 +
<xml>
 +
BM5T 10849 FU:<>BM5T - F
 +
BM5T 10849 GU:<>BM5T - G
 +
BM5T 10849 H+:<>BM5T - H
 +
BM5T 10849 L+:<>BM5T - L
 +
BM5T 10849 BA+:<>BM5T - BA+
 +
</xml>
 +
 
 +
Ten funguje stejně jako PartDistribution. Pokud kernel najde v datech auta příslušný díl (na základě prvního sloupce) převede jej na číslo dílu (druhý sloupec) a tuto informaci použije pro porovnání se skenováním ze stanice. Tam pracovník musí (při nastavení PickingPartCheck = Yes) naskenovat všechny díly, které vyskládal do palety. Skenování se přiřadí na základě SelectPatternu a následně se část naskenovaného barcodu převádí na PartNumber pomocí standardní PartDistribution. '''První shoda''' (Bez ohledu na pozici. Může být problém pokud v PartDitribution je více záznamů které se mohou shodovat ...) vygeneruje PartNumber (údaj z druhého sloupce) a tato data jsou porovnána s daty vygenerovanými v kernelu. Pokud vzájemně souhlasí, je to OK a díl zezelená. Pokud pracovník omylem naskenuje něco jiného či třeba přeskočí pozici, musí naskenovat '''PLCSPCBRK''' a začít kontrolovat znova od začátku. Lze použít i autorizovaný barcod, který funguje jako responsible confirmation a pracovníkovi umožní upravit chybnou pozici (v takovém případě nemusí skenovat vše od začátku).
 +
 
 +
Generování sequence.dat se provádí takto:
 +
Pokud se v datech nalezne díl z splan.cfg (první sloupec), převede se na cleverpart (druhý sloupec v splan.cfg). Cleverpart se potom hledá v PartDistribution (POZOR mezery se berou v potaz), bez ohledu na operaci - kdekoliv. Pokud nalezne, použije definovaný barkód z PartDistribution pro poslední sloupec v sequence.dat.
 +
 
 +
V základu platí logika, že co kokpit to pozice na paletě. V případě, že ve výčtu dílů budou některé chybět a žádný z patternů nebude sedět na obdržená data z kernelu. Může to produkovat prázdné pozice na platě. Viz tento screen obrazovky sekvenčního klienta
 +
 
 +
[[File:conditionsmissing.png]]
 +
 
 +
Vyhnout se tomu dá pomocí uvedení podmínek, které definují které kokpity se mají na paletu vychystávat.
 +
 
 +
<xml>
 +
Condition = DA05
 +
Condition = INDI|UKRA
 +
Condition = !INDI
 +
</xml>
 +
 
 +
Pouze ty kokpity, které vyhovují podmínkám se budou na paletu vychystávat. Ostatní se neberou v potaz a nebudou vytvářet ani prázdné pozice. Pro definování podmínky lze užít regulární výraz. Například toto
 +
 
 +
<xml>
 +
Condition = (?!^.*INDI.*$|^.*UKRA.*$)^.*$
 +
</xml>
 +
 
 +
je to samé jako toto
 +
 
 +
<xml>
 +
Condition = !INDI
 +
Condition = !UKRA
 +
</xml>
 +
 
 +
== '''Důležité produkční soubory sekvenčního kernelu''' ==
 +
 
 +
Jsou situovány ve standardním /usr/local/plc/var adresáři. Jedná se o soubory
 +
<xml>
 +
pallet.dat
 +
sequence.dat
 +
supply.dat
 +
</xml>
 +
 
 +
Struktura sequence.dat
 +
 
 +
1. číslo kokpitu
 +
 
 +
2. podmínka
 +
 
 +
3. paleta
 +
 
 +
4. paleta v řadě
 +
 
 +
5. číslo použito pro součet kokpitů na paletě. Pouze první díl na pozici má význam (při pickingParchecku) a při počítání. Zbytek má 0 a je jen pro informaci.
 +
 
 +
6. sekvenční číslo
 +
 
 +
== '''Barvy sekvenčního klienta''' ==
 +
 
 +
 
 +
[[File:seqclient.png]]
 +
 
 +
Horní okna klienta jsou určeny pro palety, každé okono znamená jeden typ palety definovaný jako pozice v kernelu. Celkem se používá pět barev pro zvýraznění stavu palety.
 +
 
 +
 
 +
'''modrá''' - založená paleta v kernelu, kam stále přibývají data
 +
 
 +
'''zelená''' - připravená k vychystávání, kernel naplnil všechny pozice
 +
 
 +
'''fialová''' - aktálně vychystávaná, tedy paleta ke které je vytištěna průvodka a pracovník aktuálně fyzicky plní jednotlivé pozice
 +
 
 +
'''bílá''' - fyzicky hotová paleta, všechny díly jsou na svých pozicích
 +
 
 +
'''šedá''' - z palety jsou na produkční lince postupně odebírány díly (číslo v závorce postupně klesá)
 +
 
 +
 
 +
Číslo v pravém horním rohu u okna palety označuje aktuální zásobu dílů na lince, jinými slovy je součten všech dílu na bílých a šedých paletách. Pokud je zásoba dílů kriticky nízká (5 a méně dílů) číslo zčervená.
 +
 
 +
 
 +
== '''Vybírání dílů z palety''' ==
 +
Klienti na lince vybírají díly z palety '''pro konkrétní produkt'''. Před vybíráním z palety je nutno načíst ID palety. Vybírání se poté omezí na otevřenou paletu. Pořadí palet není kontrolováno.  
 +
 
 +
'''Výjimkou je''' WorkPlace.AlienSeqWPID. Při použití tohoto parametru není třeba otevírat paletu, vybírá se z jakékoliv.  
 +
 
 +
Spojení se sekvenčním kernelem je zajištěno níže uvedenými parametry.
 +
 
 +
  line.SeqServer = plcpamkrnl
 +
  line.SeqServerPort = 6799
 +
 
 +
Výběr dílů se děje dvěma možnými způsoby:
 +
 
 +
'''a) Operací PartCheck'''
 +
 
 +
Splněním konkrétní operace na pracovišti se odebere jeden kus dané pozice z aktuálně otevřené (šedá) palety pro otevřený produkt. Při výběru se kontroluje i číslo dílu. Po vybrání všech pozic je třeba otevřít další paletu naskenováním jejího ID.
 +
 
 +
  operation.sequencing.seqwpid = seznam pozic na paletě oddělený čárkami
 +
 
 +
'''b) Načtením produktu na pracovišti'''
 +
 
 +
Po načtení produktu na pracovišti se z aktuálně otevřené (šedá) palety odebere jeden kus dané pozice. Po vybrání všech pozic je třeba otevřít další paletu naskenováním jejího ID.
 +
 
 +
  WorkPlace.AlienSeqWPID = seznam pozic na paletě oddělený čárkami
 +
  WorkPlace.SeqWPID = seznam pozic na paletě oddělený čárkami
 +
  Workplace.PalletSelect = defines the begining of a string of a palette number

Current revision as of 08:11, 1 April 2019

Contents

Úvod

Sekvenční vychystávání je způsob přípravy dílů pro kokpit často ještě v momentu kdy výroba samotného kokpitu nebyla na výrobní lince zahájena. V SAS se používá buď sekvenční vychystávání, což znamená přípravu dílů do palet na základě produkčních dat přijatých do kernelu. Každá paleta obsahuje díly pro více kokpitů. Druhý způsob přípravy dílů je založen na tzv. tablet kitting metodě, kdy se připravují boxy pro konkrétní kokpity a pro data se používá aplikace na tabletu. Tento článek pojednává sekvenčním vychystávání tak, jak je implementováno na linkách SAS například v Saarlouis, Boleslavi či Wolfsburgu.



Dataflow

File:slsdataflow_small.png

Data přijatá z JISu (či jiného zdroje) putují skrz dataflow do hlavního kernelu. V rámci dataflow existuje odbočka, která přísluší sekvenčnímu kernelu plc_skrnl. Z důvodu přehlednosti se používá druhé instance kernelu jako kernelu pro sekvenční vychystávání, ale i klasický kernel obsahuje sekvenční vychystávání a může pracovat v tomto režimu.


Kernel a jeho konfigurace

Kernel přijímá data tak, jak přicházejí do systému. Postupně v sekvenci připravuje díly a řadí je do palet. To - do jaké palety jaký díl přijde se řídí pomocí konfiguračního souboru splan.

File:splan.png

Výše je ukázka takové konfigurace převzatá ze závodu SAS SLS.

WPID = S2
Name = Clusters
MaxPalletItems = 24

Toto jsou základní údaje: identifikátor a název palety. Počet dílů na paletě.

PickingPartCheck = Yes

Toto je parametr odpovídající za to, zda se budou díly na paletě po jejím zkompletování ještě skenovat pro kontrolu. Při nastavení na Yes musí pracovník pro zkompletování palety vzít scanner a postupně naskenovat všechny díly. Právě pro správné přiřazení skenování ke konkrétní paletě, je v konfiguraci obsažen i SelectPattern a ReplacePattern, který ze skenování vezme konkrétní část určenou k porovnávání. SelectPattern musí mít shodu s celým vstupem, jinak nefunguje korektně ReplacePattern.

SelectPattern[0] = ^_((BM5T|CM5T|F1ET|G1ET)-10849-\w{2}).*$
ReplacePattern[0] =

Další parametr v kunfiguraci je

AutomaticPrintWhenReady = No

Ten určuje, zda pracovník na sekvenční stanici musí naskenovat barcode pro paletu (např. PLCPALS2) aby ji započal vychystávát. Pokud je tento parametr nastaven na Yes, tak je paleta připravena k naplnění okamžitě, jak se v kernelu naplní všechny pozice. Důsledek toho je, že se rovnou vytiskne soupiska vychystávaných dílů (ta se jinak tiskne v momentě, kdy pracovník naskenuje barcode pro paletu).

Printer = presequencing_printer2

Tento parametr udává tiskárnu, na které se bude tisknout průvodka k paletě (pracovní ve skutečnosti vychystává díly na základě průvodky, na obrazovku v podstatě nekouká). Tiskárna musí být definována v CUPSu na všech sekvenčních stanicích. Funguje to tak, že všechny stanice připojené k sekvenčnímu kernelu zobrazují to samé a v momentě, kdy má dojít k tisku, se začnou sápat po tiskárně - první, které se to podaří, bude fyzicky tisknout. Proto musí být tiskárna definována na všech, nikdy není jistota, od kuď se vlastně bude tisknout, může to být jakákoliv sekvenční stanice připojená ke konkrétnímu skernelu.

Jednou z nejdůležitějších součástí konfigurace je i výčet dílů pro danou paletu

BM5T 10849 FU:<>BM5T - F
BM5T 10849 GU:<>BM5T - G
BM5T 10849 H+:<>BM5T - H
BM5T 10849 L+:<>BM5T - L
BM5T 10849 BA+:<>BM5T - BA+

Ten funguje stejně jako PartDistribution. Pokud kernel najde v datech auta příslušný díl (na základě prvního sloupce) převede jej na číslo dílu (druhý sloupec) a tuto informaci použije pro porovnání se skenováním ze stanice. Tam pracovník musí (při nastavení PickingPartCheck = Yes) naskenovat všechny díly, které vyskládal do palety. Skenování se přiřadí na základě SelectPatternu a následně se část naskenovaného barcodu převádí na PartNumber pomocí standardní PartDistribution. První shoda (Bez ohledu na pozici. Může být problém pokud v PartDitribution je více záznamů které se mohou shodovat ...) vygeneruje PartNumber (údaj z druhého sloupce) a tato data jsou porovnána s daty vygenerovanými v kernelu. Pokud vzájemně souhlasí, je to OK a díl zezelená. Pokud pracovník omylem naskenuje něco jiného či třeba přeskočí pozici, musí naskenovat PLCSPCBRK a začít kontrolovat znova od začátku. Lze použít i autorizovaný barcod, který funguje jako responsible confirmation a pracovníkovi umožní upravit chybnou pozici (v takovém případě nemusí skenovat vše od začátku).

Generování sequence.dat se provádí takto: Pokud se v datech nalezne díl z splan.cfg (první sloupec), převede se na cleverpart (druhý sloupec v splan.cfg). Cleverpart se potom hledá v PartDistribution (POZOR mezery se berou v potaz), bez ohledu na operaci - kdekoliv. Pokud nalezne, použije definovaný barkód z PartDistribution pro poslední sloupec v sequence.dat.

V základu platí logika, že co kokpit to pozice na paletě. V případě, že ve výčtu dílů budou některé chybět a žádný z patternů nebude sedět na obdržená data z kernelu. Může to produkovat prázdné pozice na platě. Viz tento screen obrazovky sekvenčního klienta

File:conditionsmissing.png

Vyhnout se tomu dá pomocí uvedení podmínek, které definují které kokpity se mají na paletu vychystávat.

Condition = DA05
Condition = INDI|UKRA
Condition = !INDI

Pouze ty kokpity, které vyhovují podmínkám se budou na paletu vychystávat. Ostatní se neberou v potaz a nebudou vytvářet ani prázdné pozice. Pro definování podmínky lze užít regulární výraz. Například toto

Condition = (?!^.*INDI.*$|^.*UKRA.*$)^.*$

je to samé jako toto

Condition = !INDI
Condition = !UKRA

Důležité produkční soubory sekvenčního kernelu

Jsou situovány ve standardním /usr/local/plc/var adresáři. Jedná se o soubory

pallet.dat
sequence.dat
supply.dat

Struktura sequence.dat

1. číslo kokpitu

2. podmínka

3. paleta

4. paleta v řadě

5. číslo použito pro součet kokpitů na paletě. Pouze první díl na pozici má význam (při pickingParchecku) a při počítání. Zbytek má 0 a je jen pro informaci.

6. sekvenční číslo

Barvy sekvenčního klienta

File:seqclient.png

Horní okna klienta jsou určeny pro palety, každé okono znamená jeden typ palety definovaný jako pozice v kernelu. Celkem se používá pět barev pro zvýraznění stavu palety.


modrá - založená paleta v kernelu, kam stále přibývají data

zelená - připravená k vychystávání, kernel naplnil všechny pozice

fialová - aktálně vychystávaná, tedy paleta ke které je vytištěna průvodka a pracovník aktuálně fyzicky plní jednotlivé pozice

bílá - fyzicky hotová paleta, všechny díly jsou na svých pozicích

šedá - z palety jsou na produkční lince postupně odebírány díly (číslo v závorce postupně klesá)


Číslo v pravém horním rohu u okna palety označuje aktuální zásobu dílů na lince, jinými slovy je součten všech dílu na bílých a šedých paletách. Pokud je zásoba dílů kriticky nízká (5 a méně dílů) číslo zčervená.


Vybírání dílů z palety

Klienti na lince vybírají díly z palety pro konkrétní produkt. Před vybíráním z palety je nutno načíst ID palety. Vybírání se poté omezí na otevřenou paletu. Pořadí palet není kontrolováno.

Výjimkou je WorkPlace.AlienSeqWPID. Při použití tohoto parametru není třeba otevírat paletu, vybírá se z jakékoliv.

Spojení se sekvenčním kernelem je zajištěno níže uvedenými parametry.

 line.SeqServer = plcpamkrnl
 line.SeqServerPort = 6799

Výběr dílů se děje dvěma možnými způsoby:

a) Operací PartCheck

Splněním konkrétní operace na pracovišti se odebere jeden kus dané pozice z aktuálně otevřené (šedá) palety pro otevřený produkt. Při výběru se kontroluje i číslo dílu. Po vybrání všech pozic je třeba otevřít další paletu naskenováním jejího ID.

  operation.sequencing.seqwpid = seznam pozic na paletě oddělený čárkami

b) Načtením produktu na pracovišti

Po načtení produktu na pracovišti se z aktuálně otevřené (šedá) palety odebere jeden kus dané pozice. Po vybrání všech pozic je třeba otevřít další paletu naskenováním jejího ID.

  WorkPlace.AlienSeqWPID = seznam pozic na paletě oddělený čárkami
  WorkPlace.SeqWPID = seznam pozic na paletě oddělený čárkami
  Workplace.PalletSelect = defines the begining of a string of a palette number
Personal tools