Engineering tools · EPC · GS1

Tiontaire Cód RFID

Uirlis tiontaire idir SGTIN-96 (Heicse RFID) agus Barrachód (GTIN) + Sraithuimhir. Ag luí le léitheoirí RFID caighdeánacha cosúil le Zebra, Chainway, Impinj, Nextwaves. Bunaithe ar GS1 EPC Tag Data Standard.

Tiontaire RFID

Tiontaigh idir RFID Hex (SGTIN-96) agus Barrachód GS1 (GTIN) + Uimhir Shraithuimhreacha.

Scheme:SGTIN-9696 bits / Header 0x30

Loighic Cód & Céim ar Chéim

// 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

Cód Forbróra

Úsáid an loighic fóntais seo i do thionscadal. Roghnaigh teanga thíos.

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}

Mínigh

Is teaghrán dénártha 96-giotán é SGTIN-96 atá roinnte ina 6 chuid:

HDRFLTPRTCMP (24)ITEM (20)SERIAL (38)
Ceannteideal (8 ngiotán)Bits 0-8 (8)
001100000x30

Réimír chaighdeánach (00110000) a shainaithníonn é seo mar SGTIN-96.

Scagaire (3 giotán)Bits 8-11 (3)
0113

Cineál réada (e.g. 1 = Miondíol Miondíola). Féach an Treoir Thagartha thíos.

Deighilt (3 ngiotán)Bits 11-14 (3)
1015

Ciallaíonn Deighilt 5: Tógann Cód Cuideachta 24 giotán, tógann Cód Táirge 20 giotán.

Réimír CuideachtaBits 14-38 (24)
1000100001010111110000118935363

Cód cuideachta uathúil arna shannadh ag GS1.

Tagairt MíreBits 38-58 (20)
00010111011001011101095837

Do chód táirge ar leith.

Uimhir Shraithuimhreacha (38 ngiotán)Bits 58-96 (38)
000000000000000000000000000000000000011

Aitheantóir uathúil do gach táirge fisiceach ar leith.

An gaol idir do bharacód fisiciúil agus an cód táirge leictreonach (EPC) á léiriú.

Léaráid a thaispeánann an nasc idir Barcode (GTIN) agus SGTIN-96 URI
  1. Céim 1: Socraigh luach ceannteidil dhénártha don scéim EPC. Is é an luach ceannteidil dhénártha do SGTIN-96 ná “00110000.”
  2. Céim 2: Roghnaigh an Luach Deighilte bunaithe ar líon na n-uimhreacha sa Réimír Cuideachta ón Tábla Luacha Deighilte.
  3. Céim 3: Tiontaigh an Luach Scagaire, Luach Deighilte, Réimír Cuideachta, Tagairt Míre, agus # Sraithuimhreacha go luach dénártha.
  4. Céim 4: Comhcheangail na luachanna dénártha Ceannteideal, Scagaire, Deighilt, Réimír Cuideachta, Tagairt Míre, agus # Sraithuimhreacha d'fhonn an EPC Dénártha a chruthú.

Treoir Thagartha SGTIN-96

LuachCur síos
0Gach Eile
Úsáidtear le haghaidh míreanna nach n-oireann do chatagóirí eile. Is annamh a úsáidtear i ngnáth-mhiondíol.
1Mír Trádála an Díola (POS)
An gnáth-aonad tomhaltóra a dhíoltar ag an Díol. Sampla: Buidéal seampú amháin.
2Cás Iomlán le haghaidh Iompair
Aonad loingseoireachta caighdeánach ina bhfuil iliomad míreanna. Sampla: Cartán de 12 buidéal seampú. Ríthábhachtach don loighistic chun 'cás amháin' a idirdhealú ó 'mhír amháin'.
3Curtha in áirithe
Curtha in áirithe le húsáid sa todhchaí.
4Grúpáil Míreanna Trádála Pacáiste Istigh
Grúpáil níos lú ná cás iomlán, go minic le haghaidh taispeána ar sheilf nó láimhseála. Sampla: 3-phacáiste fillte le crapadh taobh istigh den phríomhchartán.
5Curtha in áirithe
Curtha in áirithe le húsáid sa todhchaí.
6Ualach Aonaid
Aonad loighistice mór, pailléad de ghnáth ina bhfuil roinnt cásanna.
7Comhpháirt taobh istigh den Aonad Tomhaltóra
Cuid shonrach taobh istigh d'aonad tomhaltóra. Sampla: An clúdach ceallraí taobh istigh de bhréagán.
LuachRéimír CuideachtaTagairt Míre
040 Giotáin / 12 Digití4 Giotáin / 1 Digití
137 Giotáin / 11 Digití7 Giotáin / 2 Digití
234 Giotáin / 10 Digití10 Giotáin / 3 Digití
330 Giotáin / 9 Digití14 Giotáin / 4 Digití
427 Giotáin / 8 Digití17 Giotáin / 5 Digití
524 Giotáin / 7 Digití20 Giotáin / 6 Digití
620 Giotáin / 6 Digití24 Giotáin / 7 Digití

Ceisteanna Coitianta SGTIN-96

  • Inseoidh sé don chóras an leibhéal pacáistithe den chlib. Má léann córas clib 'Cás' (Scagaire 2), beidh a fhios aige go bhfuil iliomad míreanna ann. Cuireann sé seo cosc ar dhúbailte-chomhaireamh (e.g., cás a chomhaireamh mar aonad amháin) agus ceadaíonn sé fíorú bailí loingseoireachta.
  • Cás (Scagaire 2) is é an príomh-aonad loingseoireachta a úsáidtear le haghaidh iompair. Is fo-roinn laistigh den chás é Pacáiste Istigh (Scagaire 4), de ghnáth le haghaidh láimhseáil nó taispeáint níos éasca (cosúil le 6-phacáiste taobh istigh de chás 24-canna). Rianaíonn córais lóistíochta Cásanna; d'fhéadfadh oibríochtaí Stórais Pacáistí Istigh a láimhseáil go héifeachtach.
  • Theipfidh ar an díchódú nó cuirfidh sé Barcode mícheart ar fáil. Cinnfidh an Deighilt go díreach cá dtiocfaidh an Réimír Cuideachta chun críche agus cá dtosóidh an Tagairt Míre. Má tá an 'pointe scoilte' seo mícheart, gheobhaidh tú Cód Cuideachta difriúil ná mar a bhí beartaithe.
  • Aithníonn GTIN (Barcode) caighdeánach an cineál táirge amháin (e.g., '12oz Soda'). Cuireann SGTIN-96 Uimhir Shraithuimhreach leis, rud a thugann aitheantas uathúil do gach canna. Cuireann sé seo ar chumas inrianaitheacht ar leibhéal na míre, rud a ligeann duit a rianú go díreach cén mhír shonrach a díoladh, a goideadh, nó a chuaigh in éag.
  • Sea. Mar a thaispeántar sa tiontaire thuas, tá an GTIN-14 iomlán sa teaghrán SGTIN-96. Trí an Uimhir Shraithuimhreach agus faisnéis an cheanntásc a bhaint, is féidir leat an barrachód miondíola bunaidh a atógáil go foirfe.
  • Is réimír caighdeánach 8-giotán é an Ceanntásc (0x30) arna shainmhíniú ag GS1. Inseoidh sé go simplí d'aon léitheoir RFID: "Tá an chlib seo códaithe ag baint úsáide as an gcaighdeán SGTIN-96." Tá ceanntásca eile ann do chaighdeáin éagsúla (cosúil le SSCC le haghaidh pailléid nó GIAI le haghaidh sócmhainní).