王德清,丁 旭,倫寶利,王傳軍,范玉峰,和壽圣,辛玉新,余曉光
(1. 中國科學院云南天文臺,云南 昆明 650011;2. 中國科學院大學,北京 100049;3. 中國科學院天體結構與演化重點實驗室,云南 昆明 650011)
天文圓頂應滿足在光學望遠鏡工作時,能讓天體輻射自由而盡量少畸變地進入接收器,并盡量減小風振動、溫度變化等外界不利因素的影響[1]。傳統圓頂如我國2.16 m望遠鏡圓頂室[2]封閉性較好,但通風性較差,會引起圓頂內外的溫差。后來大多數望遠鏡吸取了前期圓頂建造的經驗:如甚大望遠鏡(Very Large Telescope, VLT)在圓頂下部設置大面積通風口;4.2 m的威廉·赫歇爾望遠鏡(William Herschel Telescope, WHT)增加大面積的百頁窗,可根據外界風力、風向控制窗口開合與方向;斯隆巡天望遠鏡以及一米紅外太陽望遠鏡[3]的擋阻風板對減小風振起到較好的作用。
麗江2.4 m望遠鏡通過預留大面積多組側窗進行熱控制(圖1)。原來設計的16扇大面積側窗,需通過人工搖動機械搖柄拉動細鋼絲開關側窗,操作平臺較高且費時,有安全隱患,另外細鋼絲易絞合到一起且易斷(圖2(a))。現階段側窗要么全開,要么全關,僅依靠人為經驗,未考慮降水、云量、風速、濕度等外界氣象因素的影響且沒有氣象預警[4]。風速對望遠鏡的擾動會影響觀測,通常天文望遠鏡只能在四級風以下正常工作[5]。考慮到上述實際情況,本文開發了圓頂側窗的自動化控制系統,能夠實現自動、多通道控制,并依據氣象條件智能化控制側窗的開合。在滿足所有氣象設定閾值且風速較小的情況下,側窗全部打開;一旦超過某一氣象閾值,側窗全部關閉;滿足閾值且風速較大的情況下,迎風面關閉,只打開背風面側窗,能極大地降低對望遠鏡的擾動。通過精確的自動化控制,系統運行穩定可靠,提高了望遠鏡的安全操作性能與觀測效率。
側窗有多種不同的改造形式,在目前較小改動的情況下,一方面要實現側窗的自動化控制,另一方面要考慮不影響圓頂整體結構與外觀。曾考慮過不需要改動原側窗僅用電機驅動鋼絲的方案,但存在細鋼絲絞合到一起的可能,也考慮過改造為可調風閥的百葉窗形式,但密封性較差。最后選用依靠固有的圓頂鋼架與龍骨,在圓頂外側依照圓頂曲率搭建曲面滑動導軌(圖2(b)),側窗在導軌上向兩側開合,然后利用電機連接鏈輪驅動鏈條。

圖1 麗江2.4 m望遠鏡圓頂結構[6]
Fig.1 The structure of dome at Lijiang 2.4m telescope[6]

圖2(a) 原來的側窗;(b) 改造后的側窗外觀
Fig.2(a)The old Windows-Blinds; (b) profile of new Windows-Blinds
目前側窗共有16扇,每個節點控制兩扇側窗,分8組控制側窗的開關,這樣能減少控制網絡的負荷。麗江2.4 m望遠鏡的超半球圓頂內徑達13 m,因此若選用串口線或有線以太網長度至少為20 m,且線纜過多,因此根據圓頂結構選用無線網絡進行控制。除一對一控制外,還要解決一對多控制、單獨控制與整體控制的問題。針對現場調試與維護的問題,除遠程網絡控制外,還要考慮其他控制通道、網絡穩定性以及掉電等,并能有效根據電機調節步長與速度。因此,側窗的控制系統架構采用基于STM32的嵌入式控制板現場控制、無線網絡通信的方式,可通過USB轉串口或者手柄實現本地調試與控制。它包括上位機模塊、WiFi模塊、CH340G模塊、手柄控制模塊、主控芯片、電機驅動模塊和電機模塊,以及外圍輔助電路等幾大模塊。上位機即遠程控制主機,它作為服務器端發送命令和接收下位機的狀態信息,同時在網絡上調用氣象與望遠鏡數據庫,解析字符串與比較閾值,自動控制圓頂及側窗的開關,并提供警報便于人工干預,系統架構如圖3。

