?

合肥光源飛掃控制系統研制

2024-03-10 05:20張天哲孔安博陳凱陳留國劉功發
核技術 2024年2期
關鍵詞:光柵編碼器控制器

張天哲 孔安博 陳凱 陳留國 劉功發

(中國科學技術大學 國家同步輻射實驗室 合肥 230029)

在使用X射線進行材料表征時,相關掃描實驗可進行多維度、多模態成像以及吸收譜學測試,從而全面、準確地得到樣品內部結構和細節、元素組成和化學狀態[1-2]。合肥光源(Hefei Light Source,HLS)是真空紫外和軟X射線同步輻射光源[3]。目前,HLS的軟X射線磁性圓二色(X-ray Magnetic Circular Dichroism,XMCD)、催化與表面科學和計量等實驗站在進行掃描實驗時,均采用步進掃描模式。步進掃描模式的掃描過程是電機在運動到設定位置時停止,觸發探測器或者傳感器完成數據的采集和記錄,然后再控制電機運動到下一個設定位置,重復上述過程,直到掃描結束。在步進掃描模式中,電機需要經歷多輪的減速、停止與加速過程,由電機運動帶來的死區時間在掃描總用時中占據極大比例,導致掃描過程耗時長,實驗效率低[4-5]。解決這個問題的一種有效方法是采用飛掃模式進行掃描實驗,讓電機在掃描過程中連續運動,并同步采集探測器數據,從而減少掃描用時,提高實驗效率[6]。

目前,國內外已經有一些實驗站正在使用或者正在部署飛掃這種快速連續掃描系統,包括能量飛掃和空間位置飛掃。目前飛掃的實現方式主要有兩種。第一種系統是使用集成了運動控制、位置捕捉并有同步觸發功能的運動控制器,例如西班牙ALBA光源在其BL22線站使用Turbo PMAC控制器實現飛掃[7]。第二種系統的運動控制部分由MAXv、IcePAP等不具有位置捕捉和硬件觸發功能的控制器實現,借助外部計數卡或者同步觸發硬件計算觸發位置并完成觸發,例如BESSY Ⅱ光源、上海光源、ALBA光源的部分線站使用計數卡實現飛掃[8-9];中國臺灣TPS、日本KEK、法國SOLEIL、英國Diamond、美國NSLS-Ⅱ、中國北京HEPS等光源通過基于FPGA的同步觸發硬件實現飛掃[10-17]。綜合考慮兩種方法,為了適應更多種類的運動控制器,本文選擇使用第二種方法。參考SOLIEL和Diamond合作研制的硬件同步觸發系統PandABox設計了基于國產SoM(System-on-module) Alinx-AC7020的同步觸發模塊[18-20]。開發了基于現場可編程門陣列(Field-Programmable Gate Array,FPGA) Zynq7020的硬件同步觸發模塊,并以它為核心構建了包含同步信號采集模塊、同步運動控制模塊、上層軟件控制模塊的飛掃控制系統。我們將這套飛掃控制系統應用于合肥光源XMCD實驗站,實現了單色器能量飛掃實驗,并對X射線吸收譜實驗數據的一致性、穩定性和重復性等關鍵指標做了分析。實驗結果表明,在滿足采譜性能指標的前提下,該飛掃系統可顯著提高實驗效率和用戶體驗。

1 系統設計

飛掃的掃描過程主要包含電機運動和數據采集,為了快速、同步地完成掃描,本文設計的飛掃系統,主要由同步運動控制模塊、同步數據采集模塊以及上層軟件控制模塊組成。系統結構如圖1所示,其中運動控制器負責按照設定的軌跡運動控制多軸電機同步運動,并通過編碼器采集運動機構的位置編碼信號發送給同步數據采集模塊內的硬件同步觸發模塊。硬件同步觸發模塊根據編碼器信號計算電機運動位置,依據預先設定的位置列表產生觸發信號,提供給探測器或傳感器觸發數據采集。

圖1 飛掃系統結構圖Fig.1 Structure diagram of the proposed on-the-fly mode control system

