13691111138
nybanner

当前位置:首页  -  技术文章  -  DECTRIS SIMPLON 1.8 API:光子计数探测器的标准化控制接口

DECTRIS SIMPLON 1.8 API:光子计数探测器的标准化控制接口

更新时间:2026-05-26点击次数:17

引言

在现代 X 射线和中子科学领域,光子计数探测器技术的革命性进步改变了实验数据采集的效率和质量。瑞士 DECTRIS 公司作为高技术的光子计数探测器制造商,其 EIGER2、PILATUS 和 POLLUX 系列产品凭借优异的性能和可靠性,被广泛应用于同步辐射光源、自由电子激光、实验室 X 射线系统以及工业无损检测等领域。为了实现对这些高性能探测器的统一、高效控制,DECTRIS 推出了 SIMPLON API—— 一个基于 HTTP/REST 架构的标准化接口。
北京泰坤工业设备有限公司作为 DECTRIS 中国区工业及仪器仪表领域总代理,致力于将技术先进的光子计数探测技术与本地化的专业技术支持相结合,为中国工业用户提供从探测器选型、系统集成到 API 开发的解决方案。本文将深入解析 DECTRIS SIMPLON 1.8 API 的技术架构、核心功能和最佳实践,帮助工业用户充分发挥 EIGER2、PILATUS 和 POLLUX 探测器的性能潜力。

SIMPLON API 概述

SIMPLON API 的设计目标是提供一个平台无关、语言无关的标准化接口,使用户能够轻松控制 DECTRIS 全系列光子计数探测器系统。与传统的专有 API 不同,SIMPLON 基于成熟的 HTTP 协议和 JSON 数据格式,无需在客户端安装任何 DECTRIS 专用软件,支持 Python、C#、Java、JavaScript 等所有主流编程语言。

核心设计理念

  1. RESTlike 架构:每个探测器资源(配置参数、状态、命令)都通过URL 进行标识

  2. 语义化 HTTP 方法:使用 GET 读取参数、PUT 修改配置或执行命令、DELETE 删除资源

  3. 自描述性:所有参数都包含数据类型、取值范围、单位和访问权限信息

  4. 一致性:EIGER2、PILATUS 和 POLLUX 系列探测器共享相同的 API 接口

版本控制

SIMPLON API 采用语义化版本控制(MAJOR.MINOR.PATCH):
  • 主版本号:不兼容的 API 变更

  • 次版本号:向后兼容的功能新增

  • 补丁号:向后兼容的问题修正

本文介绍的 SIMPLON 1.8.0 版本是 DECTRIS 最新的稳定 API 版本,支持所有当前生产的 EIGER2、PILATUS 和 POLLUX 探测器。

API 核心架构

URL 结构

所有 API 请求都遵循统一的 URL 格式:

plaintext

://<DCU_IP>/<module>/api/<version>/<task>/<parameter>

其中:
  • <DCU_IP>:探测器控制单元(Detector Control Unit)的 IP 地址

  • <module>:功能模块(detector、monitor、filewriter、stream、system)

  • <version>:API 版本号(如 1.8.0)

  • <task>:操作类型(config、status、command)

  • <parameter>:具体参数或命令名称

主要功能模块

表格

模块功能描述基础 URL
Detector探测器配置、状态查询和采集控制://<DCU_IP>/detector/api/1.8.0/
Monitor低帧率实时图像监控://<DCU_IP>/monitor/api/1.8.0/
FileWriterHDF5 文件写入配置和管理://<DCU_IP>/filewriter/api/1.8.0/
Stream高速实时数据流传输://<DCU_IP>/stream/api/1.8.0/
System系统级配置和管理://<DCU_IP>/system/api/1.8.0/


数据格式

SIMPLON API 默认使用 JSON 作为数据交换格式。对于二维数组数据(如平场校正、像素掩码),则采用特殊的 darray 格式,通过 Base64 编码传输二进制数据。

核心子系统详解

1. 探测器子系统(Detector)

探测器子系统是 SIMPLON API 的核心,提供了超过 80 个配置参数、10 个状态参数和 12 个控制命令,覆盖了从基本曝光设置到高级校正功能的所有方面。

关键配置参数

  • 曝光控制count_time(曝光时间)、frame_time(帧周期)、nimages(图像数量)、trigger_mode(触发模式)

  • 能量设置photon_energy(光子能量)、threshold_energy(阈值能量)

  • 校正功能flatfield_correction_appliedcountrate_correction_appliedpixel_mask_applied

  • 几何参数detector_distance(探测器距离)、beam_center_x/beam_center_y(束斑中心)

  • 高级功能compression(压缩算法)、roi_mode(感兴趣区域)、binning_mode(像素合并)

重要控制命令

  • initialize:初始化探测器(上电或服务重启后必须执行)

  • arm:加载配置并准备采集

  • trigger:软件触发采集

  • disarm:结束采集并写入所有数据

  • abort:立即中止所有操作

2. 监控子系统(Monitor)

监控子系统提供了低帧率(≤10Hz)的实时图像访问功能,适用于实验对准和样品定位。它维护一个图像缓冲区,用户可以通过 HTTP 请求获取最新图像或按 FIFO 顺序获取图像。

主要特性

  • 可配置的缓冲区大小(默认 100 帧)

  • 支持 TIFF 格式图像输出

  • 包含完整的元数据(曝光时间、能量、束斑中心等)

  • 超时机制防止请求挂起

3. 文件写入子系统(FileWriter)

FileWriter 子系统负责将采集的数据写入符合 NeXus 标准的 HDF5 文件。它支持两种 NeXus 格式:传统的 NXmx 2016 标准和最新的 NXmx v2024.2 标准。

