Honeywell Fiji平台打印机解决方案

描述

适用范围

Honeywell Fiji平台打印机

解决方案

在项目中,会有多个打印模板需要通过PLC发送给打印机打印的情况,这时我们可以通过Layout方式将用模板提前编辑好下载到打印机的内存(Flash)中,再通过PLC发送有调用指定打印模板并发送模板对应需要的变量信息数据给打印机打印出对应的标签。

01

具体方法如下:

01

将打印机的打印模式设置为Direct Protocol方式。

02

若打印内容里有中文内容,需要将打印模板需要调用到的中文字体下载到打印机,下载的中文字体文件必须是TTF (True Type Font)字体文件。

通过PrintSet软件与打印机进行连接,连接后可以使用找所需要下载字体打印机的字体选项,鼠标右键盘单击选择添加字体,

选择弹出来添加字体窗口选择浏览选择需要下载的字体后,按添加按钮。

将字体添加到字体列表后,再选择菜单栏的工具—应用 或直接使点工具栏的应用图表,将字体保存到打印机。

03

编写Layout模板,可使用记事本进行编辑,存入模板内容以及相关DP指令含义如下:

SYSVAR(43)=1

(//这里必须先使用SYSVAR(43)=1 来开启路径解析)

INPUT ON

FORMAT INPUT “#”,“@”,“&”

(// 表示模板中变量填充时使用分隔符以#开始,@结尾,使用&将变量填充的内容连接起来。)

LAYOUT INPUT “/c/Label1”

(//将模板存入到打印机的c盘中模板名为Label1)

PP174,1125:AN7

NASC 8

(//表示使用UTF-8中文格式)

FT “MHeiGB18030C-Medium”

(// 调用中文字体名称)

FONTSIZE 48

FONTSLANT 0

PT “物资抽检”

PP206,824:BARSET “QRCODE”,1,1,23,2,1

PB VAR1$

(// 变量名VAR1$)

PP741,701:FONTSIZE 26

PT “取样日期:”

PP758,554:FONTSIZE 22

PT VAR2$

(// 变量名VAR2$)

PP229,327:FONTSIZE 20

PT VAR3$

( // 变量名VAR3$)

PP10,916:AN1

PL1199,9

LAYOUT END

( // 表示该模板内容结结束)

INPUT OFF

将上述DP指令内容,保存为UTF-8编号格式的文件,再通过对应打印机驱动程序的打印机属性窗口—》工具选项—》操作—》将文件发送到打印机或者用TCP/串口调试工具软件将保存的文件以文件的方式发送给打印机自动保存。

04

PLC 调用模板打印指令模板内容如下:

SYSVAR(43)=1

( //这里必须先使用SYSVAR(43)=1 来开启路径解析)

INPUT ON

FORMAT INPUT “#”,“@”,“&”

LAYOUT RUN “/c/Label1”

(//--- 调用存在打印机c盘中模板名为Label1的模板)

#HNZLA120090018&2021-09-11&HNZLA120090018&@

(// # 为开始符号,告诉打印机什么时候开始是变量数据,&是将VAR1和VAR2和 VAR3的变量数据连接起来一起发送,@是结束符号。)

PF

INPUT OFF

上述DP指令内容需要在每行的末尾添加回车或回车换行,不同的PLC品牌的PLC回车换行可能不一样,如西门子S7-1200,添加回车换行使用&R&L或是Hex 0D 0A ,

02

在项目应用中,有的打印机没有使用工业GPIO卡与PLC进行通讯,不会及时知道打印机当前运行状态,又想在PLC在发送打印任务之前知道Honeywell Fiji平台打印机查询当前打印机状态,如:打印否缺纸,缺碳带、打印头抬起等等,这时可以使用PLC向打印发送 “? PRSTAT”命令来获取打印机当前状态(反馈状态见表一)。但当打印机在打印过程中出现打印机缺纸或打印机缺碳带时,有时通过通过PLC向打印发送 “? PRSTAT”命令到打印机可能获取打印机当前状态还是为空,或是不能接收到打印机返回的值,若这时PLC打印机发送打印机作业,此时打印机不会响应。

这时可以使用以下FP/DP指令方法来获取打印机的当前状态信息。

INPUT ON

SYSVAR(48)=2

^q

查询打印机状态反馈如下(SYSVAR(48)=2为多通道轮询, SYSVAR(48)=1为当前通道查询):

反馈内容如下:

cnt:1left:0prstat:0pause:0errno:1022recbuf:8191

其中:

cnt:表示当前打印作业中要打印的标签总数

left:表示当前打印作业中剩余的标签总数

prstat:表示当前打印机的prstat状值(见表一)

pause:当前打印作业通过控制面板或是命令暂停为值为1,否则为0

errno:在FP/DP指令中出现的错误代码

recbuf:表示接收缓冲区中剩余的字符数

下表是 “?PRSTAT” 或通过 “^q”指令来反馈PRSTAT状态值如下:

状态值状态描述

0正常

1打印头抬起

2已打印的标签未被取走。

4没有检测到标签

8TTR模式没有装碳带或DT模式装了碳带

16打印头过热

32打印机正在走纸

64预留位,

其中在PX240或PX940表示前臂打开。

128纸张用尽

表一

注意:返回的当前打印状态,在打印机打印头抬起且没有纸时,打印机会反馈值5,这个值是由打印头抬起(值为1)+ 没有检测到标签(值为4)相加得到的5。再如若打印机检测到没有碳带(值为8)且人为将打印机打印头抬起(值为1)将返回9的值

总结

通过将Layout方式将用模板提前编辑好下载到打印机的内存(Flash)中,再通过PLC发送有调用指定打印模板并发送模板对应需要的变量信息数据给打印机打印出对应的标签。

当打印机没有使用GPIO与PLC对接时在发送打印业时,可以通过PLC先向打印机发送查询打印机当前打印状态,再根据打印机返回的状态值进行判断,如打印机返回的prstat状态为0时,PLC再发送调用所对应的模板和变量内容到打印机进行打印。可用于一些与PLC需要打印机反馈少量的状态信息反馈对接的简单应用。若要实现PLC对打印机实现更多的反馈信息如开始打印,打印完成等状态或控制打印机相关操作建议打印机加上GPIO卡和PLC对接。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分