Chuyển đến nội dung

Mã hóa EPC

Trang này dành cho lúc bạn chuyển từ đọc thẻ sang tự sinh mã và ghi thẻ: hàng của bạn, mã của bạn. Bạn sẽ hiểu một mã EPC được ghép từ gì, sinh nó thế nào cho đúng chuẩn GS1, và quy trình ghi lên thẻ sao cho không tạo ra những chiếc thẻ sai không sửa được.

Tài liệu có thẩm quyền là GS1 EPC Tag Data Standard 2.3, phê chuẩn tháng 10 năm 2025, cùng GS1 Tag Data Translation cho quy tắc chuyển đổi máy đọc được. Trang này chỉ tóm phần bạn cần cho việc tích hợp; số liệu chi tiết đối chiếu về hai tài liệu đó.

Từ GTIN đến EPC

Hệ thống của bạn đã có GTIN, mã vạch 13 hay 14 số định danh loại sản phẩm. EPC chỉ làm thêm một việc: ghép GTIN với một số serial để định danh từng cá thể. Chuẩn dùng phổ biến nhất trong bán lẻ là SGTIN-96, gói cặp GTIN cộng serial vào đúng 96 bit:

Ví dụ một mã thật: EPC hex 3034257BF7194E4000001A85 giải mã ra GTIN-14 80614141123458, serial 6789, và tương đương Digital Link https://id.gs1.org/01/80614141123458/21/6789. Ba cách viết, một món hàng.

Muốn thử nhanh trước khi viết code, Nextwaves có công cụ web encode và decode SGTIN-96 để bạn đối chiếu kết quả bằng mắt.

Giải phẫu SGTIN-96

96 bit chia thành năm vùng:

text
Header 8 | Filter 3 | Partition 3 | Company prefix + Item reference 44 | Serial 38
  • Header 0x30 nói "đây là SGTIN-96", để máy đọc biết giải mã phần còn lại theo luật nào.
  • Filter gợi ý loại đóng gói, giúp đầu đọc lọc sơ bộ: 1 là hàng bán lẻ đơn chiếc, 2 là thùng, 4 là gói trong, 6 là unit load, 7 là linh kiện, 0 là các trường hợp khác; 35 để dành trong bảng chuẩn.
  • Partition cho biết ranh giới giữa company prefix và item reference nằm ở đâu trong 44 bit chung:
PartitionCompany prefix: số chữ số / bitItem reference: số chữ số / bit
012 / 401 / 4
111 / 372 / 7
210 / 343 / 10
39 / 304 / 14
48 / 275 / 17
57 / 246 / 20
66 / 207 / 24

Chọn partition theo đúng độ dài GS1 Company Prefix doanh nghiệp được cấp, lấy từ giấy tờ GS1, không đoán từ dữ liệu.

  • Serial 38 bit là phần bạn tự quản: cấp phát sao cho không bao giờ trùng trong cùng một GTIN. Cách an toàn nhất là một bộ đếm trong database, giống sequence cấp số hóa đơn.

Sinh mã và ghi thẻ

Quy trình bốn bước, và SDK có sẵn công cụ cho từng bước sau bước encode:

  1. Encode cặp GTIN cộng serial thành chuỗi hex SGTIN-96, theo bảng vùng bit ở trên và vector chuẩn trong GS1 TDS.
  2. Kiểm tra chuỗi trước khi ghi bằng validate_epc_hex, chặn từ sớm mã sai độ dài hay sai ký tự.
  3. Ghi lên thẻ bằng write_epc_tag. Trước khi ghi, thẻ đích phải được singulation, nghĩa là chỉ một thẻ trong vùng đọc; ghi khi có hai thẻ là không biết mình vừa ghi đè lên thẻ nào, xem thuật ngữ.
  4. Đọc lại và so sánh bằng check_write_epc. Bước này không bỏ được: lần ghi hỏng giữa chừng tạo ra một chiếc thẻ mang mã rác, và chỉ bước đọc lại mới phát hiện ra.

Chi tiết tham số của ba hàm nằm ở tham chiếu SDK, mục Ghi EPC.

Các chuẩn EPC khác

SGTIN-96 phủ hàng bán lẻ, nhưng GS1 TDS còn định nghĩa các chuẩn cho đối tượng khác, nhận ra bằng byte header đầu tiên của mã:

ChuẩnHeaderĐịnh danh
SGTIN-960x30Từng món hàng: GTIN + serial
SSCC-960x31Container vận chuyển, pallet
SGLN-960x32Vị trí, kèm extension
GRAI-960x33Tài sản quay vòng, như sọt và pallet nhựa
GIAI-960x34Tài sản riêng lẻ, như thiết bị
GSRN-960x2DQuan hệ dịch vụ

Gặp thẻ mà header không nằm trong bảng, tra trực tiếp GS1 TDS: chuẩn còn nhiều biến thể dài hơn 96 bit, như SGTIN-198 mang serial dạng chữ.

Trước khi ghi hàng loạt

Ghi vài chiếc thẻ thử thì dễ; ghi nghìn chiếc cho production cần bộ kiểm tra chặt hơn, vì thẻ ghi sai nằm rải trong kho là loại lỗi đắt nhất để thu hồi:

  • Chuẩn hóa chuỗi hex trước khi xử lý: đúng độ dài, đúng ký tự, đúng header, và giữ nguyên số 0 ở đầu qua mọi khâu, kể cả file Excel trung gian.
  • Kiểm tra check digit của GTIN và xác nhận company prefix đúng là của doanh nghiệp bạn, theo giấy tờ GS1.
  • Từ chối thẳng đầu vào âm, thập phân, rỗng hoặc vượt dải của vùng bit.
  • Chạy round-trip decode(encode(x)) với bộ vector chính thống của GS1 trước khi tin bộ encode của bạn.
  • Đừng ghi thẻ khi chưa xác minh độc lập rằng giá trị sắp ghi thuộc về đúng món hàng đích.
  • Và luôn đọc lại sau khi ghi, từng chiếc một, như bước 4 ở trên.

Danh sách đầy đủ cho ngày nghiệm thu nằm ở danh sách kiểm tra production, mục Encode và ghi thẻ.

Đọc tiếp

Tài liệu vận hành Easy Inventory và tích hợp RFID