HLS的控制系統是基于實驗物理及工業控制系統(Experimental Physics and Industrial Control System,EPICS)的分布式控制系統[21]。運動控制器、硬件同步觸發模塊、探測器或傳感器的控制信號以及設備狀態信息都通過EPICS網絡傳送。掃描控制軟件基于Bluesky架構,Bluesky是由美國NSLS-Ⅱ和APS實驗室共同研發的用于科學數據采集、管理和分析的軟件組件,是建立在硬件抽象層之上的數據收集框架[22]。飛掃系統底層通過EPICS跟硬件進行交互,實現掃描方式、掃描范圍、探測器控制、運動控制等參數的控制,探測器的實驗數據采用以太網進行傳輸。上層應用軟件主要實現掃描結果的處理、存儲和顯示。

1.1 同步運動控制模塊

運動控制器負責接收上位機生成的運動路徑,控制多軸電機同步運動。本文選擇Zmotion公司的ZMC464運動控制器為同步運動控制模塊核心。ZMC464運動控制器最多支持64軸同步控制,支持編程以及EtherCAT(Ethernet for Control Automation Technology)接口,支持多軸插補功能,最大脈沖頻率為10 MHz,能提供給電機較高的轉速和位置精度。驅動器選擇的是支持EtherCAT總線接口和CiA 402協議的驅動器。電機上的編碼器信號一分為二,一路給同步觸發模塊用來計算位置,產生硬件同步觸發;一路給運動控制器,實現閉環控制。ZMC464運動控制器與多臺驅動電機的驅動器采用EtherCAT主從模式進行通信來實現多軸同步,其中ZMC464為主站,掛載多臺驅動器為從站。

ZMC464運動控制器和EPICS IOC(Input-Output Controllers)之間采用TCP通訊。運動控制器的程序流程如圖2所示?;诙嗳蝿占夹g進行編程,主任務創建新任務后,任務獨立執行,各任務間互不影響。軌跡更新任務在上電后自動創建,循環等待上位機發送的運動軌跡信息,并將這些軌跡點存入運動控制器內的TABLE寄存器;主任務在上電后循環運行,根據上位機指令可以完成軸號選擇、參數設定、運動等功能,當接收到啟動飛掃的指令時創建飛掃任務,依據已設定軌跡完成多軸同步運動,完成運動后飛掃任務結束。

圖2 運動控制器程序流程圖Fig.2 Flowchart of the motion controller program

1.2 同步觸發模塊

同步觸發模塊是為了在電機快速、連續運動時,根據電機的位置同步地產生觸發信號,觸發探測器完成數據采集。同步觸發模塊主要包含Zynq核心、編碼器控制單元、脈沖IO單元、設備監控單元、供電單元其結構如圖3所示。Zynq芯片型號為XC7Z020-2CLG400,包含FPGA programmable logic(PL)和ARM Cortex-A9 processor system(PS),外接主要元器件為DDR3、QSPI-flash、USB串口、SD卡、以太網PHY。

圖3 同步觸發模塊系統結構圖Fig.3 Structure diagram of the synchronous trigger module system

編碼器控制單元包括輸入控制和輸出控制兩部分,支持正交(Quadrature)、同步串行接口(Synchronous Serial Interface,SSI)、雙向同步串行接口(Bidirectional Synchronous Serial Interface,BISS)和數字同步串行協議(EnDat),使用跳線配置編碼器信號類型。輸入控制對接收的外部編碼器信號進行電平轉換后輸入至Zynq的PL編碼器端控制模塊,輸出控制則是將PL端編碼器控制模塊輸出的波形輸出至外部接口。PL中編碼器控制模塊用于與編碼器控制單元通信,提供控制信號、采集編碼器波形數據并解碼得到位置數據,同時也可根據位置序列產生編碼信號送至編碼器輸出。

