基于ASCOM标准的CCD自动观测系统*
2013-12-18和寿圣范玉峰王传军
和寿圣,范玉峰,王传军
(中国科学院云南天文台, 云南 昆明 650011)
基于ASCOM标准的CCD自动观测系统*
和寿圣,范玉峰,王传军
(中国科学院云南天文台, 云南 昆明 650011)
天文观测效率很大程度上取决于天文仪器的自动化程度。针对2.4 m望远镜原有CCD观测系统无法自动控制滤光片的缺陷,设计了基于ASCOM标准的滤光片驱动,采用MaxIm DL软件集成控制CCD相机和滤光片。重点介绍了ASCOM驱动的工作原理、设计方法以及MaxIm DL软件集成控制的实现过程。实际应用结果表明系统工作正常、稳定性好,完全满足CCD自动观测的需要,有效提高了天文观测效率。
2.4 m望远镜;ASCOM;MaxIm DL;自动观测
天文观测效率很大程度上取决于天文仪器的自动化程度。云南天文台2.4 m望远镜是目前国内自动化程度相对比较高的天文望远镜,但作为其主力终端之一的PICCD相机和配套的滤光片系统却由两套独立的软件控制,无法实现多波段CCD自动观测,严重影响了天文观测效率,短曝光测光观测尤为明显。云南天文台1 m望远镜滤光片接口改造后实现了软件控制[1],但同样存在这个问题。为此,本文设计了基于ASCOM标准的滤光片驱动,采用MaxIm DL软件集成控制PICCD相机和滤光片,实现了2.4 m望远镜CCD自动观测。
1 平台介绍
天文公共对象模型(Astronomy Common Object Model, ASCOM)[2]是WINDOWS平台下一个免费开源的天文接口标准,为第三方设备驱动开发提供丰富的模板和技术支持,很多天文软件如MaxIm DL、CCDSoft、SkyMap、WWT等都支持该标准。
MaxIm DL[3]是Diffraction Limited公司开发的WINDOWS平台下一款集CCD控制、滤光片控制、调焦控制、圆顶控制、望远镜控制等功能的天文图像处理软件,由于其CCD控制功能强大、界面友好、使用方便,并支持很多厂家的设备,天文上常用做CCD控制软件。MaxIm DL软件与ACP软件、WWT等软件相结合,可实现远程自动天文台。
ASCOM标准需要ASCOM platform平台支持,ASCOM platform为不同天文软件供应商和天文仪器厂家提供了一个免费互通的中间桥梁,是应用天文软件和天文仪器设备ASCOM驱动的翻译软件。如图1为ASCOM和MaxIm DL软件之间的关系示意图,MaxIm DL软件通过ASCOM platform识别并调用设备的ASCOM驱动,从而达到控制底层天文仪器设备的目的。
2 系统简介
系统结构如图2,硬件系统由电脑、PICCD相机及滤光片系统3部分组成,滤光片系统由滤光片控制器和滤光片盘构成。PICCD相机为Princeton Instruments的VersArray 1300B CCD[4],有效像素1 340×1 300,通过串行总线与电脑的PCI数据采集卡通讯。滤光片控制器由云南天文台自行研制,采用TINI (TinyInterNet Interface,美国Dallas半导体公司生产的一种能提供很好的网络支持的设备)[5]系统设计,具有网络控制和手动控制两种控制方式。滤光片盘由上下两个交错的滤光片轮组成,每个滤光片轮可以装载5个滤光片,通过二者不同位置组合构成不同的滤光片。由于PICCD相机自带的软件为WinView,滤光片控制器软件为云南天文台自行开发的java程序,二者相互独立,不利于集中控制以实现自动化。因此在不改变原有硬件系统的基础上,采用MaxIm DL软件集中控制PICCD相机和滤光片系统。MaxIm DL软件支持PICCD相机的PVCAM驱动,滤光片系统由自行开发的ASCOM滤光片驱动控制。
图1 ASCOM示意图
Fig.1 Schematic diagram of an ASCOM
3 软件设计
采用C#语言作为软件设计的编程语言[6-7],使用微软visual studio 2005作为开发平台,Inno Setup作为安装打包制作软件。
数据通信采用TCP网络协议,数据格式:长度6字节,协议头4字节,分别为0x55、0xAA、0x01、0x02,第4字节表示有效数据长度,第5字节为命令或状态,第6字节为滤光片号。数据传输采用每发送一条信息创建一次网络连接,发送完关闭连接的方式。
MaxIm DL软件负责所有滤光片操作相关的工作,因此ASCOM驱动只需提供MaxIm DL软件调用的发送滤光片设置信息和接收滤光片状态信息等基本功能函数。考虑到MaxIm DL软件每秒查询滤光片状态一次,而滤光片转动到位通常需要3~15 s时间,为不影响MaxIm DL软件在等待滤光片状态信息的同时执行其它操作,专门开辟一个线程处理接收滤光片状态信息,线程流程如图3。
图2 系统结构示意图
Fig.2 Schematic diagram of our system
(1)线程自连接ASCOM驱动时刻开启,首先进行初始化网络,创建套接字、端口绑定和监听端口,初始化完成后进入工作循环;
(2)首先查询断开滤光片驱动命令,断开则退出循环,结束线程,未收到断开命令则继续工作,这是为线程安全退出服务,否则可能因为线程无法退出导致程序无响应;
(3)然后查询网络连接请求,无连接请求重新开始工作循环,有连接则接受连接,并接收数据,为网络安全起见,ASCOM驱动也只允许滤光片控制器IP连接;
(4)数据长度为零说明滤光片控制器主动关闭连接,断开连接重新开始工作循环,长度大于零则获取当前滤光片状态;
(5)如果滤光片正在转动就继续发送查询状态命令,继续接收数据;
(6)如果滤光片已经转动到位则判断当前滤光片是否为要设置的滤光片,如果是则设置滤光片状态为转动到位,继续接收数据;如果不是则重新发送滤光片设置信息并设置状态为正在转动,继续接收数据。
图3 软件流程图
Fig.3 Software flowchart
ASCOM platform 5.0开发模板FilterWheel类提供了ASCOM滤光片驱动所需的各种函数和属性,FilterWheel()是构造函数;SetupDialog()为设置对话框,用于设置和更改系统参数;Connected属性用于设置ASCOM驱动连接状态,MaxIm DL软件通过读取该属性判断滤光片的连接状态;Position属性用于设置滤光片和获取滤光片状态;FocusOffsets属性为焦距补偿参数,用于补偿非等光程滤光片或者滤光片和空状态之间的光程差,此参数提供给望远镜焦距补偿机构;Names为滤光片的名字,如U、B、V、R、I等。如下为部分C#代码:
public class FilterWheel: IFilterWheel
{
private const byte m_bSlotNumber=6; //滤光片数量
private static bool m_bConnected=false; //连接状态
private static short m_sPosition=0; //滤光片状态
private static short m_sSetPosition=0; //要设置滤光片状态
private static int[]m_iFocusOffsets=new int[m_bSlotNumber];
private static string[]m_sNames=new string[m_bSlotNumber];
public FilterWheel()//初始化
{
m_iFocusOffsets[0]=0; m_iFocusOffsets[1]=0;
m_iFocusOffsets[2]=0; m_iFocusOffsets[3]=0;
m_iFocusOffsets[4]=0; m_iFocusOffsets[5]=0;
m_sNames[0]="N"; m_sNames[1]="U";
m_sNames[2]="V"; m_sNames[3]="B";
m_sNames[4]="R"; m_sNames[5]="I";
}
public bool Connected//连接
{//TODO Replace this with your implementation
get{return m_bConnected;}
set
{
if (value){
mythread=new Thread(new ThreadStart(RecvFunc));
mythread.Start();}//连接初始化
else{}//断开
m_bConnected=value; //设置连接状态
}
}
public short Position//滤光片
//TODO Replace this with your implementation
get{return m_sPosition;}//获取滤光片状态
Set//设置滤光片
{
//发送到滤光片控制器
SendToTiny((byte)(value));
m_sPosition=-1; //表示滤光片轮正在转动
}
}
public int[]FocusOffsets//焦距补偿
{//TODO Replace this with your implementation}
public string[]Names//滤光片名字
{//TODO Replace this with your implementation}
public void SetupDialog()//设置对话框
{SetupDialogForm F=new SetupDialogForm(); F.ShowDialog();}
}
visual studio 2005编译生成的ASCOM驱动为动态链接库文件,其debug版可以直接使用,但需要.NET开发环境的支持。为了便于在无.NET开发环境的电脑上安装使用,软件需要打包发布。首先用Visual Studio 2005编译ASCOM驱动为release版动态链接库,然后打开ASCOM Platform平台的Driver install script maker工具,根据提示填写相应的信息,选择ASCOM驱动文件目录,点击保存后会自动调用Inno Setup软件打包生成.exe可执行安装文件。
4 集成测试
MaxIm DL软件集成CCD相机和ASCOM滤光片之前,必须正确配置软硬件。首先确保PICCD相机和滤光片控制器正确连接到电脑,然后分别安装MaxIm DL软件、ASCOM Platform平台、Roper PVCAM软件(PICCD Roper驱动)和ASCOM滤光片驱动。运行MaxIm DL软件,进入CCD control面板,选择Camera为Roper PVCAM作相应参数配置,选择滤光片为ASCOM,再到高级选项选择所开发的ASCOM滤光片驱动进行配置如图4,设置好滤光片名称、顺序以及焦距补偿参数才能进行连接测试。为了在FITS头文件信息中动态添加气象数据、望远镜参数等信息,还需编写相应的Javascript脚本,这里不再详述。
MaxIm DL软件支持CCD自动观测,如图5为自动观测设置界面,设置好图像名称、后缀名、滤光片、曝光时间、拍摄帧数等参数,MaxIm DL软件将根据设定参数自动进行观测。
系统于2009年初应用于云南天文台2.4 m望远镜,工作稳定,完全满足CCD自动观测的需要,有效提高了天文观测效率。如图6为2009年10月24日观测截图,图像左边为PICCD拍摄的图像,右边为FITS头文件信息,从中可以看到设备状态及当前滤光片状态等信息,如CCD为Roper PVCAM(PICCD的驱动名称),观测目标为RUBIN152,滤光片为R等等。
图4 连接配置
Fig.4 Connection configuration
图5 自动观测设置
Fig.5 Configuration for automated observation
图6 实验照片
Fig.6 An example of test observation
5 结 语
目前天文界的主流操作系统是Linux,但是在WINDOWS平台采用MaxIm DL软件集成控制天文仪器仍不失为一个快速低成本实现自动化的有效方案。该CCD自动观测系统提高了2.4 m望远镜的自动化程度,有效提高了天文观测效率,同时也为ASCOM标准以及MaxIm DL软件在天文上的应用提供了可借鉴的经验。
[1] 王雪利, 楼柯, 伦宝利. 1 m望远镜光电测光用滤光片接口改造[J]. 天文研究与技术——国家天文台台刊, 2006, 3(3): 304-309.
Wang Xueli, Lou Ke, Lun Baoli. The reconstruction of filter-shelf on 1m telescope[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2006, 3(3): 304-309.
[2] Alberto Javier Castro-Tirado. Robotic autonomous observatories: a historical perspective[J/OL]. Advances in Astronomy,Volume 2010 (2010), Article ID 570489, 8 pages. http://www.hindawi.com/journals/aa/2010/570489/.
[3] Zhou Aiying, Jiang Xiaojun, Zhang Yanping. MiCPhot: A prime-focus multicolor CCD photometer on the 85cm Telescope[J]. Research in Astronomy and Astrophysics, 2009(3): 349-366.
[4] Yao Baoan, Wang Shuhe, Tang Zhenghong. Performance study of the CCD camera on the 1m reflector ATNAOC[J]. Annals of Shanghai Astronomical Observatory Chinese Academy Sciences, 2007(1): 80-88.
[5] 王传军, 范玉峰, 陈东. 基于TINI系统的网络气象站[J]. 天文研究与技术——国家天文台台刊, 2007, 4(3): 288-295.
Wang Chuanjun, Fan Yufeng, Chen Dong. The net meteorological observatory based on TINI system[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2007, 4(3): 288-295.
[6] 郑宇军. C#面向对象程序设计[M]. 北京: 人民邮电出版社, 2006.
[7] 耿肇英, 耿燚. C#应用程序设计教程[M]. 北京: 人民邮电出版社, 2007.
AnAutomaticCCDObservationSystemBasedontheASCOMStandard
He Shousheng, Fan Yufeng, Wang Chuanjun
(Yunnan Observatories, Chinese Academy of Sciences, Kunming 650011, China, Email: heshousheng@ynao.ac.cn)
Efficiencies of astronomical observations largely depend on the degree of automation. The CCD system of the 2.4m telescope of the Yunnan Observatory did not have an automatically controllable filter wheel. To improve the efficiency of the telescope, we have developed a filter-wheel control system based on the ASCOM standard. The CCD camera and filter wheel are controlled by a MaxIm DL software, making automatic CCD observation possible. The system has been applied to the 2.4 meter telescope since early 2009. Practical application results show that it functions properly and reliably, it meets the requirements of automatic CCD observation, and achieves the goal of improving the efficiency of astronomical observation. Although the mainstream operating system for astronomical instrumentation is Linux, a Windows platform is also a low cost and effective automation solution for the several reasons. First, an ASCOM driver is very easy to develop because there are useful templates and examples. Second, the MaxIm DL software is a mature commercial software with powerful functions for CCD control and it supports the ASCOM standard. These make it convenient to incorporate in the software utilities for various astronomical instruments. The paper finally discusses the principle of ASCOM filter-wheel driver and its control method based on the MaxIm DL software. It also provides some empirical references for the ASCOM standard and MaxIm DL software in astronomical applications.
2.4m telescope; ASCOM; MaxIm DL; Automatic observation
CN53-1189/PISSN1672-7673
P111.2; TP311.52
A
1672-7673(2013)04-0386-06
云南省自然科学基金 (2009CD122) 资助.
2012-08-14;修定日期:2012-09-06
和寿圣,男,工程师. 研究方向:天文仪器与方法. Email: heshousheng@ynao.ac.cn