張冠軍,宋騰飛,程向明,3,4,王晶星,張益恭,3
(1.中國(guó)科學(xué)院云南天文臺(tái),云南 昆明 650216;2.中國(guó)科學(xué)院大學(xué),北京 100049;3.中國(guó)科學(xué)院天體結(jié)構(gòu)與演化重點(diǎn)實(shí)驗(yàn)室,云南 昆明 650216;4.云南省應(yīng)用天文技術(shù)工程實(shí)驗(yàn)室,云南 昆明 650216)
圓頂是保護(hù)天文望遠(yuǎn)鏡并協(xié)同其工作的機(jī)械裝置,除了保護(hù)望遠(yuǎn)鏡免受外界雨水和灰塵等損壞以外,還可減弱風(fēng)載對(duì)觀測(cè)設(shè)備的影響[1-2]。傳統(tǒng)結(jié)構(gòu)的天文圓頂是一個(gè)可旋轉(zhuǎn)的帶有可開閉天窗的建筑,常具有半球或超半球的外形,在其基礎(chǔ)上發(fā)展起來的新型天文圓頂則不拘于這種造型,但多數(shù)仍具有天窗開閉和方位隨動(dòng)這兩種控制方式。其中,圓頂?shù)碾S動(dòng)控制對(duì)觀測(cè)的影響較大,隨著技術(shù)的進(jìn)步,圓頂驅(qū)動(dòng)和控制方式在不斷發(fā)展,控制方式從旋轉(zhuǎn)變壓器、脈寬調(diào)制等模擬控制技術(shù)[3-4]演變到以單片機(jī)或可編程控制器作為核心實(shí)現(xiàn)自動(dòng)控制功能的數(shù)字控制技術(shù)[5-8]。
無名山址點(diǎn)位于四川稻城縣,是中國(guó)科學(xué)院云南天文臺(tái)歷時(shí)4年踏勘選定的候選天文臺(tái)址,具有優(yōu)良的天文觀測(cè)條件[9]。擬在無名山址點(diǎn)建設(shè)的50 cm望遠(yuǎn)鏡用于開展近地小行星高精度定位和測(cè)光觀測(cè),由于無名山海拔高,到站觀測(cè)較為困難,亟需實(shí)現(xiàn)遠(yuǎn)程自動(dòng)觀測(cè)。盡管目前遠(yuǎn)程自動(dòng)觀測(cè)技術(shù)已經(jīng)有很大的進(jìn)展,但系統(tǒng)的整合仍需要軟硬件多方面的協(xié)調(diào),需要定制甚至自行設(shè)計(jì)開發(fā)。稻城50 cm望遠(yuǎn)鏡的圓頂配備可編程控制器控制系統(tǒng),無法直接應(yīng)用于遠(yuǎn)程自動(dòng)觀測(cè)系統(tǒng),因此,專門開發(fā)了相應(yīng)的軟件系統(tǒng),使觀測(cè)系統(tǒng)軟件能夠自主控制圓頂,為實(shí)現(xiàn)小行星遠(yuǎn)程自動(dòng)觀測(cè)奠定了基礎(chǔ)。
天文公共對(duì)象模型誕生于1998年,是由Denny等人針對(duì)天文觀測(cè)設(shè)備開發(fā)的一種接口標(biāo)準(zhǔn),它在軟件層和硬件層之間引入了接口驅(qū)動(dòng)層,在軟件和硬件之間架起了統(tǒng)一對(duì)接的橋梁。天文設(shè)備生產(chǎn)商提供的設(shè)備驅(qū)動(dòng)程序只要符合天文公共對(duì)象模型標(biāo)準(zhǔn),就可以方便地將設(shè)備掛載到基于天文公共對(duì)象模型開發(fā)的軟件中,實(shí)現(xiàn)設(shè)備控制與信息傳遞。如今,望遠(yuǎn)鏡、調(diào)焦器、相機(jī)、濾鏡輪、圓頂、氣象站等天文設(shè)備被包括進(jìn)來,從一開始的望遠(yuǎn)鏡腳本接口逐漸成長(zhǎng)為兼容絕大多數(shù)天文設(shè)備的一套接口協(xié)議,由于功能完善、用戶眾多,成為天文設(shè)備控制的實(shí)施標(biāo)準(zhǔn)。其中,圓頂接口由弗羅里達(dá)大學(xué)的Oliver完成,采用了Chris Lord的圓頂指向公式解決了指向偏差問題(1)https://ascom-standards.org/About/History.htm.。
國(guó)內(nèi)對(duì)于天文公共對(duì)象模型的研究也逐漸深入,云南天文臺(tái)、昆明理工大學(xué)、光電技術(shù)研究所等多家單位都基于天文公共對(duì)象模型進(jìn)行了望遠(yuǎn)鏡自動(dòng)觀測(cè)方面的研究,實(shí)現(xiàn)了天文公共對(duì)象模型標(biāo)準(zhǔn)的CCD、望遠(yuǎn)鏡、圓頂?shù)仍O(shè)備的開發(fā)[7,10-12]。
稻城50 cm望遠(yuǎn)鏡配備一個(gè)6.3 m球形圓頂,圓頂天窗寬1.2 m,可實(shí)現(xiàn)360°全方位轉(zhuǎn)動(dòng)。方位運(yùn)動(dòng)采用單相交流電機(jī)通過鏈傳動(dòng)實(shí)現(xiàn),天窗為單簾式結(jié)構(gòu),采用三相交流電機(jī)通過鏈傳動(dòng)實(shí)現(xiàn)升起、打開與關(guān)閉,圓頂通過基于可編程控制器的電控箱,可實(shí)現(xiàn)手動(dòng)控制。同時(shí),望遠(yuǎn)鏡配備了CCD相機(jī)、電子調(diào)焦器、濾鏡輪、高性能工控機(jī)以及一架赤道式機(jī)架。
圓頂控制基于可編程控制器實(shí)現(xiàn),型號(hào)為西門子S7-200 Smart。方位傳動(dòng)的減速機(jī)輸出軸同軸安裝了角編碼器,角編碼器信號(hào)進(jìn)入可編程控制器的高速寄存器,在可編程控制器內(nèi)部進(jìn)行計(jì)數(shù),并換算為圓頂方位轉(zhuǎn)角。方位還設(shè)置了0點(diǎn),距離傳感器產(chǎn)生的信號(hào)傳輸至可編程控制器,可編程控制器得到信號(hào)后將方位計(jì)數(shù)器清零。天窗設(shè)置了兩個(gè)限位開關(guān),以防止天窗過沖,望遠(yuǎn)鏡設(shè)備及圓頂控制器見圖1。
圖1 設(shè)備安裝圖
對(duì)近地小行星觀測(cè)時(shí),在觀測(cè)開始前打開天窗,望遠(yuǎn)鏡跟蹤目標(biāo),圓頂天窗始終跟隨望遠(yuǎn)鏡的指向(稱為 “隨動(dòng)”),觀測(cè)結(jié)束或根據(jù)需要關(guān)閉天窗。
要實(shí)現(xiàn)圓頂?shù)碾S動(dòng),必須實(shí)現(xiàn)以下功能:
(1)電腦與圓頂控制中心(可編程控制器)建立通信;
(2)生成圓頂控制指令。
由于整個(gè)望遠(yuǎn)鏡系統(tǒng)的機(jī)架、電子調(diào)焦器、CCD相機(jī)、濾鏡輪等均支持天文公共對(duì)象模型,并且采用MaxIm DL軟件實(shí)現(xiàn)圖像采集,因此,將圓頂融入基于天文公共對(duì)象模型構(gòu)建的觀測(cè)系統(tǒng)。
可編程控制器的通信有多種選擇,這里采用Modbus協(xié)議。
在天文公共對(duì)象模型標(biāo)準(zhǔn)的支持下,各類設(shè)備與核心軟件的連接方式大同小異,只需準(zhǔn)備好相關(guān)設(shè)備的天文公共對(duì)象模型驅(qū)動(dòng),在核心軟件中選擇相關(guān)的驅(qū)動(dòng)即可完成連接。圓頂?shù)尿?qū)動(dòng)程序應(yīng)基于天文公共對(duì)象模型協(xié)議,將上層軟件和可編程控制器進(jìn)行連接:圓頂驅(qū)動(dòng)程序(上位機(jī))作為上層控制軟件與可編程控制器(下位機(jī))連接的中間媒介,可編程控制器作為下位機(jī)的控制核心,與可編程控制器的通信采用Modbus TCP協(xié)議。圖2為觀測(cè)系統(tǒng)體系結(jié)構(gòu)。
圖2 觀測(cè)系統(tǒng)體系結(jié)構(gòu)圖
圓頂所有控制功能的實(shí)現(xiàn),都在可編程控制器控制端提供了相應(yīng)的功能支持。系統(tǒng)原理見圖3。
圖3 圓頂控制系統(tǒng)原理圖
利用天文公共對(duì)象模型平臺(tái),由控制軟件獲得望遠(yuǎn)鏡的指向位置。圓頂天窗的位置獲取需要將配備光電編碼器與驅(qū)動(dòng)電機(jī)的減速器輸出軸同軸安裝,之后通過可編程控制器內(nèi)部的高速計(jì)數(shù)器記錄編碼器的轉(zhuǎn)動(dòng)脈沖數(shù),并根據(jù)傳動(dòng)比進(jìn)行換算,獲得圓頂?shù)奈恢脜?shù)。
圓頂控制軟件包括圓頂驅(qū)動(dòng)程序和下位機(jī)控制程序,兩者通信采用Modbus TCP協(xié)議。驅(qū)動(dòng)程序與下位機(jī)必須采用相同的通信協(xié)議。在Visual Studio 2013開發(fā)環(huán)境下,使用NuGet安裝HslCommunication庫文件,通過調(diào)用庫中的函數(shù)與下位機(jī)建立有效連接后,對(duì)下位機(jī)進(jìn)行相關(guān)寄存器讀寫。
圓頂驅(qū)動(dòng)程序(以下稱 “上位機(jī)”)是上層控制軟件與可編程控制器(下位機(jī))之間命令與數(shù)據(jù)流的轉(zhuǎn)換器。驅(qū)動(dòng)程序基于微軟Visual Studio 2013,ASCOM Platform X64和ASCOM Platform Developer配置開發(fā)環(huán)境。在完成軟件開發(fā)的環(huán)境配置后,首先需要了解Dome驅(qū)動(dòng)的成員和方法。天文公共對(duì)象模型標(biāo)準(zhǔn)為圓頂驅(qū)動(dòng)開發(fā)提供了模板,模板中的C#成員和方法在開發(fā)文檔和Template.cs中都可以找到,主要的成員函數(shù)有driverID, comPort, ConnectedState, ShutterOpen, Azimuth, Connected, domeShutterState等;然后向驅(qū)動(dòng)項(xiàng)目中添加Modbus TCP協(xié)議文件,最后編寫程序,實(shí)現(xiàn)與下位機(jī)通信對(duì)接。在圓頂驅(qū)動(dòng)中提供與望遠(yuǎn)鏡的接口函數(shù),將Dome中的相關(guān)函數(shù)設(shè)置為true,圓頂驅(qū)動(dòng)即可獲取望遠(yuǎn)鏡的指向位置。通過調(diào)用函數(shù),返回目標(biāo)的方位角,并將方位值寫入下位機(jī)寄存器。部分圓頂驅(qū)動(dòng)程序代碼如下:
#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通信協(xié)議的支持下,可編程控制器作為服務(wù)端,一方面為上位機(jī)提供數(shù)據(jù)服務(wù),比如圓頂運(yùn)行過程中的方位、天窗狀態(tài)、編碼器、可編程控制器輸入輸出狀態(tài)等傳入上位機(jī),另一方面,接收并執(zhí)行上位機(jī)傳來的指令和數(shù)據(jù),最終達(dá)到圓頂控制的目的。
下位機(jī)主要實(shí)現(xiàn)以下功能:手動(dòng)/自動(dòng)功能模式分離和選擇、圓頂自動(dòng)找零、方位位置計(jì)算、Modbus-TCP通信、天窗開關(guān)、方位轉(zhuǎn)動(dòng)以及返回系統(tǒng)運(yùn)行狀態(tài)參數(shù)。在Modbus協(xié)議下,下位機(jī)是被動(dòng)應(yīng)答的,需要完成通信模塊、高速計(jì)數(shù)器模塊、手動(dòng)控制與隨動(dòng)控制,以配合圓頂驅(qū)動(dòng)程序工作。部分功能模塊的梯形圖程序如圖4。
圖4 可編程控制器控制程序
西門子S7-200 SMART采用客戶端-服務(wù)器方法,Modbus客戶端設(shè)備(上位機(jī))通過該方法向服務(wù)器(下位機(jī))發(fā)出請(qǐng)求,服務(wù)器響應(yīng)客戶端的請(qǐng)求??蛻舳丝烧?qǐng)求從服務(wù)器設(shè)備讀取部分存儲(chǔ)器,或?qū)⒁欢〝?shù)量的數(shù)據(jù)寫入服務(wù)器的存儲(chǔ)器。下位機(jī)作為Modbus TCP的服務(wù)器,一是實(shí)現(xiàn)相應(yīng)的邏輯控制功能;二是配置與上位機(jī)的通信功能,在可編程控制器程序中配置Modbus地址與中央處理器地址的映射關(guān)系,具體映射關(guān)系見表1。
表1 Modbus與中央處理器地址映射表
系統(tǒng)于2020年初進(jìn)行了運(yùn)行測(cè)試,程序運(yùn)行穩(wěn)定,基本滿足隨動(dòng)要求。圓頂運(yùn)行的關(guān)鍵參數(shù)見圖5。通過后續(xù)調(diào)試和系統(tǒng)試運(yùn)行,使用編碼器的理論數(shù)值和實(shí)際數(shù)值進(jìn)行了比對(duì),對(duì)軟件性能評(píng)價(jià)如下。
圖5 軟件測(cè)試圖
功能完備性:圓頂控制系統(tǒng)兼容手動(dòng)控制和程序控制,具備圓頂控制的基本功能,可以實(shí)現(xiàn)遠(yuǎn)程操作和運(yùn)行參數(shù)反饋,功能較為完備。
方位機(jī)動(dòng)性:圓頂旋轉(zhuǎn)一周用時(shí)約170 s,單次隨動(dòng)過程轉(zhuǎn)動(dòng)角度不超過180°,正常情況下可在85 s內(nèi)轉(zhuǎn)至目標(biāo)位置。
位置重復(fù)性:多次反復(fù)使圓頂方位停在固定位置,重復(fù)精度<20′。
系統(tǒng)穩(wěn)定性:圓頂隨動(dòng)到目標(biāo)位置后,方位轉(zhuǎn)動(dòng)不會(huì)發(fā)生來回震蕩現(xiàn)象,穩(wěn)定性良好。
啟停性:由于鏈傳動(dòng)的機(jī)械傳動(dòng)特點(diǎn),存在一定的間隙,在方位換向時(shí)的誤差較大,誤差<8′;在下位機(jī)收到停止指令后,電機(jī)滑行帶來的圓頂方位變動(dòng)<6′。
目標(biāo)準(zhǔn)確性:目標(biāo)位置 ±0.3°內(nèi)停止轉(zhuǎn)動(dòng)。
基于天文公共對(duì)象模型為稻城50 cm望遠(yuǎn)鏡的圓頂設(shè)計(jì)了控制軟件,該軟件將可編程控制器控制的圓頂與其他天文設(shè)備一起連接到常用的天文控制軟件中,方便地構(gòu)建一套完整的自動(dòng)觀測(cè)系統(tǒng),為實(shí)現(xiàn)近地小天體的天體測(cè)量遠(yuǎn)程自動(dòng)觀測(cè)奠定了基礎(chǔ)。同時(shí),對(duì)于中小型觀測(cè)系統(tǒng)的圓頂自動(dòng)控制提供了可借鑒的經(jīng)驗(yàn)。