适用范围
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
-
plc
+关注
关注
5008文章
13179浏览量
462224 -
打印机
+关注
关注
10文章
763浏览量
45589
原文标题:技术分享丨Honeywell Fiji平台打印机与PLC对接应用
文章出处:【微信号:霍尼韦尔传感智联,微信公众号:霍尼韦尔传感智联与智能仓储】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论