编辑 | blame | 历史 | 原始文档

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 完善功能描述 系统分析师

---
文档状态: ✅ 已完成
评审状态: ⏳ 待评审
批准状态: ⏳ 待批准