了解如何设置 Zebra 打印机驱动程序,并从一线运营应用程序触发新的打印任务。
在本文中,您将了解……
- 如何通过设备门户设置 Zebra 打印机驱动程序
- 如何在 Tulip 中为打印标签添加动态值
- 如何在 Tulip 应用中使用触发器打印任务
您的生产线上是否设有发货或打包工位?当产品准备好进行打包和发货时,您能否实时打印定制标签?
您可以使用Zebra 打印机,结合 Tulip 应用中的动态数据,实时生成发货标签。
本指南将帮助您将 Zebra 打印机连接到 Edge 设备,并创建一个简单的应用程序,该应用程序可接收用户输入并生成定制标签。
功能与要求
根据运行 Tulip Player 的设备类型和打印机功能,可以通过几种不同的方式直接从 Tulip 调用 Zebra 打印机。请参阅下表:
联网的 Zebra 打印机可通过 Zebra 网络打印机驱动程序(适用于 Windows Player)或 Zebra 打印机驱动程序(适用于 Tulip 边缘设备)与 Tulip 集成。 支持 RS-232 的 Zebra 打印机则可通过“串行(仅限 Player)”驱动程序(适用于 Windows Player)或“通用串行”驱动程序(适用于 Tulip 边缘设备)进行集成。
Tulip 边缘设备还可以通过 Node-RED 经由 RS-232 连接到 Zebra 打印机,为高级用户提供更大的灵活性。
最后,此处列出的所有连接方式均可支持任意数量的 Zebra 打印机,唯一限制在于 RS-232 通信时硬件端口的可用性。
将 Zebra 打印机连接到边缘设备
首先,您需要打印机的 IP 地址。要获取该地址,您需要打印一张网络卡,其中将包含打印机的 IP 地址。
最简单的方法是长按 Zebra 打印机上的按钮,直到 LED 指示灯闪烁一次,然后松开。打印机将打印出一连串标签。
如果最上面的标签上未显示 IP 地址,说明 Zebra 打印机尚未连接到网络。如果是刚开机,请等待一秒钟让其启动。如果已开机一段时间,请检查连接
注意!该标签上的 IP 地址会包含前导零,以确保每个字节长度为三个字符。Tulip 无法识别这种格式!您必须去除前导零——例如,010.128.000.005 应改为 10.128.0.5
如果这样行不通,请按照以下说明获取网卡。
无论哪种情况,结果都会类似于以下形式:

If your network resets, your printer may get a new IP address. If that happens, you will need to redo this tutorial with the new IP address.
然后,在电脑上登录设备门户,并 选择左侧菜单中的 “驱动程序”选项。

接着,从驱动程序列表中选择Zebra 打印机,并将开关拨至**“开**”的位置。

连接方式
连接 Zebra 打印机时,唯一需要考虑的因素是插入的端口。
RJ-45
请使用此类连接进行网络通信。您可以通过以下方式实现:
- Zebra 网络打印机驱动程序 - 来自 Player。这是一种易于使用的方法,因为您可以在触发器编辑器中完成所有 ZPL 配置。无需进行设备配置。同一网络中的任何 Player 均可访问任意打印机,这使得更换设备或远程调用设备变得非常方便。
请注意,根据现场的 DHCP 设置,如果 IP 地址发生变化,连接可能会中断。为此,我们建议设置静态 IP 或定期检查 IP 配置。
- Zebra 打印机驱动程序——来自边缘设备:使用边缘设备的局域网端口,可以轻松获取打印机的 IP 地址,且该 IP 地址实际上是静态的,即不会发生变化。此方法需要在驱动程序配置中预先创建模板。您在应用程序中输入的内容是一个由竖线分隔的字符串。 例如:var1|var2|var3
在以下情况下,此连接方式可能会失效:
- 打印机的 IP 地址发生变化
- IP 地址输入时带前导零
- 打印机连接到 WAN 而非 LAN(仅限边缘设备)
- 发送网络消息的设备无法访问该打印机(例如:它们位于不同的网络中,但试图使用本地 IP 地址)
DB9
请使用此类连接进行 RS-232 通信。可通过以下方式实现:
- Player(仅串行)驱动程序:该驱动程序将在您的 Windows 计算机上显示为 COM 设备。所有 zcode 的配置、修改和写入操作均在“触发器编辑器”中进行。
- 通用串行驱动程序(来自边缘设备)所有配置必须在设备的“驱动程序配置”页面中进行。
- Node-RED:此方式提供最大的灵活性。
在以下情况下,此连接方式可能会中断:
- 您将打印机连接的端口更改为与最初指定不同的端口
- 您发送了空字符串。例如,如果表达式中存在任何值为空的变量,整个表达式编译后将被视为空。Tulip 不会触发错误,但打印机将无法打印任何内容。
- 表达式中包含换行符,例如按下 Enter 键或粘贴多行 ZPL 代码。Tulip 不会显示错误,但打印机将无法打印任何内容。
USB
This method is not supported by Tulip.
此连接方式用于与计算机通信,需要安装驱动程序。您应仅将其用于配置标签打印。
配置 Zebra 打印机驱动程序
首先,在相应的文本框中输入打印机的 IP 地址。如果 IP 地址开头有 0(例如 000),应将其简化为一个 0。

