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.