Uvolňovací vzorky

Uvolňovací vzorky slouží k ověření správné funkce pracoviště před zahájením výroby. Jde o kusy se známými vlastnostmi (záměrně vadné i bezchybné), které se testují na pracovišti. Systém porovnává naměřené výsledky s očekávanými hodnotami. Teprve když všechny vzorky projdou s očekávaným výsledkem, je pracoviště uvolněno pro výrobu.

Použití uvolňovacích vzorků musí vyvolat klient. V základním TracePRO se uvolňovací vzorky nepoužívají, jejich použití je implementováno až na přání klientů v rámci jejich obrazovek pro testovací pracoviště.

Zavedení

Uvolňovací vzorky musí být zavedeny ve speciálních výrobních objednávkách, jejichž jméno začíná RELSAMPLE. Další část jména je libovolná. Navrhujeme schéma RELSAMPLE-<ARTICLE>-<SADA>, kde:

  • ARTICLE je kód výrobku, který se uvolňuje.

  • SADA je číslo sady vzorků.

Jedna výrobní objednávka bude vždy obsahovat jednu sadu vzorků. To znamená, že pokud je na uvolnění potřeba jen jeden vzorek, musí být opravdu vytvořena výrobní objednávka pro tento jeden vzorek.

Do postupu výrobní objednávky musí být vložena operace pro zavedení, např. operace č. 10, úkon 100. Použije se pro zavedení kusů do objednávky. (Na čísle operace ani na čísle úkonu nezáleží.)

Použijte obrazovku Práce, v ní akci Zavést položky a normálně ty kusy načtěte. Pokud se spletete, a omylem zavedete něco, co sem nepatří, nebo pokud potřebujete nahradit starý vzorek novým, můžete ten špatný kód vyzmetkovat.

Jestliže potřebujete uvolňovací vzorek pro test, který používá pak bude posílat výsledky pro jednotlivé PCB odděleně, tak je potřeba vzorek založit jako multipanel. To lze udělat také přes obrazovku Zavést položky. Do levé části obrazovky vložíte multipanel (nebo více multipanelů) ve formátu:

MASTERCODE:PCB1,PCB2,PCB3,PCB4

A dáte Prohlédnout, a potom Zapsat.

Zavedení multipanelu pro ``pcbinfo``

Předcházení kolizím

To, co jsme zavedli jako uvolňovací vzorek, byl vlastně původně kus v normální objednávce. Takže teď můžeme mít dva kusy se stejným sériovým číslem. To lze, nemělo by to způsobovat problémy, ale přesto doporučujeme tomu původnímu kusu (v původní objednávce) dát jiné sériové číslo (např. příponu -UVZ).

První test

Dříve, než začnete definovat očekávané výsledky testů, udělejte jeden test uvolňovacích vzorků. Načtěte na pracovišti libovolnou objednávku na stejný typ/operaci, a prostě vzorky otestujte.

Jak to funguje

Má to fungovat tak, že při přihlášení na pracoviště a zadaní výrobní objednávky se vynuluje stav pracoviště - uvolněno. (jen za předpokladu, že pracoviště + typ položky + operace má nastaveno, že se pracoviště uvolňuje).

Pak se očekává, že se na pracovišti otestují vzorky (v libovolném pořadí). Pokud mají všechny vzorky očekávaný výsledek, pracoviště se uvolní. Dokud se to nestane, pracoviště zůstává neuvolněné.

Nastavení uvolňovacích vzorků

Najdete jej v Moduly / Uvolňovací vzorky.

Skupiny pracovišť

Myšlenka je ta, že sada uvolňovacích vzorků může být přiřazena skupině pracovišť (např. jedna sada pro všechna TRIčka). Ikdyž je sada jen pro jedno pracoviště, musí se pro to pracoviště definovat skupina. No a skupina je prostě skupina pracovišť, nic víc.

Nastavení očekávaných výsledků

Pro každý vzorek je potřeba nastavit jakým způsobem se kontroluje, zda vzorek prošel. Klikněte na vzorek. Vyberte typ porovnání výsledků. Může to být jeden z:

  • Očekává se PASS

  • NG/Podmnožina - výsledek musí být NG, musí obsahovat všechny zde definované vady, a může i nějaké další.

  • NG/Přesně - výsledek musí být NG, musí obsahovat všechny zde definované vady, a nesmí mít žádné další.

  • Jakýkoliv výsledek - můžete použít pokud testujete nové uvolňovací vzorky a chcete dostat data do systému.

Definice vad může probíhat trojím způsobem, všechno je popsané na obrazovce, kde se data definují:

  • buď to bude přesná hodnota

  • nebo to bude rozsah od - do

  • nebo podřetězec (případně libovolná hodnota)

Přiřazení vzorků

Sada vzorků (neboli výrobní objednávka RELSAMPLE-...) se přiřadí kombinaci:

  • skupina pracovišť

  • testovaný article

  • operace

Je možné mít přiřazené různé sady (objednávky) pro jednu kombinaci skupina pracovišť + article + operace.

Nastavení

Úkon testu uvolňovacího vzorku se nastavuje parameters.ini v sekci [acts]. Bere se hodnota z klíče relsample_test, výchozí hodnota je 100.

API funkce

