丽江2.4米望远镜多波段测光观测控制系统的设计与开发*

2018-10-12 09:46陈林勰王传军范玉峰王德清
天文研究与技术 2018年4期
关键词:控制指令控制程序测光

陈林勰,王传军,范玉峰,丁 旭,王德清

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

丽江2.4 m望远镜是目前我国口径最大的通用型光学望远镜,所在台址具有优秀的天文观测条件,是我国重要的实测天文研究平台之一[1]。2.4 m望远镜承担着大量的观测任务,然而望远镜的观测时间有限,已经无法满足国内天文研究不断增长的观测需求[2]。在望远镜和仪器性能已经固定的情况下,只有提高望远镜的时间利用率,才能在有限的时间内获得更多的观测数据。望远镜的卡塞格林焦点上配有多个不同的观测终端 (图1),利用多终端快速切换系统(Rapid Instrument Exchange System, RIES),可以在观测过程中快速切换光路,使用不同的终端进行观测,具有很高的观测灵活性[3]。凭借多终端的观测模式,若实现对望远镜、观测终端、观测目标的合理调度,将在最大程度上提高望远镜的时间利用率。这需要丽江2.4 m望远镜具备一套完整的观测控制系统,提供从观测时间分配、任务调度、望远镜及终端仪器控制,到数据存储、处理和发布的一系列服务。

但是,目前丽江2.4 m望远镜的多个终端设备中仅有云南暗弱天体光谱成像仪(Yunnan Faint Object Spectrograph and Camera, YFOSC)与望远镜实现了一体化控制,其余的观测终端采用各自独立的控制系统和操作界面,无法实现多个不同终端仪器的统一调度与管理。而且,各不相同的控制系统增加了操作的复杂性,在终端切换和观测过程中占用了较多的时间,并且操作人员的失误甚至有可能导致整个观测任务失败。因此,有必要为丽江2.4 m望远镜其他终端开发标准化的仪器控制系统。

图1 丽江2.4 m望远镜仪器安装情况

Fig.1 Installation of the observation instrument for the Lijiang 2.4 meter telescope

多波段测光系统(Princeton Instruments VersArray1300B CCD, PICCD)是在丽江2.4 m望远镜上最早安装的观测终端,具有光学系统简单、光学效率高、滤光片类型丰富、读出速度快等特点,是一套高效的测光观测系统。本文以多波段测光控制系统为主要研究对象,基于云南暗弱天体光谱成像仪和望远镜一体化控制系统的方案,设计并研发多波段测光系统的控制系统,最终实现多波段测光系统、云南暗弱天体光谱成像仪和望远镜统一的控制模式。

1 总体设计

多波段测光系统原有的控制系统(如图2)是在WINDOWS平台下使用MaxIm DL作为控制程序,凭借自带的PVCAM相机驱动程序和基于ASCOM开发的滤光片驱动程序,实现对硬件设备的集成控制[4]。原有多波段测光系统的控制系统虽然能够完成数据采集,但是控制系统与望远镜控制系统相互独立,不能实现与望远镜的一体化控制,而且在观测时需要通过远程桌面的方式登陆设备控制计算机进行操作,占用网络带宽,且具有一定的延时,容易引起操作失误。因此,需要对多波段测光系统的控制系统进行重新设计与开发。

图2 原有多波段测光系统控制系统结构
Fig.2 The structure of the original control system of PICCD

望远镜的多个终端设备中,云南暗弱天体光谱成像仪与望远镜控制系统已经通过序列控制指令(Sequencer)与设备数据库相结合的设计方法实现了一体化控制[5]。Sequencer是一系列可以序列化运行的底层硬件控制指令程序的集合,每一个指令对应硬件设备的一个基本操作,即使更换硬件设备依然可以沿用原有的控制指令。除了Sequencer指令,云南暗弱天体光谱成像仪和望远镜控制系统还各自配备了一个设备数据库用于记录系统的各项信息,其他系统通过对数据库的访问就可以获取设备的信息。这种基于序列控制指令与设备数据库相结合的设计,不仅使得设备的控制系统相互独立又形式统一,而且通过数据库实现对设备系统的状态信息的集中管理,简化了系统间的数据交换。

