2. 中国科学技术大学 合肥 230026
2. University of Science and Technology of China, Hefei 230026, China
中性束注入加热是托卡马克上对等离子体进行外部加热和维持的主要手段之一,强流离子源是中性束注入器(Neutral Beam Injector, NBI)[1]系统的核心部件之一。射频离子源因没有灯丝结构,具有无电极污染、使用寿命长、稳定性好、可重复性高等优点,成为未来聚变实验中性束注入系统稳态、强流离子源首选。
物理实验与工业控制系统(Experimental Physics and Industrial Control System, EPICS)[2]是20世纪90年代初,由美国洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory, LANL)和阿贡国家实验室(Argonne National Laboratory, ANL)等联合开发的大型控制软件系统。EPICS提供多种免费开发工具,程序稳定性好、易维护,独特的通信协议便于增删硬件和扩展控制功能,现已广泛应用于粒子加速器领域[3]。
本文设计和实施的射频离子源控制程序(RF (Radio Frequency) Center Control, RCC),便于操作人员简单有效地设置射频离子源每个硬件模块的时序和幅值,并实时反馈各硬件系统状态。
1 射频离子源硬件结构射频离子源[4]的结构如图 1所示。RCC控制对象包括离子源中的进气装置、启动灯丝、弧压、射频功率源、水冷系统、多种诊断系统和引出加速系统等。控制程序需要提供幅值和时序的设置窗口,计算增益并发送给定时系统。定时系统通过多个PXI板卡连接离子源各组成硬件,统一输出为数字信号或幅值为0−10 V模拟信号给各硬件模块。硬件驱动程序在LabVIEW中开发完成。各子系统反馈的实验数据通过PXI-6289采集卡进行数据采集,并实时显示在控制界面。
![]() |
图 1 射频源结构图 Figure 1 Structure diagram of the RF source. |
射频离子源控制系统由运行于控制室的主控制程序RCC、数据处理系统、数据服务器,运行于实验现场的定时系统、采集系统[5-6]和更底层的电源系统、诊断系统组成。目前诊断主要通过多普勒频移光谱(Doppler Shift Spectra, DSS)和朗缪尔探针实现。如图 2所示,定时系统向各子系统提供统一的时序和幅值输出;采集系统对各系统提供的电压和电流信号进行采集,并将采集到的数据发送到数据服务器进行数据存储,同时发送给RCC进行实时波形显示;数据处理系统对实验数据进行分析处理,并将处理结果自动存储到Access数据库中。
![]() |
图 2 射频源控制系统结构图 Figure 2 System structure diagram of the RF control. |
RCC提供人机交互界面,供试验人员监视并控制整个实验过程。用户在控制界面中实现对各子系统时序和幅值的设置、实验运行模式的设置以及与其他程序的通信。RCC通过网络通信将设置信息发送给定时系统,定时系统将配置部署给底层硬件,并反馈实时故障信息。最新的实验炮号从数据服务器获取,并在RCC控制界面实时显示数据采集系统采到的波形。
根据RF源的实际运行需求,RCC需要满足如下功能:
1) 良好的人机交互界面:为操作人员提供简单、直观的参数设置界面;可以对装置整体运行进行调试,也可以对系统某个硬件设备进行单独调试。实时检测所有硬件设备状态,发现故障及时报警,且能够远程复位硬件状态。
2) 与其他功能模块通信:从数据服务器获取实时炮号信息;将操作人员配置的时序和幅值信息发送到定时系统;显示采集系统得到的波形;获取数据处理系统分析的结果;获取定时系统反馈的故障信号。
3) 具有良好的扩展性:对未来控制系统结构和硬件设备的变动具有良好的支持。
3 控制程序设计 3.1 总体设计方便配置:离子源处于测试阶段,对灵活性的要求很高,需要能够对某个硬件模块单独测试,也可以整体运行。而最终的设计目标是实现稳态的长脉冲,所以对脉冲时长的修改是非常频繁的,而脉冲长度涉及到的设备很多,手动修改非常容易出错。离子源产生等离子体后,需要启动高压电源加速,加速时刻的调整往往是多个相关时序整体平移,如果进行手动修改同样很繁琐而且很容易出错,严重情况下会损坏设备,需要针对性地优化交互方式。
可视化:硬件时序之间的相对关系,从输入框的值中不能很明显地看出来,针对此问题,使用BOY (Best OPI Yet)控件绘制了动态的设置波形,可以直观地显示各硬件时序的先后关系、幅值大小等,并提示不合理的输入。长脉冲放电时需要实时关注设备的运行状态,需要将对采集系统获取的关键设备状态,实时显示在控制界面上,这里需要将LabVIEW开发的采集系统接入EPICS网络。
3.2 实现环境人机交互界面在Windows环境下开发,CSS [7-9]集成了对EPICS通道访问协议(Channel Access, CA)的支持,支持Jython脚本扩展控制功能。可通过在CSS中添加Pydev插件的方式方便Jython调试。
3.3 模式设置从用户使用的抽象层次上进行划分,按照设置覆盖范围的从大到小,分为模式设置、批量修改、高压时刻平移和单独修改。
离子源调试阶段没有固定的放电模式,比如进气测试模式只有两个进气口工作,灯丝测试模式没有进气只有启动灯丝等。针对此问题,使用BOY控件实现了二级树形菜单来方便操作。可以对相关设备批量设置,也可以对任意一个硬件设备的启动与否进行单独控制。随着实验的运行,会将常用的模式记录下来,进一步简化操作。
界面组件间的通信通过本地数据源来完成,数据源由多个过程变量(Process Variables, PV)组成,PV是用户在任何位置都可访问的全局变量,也可以与某个变量绑定。通过“loc://”前缀加上用户自定义的PV名称,来创建或者访问数据源中变量,如果一个PV第一次被访问则会创建这个变量。树型菜单通过BOY的Check Box控件实现,同一根下的所有子树,关联同一个Int类型的PV,设置不同的Bit位。根节点关联是另外一个PV。PV变量值的改变可以触发Jython脚本,触发的PV名会自动存入“triggerPV”变量中。在树形菜单的处理脚本中,通过“triggerPV”变量判断当前点击的是根节点还是子节点。例如触发的是根节点,会根据根节点当前状态决定子树是全部选中还是非选。没有选中的控件将不显示在界面中,也不参与后面的批量修改和配置信息发送。
3.4 批量修改和高压时刻平移等离子体激励和引出过程对控制系统的实时性有很高的要求,错误的启动次序或不合理的时长会损坏实验装置。
经常需要进行的操作是延长或者缩短某个装置的时长,然后其他模块的时间相应调整。图 3是一个批量修改的例子,如果想将RF的第一个平顶时长增加2 s,需要手动修改的输入框有很多。为此设计了一个可以拖动的批量修改工具。把黑色的竖线拖动到想要延长或者缩短的位置,设置步长为2 s,点击“Add”按钮,就可以将竖线右边的所有时序右移2 s,结果如图 4所示,左边的“Sub”按钮是反向操作。
![]() |
图 3 批量修改前的时序 Figure 3 Timing sequences before batch edit. |
![]() |
图 4 批量修改后的时序 Figure 4 Timing sequences after batch edit. |
引出加速系统的启动时刻一般作为零时刻,将辅助竖线拖动到合适的引出时刻,通过点击“Set Zero”按钮将高压和相关的时序整体移动到相应的位置。结果见图 5,ACC作为0时刻移动到竖线位置,其他的硬件保留原本的相对时序关系。
![]() |
图 5 定位零时刻 Figure 5 Positioning at zero time. |
对于某些不想平移的量。可以通过在树形菜单中取消勾选。
可拖动的竖线借助CSS的BOY官方样例中的addAnnotations.py脚本实现,该脚本需要绑定一个XY Graph控件,当拖动竖线之后会改变绑定的PV值,PV值的改变会触发移动辅助线的脚本,通过相对关系计算辅助线的位置。
3.5 单独修改和交互验证批量设置都是多次的单独修改,用户在界面完成时序和幅值等物理参数的设置之后,后台读取通道和增益等配置信息并动态更新波形,以便于直观地显示设备的预期运行时序,同时验证设置值的合理性和安全性,通过后将设置的时序内容格式化成通信字段,通过Socket通信发送给定时系统。
时序的设置信息是需要操作人员手动输入数字,所以会有很多误操作的可能,常见的误操作包括多了或少了一个0、结束时间早于开始时间、非数字内容等。如果输错的值在两侧,通过波形就可以直观地观察到,如果输错的值在中间,会产生错误的时序次序,程序提示错误位置。实践证明通过动态绘制波形和数值验证可以有效避免不合理的参数设置。
绘制波形使用的是BOY中的Polyline控件,计算出要绘制的点的坐标按照[x1, y1, x2, y2]的顺序存入Jython的数组中,通过DataUtil的toJavaIntArray函数将数组转化为Polyline控件可以接受的类型,并设置到控件的points属性中。
3.6 实时波形显示RCC使用的是LabVIEW的数据记录和监控模块(Datalogging and Supervisory Control, DSC)来实现接入EPICS[10]。安装对应版本的DSC之后,创建EPICS服务器,以全局变量为中介绑定采集值和PV。部署EPICS服务器之后,RCC端可以通过多种XY Graph控件读取远程PV值并动态显示波形。图 6是实验的截图,本次实验只有一路进气,进行等离子体激发实验,实验过程中进行DSS诊断并进行实时采集。采集的入射功率、反射功率和气体压强等关键参数实时显示在界面上。
![]() |
图 6 实时波形显示 Figure 6 Display of real-time waveforms. |
现阶段RCC的目标是搭建一个EPICS下服务器/客户端架构的控制程序,下个阶段将基于TCP/IP实现的各离子源控制模块的通信数据相继接入EPICS,依旧使用RCC进行控制。所以RCC当前需要支持两种通信。通过BOY的PV插件,支持EPICS接入。使用Jython的Socket库函数,通过TCP/IP协议与定时系统和数据服务器通信。
根据各控制对象属性的不同,有三种时序幅值设置方式,设置值分别存放于三个数组中。数据接收端[11]使用LabVIEW开发,LabVIEW使用从平化字符串还原控件接收。平化字符串是一个大端存储的一连串二进制位。通过使用Jython中的struct.pack函数,使用合适的配置参数,可以将三个数组中的数值,转换成对应的大端二进制位,并拼接在一起形成通信字段。需要注意的是在每个通信字段开头,LabVIEW需要一个32位无符号的整数,用于存储通信字段的长度。EPICS控制内部使用通道访问协议进行通信,使用过程变量PV替代Socket承载需要通信的信息[7]。EPICS架构下的客户端和服务器可以通过PV名称获取远程或本机的PV值,RCC界面上各组件间的通信也是通过PV完成。
如图 7所示,为了同时支持两套通信架构,并减少原本基于TCP/IP通信的子控制系统接入EPICS后对RCC的修改,设计了一套灵活、分层的通信方式。需要通信的字段先发到本地PV服务器,再取出PV值,放入Socket中,与远程TCP Server通信。数据的返回也是先用Socket接收,再发送给本地PV服务器,再传递到客户端。通过这样的设计,当某个模块接入EPICS后,与远程的PV服务器通信,只需要删除本地服务器和Socket互传数据的部分即可,RCC的其他部分需要的修改很少。
![]() |
图 7 通信时序 Figure 7 Communication timing. |
本系统是EAST-NBI实验室第一次使用EPICS技术,从射频离子源的实验需求出发,设计了离子源试实验的主控制程序RCC,搭建了相对完整的EPICS架构,并成功应用在射频离子源实验当中。创新点是设计了灵活的多层次的放电模式和时序设置方式,实现了对硬件时序图的动态绘制等功能,实现了友好的人机交互界面,并结合控制系统现状给出了同时兼容TCP/IP服务器/客户端架构和EPICS架构的通信实现方案。在搭建EPICS分布式控制环境后,使用CSS开发的客户端程序相比于在服务器/客户端通信架构下的一般控制程序,有了很大的改进。首先通过独立的PV通信模块大大降低了程序功能的耦合性,不管是添加新的采集端口还是底层控制装置,RCC为了控制新增模块需要进行的改动很小,便于软件维护,并提高了稳定性。其次是有助于界面的美观和提高控制系统的整体性,可以将基于不同底层技术实现的子控制系统,在接入EPICS后统一使用美观的BOY进行控制界面开发。RCC的缺点是占用的存储空间和运行内存都相对较大,换来的是更好的扩展性和稳定性。实验证明该控制程序实现了射频离子源实验的放电模式设置、时序和幅值设置等功能,并可以实时显示波形。相关功能将会在实际运行的过程中持续优化,最终实现高可靠性和易用性。
[1] |
Hu C D, Team NBI. Conceptual design of neutral beam injection system for EAST[J]. Plasma Science and Technology, 2012, 14(6): 567-572. DOI:10.1088/1009-0630/14/6/30 |
[2] |
Kraimer M R, Anderson J B, Johnson A N, et al. EPICS application developer's guide[M/OL]. EPICS Base Release ed. 2009-03-12. http://www.aps.anl.gov/epics/base/R3-14/12-docs/AppDevGuide/
|
[3] |
郑玮. 托卡马克装置控制系统设计与技术研究[D]. 武汉: 华中科技大学, 2014. ZHENG Wei. The study of control system design and technologies for tokamak[D]. Wuhan:Huazhong University of Science and Technology, 2014 http://cdmd.cnki.com.cn/Article/CDMD-10487-1014231666.htm |
[4] |
Wei J L, Xie Y H, Liang L Z, et al. Design of the prototype negative ion source for neutral beam injector at ASIPP[J]. Plasma Science and Technology, 2016, 18(9): 954-959. DOI:10.1088/1009-0630/18/9/13 |
[5] |
Sheng P, Hu C D, Cui Q L, et al. Development of distributed control system for neutral beam injector on EAST[J]. Plasma Science and Technology, 2015, 17(7): 601-606. DOI:10.1088/1009-0630/17/7/13 |
[6] |
盛鹏, 胡纯栋, 宋士花, 等. EAST中性束注入控制系统设计[J]. 强激光与粒子束, 2014, 26(10): 238-243. SHENG Peng, HU Chundong, SONG Shihua, et al. Design of control system of neutral beam injection on EAST[J]. High Power Laser and Particle Beams, 2014, 26(10): 238-243. DOI:10.11884/HPLPB201426.104003 |
[7] |
Kasemir K, Carcassi G. Control system studio guide:for installers and maintainers of CSS[M/OL]. Ridge National Laboratory. 2014-11-18. http://cs-studio.sourceforge.net/docbook/css_book.pdf
|
[8] |
郭冰, 张宁, 徐海霞, 等. TMSR CSS集成开发工具软件的实现与应用[J]. 核技术, 2013, 36(11): 110602. GUO Bing, ZHANG Ning, XU Haixia, et al. Research and implementation of control system studio for TMSR[J]. Nuclear Techniques, 2013, 36(11): 110602. DOI:10.11889/j.0253-3219.2013.hjs.36.110602 |
[9] |
雷蕾, 韩利峰, 徐海霞, 等. EPICS环境下的软件规范管理[J]. 核技术, 2015, 38(6): 060501. LEI Lei, HAN Lifeng, XU Haixia, et al. Software management in EPICS environment[J]. Nuclear Techniques, 2015, 38(6): 060501. DOI:10.11889/j.0253-3219.2015.hjs.38.060501 |
[10] |
徐波, 邱丰, 王光伟. LabVIEW与EPICS数据采集及应用研究[J]. 电子测量技术, 2013, 36(3): 71-75, 88. XU Bo, QIU Feng, WANG Guangwei. Application on data acquisition between LabVIEW and EPICS[J]. Electronic Measurement Technology, 2013, 36(3): 71-75, 88. DOI:10.3969/j.issn.1002-7300.2013.03.016 |
[11] |
Sheng P, Hu C D, Zhao Y Z, et al. The timing system of the neutral beam injector on EAST[J]. Plasma Science and Technology, 2015, 17(5): 425-429. DOI:10.1088/1009-0630/17/5/10 |