首页 / 资讯中心 / 文章详情

从零到一搭好航天任务控制系统:Open MCT × YAMCS 遥测可视化与指令下发实战

从零到一搭好航天任务控制系统:Open MCT × YAMCS 遥测可视化与指令下发实战 ★ FEATURED ARTICLE
从零到一搭好航天任务控制系统Open MCT × YAMCS 遥测可视化与指令下发实战【免费下载链接】openmctA web based mission control framework.项目地址: https://gitcode.com/gh_mirrors/op/openmctOpen MCT 是 NASA 开源的 Web 任务控制前端框架YAMCS 是专注遥测与指令处理的开源任务控制系统后端。Open MCT 与 YAMCS 的集成就是一套完整航天任务控制系统的核心遥测可视化曲线实时滚动、历史数据可回溯、指令在浏览器里一键下发。跟到第 3 节末尾你的浏览器里就有一条随时间滚动的遥测曲线。️ 一次在轨联调三路遥测一个安全模式开关某次在轨联调地面站要同时盯住三路温度、电压遥测还得随时准备切到安全模式。先对齐两个词遥测telemetry可以理解成设备的实时体检数据温度和电压这类状态持续上报指令command是反方向从地面发给设备的操作命令。靠人手盯几个终端窗口、靠喊话传数出问题时反应链太长。把 Open MCT 摆在前端、YAMCS 摆在后端这条链路就顺了前端一块屏看全部后端负责收数据、存历史、执行指令。分工速览Open MCT 画界面YAMCS 管数据Open MCT 强项是把曲线、仪表盘、表格这些视图组件拼成一块控制台但它自己不产生数据。YAMCS 干的是后端活收遥测包、解析参数、归档历史、校验并执行指令。说白了前端只管画后端只管算。Open MCT 负责YAMCS 负责把遥测画成曲线、仪表盘、表格等视图采集设备上报的遥测包按参数解析布局组织、时间导播、告警通知等交互历史数据持久化提供归档查询承载指令下发界面把操作变成请求校验指令模板执行并回执任务控制系统搭建第一条遥测曲线跑通你手里需要 Node 14、npm 6、Git以及一份 JRE 8跑 YAMCS 用。先把 Open MCT 拉下来并启动这一步装好前端依赖并跑起本地开发服务器git clone https://gitcode.com/gh_mirrors/op/openmct cd openmct npm install npm start浏览器打开 http://localhost:8080 能看到空白控制台说明前端就绪。再开一个终端把官网下载的 YAMCS 包解压后直接启动它的 simulator 实例会持续吐出演示用遥测包cd yamcs-version bin/yamcs-server.sh前后端各自都活着了中间缺一根线——社区维护的 openmct-yamcs 插件就是这根线构建后放进 Open MCT 的插件目录git clone openmct-yamcs 仓库 cd openmct-yamcs npm install npm run build cp -r dist/ ../openmct/src/plugins/yamcs然后写插件的连接参数解决连哪个实例、读哪个包的问题新建src/plugins/yamcs/config.jsexport default { yamcs: { url: http://localhost:8090, instance: simulator, processor: realtime, packet: simulator.tlm.PACKET1 } };最后把插件挂到应用里。在src/MCT.js的插件注册区加上import YamcsPlugin from ./plugins/yamcs; mct.install(YamcsPlugin({ yamcsUrl: http://localhost:8090, instance: simulator }));重新加载页面在左侧树里找到 YAMCS 同步下来的遥测对象创建一条 Plot 视图把它们拖进去。到这一步浏览器里已经有一条随时间滚动的实时曲线了。能力解锁遥测可视化与指令下发的三个进阶曲线跑通了剩下三件事看、动、防。让数据被看见实时遥测可视化与历史数据回溯实时滚动依赖底部的时间导播Time Conductor——它就是一条控制现在看哪个时间段的滑杆。接入 YAMCS 后把它切到 REAL-TIME 模式曲线会跟着最新遥测持续前进复盘时切回 FIXED TIMESPAN固定时间跨度模式框选故障发生的几分钟同一套视图就变成回放器要自定义某条曲线的取数与样式在src/plugins/charts/的视图配置里声明 series 即可const plotConfig { type: line, series: [{ source: yamcs://simulator/realtime/simulator.tlm.PACKET1.param1, color: rgb(75,192,192), label: Parameter 1 }] };时间跨度很长的查询走 YAMCS 的归档接口按起止时间取参数yamcsClient.archiveQuery({ instance: simulator, start: start.toISOString(), end: end.toISOString(), parameters: [simulator.tlm.PACKET1.param1] });让操作可执行指令模板加载与一键下发界面指令不手敲。先从 YAMCS 拉模板参数名、类型、默认值一次到位const templates await yamcsClient.getCommandTemplates(simulator, commands);发送界面用 Open MCT 的表单组件搭见src/api/forms/核心只有一个方法——校验通过后把参数原样交给 YAMCS 执行sendCommand() { this.yamcsClient.sendCommand( simulator, this.command.name, this.arguments); }让异常不被忽视实时告警订阅怎么接盯屏幕不如让系统喊你。订阅 YAMCS 的事件流命中 ALARM 就走 Open MCT 的通知接口src/api/notifications/弹窗yamcsClient.subscribeToEvents(simulator, (event) { if (event.type ! ALARM) return; notificationService.notify({ title: 遥测告警, message: 参数 ${event.parameter} 超限: ${event.value}, severity: critical }); });阈值本身在 YAMCS 侧定义前端只负责把越限事件推到顶栏值班的人不用一直盯曲线。上生产前 checklist构建产物、压缩 CDN、存储与安全构建产物npm run build:prod产出dist/交给 Nginx 这类静态服务器托管别拿开发服务器直接对外。压缩与 CDN给静态资源开 Gzip/BrotliJS、字体、图片挂 CDN首屏加载时间能砍一大半。存储选型遥测量大就换 YAMCS 的 PostgreSQL 后端做归档Open MCT 前端只放界面配置这类轻对象。安全指令下发接口不要裸露公网加认证和角色控制操作留审计日志告警按 severity 分级critical 才推顶栏通知。连接监控前端到 YAMCS 的 WebSocket 要有断线重连和提示避免控制台断流后界面无任何异常表现。延伸方向多实例、AI 预测与移动端单机链路跑通后自然的下一步是把插件层抽象出实例列表同一块屏同时接多个 YAMCS 实例做多任务协同。再往前可以基于归档数据做遥测预测分析把故障苗头在越限之前找出来。移动端适配则是把现有布局按窄屏重排让值班状态随时带在身上。【免费下载链接】openmctA web based mission control framework.项目地址: https://gitcode.com/gh_mirrors/op/openmct创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站