2. 条码与二维码基础

在SICK条码与二维码识别系统中,读码器能否稳定输出正确结果,首先取决于它面对的符号本身是什么结构。一维码、二维码、DPM码和堆叠码虽然都叫“码”,但它们的编码方式、信息容量、几何结构和识读难点差异很大。理解这些差异,才能正确选择读码器、镜头、光源和算法参数。

一维码:宽度调制与单轴扫描

一维码的本质是“宽度调制”。以最常见的Code 128为例,它用条和空的宽度组合表示字符,每个字符由3个条和3个空共11个模块组成,模块宽度是基本单位。Code 128有三个字符集A、B、C,分别覆盖控制字符、大小写字母数字和纯数字压缩。例如字符集C用两位数字编码为一个符号字符,因此编码“123456”时,前导符Start C之后只需3个符号字符,而不是6个,效率明显提高。

一维码的符号结构通常包括:静区、起始符、数据符、校验符、终止符。静区是条码两侧的空白区域,宽度一般不小于10个模块,用于让扫描器建立基准。校验符按模103计算,用于检测扫描错误。识读时,激光扫描器或线性CCD沿一条线扫过条码,测量条空宽度,再与阈值比较还原模块序列。

一维码的主要识读难点包括:条空边缘模糊导致宽度测量偏差;打印或喷码时墨水扩散使条变宽、空变窄;曲面或倾斜表面造成扫描线切过条码时比例失真;低对比度或反光表面使信号幅度不足。因此,一维码对运动方向、扫描线角度和景深较敏感,通常要求扫描线尽量垂直于条码方向。

二维码:矩阵定位与二维采样

二维码不再依赖单轴宽度,而是把数据分布在二维矩阵中。以Data Matrix为例,它由L形实线边框和虚线边框构成定位图形,内部是规则排列的模块。编码时,数据先经过Reed-Solomon纠错编码,再按矩阵尺寸填充。ECC 200是Data Matrix常用的纠错等级,纠错能力从约7%到约30%不等。例如一个20×20的Data Matrix符号,标称可容纳约44个数字或28个字母数字字符,具体容量随纠错等级变化。

QR码则使用三个角上的回字形定位图案和定时图案,支持版本1到版本40,版本1为21×21模块,每增加一个版本每边增加4个模块。QR码同样使用Reed-Solomon纠错,纠错等级L、M、Q、H分别对应约7%、15%、25%、30%的恢复能力。

二维码的识读过程通常包括:图像采集、二值化、定位图形检测、透视校正、模块采样、纠错解码。其难点在于:低对比度或光照不均导致二值化失败;局部污损或遮挡超过纠错能力;透视畸变使模块采样位置偏移;高密度符号在低分辨率下模块粘连。与一维码相比,二维码对扫描线方向不敏感,但对成像质量和定位图形完整性要求更高。

一维码 / 二维码 / DPM码 / 堆叠码 结构与识读对比 一维码 宽度调制 · 单轴扫描 静区/起始/数据/校验/终止 难点:边缘模糊、比例失真 二维码 矩阵定位 · 二维采样 定位图形 + Reed-Solomon纠错 难点:光照不均、透视畸变 DPM码 直接零件标记 · 低对比度 点刻/激光/电化学蚀刻 难点:反光、凹凸、背景干扰 堆叠码 多行一维码堆叠 PDF417 / Code 49 难点:行间串扰、行同步 典型识读链:图像采集 → 二值化 → 定位/校正 → 模块采样 → 纠错解码 → 输出 图像采集 二值化 定位/校正 模块采样 纠错解码 输出结果 关键参数与识读条件对比 一维码:模块宽度 ≥ 0.19 mm,静区 ≥ 10×模块,扫描线垂直条码 二维码:最小模块 ≥ 0.15 mm,纠错等级 L/M/Q/H,需完整定位图形 DPM码:对比度可低至 20%,需同轴光/低角度光,模块尺寸常 0.05–0.2 mm 堆叠码:行高 ≥ 0.25 mm,行间需同步,适合中等信息量标签

DPM码:直接零件标记的特殊挑战

DPM是Direct Part Marking的缩写,指直接在零件表面形成标记,而不是贴在标签上。常见工艺包括激光蚀刻、点刻、电化学蚀刻和喷墨。DPM码的符号结构通常仍是Data Matrix或QR码,但成像条件完全不同:标记与背景的对比度可能只有20%甚至更低;金属表面反光强烈;点刻形成的凹坑边缘不规则;曲面或粗糙表面导致光照不均。

识读DPM码时,光源选择比读普通标签更关键。同轴光适合镜面反射表面,低角度光适合点刻和蚀刻表面,因为低角度光能突出凹坑的阴影。SICK读码器通常提供多种光源模式和HDR高动态范围成像,以应对反光和低对比度。参数上,曝光时间、增益、二值化阈值和纠错等级需要联合调整。例如,对于点刻Data Matrix,可先使用低角度光,曝光时间设为200–500 μs,增益适中,再通过HDR合成多帧图像,最后用ECC 200高纠错等级解码。

堆叠码:一维码的二维扩展

堆叠码可以理解为把多个一维码行堆叠起来,典型代表是PDF417和Code 49。PDF417由多行条空组成,每行包含起始符、数据符、终止符,行与行之间通过行指示符关联。它既有线性扫描的兼容性,又能承载比一维码更多的信息。PDF417的每个符号字符由17个模块组成,包含4个条和4个空,因此得名。

堆叠码的识读难点在于行间同步和行间串扰。如果扫描线倾斜,可能同时扫到两行,导致解码失败。因此,读码器需要先检测行边界,再逐行采样。对于PDF417,通常要求扫描线角度偏差不超过±5°,且每行至少被完整扫描一次。堆叠码适合中等信息量、需要打印在有限高度标签上的场景,例如物流面单和证件。

选型与参数设置建议

在实际工程中,选择码制时可以参考以下判断:信息量小于20个字符、标签空间充足、成本敏感,优先选一维码;信息量较大、需要纠错、允许二维成像,选二维码;零件表面直接标记、无法贴标签,选DPM码;需要兼容线性扫描又希望信息量高于一维码,选堆叠码。

参数设置上,一维码重点调整扫描速度、景深和条空阈值;二维码重点调整曝光、增益、二值化方法和纠错等级;DPM码重点调整光源模式、HDR和对比度增强;堆叠码重点调整行检测灵敏度和扫描角度。无论哪种码,都应在实际产线上用标准样件验证首读率和误读率,而不是仅凭理论参数判断。

教学示例参数说明:上述曝光时间、模块尺寸、纠错等级等数值为常见工程参考范围,实际项目应以现场测试和读码器手册为准。