Modul poskytuje čtyři JSON-RPC funkce pro práci s uvolňovacími vzorky.

Příklad použití

Typický postup volání API funkcí v klientovi:

# 1. Při výběru objednávky a operace
client.rs_startworkplace(wp_id=wp_id, order_id=order_id, op=op)

# 2. Při načtení barkódu - zjistit, zda jde o uvolňovací vzorek
sample = client.rs_isrelsample(barcode=barcode)

if sample:
    # 3a. Je to uvolňovací vzorek - provést test a zapsat výsledek
    result = client.rs_result(
        proc_order_id=order_id,
        proc_op=op,
        item_id=sample["id"],
        wp_id=wp_id,
        workers=workers,
        tm0=tm0,
        tm1=tm1,
        result=test_result,
        data=test_data,
    )
    if result.get("released") == 1:
        # Pracoviště uvolněno, oznamte uživateli
        pass
    else:
        # Pracoviště není uvolněno, oznamte uživateli
        pass
else:
    # 3b. Není to uvolňovací vzorek - ověřit, zda je pracoviště uvolněno
    if not client.rs_isreleased(wp_id=wp_id, item_type=item_type, op=op):
        # Pracoviště není uvolněno, nelze pokračovat
        raise Exception("Pracoviště není uvolněno")
    # zapsat výsledek testu k normálnímu kusu

rs_startworkplace

Zahájí proces uvolňování pro pracoviště. Tato funkce se volá při přihlášení na pracoviště a zadání výrobní objednávky. Podle nastavení v modulu uvolňovacích vzorků určí, zda je pro danou kombinaci pracoviště/výrobek/operace potřeba uvolnění, a případně vynuluje stav pracoviště. V klientech by se měla volat v set_production.

Parametry:

  • wp_id - ID pracoviště

  • order_id - ID výrobní objednávky, která se bude na pracovišti zpracovávat

  • op - číslo operace

Návratová hodnota: Žádná (None).

Chování:

  • Pokud pro danou kombinaci pracoviště/výrobek/operace existuje záznam v nastavení uvolňovacích vzorků (RelSampleMatching), pracoviště se označí jako neuvolněné a čeká se na otestování vzorků.

  • Pokud záznam neexistuje, pracoviště se automaticky označí jako uvolněné (uvolňování není potřeba).

Příklad volání:

client.rs_startworkplace(wp_id=123, order_id=1000, op=20)

rs_isreleased

Zjistí, zda je pracoviště uvolněno pro daný typ výrobku a operaci.

Parametry:

  • wp_id - ID pracoviště

  • item_type - typ výrobku (article)

  • op - číslo operace

Návratová hodnota: True pokud je pracoviště uvolněno, jinak False.

Příklad volání:

result = client.rs_isreleased(wp_id=123, item_type="ARTICLE-001", op=20)

rs_isrelsample

Zjistí, zda barkód patří k uvolňovacímu vzorku (výrobní objednávka začínající na RELSAMPLE).

Parametry:

  • barcode - barkód položky

Návratová hodnota: Objekt položky (Item), pokud se jedná o uvolňovací vzorek, jinak None.

Příklad volání:

sample = client.rs_isrelsample(barcode="SN123456")
if sample:
    print("Je to uvolňovací vzorek")

rs_result

Zapíše výsledek testu uvolňovacího vzorku. Po zapsání výsledku se automaticky vyhodnotí, zda jsou splněny podmínky pro uvolnění pracoviště. Pozor, proc_order_id a proc_op patří objednávce, která se na pracovišti dělá, ne objednávce, do které patří uvolňovací vzorek.

Parametry:

  • proc_order_id - ID výrobní objednávky, která se uvolňuje

  • proc_op - číslo operace, která se uvolňuje

  • item_id - ID položky uvolňovacího vzorku

  • wp_id - ID pracoviště

  • workers - seznam pracovníků, kteří provedli test

  • tm0 - čas začátku testu

  • tm1 - čas konce testu

  • result - výsledek testu (např. "PASS", "NG")

  • data - data testu (seznam trojic [typ, klíč, hodnota])

Návratová hodnota: Slovník s výsledkem operace:

  • __error__ - kód chyby (prázdný řetězec při úspěchu):

    • "" - operace proběhla úspěšně

    • "info-bad-result" - špatný výsledek uvolňovacího vzorku

    • "missing-operation" - chybějící operace v postupu

    • "bad-workers" - neplatní pracovníci

  • relsample - příznak, že se jedná o uvolňovací vzorek (hodnota 1)

  • released - příznak uvolnění pracoviště (1 = uvolněno, 0 = neuvolněno)

  • info - textový popis výsledku

  • data - při chybě obsahuje dodatečné informace (např. chybějící operace)

Příklad volání:

result = client.rs_result(
    proc_order_id=1000,
    proc_op=20,
    item_id=5000,
    wp_id=123,
    workers=["OP001", "OP002"],
    tm0="2024-01-15 08:00:00",
    tm1="2024-01-15 08:05:00",
    result="PASS",
    data=[
        [1, "voltage", "12.05"],
        [1, "current", "0.5"],
    ]
)
if result.get("released") == 1:
    print("Pracoviště uvolněno!")
elif result.get("__error__"):
    print(f"Chyba: {result.get('info')}")