Universal Parser

Označení modulu Universal_Parser
Kategorie modulu Script modules -> External
Popis modulu Modul pro parsovani dat z Univerzální struktury

Jedná se o modul, jehož smyslem je zpracování souboru s univerzální strukturou.

Parametry

Název Popis Default
ModulePosition Určuje jakým levelem bude pokračovat skript. Povolené hodnoty: ResetIndex - zůstáváme na stejné úrovni, UpLevel - jdeme na další úroveň. SGLMState.UpLevel
GenerateConfigFile Parametr určující zda se má používat generovat konfigurační soubor xTrace pro externí parsery. False
CheckProgramName Parametr udávající zda se má kontrolovat program. Vyžaduje předávání procesních dat v univerzální struktuře. False
WhereFindProgramName Určuje kde se bude hledat jméno programu. Povolené hodnoty: GMS - určeno pro nové procesy výroby, JOB - vezme se ProduktCD u VO, RACK - vezme se ProduktCD u Racku, PART - vezme se ProduktCD z partu. GMS
ktgParamNumOfRows Jméno,typ katalogového parametru ve kterém se nachází počet řádků na panelu. PanelRows,PRODUCT
ktgParamNumOfColumns Jméno,typ katalogového parametru ve kterém se nachází počet sloupců na panelu. PanelColumns,PRODUCT
ktgParamTesterPcbDirection Jméno,typ katalogového parametru ve kterém se nachází pořadí desek na panelu vůči pořadí při testování pro přiřazení správných hodnot jednotlivým deskám. TesterPCBDirection,GMS
ErrorOnCannotWriteToConfigFile Má se zastavit práce v případě nemožnosti zápisu do konfiguračního souboru? False
ConfigFilePath Cesta na které se nachází konfigurační soubor.
ConfigFileName Jméno konfiguračního souboru včetně přípony. xtraceConfig.csv
SaveParsedData Je-li true, tak dochází k uložení vyparserovaných dat rovnou do ProcessContextu. Je-li false, tak se data uloží pouze v modulu a poděděné moduly musí toto uložení ošetřit True
CheckBarcodeInProcessData Parametr určuje zda se při kontrole procesních dat má provést kontrola na přítomnost sériového čísla. True
SendBarcodeOnResetIndex Je-li false, tak nedochází k přeposlání barkódu z vyparserovaného jsonu ikdyž je nastaven parametr ModulePosition na ResetIndex True
OK_MS_Status Hodnota udávající jaký status se nastaví dílu při OK testu dílu na pracovišti. 1
NG_MS_Status Hodnota udávající jaký status se nastaví dílu při NG testu dílu na pracovišti. 9
ProcessPartBy Hodnota určující podle čeho se zpracovávají informace o dílech. Povolené hodnoty: None, Barcode, TestIndex None
NumberOfTriesForOpenFile Počet pokusů po sobě o otevření souboru. Povolený interval: 1-100 5
WaitTimeBeforeAnotherTryToOpenFile Doba čekání na další pokus o otevření souboru. Hodnota je milisekundách. Povolený interval: 100-10000 250
TypeOfParserHealtNotification Udává jakým způsobem je řešena komunikace mezi parserem a xTracem. Povolené hodnoty: None - bez komunikace, File - parser zapisuje stav do souboru a xTrace tento soubor čte. None
ParserHealthNotificationFilePath Udává cestu ke složce do které parser zapisuje svůj stav. Potřeba pouze v případě kdy parametr TypeOfParserHealtNotification má hodnotu File.

Jak to funguje

Nejprve se zjistí, zda došlo ke změně operátora, výrobní objednávky nebo operace, Pokud došlo alespoň v jedné hodnotě ke změně, pak proběhne nastavení modulu. Konkrétně se pokusí získat jméno programu, pokud se získává z GMS nebo Jobu. Dále se sestaví cesta na kterou se zálohují zpracovávané soubory. Pokud je požadavek na zápis do konfiguračního souboru, tak proběhne pokus o zápis do něj. Pokud se ve skriptu pracoviště nachází modul JOB a zároveň je načtena výrobní objednávka pracojící s novými procesy výroby, tak dojde k pokusu o zjištění počtu dílů na panelu a vypočítání TesterPcbDirection, pokud se nepodaří zjistit dimenze panelu neby vypočítat TesterPcbDirection, tak se modul dostane do chybového stavu a není možné zahájit práci. Jinak se dostáváme do stavu, kdy čekáme na soubor obsahující univerzální strukturu.

Po příchodu souboru dojde kontrolu zda náhodou nedošel soubor jehož název by byl stejný jako název posledního souboru, v takovém případě se soubor nezpracuje a je zobrazena chybová hláška. Dále dojde k otevření a deserializaci obsahu souboru. Poté se zkontroluje, zda univerzální struktura nemá vyplněnou sekci Error, která značí chybu u při zpracovávání vstupních dat v aplikaci, která tyto soubory generuje. Pokud tyto kroky dopadnou úspěšně, tak je soubor zazálohován na cestu s úspěšně zpracovanými soubory a dojde k vyhodnocení dat, které se v souboru nacházely.

Pro kontrolu dat slouží tři typy kontroly: - kontrola procesních dat - kontrola chyb - kontrola programu

Kontrola procesních dat se zapíná přítomností modulu UNIVERSAL_SAVE_PROCESS_DATA ve skriptu. Kontroluje zda soubor vůbec obsahoval nějakou strukturu do které se ukládají procesní data, touto kontrolou projde i struktura s defaultními hodnotami. Dále podle nastavení parametru CheckBarcodeInProcessData se (ne)provede kontrola na přítomnost sériového čísla v procesních datech. Jako poslední věc se kontroluje zda ve struktuře souboru se nacházejí nějaká procesní data pro alespoň jeden díl.

Kontrola chyb se zapíná přítomností modulu UNIVERSAL_SAVE_DIVERGENCE ve skriptu. Kontrola probíhá tím style, že jako neúspěch je vyhodnoceno to, kdy struktura odpovídající této položce se v souboru nenacházela. Pokud se tam struktura i s defaultními hodnotami nacházela, tak je kontrola vyhodnocena jako úspěch.

Kontrola programu se zapíná parametrem CheckProgramName. V kontrole dojde porovnání zda řetězec se jménem programu v souboru se shoduje s řetězcem nadefinovaným někde v procesech (to kde je potřeba tento řetězec nedafinovat udává parametr WhereFindProgramName).

Pokud jedna z těchto kontrol nedopadne úspěšně pak je o této skutečnosti upozorněn operátor a xTrace čeká na další soubor. V případě úspěšných kontrol dojde ke zpracování řetězců v proměnných Misc. Dále pokud je hodnota parametru ModulePosition rovna hodnotě ResetIndex a zároveň parametr SendBarcodeOnResetIndex je nastavený na hodnotu True pak dojde k přeposlání získaného sériového čísla dalším modulům.