LabVIEW集成国产标签打印软件“打印精灵“实现条码打印

@[TOC]LabVIEW集成国产标签打印软件“打印精灵“实现条码打印

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是由美国国家仪器公司(National Instruments,简称NI)开发的一款图形化编程平台,主要用于数据采集、仪器控制、工业自动化以及测试测量等领域的系统设计。以下是其核心特点和应用简介:

  1. 图形化编程
    G语言(Graphical Language):用户通过拖放函数节点和连线(类似流程图)构建程序,无需传统文本代码,降低了编程门槛。

数据流驱动:程序执行顺序由数据流向决定,节点在输入数据就绪时自动执行。

  1. 核心功能
    硬件集成:支持与传感器、DAQ设备、PLC、摄像头等硬件连接,提供丰富的驱动和接口(如GPIB、USB、以太网)。

数据分析:内置数学运算、信号处理(滤波、FFT)、统计及机器学习工具包。

可视化:提供图表、波形图、3D图形等控件,实时显示数据。

并行处理:通过多线程和FPGA支持实现高效并行任务处理。

  1. 应用领域
    测试测量:自动化测试系统(如电路板、汽车电子测试)。

工业控制:监控生产线、机器人控制。

实验室研究:物理、生物实验数据采集与分析。

教育:工程类教学(如电子、通信、控制理论)。

  1. 版本与模块
    基础版:核心开发环境。

模块扩展:如实时模块(Real-Time)、FPGA模块、视觉开发模块(Vision)等。

工具包:如状态图工具包(Statechart)、数据库连接工具包。

  1. 优势与局限
    优势:开发速度快、硬件兼容性强、适合快速原型开发。

局限:复杂算法实现可能不如文本语言灵活;大型项目管理需谨慎。

在实际工业应用中,常需实时打印产品条码,包装标签,检测结果等各类标签,用于产线的自动控制、物流追踪,质量控制。 但是使用LabView内置打印功能打印条码标签很不方便, 因此有客户问是否可以利用打印精灵的标签设计、标签打印能力,开发LabView标签打印程序?

在LabVIEW中实现标签打印功能,通常涉及与打印机的通信、标签设计(文本、条码、二维码等)以及数据动态绑定。以下是具体实现方法和相关工具:

打印精灵(Spirit系列软件) 提供了丰富的API,适合多种业务场景。其中REST API接口和 C DLL 可以和LabView整合, 将LabVIEW的强大控制能力与专业标签软件的设计能力、标签打印能力结合,实现产业流水线中复杂标签的打印。

该方案的优点显而易见:

简化LabVIEW程序开发。将打印精灵的功能封装成LabView的子VI,使用时无需关注细节,直接引用子VI即可。你可以自己封装,也可联系技术支持获取我们的封装。
支持复杂标签:标签可以包含文字,图标,表格,条形码,二维码等任意元素,通过打印精灵的标签设计器,点点鼠标就可完成,详见参考说明
标签与程序解耦。更新标签格式,只需通过打印精灵设计器调整模板布局,无需修改LabVIEW代码,可显著降低人工操作错误。显著提升生产自动化、物流追踪及质量管理等场景的效率。
打印机与程序无关。可以支持斑马兼容的ZPL协议打印机, TPC公司兼容的TSPL协议打印机,也可支持windows打印机。更换打印机,无需修改LabView代码。这给业务管理带来了方便,比如开始可以选择廉价打印机,在业务增长后更换高速打印机。

使用前提

  1. 安装打印精灵软件(任选其一),可以到这里下载
    - 打印精灵桌面版(SpiritDesktop)
    - 打印精灵中心版(SpiritCenter)

  2. 在打印精灵中预先设计好标签模板,并保存。标签中可以包含变量,在LabView调用时送入,实现可变数据打印。

注意:LabVIEW连接方式根据所选打印精灵版本不同而有所区别。

方案一:连接SpiritCenter(REST API方式)
SpiritCenter提供基于HTTP协议的REST API,LabVIEW通过HTTP请求节点调用打印服务。

配置步骤

  1. 启动SpiritCenter服务
    确保SpiritCenter在服务器后台运行,默认监听端口 9011, 获取服务器IP地址。

  2. LabVIEW端HTTP请求配置
    创建HTTP连接 在LabVIEW的后面板中,导航到 数据通信 -> 协议 -> HTTP客户端, 使用 POST VI 打开一个HTTP POST连接。
    配置POST请求 在 URL 输入框中填写目标地址(http://服务器IP:9011/print)。 在 Body 输入框中填写要发送的数据。
    解析响应数据 通过 Response Body 获取返回值,并使用 JSON解码 VI 解析处理错误。

关键要点
打印精灵的REST API,采用JSON格式传输数据,因此在LabView里调用HTTP服务的核心是如何构建正确的 JSON数据, 以及如何解析JSON返回数据。

JSON格式,详见PrintSpirit HTTP RSET API 文档, 这里不再赘述。

LabView 2019版本以后,内置Json解码,Json编码函数,可以将簇转换为JSON(用于发送数据)或将JSON解析为簇(处理返回数据)。

发送数据=>JSON
发送数据包括labelID, 变量,打印机参数选项。

变量的需要和标签模板匹配,打印参数(打印机名称、纸张、打印方向等,打印机名称必填)也不固定,为此,本方案采用LabView簇数组承载,方便数据传输和转换。簇格式为name-value,可以定义为公共的结构,并保存为kv.ctl,便于不同VI调用时引用.

下图展示了变量和打印参数处理程序。变量可以手工输入,更多情况应该是配合其他LabVIEW流程在生产线上采集数据
数据通过Boudle By Name函数打包成需要的簇格式,然后再通过Flatten To JSON函数转换为JSON作为 POST VI的输入。
在这里插入图片描述在这里插入图片描述

返回JSON=>错误簇

错误处理非常关键,应检查JSON返回信息,并转换为LabView的标准错误簇。加入LabView 的标准错误处理流程。

返回JSON格式为, {“rc”: ERR/OK, “msg”: “错误信息”}, 通过 Unflatten From JSON节点,将返回数据转换为簇, 再通过Unboudle By Name, 拆分成单个值。使用一个条件结构,当rc不为OK时,表示错误,设置msg。
在这里插入图片描述

LabVIEW-Spirit-Json打包

方案二:连接SpiritDesktop(DLL方式)
SpiritDesktop提供动态链接库(DLL),LabVIEW通过**Call Library Function Node(CLFN)**节点调用DLL函数直接驱动本地打印机。

配置步骤

  1. 获取DLL文件
    请联系技术支持,获取libspirit.dll

注意:DLL分32位和64位两种版本,务必根据LabView版本选择正确的版本。

  1. LabVIEW调用DLL函数
    使用 Call Library Function Node 调用以下函数:
int PrintA(
  const char* tpid,         // 模板ID(非文件路径)
  const unsigned char* vars, // 变量JSON字符串
  const unsigned char* opts  // 选项JSON字符串
);

返回值处理:

≥0 : 成功,返回任务ID
<0 : 失败,需调用CLFN节点调用DLL的GetSpiritErrorGBK()获取错误详情

  1. 输入打包和错误处理

整体上和网络方式类似,不再赘述。直接上图,一看就懂。
在这里插入图片描述

最佳实践:建议将打印操作封装为独立子VI,通过 tpid, vars, opts 三个输入参数控制打印行为,提高代码复用性。

使用Spirit-LabVIEW-toolkit
根据上面的步骤,我们封装了一个LabView的工具,包括通过SpiritCenter, SpiritDesktop连接打印的VIs, 如有需要可以联系技术支持获取。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值