圖3 側窗自動化控制構架圖
Fig.3 The architecture of Side-Windows control system
下位機電路的主控芯片采用基于ARM Cortex-M 內核的32位微控制器STM32F103C8T6[7],它有3個串口端,分別采用串口1通過CH340G和計算機通信,串口3和WiFi模塊相連,通過中斷GPIO口和手柄電路相連,通過PWM口、普通GPIO口和電機驅動模塊相連。WiFi使用ESP8266模塊[注]https://www.espressif.com/zh-hans/products/hardware/esp8266ex/overview,它內置了TCP/IP協議棧,通過串口USART3與STM32通信。如圖4 ESP826模塊有STA,AP,STA+AP 3種模式,本文選用STA模式。ESP8266模塊通過路由器連接到網絡,實現無線網絡通信。

圖4 ESP8266控制模塊
Fig.4 ESP866 control module
CH340G為USB轉串口模塊,通過它將下位機程序燒錄到STM32板卡中。手柄模塊包含手柄電路、RJ11、PC817光耦電路幾部分,起手柄電壓轉換與信號隔離的作用,并將控制信號穩定地連接到STM32的輸入輸出口。
如圖5,電機驅動模塊通過DRV8825芯片驅動兩個步進電機,通過電機步數調節側窗到位與否。STM32通過PWM口、普通GPIO口和電機驅動模塊相連。STEP引腳產生脈沖供給驅動芯片,脈沖由STM32內部PWM生成。M0,M1,M2為細分設置引腳,DRVEN連接至STM32做使能設置,DIR為驅動方向控制。電機采用軸徑為8 mm、電流為2.5A的插線式兩相四線57BYGH步進電機,電機走一步是1.8°,一圈為200步,采用全步進方式驅動,通過調節PWM的時鐘頻率與脈沖數調節電機的速度與步長。

圖5 步進電機驅動DRV8255模塊
Fig.5 The DRV8255 stepper driver
下位機軟件利用STM32庫函數V3.5來開發。側窗控制板的軟件主要包含GPIO、串口、定時器、中斷等基本設置,WiFi模塊連接、電機驅動底配置、協議定義、網絡通信等控制。
下位機軟件中自定義數據幀格式為 “:F*#”,其中 “:F” 表示幀頭; “#” 表示幀尾;“*” 表示幀內容。接收到上位機的第1個字符是 “:”,表示接收到有效數據;最后一個結束的是 “#”,表示一幀數據傳輸完成,等待下一幀數據傳輸。解析第3個字符并執行相關指令與內部調用的函數,控制指令如表1。

