# IDViewer_2D 软件需求规格说明书 ## 1. 概述 IDViewer_2D 是一款专业的二维视觉检测软件,主要用于工业场景中的条码/二维码识别、图像处理、设备管理和数据通信。软件支持多设备连接、实时检测、结果判定和数据导出等功能。 ## 2. 系统架构 ### 2.1 技术架构 - **开发语言**: C# - **UI框架**: WPF (Windows Presentation Foundation) - **SDK依赖**: IDViewerCSDK.dll (底层视觉算法库) - **图像处理**: OpenCVSharp - **通信协议**: Modbus TCP、TCP/IP、UDP ### 2.2 软件模块 1. 设备管理模块 2. 图像处理模块 3. 检测方案模块 4. 通信配置模块 5. 数据存储模块 6. 用户权限模块 7. 日志管理模块 ## 3. 功能需求 ### 3.1 主界面功能 #### 3.1.1 设备连接管理 - [x] **设备扫描**: 自动发现网络中的视觉设备 - [x] **设备列表**: 显示已发现设备的IP、型号、固件版本等信息 - [x] **连接状态**: 实时显示设备连接状态(已连接/未连接) - [x] **刷新连接**: 手动刷新设备列表并重新连接 - [x] **设备信息**: 显示选中设备的详细信息(IP地址、子网掩码、网关、固件版本、设备型号、设备名称) #### 3.1.2 工具栏功能 - [x] **刷新设备**: 刷新设备列表并重新连接 - [x] **设备管理**: 打开设备映射配置界面 - [x] **检测方案**: 打开检测方案配置界面 - [x] **存图设置**: 打开图像存储设置界面 - [x] **单点输出**: 切换单点/多点输出模式 - [x] **通讯测试**: 测试设备通信功能 - [x] **手动采集**: 手动触发图像采集 - [x] **界面重置**: 重置界面到初始状态 - [x] **查看检测报告**: 查看历史检测结果报告 - [x] **查看日志**: 查看系统操作日志 - [x] **一键重启**: 重启应用程序 #### 3.1.3 结果显示 - [x] **多通道显示**: 支持最多24个检测通道同时显示 - [x] **实时状态**: 显示当前检测状态和通信状态 - [x] **结果标识**: 使用颜色区分检测结果(OK/NG) - [x] **设备别名**: 显示每个通道对应的设备别名 - [x] **点击交互**: 支持点击结果区域查看详细结果 #### 3.1.4 日志显示 - [x] **实时日志**: 实时显示检测日志信息 - [x] **日志级别**: 支持不同级别的日志显示 - [x] **时间戳**: 每条日志都带有时间戳 - [x] **自动滚动**: 日志自动滚动到最新内容 ### 3.2 设备管理模块 #### 3.2.1 设备映射配置 - [x] **连接顺序**: 配置设备的连接顺序 - [x] **IP映射**: 配置设备IP与显示位置的映射关系 - [x] **添加映射**: 添加新的设备映射 - [x] **删除映射**: 删除现有设备映射 - [x] **保存配置**: 保存映射配置到文件 - [x] **加载配置**: 从文件加载映射配置 #### 3.2.2 设备控制 - [x] **设备打开/关闭**: 控制设备的开启和关闭 - [x] **运行模式**: 启动/停止设备运行 - [x] **调试模式**: 进入设备调试模式 - [x] **图像采集**: 手动采集单帧图像 - [x] **参数设置**: 设置设备参数(曝光、增益、伽马等) - [x] **固件信息**: 获取设备固件版本信息 ### 3.3 检测方案模块 #### 3.3.1 方案配置 - [x] **方案选择**: 选择检测方案文件 - [x] **模型选择**: 选择推理模型文件 - [x] **工程导出**: 导出工程配置文件 - [x] **工程加载**: 加载已有工程配置 - [x] **模型刷新**: 刷新可用模型列表 #### 3.3.2 检测参数 - [x] **目标数量**: 设置检测目标数量 - [x] **得分阈值**: 设置检测得分阈值 - [x] **目标类型**: 配置检测的目标类型 - [x] **条件设置**: 设置检测条件规则 - [x] **多检测点**: 支持多个检测点配置 #### 3.3.3 ROI管理 - [x] **ROI添加**: 添加检测区域(ROI) - [x] **ROI删除**: 删除指定ROI - [x] **ROI修改**: 修改ROI位置和大小 - [x] **ROI清空**: 清除所有ROI - [x] **码制管理**: 管理支持的条码类型 ### 3.4 图像处理模块 #### 3.4.1 图像采集 - [x] **自动采集**: 支持自动连续采集 - [x] **手动采集**: 支持手动单帧采集 - [x] **触发模式**: 支持多种触发模式(软触发、硬触发、网络触发等) - [x] **图像预览**: 实时图像预览显示 #### 3.4.2 图像参数 - [x] **曝光设置**: 调整图像曝光参数 - [x] **增益设置**: 调整图像增益参数 - [x] **伽马设置**: 调整图像伽马值 - [x] **自动曝光**: 启用/禁用自动曝光 - [x] **自动增益**: 启用/禁用自动增益 - [x] **光源控制**: 控制照明光源亮度 #### 3.4.3 图像显示 - [x] **多图浏览**: 支持多张图像浏览 - [x] **图像缩放**: 支持图像缩放查看 - [x] **上一张/下一张**: 图像浏览导航 - [x] **结果渲染**: 在图像上渲染检测结果 ### 3.5 通信配置模块 #### 3.5.1 Modbus TCP配置 - [x] **服务器IP**: 设置Modbus服务器IP地址 - [x] **端口设置**: 设置通信端口(默认502) - [x] **连接控制**: Modbus连接建立和断开 - [x] **日志显示**: 显示Modbus通信日志 - [x] **清空日志**: 清除通信日志 #### 3.5.2 TCP/IP服务器配置 - [x] **IP绑定**: 设置服务器绑定的IP地址 - [x] **端口设置**: 设置监听端口(默认5011) - [x] **心跳检测**: 启用/禁用心跳检测功能 - [x] **心跳指令**: 设置心跳指令内容 - [x] **心跳周期**: 设置心跳检测周期 - [x] **服务器控制**: 启动/停止TCP服务器 - [x] **IP刷新**: 刷新可用IP地址列表 #### 3.5.3 通信协议支持 - [x] **Modbus TCP**: 支持Modbus TCP协议 - [x] **TCP/IP**: 支持标准TCP/IP通信 - [x] **UDP**: 支持UDP协议通信 - [x] **串口通信**: 支持串口通信 - [x] **EtherNet/IP**: 支持EtherNet/IP协议 - [x] **Profinet**: 支持Profinet协议 - [x] **FINS**: 支持FINS协议 - [x] **MC协议**: 支持三菱MC协议 - [x] **EtherCAT**: 支持EtherCAT协议 ### 3.6 数据存储模块 #### 3.6.1 存储设置 - [x] **存储路径**: 设置数据存储路径 - [x] **图像格式**: 选择图像存储格式(BMP/JPG/PNG) - [x] **压缩比率**: 设置图像压缩比率(0-10) - [x] **启用存储**: 启用/禁用图像存储功能 #### 3.6.2 存储管理 - [x] **定期清理**: 设置定期清理图像功能 - [x] **清理周期**: 设置图像保留天数(1-200000天) - [x] **空间预警**: 启用存储空间预警功能 - [x] **预警阈值**: 设置空间预警百分比(10%-90%) - [x] **存储状态**: 显示当前存储状态信息 #### 3.6.3 数据导出 - [x] **Excel导出**: 支持检测结果导出到Excel - [x] **报告生成**: 生成检测报告文档 - [x] **数据格式**: 支持多种数据导出格式 - [x] **批量导出**: 支持批量数据导出 ### 3.7 用户权限模块 #### 3.7.1 用户登录 - [x] **用户认证**: 支持用户登录认证 - [x] **用户管理**: 管理用户账户列表 - [x] **密码保护**: 支持密码输入保护 - [x] **权限控制**: 不同用户权限控制 #### 3.7.2 操作权限 - [x] **配置权限**: 控制配置修改权限 - [x] **设备控制权限**: 控制设备操作权限 - [x] **数据查看权限**: 控制数据查看权限 - [x] **系统管理权限**: 控制系统管理功能 ### 3.8 日志管理模块 #### 3.8.1 系统日志 - [x] **操作日志**: 记录用户操作日志 - [x] **错误日志**: 记录系统错误信息 - [x] **通信日志**: 记录通信数据日志 - [x] **检测日志**: 记录检测结果日志 #### 3.8.2 日志功能 - [x] **实时显示**: 实时显示日志内容 - [x] **日志过滤**: 支持按级别过滤日志 - [x] **日志导出**: 支持日志导出功能 - [x] **日志清理**: 支持日志自动清理 ## 4. 非功能需求 ### 4.1 性能需求 - [x] **实时性**: 检测响应时间 < 100ms - [x] **稳定性**: 7×24小时连续运行 - [x] **并发性**: 支持多设备并发检测 - [x] **资源占用**: CPU占用率 < 70%,内存占用 < 2GB ### 4.2 可靠性需求 - [x] **异常处理**: 完善的异常处理机制 - [x] **自动重连**: 网络异常自动重连 - [x] **数据恢复**: 异常断电数据恢复 - [x] **日志追踪**: 完整的操作日志追踪 ### 4.3 可用性需求 - [x] **用户界面**: 直观易用的图形界面 - [x] **操作流程**: 简洁明了的操作流程 - [x] **帮助文档**: 完善的帮助文档支持 - [x] **多语言**: 支持中英文界面 ### 4.4 安全性需求 - [x] **数据安全**: 检测数据安全存储 - [x] **访问控制**: 严格的访问权限控制 - [x] **通信加密**: 敏感数据通信加密 - [x] **操作审计**: 所有操作都有审计日志 ### 4.5 兼容性需求 - [x] **操作系统**: 支持Windows 7/10/11 - [x] **硬件兼容**: 支持多种视觉设备 - [x] **网络兼容**: 支持多种网络协议 - [x] **数据兼容**: 支持多种数据格式 ## 5. 接口需求 ### 5.1 硬件接口 - [x] **相机接口**: 支持GigE Vision、USB3.0相机 - [x] **IO接口**: 支持数字输入输出控制 - [x] **串口接口**: 支持RS232/RS485串口通信 - [x] **网络接口**: 支持千兆以太网接口 ### 5.2 软件接口 - [x] **SDK接口**: IDViewerCSDK.dll 接口调用 - [x] **数据库接口**: 支持SQLite数据库 - [x] **文件接口**: 支持文件读写操作 - [x] **网络接口**: 支持Socket通信 ### 5.3 通信接口 - [x] **Modbus TCP**: 支持Modbus TCP客户端/服务器 - [x] **TCP/IP**: 支持标准TCP/IP通信 - [x] **UDP**: 支持UDP数据报通信 - [x] **HTTP**: 支持HTTP协议通信 - [x] **FTP**: 支持FTP文件传输 ## 6. 数据需求 ### 6.1 数据存储 - [x] **配置数据**: XML格式配置文件 - [x] **图像数据**: BMP/JPG/PNG格式图像文件 - [x] **结果数据**: Excel/CSV格式结果文件 - [x] **日志数据**: 文本格式日志文件 ### 6.2 数据处理 - [x] **数据解析**: 解析各种格式的数据 - [x] **数据转换**: 数据格式转换处理 - [x] **数据校验**: 数据完整性校验 - [x] **数据备份**: 自动数据备份 ### 6.3 数据展示 - [x] **实时显示**: 实时数据可视化显示 - [x] **历史查询**: 历史数据查询显示 - [x] **统计报表**: 数据统计报表生成 - [x] **趋势分析**: 数据趋势分析显示 ## 7. 约束条件 ### 7.1 技术约束 - [x] **开发语言**: 必须使用C#开发 - [x] **运行环境**: 必须支持.NET Framework 4.5+ - [x] **第三方库**: 依赖IDViewerCSDK.dll库 - [x] **界面框架**: 使用WPF框架开发 ### 7.2 业务约束 - [x] **实时性要求**: 必须满足实时检测要求 - [x] **准确性要求**: 检测准确率 > 99.9% - [x] **稳定性要求**: 无故障运行时间 > 1000小时 ### 7.3 资源约束 - [x] **硬件资源**: 需要足够的计算资源 - [x] **存储资源**: 需要足够的存储空间 - [x] **网络资源**: 需要稳定的网络环境 ## 8. 质量属性 ### 8.1 可维护性 - [x] **模块化设计**: 系统采用模块化设计 - [x] **代码规范**: 遵循编码规范和标准 - [x] **文档完整**: 提供完整的技术文档 - [x] **易于扩展**: 系统易于功能扩展 ### 8.2 可测试性 - [x] **单元测试**: 支持单元测试 - [x] **集成测试**: 支持集成测试 - [x] **系统测试**: 支持系统测试 - [x] **自动化测试**: 支持自动化测试 ### 8.3 可移植性 - [x] **环境隔离**: 运行环境依赖隔离 - [x] **配置管理**: 统一的配置管理 - [x] **部署简单**: 简单的部署过程 - [x] **跨平台**: 支持Windows平台 ## 9. 附录 ### 9.1 术语表 - **ROI**: Region of Interest,感兴趣区域 - **Modbus**: 工业通信协议 - **TCP/IP**: 传输控制协议/网际协议 - **GigE Vision**: 千兆以太网视觉标准 - **SDK**: Software Development Kit,软件开发工具包 ### 9.2 参考资料 - IDViewerCSDK开发文档 - Modbus协议规范 - TCP/IP协议详解 - WPF开发指南 - OpenCV图像处理库文档 ### 9.3 版本历史 | 版本号 | 修订日期 | 修订内容 | 修订人 | |--------|----------|----------|--------| | v1.0 | 2024-03-20 | 初始版本创建 | 系统分析师 | | v1.1 | 2024-03-21 | 完善功能描述 | 系统分析师 | --- **文档状态**: ✅ 已完成 **评审状态**: ⏳ 待评审 **批准状态**: ⏳ 待批准