一、立项原因(旨在解决的产品问题) 液碱(氢氧化钠)卸车作业长期依赖人工登记与纸质单据,存在四个痛点:一是身份核验靠人工肉眼比对,存在冒名顶替、车辆与货物不匹配的风险;二是卸车量与流量数据靠人工抄录,无法追溯、易篡改,结算与对账缺乏可信依据;三是卸车过程中流量异常(如流量过低、接口超时)无法及时发现,存在安全与合规隐患;四是数据分散在现场记录本与值班人员手中,管理层无法实时掌握当日卸车情况。
本项目旨在用"PLC 信号联动 + 上位机自动流程 + 数据库留痕 + Web 看板可视化"替代人工环节,实现刷卡身份自动核验、卸车流量自动采集、数据自动上传与全程可追溯,把现场作业从"人管人"变为"系统管流程"。
二、行业场景(业务背景) 项目应用于化工企业液碱槽车卸车环节。现场由 PLC(S7-1200)控制卸车泵与阀门,司机将身份卡在通道读卡器刷卡后,PLC 置位"刷卡完成"信号;上位机检测到信号上升沿后读取卡号与身份信息,调用企业内部的"接口一"完成身份/车辆/订单校验,校验通过后向 PLC 回写"允许卸车"与车辆七字段(姓名、车牌、碱号、仓库、厂家、订单号等),PLC 据此放行卸车;卸车期间上位机按各通道独立频率采集瞬时流量并存库;卸车完成(PLC 置位"取平均值")后,上位机计算平均流量并调用"接口二"上传,回传结果写回 PLC 并置 OK/NG 标志位。
系统支持 8 个通道冗余配置(现场实际使用 1-4 通道,通道数可在线配置),并配有完整的数据看板,供值班人员、班组长与管理人员查询当日/历史卸车记录、实时通道状态、流量统计与异常汇总
上位机(PLC_v2):登录鉴权、通道状态总览表、通道详情弹窗、实时流量曲线、运行日志、PLC/内部接口状态灯、配置管理、现场操作按钮(重试/忽略终止/复位/屏蔽)、离线模拟。
Web 看板(board_api + dashboard):卸车记录、实时监控、统计分析、异常汇总、卸车日报、上位机日志、系统配置、用户管理、操作日志。
数据层(db):业务数据、采集点明细、系统配置、用户权限、操作审计、上位机日志、实时状态。
二、主要功能描述
三阶段自动流程:刷卡校验(接口一)→ 本地采集瞬时流量 → 卸车完成上传(接口二),全程无需人工干预;接口失败自动置 NG 锁定,接口二超时进入"上传重试"由现场选择重试或忽略终止。
多通道独立采集:8 通道冗余,每通道独立采集频率(从 PLC DB28 读取)、独立状态机与独立曲线,互不干扰。
通道总览与详情:总览表一行一通道(状态/屏蔽/车牌/姓名/采集点/当前流量/平均流量),一目了然;双击弹窗查看该通道完整 PLC 信号与刷卡信息,弹窗数据实时刷新。
实时曲线:右栏按通道着色绘制实时流量曲线,窗口缩放自适应重绘。
Web 看板:卸车记录支持通道/车牌/身份证/日期筛选、分页、中文表头 CSV 导出;统计页有汇总卡片、按日柱线混合图、按通道分布;异常汇总列出 NG/上传失败记录;日报按日期一键生成并可打印存档;上位机日志按级别(错误/警告/信息)与关键字检索;配置页在线修改全部参数;普通用户自动隐藏身份证与卡号,保障信息安全。
数据治理:采集点日志不重复入库、上位机启动自动清理(日志保留 30 天、采集点保留 365 天)、通道数缩减自动清理残留。
一、"我"负责的具体任务 独立完成项目全流程:需求梳理与现场流程确认(与 PLC 工程师对接信号地址表、位定义、接口字段)、系统架构设计、数据库表结构与数据治理方案设计、上位机全部开发(PLC 通信、三阶段状态机、多通道采集、GUI 重构)、Web 看板前后端开发(Flask 接口 + Chart.js 前端)、离线模拟器开发、权限与操作审计、打包部署(exe 免环境交付)与使用文档编写。
二、技术栈、架构与亮点难点 技术栈:Python 3 / customtkinter(Tkinter)桌面 GUI;python-snap7 直连 S7-1200 读写数据块(大端 Real/Int、S7 字符串 2 字节长度前缀 + GBK);Flask + Token 鉴权提供 REST 接口;原生 JavaScript + Chart.js 前端可视化;SQLite(WAL 模式)单文件数据库;PyInstaller 打包为免安装 exe。 架构:上位机(工作线程 + GUI 主线程 + 队列通信)与看板后端双进程共享同一 SQLite(全局锁 + check_same_thread=False);所有配置入库、改库即生效;PLC_v2 启动时自动拉起看板后端与模拟接口,关闭时终止子进程;exe 交付下数据库落在 exe 同目录保证持久。
亮点与难点:
PLC 写回强一致:写 PLC 后立即回读校验并重试 4 次,任一失败进入 NG/重试机制,规避工业现场网络抖动导致的数据错位。
三阶段状态机:待机/卸车中/等上传/上传重试/等取值五态流转,配合上升沿检测,保证一次卸车只触发一次上传。
多通道并发采集:每通道独立频率与状态,采集点入库不影响轮询实时性(字符串按需刷新,避免每轮 48 次大读拖慢轮询)。
数据量治理:按业务价值分层保留(明细采集点 1 年、运行日志 30 天、卸
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论