APP下载

丽江2.4米望远镜TCS Sequencer程序的设计与开发*

2013-12-18王传军范玉峰易卫敏

天文研究与技术 2013年4期
关键词:成像仪天体望远镜

王传军,范玉峰,易卫敏

(1. 中国科学院云南天文台,云南 昆明 650011; 2. 中国科学院天体结构与演化重点实验室,云南 昆明 650011)

丽江2.4米望远镜TCS Sequencer程序的设计与开发*

王传军1,2,范玉峰1,2,易卫敏1,2

(1. 中国科学院云南天文台,云南 昆明 650011; 2. 中国科学院天体结构与演化重点实验室,云南 昆明 650011)

介绍了丽江2.4 m望远镜TCS Sequencer程序设计及开发的过程,并且对程序的调试和运行情况进行了总结;同时还介绍了在该程序开发过程中学习到的Linux系统下编程的一些方法和经验。

TCS Sequencer;2.4 m望远镜;YFOSC

丽江2.4 m望远镜的控制系统采用了QNX实时操作系统和现场总线技术,从底层的可编程逻辑控制(Programmable Logic Control, PLC)系统,到望远镜的各个节点控制,直到上层的望远镜控制系统(Telescope Control System, TCS)基本实现了自动控制(图1)。然而,为望远镜陆续配备的终端仪器的控制系统各自独立,这就给观测带来了诸多的不便。在观测的时候需要通过不同的用户界面对望远镜和终端仪器进行分别的控制来实施观测,工作繁琐,同时也降低了观测效率。

图1 2.4 m望远镜控制系统结构
Fig.1 The structure of the control system of the YNAO 2.4m telescope

此外,由于望远镜与观测终端的控制系统相互独立,一些由望远镜控制系统产生的信息,尤其是观测者非常关心的望远镜指向和状态信息、气象数据等也就不能自动写入观测数据的FITS头中,需要在进行数据处理的时候手动添加,增加了数据处理的难度。为了能够自动生成完善的观测数据的FITS头信息,提高望远镜控制系统和观测终端协同工作的能力从而提高观测效率,就有必要参考现有的望远镜控制系统的结构开发一套将望远镜和终端设备的控制相融合的程序。

云南暗弱天体光谱及成像仪(Yunnan Faint-Object Spectrograph and Camera, YFOSC)是目前2.4 m望远镜的主要观测终端,它是由云南天文台与哥本哈根大学尼尔斯·玻尔研究所(Niels·Bhor Institute)开发研制的,在安装和调试过程中发现YFOSC使用了一套为观测者编写的Sequencer程序,实现对其

不同的部分进行统一的控制,如滤光片和光栅转轮、快门、调焦机构、相机控制器等,都可通过Sequencer控制[1]。Sequencer程序是针对其所有操作指令而开发的程序,每个底层硬件的控制对应一个Sequencer程序,该Sequencer程序可以单独执行,也可以通过脚本执行一系列的操作,从而提高程序的运行效率。比如一个从光谱观测模式切换到成像观测模式的脚本,可以完成设置CCD读出区域、移出狭缝和光栅、切换滤光片等所有仪器操作。通过对云南暗弱天体光谱及成像仪的Sequencer程序的学习和使用,以及对2.4 m望远镜控制系统的研究,可以开发一套望远镜控制的TCS Sequencer程序,实现望远镜和云南暗弱天体光谱及成像仪控制系统的集成。将来这套TCS Sequencer同样可以用于高色散光纤光谱仪、PI CCD等终端仪器与望远镜的集成控制。

本文主要介绍了TCS Sequencer程序的设计和开发,以及在进行开发之前对望远镜和云南暗弱天体光谱及成像仪控制系统所做的分析和研究工作,并对目前TCS Sequencer程序的运行状态进行总结。

1 系统设计

TCS Sequencer程序开发的目的是针对望远镜控制系统的控制指令编写Sequencer程序,利用Sequencer程序将望远镜的控制和云南暗弱天体光谱及成像仪终端设备的控制集成到同一套系统中。通过分析2.4 m望远镜控制系统的结构(图1)和云南暗弱天体光谱及成像仪终端控制系统的结构[2],并结合北欧光学望远镜(Nordic Optic Telescope)控制系统与ALFOSC控制系统通过Sequencer程序集成的结构[3-4],总结得出了2.4 m望远镜的TCS Sequencer程序系统的整体结构(图2)。

