✨ feat(file-check): 忽略无效扫码结果并完善汇报材料

This commit is contained in:
2026-10-22 16:41:57 +08:00
parent 07841fe4fe
commit 3238817185
10 changed files with 1776 additions and 328 deletions

104
docs/开发流程.txt Normal file
View File

@@ -0,0 +1,104 @@
1. PCB 到位后开始处理;
2. 读取一个条码;
3. 根据条码检查对应文件是否存在;
4. 文件存在显示“正常”;
5. 文件不存在显示“异常”;
6. 页面显示当前状态、条码、处理结果和日志;
7. 保存最近的处理记录;
8. 先使用模拟数据,不连接真实设备;
9. 页面上增加按钮,让我可以模拟“正常”“异常”“设备故障”三种情况。
我需要写一个程序完成下面的功能,
跟欧姆龙的plc通信,等待plc传递过来信号,通知我pcb板到位了.我触发两个网络的扫描枪扫描pcb板的二维码
根据条码检查对应指定文件夹里的文件是否存在,然后把结果返回给plc.
还需要哪些信息才能开始写程序?
主人,这个功能可以开始设计,但要先确认以下信息,尤其是 PLC 点位和握手流程。
PLC 信息PLC 型号:CP、CJ、CS、NJ、NX 等
通信协议:FINS/TCP、FINS/UDP、EtherNet/IP 或 OPC UA
PLC IP、端口、网络号、节点号
“PCB 到位”信号地址和数据类型
上位机需要写回的地址:扫描中
扫描成功
文件存在
文件不存在
条码错误
扫描超时
双枪条码不一致
PLC 对信号的要求:保持型、脉冲型,还是需要上位机清零
完整握手时序:触发、响应、复位、超时、异常恢复
最好提供 PLC 点位表或梯形图截图。不能只凭历史地址开发,现场需确认真实点位。
两把网络扫描枪信息品牌和型号
通信方式:TCP Server、TCP Client、UDP,还是串口转网口
每把扫描枪的 IP 和端口
条码结束符:CR、LF、CRLF 或无结束符
条码编码:ASCII、UTF-8 等
扫描超时时间
两把枪的作用:是否同时扫描同一个 PCB
是否分别扫描正反面或两个位置
两个条码是否必须一致
两把枪是否有先后顺序
扫描失败、重复扫描、断线后的处理方式
最好提供扫描枪通信协议手册和一组实际原始报文。
条码与文件规则PCB 二维码示例
条码长度、格式、是否区分大小写
条码如何转换成文件名或文件夹名
文件的完整路径规则
文件扩展名,例如 .csv、.json、.xml、.jpg
文件夹是本地目录、共享目录,还是 SFTP
文件存在的判断条件:精确文件名
模糊匹配
必须匹配一个文件
匹配多个文件也算成功
文件存在但为空、损坏或正在写入时如何处理
是否需要在 PLC 确认后删除或移动文件
返回 PLC 的结果定义
请明确每个结果对应的 PLC 值,例如:
结果 PLC 值
空闲 0
扫描中 1
文件存在/OK 2
文件不存在/NG 3
条码不一致 4
通信异常 5
还需要确认结果是写入一个字、多个 bit,还是写入字符串。
程序形态使用 WPF 还是 WinForms
目标 .NET 版本
是否需要操作员界面
是否需要显示 PLC、两把扫描枪和文件服务器状态
是否需要配置界面
日志保存位置和保留天数
是否需要开机自启动
是否部署为普通桌面程序还是 Windows Service
是否需要数据库保存扫描记录
我建议默认采用:
WPF + .NET 8
PLC、扫描枪、文件检查分别封装成独立通信服务
后台任务监听 PLC,不阻塞界面
所有 IP、端口、地址、超时和文件规则放入配置文件
先用模拟 PLC、模拟扫描枪和临时目录验证流程,再进行现场 PLC/扫描枪联调
最少需要提供的资料
你可以先给我这些,我就能开始搭建第一版:
PLC 型号、IP、通信协议
PLC 点位表或触发/返回时序
两把扫描枪型号、IP、端口
两把扫描枪实际扫描结果示例
PCB 条码示例
文件夹路径示例和文件名示例
OK/NG 返回值定义
希望使用 WPF 还是 WinForms
已有欧姆龙项目经验表明,PLC 网络写入成功不等于 PLC 业务确认,因此握手中必须明确应答信号、超时和复位流程;本地模拟验证也不能替代真实 PLC、扫描枪和文件服务器验收。
主人 任务完成了