Engineering tools · EPC · GS1

Ngbanwe Koodu RFID

Ngwaọrụ ntụgharị n'etiti SGTIN-96 (RFID Hex) na Barcode (GTIN) + Nọmba Serial. Dakọtara na ndị na-agụ RFID ọkọlọtọ dị ka Zebra, Chainway, Impinj, Nextwaves. Dabere na GS1 EPC Tag Data Standard.

Ngbanwe RFID

Tụgharịa n'etiti RFID Hex (SGTIN-96) na GS1 Barcode (GTIN) + Nọmba Serial.

Scheme:SGTIN-9696 bits / Header 0x30

Usoro koodu & Nzọụkwụ site na Nzọụkwụ

// 1. Binary Conversion

src = bin(0x3076215F0C5D974000000001) // = "001100000111011000100001010111110000110001011101100101110100000000000000000000000000000000000001"

// 2. Extract Fields (Bit Slice)

header = src[0:8] "00110000" 0x30
filter = src[8:11] "011" 3
partition = src[11:14] "101" 5

// 3. Determine Partition Rule (Partition 5)

rule = PARTITIONS[5]
// Company Bits: 24, Item Bits: 20

// 4. Extract Company, Item & Serial

company = src[14:38] "100010000101011111000011" 8935363
itemRef = src[38:58] "00010111011001011101" 095837
serial = src[58:96] "00000000000000000000000000000000000001" 1

Koodu Onye Mmepụta

Jiri usoro ihe a na-arụ ọrụ na oru ngo gi. Họrọ asụsụ n'okpuru.

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}

Kọwaa

SGTIN-96 bụ eriri binary nke 96-bit kewara n'akụkụ 6:

HDRFLTPRTCMP (24)ITEM (20)SERIAL (38)
Isi (8 bit)Bits 0-8 (8)
001100000x30

Usoro izizi (00110000) nke na-egosi nke a dị ka SGTIN-96.

Nzacha (3 bit)Bits 8-11 (3)
0113

Ụdị ihe (dịka 1 = Retail Retail). Lee Ntuziaka Ntụaka n'okpuru.

Nkewa (3 bit)Bits 11-14 (3)
1015

Nkebi 5 pụtara: Koodu ụlọ ọrụ na-ewe obere 24, Koodu ngwaahịa na-ewe obere 20.

Mmalite Ụlọ ỌrụBits 14-38 (24)
1000100001010111110000118935363

Koodu ụlọ ọrụ pụrụ iche nke GS1 kenyere.

Ntughari IheBits 38-58 (20)
00010111011001011101095837

Koodu ngwaahịa gị kpọmkwem.

Nọmba Usoro (38 bit)Bits 58-96 (38)
000000000000000000000000000000000000011

Ihe eji amata ihe pụrụ iche maka ngwaahịa anụ ahụ ọ bụla.

Na-ahụ mmekọrịta dị n'etiti barcode anụ ahụ gị na koodu ngwaahịa eletrọnịkị (EPC).

Ihe osise na-egosi njikọ dị n'etiti Barcode (GTIN) na SGTIN-96 URI
  1. Nzọụkwụ 1: Kpebie uru isiokwu binary maka usoro EPC. Uru isiokwu binary maka SGTIN-96 bụ “00110000.”
  2. Nzọụkwụ 2: Họrọ Uru Nkebi dabere na ọnụọgụgụ ọnụọgụgụ dị na Company Prefix site na Tebụl Uru Nkebi.
  3. Nzọụkwụ 3: Tụgharịa Uru nzacha, Uru Nkebi, Company Prefix, Item Reference, na Serial # ka ọ bụrụ uru binary.
  4. Nzọụkwụ 4: Jikọta n'usoro Isiokwu, Nzacha, Nkebi, Company Prefix, Item Reference, na Serial # uru binary iji mepụta Binary EPC.

Ntuziaka ntụaka SGTIN-96

