易标签 PLC+微电脑标签打印系统,将工业自动化逻辑与智能标签打印完美融合,打造灵活高效的工业级标签打印解决方案。无论您是工业自动化产线、企业打印工作组还是定制化需求用户,我们的方案都能为您带来革命性的打印体验。
核心优势
与传统 PLC 打印方案相比,易标签解决方案具有革命性突破:
- 部署便捷:非专业工控团队即可快速上线,支持批量部署
- 灵活高效:更换、新增标签模板无需停机,即时生效
- 结构清晰:将标签模板、字体、中文、条码规则全部从 PLC 剥离,PLC 专注于工业逻辑控制
- 可维护性:系统分层设计,便于故障排查和功能扩展
- 成本优势:相比纯 PLC 方案显著降低硬件投资和维护成本,无需高端 PLC 支持复杂打印功能,利用低成本微型电脑即可实现专业打印能力
系统核心功能
多维度打印控制
- 智能触发:支持电脑控制、手机控制、PLC 信号触发、定时打印等多种触发方式
- 灵活连接:兼容物理连接和网络连接,支持任意带网口的标签打印机
丰富数据源支持
- 多样化输入:支持键盘输入、数据库对接、ERP/MES/云服务集成
- 工业数据获取:直接读取 PLC 信号(模拟信号、数字信号、脉冲信号)及计时计数功能
全方位人机交互
- 电脑端:完整的标签模板管理系统
- 移动端:便捷的移动打印操作
- 触摸屏集成:支持威纶、MCGS、昆仑通态等主流触摸屏
专业模板管理
- 云端存储:标签模板直接保存到云标签库
- Web 管理:支持通过 Web 访问方式统一管理
- 历史追溯:完整记录打印历史,包括打印时间、打印人、标签内容等信息
系统架构与工作流程
分层架构设计
系统采用触发逻辑与打印控制分离的先进设计理念:
- PLC 层:专注于工业现场信号检测与触发
- 工控机层:负责打印内容生成、模板管理与打印指令发送
- 打印机层:执行打印操作
通信架构
- PLC ↔ 工控机:通过以太网 TCP/IP 协议,PLC 主动发起连接,发送标准化触发帧
- 工控机 ↔ 打印机:通过 TCP 9100 端口(打印机标准打印端口)发送 ZPL/EPL 指令
工作流程
- 触发检测:PLC 实时监测现场条件(按钮、光电传感器、扫码枪等)
- 触发帧发送:条件满足时,PLC 发送触发帧(格式:
P + 4字节产品ID + \r\n)给工控机 - 指令生成:工控机解析触发帧,选择预定义模板,填充动态变量,生成完整打印指令
- 打印执行:工控机通过标准端口将指令发送给标签打印机,立即执行打印
系统实现配置
PLC 侧配置
基本网络配置(以西门子 S7-200 SMART 为例)
| 步骤 | 操作 | 参数 |
|---|---|---|
| 设 IP | 系统块 → 通信 | 与工控机同一网段 |
| 以太网向导 | 工具 → 以太网向导 | 生成 ETH0_CTRL / ETH0_TSEND 指令块 |
| 数据缓冲区 | 向导自动创建 | SendBuf[0..31] (BYTE) / SendLen (WORD) |
PLC 程序示例(STL)
Network 1 // 触发检测(按钮上升沿)
LD M0.0 // 按钮常开
EU // 上升沿
= M10.0 // 单脉冲标志
Network 2 // 组帧:P + 4 B 产品 ID + CRLF
LD M10.0
MOVB 'P', SendBuf[0]
MOVB VB100, SendBuf[1] // 产品号低字节
MOVB VB101, SendBuf[2]
MOVB VB102, SendBuf[3]
MOVB VB103, SendBuf[4]
MOVB 16#0D, SendBuf[5] // CR
MOVB 16#0A, SendBuf[6] // LF
MOVW 7, SendLen // 帧长度
Network 3 // 发送给工控机
LD M10.0
CALL ETH0_TSEND, EN:=1, Data:=SendBuf, Len:=SendLen,
Done=>M11.0, Error=>MB12, Status=>MW14
工控机配置
系统环境
- 操作系统:Debian 11 无桌面版(轻量高效,占用资源少)
- Python 版本:3.9+(系统自带,无需额外安装)
- 自启动:systemd 服务,开机 10 秒内就绪
打印服务脚本
基于 Python 开发的轻量级 TCP 服务器,完整功能包括:
- 监听 TCP 端口接收 PLC 触发信号
- 解析触发帧提取产品信息
- 根据预定义模板生成 ZPL 打印指令
- 通过标准端口发送指令到打印机
- 完整日志记录便于故障排查
#!/usr/bin/env python3
"""
标签打印服务脚本
功能:接收PLC触发帧,生成ZPL指令,发送到标签打印机
版本:1.0
作者:易标签团队
"""
import socket
import logging
from logging.handlers import RotatingFileHandler
# 配置参数
LISTEN_IP = '0.0.0.0' # 监听所有网络接口
LISTEN_PORT = 2000 # 监听端口(与PLC配置一致)
PRINTER_IP = '192.168.0.88' # 打印机IP地址
PRINTER_PORT = 9100 # 打印机端口
# 日志配置
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
RotatingFileHandler('/var/log/print_server.log', maxBytes=10*1024*1024, backupCount=3),
logging.StreamHandler()
]
)
logger = logging.getLogger(__name__)
# ZPL标签模板
TEMPLATE = '''^XA
^PW400
^LL200
^FO20,20^A0N,30,30^FD 产品ID:{pid}^FS
^FO20,60^BQN,2,5^FDLA,{pid}^FS
^FO20,140^A0N,20,20^FD打印时间:{print_time}^FS
^XZ'''
# ... 完整代码请参考技术文档
开机自启配置
[Unit]
Description=Label Print Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 /opt/print_server.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
调试与维护
快速调试(10 分钟完成)
| 顺序 | 操作 | 预期结果 |
|---|---|---|
| ① | 通过 Telnet 手工发送 ZPL 指令 | 打印机立即出签 |
| ② | 通过 NC 工具发送触发帧 | 打印机出签,系统记录打印日志 |
| ③ | PLC 端按触发按钮 | 打印完成,PLC 显示发送成功 |
后期维护
| 维护场景 | 操作地点 | 是否停 PLC |
|---|---|---|
| 修改标签内容、字体、二维码 | 工控机模板配置 | 否 |
| 变更触发条件(光电/按钮) | PLC 程序调整 | 需要下载 |
| 更换打印机品牌 | 工控机脚本配置 | 否 |
应用案例
扫码打印案例
PLC 连接扫码枪,实现扫码即打印:
- 扫码枪读取产品条码
- PLC 接收并处理扫码数据
- PLC 发送触发帧给工控机
- 工控机查询数据库获取完整信息
- 自动生成并打印标签
产线自动化打印案例
产线实时标签打印解决方案:
- PLC 获取产线实时数据(产品 ID、位置等)
- PLC 触发打印信号
- 工控机根据数据生成个性化标签
- 立即打印并贴标,实现全自动化流程
易标签 —— 让工业标签打印更简单、更高效、更灵活!