脈沖IO單元輸入輸出同步脈沖,接收PL端脈沖產生模塊產生的脈沖信號進行轉換輸出單端或差分脈沖,接收外部脈沖信號轉換發送至PL端。PL端脈沖產生模塊與脈沖IO單元通信,提供控制信號、采集輸入脈沖信號,可配置脈沖數、寬度、頻率、觸發條件等參數,產生脈沖信號輸出至脈沖IO單元。

設備監控單元用于采集設備內各類工作電壓的狀態以及風扇轉速和溫度數據,通過I2C跟ZYNQ芯片的PL端設備監控模塊相連接。

PS和PL之間通過可擴展互聯總線(Advanced eXtensible Interface,AXI)互聯,PL端接口配置模塊接收PS端控制需求和數據采集請求,對編碼器控制和脈沖產生模塊提供接口配置參數控制,收集位置數據和設備監控數據,打包后通過AXI總線發送至PS端。PS上運行TCP服務器,上位機可以使用IOC通過TCP對同步觸發模塊進行訪問,通過讀寫映射在用戶空間的PL端寄存器,讀取位置信息和配置參數。

1.3 軟件控制模塊

軟件控制模塊基于Bluesky框架進行開發,其結構如圖4所示。底層的硬件設備通過以太網接入軟件控制模塊,通過EPICS IOC進行控制和狀態讀取。Ophyd層將EPICS PV信息抽象為設備對象,并提供給Bluesky以API接口。在Bluesky中,掃描過程被抽象為Plan,具體為調用實驗需要的硬件對象按照實驗過程執行一系列原子操作來完成整個實驗。Bluesky將飛掃的Plan定義為包括包括kickoff、complete、collect三個函數,其中kcikoff先完成掃描和探測器相關的參數設置然后啟動掃描,complete是等待掃描完成最后執行,collect完成對探測器數據的采集、處理。RunEngine是Plan的解釋器,通過執行設計好的Plan實現多設備聯動完成特定實驗。掃描運行過程中,RunEngine同步將數據和元數據通過Documents的方式拋出,傳遞給多個回調函數,在回調函數中進行數據的實時處理、顯示以及存儲。從用戶系統獲取的包括用戶ID、實驗類型、實驗參數等內容作為元數據同時被存儲,實驗數據和元數據統一打包成HDF5文件格式,HDF5可以處理復雜的數據結構,并支持高性能的數據存儲和檢索。

圖4 軟件控制模塊結構圖Fig.4 Structure diagram of the software control module

2 飛掃系統應用

本文設計的飛掃系統在HLS的XMCD線站完成部署并應用在XAS實驗采譜中?,F場部署示意圖如圖5所示,單色器的電機采用了鳴志公司的SSDC06-ECX-H,電機的編碼器信號接入同步觸發模塊。

圖5 現場部署示意圖Fig.5 Schematic of the on-site deployment

式(1)給出了光柵方程和聚焦關系,其中:α、β分別為光柵的入射角和衍射角;λ是波長;a1是光柵的設計參數;n為光柵線密度;m為衍射級次;r1、r2分別為光柵的入射臂和出射臂[23]。依據出射光能量不同計算出α、β。

光柵單色器光路示意圖如圖6所示,由此可得到平面鏡和光柵偏轉角度的計算公式(2),其中:α、β分別為光柵的入射角和衍射角;θ、φ是平面鏡和光柵的偏轉角度;γ是運動機構的安裝誤差;Xm、XG是平面鏡和光柵的位置,X0m、Lem、θ0m、X0g、Leg、φ0g是初始位置和角度參數由標定得到。

圖6 光柵單色器光路示意圖Fig.6 Schematic of the light path in a grating monochromator

綜合式(1)和式(2)通過能量計算對應波長得到光柵的入射角和衍射角α、β進而計算出平面鏡和光柵的偏轉角θ、φ,進一步得到能量和平面鏡、光柵位置Xm、Xg之間的關系,即按照特定軌跡同步運動光柵和平面鏡就可以連續改變能量。

進行飛掃實驗的時候,控制平面鏡和光柵位置的兩個電機進行同時同步運動。兩軸的聯動運動控制采用連續直線插補運動,飛掃運動過程中,速度設定值為兩個軸的合成速度,XMCD線站光柵-平面鏡位置關系如圖7所示,在常用實驗能量段近似為線性,兩個電機的速度近似勻速。同步脈沖的觸發選擇光柵電機的編碼器作為觸發。

圖7 XMCD線站光柵-平面鏡位置關系Fig.7 Relationship between the grating and mirror position in XMCD

光電流信號采集使用電流計6517B,6517B可以在設定觸發點數量的條件下,通過外觸發進行采集并將采集的數據保存在內部寄存器中,當采集到數量上限時停止接收觸發信號。使用6517B的TRIGGER LINK觸發模式接收同步觸發模塊的TTL輸出信號,進行同步數據采集。

上位機運行掃描控制軟件,其飛掃的軟件流程如圖8所示。用戶在圖形界面上輸入和實驗相關的用戶信息、樣品信息以及掃描相關的起始能量、結束能量和能量間隔。根據掃描起始能量、結束能量以及能量間隔這3個參數計算得到對應的掃描能量點數量,再通過式(1)和式(2)計算得到每個掃描能量點對應的光柵和平面鏡位置,聯合這些位置信息即可得到對應掃描能量范圍的光柵和平面鏡二維運動軌跡。

圖8 飛掃軟件流程圖Fig.8 Flowchart of the on-the-fly mode program

開始掃描后,RunEngine執行飛掃Plan,在Kickoff過程完成對6517B電流計觸發模式、觸發點數的設置以及將掃描軌跡和觸發點參數分別發送給運動控制模塊和同步觸發模塊,其中觸發點參數以相對位置的形式存儲在同步觸發模塊的序列表模塊,在開始掃描前將其內部位置參數設為0與序列表首行位置對齊,設置結束后會給控制器下發開始飛掃的命令,控制器按照寄存器中保存的掃描軌跡驅動兩臺伺服電機同步運動。之后進入Complete過程等待掃描的結束,掃描結束后收集6517B電流計記錄的數據,在圖形界面上顯示掃描結果并將數據以HDF5的格式存入數據庫。

對于上位機下發的觸發點參數,同步觸發模塊將其存儲到序列表模塊中,并在初始狀態指向序列表第一行。掃描過程中,同步運動控制模塊依據能量設置參數改變光柵、平面鏡的位置,同時編碼器將位置信號輸入到同步觸發模塊,同步觸發模塊解碼后得到電機當前位置,將當前位置與內部序列表模塊生成的觸發位置進行比較,若滿足序列表當前行的預設條件則生成觸發信號,觸發6517B電流計記錄當前電流,同時序列表內部指向下一行,等待到達下一個觸發位置再次觸發,直到掃描結束。

3 飛掃控制系統性能測試

3.1 飛掃與步掃對比實驗結果

首先是驗證飛掃系統實驗結果的正確性,即與傳統步進掃描結果相比的一致性。對Fe樣品在能量范圍為690~740 eV、能量分辨率為0.1 eV的條件下分別使用飛掃系統和步進掃描方式進行XAS(Xray Absorption Spectroscopy)實驗。實驗結果如圖9所示,橫軸為掃描能量范圍,縱軸為兩臺6517B采集電流結果相除后歸一化后的值。飛掃系統用時為1 min 50 s,獲得相同結果使用傳統的步進掃描方式需要花費25 min左右。

圖9 XAS實驗的一致性測試結果Fig.9 Results of consistency testing in XAS experiments

可以看出,兩次結果峰形一致、峰位置一致。以步進掃描結果為基準,依據式(3)計算平均絕對誤差和相關系數[24]。平均絕對誤差是兩組數據每個數據點誤差絕對值的平均值,結果越小說明兩條曲線一致性越好;相關系數是兩組數據的線性相關程度,越接近1則兩條曲線越相關即一致性越好。

其中:MAE是平均絕對誤差;r是相關系數;y1、y2是步進掃描和飛掃實驗中6517B采集的電流值。

