在此之前,最好先学习下Linux系统的基本操作。
一、了解什么是EPICS
- 了解EPICS base、Channel Access、IOC、OPI 的概念。高能所内网可参考这些材料;
- 打开USPAS,熟悉其大概框架;
二、学会建一个自己的IOC
USPAS中已经搭建好EPICS base,因此可以直接建立一个 IOC。示例教程请看这里。
通过这个过程,了解IOC包含的基本结构:configure、***app、db等等,以及make编译后新增了哪些内容。
最好看懂 EPICS Application Developer’s Guide 的 “2.5 Building IOC components” 和 “2.6 makeBaseApp.pl”,能够明白 ***app/src/Makefile 中各变量都是什么意思,这对于正确建立和编译 IOC 非常重要。
三、学会自己搭建base、extensions、support等框架
base、extensions、support在EPICS中的位置和作用如下所示:
- 当使用了一个并未安装 EPICS base 的操作系统时,需自己编译安装 EPICS base,示例请看这里。(USPAS中已经搭建好base)
- extensions的下载和安装方法请看这里。
- support不需安装,新建一个名为support的文件夹、将support的模块安装到该文件夹下即可。
注:extensions文件夹下用于安装一些扩展应用,因此含有可执行文件,每个应用也有bin文件夹;support文件夹下用于安装一些类似于库的应用支持,不含有可执行文件,每个应用没有对应的bin文件夹。
四、学会在extensions或support下安装一些模块
4.1 源代码编译安装
- extensions下安装PVGateway;
- support下安装asyn、busy、seq、procServControl等;
4.2 YUM或者RPM安装
- 读取软硬件手册by刘屿 “总论和基本管理” 章节,添加相应软件仓库并从软件仓库中安装软件模块;
五、了解db record和C代码之间是如何关联起来的
一般在$ (ioc)App/src文件夹下,编写驱动代码,包括xxx.dbd文件、xxx.c文件、xxx.st文件等;在$(ioc)App/src文件夹下,编写实时数据库文件xxx.db。
xxx.db中的每个record是一个PV,其处理方式由该record的定义、xxx.dbd文件、xxx.c文件等共同定义。
需在xxx.c文件中利用epicsExportAddress()函数将自定义的数据结构注册到EPICS支持中,make编译时,会自动为这些数据结构生成xxx_registerRecordDeviceDriver.cpp文件,从而将xxx.db文件、xxx.dbd文件和xxx.c文件对PV的定义连接起来。
具体连接方式可以参考devIocStats的代码结构:
IF ANY NEED
常用的环境变量设置:
$ env | grep EPICS
EPICS_PVA_ADDR_LIST=10.0.2.15
EPICS_BASE=/home/training/epics-train/tools/base-7.0.2
EPICS_PVA_AUTO_ADDR_LIST=NO
EPICS_EXTENSIONS=/home/training/epics-train/tools/extensions
EPICS_CA_AUTO_ADDR_LIST=NO
EPICS_HOST_ARCH=linux-x86_64
EPICS_CA_ADDR_LIST=10.0.2.255
EPICS_SUPPORT=/home/training/epics-train/tools/support
【参考书目】
- EPICS Application Developer’s Guide
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)