系统架构

系统总体分为后端服务和客户端程序, 后端服务负责所有的数据采集、管理、计算, 客户端程序只负责进行三维可视化等交互.
飞机装配全流程数据采集系统、系统配置和管理接口服务两个模块共同组成后端服务, 共分为:
数据采集服务
消息队列
状态监听服务
数据查询服务
数据分析算法
五个部分
数据采集服务
WinCC控制台操作日志与采集服务的交互方式为WinCC控制台向数据采集服务发送HTTP POST请求, 请求体为JSON格式的单次操作记录信息, 数据采集服务收到请求后, 将消息内容解析并实时推送至Kafka消息队列和Redis缓存数据库.
激光跟踪仪测量数据、激光跟踪仪状态数据、定位器运动数据均通过KepServer的OPC UA服务器和数据采集服务通讯, 数据采集服务订阅OPC UA数据的各节点, 节点数据发生更新后, 数据采集服务将数据实时推送至Kafka消息队列和Redis缓存数据库.
实时驱动
所有实时驱动部分均连接Redis缓存数据库, 按需订阅数据库中的Key, 具有很好的实时性能.
消息队列
所有数据流处理算法均连接至Kafka消息队列, 作为消息队列的消费者订阅数据流.
持久化数据库
ClickHouse通过Kafka表引擎与Kafka集成, 数据库数据表的数据源来自于一个或多个Kafka队列。结合使用Kafka引擎和Materialized Views, 可以实现将数据从Kafka队列消费, 然后将数据存储到其他引擎的表中, 从而实现实时数据处理和查询.
状态监听服务
所有服务向状态监听服务发送心跳信号, 状态监听服务对外提供Restful API接口, 用以查询各服务状态. 同时提供对数据采集服务启停控制和参数配置的Restful API接口.
数据查询服务
数据查询服务对外提供数据库数据查询接口, 通过HTTP GET请求, 请求参数中传递需要查询的架次号、时间范围 、数据名称, 查询服务将会返回按时间序列排序的JSON格式数据.
客户端使用Unity3D引擎开发, 并提供各三维模块的Prefab封装供二次定制开发.