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