基于ASCOM及PLC的随动天文圆顶控制*

2020-10-17 12:04张冠军宋腾飞程向明王晶星张益恭
天文研究与技术 2020年4期
关键词:圆顶下位驱动程序

张冠军,宋腾飞,程向明,3,4,王晶星,张益恭,3

(1.中国科学院云南天文台,云南 昆明 650216;2.中国科学院大学,北京 100049;3.中国科学院天体结构与演化重点实验室,云南 昆明 650216;4.云南省应用天文技术工程实验室,云南 昆明 650216)

圆顶是保护天文望远镜并协同其工作的机械装置,除了保护望远镜免受外界雨水和灰尘等损坏以外,还可减弱风载对观测设备的影响[1-2]。传统结构的天文圆顶是一个可旋转的带有可开闭天窗的建筑,常具有半球或超半球的外形,在其基础上发展起来的新型天文圆顶则不拘于这种造型,但多数仍具有天窗开闭和方位随动这两种控制方式。其中,圆顶的随动控制对观测的影响较大,随着技术的进步,圆顶驱动和控制方式在不断发展,控制方式从旋转变压器、脉宽调制等模拟控制技术[3-4]演变到以单片机或可编程控制器作为核心实现自动控制功能的数字控制技术[5-8]。

无名山址点位于四川稻城县,是中国科学院云南天文台历时4年踏勘选定的候选天文台址,具有优良的天文观测条件[9]。拟在无名山址点建设的50 cm望远镜用于开展近地小行星高精度定位和测光观测,由于无名山海拔高,到站观测较为困难,亟需实现远程自动观测。尽管目前远程自动观测技术已经有很大的进展,但系统的整合仍需要软硬件多方面的协调,需要定制甚至自行设计开发。稻城50 cm望远镜的圆顶配备可编程控制器控制系统,无法直接应用于远程自动观测系统,因此,专门开发了相应的软件系统,使观测系统软件能够自主控制圆顶,为实现小行星远程自动观测奠定了基础。

1 天文公共对象模型简介

天文公共对象模型诞生于1998年,是由Denny等人针对天文观测设备开发的一种接口标准,它在软件层和硬件层之间引入了接口驱动层,在软件和硬件之间架起了统一对接的桥梁。天文设备生产商提供的设备驱动程序只要符合天文公共对象模型标准,就可以方便地将设备挂载到基于天文公共对象模型开发的软件中,实现设备控制与信息传递。如今,望远镜、调焦器、相机、滤镜轮、圆顶、气象站等天文设备被包括进来,从一开始的望远镜脚本接口逐渐成长为兼容绝大多数天文设备的一套接口协议,由于功能完善、用户众多,成为天文设备控制的实施标准。其中,圆顶接口由弗罗里达大学的Oliver完成,采用了Chris Lord的圆顶指向公式解决了指向偏差问题(1)https://ascom-standards.org/About/History.htm.。

国内对于天文公共对象模型的研究也逐渐深入,云南天文台、昆明理工大学、光电技术研究所等多家单位都基于天文公共对象模型进行了望远镜自动观测方面的研究,实现了天文公共对象模型标准的CCD、望远镜、圆顶等设备的开发[7,10-12]。

2 圆顶控制系统分析

稻城50 cm望远镜配备一个6.3 m球形圆顶,圆顶天窗宽1.2 m,可实现360°全方位转动。方位运动采用单相交流电机通过链传动实现,天窗为单帘式结构,采用三相交流电机通过链传动实现升起、打开与关闭,圆顶通过基于可编程控制器的电控箱,可实现手动控制。同时,望远镜配备了CCD相机、电子调焦器、滤镜轮、高性能工控机以及一架赤道式机架。

圆顶控制基于可编程控制器实现,型号为西门子S7-200 Smart。方位传动的减速机输出轴同轴安装了角编码器,角编码器信号进入可编程控制器的高速寄存器,在可编程控制器内部进行计数,并换算为圆顶方位转角。方位还设置了0点,距离传感器产生的信号传输至可编程控制器,可编程控制器得到信号后将方位计数器清零。天窗设置了两个限位开关,以防止天窗过冲,望远镜设备及圆顶控制器见图1。

图1 设备安装图

对近地小行星观测时,在观测开始前打开天窗,望远镜跟踪目标,圆顶天窗始终跟随望远镜的指向(称为 “随动”),观测结束或根据需要关闭天窗。

要实现圆顶的随动,必须实现以下功能:

(1)电脑与圆顶控制中心(可编程控制器)建立通信;

(2)生成圆顶控制指令。

由于整个望远镜系统的机架、电子调焦器、CCD相机、滤镜轮等均支持天文公共对象模型,并且采用MaxIm DL软件实现图像采集,因此,将圆顶融入基于天文公共对象模型构建的观测系统。

可编程控制器的通信有多种选择,这里采用Modbus协议。

3 圆顶控制软件设计

在天文公共对象模型标准的支持下,各类设备与核心软件的连接方式大同小异,只需准备好相关设备的天文公共对象模型驱动,在核心软件中选择相关的驱动即可完成连接。圆顶的驱动程序应基于天文公共对象模型协议,将上层软件和可编程控制器进行连接:圆顶驱动程序(上位机)作为上层控制软件与可编程控制器(下位机)连接的中间媒介,可编程控制器作为下位机的控制核心,与可编程控制器的通信采用Modbus TCP协议。图2为观测系统体系结构。

图2 观测系统体系结构图

