FAST主动反射面控制系统中节点控制器记录的设计

2014-01-13 02:08吴文庆罗明诚刘佳靖唐鹏毅
核技术 2014年1期
关键词:反射面调用望远镜

吴文庆 罗明诚 刘佳靖 唐鹏毅 王 坚

(核探测与核电子学国家重点实验室 中国科学技术大学近代物理系,安徽省物理电子学重点实验室 合肥 230026)

FAST主动反射面控制系统中节点控制器记录的设计

吴文庆 罗明诚 刘佳靖 唐鹏毅 王 坚

(核探测与核电子学国家重点实验室 中国科学技术大学近代物理系,安徽省物理电子学重点实验室 合肥 230026)

主动反射面是FAST (Five-hundred-meter Aperture Spherical radio Telescope)望远镜的一个重大创新之一,其性能将直接关系到整个望远镜的性能,因此主动反射面的控制需要一个实时高效的控制系统。基于EPICS (Experimental Physics and Industrial Control System)的输入输出控制器(Input/Output Controller, IOC)框架,充分利用EPICS的实时性,根据FAST反射面的控制节点达2 000多个的特点设计了新的记录类型——节点控制器记录,以便于控制器节点IOC的管理以及提高代码的复用,并针对FAST主动反射面密云模型对实际装置进行了仿真、设计和部分测试。

500米单口径球面射电天文望远镜(FAST),EPICS (Experimental Physics and Industrial Control System),记录设计,输入输出控制器(Input/Output Controller, IOC)

五百米单口径球面射电天文望远镜(Fivehundred-meter Aperture Spherical radio Telescope, FAST)[1]是我国正在建造的世界最大的单口径射电望远镜。利用贵州的喀斯特洼坑地形,在洼坑内铺设直径500 m的球冠状望远镜反射面,反射面由三角形的反射面单元拼凑而成,通过主动控制在反射面上形成局部抛物面以汇聚电磁波。

FAST反射面索网安装在外围圈梁(图1),原型有2300个节点,通过节点在索网上安装4600块反射面单元,每个节点下方连接下拉索和促动器装置,促动器再与地锚连接。这2300个节点将分为10-12个分区,每个分区有一个区域控制柜,各分区之间采用以太网连接。

图1 主动反射面结构Fig.1 Structure of active reflector.

主动反射面控制系统的目标是由反射面主控机和2300个节点控制器组成高速、可靠的通信控制网络,每个节点根据反射面主机发出的指令沿球面法线方向调整到正确的位置,照明区域局部实现球面反射面拟合成瞬时抛物面。反射面形成抛物面的性能直接关系到整个望远镜的工作性能。

EPICS (Experimental Physics and Industrial Control System)[2]是开源软件,用户遍布全球,其优良的性能在众多用户的使用中已得到验证。使用EPICS系统对FAST主动反射面控制系统进行构架,如图2所示,整个反射面控制分为三层:最上层为反射面主控层(Active Reflector System Master, ARS Master);中间层为区域控制层(ACU-Area Control Unit),即EPICS核心使用层;最底层为节点控制层(Control Node)。

节点控制层由智能节点控制器组成,一个智能节点可以控制一个或多个节点,每个节点控制器都是一块基于ARM的控制板,控制板上连接节点电机,这样节点控制板就可以接收指令并控制电机,主要实现相应的运转、停止、状态的反馈及自动观测等功能。

图2 基于EPICS的反射面控制结构Fig.2 Structure of EPICS based active reflector control system.

几百个节点控制器组成一个区域,每一个区域由一个区域控制单元来控制。整个2300个节点,共分成10个区域,因此有10个区域控制单元,每个控制单元设计一个输入输出控制器(Input/Output Controller, IOC)来进行控制,这样一个IOC控制200多个节点。

在基于EPICS的FAST望远镜的反射面控制研究中[3],采用官方设计的记录(Record)类型,实际每个节点的PV(Process Variable)数目有23个。同时FAST原型中主动反射面的节点数目众多,为了使每个节点的控制PV量一致,因此设计一个适用于FAST项目的节点控制器记录,减少PV量的数量,便于控制器节点IOC的管理以及提高代码的复用。