經過計算,平均絕對誤差結果為0.01,相關系數為0.993,兩條曲線的最高峰半高寬均為3.40 eV,說明使用飛掃模式只需要花費步進掃描十幾分之一的時間就可以得到一致性很高的結果,實驗效率提高了十倍以上。

3.2 穩定性測試

為了測量飛掃系統多次實驗結果的重復性即系統的穩定性,本文對Co樣品在能量范圍275~315 eV,能量分辨率為0.1 eV,使用飛掃系統進行XAS實驗,以相同的運動速度采集了10組數據。為清晰展示,在原始數據上做了上下偏移,實驗結果如圖10所示。

圖10 XAS實驗的穩定性測試結果Fig.10 Results of stability testing in XAS experiments

依據式(4)計算多條曲線的平均絕對誤差,與式(3)不同的是當有多條曲線時,先計算每條曲線與其他曲線之間的平均絕對誤差,然后將它們求平均得到多條曲線之間的平均絕對誤差,平均絕對誤差越接近0說明多條曲線的偏差越小即結果越穩定。

其中:MAE是所有曲線的平均絕對誤差;MAEi是每一條曲線與其他曲線計算出的平均絕對誤差結果;n是曲線數量;m是數據數量。

10條曲線與其他曲線的平均絕對誤差計算結果如表1所示,最后計算10組數據的平均絕對誤差為1.44×10-3,非常接近0,說明在相同實驗條件下使用飛掃模式多次實驗結果重復性高,穩定性好。

表1 每組數據的平均絕對誤差Table 1 Mean absolute error for each group

3.3 不同掃描速度下的實驗結果

對Fe樣品改變不同的運動速度使用飛掃模式進行實驗,分別花費1 min 20 s、1 min 50 s、5 min 5 s在相同能量范圍、相同能量間隔完成三次XAS采譜,得到如圖11所示結果,三次采譜結果峰形一致且峰位置一致。依據式(4)計算三次結果的平均絕對誤差為1.5×10-3,接近于0,可知結果基本一致。因此,本文設計的飛掃系統進行能量掃描受速度影響很小具有通用性,可以根據不同實驗的要求,合理選擇飛掃的運行速度以達到最好的實驗效果。

圖11 XAS實驗不同掃描速度測試結果Fig.11 Results of different scanning speeds testing in XAS experiments

4 結語

為解決合肥光源線站現有步進掃描速度慢、效率低的問題,本文設計開發了一種基于硬件觸發的飛掃系統,基于Zynq 7020設計了硬件同步觸發模塊,并采用EtherCAT總線搭建了同步運動控制模塊,在EPICS架構基礎上采用Bluesky開發了軟件控制模塊,并在合肥光源的軟X射線磁性圓二色實驗站上部署、測試了該系統。實驗結果表明,使用該系統進行XAS能量采譜,單次采譜時間相較于步進掃描模式的幾十分鐘量級縮短至分鐘量級并且能保證吸收譜結果一致,達到了預定的設計目標。本文設計的飛掃系統提高了掃描實驗的實驗效率和用戶體驗,一方面為未來合肥先進光源(Hefei Advanced Light Facility,HALF)線站相關系統的搭建、調試打下了基礎,另一方面由于設計的硬件系統和使用的軟件框架具有良好的可拓展性,可為其他光源的實驗站建設提供參考。

作者貢獻聲明張天哲負責硬件開發,系統測試和調試;孔安博負責軟件開發;陳凱負責測試和實驗數據分析;陳留國負責統方案設計,論文的修改與指導;劉功發負責論文審閱和修改。

猜你喜歡
光柵編碼器控制器
基于FPGA的同步機軸角編碼器
基于PRBS檢測的8B/IOB編碼器設計
CDIO教學模式在超聲光柵實驗教學中的實踐
基于LabView的光柵衍射虛擬實驗研究
JESD204B接口協議中的8B10B編碼器設計
多總線式光電編碼器的設計與應用
模糊PID控制器設計及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器
4V三輸出同步降壓型控制器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合