更新时间:2022-07-29 09:40
控制系统中,设备的每个模拟或数字的输入/输出量称为一个流程变量。一个流程变量在数据库中对应为一个记录(record)。一条光束线控制系统是小规模的系统,流程变量约在600数量级。
EPICS即“实验物理及工业控制系统”(Experimental Physics and Industrial Control System),是上世纪90年代初由美国洛斯阿拉莫斯国家实验室(LANL)和阿贡国家实验室(ANL)等联合开发的大型控制软件系统。
基于分布式标准的EPICS结构包括两部分:IOC层和OPI层。IOC层又可以细分为6层:通道访问(CA)服务器接口、数据库访问接口、动态数据库、记录支持模块、设备支持模块、设备驱动器。OPI层可以细分为两层:通道访问(CA)客户接口和应用软件。
EPICS软件系统中的两个基本机制是通道访问和分布式动态数据库。
EPICS系统依据客户-服务者模型,在TCP/IP协议之上建立了称为Channel Access(简称CA)的通道访问机制,并为客户(主要是OPI)和服务器(主要是IOC)分别提供了应用接口子程序库。CA是EPICS系统的最基本机制,它所能提供的服务包括动态通道定位,数据读写,访问监控,连接监控和自动重接等,CA客户可以根据通道名直接访问系统中的任一个通道,通道具有回叫(callback)机制,根据客户的预先指定发送监控所得的信息,这样便无须依靠巡回检测来监控系统,可以极大地减轻网络负荷。
基于通道访问机制,可以开发出与上层应用工具,上层语言的接口,如EPICS与MATLAB的接口MCA、EPICS与JAVA的接口JCA等等。
控制系统的I/O数据时频繁变动的数据,为了响应来自操作台的命令、控制算法和各种操作状态,必须采用现场运行的动态数据库(run-time database)来记录数据。动态数据库的基本特点是:(1)为了便于访问,数据结构采用简单的表,(2)数据库存放在内存中,(3)对于分布式数据库,数据库分布在系统的各个节点中,供操作员提取。
分布式动态数据库是EPICS系统的另一个最基本的特点,在EPICS系统中,数据库分布在各个输入输出控制机(IOC)中,每个通道都作为数据库的一个记录存放在控制该通道的IOC中,每个记录中的值可以来自硬件设备输出、操作员命令或者其它记录的输出。
EPICS动态数据库不仅用于存放当前的通道数据,而且,所有的过程控制功能也基本上在动态数据库中实现。因此,EPICS的数据库记录又被称为过程模块。
在EPICS的3.13版及其以前的版本,IOC只能运行VxWorks实时操作系统。由于VxWorks非常昂贵,从3.14版本开始,IOC可支持VxWorks、RTEMS、Linux、Windows等多种操作系统。OPI与IOC也由原来必须运行在不同的CPU上,发到到可以集成在同一台PC上,为软件仿真、系统集成提供了极大的方便。
IOC启动时从主机上下载操作系统内核、应用软件和分布式数据库,然后开始运行。数据库中每个记录的I/O操作时通过epicsCore中的扫描器(scanner)对数据库的扫描来实现的。iocCore提供以下扫描机制:
(1)周期扫描,IOC以指定的时间周期扫描指定的记录;
(2)时间触发扫描,包括由外部I/O硬中断触发引起的和由用户设计的事件(即软中断)触发引起的对指定记录的扫描;
(3)被动扫描,来自OPI的对指定记录的I/O操作,或者来自另一个与之链接的记录处理后,引起对指定被动扫描的记录的I/O操作
iocCore提供的另一个重要机制是监控器(monitor),用来监控指定通道的制定变化并通过callback机制向OPI报告。