喷码机电脑控制系统产品系统

我要开发同款
98阅读

技术信息

语言技术
Python、Basic
系统类型
Windows
行业分类
智能硬件、工业互联网

作品详情

行业场景

原厂 Linux 触控屏喷码机人机界面固定、操作路径锁死在设备小屏上,产线换工位、换 Windows 工控机、或由 PC 侧统一下发追溯数据时无法操作。本项目把设备九大界面按逐屏结构等量移植到 PC 端,脱离小屏与物理按键限制,让批号、流水号等可变数据由 PC 按 TXT 批量下发,实现一物一码动态追溯,满足烟草等行业的产品信息强制标识与追溯合规需求。

功能介绍

打印工作台:打印初始化/开始/停止/单次/清除数据、喷头启停与清洗;实时显示打印状态、总/本次次数、喷头类型与数量、逐喷头墨量百分比与 7 种故障状态、光电触发等待态
图纸管理:获取列表、新增、设为当前、删除
图元编辑:文字/时间/计数/班次/扫码枪/图形码/图片 7 类元素,位置 X/Y、旋转 0–359°、镜像 4 向、字号、18 种条码(Code 39/128/QR/DataMatrix/汉信码/GS1 系列等)、13 种边框、图片 BMP 灰度二值化分包上传并带实时进度
打印设置:32 字节全字段——触发方式、光电触发电平与防抖、定时/编码器同步双语义、打印次数、速度、间隔、触发保护、反转策略、墨盒加热、单次限制
喷头设置:最多 16 喷头表格配置——启停、脉宽 1.5–3.0μs、电压 7.0–12.8V、喷头/打印方向、左喷右喷交替双喷、喷头关联、间距、触发后距离
系统设置:屏幕亮度、自动熄屏、低墨量报警阈值、闪喷间隔与强度、5 种提示音开关
编码器设置:方向、直径、每圈脉冲数、同步方式
系统功能:日期时钟、版本信息、数据备份导出、恢复默认图元、固件升级说明
批量打印(VDP 动态追溯):打印机侧获取全部图元 ID → 单文件/多文件 TXT 数据源 → 逐条「停止→下发→重新栅格化→开始→拦截光电」循环,暂停/恢复/停止、进度条、TXT 指针跟随虚拟滚动窗
内置通讯日志:SEND/RECV 十六进制分级着色、毫秒时间戳

项目实现

技术栈:Python 3.12 + PyQt5(QtWidgets/QtNetwork/QtCore)+ Pillow(图片处理)+ PyInstaller 打包;自研 TCP 二进制协议栈(Start 0xAF | Length 2B | CMD | CMD2 | DATA | CheckSum,大端序、UTF-8、0xFF/0xFFFF/0xFFFFFFFF 作「保持原值」哨兵);QTcpSocket 独占 QThread + QThreadPool 异步任务桥 + threading.Event 请求响应配对。
我负责:全部需求逆向、协议文档 V1.0.2→V1.0.7 的编解码实现与解析器、九屏 UI 与参数控件、传输层线程模型、批量 VDP 工作线程、图元编辑器与画布预览、图片分包上传、打包分发、现场故障排查与固件兼容。
技术上两点:①图片上传按 名称+总包数+文件大小 + 每包 包号+数据+(和&0xFF)+1 二次校验分包(与帧校验算法不同,混用即失败),带动态进度条与失败包号定位;②用「数值输入 + 保持复选框」复合控件,编码器设置时其余 28 字节全填哨兵,实现只改目标字段、绝不误改设备配置的事务式下发。
两点难点:①设备把 0x00 0x06 喷头准备完毕的应答与 0x00 0x03 打印一次上报复用成同一个包、内容不可区分——用「发开始打印前打时间戳 + 接收时刻 ≥ 武装时刻」的时间序门控判定真实喷印完成,失手即出现"刚启动就被停止、实际未喷印";②设备缓存中同时存在自动生成数据与 PC 下发数据,直接下发会导致内容错乱——用 _head_ready_time > _print_once_time 双时间戳单调比较判定"设备已消化完上一条",并配合暂停不跳条、恢复重喷当前条的语义,实现精准拦截每一个光电信号的一物一码。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论