| 命令 | 功能 |
|---|---|
| AUTODETECT | 自动检测标签 |
| AUTO | 自动运行相关功能 |
| 命令 | 功能 |
|---|---|
| BACKFEED | 回退标签 |
| BAR | 绘制线 |
| BARCODE | 一维条码 |
| BITMAP | 位图 |
| BLINE | 黑标设置 |
| BLINEDETECT | 检测黑标 |
| BLOCK | 多行文字 |
| BOX | 矩形 |
| 命令 | 功能 |
|---|---|
| CLS | 清空缓存 |
| CODEPAGE | 字符编码 |
| COUNTRY | 字符集设置 |
| CUTTER | 切刀控制 |
| 命令 | 功能 |
|---|---|
| DENSITY | 浓度 |
| DIRECTION | 方向 |
| DMATRIX | Data Matrix |
| DOWNLOAD | 下载文件 |
| 命令 | 功能 |
|---|---|
| ECHO | 回显 |
| ELLIPSE | 椭圆 |
| EOP | 下载结束 |
| 命令 | 功能 |
|---|---|
| FILES | 文件列表 |
| FEED | 走纸 |
| FORMFEED | 找标签 |
| 命令 | 功能 |
|---|---|
| GAP | 间隙 |
| GAPDETECT | 自动检测 |
| 命令 | 功能 |
|---|---|
| HOME | 回原点 |
| 命令 | 功能 |
|---|---|
| INPUT | 输入 |
| 命令 | 功能 |
|---|---|
| MIRROR | 镜像 |
| MOVE | 移动文件 |
| 命令 | 功能 |
|---|---|
| OFFSET | 偏移 |
| 命令 | 功能 |
|---|---|
| PAUSE | 暂停 |
| PDF417 | PDF417 |
| PEEL | 剥离 |
| 打印 | |
| PUTBMP | BMP图片 |
| PUTPCX | PCX图片 |
| 命令 | 功能 |
|---|---|
| QRCODE | 二维码 |
| 命令 | 功能 |
|---|---|
| REFERENCE | 坐标 |
| REMOVE | 删除文件 |
| RESET | 重置 |
| REVERSE | 反白 |
| RUN | 运行程序 |
| 命令 | 功能 |
|---|---|
| SET | 参数设置 |
| SHIFT | 移动 |
| SIZE | 标签尺寸 |
| SPEED | 速度 |
| 命令 | 功能 |
|---|---|
| TEXT | 文字 |
| TEAR | 撕纸模式 |
| 值 | 角度 |
|---|---|
| 0 | 0° |
| 90 | 90° |
| 180 | 180° |
| 270 | 270° |
支持:
mm
inch
dot| DPI | dots/mm |
|---|---|
| 203 | 8 |
| 300 | 12 |
| 600 | 24 |
| 值 | 编码 |
|---|---|
| 437 | 英文 |
| 936 | 简体中文 |
| 950 | 繁体中文 |
| 65001 | UTF-8 |
| 模式 | 命令 |
|---|---|
| 撕纸 | SET TEAR ON |
| 剥离 | SET PEEL ON |
| 切刀 | SET CUTTER ON |
| 回卷 | SET REWIND ON |
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"TEST"
PRINT 1SIZE 100 mm,60 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"商品名称"
TEXT 30,80,"3",0,1,1,"MODEL-A"
BARCODE 30,130,"128",60,1,0,2,2,"123456"
QRCODE 300,130,L,5,A,0,"MODEL-A"
PRINT 1SIZE 80 mm,50 mm
CLS
TEXT 20,20,"3",0,1,1,"SKU:A001"
TEXT 20,60,"3",0,1,1,"QTY:100"
BARCODE 20,100,"128",50,1,0,2,2,"A001"
PRINT 1SIZE 100 mm,50 mm
CLS
RFID WRITE 0,12,"A001"
TEXT 30,30,"3",0,1,1,"RFID"
BARCODE 30,100,"128",60,1,0,2,2,"A001"
PRINT 1检查:
USB
RS232
Ethernet发送:
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"TEST"
PRINT 1发送:
~HS间隙:
GAPDETECT黑标:
BLINEDETECT推荐:
业务数据
↓
TSPL模板
↓
打印服务不要:
业务代码里硬编码全部TSPL例如模板:
{PRODUCT}
{SN}
{DATE}生成:
TEXT 50,50,"3",0,1,1,"{PRODUCT}"必须处理:
缺纸
开盖
暂停
通信失败
打印超时保存:
IP地址
型号
DPI
状态
最后任务建议:
打印时间
标签编号
用户
结果
错误信息PrinterSystem
├── Template
│ └── product.tpl
│
├── Driver
│ └── TsplClient
│
├── Queue
│ └── TaskManager
│
├── Monitor
│ └── StatusService
│
└── Log
创建任务
↓
加载模板
↓
替换变量
↓
生成TSPL
↓
检查打印机状态
↓
发送数据
↓
等待完成
↓
记录日志
建议顺序:
SIZE/GAP
↓
TEXT
↓
BARCODE
↓
QRCODE
↓
图片
↓
文件管理
↓
状态查询
↓
变量
↓
RFID
↓
BASIC版本:
TSPL2 Reference Guide
整理版本:
2026
END
]]>一个完整工业打印系统通常:
业务系统
↓
数据库
↓
打印服务
↓
TSPL生成模块
↓
打印机
↓
状态反馈用于:
通常包含:
商品名称
SKU
批次
数量
条码
二维码SIZE 100 mm,70 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"仓库标签"
TEXT 30,80,"3",0,1,1,"SKU:A10001"
TEXT 30,120,"3",0,1,1,"QTY:500"
BARCODE 30,170,"128",70,1,0,2,2,"A10001"
QRCODE 350,120,L,5,A,0,"A10001"
PRINT 1包括:
+-----------------------+
寄件信息
收件信息
=======================
条码
二维码
+-----------------------+SIZE 100 mm,150 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"快递面单"
BLOCK 30,80,400,100,"3",0,1,1,"收件人:张三 地址:上海"
BARCODE 30,220,"128",100,1,0,2,2,"SF123456789"
QRCODE 300,220,L,5,A,0,"SF123456789"
PRINT 1制造业:
产品编号
↓
生产批次
↓
流水号
↓
二维码
↓
数据库绑定SIZE 80 mm,50 mm
GAP 3 mm,0
CLS
TEXT 20,20,"3",0,1,1,"MODEL:A001"
TEXT 20,60,"3",0,1,1,"LOT:20260805"
BARCODE 20,100,"128",60,1,0,2,2,"SN000001"
QRCODE 250,100,L,5,A,0,"SN000001"
PRINT 1例如:
要求:
SIZE 50 mm,30 mm
GAP 2 mm,0
CLS
TEXT 10,10,"2",0,1,1,"SAMPLE"
BARCODE 10,50,"128",40,1,0,2,2,"20260805001"
PRINT 1读取任务
↓
写EPC
↓
验证
↓
打印表面信息
↓
输出SIZE 100 mm,50 mm
CLS
RFID WRITE 0,12,"PRODUCT001"
TEXT 30,30,"3",0,1,1,"RFID TAG"
BARCODE 30,100,"128",60,1,0,2,2,"PRODUCT001"
PRINT 1PLC
↓
打印机
↓
剥标模块
↓
机械手
↓
产品开启:
SET PEEL ONSIZE 100 mm,50 mm
SET PEEL ON
CLS
TEXT 30,30,"3",0,2,2,"AUTO LABEL"
PRINT 1常见:
PLC触发
↓
发送产品数据
↓
生成TSPL
↓
打印
↓
返回状态PLC发送:
MODEL=A100
SN=000001生成:
TEXT 30,30,"3",0,1,1,"A100"
TEXT 30,70,"3",0,1,1,"000001"
PRINT 1MES
↓
打印接口服务
↓
TSPL模板
↓
打印机数据库保存:
模板编号
↓
字段映射
↓
TSPL生成模板:
产品:{PRODUCT}
批次:{LOT}
SN:{SERIAL}生成:
TEXT 50,50,"3",0,1,1,"产品:A001"
TEXT 50,90,"3",0,1,1,"批次:B001"
TEXT 50,130,"3",0,1,1,"SN:00001"任务队列
↓
打印服务
↓
打印机池
↓
状态监控示例:
{
"printer":"192.168.1.100",
"template":"product_label",
"qty":100,
"data":{
"sku":"A001",
"batch":"B20260805"
}
}建议:
打印服务器
├── Printer01
├── Printer02
├── Printer03
管理:
根据环境选择:
| 环境 | 推荐 |
|---|---|
| 普通仓库 | 铜版纸 |
| 冷冻环境 | PET |
| 户外 | 合成纸 |
| 高温 | 耐热材料 |
普通:
SPEED 4
DENSITY 8小字体:
SPEED 3
DENSITY 10建议加入:
查询:
~HS确认:
READY记录:
下一部分:
包含:
TSPL2部分机型支持内置 BASIC 解释器。
用途:
基本结构:
程序启动
↓
变量初始化
↓
读取数据
↓
生成标签
↓
打印
↓
循环等待一个基本TSPL2程序:
REM PROGRAM START
A=100
TEXT 50,50,"3",0,1,1,"TEST"
PRINT 1
ENDTSPL2 BASIC常见变量:
| 类型 | 说明 |
|---|---|
| 数字变量 | 存储数字 |
| 字符串变量 | 存储文字 |
| 系统变量 | 打印机提供数据 |
示例:
A=100
B=200
C=A+B结果:
C=300字符串需要:
$示例:
NAME$="PRODUCT"
TEXT 50,50,"3",0,1,1,NAME$输出:
PRODUCT格式:
变量=值示例:
COUNT=10字符串:
CODE$="A001"示例:
A$="SN"
B$="001"
C$=A$+B$结果:
SN001数字转字符串。
示例:
A=100
TEXT 50,50,"3",0,1,1,STR$(A)打印:
100字符串转数字。
示例:
A$="100"
B=VAL(A$)支持:
| 符号 | 功能 |
|---|---|
| + | 加 |
| - | 减 |
| * | 乘 |
| / | 除 |
示例:
A=10
B=5
C=A*B结果:
50格式:
IF 条件 THEN 语句示例:
A=10
IF A>5 THEN PRINT 1AND:
IF A>0 AND A<100 THEN PRINT 1OR:
IF A=1 OR A=2 THEN PRINT 1格式:
FOR 变量=开始 TO 结束
...
NEXT示例:
FOR I=1 TO 10
PRINT 1
NEXT结果:
打印10次。
格式:
WHILE 条件
...
WEND示例:
A=1
WHILE A<10
A=A+1
WEND功能:
接收外部输入。
来源:
语法:
INPUT "提示",变量示例:
INPUT "SN:",SN$输入:
ABC001变量:
SN$="ABC001"部分TSPL2支持RTC。
系统变量:
| 变量 | 说明 |
|---|---|
| YEAR | 年 |
| MONTH | 月 |
| DAY | 日 |
| HOUR | 时 |
| MINUTE | 分 |
| SECOND | 秒 |
示例:
DATE$=STR$(YEAR)+"-"+STR$(MONTH)
TEXT 50,50,"3",0,1,1,DATE$打印:
PRINT 1走纸:
FEED清缓存:
CLS暂停:
PAUSETSPL2支持内部文件。
常见:
| 命令 | 功能 |
|---|---|
| OPEN | 打开文件 |
| READ | 读取 |
| WRITE | 写入 |
| CLOSE | 关闭 |
| EOF | 判断结束 |
示例:
OPEN "DATA.TXT"示例:
READ A$示例:
WRITE "TEST"示例:
CLOSE实现:
程序:
REM PRODUCT LABEL
INPUT "PRODUCT:",CODE$
CLS
SIZE 100 mm,50 mm
TEXT 30,30,"3",0,1,1,CODE$
QRCODE 50,80,L,5,A,0,CODE$
BARCODE 250,80,"128",60,1,0,2,2,CODE$
PRINT 1
ENDSTART:
INPUT "SCAN:",CODE$
CLS
TEXT 50,50,"3",0,1,1,CODE$
PRINT 1
GOTO START流程:
扫描枪输入
↓
打印
↓
等待下一次扫描不是所有TSPL打印机都支持:
使用前需要确认固件。
复杂系统:
上位机生成TSPL
↓
打印机执行简单独立设备:
TSPL2 BASIC下一部分:
包含:
TSPL2除了普通标签打印命令外,还支持:
结构类似:
打印指令
+
简单BASIC程序适合:
将BASIC程序保存到打印机。
DOWNLOAD "filename.BAS"DOWNLOAD "AUTO.BAS"
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"HELLO"
PRINT 1
EOP说明:
DOWNLOAD开始保存程序。
EOP表示结束。
执行打印机内部程序。
RUN "filename.BAS"RUN "AUTO.BAS"执行流程:
PC
↓
DOWNLOAD程序
↓
保存FLASH
↓
RUN
↓
打印机独立运行一个程序:
变量定义
↓
逻辑判断
↓
打印内容
↓
循环示例:
A=100
TEXT 50,50,"3",0,1,1,STR$(A)
PRINT 1典型AUTO.BAS:
DOWNLOAD "AUTO.BAS"
SIZE 100 mm,50 mm
GAP 3 mm,0
CLS
TEXT 50,50,"3",0,1,1,"AUTO PRINT"
PRINT 1
EOP启动后:
打印机自动执行。
程序跳转。
GOTO labelSTART:
TEXT 50,50,"3",0,1,1,"TEST"
GOTO START结果:
无限循环打印。
条件执行。
IF condition THEN commandA=10
IF A>5 THEN GOTO OK
OK:
TEXT 50,50,"3",0,1,1,"YES"支持:
>
<
=
>=
<=
<>结束程序。
语法:
END示例:
IF A=10 THEN END注释。
语法:
REM comment示例:
REM 打印产品标签
TEXT 50,50,"3",0,1,1,"TEST"TSPL2支持:
用于:
写入文件。
语法:
WRITE handle,data读取文件。
语法:
READ handle,data示例:
WRITE 0,A$
READ 0,B$部分打印机支持RTC。
可读取:
| 变量 | 说明 |
|---|---|
| YEAR | 年份 |
| MONTH | 月份 |
| DAY | 日期 |
| HOUR | 小时 |
| MINUTE | 分钟 |
| SECOND | 秒 |
TSPL2手册中将这些作为打印机内部变量使用。 oai_citation:1‡manualzz.com
TEXT 50,50,"3",0,1,1,STR$(YEAR)
TEXT 50,100,"3",0,1,1,STR$(MONTH)
PRINT 1输出:
2026
08部分TSPL2支持:
@LABEL用于统计打印数量。
示例:
A=@LABEL
TEXT 50,50,"3",0,1,1,STR$(A)
PRINT 1DOWNLOAD "AUTO.BAS"
SIZE 100 mm,50 mm
SET COUNTER @1 1 1
CLS
TEXT 30,30,"3",0,1,1,"SN"
COUNTER 100,30,"3",0,1,1,@1
PRINT 1
EOP打印机FLASH
↓
AUTO.BAS
↓
读取输入
↓
生成标签
↓
打印
↓
等待下一次输入PLC
↓
发送数据
↓
打印机变量
↓
打印标签扫描枪
↓
INPUT
↓
打印SKU标签数据库
↓
下载任务
↓
打印机执行下一部分:
包含:
TSPL命令主要分为:
| 分类 | 说明 |
|---|---|
| Setup | 打印机设置 |
| 打印对象 | |
| Barcode | 条码 |
| Graphics | 图形 |
| File | 文件管理 |
| System | 系统控制 |
| RFID | RFID功能 |
| Status | 状态查询 |
| 命令 | 功能 | 类别 |
|---|---|---|
| AUTODETECT | 自动检测标签 | Setup |
| BACKFEED | 回退标签 | Control |
| BAR | 绘制线条 | Graphics |
| BARCODE | 打印条码 | Barcode |
| BITMAP | 打印位图 | Graphics |
| BLINE | 黑标设置 | Setup |
| BLINEDETECT | 检测黑标 | Setup |
| BLOCK | 多行文字 | Text |
| BOX | 矩形框 | Graphics |
| CLS | 清空缓存 | Control |
| CODEPAGE | 字符编码 | System |
| COUNTRY | 国家字符集 | System |
| CUTTER | 切刀控制 | Mode |
| DENSITY | 浓度设置 | Setup |
| DIRECTION | 方向设置 | Setup |
| DMATRIX | DataMatrix | Barcode |
| DOWNLOAD | 下载文件 | File |
| ECHO | 回显 | System |
| ELLIPSE | 椭圆 | Graphics |
| FILES | 查看文件 | File |
| FEED | 走纸 | Control |
| FORMFEED | 找标签 | Control |
| GAP | 间隙设置 | Setup |
| GAPDETECT | 检测间隙 | Setup |
| HOME | 回原点 | Control |
| INPUT | 输入变量 | System |
| LIMITFEED | 限制走纸 | Setup |
| MIRROR | 镜像打印 | Setup |
| MOVE | 移动文件 | File |
| OFFSET | 偏移设置 | Setup |
| PAUSE | 暂停 | Control |
| PDF417 | PDF417条码 | Barcode |
| PEEL | 剥离模式 | Mode |
| 执行打印 | Control | |
| PUTBMP | 打印BMP | Graphics |
| PUTPCX | 打印PCX | Graphics |
| QRCODE | 二维码 | Barcode |
| REFERENCE | 坐标原点 | Setup |
| REMOVE | 删除文件 | File |
| RESET | 重置打印机 | System |
| REVERSE | 反白打印 | Graphics |
| RUN | 运行程序 | System |
| SET | 参数设置 | Setup |
| SHIFT | 整体偏移 | Setup |
| SIZE | 标签尺寸 | Setup |
| SPEED | 打印速度 | Setup |
| TEXT | 文字打印 | Text |
| TEAR | 撕纸模式 | Mode |
| WRITE | 写数据 | System |
设置标签尺寸:
SIZE width,height示例:
SIZE 100 mm,50 mm设置间隙:
GAP gap,offset示例:
GAP 3 mm,0黑标:
BLINE height,offset速度:
SPEED value浓度:
DENSITY value方向:
DIRECTION 0坐标:
REFERENCE x,y偏移:
OFFSET value编码:
CODEPAGE 936单行文字:
TEXT x,y,font,rotation,x,y,"text"示例:
TEXT 50,50,"3",0,1,1,"TEST"多行文字:
BLOCK x,y,w,h,font,r,xm,ym,"text"示例:
BLOCK 20,20,300,100,"3",0,1,1,"ADDRESS"线:
BAR x,y,width,height矩形:
BOX x1,y1,x2,y2,width椭圆:
ELLIPSE x1,y1,x2,y2,width反白:
REVERSE x,y,w,h格式:
BARCODE x,y,type,height,human,rotation,narrow,wide,"data"支持:
| 类型 | 说明 |
|---|---|
| 128 | Code128 |
| 39 | Code39 |
| 93 | Code93 |
| EAN13 | EAN13 |
| EAN8 | EAN8 |
| UPCA | UPC-A |
| UPCE | UPC-E |
| ITF | ITF |
| ITF14 | ITF14 |
| CODABAR | Codabar |
格式:
QRCODE x,y,ECC,size,mode,rotation,"data"格式:
PDF417 x,y,w,h,r,o,"data"格式:
DMATRIX x,y,"data"下载:
DOWNLOAD "file"查看:
FILES删除:
REMOVE "file"移动:
MOVE "old","new"执行:
RUN "file"清缓存:
CLS打印:
PRINT quantity走纸:
FEED找标签:
FORMFEED暂停:
PAUSE重启:
RESETSET TEAR ONSET PEEL ONSET CUTTER ONSET REWIND ON查询状态:
~!T查询配置:
~!U查询信息:
~!A状态:
~HSSIZE 100 mm,50 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"PRODUCT"
BARCODE 30,100,"128",60,1,0,2,2,"123456"
QRCODE 300,100,L,5,A,0,"123456"
PRINT 1SIZE 80 mm,50 mm
CLS
TEXT 20,20,"3",0,1,1,"SKU:A001"
TEXT 20,60,"3",0,1,1,"QTY:100"
BARCODE 20,100,"128",60,1,0,2,2,"A001"
PRINT 1打印异常排查:
□ SIZE正确
□ GAP/BLINE正确
□ CODEPAGE正确
□ 字体支持中文
□ 坐标范围正确
□ SPEED合理
□ DENSITY合理
□ 状态正常
□ 标签方向正确下一部分:
包含:
一个完整打印系统通常流程:
业务系统
↓
生成TSPL字符串
↓
发送打印机
↓
打印机执行
↓
查询状态
↓
记录结果TSPL采用点坐标。
坐标原点:
(0,0)位于:
标签左上角示例:
+----------------------+
| |
| (50,50) |
| TEXT |
| |
+----------------------+打印机常见分辨率:
| DPI | 每毫米点数 |
|---|---|
| 203 DPI | 约8 dots/mm |
| 300 DPI | 约12 dots/mm |
| 600 DPI | 约24 dots/mm |
公式:
dots = mm × 8示例:
10mm:
10 × 8 = 80 dots公式:
dots = mm × 12示例:
10mm:
10 × 12 = 120 dotsusing System;
using System.Net.Sockets;
using System.Text;
public class TsplPrinter
{
public static void Print(string ip,int port)
{
string tspl =
@"SIZE 100 mm,50 mm
GAP 3 mm,0
CLS
TEXT 50,50,""3"",0,2,2,""TEST LABEL""
BARCODE 50,120,""128"",60,1,0,2,2,""123456""
PRINT 1";
using(TcpClient client = new TcpClient())
{
client.Connect(ip,port);
NetworkStream stream = client.GetStream();
byte[] data =
Encoding.UTF8.GetBytes(tspl);
stream.Write(data,0,data.Length);
}
}
}调用:
TsplPrinter.Print(
"192.168.1.100",
9100
);import java.net.Socket;
public class TsplPrinter {
public static void print()
throws Exception {
String tspl =
"SIZE 100 mm,50 mm\n"+
"CLS\n"+
"TEXT 50,50,\"3\",0,2,2,\"JAVA TEST\"\n"+
"PRINT 1";
Socket socket =
new Socket(
"192.168.1.100",
9100
);
socket.getOutputStream()
.write(
tspl.getBytes("UTF-8")
);
socket.close();
}
}import socket
printer_ip = "192.168.1.100"
printer_port = 9100
tspl = """
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,2,2,"PYTHON TEST"
PRINT 1
"""
sock = socket.socket(
socket.AF_INET,
socket.SOCK_STREAM
)
sock.connect(
(
printer_ip,
printer_port
)
)
sock.send(
tspl.encode("utf-8")
)
sock.close()Windows环境:
通常通过:
发送:
RAW TSPL DATA示例:
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"USB PRINT"
PRINT 1推荐模板结构:
固定区域
+
动态数据
+
条码
+
二维码
+
图片例如:
商品标签:
+----------------------+
商品名称
型号
批次
条码
二维码
+----------------------+SIZE 100 mm,60 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"产品名称"
TEXT 30,80,"3",0,1,1,"MODEL-A"
TEXT 30,120,"3",0,1,1,"BATCH:20260805"
BARCODE 30,170,"128",60,1,0,2,2,"123456789"
QRCODE 300,120,L,5,A,0,"MODEL-A"
PRINT 1SIZE 100 mm,150 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,2,2,"快递单"
BARCODE 50,100,"128",100,1,0,2,2,"SF123456789"
QRCODE 300,100,L,5,A,0,"SF123456789"
BLOCK 30,250,400,100,"3",0,1,1,"收件地址信息"
PRINT 1原因:
解决:
设置:
CODEPAGE 936或者:
使用:
TSS24.BF2检查:
REFERENCE
OFFSET
SHIFT检查:
GAP
BLINE
AUTODETECT执行:
GAPDETECT检查:
建议:
SPEED 3
DENSITY 8调整:
QRCODE
cell-size例如:
QRCODE 50,50,L,8,A,0,"TEST"生产环境建议:
查询:
~HS确认:
READY记录:
Web系统
↓
打印服务
↓
TSPL生成器
↓
打印队列
↓
打印机
↓
状态监控下一部分:
包含:
TSPL2 支持部分 RFID 标签打印机。
例如:
RFID标签打印流程:
定位标签
↓
写入RFID芯片
↓
打印表面内容
↓
输出标签RFID标签通常包含:
| 区域 | 说明 |
|---|---|
| EPC | 电子产品编码 |
| TID | 芯片唯一编号 |
| USER | 用户数据区 |
| PASSWORD | 访问密码 |
向RFID标签写入数据。
RFID WRITE address,length,data| 参数 | 说明 |
|---|---|
| address | 写入地址 |
| length | 长度 |
| data | 写入数据 |
RFID WRITE 0,6,"123456"读取RFID标签数据。
RFID READ address,lengthRFID READ 0,6返回:
RFID DATA擦除RFID数据。
RFID ERASE用于:
块写入。
适用于:
RFID BLOCKWRITE block,dataRFID BLOCKWRITE 1,"ABCDE"锁定RFID区域。
RFID LOCK area,password防止:
典型RFID标签:
创建标签
↓
定位RFID
↓
写入芯片
↓
打印文字
↓
打印条码
↓
输出示例:
SIZE 100 mm,50 mm
GAP 3 mm,0
CLS
RFID WRITE 0,6,"ABC123"
TEXT 50,50,"3",0,1,1,"RFID TAG"
BARCODE 50,120,"128",60,1,0,2,2,"ABC123"
PRINT 1开启剥离模式。
用于:
SET PEEL ON关闭:
SET PEEL OFF打印
↓
标签分离
↓
等待取走
↓
继续打印开启撕纸模式。
SET TEAR ON关闭:
SET TEAR OFF开启切刀模式。
SET CUTTER ON关闭:
SET CUTTER OFF适用于:
开启回卷模式。
SET REWIND ON用于:
功能:
自动检测标签间距。
语法:
GAPDETECT功能:
自动检测黑标。
语法:
BLINEDETECT功能:
自动识别标签类型。
语法:
AUTODETECTSET用于控制打印机特殊功能。
示例:
SET HEAT 10SET TEAR ONSET PEEL ONSET CUTTER ON部分型号支持:
SET SOUND ON暂停:
PAUSE恢复:
按:
FEED恢复打印机状态。
RESETRESET会:
SIZE 100 mm,80 mm
GAP 3 mm,0
CLS
RFID WRITE 0,12,"PRODUCT001"
TEXT 50,50,"3",0,2,2,"PRODUCT001"
QRCODE 50,150,L,5,A,0,"PRODUCT001"
BARCODE 250,150,"128",80,1,0,2,2,"PRODUCT001"
PRINT 1SIZE 100 mm,50 mm
SET PEEL ON
CLS
TEXT 50,50,"3",0,1,1,"LABEL"
PRINT 1| 场景 | 模式 |
|---|---|
| 普通标签 | Tear |
| 自动贴标 | Peel |
| 连续票据 | Cutter |
| 批量生产 | Rewind |
| RFID追踪 | RFID模式 |
下一部分:
包含:
]]>TSPL2 支持部分动态数据功能。
主要用于:
典型应用:
产品编号
↓
自动生成序列号
↓
打印二维码
↓
记录生产信息用于自动递增或递减打印内容。
应用:
初始化计数器。
SET COUNTER @n start step| 参数 | 说明 |
|---|---|
| @n | 计数器编号 |
| start | 开始值 |
| step | 递增步长 |
初始化:
SET COUNTER @1 1 1表示:
1
2
3
4
5
...打印当前计数器值。
COUNTER x,y,"font",rotation,xmul,ymul,@nSET COUNTER @1 1000 1
COUNTER 50,50,"3",0,1,1,@1打印:
1000下一张:
1001例如:
产品:
MODEL-A序列:
MODEL-A000001
MODEL-A000002
MODEL-A000003初始化:
SET COUNTER @1 1 1打印:
TEXT 50,50,"3",0,1,1,"SN:"
COUNTER 120,50,"3",0,1,1,@1
PRINT 1效果:
第一次:
SN:1第二次:
SN:2SIZE 100 mm,50 mm
CLS
SET COUNTER @1 1 1
TEXT 50,50,"3",0,1,1,"NO:"
COUNTER 150,50,"3",0,1,1,@1
PRINT 100输出:
NO:1
NO:2
NO:3
...
NO:100部分 TSPL2 固件支持系统时间变量。
常用于:
格式:
DATE
TIMETEXT 50,50,"3",0,1,1,"DATE"
TEXT 150,50,"3",0,1,1,"DATE"不同型号对日期变量支持不同。
如果打印机不支持:
推荐:
由上位机生成日期:
例如:
程序生成:
2026-08-05然后发送:
TEXT 50,50,"3",0,1,1,"2026-08-05"部分 TSPL2 支持 INPUT。
从外部设备输入数据。
INPUT variable例如:
扫描枪输入:
商品条码然后打印。
部分带屏幕打印机支持 KEY 功能。
应用:
PRINT 100表示:
打印100张。
示例:
SIZE 100 mm,50 mm
CLS
SET COUNTER @1 1 1
TEXT 50,50,"3",0,1,1,"BOX NO:"
COUNTER 180,50,"3",0,1,1,@1
PRINT 50结果:
BOX NO:1
BOX NO:2
...
BOX NO:50示例:
生成:
000001
000002
000003代码:
SIZE 100 mm,50 mm
CLS
SET COUNTER @1 1 1
BARCODE 50,100,"128",80,1,0,2,2,@1
PRINT 100示例:
SIZE 100 mm,50 mm
CLS
SET COUNTER @1 1 1
TEXT 50,30,"3",0,1,1,"SN"
QRCODE 50,80,L,5,A,0,@1
PRINT 100工业常用结构:
固定内容
+
变量
+
流水号
+
条码
+
二维码示例:
SIZE 100 mm,60 mm
GAP 3 mm,0
CLS
TEXT 30,30,"3",0,1,1,"产品编号"
TEXT 150,30,"3",0,1,1,"A100"
TEXT 30,80,"3",0,1,1,"SN:"
COUNTER 100,80,"3",0,1,1,@1
BARCODE 30,130,"128",60,1,0,2,2,@1
QRCODE 300,80,L,5,A,0,@1
PRINT 100生产系统中:
数据库
↓
生成TSPL
↓
发送打印机
↓
查询状态
↓
记录结果不要完全依赖打印机内部变量:
原因:
使用:
使用:
使用:
下一部分:
包含:
TSPL 打印机支持通过发送查询指令获取设备状态。
常用于:
通讯方式:
查询打印机基本状态。
~!TPRINTER STATUS
READY发送:
~!T读取:
READY表示:
打印机正常,可以打印。
查询打印机配置。
~!UMODEL
FIRMWARE
DPI
MEMORY
SPEED
DENSITY例如:
MODEL:TTP-244 Pro
DPI:203
SPEED:4
DENSITY:8查询打印机信息。
~!A可能包含:
获取实时打印状态。
这是开发中最常使用的状态指令之一。
~HS00000000不同型号返回格式略有区别。
TSPL状态通常包含:
| 状态 | 说明 |
|---|---|
| Ready | 正常 |
| Paper Out | 缺纸 |
| Ribbon Out | 缺碳带 |
| Head Open | 打印头打开 |
| Pause | 暂停 |
| Error | 错误 |
状态:
Paper Out处理:
FORMFEED状态:
Head Open处理:
关闭打印头。
状态:
Pause恢复:
按打印机面板 FEED 键。
USB通常作为虚拟打印设备。
系统:
Windows:
USB PrinterLinux:
/dev/usb/lp0直接发送 TSPL 字符串。
例如:
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"TEST"
PRINT 1string tspl =
@"SIZE 100 mm,50 mm
CLS
TEXT 50,50,""3"",0,1,1,""TEST""
PRINT 1";
SendToPrinter(tspl);| 参数 | 值 |
|---|---|
| 波特率 | 9600 |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验 | None |
通常:
9600 8N1发送字符串:
CLS
TEXT 50,50,"3",0,1,1,"TEST"
PRINT 1通常:
9100连接:
Printer IP:9100发送:
TSPL指令关闭连接。
连接:
192.168.1.100:9100发送:
SIZE 100 mm,50 mm
CLS
TEXT 50,50,"3",0,1,1,"NETWORK PRINT"
PRINT 1推荐开发流程:
发送打印任务
↓
查询状态
↓
判断结果
↓
继续/提示用户伪代码:
send PRINT
wait
send ~HS
if READY:
continue
else:
show error工业环境:
推荐流程:
连接打印机
↓
查询状态
↓
发送标签
↓
等待完成
↓
再次查询状态
↓
记录日志建议:
每张标签:
CLS
绘制内容
PRINT 1
查询状态避免:
查看状态:
~!T查看配置:
~!U查看文件:
FILES清缓存:
CLS恢复:
RESETSIZE 100 mm,50 mm
GAP 3 mm,0
DIRECTION 0
SPEED 4
DENSITY 8
CLS
TEXT 50,50,"3",0,2,2,"TSPL TEST"
BARCODE 50,120,"128",80,1,0,2,2,"123456"
PRINT 1下一部分:
包含:
打印位图数据。
主要用于:
BITMAP x,y,width,height,mode,data| 参数 | 说明 |
|---|---|
| x | 图片X坐标 |
| y | 图片Y坐标 |
| width | 图片宽度(bit) |
| height | 图片高度 |
| mode | 图片模式 |
| data | 位图数据 |
BITMAP 50,50,100,100,0,<bitmap data>BITMAP 通常用于:
不适合人工编写。
打印已经存储在打印机中的 BMP 图片。
PUTBMP x,y,"filename"| 参数 | 说明 |
|---|---|
| x | X坐标 |
| y | Y坐标 |
| filename | BMP文件名 |
PUTBMP 50,50,"LOGO.BMP"步骤:
DOWNLOAD "LOGO.BMP"PUTBMP 50,50,"LOGO.BMP"打印 PCX 格式图片。
PUTPCX x,y,"filename"PUTPCX 100,100,"IMAGE.PCX"PCX 是 TSPL 早期常用格式。
优点:
下载文件到打印机存储。
支持:
DOWNLOAD "filename"下载 Logo:
DOWNLOAD "LOGO.BMP"PC发送:
DOWNLOAD "LOGO.BMP"然后:
二进制文件内容最后:
EOP表示文件传输结束。
EOPDOWNLOAD "LOGO.BMP"
<binary data>
EOP查看打印机存储文件。
FILES发送:
FILES返回:
LOGO.BMP
FONT.BF2
LABEL.BAS用于:
删除打印机文件。
REMOVE "filename"删除图片:
REMOVE "LOGO.BMP"REMOVE "FONT.BF2"移动文件。
MOVE "source","destination"MOVE "A.BMP","B.BMP"执行存储在打印机中的程序。
RUN "filename"RUN "TEST.BAS"用于:
查看存储空间。
~!T或者:
FILES| 区域 | 用途 |
|---|---|
| DRAM | 临时缓存 |
| FLASH | 永久存储 |
| CARD | 扩展存储 |
TSPL 支持:
发送:
DOWNLOAD "FONT.TTF"发送字体二进制数据。
结束:
EOP示例:
TEXT 50,50,"FONT.TTF",0,1,1,"测试文字"发送:
DOWNLOAD "LOGO.BMP"发送:
BMP二进制数据结束:
EOP打印:
PUTBMP 50,50,"LOGO.BMP"部分TSPL2打印机支持保存标签模板。
流程:
DOWNLOAD "LABEL.BAS"RUN "LABEL.BAS"SIZE 100 mm,50 mm
GAP 3 mm,0
CLS
PUTBMP 20,20,"LOGO.BMP"
TEXT 150,40,"3",0,2,2,"商品标签"
BARCODE 150,100,"128",60,1,0,2,2,"123456789"
PRINT 1FILESREMOVE "LOGO.BMP"DOWNLOAD "LOGO.BMP"PUTBMP 0,0,"LOGO.BMP"下一部分:
包含: