圆顶是天文望远镜系统的重要外围设备,具有保护望远镜使其免受风吹、日晒、雨淋等恶劣天气袭击的功能。随着地面光学天文望远镜研制技术的迅速发展,与之配套的天文圆顶技术也越来越受到关注[1]。首先,圆顶类型越来越多。传统圆顶包括一个可以开启和关闭的天窗[2],一般可以旋转随动以辅助望远镜跟踪观测。如今各种综合考虑了改善圆顶视宁度、减小风阻和振动等因素的圆顶陆续被研制出来,天文圆顶产品越来越丰富。其次,圆顶控制技术越来越成熟。随着科学技术的不断进步,各种智能控制技术和通信技术在圆顶控制上得到了完美的应用,圆顶已经步入智能化时代。
云南天文台自动差分像运动大气视宁度监测仪(Automatic Differential Image Motion Monitor, ADIMM)的圆顶采用蚌壳折叠式结构,该结构具有成本低、结构简单、控制方便等特点,被广泛应用于中小型天文望远镜系统。由于生产商未提供控制系统,云南天文台自行研制开发了一套基于Modbus/TCP协议的圆顶控制系统,并在此基础上增加了天文公共对象模型①(Astronomy Common Object Model, ASCOM)支持,使其具备更好的兼容性和可扩展性。
1 协议介绍天文公共对象模型是Bob Denny为首的DC-3 Dreams团队为方便天文控制面板(Astronomer′s Control Panel, ACP)②和MaxIm DL③软件控制望远镜、照相机、滤光片等设备于1998年提出的一个天文接口标准,它在控制软件和设备之间引入驱动层,为天文软件供应商和天文仪器厂家提供了一个免费互通的中间桥梁。如图 1,相对于单一内嵌控制代码和未开放的可扩展驱动天文控制模式,它的优点显而易见:一方面,设备生产商只要提供符合天文公共对象模型标准的驱动程序,就可以将自己的设备挂接到天文公共对象模型平台;另一方面,控制软件只需要针对天文公共对象模型进行操作,无需考虑不同厂家、不同类型设备的特殊性[3]。
|
| 图 1 天文公共对象模型示意图 Figure 1 ASCOM schematic |
Modbus是Modicon于1979年提出的一种开放的工业现场总线协议,1999年该公司公布了基于以太网的Modbus/TCP协议,2008年4月,我国正式发布了国家标准GB/T19582-2008 《基于Modbus协议的工业自动化网络规范》[4],使其在我国工业控制领域得到了更为广泛的应用。Modbus/TCP是基于以太网的传输协议,以太网的链路层校验机制可保证数据包传递的正确性,Modbus/TCP数据帧不再采用额外数据校验,只要严格遵守协议规定的应用数据单元(Application Data Unit, ADU)格式(如表 1)就能在以太网上实现数据传输[5]。
| 帧结构 | 域 | 长度 | 描述 |
| MBAP帧头 | Transaction ID | 2 | 事物标识码,标识帧次序 |
| Protocol ID | 2 | 协议标识符,0为Modbus协议 | |
| Length | 2 | 数据总长度(Length+2) | |
| Uint ID | 1 | 单元标识符 | |
| 功能码 | Function Code | 1 | 功能码 |
| 数据 | Data | Length | 发送数据 |
系统结构如图 2,根据蚌壳折叠式圆顶具有左右双开结构的特点,采用可编程逻辑控制器作为圆顶控制器(选择施耐德Zelio Logic系列产品SR3B261BD和以太网通信接口模块SR3NET01BD),通过左右驱动器分别控制左右电机实现圆顶的开合动作,开启和关闭限位开关具有运动限位和状态反馈双重功能。圆顶工作模式有两种:一是通过计算机自动控制,采用Modbus/TCP协议实现;二是通过控制面板手动控制,通过按钮直接手动控制圆顶。气象站是自动圆顶必备的外围设备,通常也可以通过计算机连接气象站实现,但考虑其实时性和可靠性,这里采用气象站的雨雪信号直接触发圆顶控制器的方式。
|
| 图 2 系统结构示意图 Figure 2 System schematic |
系统设计充分考虑了圆顶操作的安全性和稳定性:首先,为确保维修人员的安全,控制面板手动开关按钮采用不闭锁常开按钮(按下动作,松开停止),并且在圆顶内部署了相应的急停按钮,紧急情况可立即停止圆顶运动,最大程度地降低夹伤事故风险;其次,为保护望远镜使其免受恶劣天气袭击,设置自动模式的双层保护:第1层是气象站保护,第2层是通讯故障保护,即设置60 s自动关闭功能,60 s无动作请求自动关闭圆顶,避免控制软件或者网络通讯等造成的圆顶关闭故障;再次,为有效防止相互碰撞,左右圆顶不能同时动作。
3 软件设计软件设计包含可编程逻辑控制器控制程序和计算机端天文公共对象模型驱动两部分。
可编程逻辑控制器控制程序采用功能模块图语言编写,考虑将来Linux版本天文公共对象模型控制软件的开发,程序参考了云南天文台伽马暴与光学暂现源观测系统(Burst Optical Observer and Transient Exploring System, BOOTES)[6]4号站圆顶控制并使之相互兼容。如图 3,程序通过对8个数字输入量的逻辑判断,实现对4个继电器的输出控制,从而实现圆顶的开合功能。输入Ⅰ1为自动/手动切换信号,输入Ⅰ2为开启/关闭圆顶信号,输入Ⅰ3~Ⅰ6为限位开关(左开限位、左关限位、右开限位和右关限位),输入Ⅰ7为气象信号,输入Ⅰ8为急停按钮。4个输出信号分别控制左右圆顶电机的运动。
|
| 图 3 可编程逻辑控制器时序图 Figure 3 PLC Program diagram |
计算机端天文公共对象模型驱动在微软visual studio 2010集成开发环境下采用C#语言编写,天文公共对象模型平台选择ASCOM Platform 6 SP2。圆顶驱动实际上是由符合天文公共对象模型标准的各种属性和方法组成的Dome类。如表 2为Dome类的一些常见属性和方法,Connected为连接属性,Altitude、Azimuth和CanSlave为圆顶随动属性,CanSetShutter、ShutterStatus为天窗操作属性,OpenShutter()、CloseShutter()为天窗操作方法。
| 名称 | 描述 | 名称 | 描述 |
| Connected | 连接属性 | CanSetShutter | 是否带天窗 |
| Altitude | 高度角 | OpenShutter() | 开启天窗 |
| Azimuth | 方位角 | CloseShutter() | 关闭天窗 |
| CanSlave | 是否随动 | ShutterStatus | 天窗状态 |
软件流程如图 4 (严格意义上说是结合控制软件的流程,天文公共对象模型驱动只是一些离散的属性和方法),分为连接设备、圆顶操作和断开连接3个阶段。连接设备:通过ASCOM Dome Chooser选择设备ASCOM Dome Driver for ADIMM,配置圆顶IP地址和端口进行网络连接,初始化圆顶,设置Connected=True。圆顶操作:开启圆顶,执行OpenShutter()方法发送开启命令至圆顶控制器,查询圆顶状态直至ShutterStatus=Opened,然后开启一个小于60 s的定时器定时执行OpenShutter()方法让圆顶保持开启;关闭圆顶需先关闭定时器避免圆顶被再次开启,执行CloseShutter()方法发送关闭命令至圆顶控制器,查询圆顶状态直至ShutterStatus=Closed再返回。断开设备:如有定时器先关闭定时器,关闭圆顶并设置Connected=False。如图 5为圆顶连接配置界面,由于圆顶控制器采用网络通信,程序设计时需要考虑把圆顶IP和端口保存到计算机中。
|
| 图 4 软件流程图 Figure 4 Software flowchart |
|
| 图 5 连接配置 Figure 5 Connection configuration |
从软件流程可以看出驱动设计思路的关键是将蚌壳折叠式圆顶当作不会随动的经典天文圆顶处理,把圆顶开合操作视为经典圆顶天窗开合操作,这样设计有利于降低软件编写的复杂度,提高稳定性和可靠性。
由于控制软件对天文公共对象模型驱动的调用如发送命令、获取属性等具有特定的时间周期,驱动设计特别需要注意通信阻塞问题,不宜采用同步通信处理耗时间的工作如查询状态等,否则会因为阻塞产生软件假死现象。本设计对网络通讯进行了合理的超时设置,并采用非阻塞线程类定时器,彻底解决了软件通信阻塞的问题。
4 系统测试自动差分像运动大气视宁度监测仪天文圆顶的手动控制实现较早,天文公共对象模型支持于2016年初完成。分别使用MaxIm DL、MaxPilote控制软件对其进行多次测试,系统均能正常工作,未出现任何软硬件故障。图 6和图 7分别为二者控制圆顶截图,图像左边为相机拍摄的圆顶实时照片截图,图像右边为TeamViewer远程登录控制计算机并用天文公共对象模型控制圆顶的截图。
|
| 图 6 圆顶控制界面 Figure 6 Interface of dome control |
|
| 图 7 圆顶控制界面 Figure 7 Interface of dome control |
目前云南天文台自行开发的Windows版本自动差分像运动大气视宁度监测仪的控制软件已经实现通过Modbus/TCP协议对圆顶的控制,下一步将逐步加入天文公共对象模型支持,使其支持更多的兼容设备。
5 结语自动差分像运动大气视宁度监测仪是云南天文台自行研制的天文站址监测设备,由于全自动无人值守的特性,天文圆顶自动化非常重要。实测结果表明,基于天文公共对象模型和Modbus/TCP协议的天文圆顶控制系统具有较好的稳定性、兼容性和可扩展性,为自动差分像运动大气视宁度监测仪完全实现自动观测提供了可靠的保证,同时为中小型天文望远镜圆顶设计提供了可借鉴的经验和方法。
Linux操作系统下第2代远程望远镜系统(Remote Telescope System, 2nd Version, RTS2)④已逐渐成为远程望远镜控制系统的标准,该圆顶控制系统设计也充分考虑了对RTS2的支持,具备了跨平台的特点,这为将来自动差分像运动大气视宁度监测仪控制软件开发基于RTS2的Linux版本提供了前提条件和可靠保证。
| [1] |
姚正秋, 周放. 近代天文圆顶发展概况[J]. 天文学进展, 2003, 21(3): 206–218 Yao Zhengqiu, Zhou Fang. Progress in modern astronomical enclouse[J]. Progress in Astronomy, 2003, 21(3): 206–218. |
| [2] |
陆栋宁, 黄垒, 陈颖为, 等. 85 cm天文望远镜圆顶和天窗自动化系统研制[J]. 天文研究与技术——国家天文台台刊, 2008, 5(4): 386–391 Lu Dongning, Huang Lei, Chen Yingwei, et al. Research and development of the dome/slit control system for the 85cm reflector of NOAC-BNU[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2008, 5(4): 386–391. |
| [3] |
彭亚杰, 季凯帆, 梁波, 等. ASCOM在选址望远镜远程控制中的可用性研究[J]. 天文研究与技术——国家天文台台刊, 2013, 10(1): 49–54 Peng Yajie, Ji Kanfan, Liang Bo, et al. The Usability of the ASCOM in remote control of a slit-survey telescope[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2013, 10(1): 49–54. |
| [4] |
翁建年, 张浩, 彭道刚, 等. 基于嵌入式ARM的Modbus/TCP协议的研究与实现[J]. 计算机应用与软件, 2009, 26(10): 36–38 Weng Jiannian, Zhang Hao, Peng Daogang, et al. On embedden ARM-based Modbus/TCP protocol and its implementation[J]. Computer Applications and Software, 2009, 26(10): 36–38. DOI: 10.3969/j.issn.1000-386X.2009.10.012 |
| [5] |
李宝仁, 周磊, 周洪. 基于Modbus/TCP协议通信节点的实现[J]. 机床与液压, 2004(12): 153–155 Li Baoren, Zhou Lei, Zhou Hong. The realization of communication node based on Modbus/TCP protocol[J]. Machine Tool & Hydraulics, 2004(12): 153–155. DOI: 10.3969/j.issn.1001-3881.2004.12.060 |
| [6] |
范玉峰, 辛玉新, 白金明, 等. 丽江站BOOTES-4综述[J]. 天文研究与技术, 2015, 12(1): 78–88 Fan Yufeng, Xin Yuxin, Bai Jinming, et al. An overview of the BOOTES-4 at the Lijiang Observatory[J]. Astronomical Research & Technology, 2015, 12(1): 78–88. |