UruNkọwa
0Ndị Ọzọ Niile
Eji maka ihe ndị na-adabaghị na ụdị ndị ọzọ. A naghị eji ya eme ihe na ire ahịa n'ozuzu.
1Ebe Ire (POS) Ihe Ahia
Otu ndị ahịa na-ere ahịa na Ebe Ire. Ihe atụ: Otu karama ntutu isi.
2Ikpe Zuru Ezu maka Mbupu
Otu mbupu ọkọlọtọ nwere ọtụtụ ihe. Ihe atụ: Katọn nke karama ntutu isi 12. Dị oke mkpa maka ngwa ngwa iji mata 'otu ikpe' na 'otu ihe'.
3Edebere
Edebere maka ojiji n'ọdịnihu.
4Otu Ihe Ahia N'ime
Otu otu dị ntakịrị karịa ikpe zuru oke, na-abụkarị maka ngosi shelf ma ọ bụ njikwa. Ihe atụ: 3-pack nke a na-ekpuchi n'ime katọn bụ isi.
5Edebere
Edebere maka ojiji n'ọdịnihu.
6Nchaji Unit
Otu nnukwu ngalaba ngwa ahịa, nke na-abụkarị pallet nwere ọtụtụ ikpe.
7Akụkụ dị n'ime Consumer Unit
Akụkụ kpọmkwem n'ime otu onye na-azụ ahịa. Ihe atụ: Mkpuchi batrị dị n'ime ihe egwuregwu ụmụaka.
UruỤlọ Ọrụ PrefixIhe Ntugharị
040 Bits / 12 Nọmba4 Bits / 1 Nọmba
137 Bits / 11 Nọmba7 Bits / 2 Nọmba
234 Bits / 10 Nọmba10 Bits / 3 Nọmba
330 Bits / 9 Nọmba14 Bits / 4 Nọmba
427 Bits / 8 Nọmba17 Bits / 5 Nọmba
524 Bits / 7 Nọmba20 Bits / 6 Nọmba
620 Bits / 6 Nọmba24 Bits / 7 Nọmba

SGTIN-96 Ajụjụ A Na-ajụkarị

  • Ọ na-agwa sistemụ ahụ ọkwa nkwakọ ngwaahịa nke tag. Ọ bụrụ na sistemụ na-agụ tag 'Ikpe' (Nzacha 2), ọ maara na ọ nwere ọtụtụ ihe. Nke a na-egbochi ịgụ okpukpu abụọ (dịka, ịgụ ikpe dị ka otu otu) ma na-enye ohere maka nkwenye mbupu ziri ezi.
  • Ikpe (Nzacha 2) bụ isi ngalaba mbupu eji maka njem. Ime Ime (Nzacha 4) bụ nkewa n'ime ikpe ahụ, na-abụkarị maka njikwa ma ọ bụ ngosi dị mfe (dị ka 6-pack n'ime ikpe 24-can). Sistemụ ngwa ngwa na-eso Ikpe; Ụlọ ahịa nwere ike ijikwa Inner Packs nke ọma.
  • Ntugharị ga-ada ma ọ bụ mepụta Barcode na-ezighi ezi. Nkewa na-ekpebi kpọmkwem ebe Mmalite Ụlọ Ọrụ na-akwụsị na Ntụaka Ihe na-amalite. Ọ bụrụ na 'nkewa' a ezighi ezi, ị ga-enweta Koodu Ụlọ Ọrụ dị iche karịa nke e bu n'obi.
  • GTIN (Barcode) ọkọlọtọ na-amata naanị ụdị ngwaahịa (dịka, '12oz Soda'). SGTIN-96 na-agbakwunye Nọmba Usoro, na-enye can ọ bụla otu njirimara pụrụ iche. Nke a na-eme ka nchọpụta ọkwa ihe, na-enye gị ohere ịgbaso kpọmkwem ihe a rere, zuru ohi, ma ọ bụ kwụsịrị.
  • Ee. Dị ka egosiri na ntụgharị dị n'elu, eriri SGTIN-96 nwere GTIN-14 zuru oke. Site na iwepụ Nọmba Usoro na ozi isi, ị nwere ike iwu barcode mbụ nke ọma.
  • Isi (0x30) bụ prefix 8-bit ọkọlọtọ nke GS1 kọwapụtara. Ọ na-agwa onye na-agụ RFID ọ bụla: "A na-eji SGTIN-96 ọkọlọtọ koodu tag a." Isi ndị ọzọ dị maka ụkpụrụ dị iche iche (dị ka SSCC maka pallets ma ọ bụ GIAI maka akụ).