例如,上文中的 IP 地址实际上是 010.000.000.224。
之后,点击 zplTemplates 标签旁边的**+**按钮以自定义驱动程序。如果您需要打印多种类型的标签,则需要创建多个模板。

随后,您将看到两个部分:1.模板名称 2.数据
“数据”部分有一个名为**“zpl 代码**”的子字段。

要继续操作,您必须能够添加要打印的标签对应的 ZPL 代码。如果您需要学习如何编写 ZPL 代码,请查阅相关文档。
若要在 ZPL 代码中包含来自 Tulip 应用的变量,您应添加多个 ZPL 代码字段。您需要根据希望插入 Tulip 变量的位置来拆分代码。
例如,假设您想要制作以下标签。

该标签包含两个自定义字段:1. 标题“Hello?”2. 自定义条形码值。
为了将 Tulip 变量值插入条形码的这些区域,您必须将代码拆分为三个独立的 ZPL 代码字段。
在 Tulip 中,具体如下所示:

在每个 ZPL 代码字段之间,您可以在应用编辑器中添加变量值。最后一个字段包含**^XZ**,这表示脚本的结束。
如果您想在 ZPL 代码中尝试不同的值,我们推荐使用 Labelary。它提供了一个用于编辑 ZPL 的文本编辑器。请确保每英寸点数(DPI)的值与您的打印机设置一致。
以下是 Labelary 中的一个示例,其中“Hello?”文本代替了 Tulip 中的变量值。

在上例中,如果您使用“Hello?”作为来自 Tulip 的第一个变量值,则需将“Hello?”之前的所有代码复制到第一个 ZPL 代码字段中。
在设备门户(Device Portal)的 Zebra 打印机驱动程序页面上点击**“保存**”,随后您即可在应用程序中设置打印逻辑。
此外,您还可以使用ZebraDesigner 3软件以非常流畅的方式设计标签。该软件会自动为您的设计生成 ZPL 代码,您可以将其直接复制/粘贴到 Tulip 应用中。目前,这款 Zebra 软件仅支持 Windows 设备。 您需要下载 Zebra Designer 3,并下载您计划使用的打印机的相应驱动程序。保存设计好的标签,并在记事本中打开,将 ZPL 代码复制到您的 Tulip 触发器中。
从应用程序打印标签
As of r235, Form steps have been disabled for all new Tulip Instances.
让我们创建一个简单的测试应用,要求操作员通过“表单步骤”添加 2 个自定义值,然后将它们打印在预配置的标签上。提醒:这意味着您的 Zebra 驱动程序应包含三个 ZPL 代码字段。
创建一个新应用程序,然后创建一个包含两个字段的表单步骤:1. name 2. number
这两个字段均应为文本字段。同时将这些字段保存到名为“name”和“number”的变量中。

然后,为这两个字段各添加一个包含变量文本的步骤,并添加一个名为“Print”的按钮。

创建一个在按下按钮时触发的触发器。Then语句应如下开始:

- “运行设备函数”
- "Zebra打印机"
- "自定义模板"
- “在此工位。”
由于 Tulip 将通过在“设备门户”上运行的驱动程序与 Zebra 打印机进行通信,因此您必须将边缘设备连接到**“车间”**选项卡中运行测试应用的同一工作站。

接下来,在同一个then语句中,您会看到这一行:

在此情况下,您正在调用名为“kevin Demo”的 ZPL 模板。以下是该语句的最后一行:

这行代码将通过“静态文本”选项,将应用程序中的所有自定义值插入其中。每个值之间必须使用竖线“|”分隔,并按希望插入到 ZPL 代码中的顺序排列。
在此情况下,您应添加:
variable.name| variable.number
这意味着“name”变量的值将插入到 ZPL 代码的前两个字段之间,而“number”变量的值将插入到 ZPL 代码的第二和第三个字段之间。
ZPL 代码如下所示:

现在是测试应用程序的时候了。为此,您需要发布应用程序的最新版本,因为只有该版本才能在工作站上运行。

发布应用程序后,在 Tulip Player 中打开该应用程序并填写表单。请确认在后续步骤中这两个字段均以变量文本形式显示,然后点击“打印”。您的标签应立即在 Zebra 打印机上打印出来。
流程故障排除
如果标签未立即打印,您可以检查以下几点:
- Zebra 打印机是否通过以太网连接到了与边缘设备相同的网络?
- 您是否创建了一个同时运行边缘设备和应用程序的工作站?
- 您的自定义值是否映射到了驱动程序中运行的 ZPL 代码中的空白处?
您找到所需的信息了吗?
您还可以访问community.tulip.co发布您的问题,或查看其他人是否遇到过类似问题!