因此在现有硬件结构的基础上,沿用云南暗弱天体光谱成像仪与望远镜控制系统一体化控制的方案完成新多波段测光系统的控制系统设计,新的系统结构如图3。

图3 新多波段测光系统的控制系统结构
Fig.3 The structure of the new PICCD control system

新的多波段测光系统的控制系统由3部分构成:观测控制程序、设备控制程序和设备数据库。观测控制程序基于望远镜网络和序列控制指令对设备控制程序进行远程控制,设备控制程序根据指令控制硬件设备完成对应的操作,设备数据库则保存系统运行过程中各种状态的变化,为观测控制程序提供系统状态数据,同时作为观测数据文件中系统状态信息的数据来源。

2 系统实现

2.1 观测控制程序

观测控制程序部署在观测控制计算机上,采用较为常用的Ubuntu 16.04 LST系统,基于Qt 5.8[6]框架与C++语言进行开发。用户可以通过观测控制程序对系统状态进行实时监测,并通过它实施观测过程中的远程操作。

观测控制程序的远程操作通过望远镜局域网实现,利用序列控制指令和执行结果消息与设备控制程序进行交互,二者之间的通讯过程如图4。

系统的序列控制指令与硬件设备可执行的操作一一对应,多波段测光系统只有CCD相机和滤光片两个设备,所以其序列控制指令比较简单,表1列举了部分常用的序列控制指令。

图4 观测控制程序和设备控制程序通讯过程

Fig.4 The communication process of the observation control program and the device control program

表1 多波段测光系统常用序列控制指令Table 1 Common sequencer commandfor PICCD

其中darkexposeset是针对CCD相机的控制指令,filter是滤光片的控制指令。指令执行完毕后,观测控制程序会接收设备控制程序返回的执行结果,结果消息根据执行的结果分为执行成功、执行失败和指令错误。

观测控制程序提供了一个主界面和两个设置界面(如图5),主界面上显示多波段测光系统的各项状态参数,这些状态参数从设备数据库中获取,每秒进行一次更新,观测人员在主界面上的操作都会转换成对应的控制指令发送给设备控制程序。设置界面则用于设置观测控制程序的网络连接参数和系统的滤光片配置,保证观测控制程序的正常运行。

2.2 设备控制程序

设备控制程序部署在设备控制计算机上,在接收到观测控制程序传来的指令后,控制硬件设备执行指令,并返回执行的结果,程序主体流程如图6。

受限于CCD相机驱动程序开发包PVCAM 2.7[注]https: //wenku.baidu.com/view/e432ee9f227916888586d777.html?qq-pf-to=pcqq.temporaryc2c对系统内核的要求,设备控制程序在RedHat Linux 5.6平台下开发,整个程序采用C语言编写,包括4个主要功能:硬件设备控制、数据封装、网络通讯和数据库交互。

图5 观测控制程序界面。(a) 主界面;(b) 连接设置;(c) 滤光片轮设置
Fig.5 Interface of observation control program. (a) Main interface; (b) Service setting; (c) Filter wheel setting

图6 设备控制程序流程图
Fig.6 Flowchart of device control program

硬件设备控制是设备控制程序的主要部分,需根据指令开发对应的函数控制硬件设备执行对应的操作。CCD相机的指令可以分为数据采集指令和参数设置指令,在PVCAM 2.7开发包的基础上设计并完成了CCDExp()和CCDSetting()两个接口函数用于执行对应的指令。滤光片轮与计算机通过串口协议进行通讯,使用转轮控制器内部定义的控制命令实现对转轮的控制,在设备控制程序中通过接口函数FilterGoTo()完成指令和结果消息的转换即可实现对滤光片轮的控制。

数据封装负责对从CCD读出的无格式原始数据进行格式封装,生成标准的FITS文件。数据封装通过CFITSIO[注]https: //heasarc.gsfc.nasa.gov/docs/software/fitsio/c/c_user/cfitsio.html开发包提供的函数实现,包括创建文件、文件头添加和图像数据写入3个环节。创建文件的文件名采用仪器缩写与日期时间的组合,例如由多波段测光系统于2017-06-22的22:30:35开始采集的数据,对应的文件名为PI20170622T223035.fits,其中T为日期与时间的间隔。此外,数据文件的文件头中需要详细完整地记录数据采集时的各类信息,包括文件属性、目标源参数、望远镜状态、观测条件和仪器状态,这些信息均从对应的数据库中获取。

