RFID Konverter Kodova
RFID Konverter
Konvertujte između RFID Hex (SGTIN-96) i GS1 Barkoda (GTIN) + Serijski Broj.
EPC URIs
Logika Kodiranja & Korak po Korak
// 1. Binary Conversion
// 2. Extract Fields (Bit Slice)
// 3. Determine Partition Rule (Partition 5)
// 4. Extract Company, Item & Serial
Kod za Programere
Koristite ovu logiku alata u vašem projektu. Odaberite jezik ispod.
1// TypeScript / JavaScript SGTIN-96 Utils
2
3export const GS1_PARTITION_TABLE = [
4 { value: 0, partition: 0, companyPrefixBits: 40, itemReferenceBits: 4, companyDigits: 12, itemDigits: 1 },
5 { value: 1, partition: 1, companyPrefixBits: 37, itemReferenceBits: 7, companyDigits: 11, itemDigits: 2 },
6 { value: 2, partition: 2, companyPrefixBits: 34, itemReferenceBits: 10, companyDigits: 10, itemDigits: 3 },
7 { value: 3, partition: 3, companyPrefixBits: 30, itemReferenceBits: 14, companyDigits: 9, itemDigits: 4 },
8 { value: 4, partition: 4, companyPrefixBits: 27, itemReferenceBits: 17, companyDigits: 8, itemDigits: 5 },
9 { value: 5, partition: 5, companyPrefixBits: 24, itemReferenceBits: 20, companyDigits: 7, itemDigits: 6 },
10 { value: 6, partition: 6, companyPrefixBits: 20, itemReferenceBits: 24, companyDigits: 6, itemDigits: 7 },
11];
12
13export function encodeSgtin96(gtin: string, serial: string, filter: number) {
14 gtin = gtin.padStart(14, "0");
15 const p = GS1_PARTITION_TABLE.find(rule => {
16 const cp = parseInt(gtin.slice(1, 1 + rule.companyDigits));
17 const ir = parseInt(gtin[0] + gtin.slice(1 + rule.companyDigits, 13));
18 return cp < (1 << rule.companyPrefixBits) && ir < (1 << rule.itemReferenceBits);
19 });
20 if (!p) throw new Error("Invalid GTIN for SGTIN-96");
21
22 const cpVal = parseInt(gtin.slice(1, 1 + p.companyDigits));
23 const irVal = parseInt(gtin[0] + gtin.slice(1 + p.companyDigits, 13));
24
25 let b = (0x30).toString(2).padStart(8,"0");
26 b += filter.toString(2).padStart(3,"0");
27 b += p.partition.toString(2).padStart(3,"0");
28 b += cpVal.toString(2).padStart(p.companyPrefixBits,"0");
29 b += irVal.toString(2).padStart(p.itemReferenceBits,"0");
30 b += parseInt(serial).toString(2).padStart(38,"0");
31 return binaryToHex(b);
32}
33
34export function decodeSgtin96(hex: string) {
35 const b = hexToBinary(hex);
36 const pVal = parseInt(b.substring(11, 14), 2);
37 const rule = GS1_PARTITION_TABLE.find(r => r.partition === pVal);
38 if (!rule) throw new Error("Invalid Partition");
39
40 const cp = parseInt(b.substring(14, 14 + rule.companyPrefixBits), 2);
41 const ir = parseInt(b.substring(14 + rule.companyPrefixBits, 14 + rule.companyPrefixBits + rule.itemReferenceBits), 2);
42 const serial = parseInt(b.substring(14 + rule.companyPrefixBits + rule.itemReferenceBits, 96), 2);
43
44 const cpStr = cp.toString().padStart(rule.companyDigits, "0");
45 const irStr = ir.toString().padStart(rule.itemDigits, "0");
46 const gtinCore = irStr[0] + cpStr + irStr.substring(1);
47
48 // Check digit calculation
49 let sum = 0;
50 for (let i = 0; i < 13; i++) {
51 sum += parseInt(gtinCore[i]) * (i % 2 === 0 ? 3 : 1);
52 }
53 const check = (10 - (sum % 10)) % 10;
54
55 return {
56 gtin: gtinCore + check,
57 serial: serial.toString()
58 };
59}
60
61function binaryToHex(b: string) {
62 let hex = "";
63 for (let i = 0; i < b.length; i += 4) {
64 hex += parseInt(b.substring(i, i + 4), 2).toString(16).toUpperCase();
65 }
66 return hex;
67}
68
69function hexToBinary(h: string) {
70 let bin = "";
71 for (let i = 0; i < h.length; i++) {
72 bin += parseInt(h[i], 16).toString(2).padStart(4, "0");
73 }
74 return bin;
75}Objašnjenje
SGTIN-96 je binarni niz od 96 bita podijeljen na 6 dijelova:
001100000x30Standardni prefiks (00110000) koji identificira ovaj SGTIN-96.
0113Tip objekta (npr. 1 = Maloprodajna roba). Pogledajte Referentni vodič ispod.
1015Particija 5 znači: Kod Kompanije zauzima 24 bita, Kod Proizvoda zauzima 20 bita.
1000100001010111110000118935363Jedinstveni kod kompanije dodijeljen od strane GS1.
00010111011001011101095837Vaš specifični kod proizvoda.
000000000000000000000000000000000000011Jedinstveni identifikator za svaki specifični fizički proizvod.
Razumijevanje SGTIN-a i GTIN-a
Vizualizacija odnosa između vašeg fizičkog barkoda i elektronskog koda proizvoda (EPC).

