FEI设备暗场倾斜的DM-Script命令访问方法咨询
FEI电镜暗场倾斜的DM-Script控制方案
针对FEI设备暗场倾斜的DM-Script控制需求,结合你遇到的现有命令问题,以下是直接对应硬件偏转器的解决方案:
核心问题分析
FEI设备的暗场倾斜由beam LX/beam LY/beam UX/beam UY四个偏转器直接控制,但常规束倾斜命令无法关联这些硬件参数:
EMGetBeamTilt(x,y):仅读取成像模式下的束倾斜,不关联暗场倾斜的偏转器参数EMGetProjectorShift:GMS 1.x版本不支持该命令EMSetBeamTilt(x,y):通过抽象层控制,在FEI设备上存在明显延迟和迟滞,且无法同步硬件旋钮状态
直接控制FEI偏转器的脚本方案
1. 读取暗场倾斜的偏转器数值
使用EMGetDeflectorValue命令直接读取对应硬件偏转器的当前值,该命令在GMS 1.x及以上版本均支持:
// 读取FEI暗场倾斜的四个偏转器参数 number lx, ly, ux, uy EMGetDeflectorValue( "beam LX", lx ) EMGetDeflectorValue( "beam LY", ly ) EMGetDeflectorValue( "beam UX", ux ) EMGetDeflectorValue( "beam UY", uy ) // 输出结果到控制台 Result( "暗场偏转器当前值:\n" ) Result( "beam LX: " + lx + "\nbeam LY: " + ly + "\nbeam UX: " + ux + "\nbeam UY: " + uy + "\n" )
2. 设置暗场倾斜参数
使用EMSetDeflectorValue直接写入目标值,相比EMSetBeamTilt响应更快,无迟滞:
// 设置暗场倾斜的目标参数(根据需求调整数值) number target_lx = 0.2, target_ly = 0.0 number target_ux = -0.2, target_uy = 0.0 EMSetDeflectorValue( "beam LX", target_lx ) EMSetDeflectorValue( "beam LY", target_ly ) EMSetDeflectorValue( "beam UX", target_ux ) EMSetDeflectorValue( "beam UY", target_uy )
3. 同步硬件旋钮与脚本状态
通过定时读取偏转器值,实现硬件旋钮操作与脚本状态的实时同步,示例如下:
// 定时同步函数:每100ms读取一次偏转器状态 void SyncDarkFieldTilt() { number lx, ly, ux, uy EMGetDeflectorValue( "beam LX", lx ) EMGetDeflectorValue( "beam LY", ly ) EMGetDeflectorValue( "beam UX", ux ) EMGetDeflectorValue( "beam UY", uy ) // 可根据需求更新UI组件或记录状态,此处以控制台实时输出为例 Result( "实时同步: LX=" + lx + " | LY=" + ly + " | UX=" + ux + " | UY=" + uy + "\r" ) } // 启动定时同步(100ms间隔) number syncTimer = AddMainThreadTimer( "SyncDarkFieldTilt", 100 ) // 若需停止同步,执行以下命令: // RemoveMainThreadTimer( syncTimer )
注意事项
- 偏转器数值的单位取决于设备配置,通常为毫弧度(mrad)或相对百分比
- 部分FEI设备可能对偏转器参数有范围限制,超出范围会被自动截断
内容的提问来源于stack exchange,提问作者user6406828
相关产品推荐
相关产品推荐

