Komunikace http-api
Funkce HTTP-API
- Slouží pouze jako komunikační rozhraní
Základní princip komunikace:
Strana klienta a strana serveru
- Klient pošle větu> MES rozhodne, co s ní bude dělat
- MES větu odešle do jádra.
- Poté MES> odpoví na požadavek Klienta
- Pokud Výsledek dopadl OK vrátí se hodnoty prázdné "" "". Pokud NOK přijde „error ; errorová zpráva“
Přiklad http-request věty:
xTrace Studio
- Moduly HTTP-API a NVCZHTTP-API
Není pravidlem, že se pro NVI využívá vždy nvcz http-api modul, v některých skriptech je možné použít i http-api.


HandleTimeOUt – doba, kdy čeká modul na jádro. Pokud dojde k prodlevě Zaloguje se Request Timeout a může se stát, že dotaz nebyl zpracován.
ProcessRegex - pro hlavičku api/process
- U GMS procesu výroby u jobu je katalogový parametr Hlavní program
- Po vybrání operace, jádro dotahuje tento parametr a předá jej HTTP-api
- Server vezme výsledky a poskládá odpověď, kterou pošle klientovi
- Odpověď – číslo programu, odblokování a výsledek
Příklad: {"result": "", "text": "", "prog": "TEST_2030"}
U těchto modulů je důležitým parametrem ServerAdress, kde se definuje port pracoviště. Díky tomu můžeme do http-request věty určit na které pracoviště chceme větu poslat.
Příklad
url:http://172.22.17.185:1012/api/addtobox?wp=55130045&userid=2594&proc=10030814075&barcode=2116001877&boxid=Ku621281
Dalším je ProcessRegex, který definuje, jak má vypadat přijetí Jobu a operace. V http-request větě nese název proc. Podle nastavení modulu lze vidět, že vyžaduje zákaznický kód o počtu míst 1-8 a operaci o třech místech (Poslední 3 čísla jsou vždy operace). Pokud má operace dvoumístné číslo zapisuje se např. takto: 020.
Příklad
url:http://172.22.17.185:1012/api/addtobox?wp=55130045&userid=2594&proc=10030814075&barcode=2116001877&boxid=Ku621281
Složení http-request věty:
HTTP POST:
wp:?[Ovládací prvek]?userid:?[Ovládací prvek]?proc:?[Ovládací prvek]?barcode:?[Ovládací prvek]?name:?[Ovládací prvek]?value:?[Ovládací prvek]?
HTTP GET:
wp:?[Ovládací prvek]?userid:?[Ovládací prvek]?proc:?[Ovládací prvek]?barcode:?[Ovládací prvek]?name:?[Ovládací prvek]?value:?[Ovládací prvek]?
url:http://172.22.17.185:1012/api/addtobox?wp=55130045&userid=2594&proc=10030814075&barcode=2116001877&boxid=Ku621281
addtobox – url request pro uložení dílu do balení. (je více možností. Pokud by byl „process“ byl by to dotaz pro nastavení Jobu, „cantest“ pro přijetí SN na FCT testerech, „cantest_grp“ pro SN na splice, apod.)
wp=55130045 – parametr pro určení pracoviště (Place Code bez pomlčky)
userid=2594 – Číslo pracovníka z přihlašovacího kódu např. „Prac6842“
barcode=2116001877 - parametr pro určení SN (pozor na pracovišti pro kde se připojují díly je dotaz barcodes)
boxid=Ku621281 – parametr pro určení čísla balení (KuXXXXXX)
Komunikace
Url request: login
-
Zeptá se serveru, jestli pracovník s userid existuje a jestli může pracovat na daném pracovišti.
- Parametry:
- wp (PlaceCode pracoviště)
- userid (Číslo pracovníka z přihlašovacího kódu) např. „Prac6842“
- Parametry:
-
Odpověď
- { "result": "", "text": "", "username": "Jméno a příjmění" } Příklad úspěšného přihlášení.
- { "result": "error-login", "text": "Operátor X nemá oprávnění pracovat na tomto pracovišti." } Příklad neúspěšného přihlášení.
Url request: process
-
Vybere výrobní objednávku a operaci
- Parametry:
- Proc (Zákaznický kód jobu + operace na 3 místa)
- Parametry:
-
Odpověď
- { "result": "", "text": "", "prog": "Název programu" } Příklad úspěšného načtení jobu.
- { "result": "error-unhandled", "text": "Neočekávaná data" } Příklad neúspěšného načtení jobu.
Url request: cantest
-
Ověří a nastartuje operaci se SN dílu.
- Parametry:
- Barcode (SN dílu)
- Parametry:
-
Odpověď
- { "result": "", "text": "" } Příklad úspěšného ověření dílu
- { "result": "error-part", "text": "Díl X patří na pracoviště X." } Příklad dílu, který patří na jiné pracoviště.
Url request: cantest_grp
-
Ověří a nastartuje operaci se SN dílů.
- Parametry:
- Barcodes (SN dílů oddělených „!“ Kdy první SN je hlavní PCB a ostatní jsou připojované SN)
- Parametry:
-
Odpověď
- { "result": "", "text": "" } Příklad úspěšného ověření dílů.
- { "result": "error-part", "text": "Připojované díly nelze použít" } Příklad dílů, který patří na jiné pracoviště.
Url request: PCBinfo
- Ověří a nastartuje operaci s SN dílů. V odpovědi pošle stav všech dílů na panelu.
- Parametry:
- Barcode (SN dílu)
- Parametry:
- Pořadí DPS odpovídá pořádí v jakém jsou zapsány do databáze. Záleží na vstupním pracovišti (většinou laser), v jakém pořádí čárové kódy DPS ukládá.
- Příklad odpovědi s jedním badmarkem:
- { "result": "", text: "", data: [
- { "result": "", text: "", name: " SN DPS " },
- { "result": "skip", text: "badmark", name: "SN DPS" },
- { "result": "", text: "", name: " SN DPS " },
- { "result": "", text: "", name: " SN DPS " },
- ]
- }
Url request: result
Stroj pošle tímto requestem výsledek práce a MES tento zaznamená.
Parametry:
Barcode (SN dílu)
res (výsledek – když je prázdný je výsledek dílu OK, Když není prázdný je NOK výsledek)
* Info (Procesní data)
POST request od 172.22.19.50:51917 obsah: barcode=81007977&res=ERROR-MULTIPLE&
info=A-MV/TP60/U5_ON#9:1.6885370V(10.0,10.0)|A–MV/TP60/U5_B#9:0.4639662V(10.0,10.0)|
TESTRESULT#9:4.700000(10.0,10.0)|
Kód pozice
Pozice DPS na panelu (Pokud chybí patří tato chyba k první DPS na panelu)
Naměřená hodnota
Minimální tolerance
Maximální tolerance
- Odpověď
- { "result": "", "text": "" } OK proces.
- { "result" error-test ", " Nebylo provedeno zahájení práce s dílem"" } NOK proces.
Url request: data
MES Modul Save Udata, kde se definuje, zda je parametr data čárovým kódem, nebo uživatelskými daty.
HousingBarcodeCodeDef – definice čárového kódu (z číselníku CodeDef)