图2 TCS Sequencer系统结构
Fig.2 Block diagram of the TCS Sequencer

该系统具备以下的特点:

• 独立性:系统设备相互独立,Sequencer程序、望远镜控制系统等部分之间的交互都通过网络进行,从而系统各个部分可以单独开发、维护和升级;

• 数据库为基础:尽可能地将与程序相关的望远镜状态信息都写入数据库中,Sequencer程序通过访问数据库获得相关的状态信息。这样既能通过数据库实现对状态信息更好的管理、维护,也为整个Sequencer程序系统提供了统一的状态信息数据格式,更方便数据的访问和使用;

• 易扩展性:通过局域网连接各个相互独立的部分,所有的观测数据也通过局域网进行存储和访问,系统具备更好的扩展性,如图2中的气象站系统就可以直接集成到Sequencer系统中,并且计划建立的自动视宁度监测仪(ADIMM)和云量监测系统也将集成到系统中。

2 程序开发

2.1 升级望远镜控制系统网络通信接口

2.4 m望远镜由英国TTL(Telescope Technology Limits)公司生产,TTL公司并没有提供望远镜控制系统的底层代码,不能通过修改控制系统实现TCS Sequencer。但TTL提供了一个望远镜控制系统网络通信接口,和在此接口基础上的控制测试程序TNT[5-6](Telescope Network Interface Tool)。在这之前该程序并未在2.4 m望远镜上使用过,在对其进行调试运行的时候发现该程序只提供了一个命令行形式的运行模式,使用该接口程序获取望远镜信息的时候,需要人为手动的输入指令。结合图2中的TCS Sequencer程序运行的机制,现有的接口程序完全不能满足要求,因此就有必要对其进行优化升级。

图3中对升级前后的网络通信接口程序的流程进行了对比,升级后的接口程序在运行的时候充当服务器端,首先允许查询望远镜状态信息的客户端程序与其建立UDP连接,然后接收客户端程序发送过来的指令信息,并将该指令转发给望远镜控制系统,之后接收望远镜控制系统的反馈信息,并将得到的信息转发给客户端程序。在该运行模式下的接口程序就可以自动接收符合UDP协议的数据包,不需要人为干预。

图3 更新前后的TNT程序流程图比较
Fig.3 The flowcharts of the TNT programs before and after the upgrade

2.2 望远镜状态信息数据库

在网络通信接口升级结束、客户端可以通过该程序获取望远镜状态信息之后,为了对获取的状态信息进行更好的保存和管理,设计并建立了望远镜状态信息数据库Operation。望远镜状态信息数据获取、拆分、入库的处理方法为:

- 客户端程序每隔5 s通过网络接口从望远镜控制系统获取望远镜的状态信息,并以字符串的形式写入固定格式的文本文件中;

- 数据库操作程序每隔5 s对文本文件进行读取,并通过分析望远镜控制系统反馈信息的格式对其中的字符串数据进行拆分处理,拆出每个单独的状态信息值;

- 将拆分得到的状态信息数据写入指定的数据库Operation的数据表TcsStatusNow中,其部分结构如图4。

图4 TCSStautusNow数据表部分结构
Fig.4 A part of the structural list of the data table ‘TCSStatusNOW’

在数据库建立完成之后,又配置了该数据库的网络访问功能,从而使得在望远镜的局域网内都可以访问该数据库的数据。TCS Sequencer程序在运行的时候就是通过局域网访问该数据库内相关的状态信息,从而自行判断是否得到了正确的执行,望远镜是否执行了对应的动作。

2.3 TCS Sequencer程序开发

TCS Sequencer程序的运行机制可以通过图5表示。程序执行的时候会将望远镜控制系统指令通过网络通信接口程序(TNT)发送到望远镜控制系统,然后由望远镜控制系统控制望远镜执行相应的动作,与此同时望远镜状态信息数据库会不断更新。在指令发送成功之后,Sequencer程序就会查询数据库以确定指令是否得到了执行,如果查询的结果是已经成功执行就顺利退出,否则就会报错并退出。在此过程中,所有关键性的步骤信息都会以日志的形式写入日志文件中。

