WinM.Biz.Bos6000 1.0.6

WinM.Biz.Bos6000

维美业务通用 BOS6000 业务模块(Bos6000)。

NuGet

  • 包名:WinM.Biz.Bos6000
  • 目标框架:net9.0

构建与打包

# 构建
dotnet build

# 打包(生成 nupkg)
dotnet pack -c Release

文档(DocFX)

本项目默认启用 XML 文档输出(用于 DocFX)。

概述

Module.Business.Bos6000 模块核心功能是与博世(Bosch)BOS6000 点焊控制器系统进行集成。它负责监控BOS6000控制器软件的运行状态,并从BOS数据库中实时拉取焊接过程数据,然后将这些数据进行处理并持久化到本地应用程序的数据库中,以供后续的质量追溯、数据分析和界面展示。

核心功能

  • 进程监控: 通过 BosProcessWatcher 类,模块能够实时监控 BOSServ.exe 进程的状态,确保与BOS6000系统的通信基础是正常的。
  • 数据采集: BosService 服务类通过定时器,周期性地从BOS的外部数据库中查询指定时间段内(由外部信号控制启停)的焊接原始数据。
  • 数据持久化: 采集到的原始数据 (BosOriginRecord) 会被转换为标准的业务数据模型 (BosRecord),并存储到本地数据库中。
  • 数据完整性校验: 支持配置目标焊点数量 (TargetPointCount)。在一次完整的焊接流程结束后,模块会校验采集到的焊点数量是否与预期一致,并通过事件通知上层业务。
  • 事件驱动架构: 模块通过一系列事件(如 OnDataReceived, OnPointCountNotMatched, OnError)向上层业务逻辑发送通知,实现了功能的解耦。

主要组件

  • Bos6000Module.cs: 模块的入口类。负责在程序启动时进行初始化操作,包括启动BOS进程监视、检查数据库连接,并管理本模块在整个系统中的“就绪”状态。
  • BosService.cs: 核心业务服务类。它封装了数据采集、处理和存储的完整逻辑。每个 BosService 实例可以对应一个特定的机器人或焊接程序(通过 RobotNameTimerName 区分)。
  • BosProcessWatcher.cs: 一个单例类,专门用于监控 BOSServ.exe 进程是否正在运行,并能在进程状态变更时发出通知。
  • BosOriginRepository.cs / BosRepository.cs: 数据仓储类,分别负责访问BOS源数据库和本地目标数据库。
  • BosOriginRecord.cs / BosRecord.cs: 数据实体类,分别定义了从BOS数据库获取的原始数据结构和存储在本地数据库中的标准化业务数据结构。

工作流程

  1. 初始化: Bos6000Module 启动,初始化 BosProcessWatcher 来监控BOS软件进程,并测试与BOS数据库的连接。
  2. 开始采集: 上层业务(如PLC信号触发后)创建一个 BosService 实例,并调用其 Start() 方法。该方法记录当前时间为开始时间,并启动一个定时器。
  3. 实时反馈: 定时器周期性地从BOS数据库查询最新的焊接数据,并通过 OnDataReceived 事件将实时数据点发送出去,可用于UI的实时刷新。
  4. 结束采集: 当焊接流程结束时,上层业务调用 Stop() 方法。
  5. 数据保存: Stop() 方法记录结束时间,停止定时器,然后查询并获取从开始时间到结束时间段内的所有焊接数据。
  6. 校验与存储: 模块将获取到的数据批量转换为 BosRecord 格式。如果配置了 TargetPointCount,则进行焊点数量校验,若不匹配则触发 OnPointCountNotMatched 事件。最后,将数据批量存入本地数据库。
  7. 异常处理: 在数据查询或保存过程中如果发生错误,将通过 OnError 事件通知调用方。

配置与使用

  • 数据库连接: BOS数据库的连接信息通过 Constants.BosDbConfigFilePath 指定的配置文件进行管理。
  • 服务实例化: 在使用时,需要为每个监控任务创建一个 BosService 实例,并配置以下关键属性:
    • Interval: 数据查询的时间间隔(毫秒)。
    • TargetPointCount: 预期的焊点数量,用于完整性校验(如果为0则不校验)。
    • RobotName: 当前任务关联的机器人名称(如 R1, R2)。
    • TimerName: 对应BOS数据库中的 Timer 字段,用于筛选特定焊接程序的数据。

Showing the top 20 packages that depend on WinM.Biz.Bos6000.

Packages Downloads
WinM.WpfModule.Module.Bos6000
用于BOS6000模块的WPF控件,支持便捷开发与部署。
2
WinM.WpfModule.Module.Bos6000.Spc
BOS点焊SPC分析模块
1

Version Downloads Last updated
1.0.6 9 01/20/2026