圆顶所有控制功能的实现,都在可编程控制器控制端提供了相应的功能支持。系统原理见图3。

图3 圆顶控制系统原理图

利用天文公共对象模型平台,由控制软件获得望远镜的指向位置。圆顶天窗的位置获取需要将配备光电编码器与驱动电机的减速器输出轴同轴安装,之后通过可编程控制器内部的高速计数器记录编码器的转动脉冲数,并根据传动比进行换算,获得圆顶的位置参数。

圆顶控制软件包括圆顶驱动程序和下位机控制程序,两者通信采用Modbus TCP协议。驱动程序与下位机必须采用相同的通信协议。在Visual Studio 2013开发环境下,使用NuGet安装HslCommunication库文件,通过调用库中的函数与下位机建立有效连接后,对下位机进行相关寄存器读写。

3.1 圆顶驱动程序设计

圆顶驱动程序(以下称 “上位机”)是上层控制软件与可编程控制器(下位机)之间命令与数据流的转换器。驱动程序基于微软Visual Studio 2013,ASCOM Platform X64和ASCOM Platform Developer配置开发环境。在完成软件开发的环境配置后,首先需要了解Dome驱动的成员和方法。天文公共对象模型标准为圆顶驱动开发提供了模板,模板中的C#成员和方法在开发文档和Template.cs中都可以找到,主要的成员函数有driverID, comPort, ConnectedState, ShutterOpen, Azimuth, Connected, domeShutterState等;然后向驱动项目中添加Modbus TCP协议文件,最后编写程序,实现与下位机通信对接。在圆顶驱动中提供与望远镜的接口函数,将Dome中的相关函数设置为true,圆顶驱动即可获取望远镜的指向位置。通过调用函数,返回目标的方位角,并将方位值写入下位机寄存器。部分圆顶驱动程序代码如下:

#region IDome Implementation

public bool CanSetAzimuth

{ get

{ tl.LogMessage("CanSetAzimuth Get", true.ToString());

return true;

}

}

Public double Azimuth

{ get

{ tl.LogMessage("Altitude Get", true.ToString());

int value=ALT;

HslCommunication.OperateResultwrite=Dome.TcpClient.Write("0", value);

if(write.IsSuccess)

{

testMassageBox.Text="Memory write successful";

}

}

}

#endregion

在Modbus/TCP通信协议的支持下,可编程控制器作为服务端,一方面为上位机提供数据服务,比如圆顶运行过程中的方位、天窗状态、编码器、可编程控制器输入输出状态等传入上位机,另一方面,接收并执行上位机传来的指令和数据,最终达到圆顶控制的目的。

3.2 可编程控制器程序设计

下位机主要实现以下功能:手动/自动功能模式分离和选择、圆顶自动找零、方位位置计算、Modbus-TCP通信、天窗开关、方位转动以及返回系统运行状态参数。在Modbus协议下,下位机是被动应答的,需要完成通信模块、高速计数器模块、手动控制与随动控制,以配合圆顶驱动程序工作。部分功能模块的梯形图程序如图4。

图4 可编程控制器控制程序

西门子S7-200 SMART采用客户端-服务器方法,Modbus客户端设备(上位机)通过该方法向服务器(下位机)发出请求,服务器响应客户端的请求。客户端可请求从服务器设备读取部分存储器,或将一定数量的数据写入服务器的存储器。下位机作为Modbus TCP的服务器,一是实现相应的逻辑控制功能;二是配置与上位机的通信功能,在可编程控制器程序中配置Modbus地址与中央处理器地址的映射关系,具体映射关系见表1。

表1 Modbus与中央处理器地址映射表

4 软件试运行

系统于2020年初进行了运行测试,程序运行稳定,基本满足随动要求。圆顶运行的关键参数见图5。通过后续调试和系统试运行,使用编码器的理论数值和实际数值进行了比对,对软件性能评价如下。

图5 软件测试图

功能完备性:圆顶控制系统兼容手动控制和程序控制,具备圆顶控制的基本功能,可以实现远程操作和运行参数反馈,功能较为完备。

方位机动性:圆顶旋转一周用时约170 s,单次随动过程转动角度不超过180°,正常情况下可在85 s内转至目标位置。

位置重复性:多次反复使圆顶方位停在固定位置,重复精度<20′。

系统稳定性:圆顶随动到目标位置后,方位转动不会发生来回震荡现象,稳定性良好。

启停性:由于链传动的机械传动特点,存在一定的间隙,在方位换向时的误差较大,误差<8′;在下位机收到停止指令后,电机滑行带来的圆顶方位变动<6′。

目标准确性:目标位置 ±0.3°内停止转动。

5 结束语

基于天文公共对象模型为稻城50 cm望远镜的圆顶设计了控制软件,该软件将可编程控制器控制的圆顶与其他天文设备一起连接到常用的天文控制软件中,方便地构建一套完整的自动观测系统,为实现近地小天体的天体测量远程自动观测奠定了基础。同时,对于中小型观测系统的圆顶自动控制提供了可借鉴的经验。

猜你喜欢
圆顶下位驱动程序
基于UDS协议的CAN BootLoader的开发与验证
加拿大民众透明圆顶屋里做瑜伽
“找拱形”实验设计与改进
兴隆2.16米望远镜圆顶吊装通道通风研究*
数字圆顶
阻止Windows Update更新驱动程序
发射机房监控系统之下位机
计算机硬件设备驱动程序分析
围观党“下位”,吐槽帝“登基”
CAN总线并发通信时下位机应用软件设计