网络通讯使用TCP/IP协议,完成观测控制程序和设备控制程序的网络连接,负责指令的接收、解析和反馈消息的发送。

数据库操作在MySQL开发包的基础上完成,实现对数据库数据的查询和更新,主要负责更新数据库中的系统状态信息以及从各个数据库中提取FITS文件头所需的各项数据。

2.3 设备数据库

设备数据库基于MySQL 5.7[注]https: //dev.mysql.com/doc/refman/5.7/en/建立,数据库中保存多波段测光系统所有的状态数据信息,在运行过程中由设备控制程序实时更新系统的状态信息,观测控制界面通过访问数据库获取状态信息并展示给观测人员,同时数据库中的数据也可以作为FITS文件头信息的来源。

经过对多波段测光控制系统中各项数据进行归类,将其分别保存在3张状态数据表和3张属性数据表中。状态数据表的表格名称及其记录数据类型如表2。

表2 状态数据表Table 2 Status Table

状态数据表用于记录仪器的实时状态信息,在系统运行的过程中,设备控制程序将实时更新这些数据。另外3张属性数据表的表格名称及其记录数据类型如表3。

表3 属性数据表Table 3 Attribute Table

属性数据表用于记录仪器的属性参数,在设备运行时,无需对其进行更新操作,只有在设备重新配置或系统更新时才需要对数据进行更新。

此外,数据库中还利用触发器实现系统设置选项相关参数的同步更新。比如通过建立触发器filter_info,在数据表pi_param中的数据更新之后,触发器就会被触发,根据当前的滤光片位置自动更新对应的滤光片的波段、带宽等数据到数据表中。其余还有诸如CCD快门不同读出速度、读出通道的噪声等参数,也通过这种方式实现。

3 系统测试

在完成多波段测光系统的软件开发和调试工作后,于2017年10月对多波段测光系统控制软件进行实际运行测试。整个观测过程共采集数据72张,包括bias, dark, flat和两组目标的多波段测光观测,涉及观测过程中所有的基本操作。

在完成数据采集后,在指定的文件目录中得到统一格式命名的FITS文件,数据采集时的相关信息也按照设计要求成功写入FITS文件,如图7。

图7 测试中采集的数据FITS文件
Fig.7 The FITS file of the data collected during test

在实际测试过程中,操作人员察觉到在观测控制程序与设备控制程序建立连接的过程中有轻微卡顿,系统界面对系统的状态变化缺少明确的提示。今后将根据用户的要求和建议,继续优化系统,使其更加贴合观测人员的使用习惯和要求。

4 总 结

多波段测光控制系统的重新开发,借鉴了云南暗弱天体光谱成像仪和望远镜控制系统的集成化控制系统方案,通过观测控制程序、设备控制程序和设备数据库3部分组成了多波段测光系统的控制程序。新的控制系统不仅完成设备的观测控制,实现远程操作,补全数据文件中的各项数据信息,而且具备与云南暗弱天体光谱成像仪和望远镜控制系统同样的控制模式,满足终端设备控制系统集成化的要求。但是,目前系统依然存在不足,需要进一步提升系统响应速度,增加更丰富的状态变化提示方法。在未来的工作中,将根据使用过程中出现的问题,逐步完善这一设计,并将其应用到望远镜其他的终端设备,逐步实现终端设备的集成控制。

猜你喜欢
控制指令控制程序测光
城轨车辆控制指令试验装置研制
基于PLC的变电站备用电源自动投入装置控制程序的研究
宏指令控制的多轴系统研究及实现
技术橱窗 科技一点不枯燥
本月话题机内测光系统
高速公路隧道通风、照明联动控制方案探讨
重型车辆协同式自适应巡航控制系统的车际通信控制程序和信息交互
建筑工程新工艺、新技术现浇砼空心板的控制程序
数码相机的测光及其运用