VLBI监控系统的改进*
2015-03-24杨文军赵融冰
杨文军,赵融冰,聂 俊
(1. 中国科学院国家天文台/新疆天文台,新疆 乌鲁木齐 830011;2. 中国科学院上海天文台,上海 200030)
CN 53-1189/P ISSN 1672-7673
VLBI监控系统的改进*
杨文军1,赵融冰2,聂 俊1
(1. 中国科学院国家天文台/新疆天文台,新疆 乌鲁木齐 830011;2. 中国科学院上海天文台,上海 200030)
对Mark5B监控系统软件的设计思想、软件功能、通讯机制等几个方面作了介绍。Mark5B记录系统是当今世界VLBI观测台站中广泛使用的最为先进的记录系统之一,也是VLBI终端系统的重要组成部分。研制Mark5B监控系统软件的主要目的是进一步提高VLBI终端记录系统的可靠性,保障VLBI联测数据有效和高质量。该软件是在Qt开发环境下采用signals/slots的安全类型机制,并在Qt creator IDE上设计图形界面,完成数据采集和网络通信工作。Mark5B监控系统不仅适用于VLBI天体物理测量观测、VLBI测地观测,而且适用于中国VLBI网(The Chinese VLBI Network, CVN)联测。
VLBI;Qt;Mark5B监控系统
VLBI终端系统主要包括基带转换(ABBC/DBBC)系统和高速数据记录系统——Mark5B,它是目前国际上通用的终端系统,在VLBI技术中起着举足轻重的作用。由望远镜接收的射频信号经接收机混频和放大后转换为中频信号,通过基带转换器把中频信号转换为基带信号,然后经过削波、采样、格式化和A/D变换,最终把基带信号记录到磁带或硬盘上[1],观测结束后,再把硬盘寄到数据处理中心进行数据回放和相关处理。图1为VLBI系统简图,其中,氢钟给整个系统提供标准频率信号以及1PPS信号,虚线部分为终端系统。FS控制系统主要用来控制ABBC/DBBC、Mark5B记录系统以及发送望远镜的方位和俯仰位置指令信息等,同时FS系统还可以监视各分系统的状态,包括Mark5B记录系统的状态。FS系统时间由全球定位系统同步。
1 需求分析
1.1 国内外Mark5B记录系统使用概况
目前欧洲VLBI网(The European VLBI Network, EVN)和服务于大地测量和天体测量学的国际VLBI组织(International VLBI Service for Geodesy & Astrometry, IVS)的VLBI台站使用的观测记录设备基本上是Mark5B/B+,而且已广泛应用在天体物理观测和大地测量观测以及深空探测中。中国的VLBI网——CVN网,
图1 VLBI系统简图
Fig.1 A schematic diagram of a VLBI system
由北京密云站、昆明站、上海佘山站、上海天马站、乌鲁木齐南山站和上海VLBI数据处理中心组成,5个台站都配备了Mark5B/B+记录系统,VLBI系统作为中国探月工程的测轨分系统,在执行“嫦娥卫星”绕月和落月任务中,Mark5B/B+记录系统发挥了重要作用。
1.2 开发新Mark5B监控系统的必要性
VLBI是一个非常复杂的天文观测系统,VLBI各个系统相辅相成,组成一个不可分割的整体,而Mark5B记录系统作为VLBI系统的后端扮演着极为重要的角色,记录数据的好坏直接成为观测是否成功的标志。由于天文观测使用的仪器设备其稳定性和可靠性是必不可少的条件,因此天文观测需要各系统设备具有高稳定性和高可靠性。任何设备都会出现故障,Mark5B也不例外,在观测中,Mark5B故障主要表现在设备“跳秒”现象,或者记录过程中记录指针停止,无法记录数据,或者在更换硬盘阵列时,操作人员未及时执行更换指令等,这些都会导致数据丢失或者无效,严重时会导致整个观测失败,因此在观测中实时了解Mark5B的状态信息非常重要。
对于观测台站来说,主要有两种方式可以获得Mark5B的状态信息,一种是在Mark5B工控机上手动输入查询命令,另一种是在FS计算机操作窗口输入查询指令或者打开一个自带的监控小窗口显示部分Mark5B信息。手动输入指令获取Mark5B的状态信息,对于操作人员来说很不方便。由于在FS计算机上自带的Mark5B监控程序,其功能较少,界面较为单一,不够直观,并且缺少相应的报警功能,因此在FS计算机上的Mark5B监控系统是一个不完善的系统。中国VLBI网目前使用的记录系统都为Mark5B+系统,由于中国绕月探测工程需要VLBI技术参与“嫦娥”卫星的测控工作,而该工程对可靠性、实时性要求很高,为此上海天文台研制了一套台站监管程序[2],它主要功能是可以实时监视各个台站终端系统、天线系统、接收机系统以及时间频率系统的状态,保障各系统始终保持正常状态。该监管程序在e-VLBI观测模式(实时观测,不需要记录数据)下能够较好地发挥作用,但在“长管”模式观测中,也就是将数据记录到硬盘阵列时,对于Mark5B的记录状态等信息就不能很好地体现,主要还是依赖原有的FS系统获取。
对于原有系统,当故障发生时,错误提示不是很明显,如果操作人员没有注意,记录的数据有可能成为无效数据。因此,在新开发的监控系统的界面上添加醒目的错误提示功能譬如警报声提示和颜色提示等,那么一旦有故障发生,系统就会发出警报,操作人员通过报警提示判断故障原因,进而采取相应的措施及时解决故障,最终保障观测顺利地进行。因此,开发一套完善的Mark5B监控系统是非常有必要的。
2 Mark5B系统介绍
2.1 Mark5B硬件介绍
Mark5B系统是被置于一个单5 U的底盘里,它含有两个“8-pack”模式磁盘阵列,一般地,每个硬盘阵列容量是8 TB(目前16 TB大容量硬盘阵列已经在观测中逐渐使用),磁盘采用SATA盘,基于一个标准PC平台,用一个COTS(商用现成产品)组合的专用设计接口卡,Linux操作系统*MIT Haystack Observatory. Mark5B system user’s manual。如图2和3。其中,Mark5B+是对Mark5B的相关硬件进行了升级,两者主要差别是前者记录速率有了明显提高。
2.2 Mark5B软件介绍
Mark5B系统装载了Debian操作系统和Mark5B软件。协议采用 “mark5-xx” 的格式赋值给Mark5B系统名, “xx” 是特殊Mark5B单元的串行数字。Mark5B VLBI数据系统的数据输入模式(Data Input Mode, DIM)和数据输出模式(Data Output Mode, DOM)功能都是由一个称为 “dimino” 的程序控制。 “dimino” 程序运行后,可以执行 “tstdimino” 程序进行Mark5B系统测试以及状态查询, “tstdimino” 是一个具有简单操作界面的小单机程序,可以发送命令及从 “dimino” 那里接收响应,它还提供了一个具有方便的 “>” 提示符操作,可以接收常规的Mark5B命令①。 “tstdimino” “dimino” 一样可以运行在同一台计算机或者在不同的计算机上。它连接一个Mark5B驱动tcp管套到指定的计算机上且 “dimino” 必须在运行状态,接收在控制终端上键入的 “dimino” 命令,通过管套将这些命令发送到 “dimino”,当从管套读出时,从 “dimino” 打印回复。管套在 “tstdimino.c” 中配置,可以作为其它程序模型用于连接 “tstdimino” 的管套。
图2 Mark5B工控机
Fig.2 A picture of the chassis hosting the control computer of the Mark5B system
图3 磁盘阵列
Fig.3 A picture of an 8-drive disk array of the Mark5B system
3 系统设计与实现
3.1 通讯机制
采用流式套接字,TCP/IP协议,提供双向、有序、无重复并且无记录边界的数据流服务、FTP服务和SSH服务。首先,Mark5B监控计算机向Mark5B工控机发送建立连接请求,连接建立后,发送信息查询请求,等待Mark5B计算机应答,最后,将Mark5B的应答数据读取出来写入监控计算机的各个控件里,并通过控件将Mark5B状态信息显示出来。图4为面向连接套接口应用程序时序图。
3.2 开发工具Qt
Qt具有以下优点:
◆Qt是基于C++的一种扩展语言。
◆Qt具有非常好的可移植性。
◆Qt支持跨平台构建。
◆Qt是开源软件。
◆Qt架构健壮,性能强大。
◆Qt使用起来简便高效。
3.3 Qt集成开发环境
QtCreator是Qt被Nokia收购后推出的一款全新的跨平台开源集成开发环境(Integrated Development Environment, IDE),是Qt SDK的组成部分之一,专为Qt4开发人员的需求量身定制。Qt Creator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及简易地完成任务。由于捆绑了最新Qt库二进制软件包和附加的开发工具,并作为Qt SDK的一部分,Qt Creator在单独的安装程序内提供了进行跨平台Qt开发所需的全部工具[3]。它包括项目生成向导、高级C++代码编辑器、浏览文件及类的工具,集成了Qt Designer、Qt Assistant、Qt Linguist、图形化的GDB调试前端,集成qmake构建工具等。
图4 面向连接的套接口应用程序时序图
Fig.4 A sequence diagram for applications of the sockets in connecting the Mark5B recording system and the monitoring computer
3.4 信号(SIGNAL)和槽(SLOT)
信号和槽是Qt编程的一个重要组成部分。这个机制可以在对象之间彼此不了解的情况下将它们的行为联系起来。槽和普通的C++成员函数很像,不同之处在于一个槽函数能和一个信号相连接,只要信号发出了,这个槽函数就会自动被调用,这个任务由connect函数实现[4]。
3.5 设计要求
因工程特点,要求软件做到高可靠性、高度自动化、用户界面友好、灵活性好、可扩展性好。
•可靠性:能连续工作数天以上;数据采集、发送、接收要保证正确和不间断;遇到各种异常情况不会死机、系统崩溃。
•自动化:输入采集命令后,可以自动采集数据,减少人工引入的错误。
•界面友好:界面简洁,可操作性强,用户使用方便。
•灵活性:可以运行在不同的操作系统。
•可扩展性:因为设备的更新和换代,对监管系统有新的要求。因此,软件的可扩展性要好。
3.6 软件安装
在测试电脑上安装Ubuntu12.10操作系统,然后安装Qt4.8.2 SDK软件。安装成功后运行Qt Creator程序,新建一个mark5b工程,选择项目 “Application”,选择 “QtGui应用”,点击 “选择” 按钮,弹出类信息窗口,输入类名mark5b后,生成mark5b.pro、mark5b.h、mark5b.cpp、main.cpp、mark5b.ui等文件。
3.7 功能单元设计
该监控系统主要包括记录速率、数据模式、硬盘VSN号、磁盘阵列存储空间状态、Bank状态、1PPS状态、本地时间和世界时、出错报警、硬盘阵列切换和记录控制、SSH远程登录及FTP数据传输等功能。
打开mark5b.ui文件,添加所需的控件。图5为Qt Creator环境下所做的Mark5B监控系统界面设计图,设计好以后,就可以在mark5b.cpp文件下编写代码了。
该系统包括6个区域:(1)时间信息单元,主要用来显示日期、UT时间、北京时间以及星期;(2)Mark5B信息查询和测试单元(Mark5B Unit for Information Inquiry and Test),主要用来进行有关Mark5B状态信息的查询,此外还可以进行Mark5B单机测试,检测Mark5B性能等;(3)条纹传输数据传输单元(Mark5B Unit for Transmission of Fringe Data),主要是将天文观测数据上传到数据相关处理中心,进行条纹检测,或下载观测刚要文件;(4)TCP/IP连接单元,与Mark5B建立通讯连接;(5)Mark5B状态参数单元(Mark5B Unit for State Parameters),主要包括磁盘阵列的记录状态信息、磁盘容量信息、VSN号、记录速率、FPDP模式、比特流掩码、1PPS同步状态、磁盘阵列切换功能和报警功能等; (6)硬盘阵列切换单元(Mark5B Unit for Control of the Disk Array),主要在人为干预记录譬如实验记录有故障需要中断时或在非观测期间进行数据测试时,用来对硬盘阵列进行切换和记录行为的控制。
图5 Mark5B监控系统
Fig.5 A screenshot of the interface of the Mark5B monitoring system
上述功能单元中,最主要的是Mark5B状态信息单元,其采集控制流程如图6,监控系统询问是否连接到Mark5B服务器上,如果已经连接打开对话窗口,看是否运行dimino程序,确认运行了该程序后,则与发送指令的槽函数建立连接,发送控制指令或查询指令到Mark5B工控机,Mark5B收到指令后将反馈信息传给监控系统,监控系统调用readMesg()函数读取反馈信息,并将读取的信息显示到指定的控件中。
图6 信息采集流程图
Fig.6 A flowchart of information collection of the monitoring system
监控系统查询内容主要有磁盘阵列选择状态、VSN代码、磁盘总容量、磁盘剩余容量、剩余容量百分比、记录状态、记录模式、记录速率、1PPS状态等。从监控机上向Mark5B发送控制指令,可以直接对Mark5B进行控制,包括记录的开始和停止以及硬盘阵列的切换等。
3.8 主要函数及功能介绍
功能函数:void mark5b::readMesg()
功能描述:读取Mark5B反馈信息,并将当前状态显示到ui控件上,如图7。
图7 readMesg()流程图
Fig.7 A flowchart of the readMesg()
3.9 查询指令句法和反馈信息如表1*Whitney A R, Smythe D L, Ball J A. Mark5B DIM command set (Revision.1.12)
表1 查询指令反馈信息表
3.10 控制指令句法和含意
record=on 硬盘记录开始 bank_set=A 硬盘阵列选择到磁盘阵列A
record=off 硬盘记录停止 bank_set=B 硬盘阵列选择到磁盘阵列B
4 软件测试
Mark5B监控系统软件设计完成后,必须对该软件进行测试。测试地点在新疆天文台。测试设备包括Mark5B+工控机、Mark5B监控计算机及交换机。软件测试方法及测试效果简介如下:
将Mark5B+工控机和监控计算机连接到网络上,运行Mark5B程序和监控程序后,分别对Mark5B记录系统的状态信息、FTP数据传输、SSH远程登陆进行了严格的可靠性、功能性、时间特性等测试,上述功能一切正常,运行状况良好,完全符合设计要求。程序运行效果如图8。
测试结果表明:该系统操控性强,通过鼠标点击,可以轻松实现数据传输和远程登陆,同时,磁盘记录控制和阵列切换也更加方便,非常适用于VLBI国际联测和探月“长管”的观测。本系统不足之处是当数据在FTP传输时,需要先将观测数据下载到监控计算机上,然后再上传到数据处理中心,因此本系统的FTP功能还有待完善。另外,SSH远程登陆的命令行中,许多快捷键功能不能正常使用,仍需要进一步改进。
图8 运行效果图
Fig.8 A screenshot of the interface of the monitoring system demonstrating its running results
5 总 结
作为VLBI终端系统的重要组成部分——Mark5B记录系统是当今世界许多VLBI观测台站中最为先进的记录系统之一。研制Mark5B监控系统软件无论是对于提高VLBI终端记录系统的可靠性,还是保障VLBI联测数据有效和高质量都具有极其重要的意义。本文从Mark5B监控系统软件的设计思想、软件功能、通讯机制等几方面进行了全面的介绍。尽管Mark5B监控系统目前还存在一些不足之处,但是通过改进本监控系统软件设计,使得Mark5B记录系统的状态信息获取非常直观和便利,系统操控性增强,磁盘记录控制和阵列切换也更加方便。Mark5B监控系统软件不仅适用于VLBI天体物理测量观测、VLBI大地测量和VLBI深空探测,而且适用于中国VLBI网探月 “长管” 的观测,此外,本监控系统可以应用到中国VLBI网各台站并作为VLBI台站监管程序的一个补充。
致谢:感谢新疆天文台高志福副研究员在本文写作过程中予以帮助。
[1] 杨文军, 郝龙飞. VLBI终端系统的发展历史和未来展望[J]. 天文研究与技术——国家天文台台刊, 2012, 9(4): 374-381. Yang Wenjun, Hao Longfei. Development history and future prospects of VLBI terminals[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2012, 9(4): 374-381.
[2] 王玲玲, 薛祝和, 孔德庆, 等. VLBI台站监管系统的研制与应用[J]. 中国科学院上海天文台年刊, 2008(29): 170-178. Wang Lingling, Xue Zhuhe, Kong Deqing, et al. The development and application of the monitoring system of VLBI stations[J]. Annals of Shanghai Astronomical Observatory Chinese Academy Sciences, 2008(29): 170-178.
[3] 吴迪. 零基础学Qt4编程[M]. 北京: 北京航空航天大学出版社, 2010.
[4] 蔡志明, 卢传富, 李立夏. 精通Qt4编程[M]. 北京: 电子工业出版社, 2011.
The Improvement of a VLBI Monitoring System
Yang Wenjun1, Zhao Rongbing2, Nie Jun1
(1. Xinjiang Astronomical Observatory, National Astronomical Observatories, Chinese Academy of Sciences, Urumqi 830011, China,Email: yangwj@xao.ac.cn; 2. Shanghai Astronomical Observatory, Chinese Academy of Sciences, Shanghai 200030, China)
In this paper we mainly discuss the design ideas, functions, communication mechanisms, and related issues of the software of a Mark5B monitoring system, which incorporates a Mark5B recording system. Mark5B recording systems are currently widely used in astronomical observation stations around the world. Mark5B recording systems are among the most advanced terminal recording systems, A Mark5B recording system is an important part of a VLBI terminal system. Our main purpose of developing the software of a Mark5B monitoring system is to improve the reliability of a VLBI terminal system, i.e. to ensure the effectiveness and high quality of VLBI measurement data. The software is designed under the Qt-based development environment and uses the signals/slots as a secure communication mechanism. The graphical interfaces of the software were designed in the Qt Creator IDE. The data collections and network communications of the software are realized in the Qt Creator IDE as well. The Mark5B monitoring system with the software is suitable not only for astrophysical observations but also for VLBI geodetic surveys. The software will be used in the Chinese VLBI Network stations other than the Xinjiang Astronomical Observatory.
VLBI; Qt; Mark5B monitoring system
国家自然科学基金 (11303083) 资助.
2014-10-20;修定日期:2014-11-19 作者简介:杨文军,男,高级工程师. 研究方向:射电天文技术. Email: yangwj@xao.ac.cn
P111.44
A
1672-7673(2015)03-0285-07