Logika Kodiranja (Korak po Korak)
- Korak 1: Odredite binarnu vrijednost headera za EPC shemu. Binarna vrijednost headera za SGTIN-96 je "00110000".
- Korak 2: Odaberite Vrijednost Particije na osnovu broja cifara u Prefiksu Kompanije iz tablice Vrijednosti Particije.
- Korak 3: Konvertujte Filter, Particiju, Prefiks Kompanije, Referencu Artikla i Serijski Broj u binarnu vrijednost.
- Korak 4: Spojite redom Header, Filter, Particija, Prefiks Kompanije, Referenca Artikla i Serijski Broj da formirate Binarni EPC.
SGTIN-96 Referentni Vodič
| Vrijednost | Opis |
|---|---|
| 0 | Svi Ostali Koristi se za artikle koji ne odgovaraju drugim kategorijama. Rijetko se koristi u općoj maloprodaji. |
| 1 | Artikal za Prodaju (POS) Standardna potrošačka jedinica prodata na Prodajnom Mjestu. Primjer: Jedna boca šampona. |
| 2 | Puna Kutija za Transport Standardna jedinica za isporuku koja sadrži više artikala. Primjer: Karton od 12 boca šampona. Kritično za logistiku da razlikuje 'jednu kutiju' od 'jednog artikla'. |
| 3 | Rezervisano Rezervisano za buduću upotrebu. |
| 4 | Unutarnja Grupa Artikala Grupa manja od pune kutije, često za police ili rukovanje. Primjer: Trojka umotana u plastiku unutar glavne kutije. |
| 5 | Rezervisano Rezervisano za buduću upotrebu. |
| 6 | Jedinični Teret Velika logistička jedinica, tipično paleta koja sadrži više kutija. |
| 7 | Komponenta unutar Potrošačke Jedinice Specifičan dio unutar potrošačke jedinice. Primjer: Poklopac baterije unutar igračke. |
| Vrijednost | Prefiks Kompanije | Referenca Artikla |
|---|---|---|
| 0 | 40 Bitovi / 12 Cifre | 4 Bitovi / 1 Cifre |
| 1 | 37 Bitovi / 11 Cifre | 7 Bitovi / 2 Cifre |
| 2 | 34 Bitovi / 10 Cifre | 10 Bitovi / 3 Cifre |
| 3 | 30 Bitovi / 9 Cifre | 14 Bitovi / 4 Cifre |
| 4 | 27 Bitovi / 8 Cifre | 17 Bitovi / 5 Cifre |
| 5 | 24 Bitovi / 7 Cifre | 20 Bitovi / 6 Cifre |
| 6 | 20 Bitovi / 6 Cifre | 24 Bitovi / 7 Cifre |
Često Postavljana Pitanja o SGTIN-96
- On govori sistemu nivo pakovanja oznake. Ako sistem pročita oznaku 'Kutija' (Filter 2), zna da sadrži više artikala. Ovo sprječava dvostruko brojanje (npr. brojanje kutije kao jedne jedinice) i omogućava validnu verifikaciju isporuke.
- Kutija (Filter 2) je primarna jedinica za isporuku koja se koristi za transport. Unutarnja Grupa (Filter 4) je podjela unutar te kutije, obično za lakše rukovanje ili izlaganje (kao trojka unutar kutije od 24 komada). Logistički sistemi prate Kutije; Prodajne operacije bi mogle efikasno rukovati Unutarnjim Grupama.
- Dekodiranje će propasti ili proizvesti pogrešan Barkod. Particija određuje tačno gdje Prefiks Kompanije završava i gdje Referenca Artikla počinje. Ako je ova 'tačka podjele' pogrešna, dobit ćete drugi Kod Kompanije nego što je namijenjeno.
- Standardni GTIN (Barkod) samo identificira tip proizvoda (npr. '330ml Soda'). SGTIN-96 dodaje Serijski Broj, dajući svakoj limenci jedinstveni identitet. Ovo omogućava praćenje na nivou artikla, omogućavajući vam da pratite tačno koji specifični artikal je prodan, ukraden ili istekao.
- Da. Kao što je prikazano u konverteru iznad, SGTIN-96 string sadrži kompletan GTIN-14. Uklanjanjem Serijskog Broja i informacija headera, možete savršeno rekonstruisati originalni maloprodajni barkod.
- Header (0x30) je standardni 8-bitni prefiks definisan od strane GS1. Jednostavno govori bilo kojem RFID čitaču: "Ova oznaka je kodirana koristeći standard SGTIN-96." Drugi headeri postoje za različite standarde (kao SSCC za palete ili GIAI za imovinu).