Sequencer程序的开发主要经过以下几个过程:

首先,前面已经提到Sequencer程序是针对每个指令进行开发的,即每条指令有一个与其对应的Sequencer程序,因此在开发TCS Sequencer程序时就需要对常用的望远镜控制系统控制指令进行统计,分析其所实现的功能和运行的机制。在对TCS Sequencer程序进行命名的时候,既考虑与原有的望远镜控制系统指令保持统一性,又考虑与YFOSC Sequencer程序相区别,保证其在系统中是唯一的,从而使得熟悉望远镜控制系统指令的操作者很容易上手。表1列举了几个常用的望远镜控制系统指令对应的Sequencer程序的情况。

图5 TCS Sequencer程序运行机制Fig.5 The operation mechanism of the TCS Sequencer

表1 常用的TCS指令与对应的Sequencer指令举例Table 1 Frequently used TCS control commands and corresponding TCS-Sequencer programs

其次,为所有的Sequencer程序统一创建一个用来访问数据库的库文件:libTcsStatusDBFuncs.so。该文件实现所有的数据库查询的操作,在Sequencer程序中只需要包含该库文件,就可以通过很简单的方法查询数据库中的状态信息。如图6的程序片段就展示了Sequencer程序foc在执行过程中查询数据库从而判断状态的过程,只需要一条简单的语句Telescope.secondary_mirror_status就可以查询到所需数据。

最后,在Sequencer程序编写完成之后,对其进行编译、调试、运行,查找其中的错误和存在的问题并不断优化。在所有Sequencer程序都能运行之后,将其编译生成的Sequencer指令放置到YFOSC控制系统指定的目录下,之后就可以从云南暗弱天体光谱及成像仪控制窗口中执行Sequencer指令控制望远镜了。

图6 foc程序片段
Fig.6 An example of the log of the running of the command ‘foc’

3 程序运行结果

经过2.4 m维护组在观测过程中的测试,TCS Sequencer程序已经能够实现对望远镜的控制,常用的望远镜控制指令如foc、mirr_open、goto等都已经能够得到正确的执行,望远镜也能执行对应的动作。图7展示了foc指令执行的具体情况及相应的日志更新情况。

图7 foc执行情况及日志
Fig.7 Execution details and log of ‘foc’

通过Sequencer程序的运行,已经将望远镜的赤经/赤纬、高度/方位、望远镜的状态以及气象数据等重要信息写入云南暗弱天体光谱及成像仪的观测数据的FITS头中。如图8,左边部分就是目前已经添加到FITS头中的信息。今后还将继续对云南暗弱天体光谱及成像仪的FITS头进行规范化,根据望远镜的观测用户的反馈要求添加更多必须的信息,并删除冗余的信息,从而更好地为观测用户服务。

图8 YFOSC数据的FITS头中添加的信息
Fig.8 Information added to thd FITS header of the YFOSC data

基于TCS Sequencer程序,继续开发了用来将目标源导入狭缝的中心位置的脚本程序(slitoffset),该脚本可以通过对配置文件中狭缝的中心位置和目标源位置的对比,计算两者的偏差值,根据底片比例尺计算望远镜需要微调的值(角秒),并通过调用Sequencer程序offby实现望远镜的微调,最终实现将目标源导入狭缝中心位置的目的(图9)。在使用该脚本之前,需要手动完成将目标源导入狭缝中的工作,过程中可能会由于操作误差或计算误差导致长时间不能将目标源狭缝中的情况,既增加了观测时的工作量也影响了观测效率。

图9 slitoff脚本运行情况
Fig.9 An example of the log of the running of the script ‘slitoff’

在测试过程中还发现了一个问题,即用来获取望远镜状态信息的客户端程序运行不是很稳定,有的时候会由于某些原因而停止运行,从而导致TCS Sequencer无法正常运行。接下来会对该程序进行深入的测试,以找到问题并解决。

另外,目前望远镜的状态信息入库是通过两个不同的程序来完成,中间还涉及读写文件的操作,这就影响到了整个系统运行的稳定性。为了提高系统的稳定性,尝试把两个程序合并,去掉中间的文件读写过程,直接从网络端口获取状态信息,然后拆分数据并进行存入数据库的操作。