1 节点控制器记录设计

在EPICS的IOC设计[4]中,节点控制的软件结构如图3所示。区域控制器(ACU)是基于EPICS框架的节点IOC,通过以太网(现场总线/485总线)与节点控制器连接,通过EPICS CA总线与反射面主控通信。负责接收主控的指令及参数并发送给节点控制器,并接收节点控制器的反馈数据,实时更新节点的相关信息。

IOC中需要修改的文件和程序包含数据库文件、记录支持、设备支持三个主要部分,因此设计一个新的记录,首先需要设计记录的定义和支持,然后根据记录处理方式实现记录支持。最后根据设备的通信协议和方式,定义设备支持加入到IOC软件中。

图3 节点控制器IOC结构示意图Fig.3 Structure of node controller IOC.

1.1 记录定义

记录的定义保存在nodeRecord.dbd文件中,其中包含记录的名称和记录的域(field),以及每个域的相关属性。它的基本格式如下:

menu(name) {

choice(choice_name,"choice_value")

}

recordtype(record_type) {

include "filename"

field(field_name,field_type) {

#访问安全级别

asl(asl_level)

#初始化的值

initial("init_value")

#对域分类

promptgroup(gui_group)

#对该域的描述

prompt("prompt_value")

#是否需要special函数处理

special(special_value)

#定义是否能够通过CA来处理该域

pp(pp_value)

#只在shell命令行中用于指令dbpr

interest(interest_level)

#对整型数据的进制说明

base(base_type)

#当域为字符串类型时,必须提供大小

size(size_value)

#只用于类型为DBF_NOACCESS的类型

extra("extra_info")

#需要定义相应menu选项,选取相应的值

menu(name)

}

record_type记录类型是记录的唯一的名字,在节点控制器记录中,定义为node。EPICS的记录一般都会包含“dbCommon.dbd”,此文件包含一些适用于所有记录类型的域。

记录的定义需要为记录设计有用的域,而且域需要选择相应的参数,以便在IOC工程中处理记录的相关域,node记录的域如表1所示。节点控制器记录将节点控制器的控制量全部转化为其相应的域,且包含报警所需要的域。

表1 域列表Table1 Field table of node record.

每个域中都定义asl为ASL0,因为都可能会在运行时改变其值,并且pp设置为TRUE,这样在Channel Access中能够触发PV量的域。另外需要将Special设置为SPC_MOD,当节点域被触发时,会调用记录支持程序中的Special函数,在Special函数中解析出哪个域触发后,将其标志位域置为相应的标识量。

1.2 记录支持

记录支持主要用于记录被触发时,包含初始化函数和触发处理函数。记录支持程序保存在nodeRecord.c文件中。该支持定义一个结构体RSET (record support entry table),名字必须是RSET。结构体中定义一系列的记录处理函数,其中包含重要的记录处理函数(process),process是IOC中的核心函数,其他不需要的函数可以直接定义为NULL或直接不定义。

在记录支持中还会定义一个与设备交互的结构体DSET (device support entry table),定义了在记录支持中被调用的一些函数,需要在设备支持文件中实现。如下所示:

rset nodeRSET={

RSETNUMBER,

report,

initialize,

init_record,

process,

special,

};

epicsExportAddress(rset,nodeRSET);

typedef struct nodedset { /* node record dset */

long number;

DEVSUPFUN dev_report;

DEVSUPFUN init;

DEVSUPFUN init_record;

DEVSUPFUN get_ioint_info;

DEVSUPFUN write;

}nodedset;

记录支持结构体中init_record函数会在IOC工程初始化中被调用两次,参数pass为0是第一次调用,pass为1时是第二次。初始化函数中检查记录的DSET是否定义,且DSET的参数项是否正确,包括DSET结构体的数目和操作I/O的函数。最后会调用设备支持的init_record函数。

Special函数[5]也会被调用两次。根据after的值来识别为第几次调用。第一次调用在域值被改变之前,第二次调用则在之后。

Process函数在记录被触发时会被调用。该函数首先需要判断DSET是否定义,然后检验标志位PACT查看该记录是否正在被处理,否则调用记录设备支持的I/O函数——write/read函数来和设备交互。最后检查记录的各个警报域查看记录的模拟输入量是否有报警,以及通知监听PV量的客户端记录的值是否有变化。如果记录的报警位处于报警状态或者记录的值有变化,那么需要将消息发送给客户端。域处理主要流程如图4所示。

当域的Special设置为SPC_MOD时,客户端(如反射面主控)如果改变记录的域值,IOC在记录支持Special函数中解析哪一个域被触发,然后将FLAG域置为相应的标识,设备支持根据FLAG值识别哪个域被触发,然后将相应的指令通过物理总线(以太网/现场总线)发送给控制板。

图4 PV量域处理过程Fig.4 Field’s process of PV.

1.3 设备支持

设备支持文件devNode.c是对记录支持文件中定义的DSET结构体的实现。主要定义了初始化函数——NodeInitRecord和I/O操作函数——NodeWriteRead。DSET结构体定义为:

struct DevARSLCUNode devARSLCUNode =

{

6,

NULL,

NodeInit,

NodeInitRecord,

NULL,

NodeWriteRead,

};

epicsExportAddress(dset, devARSLCUNode);

此结构体定义需要与记录支持文件定义的前后一致。NodeInit函数没有任何操作,直接返回0;在NodeInitRecord函数中,给每个节点记录的ip地址和port端口域赋值。然后将每个节点的初始化的域值存储起来,作为节点的历史信息。

在记录支持处理域的流程中,最后一步是调用设备支持声明的NodeWriteRead函数和设备进行通信,因此,设备支持中最重要部分就是NodeWriteRead函数。

在NodeWriteRead函数中,首先通过记录名字识别哪个节点被触发,然后再查看其标志位域值FLAG,这样就可以知道是哪个节点的哪个域值改变了。然后生成对应的控制板指令通过设备支持,如物理总线(以太网/现场总线)或USB驱动等发送给控制板;也会接受设备上传的信息并保存在IOC的PV量中,以便客户端获取设备的最新状态值。

设备支持中处理域被触发的具体流程如图5所示。首先在设备支持文件NodeWriteRead函数中,根据触发PV量的名称及PV量的FLAG域,识别出被触发的域及相应节点;然后在发送命令的函数SendCmd()中转化为需要发送给设备的指令以及参数;最后根据不同的指令通过不同的处理函数()函数调用相应的驱动程序,将不同的设备命令发送给设备或控制器。不同的部分位于不同的文件,增加了程序的扩展性及可读性。

图5 设备支持域处理过程Fig.5 Field process of device support.

2 节点控制器记录的应用

在上述修改的基础上,还需为IOC添加其他的程序,如:以太网连接socket的创建和连接、socket的消息发送和接收等。IOC编写完成后,即可编译生成IOC程序可执行文件。

在IOC工程中的Db目录下创建数据库文件。记录的名字采用宏的方式,这样就可以在运行时替换宏来控制不同节点,也可以在运行文件中替换多次宏,实现多节点的控制。定义FAST的node记录如下所示。

record(node, "ARS:$(NODE)")

{

#record描述信息

field(DESC, "node record")

#定义设备的类型

field(DTYP,"nodeRecordDevice")

#电机状态初始化为NONE

field(MTOR,"NONE")

#Record的扫描方式,这里为0.5触发一次

field(SCAN,".5 second")

}

根据密云的主动反射面控制系统的研究,建立如图2所示的控制系统结构,在区域控制器内建立分支IOC,一个分支IOC控制一个分区内所有的节点,实现物理层的区分。在实验室内,利用IOC与节点模拟器通信,进行功能测试,在终端中直接利用EPICS的CA命令来写/读/监听记录的域,在反射面主控程序中利用EPICS的CA库函数操作记录的域。使用EPICS的扩展库EPCIS Qt[6]开发了反射面的主动控制的用户图形界面(Graphical User Interface, GUI),其中单节点调试界面由主界面输入节点编号创建,可以使用该图形界面友好的进行单节点的调试和整体的测试运行,在实验室内完成了与FAST密云模型的节点控制器仿真程序的互联,进行了单节点与整体的仿真测试和功能性测试,达到了预期的目的,能够正确稳定地发送和接受信息。运行界面图如图6、图7所示。

图6 主动反射面运行界面Fig.6 GUI of ARS Master.

图7 单节点调试界面Fig.7 Debug GUI of FAST node.

3 结语

在EPICS构架的FAST反射面控制系统的基础上,设计了基于FAST反射面的EPICS节点控制器记录,应用到原有的FAST控制系统中,便于控制器节点IOC的管理以及提高代码的复用,根据密云模型的物理结构,进行了实验室的仿真和测试,测试表明节点控制器记录能够正常运行,且可以满足FAST望远镜主动反射面的需求。

1 南仁东. 500 m球反射面射电望远镜FAST[J]. 中国科学G辑: 物理学、力学、天文学, 2005, 35(5): 449-466

NAN Rendong. Five-hundred-meter aperture spherical radio telescope[J]. Science in CHINA (Series G), 2005, 35(5): 449-466

2 Johnson A. EPICS[EB/OL]. 2012-12-17. http://www.aps. anl.gov/epics/

3 Deng X C, Wu W Q, Luo M C, et al. Real time control system of active reflector of FAST[A]. 2012 18thIEEE-NPSS Real Time Conference, 2012

4 Kraimer M. EPICS application developer's guide[EB/OL]. EPICS Base Release 3.14.12, 2012-12-17

5 Mooney T, Sullivan J, Sluiter R. Motor record[EB/OL]. 2003-06-25. http://www.aps.anl.gov/bcda/synApps/motor/ R6-7/motorRecord.html

6 Jackson G, Owen A, Rhyder A, et al. EPICS QT framework[EB/OL]. 2010-05-26. http://sourceforge.net/ projects/epicsqt/

CLCTP273.5

Design of node record for the control system of FAST active reflector

WU Wenqing LUO Mingcheng LIU Jiajing TANG Pengyi WANG Jian
(State Key Laboratory of Particle Detection and Electronics, Department of Modern Physics of University of Science and Technology of China, Anhui Key Laboratory of Physical Electronics, Hefei 230026, China)

Background: Active reflector is the one of the crucial innovations of Five-hundred-meter Aperture Spherical radio Telescope (FAST) whose performance touches on that of the overall telescope. Purpose: A real time control system is needed for the active reflector system. Experimental Physics and Industrial Control System (EPICS) is a well-used framework over the world which has good performance in real time control. Methods: Based on Input/Output Controller (IOC) frame of EPICS, a new node record was designed to simplify the node management of IOC and improve the reusability of IOC codes by making full use of the excellent real-time performance of EPICS and large number of controlled nodes (more than 2 000) on FAST reflector. Results: The record type was used in design of active reflector control system of FAST Miyun model. And the new IOC controller was experimentally tested in laboratory together with the real node’s hardware board. Conclusion: Experimental results show that this new node record can be adapted to FAST control system to enhance the convenience of code reusability.

Five-hundred-meter Aperture Spherical radio Telescope (FAST), Experimental Physics and Industrial Control System (EPICS), Record design, Input/Output Controller (IOC)

TP273.5

10.11889/j.0253-3219.2014.hjs.37.010401

国家大科学工程FAST项目(FASTHT-013-2011-CK-004)、国家自然科学基金(11178020、11275197)、中央高校基本科研业务费专项资金资助

吴文庆,男,1989年出生,2011年毕业于合肥工业大学,现为硕士研究生,研究方向为物理电子学

王坚,E-mail: wangjian@ustc.edu.cn

2013-10-29,

2013-12-02

猜你喜欢
反射面调用望远镜
一种副反射面为椭球面的天线反射体测量技术
神奇的“千里眼”——望远镜
双反射面天线装配过程中同轴度误差分析
基于应变的变形副反射面位姿形貌快速重构方法∗
核电项目物项调用管理的应用研究
神奇的千里眼——望远镜
LabWindows/CVI下基于ActiveX技术的Excel调用
打造最大望远镜
超级望远镜头
基于系统调用的恶意软件检测技术研究