识别设备

上位机解析条码中的 AIM 标识符与 Symbol 标识符

Admin2026年10月2日

两者都是扫描器输出前缀,用来告诉上位机刚刚解码出来的条码是什么码制;区别在于:AIM Code ID 是国际标准(ISO/IEC 15424),Symbol Code ID 是 Zebra 厂商私有格式。

1. AIM Code Identifiers(AIM Code ID,标准码制标识符)

  • 格式:固定 3 字符 ]cm
    • ]:固定起始标记(ASCII 93)
    • c:码制字符(区分 Code128、DataMatrix、QR、UPC/EAN 等)
    • m:Modifier 修饰符,携带附加信息:是否校验、是否去除校验位、GS1 FNC1、Full ASCII 转换等
  • 标准归属:AIM Global 制定,ISO/IEC 15424,跨品牌通用(Zebra、seuic 都支持)
  • 示例:
    • ]C1:Code128,带 FNC1 → GS1-128
    • ]d0:DataMatrix
    • ]A0:Code39

适用场合

  1. 多品牌扫码器混合部署、WMS/MES 系统,需要跨设备兼容
  2. 同界面同时扫多种条码(Code39、Code128、DM、QR、GS1),需要程序自动区分码制,防止解析冲突(例如普通 Code39 内容刚好和 GS1 AI 前缀撞号)
  3. 工业产线、医疗器械、国防 UID、物流追溯,需要标准可移植方案
  4. 上位机软件需要获取附加解码状态(修饰符),比如是否 GS1、是否校验通过

2. Symbol Code Identifiers(Symbol Code ID,Symbol 私有码制 ID)

Symbol 是 Zebra 收购前的品牌,这个前缀是 Symbol 原厂私有方案,非国际标准

  • 格式:单字符前缀(只有 1 个字母,没有修饰位)
    • A=UPC/EAN;B=Code39;D=Code128;K=GS1-128;X=PDF417 等
  • 特点:只有码制类型,没有修饰信息;仅 Zebra/Symbol 扫描器原生支持,其他品牌读码器一般不支持这个前缀
  • 示例:D 代表 Code128;K代表 GS1-128

适用场合

  1. 老项目存量系统,基于 Symbol 旧扫描器开发,上位机程序只识别单字符前缀,不能改软件
  2. 简单场景,只需要区分码制,不需要 GS1/FNC1、校验状态这类附加信息
  3. 项目全设备都是 Zebra/Symbol 扫描枪,不混用其他品牌

核心对比表

项目 AIM Code Identifiers Symbol Code Identifiers
标准属性 ISO/IEC 15424,AIM 国际标准 Zebra (Symbol) 私有协议,非国标 / ISO
前缀长度 3 字符 ]cm 1 个字母
信息能力 码制 + 修饰符(GS1、校验、FNC1 等) 仅码制名称,无附加状态
设备兼容性 全品牌扫描器通用 仅 Zebra/Symbol 设备原生支持
移植性 高,更换读码器不用改上位机解析逻辑 低,换其他品牌枪就失效

选型建议

  • 新项目、MES/WMS、多码制混合、跨品牌读码器 → 优先 AIM Code ID
  • 老旧系统,原有上位机硬编码只识别 Symbol 单字符前缀,无法修改软件 → 使用 Symbol Code ID

注意:两者都是扫码器输出时附加在条码数据前面的前缀,不是打印在条码图形里,可在扫描器设置里开启 / 关闭,二选一启用,不要同时打开。