CSNS 质子束流位置监测器 数据转发的设计与实现 赵东旭,肖亮,章红宇,王修库, 段依梦 核探测与核电子学国家重点实验室 中国科学院高能物理研究所 (PPT 代讲人:肖亮 )
概要 中国散裂中子源 (CSNS) 简介 BPM 简介 BPM 电子学 BPM 数据获取软件 组成及功能 软件开发环境 原始数据格式 BPM 数据转发的设计与实现 需求分析 方案设计 程序实现 数据转发格式 数据转发性能测试
中国散裂中子源 (CSNS) 简 介 中国散裂中子源( China Spallation Neutron Source, CSNS ) 由一台 80MeV 负氢直线加速器、一台 1.6GeV 快循环质子 同步加速器、两条束流输运线,一个靶站和 3 台谱仪及 相应的配套设施组成。 中国散裂中子源( CSNS )的建成,将成为发展中国家 拥有的第一台散裂中子源,并进入世界四大散裂中子源 行列,为国内外科学家提供世界一流的中子科学综合实 验装置,以确保中国在中子科学领域内的先进地位。
BPM 简介 质子束流位置监测器( Beam Position Monitor, BPM )是 CSNS 快循环质子同 步加速器中最重要的束测元件之一。 BPM 用来测量、计算和记录质子束流在束流管中的位置信息。 BPM 系统包括 32 个 BPM 探测器测量点及相应的电子学和数据获取软件。 BPM 系统框架
BPM 电子学 BPM 电子学设计采用 6U VME 规范 每个测量点的 A 、 B 、 C 、 D 四路信号通过几十米长电缆接入一个 VME 插件的前面板 每个 VME 机箱预计放置 8 个测量点的插件,整个环路 32 个测量点共计 4 个 VME 机箱 每个机箱插件的电子学数据通过 VME 总线汇总到机箱控制器上 机箱控制器的型号为英国 Concurrent 公司 VP B14/ BPM 电子学 束流管截面示意图
BPM 数据获取软件 BPM 数据获取软件主要分为三部分: VME 机箱控制器程序 接收配置参数,配置电子学,读出电子学数据并将数据通过网络发送给上位 机的控制及处理程序。 上位机控制及处理程序 网络发送配置参数给 VME 控制器程序,接收电子学数据,并将数据进行组装、 存盘和在线显示,并通过网络将电子学数据发送给数据转发程序。 数据转发程序 该程序通过网络接收上位机发送的数据,并将数据转换成一定格式转发到速 器控制系统的调束软件。 BPM 数据获取软件组成及相互关系
BPM 数据获取软件 软件开发环境 : 数据转发程序 操作系统: Linux 程序语言: C 语言 调用工具: Ezca 上位机控制及处理程序 操作系统: Win7 程序语言: LabVIEW2013 (调用 C dll) C 语言(实现具体 功能的 dll ) VME 机箱控制器 (VP B14/433) 程序 操作系统: Win XP 程序语言: C 语言
BPM 数据获取软件 BPM 系统共有三种取数模式分别为: 环闭轨模式( COD Mode ) 逐束团模式( TBT Mode ) 单次触发逐束团模式( Single trigger TBT Mode )。 其中 COD 模式需要在运行过程中及时将获取到的数据转换为 PV 量格式, 并将全部或部分数据在线转发给加速器控制系统供调束软件使用。
BPM 数据获取软件 电子学原始数据以一个电子学 BPME 插件为最小单元,数据宽度为 32bit : 数据头部分包含插件数据头标志、插件地理地址等信息; 数据部分包含加速器 T0 计数、触发号以及根据 A 、 B 、 C 和 D 4 个通道电荷数据计算出 来的束流中心的位置( X , Y )坐标(即 XData 和 YData ); 数据尾部分包含插件数据尾标志、插件地理地址以及传输字节数等信息。 COD Mode 电子学数据格式
BPM 数据转发的设计与实 现 需求分析: 加速器控制系统基于 Linux 下的 EPICS ( experimental physics and industrial control system )软件架构。 EPICS 是用于构建分布式控制系统并对其进行操作的软件架构。 EPICS 系统使用专为高带宽和软实时应用设计的信道访问 CA ( channel access )网络协议,在各 种计算机之间进行通信。 EPICS 的服务器端通常被称为输入 / 输出控制器 IOC ( input/output controller ), IOC 与输入输出 设备连接并且完成控制任务。 IOC 利用 CA 协议将这些输入输出变量以进程变量( process variable , PV )的形式发布到客户端, 即各计算机终端。 要求 BPM 数据获取软件采用上传 PV 量的形式转发带 T0 计数信息的 BPM 测量数据, 供调束软件使用。
BPM 数据转发的设计与实 现 数据转发方案的介绍: 转发数据到 EPICS 系统的手段多种多样,比较经济和 方便的手段有两种: CALab 工具的使用 EZCA ( E-Z (Easy) Channel Access )工具的使用
BPM 数据转发的设计与实 现 CALab 工具的使用 CALab 是 LabVIEW 与 EPICS 之间用户友好、轻量级、高性能的接口。 是由 BESSY 实验室开发的第三方软件。 CALab 能够简单方便地创建和读 / 写 EPICS 变量,并且使用户事件与 EPICS 联系起来变得容易。 在该软件中, EPICS 时间戳、状态、可选 PV 域等属性绑定在一起做为 结果输出避免了数据属性的导出不一致。 用户使用 CALab 能够很容易地搭建程序并运行,而不需要额外的服务。
BPM 数据转发的设计与实 现 EZCA ( E-Z (Easy) Channel Access )工具的使用 EZCA 是 EPICS 控制软件的 C 语言调用工具,能实现对 EPICS 中的 PV 变量进行 读写,最常用的函数是 caget 、 caput 和 camonitor 函数。 EZCA 的安装比较简单,所需要的工具插件不多,编译过程较少出现错误 情况。 EZCA 是能在 C 语言程序中使用的接口工具,因此应用范围广泛。 EZCA 使用简单明了,只需要对应好函数格式,调用相应函数。
BPM 数据转发的设计与实 现 数据转发方案的选择: 虽然 CALab 和 EZCA 都可以实现数据转发,但往往传递数据量较小的控制 变量,能否用于较大数据量的数据获取软件,则需要对性能进行仔细研究。 通过实测发现 : Windows 操作系统下使用 LabVIEW 程序语言和 caLab 工具上报数据的性能大约为 0.01 秒上报一个大小为 20 个的 int 型数组,不一定能满足 BPM 数据转发最终需求。 Linux 操作系统下使用 C 语言和 EZCA 工具转发同样的数据的性能非常高,达到 2 个微 秒。 因此, BPM 数据获取软件的数据转发程序采用了 EZCA 工具,以更新 EPICS 控制系统 PV 量的方式转发位置信息数据。
BPM 数据转发的设计与实 现 BPM 数据转发程序实现 : BPM 数据转发程序是在 Linux 操作系统 上实现的。 采用的是 C 程序设计语言实现: 接收上位机采集的数据。 将数据转换成一定的数据转发格式 调用 EZCA 工具转发给加速器控制系统的 调束软件。 具体的程序流程如右图所示: BPM 数据转发程序流程
BPM 数据转发的设计与实 现 数据转发格式: 整个 BPM 系统共 4 个区,每个区 8 个测量点。 每个测量点的 XData 和 YData 分别对应 1 个 PV ,共定义了 64 个 PV 。 每隔一定时间上报一次 T0 的完整数据。 1 区: R1BPM01: X(n, m, ………) R1BPM01: Y(n, m, ………). R1BPM08: X(n, m, ………) R1BPM08: Y(n, m, ………) 2 区: R2BPM01: X(n, m, ………) R2BPM01: Y(n, m, ………). R2BPM08: X(n, m, ………) R2BPM08: Y(n, m, ………) 3 区: R3BPM01: X(n, m, ………) R3BPM01: Y(n, m, ………). R3BPM08: X(n, m, ………) R3BPM08: Y(n, m, ………) 4 区: R4BPM01: X(n, m, ………) R4BPM01: Y(n, m, ………). R4BPM08: X(n, m, ………) R4BPM08: Y(n, m, ………) 其中: n 表示 T0 计数, m=20, 表示每个 T0 有 20 个数据。后面是 20 个位置数据。
BPM 数据转发的设计与实 现 对于 EZCA 传递 EPICS 系统的 PV 量的值的性能评估主要 作了两方面的测试: 对 EZCA 工具本身性能进行了测试 对数据转发程序在 BPM 数据获取系统整体运行环境中的 性能进行了测试
BPM 数据转发的设计与实 现 countduration(s)inter(/per pv ms) rate(MB/s) 表 1 EZCA 传递一个 pv 量的测试 countduration(s)inter(/per pv ms)rate(MB/s) 表 2 BPM 数据获取系统数据转发性能测试 从表 1 可以看出, EZCA 连续转发一个完整 PV 量,即一个 T0 计数, 一个数据个 数,以及 20 个位置数据的数组,所需的时间间隔大约为 2.0μs 。 从表 2 可以看出, BPM 数据获取软件的数据转发性能为连续转发一个 PV 量即 一个 T0 计数、一个数据个数计数以及多个位置数据的数组,所需的的时间 间隔大约为 500μs 内。
BPM 数据转发的设计与实 现 总结: BPM 数据获取 PV 转发程序的性能能够满足加速器物理需求。 通过优化和改善 BPM 数据获取软件整体的运行和处理能力,还能提升软 件的数据转发性能。 性能提升手段: 在网络接收与 PV 转发之间增加缓存 优化网络传输数据的性能 ……
谢谢!