Zebra Link-OS 无 ZBI 脱机双条码采集打印方案(AUTOEXEC.ZPL 表单方案)
特性:无需 ZBI 授权,依靠原生 Link-OS ZPL 表单 + SGD 面板指令,U 盘 / 闪存 E 盘加载,脱机独立运行,USB 扫码枪录入两个条码后自动打印标签。
一、方案原理
利用 Zebra Link-OS 内置表单(^DF / ^FN 变量表单),将启动脚本AUTOEXEC.ZPL存于打印机 E 盘。打印机上电自动运行 AUTOEXEC,通过 SGD 命令修改前面板屏幕提示文字;USB HID 扫码枪扫描条码填充 ^FN1、^FN2 两个变量,两个字段全部采集完成后自动打印预定义标签模板。
- 限制:面板提示仅支持 ASCII 字符(英文 / 数字,原生无 ZBI 无法中文屏幕提示)
- 硬件:ZT411 、ZT421、ZT610、ZT620、ZT231 + USB HID 扫码枪
- 存储:打印机内置 E: 闪存(也可使用 U 盘)
二、文件清单(2 个文件,上传至打印机 E:)
- AUTOEXEC.ZPL 【上电自启动脚本,屏幕提示 + 加载表单】
- FORM.ZPL 【标签模板,引用 FN1/FN2 两个条码变量】
1)AUTOEXEC.ZPL 完整源码
^XA
; 设置开机待机屏幕提示:扫描第一个条码
! U1 setvar "device.frontpanel.line1" "SCAN BARCODE #1"
! U1 setvar "device.frontpanel.line2" "WAIT FOR 1ST DATA"
; 加载E盘表单FORM.ZPL
^DFE:FORM.ZPL^FS
; 定义两个表单变量
^FN1^FS
^FN2^FS
; 打印完成后更新屏幕提示
! U1 setvar "device.frontpanel.line1" "PRINT DONE"
! U1 setvar "device.frontpanel.line2" "SCAN NEXT SET"
^XZ
2)FORM.ZPL 标签模板示例
^XA
^LL1000
^PW800
^FO50,50^BC,100,Y,N,N^FN1^FS ; 第一个条码
^FO50,200^A0,30,30^FN1^FS ; 条码1文本
^FO50,300^BC,100,Y,N,N^FN2^FS; 第二个条码
^FO50,450^A0,30,30^FN2^FS ; 条码2文本
^XZ
三、部署步骤
- 准备上面两个 ZPL 文件;
- 使用 Zebra Setup Utilities(ZSU)连接打印机,发送文件到打印机 E:(E 盘);
- 确认 USB 扫码枪接入打印机 USB Host 口,设置为 HID 键盘模式(关闭串口模式);
- 打印机重启,自动执行AUTOEXEC.ZPL,屏幕显示SCAN BARCODE #1;
- 流程:
- 扫描第 1 个条码 → 存入 FN1,等待第 2 次扫码
- 扫描第 2 个条码 → 存入 FN2,自动打印标签
- 打印完成,屏幕切换为PRINT DONE,等待下一组双条码扫描
四、屏幕提示控制指令单独说明
修改面板两行文字(SGD !U1 setvar,写在 ^XA ^XZ 块内)
;等待第1条码
! U1 setvar "device.frontpanel.line1" "SCAN BARCODE #1"
! U1 setvar "device.frontpanel.line2" "WAIT FOR 1ST DATA"
;等待第2条码
! U1 setvar "device.frontpanel.line1" "SCAN BARCODE #2"
! U1 setvar "device.frontpanel.line2" "WAIT FOR 2ND DATA"
;打印完成提示
! U1 setvar "device.frontpanel.line1" "PRINT DONE"
! U1 setvar "device.frontpanel.line2" "SCAN NEXT SET"
;恢复打印机默认屏幕文字
! U1 setvar "device.frontpanel.line1" ""
! U1 setvar "device.frontpanel.line2" ""
五、已知局限(无 ZBI 方案重点)
- 屏幕提示不支持中文,中文会乱码;想要屏幕中文弹窗,必须 ZBI 授权;
- 表单逻辑固定为 2 个变量,扫码顺序固定,缺少超时放弃、取消按键、弹窗交互;
- 屏幕是修改主页两行静态文字,不是弹窗,没有单独确认对话框;
- 不支持复杂分支逻辑(例如条码校验、长度判断,这类校验需要 ZBI);
- 扫码枪必须 HID 键盘模式,不要 USB 虚拟串口模式。
六、故障排查
- AUTOEXEC 不自动运行:确认文件上传到 E:,文件名严格大写AUTOEXEC.ZPL;
- 扫描后不打印:确认扫码枪是 HID 模式,表单变量 ^FN 序号匹配;
- 条码乱码:仅使用 ASCII 内容,不要 UTF-8 中文放入 FN 变量。