表1 指令控制集Table 1 The instruction set of Side-Windows control
WiFi設置界面用于下位機,主要是將服務器端的IP、端口、路由、密碼這些字符串轉換為相關格式寫入閃存(Flash),利用聯合體共享內存和內存長度為其最大成員的內存長度這兩個特點,即使斷電也不會丟失這些信息,在聯合體中包含結構體,結構體中含有WiFi設置界面的Name,Code,IP 3個變量,通過指針將上位機傳遞到聯合體,其長度為最大成員長度,然后利用Flash接口函數寫入。
控制軟件首先對GPIO、時鐘、定時器、中斷、串口引腳與串口通信設置參數,完成初始化設置,再對兩個DRV8255引腳進行設置。完成這些基本設置后,程序對串口1、3的布爾類型的數據幀標志位bFlagRun,bMoterRun分別設置初始值為false,然后兩個串口等待數據的到來。接收到一幀數據時,數據幀標志位設置為true,接著解析數據幀內容,如果符合自定義指令,則執行相應操作,如果不符合則直接清除緩存并把標志位設置為false。最后檢測到數據幀尾為 “#”,完成整個數據幀的處理,將緩存清除并設置標志位為false,然后等待下一幀數據。控制流程框圖如圖6。
STM32控制板通過WiFi模塊ESP8266與上位機采用TCP通信。STM32板即下位機作為客戶端,上位機作為服務端,一個主機控制8塊STM32板。上位機軟件在Win7下采用C#4.0編寫,使用Visual Studio 2010集成環境開發。
上位機主動通過執行及查詢指令到STM32板,STM32板執行相應的指令動作,把實時狀態反饋回上位機。如圖7(a)控制板自動通過AP獲取該網段的IP,考慮到WiFi的IP會因斷電或信號強弱等改變,使用字典(Dictionary<>)將連接的相關字符串(String)與套接字(Socket)綁定,同時每一個字符串String對應一個線程,通過哈希表的鍵值映射實現[8]。8個節點通過8個線程管理,每一個節點的斷開與連接不影響其他節點。

圖6 控制流程框圖
Fig.6 The control flow of STM32 board
如圖7(b),上位機服務器端界面啟動后,在線列表中列出連接到下位機客戶端的IP情況,每一個套接字有對應的線程管理。主界面主要包含狀態查詢與命令發送,可以控制一個板卡節點單獨開關側窗,也可通過遍歷字符串綁定套接字發送開關指令到每一個節點。可能因節點IP的變動,要通過節點查詢指令 “:F?#” 的反饋字符串 “:FN#” 的 “N” 值截取來判斷IP對應的側窗編號。

圖7(a) WiFi設置界面;(b) 上位機控制界面
Fig.7(a) WiFi setting interface; (b) the host computer interface
側窗有4種控制模式:手柄控制、本地串口控制、遠程控制和自動控制。上文介紹了前3種控制模式,而自動控制調用了望遠鏡及氣象數據庫:降雨、云量、濕度、風速、風向等氣象參數都影響圓頂天窗、側窗的開合與天文觀測。利用已有的望遠鏡及氣象數據表TCSStatusNow[9],通過定時器每5 min讀取一次最新氣象參數以及望遠鏡方位值。如果望遠鏡方位值為null,表示望遠鏡沒有開啟或者出錯,執行自動關閉。在望遠鏡方位有數值的情況下,通過云量、降水、濕度、風速等氣象參數設定開啟和關閉的閾值,自動判斷側窗的開關,一旦上述任何一個氣象參數值超過設定關閉閾值就自動關閉側窗,且在天窗打開時通過蜂鳴器報警,便于人工對望遠鏡進行保護操作。滿足以上所有開啟閾值(無降雨、云量低、濕度低、風速 < 4 m/s),將打開所有側窗。其他條件符合且風速適中(4 m/s 大天窗編號為0,側窗節點編號順時針從1到8,則第N個節點對應的角度θN為 θN=Az+45N. 因為氣象參數風向范圍為0°~360°,而望遠鏡方位為-180°~360°,為了保證范圍一致,需要把θN轉換為0~360°,反求出最靠近風向的節點N,再根據查詢節點編號 “:FN#” 的N值執行迎風面和背風面的側窗開合。 圓頂側窗自動控制系統解決了側窗的機械改造與驅動、自動控制和多組控制、智能判斷等問題。該系統通過WiFi模塊、CH340G、手柄實現側窗的多通道控制,調用氣象與望遠鏡數據庫及閾值判斷,實現了麗江2.4 m望遠鏡圓頂的側窗自動化與智能化控制,并有效減少風對望遠鏡的振動。經過兩個月的試運行,該系統穩定、可靠,能滿足側窗的自主運行與人為控制。 致謝:感謝張瑞龍老師、業凱老師在圓頂側窗機械設計與安裝上給予的幫助。6 結果和討論