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、扫描枪和文件服务器验收。 主人 任务完成了