- Uloží uživatelská data
- Parametry:
Data (Udata)
Barcode (Čárový kód dílu, ke kterému se mají data uložit)
Příklad
POST request od 172.22.20.26:49489 obsah:wp=65796&userid=2579&proc=10034078160&barcode=71101408&data=LABEL%3D21053123585071101408 url:http://172.22.20.26:1000/api/data
- Odpověď
{"result":"","text":""}
Url request: setdata
- Uloží uživatelská data (stejně jako url request data jen s více parametry)
- Parametry:
Name (Název uživatelských dat – Viz data modul Save Udata)
- Parametry:
Value (Udata)
Barcode Čárový kód dílu, ke kterému se mají data uložit)
- Odpověď
Odpověd odeslána: {"result":"","text":""}
Url request: addtobox
- Předá díl do balení.
- Parametry:
Barcode (SN dílu)
Boxid (SN balení KuXXXXXX)
- Parametry:
- Odpověď
- { "result": "", "text": "" } OK proces.
- { "result"error-box"", "Nelze balit díl, který neprošel testem" } NOK proces.
Dávková výroba
V případě zpracování desek, které nemají čárový kód, se používá dávková výroba. V xTrace musí být takováto operace označena jako dávková v nastavení GMS u výrobní objednávky. U requestů cantest, pcbinfo a result je ignorován parametr barcode (na jeho obsahu nezáleží).
Standartní cyklus dílu
- Login operátora.
- Nastavení Job a operace.
- SN start (Začátek práce na díle)
- SN end (Konec práce na díle)
- Balení.
Druhy pracovišť
THT2 Automat JCEE 2 (FCT)
Příklad http-request vět cyklu jednoho dílu:
Přihlášení operátora: GET request od 172.22.22.20:56658 obsah: url:http://172.22.17.185:1012/api/login?wp=55130045&userid=2594&qual=
Odpověď: Odpověď odeslána: {"result": "", "text": "", "username": "Marie Uhliarová"}, doba spojení: 00:00:00.1572555, start 12:25:39.39, konec: 12:25:39.39
Načtení Jobu: GET request od 172.22.22.20:56658 obsah: url:http://172.22.17.185:1012/api/process?wp=55130045&userid=2594&proc=10030814075
Odpověď: Odpověď odeslána: {"result": "", "text": "", "prog": "TEST_2030"}, doba spojení: 00:00:00.6593667, start 12:25:47.47, konec: 12:25:48.48
Načtení SN dílu: GET request od 172.22.22.20:56658 obsah: url:http://172.22.17.185:1012/api/cantest?wp=55130045&userid=2594&proc=10030814075&barcode=2116001969
Odpověď: Odpověď odeslána: {"result": "", "text": ""}, doba spojení: 00:00:00.1018546, start 12:25:55.55, konec: 12:25:55.55
Dokončení práce s dílem: GET request od 172.22.22.20:56658 obsah: url:http://172.22.17.185:1012/api/result?wp=55130045&userid=2594&proc=10030814075&barcode=2116001969&res=&info=
Odpověď: Odpověď odeslána: {"result": "", "text": ""}, doba spojení: 00:00:00.0444665, start 12:26:18.18, konec: 12:26:18.18
Balení: GET request od 172.22.22.20:56658 obsah: url:http://172.22.17.185:1012/api/addtobox?wp=55130045&userid=2594&proc=10030814075&barcode=2116001969&boxid=Ku621281
Odpověď: Odpověď odeslána: {"result": "", "text": ""}, doba spojení: 00:00:00.0570085, start 12:26:22.22, konec: 12:26:22.22
THT1 FCT U-Shin Test
Příklad http-request vět cyklu jednoho dílu:
Login:
GET request od 172.22.20.26:49660 obsah: url:http://172.22.20.26:1000/api/login?wp=55130006&userid=Prac2565
Odpověď odeslána: {"username":"Lucie Novotná","result":"","text":""}, doba spojení: 00:00:00.0083495, start 06:54:31.31, konec: 06:54:31.31
Načtení jobu: GET request od 172.22.20.26:49665 obsah: url:http://172.22.20.26:1000/api/process?wp=65796&userid=Prac2565&proc=10034079160
Odpověď odeslána: {"prog":"JLR_LEADFREE","released":true,"result":"","text":""}, doba spojení: 00:00:02.3712350, start 06:55:00.00, konec: 06:55:02.02Načtení SN dílu:
Načtení SN: GET request od 172.22.20.26:49665 obsah: url:http://172.22.20.26:1000/api/pcbinfo?wp=65796&userid=Prac2565&proc=10034079160&barcode=71063665
Odpověď odeslána: {"result":"","text":""}, doba spojení: 00:00:00.1138538, start 06:55:24.24, konec: 06:55:24.24
Ukončení práce s dílem. POST request od 172.22.20.26:49665 obsah:wp=65796&userid=Prac2565&proc=10034079160&barcode=71063665&res=&info= url:http://172.22.20.26:1000/api/result
Odpověď Odpověď odeslána: {"result":"","text":""}, doba spojení: 00:00:00.0705240, start 06:55:45.45, konec: 06:55:45.45
THT1 ICT-TRI INLINE
Příklad http-request vět cyklu jednoho dílu:
Login: GET request od 172.22.19.50:49922 obsah: url:http://172.22.19.112:1001/api/login?wp=55130008&userid=2312&qual=
Odpověď odeslána: {"username":"Zdeněk Skuhrovec","result":"","text":""}, doba spojení: 00:00:00.4420764, start 22:57:57.57, konec: 22:57:57.57
Načtení jobu: GET request od 172.22.19.50:49924 obsah: url:http://172.22.19.112:1001/api/process?wp=55130008&userid=2312&proc=10056422070
Odpověď odeslána: {"result":"","text":""}
Načtení SN: GET request od 172.22.19.50:49925 obsah: url:http://172.22.19.112:1001/api/cantest?wp=55130008&userid=2312&proc=10056422070&barcode=%25BG44722
Odpověď odeslána: {"result":"","text":""}
Potvrzení dílu: POST request od 172.22.19.50:49926 obsah:wp=55130008&userid=2312&proc=10056422070&barcode=%25BG44722&res=&info=&timeout=10000 url:http://172.22.19.112:1001/api/result
Odpověď odeslána: {"result":"","text":""}, doba spojení: 00:00:00.0467493, start 23:10:32.32, konec: 23:10:32.32
THT2 Splice karusel
Příklad http-request vět cyklu jednoho dílu:
Login:
GET request od 172.22.22.11:49237 obsah: url:http://172.22.17.185:1013/api/login?wp=55130051&userid=2688&qual=eltesthala
Odpověď odeslána: {"result": "", "text": "", "username": "Anna Bartošová"}, doba spojení: 00:00:00.0297553, start 15:10:42.42, konec: 15:10:42.42
Načtení jobu:
GET request od 172.22.22.11:62576 obsah: url:http://172.22.17.185:1013/api/process?wp=55130051&userid=2688&proc=10029690020
Odpověď odeslána: {"result": "", "text": "", "prog": "SPLICE_9910"}, doba spojení: 00:00:00.3079268, start 20:35:34.34, konec: 20:35:34.34
Načtení SN:
GET request od 172.22.22.11:62643 obsah: url:http://172.22.17.185:1013/api/cantest_grp?wp=55130051&userid=2688&proc=10029690020&barcodes=2114101903!2113704766!2113707140
Odpověd odeslána: {"result": "", "text": ""}
Potvrzení dílu
GET request od 172.22.22.11:62643 obsah: url:http://172.22.17.185:1013/api/result_grp?wp=55130051&userid=2688&proc=10029690020&barcodes=2114101903!2113704766!2113707140&res=&info=
Odpověď odeslána: {"result": "", "text": ""}, doba spojení: 00:00:00.1124480, start 20:37:43.43, konec: 20:37:43.43
THT1 ICT-SPEA INLINE
Příklad http-request vět cyklu jednoho dílu:
Načtení Jobu: GET request od 172.22.19.45:52927 obsah: url:http://172.22.19.112:1013/api/process?wp=55130069&userid=8827&proc=10334429060
Odpověd odeslána: {"prog":"12077615","released":true,"result":"","text":""}
Přihlášení uživatele: GET request od 172.22.19.45:52927 obsah: url:http://172.22.19.112:1013/api/login?wp=55130069&userid=8827
Odpověd odeslána: {"username":"Serghei Anton","result":"","text":""}
Načtení SN: GET request od 172.22.19.45:52929 obsah: url:http://172.22.19.112:1013/api/pcbinfo?wp=55130069&userid=8827&proc=10334429060&barcode=H15500000921
Odpověd odeslána:
{"data":[{"result":"","text":"","name":"/P12077615/SN92954UG501RL1"},{"result":"","text":"","name":"/P12077615/SN92954UG501RM2"},{"result":"","text":"","name":"/P12077615/SN92954UG501RN3"},{"result":"","text":"","name":"/P12077615/SN92954UG501RO4"},{"result":"","text":"","name":"/P12077615/SN92954UG501RP5"},{"result":"","text":"","name":"/P12077615/SN92954UG501RQ6"},{"result":"","text":"","name":"/P12077615/SN92954UG501RR7"},{"result":"","text":"","name":"/P12077615/SN92954UG501RS8"}],"result":"","text":""}
Potvrzení dílu POST request od 172.22.19.45:52932 obsah:wp=55130069&userid=8827&proc=10334429060&barcode=H15500000921&res=&info= url:http://172.22.19.112:1013/api/result
Odpověd odeslána: {"result":"","text":""}
Přílohy:
========
Dokumentace původního rozhraní Api proto:
https://bartech.sharepoint.com/sites/NVision/Sdilene%20dokumenty/7_Dokumentace/API%20Proto-20170905.zip