内容
-
概要
-
字段描述
-
文件
一、概要
本文档描述EPICS scanparm记录,以及构建和使用它地相关EPICS软件。本版本的这个记录兼容EPICS 3.14.8.2,并且与任何3.13.x版本的EPICS记录不兼容。
scanparm记录存储为了写入EPICS sscan记录的参数,并且向EPICS终端用户提供提供一种装载那些参数到sscan记录斌且使得sscan记录执行一个扫描的快捷方式。想法是能使用户用一次简单的鼠标单击来配置和执行一个预定义的扫描。
随便说一下,在EPICS中scan一词通常指一个记录的执行,并且尤其指通过其选取执行一个记录的方法。在本文档中,scan将没有此种含义。在此,scan是sscan记录所作的事情:
1)移动一个定位器到某个位置,并且等待它到达那个位置
2)触发一个探测器,并且等待它结束采集
3)读取并且存储来自定位器和探测器的数据
4)重复
需要更多有关扫描的,见sscan记录文档。
最简单和最常见使用,在启动时一个scanparm记录与一个特定定位器(例如:电机)相关联并且这个scanparm记录被用作配置和运行一个特定的sscan记录。运行时,用户一般将把起始和终止位置,以及要采集的数据点数写入一个scanparm记录,并且从那时起,能够用单次写入这个scanparm记录来运行这个扫描。使多个scanparm记录关联一个定位器是可能的,并且组合多个scanparm记录一起到一个用于存储包含了多个定位器的扫描参数和多个sscan记录的数据库是可能的。
scanparm记录包含了字段集合,这些字段用于它写的参数,用于它读取的参数以及用于它从用户接收并且转发给另一个记录的命令。
二、字段描述
除了所有记录类型都有的字段外,scanparm记录有以下描述的字段。
1)记录特有字段的按字母顺序的列表
2)涉及发出信息的字段
3)涉及采集信息的字段
4)各种字段
5)私有字段
1)记录特有字段的按字母顺序的列表
注意:在以上Access列
- R:只读
- R/W:允许读和写。
- R/W*:允许读和写。如果记录的SCAN字段被设置成"Passive",一个通道访问写触发记录运行。
- N:不允许访问。
2)在发出信息中涉及的字段
值字段 | 类型 | 输出链接 | 代表性目标字段 | 目的 |
PRE | DBF_SHORT | OPRE | <sscan>.CMND | 清除老的定位器配置 |
SM | DBF_MENU (sscanP1SM) |
OSM | <sscan>.P1SM | 定位器扫描模式(例如:线性,表格,飞行) |
AR | DBF_MENU (sscanP1AR) |
OAR | <sscan>.P1SM | 定位器绝对/相对 |
AFT | DBF_MENU (sscanPASM) |
OAFT | <sscan>.PASM | 定位器扫描后模式(例如:停在原地,移动到起始位置,...) |
PPV | DBF_STRING | OPPV | <sscan>.P1PV | 定位器驱动的PV名称 |
RPV | DBF_STRING | ORPV | <sscan>.R1PV | 定位器回读的PV名称 |
TPV | DBF_STRING | OTPV | <sscan>.T1PV | 探测器触发器的PV名称 |
DPV | DBF_STRING | ODPV | <sscan>.D01PV | 探测器的PV名称 |
SP | DBF_DOUBLE | OSP | <sscan>.P1SP | 定位器起始点 |
EP | DBF_DOUBLE | OEP | <sscan>.P1EP | 定位器终止点 |
NP | DBF_LONG | OEP | <sscan>.NPTS | 要采集数据点的数目 |
SC | DBF_SHORT | OSC | <sscan>.EXSC | 启动扫描 |
AQT | DBF_DOUBLE | OAQT | <sscan>.TP | 采集时间 |
3)在采集信息中涉及到的字段
输入链接 | 值字段 | 代表性目标字段 | 目的 |
IMP | MP | <sscan>.MPTS | 获取最大可用数据点数目 |
IACT | ACT | <sscan>.BUSY | 确定目标sscan记录是否活跃 |
4)管理执行中涉及到的字段
值字段 | 输出链接 | 代表性目标字段 | 目标 |
LOAD | OLOAD | <scanparm>.LOAD | 使得scanparm记录写参数到sscan记录。如果需要多个scanparm记录定义一条曲线(例如:对于一个多定位器扫描,或者多维扫描),OLOAD字段应该链接到下个scanparm记录。 |
GO | OGO | <scanparm>.GO | 使得scanparm记录写参数到sscan记录并且也使得这个sscan记录开始扫描。如果需要多个scanparm记录定义一条扫描(例如:对于多个定位器扫描,或者一个多维扫描),OGO字段应该链接到下个scanparm记录,并且要执行的末尾scanparm记录应该使用其OGO链接引起其sscan记录开始扫描。 |
三、文件
以下表格简要地描述了实现和使用scanparm记录需要的文件。
1)源代码
scanparmRecord.c | 对scanparm记录的记录支持 |
scanparmRecord.dbd | 此文件为scanparm记录定义了所有字段菜单 |
2)数据库和AUTOSAVE-REQUEST文件
scanParms.db | 在sscan记录和scanparm记录有相同前缀时,用于一维,单位移台扫描的数据库。 |
scanParmsRemote.db | 在sscan记录和scanparm记录有不同前缀时,用于一维,一个位移台扫描的数据库。 |
scanParms2Pos.db | 用于一维,两个位移台扫描的数据库。 |
scanParms2D.db | 用于二维扫描的数据库。 |
3)MEDM窗口文件
- scanParms.adl
- scanParmsRemote.adl
- scanParmsCustom.adl
- scanParms2Pos.adl
- scanParms2D.adl
这些文件构建medm窗口来访问scanparm记录和相关的过程变量。要从命令行使用它们中的一个,例如,输入:
medm -x -macro "P=xxx:,Q=m1,PV=m1" scanParms.adl
medm -x -macro "P=xxx:,Q=yyy:m1,PV=yyy:m1" scanParmsRemote.adl
medm -x -macro "P=xxx:,Q=m1,EGU=,NAME=,DESC=" scanParmsCustom.adl
medm -x -macro "P=xxx:,Q=device,PV1=xxx:m1,PV2=xxx:m2,SCAN=yyy:scan1" scanParms2Pos.adl
medm -x -macro "P=xxx:,Q=device,DESC=,EGU1=,NAME1=,EGU2=,NAME2=" scanParms2D.adl
4)EPICS启动文件
st.cmd:启动脚本
在发行包中不包含这个文件。这是来自一个支持scanparms的启动文件的带注释摘要:
# vxWorks startup script to load and execute system (iocCore) software.
# scanparm-related databases
# Tell EPICS all about the record types, device-support modules, drivers,
# etc. in the software we just loaded (xxxApp)
dbLoadDatabase("dbd/xxxApp.dbd")
dbLoadTemplate("scanParms.substitutions")
5)AUTOSAVE REQUEST文件
scanParms_Settings.req
在auto_settings.req中包含的示例请求文件来保存一个scanParms.db数据库中用户可修改设置。要使用这个,在auto_settings.req中为每个scanParms数据库添加以下格式的一行:
file scanParms_settings.req P=xxx: M=m1