识别设备
上位机解析条码中的 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
适用场合
- 多品牌扫码器混合部署、WMS/MES 系统,需要跨设备兼容
- 同界面同时扫多种条码(Code39、Code128、DM、QR、GS1),需要程序自动区分码制,防止解析冲突(例如普通 Code39 内容刚好和 GS1 AI 前缀撞号)
- 工业产线、医疗器械、国防 UID、物流追溯,需要标准可移植方案
- 上位机软件需要获取附加解码状态(修饰符),比如是否 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
适用场合
- 老项目存量系统,基于 Symbol 旧扫描器开发,上位机程序只识别单字符前缀,不能改软件
- 简单场景,只需要区分码制,不需要 GS1/FNC1、校验状态这类附加信息
- 项目全设备都是 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
注意:两者都是扫码器输出时附加在条码数据前面的前缀,不是打印在条码图形里,可在扫描器设置里开启 / 关闭,二选一启用,不要同时打开。