4 结束语

在开发TCS Sequencer程序的过程中,主要借鉴了YFOSC Sequencer程序的运行机制,并在Linux系统下通过简单、健壮的C语言实现基本的操作,所实现的程序具备较好的易用性。网络通信方面,在TTL的望远镜控制系统网络通信测试程序的基础上进行二次开发,开发出了适合TCS Sequencer要求的网络通信接口,也通过C语言实现。

通过TCS Sequencer程序的开发,将2.4 m望远镜的控制部分放到云南暗弱天体光谱及成像仪的控制系统中,实现了望远镜控制系统与云南暗弱天体光谱及成像仪控制系统的集成工作。在开发过程中学习并积累了Linux系统下编程的一些经验,今后将尝试把Sequencer模式的程序应用到2.4 m望远镜其它的终端设备中。

[1] Hens Marts. The FOSC motor control for YFOSC and YFU[S]. Niels Bohr Institute, 2010.

[2] T2-010-5501-000, 2.0m Telescope Operators Manual[S]. TTL, 2006.

[3] Jacob Wang Clasen. Proposed plan for YFOSC postprocessing implement (Ver 1.0) [S]. Nordic Optical Telescope, 2010.

[4] Nordic Optical Telescope. Guide to the ALFOSC Sequencer[EB/OL]. [2012-11-29]. http://www.not.iac.es/instruments/alfosc/SEQ/alfosc-seq.html.

[5] Mark Bowman, et al. Telescope control system network interface control document (Ver 2.4) [S]. TTL, 2007.

[6] Martyn Ford. Liverpool 2.0m telescope communication interface library user guide (Ver 0.16) [S]. TTL, 2001.

DesignandDevelopmentofaTCSSequencerfortheYNAO2.4mTelescope

Wang Chuanjun1,2, Fan Yufeng1,2, Yi Weimin1,2

(1. Yunnan Observatories, Chinese Academy of Sciences, Kunming 650011, China, Email: wcj@ynao.ac.cn; 2. Key Laboratory for the Structure and Evolution of Celestial Objects, Chinese Academy of Science, Kunming 650011, China)

The control system the YNAO 2.4m Telescope at Lijiang uses the QNX real-time operating system and the CAN-Bus technology, realizing auto control (from a PLC system) of all control nodes of the telescope except the Telescope Control System(TCS) at the top operational level. All the instruments constructed for this telescope have their own control systems, which were previously independent of the TCS. The independence caused inconvenience in observation. The inconvenience is that different control interfaces needed to be used separately to control the telescope and the instruments in a complicated and low efficiency way. Meanwhile, some useful information produced by the TCS, especially the pointing/status information of the telescope and the important weather information could not be automatically written into a result-image FITS header. This put the burden on an observer to add the information into the header offline, passing the inconvenience into the data proceeeing. In this paper we introduce the design and development of a TCS Sequencer for the 2.4m telescope, including the system structure and the data flows of its programs. With the TCS Sequencer we have integrated the control systems of the 2.4m telescope and the mounted YFOSC camera. Currently, the telescope pointing/status information and weather information can be automatically written into a result-image FITS header; observers can control the telescope and instruments through a common control interface. Consequently, in using the telescope observation efficiency has been improved and data processing has been simplified. We also give certain results of using the TCS Sequencer and its running status. During this work we have also learned how to write C programs under a Linux OS and how to access a MySQL Database through a C program.

TCS Sequencer; 2.4m Telescope; YFOSC

CN53-1189/PISSN1672-7673

TP311.11

A

1672-7673(2013)04-0378-08

国家自然科学基金 (10903028, 10978026);云南省基础研究面上项目 (2009CD121) 资助.

2012-11-29;修定日期:2012-12-24

王传军,男,助理研究员. 研究方向:天文技术与方法. Email: wcj@ynao.ac.cn

猜你喜欢

成像仪天体望远镜
磁共振成像设备常见问题及维修措施
小天体环的轨道动力学
基于恒星的电离层成像仪在轨几何定标
太阳系中的小天体
测量遥远天体的秘籍
一分钟认识深空天体
神奇的千里眼——望远镜
打造最大望远镜
超级望远镜头
“赶紧送几架望远镜过来!”等7则