17838383235
新闻中心
6AV2124-1GC01-0AX0现货西门子代理商
发布时间:2024-05-14        浏览次数:10        返回列表

西门子HMI通过VB脚本控制打印机进行标签打印






项目背景:

使用了触控一体机安装Wincc RT Advanced来替代TP1200触摸屏,工位本身需要控制斑马打印机打印标签,兼容5种不同的产品标签,标签可修改样式和内容


之前使用过PLC通过发送打印文件内容方式进行控制打印机,客户修改样式和内容比较麻烦,修改过后都要PLC进行对应


本次想通过VB脚本来完成打印任务,PLC变量触发VB脚本,脚本内驱动打印事件,PC机打印标签文件

图片




01系统组成:

硬件:

触控一体机,斑马打印机GT820,通过USB线连接并装好驱动

图片


软件:

触控一体机装Win7 64bit

安装标签编辑软件BarTender

安装WinCC RT Advanced


图片

02思路详解

标签样本(内容纯属虚构,如有侵权请及时联络)

图片

变动字符:

年月日:23-03-10

序列号:00001


不同的产品标签格式有所不同,需要提供不同的标签模板

模板名称:F01R00X089 共10位字符


设计思路:

PLC建立变量:TypeName作为模板名称

PLC建立变量:SerialNumber作为流水号Int


在PC机上保存固定文件夹,txt作为Database来源

PLC触发Cmd_Print,VB脚本触发打印动作

打印完成,提供Status_PrintDone


VB脚本代码修改txt内容,日期和流水号,同时更换模板,启动打印机


打印机通过USB与PC相连,执行打印就像打印Word一样,这里执行打印的内容为Bartender文件


03建立标签模板和数据链接

1.按照标签模板先建立起文件


图片


2.设置数据库Database


右键->数据库设置

图片


选择数据库类型

图片


选择文件,新建好txt文件,内部写入内容用英文逗号隔开

图片


选择文件格式,引号和逗号混用

图片


字段名称,大3行,完成设置

图片


连接属性,就是刚才Database文件关联的过程,可以选择配置连接重新进行关联

图片


查看字段,可以看到三个字段

图片


记录浏览器可以查看目前txt内的数据

图片


③字段的数据库关联(以日期为例)


点中日期->右键属性

图片


数据源还未设置,点击进行设置

图片


选择数据库字段

图片


选择字段1,点击完成

图片


文本内容与数据库Database数据关联完成

图片


④其他关联重复③操作,字段选择不同


04VB脚本编写

程序代码:

Sub Print()

'************************************************************************************   

'*** Module:      Print

'***

'*** Copyright HouJinKu, ShangHai 

'***   

'*** Function: Print Bartender file to Printer GT820 of Zebra

'*** 

' *** Datum:        04.10.2022

' ***

' *** Author:       Hou jinku

' ***

' *** last change:  V1.0 initial creation

' ***               V1.1 Adaptation to: Date\Serial number\TypeName

' ***  

' ************************************************************************************)

On Error Resume Next

    HmiRuntime.SmartTags("PrintDone") = False


'Counter+

Dim aCounter

    aCounter = HmiRuntime.SmartTags("Counter")

If aCounter>999 Then

    aCounter=0

End If


'Serial number

Dim aSerialNumber,Str5,aPrintNum

    aSerialNumber = HmiRuntime.SmartTags("SerialNumber")

    Str5=String(5,"0")

    aPrintNum=Right(Str5 & aSerialNumber, 5)

   

    'Date

    Dim aYear,aMonth,,aDay,aDate

        aYear = Right(Year(Now),2)

        aMonth = Right("00"& Month(Now),2)

    aDay = Right("00"& aDay,2)

    aDate=aYear & "-" & aMonth & "-" & aDay


'TypeName

Dim aTypeName

    aTypeName = HmiRuntime.SmartTags("TypeName")


'Database

Dim fso, f,typeNo

Set fso = CreateObject("scripting.FileSystemObject")

Set f = fso.CreateTextFile("E:\Printer\Database.txt", True) 'Over old


    f.Write(aDate & ",")

    f.Write(aPrintNum & ",")

    f.Write("xxx")

    f.Close()

Set f = Nothing

Set fso = Nothing


'Print

Dim btApp, btFormat,btPrint

Set btApp = CreateObject("BarTender.Application")

btApp.Visible = False

Set btFormat = btApp.Formats.Open("E:\Printer\" & TypeName & ".btw",False,"")

Set btPrint = btFormat.PrintOut(True,False)

    btFormat.Close

    uit

Set btApp = Nothing


    aCounter=aCounter+1

    HmiRuntime.SmartTags("Counter") = aCounter


    HmiRuntime.SmartTags("PrintDone") = True


End Sub




05程序调用

HMI变量中数值更改调用VB脚本Print


所以PLC程序触发一次ON,再触发OFF,每次变化一次


图片



PLC触发及收到结果的关键流程步


记录上次触发的状态

图片


根据上次状态进行下次触发

图片





客户要更改模板,打开Bartender软件可直接修改和保存,换型时TypeName更改打印模板与之对应




核心提示:西门子PLC代理,西门子变频器代理,西门子伺服电机代,西门子工控机代理,西门子触摸屏代理
刚发布的文章
联系方式
  • 地址:中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301
  • 手机:17838383235
  • 联系人:徐嘉泉
新闻分类
最新发布
企业新闻
站内搜索