关键配置

  • mode:启用 / 禁用文件写入

  • name_pattern:文件式(支持$id变量)

  • nimages_per_file:每个数据文件的最大图像数

  • compression_enabled:启用 / 禁用数据压缩

  • format:HDF5 文件格式

4. 流子系统(Stream)

流子系统提供了高速、低延迟的实时数据传输功能,适用于需要在线数据处理的应用场景。它支持两种协议版本:
  • Stream V1:基于 ZeroMQ 的多部分 JSON 消息(端口 9999)

  • Stream V2:基于 CBOR 编码的单部分消息(端口 31001),性能更高,延迟更低

Stream V2 优势

  • 单消息设计,减少网络开销

  • CBOR 编码比 JSON 更紧凑、解析更快

  • 支持多客户端连接(轮询分发)

  • 包含完整的元数据和图像数据

5. 系统子系统(System)

系统子系统提供了探测器控制单元的系统级配置和管理功能,包括:
  • 网络配置(IP 地址、DNS、MTU 等)

  • 日期时间设置(NTP 同步、时区)

  • 系统命令(重启、关机、日志收集)

完整数据采集流程

使用 SIMPLON API 进行数据采集的标准流程如下:
  1. 初始化探测器
    python
  2. import requestsimport json
    DCU_IP = "192.168.0.100"API_VERSION = "1.8.0"# 初始化探测器response = requests.put(f":///detector/api//command/initialize", json={})response.raise_for_status()
  3. 配置采集参数
    python
  4. # 设置曝光时间为0.1秒response = requests.put(
        f":///detector/api//config/count_time",    json=)
  5. # 设置采集100帧图像response = requests.put(    f":///detector/api//config/nimages",    json=)
  6. # 设置触发模式为内部触发response = requests.put(    f":///detector/api//config/trigger_mode",    json=)
  7. 配置数据接口
    python
  8. # 启用FileWriterresponse = requests.put(
        f":///filewriter/api//config/mode",    json=)
  9. # 设置文件模式response = requests.put(    f":///filewriter/api//config/name_pattern",    json=)
  10. 启动采集
    python
  11. # Arm探测器response = requests.put(f":///detector/api//command/arm", json={})sequence_id = response.json()["sequence_id"]
  12. # 触发采集response = requests.put(f":///detector/api//command/trigger", json={})
  13. 等待采集完成并下载数据
    python
  14. # 等待采集完成(实际应用中应轮询状态)import time
    time.sleep(15)
  15. # Disarm探测器response = requests.put(f":///detector/api//command/disarm", json={})
  16. # 下载HDF5文件master_file = requests.get(f":///data/my_experiment__master.h5")with open(f"my_experiment__master.h5", "wb") as f:    f.write(master_file.content)data_file = requests.get(f":///data/my_experiment__data_000001.h5")with open(f"my_experiment__data_000001.h5", "wb") as f:    f.write(data_file.content)

高级特性

多阈值能量分辨

DECTRIS 光子计数探测器支持多个能量阈值,能够同时采集不同能量范围的 X 射线信号。SIMPLON API 通过threshold/n/energythreshold/n/mode参数来配置每个阈值的能量和启用状态。对于支持差分模式的探测器,还可以通过threshold/difference/mode参数启用能量差分成像。

高效数据压缩

为了减少数据存储和传输的带宽需求,SIMPLON API 支持两种无损压缩算法:
  • LZ4:通用高速压缩算法

  • BSLZ4:DECTRIS 优化的位洗牌 + LZ4 算法,压缩比更高,推荐用于全帧率采集

精确几何坐标系统

SIMPLON API 定义了两个标准坐标系统:
  • 实验室坐标系:原点在样品中心,Z 轴沿入射束方向,Y 轴向上

  • 探测器坐标系:原点在传感器左上角,X 轴沿快速扫描方向,Y 轴沿慢速扫描方向

API 提供了完整的坐标转换参数,包括detector_orientation(旋转矩阵)和detector_translation(平移向量),确保数据处理软件能够准确计算每个像素的散射角度。

北京泰坤:您的 DECTRIS 工业应用合作伙伴

北京泰坤工业设备有限公司作为 DECTRIS 中国区工业及仪器仪表领域总代理,拥有一支经验丰富的技术团队,能够为中国工业用户提供:
  1. 专业的技术咨询:根据您的应用需求,推荐最合适的 EIGER2、PILATUS 或 POLLUX 探测器型号

  2. 系统集成服务:将 DECTRIS 探测器无缝集成到您的工业检测系统中

  3. API 开发支持:提供 SIMPLON API 的技术培训和定制化开发服务

  4. 本地化技术支持:快速响应您的技术问题,提供现场安装和维护服务

  5. 备件和维修服务:建立了备件库,确保您的系统持续稳定运行

无论是在线质量检测、材料分析还是无损探伤,北京泰坤都能为您提供基于 DECTRIS 光子计数探测器的完整解决方案,帮助您提高检测效率和产品质量。

总结

DECTRIS SIMPLON 1.8 API 为 EIGER2、PILATUS 和 POLLUX 系列光子计数探测器提供了一个灵活且标准化的控制接口。其基于 HTTP/REST 的架构设计使得探测器集成变得简单高效,而丰富的功能和高级特性则满足了从基础实验到复杂工业应用的各种需求。
北京泰坤工业设备有限公司作为 DECTRIS 中国区工业及仪器仪表领域总代理,将凭借深厚的技术积累和本地化的服务优势,助力中国工业用户充分利用 DECTRIS 光子计数探测技术的能力,推动工业检测和材料分析技术的进步。


返回列表
在线服务热线

扫码加微信

技术支持:化工仪器网    sitemap.xml

Copyright © 2026 北京泰坤工业设备有限公司 版权所有    备案号:京ICP备12018226号-3