今天我们来说说制造业中的标签打印解决方案,标签打印解决方案主要用于创建,自定义,编辑和打印各种业务需要的标签。
我们在实施或者是使用MES的时候一般都会涉及到标签打印功能。MES作为制造执行解决方案,大都自身已经包含有标签打印的功能模块。
不过大部分MES的打印模块只是提供调用外部打印组件或者是调用外部打印软件的接口的功能,通过这种方式可以将需要打印的数据传送给打印软件来触发和执行打印。这种方式并不是因为MES功能不够完全,而是相反的可以让整个标签打印解决方案更加的灵活。所以在MES的基础上去选择标签打印软件的时候一定要考虑到集成这一点。
目前市面上有很多的标签打印软件,比如Bartender, CodeSoft, ZebraDesigner, Loftware, NiceLabel等,各有各的特点,一般都提供了多种与外部业务系统的集成方式。
执行标签打印需要具备四个部分:
- 标签模板 设计你的标签样式,一套标准的标签打印解决方案需要具备标签模板设计应用
- 数据 决定要打印在标签上的数据,一个套标准的标签打印解决方案需要具备数据获取的能力,可以是主动抓取数据,又或者是提供接口让其它业务系统调用以传送数据
- 打印机 大部分情况下内容最终要打印在标签纸上,说大部分,是因为有些情况下你可能只需要生成图片文件或者是PDF,业务需求场景千千万。现在RFID用的很广泛,执行RFID打印的时候部分数据会被写入到RFID数据载体
- 打印执行程序 负责将上面三项串联起来,先将获取数据,然后将数据赋值给模板,然后把打印任务传给打印机。
一个完整的标签打印解决方案需要具备的关键特点和功能:
- 打印自动化 直接从业务系统中自动触发标签打印,比如MES与打印软件的集成,在MES中完成某个步骤的时候自动触发打印系统的一次打印任务,这样可以提高效率,自动打印的数据是由MES直接发送给打印系统,接下来的一切都由打印系统自动完成,省去人工输入打印的步骤,提高内容准确性。
- 标签安全性 标签设计和管理过程可设置响应权限和审计
- 可追溯性 模板设计,打印执行及其它操作都是可追溯的
- 集中式标签管理 集中管理整个标签过程,通常执行标签打印的客户端是分散在生产区域的并且每个步骤打印的模板也是不同,而集中式标签管理的特点可以方便标签的管理。作为标签设计者你可能只需要一个网页就能实现对所有标签的设计更改。另外标签管理需要具备模板的版本控制,有利于模板的变更。
因为在平时工作中接触Bartender比较多,所以我们以Bartender企业自动化版为例来描述一个最简单的实例。
Bartender套件包含很多应用程序,先来看一下在制造业场景中大概率会被用到的一些应用程序:
- Bartender .NET SDK 可以使用 C# 或者 VB.NET 将 BarTender 的功能集成到您的应用程序中
- Bartender Designer 模板设计
- Librarian 将设计的模板文件保存在数据库中,而不是放在本地硬盘中,有利于模板的管理,包括版本控制,历史追溯,有必要时可以将模板恢复到旧版本。
- Integration Builder 创建高度可定制的集成,可以将打印功能与几乎任何业务系统进行连接,可配置的集成方式有web service集成,文件集成,数据库集成等
- History Exploer 历史记录浏览,包括打印记录信息以及由处理打印作业的应用程序创建的任何消息(方便打印失败原因分析),可以预览历史打印过的标签
实例:
首先产生数据并触发Bartender 这个使用实例中ERP,MES等系统作为打印数据的来源,这些系统会主动调用Bartender提供的接口。
接口方式1 - Web Service接口: 直接调用Bartender提供的Web Service来把数据传输过去并触发打印
接口方式2 - 文件集成接口: ERP,MES等业务系统可以生成一个包含了所有打印数据的文件并存放到特定的路径中,而Bartender会实时监视这个路径一旦有文件生成Bartender会抓取文件解析并执行打印
接口方式3 - 数据库: Bartender可以实时监控某一个指定的业务系统数据库,一旦有新的打印相关的数据插入就会抓取数据并触发打印
其他接口...
然后Bartender把获取到的数据赋值到本次打印请求指定的模板上 在使用Bartender打印之前用户需要先维护好模板,用户可以通过Librarian将模板设计并保存进去,在Librarian中模板是保存在数据库中的,不以本地文件的形式保存在本地硬盘。
无论是WebService的打印请求还是文件形式的打印请求,其实质都一样是一些键值对
上图中要打印的模板是Librarian中TEST路径下的template01.btw
指定的打印机名是Printer01 本次任务需要打印的次数是1 另外的几行数据是需要打印在标签模板上的值,注意键值对中的Key名一定要跟模板上设置的变量名对应上,这样Value才能赋值到模板并打印出来 最后就是Bartender将打印任务发送到指定的打印机上 大部分情况下是指定打印机打印出标签,还有些情况我们可能只需要打印出一个图片或者是打印成一个PDF文件,又或者是生成一些其它类型的文件供下级系统来使用,这些都可以实现。
上面的实例是单独一个工厂内布局,如果在全球有多个工厂的情况下,我们可以使用Librarian的特点来部署
所有工厂的模板管理者都使用同一个模板设计和维护界面,并且新模板的保存或者是模板的变更保存首先是存放在全球服务器的,再通过全球服务器实时的将数据同步到各工厂的本地Bartender服务器,实现模板的统一管理。