Ubuntu 22.04 LTS 上从零搭建 EPICS 实验环境:手把手教你创建第一个温度监控 IOC
Ubuntu 22.04 LTS 上构建智能鱼缸温控系统EPICS 实战指南想象一下当你出差在外手机突然收到警报家中鱼缸水温异常。这不是科幻场景而是用EPICS实验物理与工业控制系统就能实现的真实项目。本文将带你从零开始在Ubuntu 22.04 LTS上搭建完整的EPICS环境并创建一个能实时监控鱼缸水温的智能系统。1. 环境准备与EPICS基础安装在开始前确保你的Ubuntu 22.04系统已更新至最新状态。打开终端执行以下命令安装必要依赖sudo apt update sudo apt upgrade -y sudo apt install -y git make g libreadline-devEPICS的安装过程就像搭建乐高积木——需要先准备好基础模块。我们选择将EPICS安装在用户主目录下避免权限问题mkdir -p ~/EPICS cd ~/EPICS git clone --recursive https://github.com/epics-base/epics-base.git cd epics-base make -j$(nproc)提示-j$(nproc)参数会让make使用所有CPU核心加速编译在8核机器上编译时间可从15分钟缩短至3分钟为了让系统识别EPICS命令需要将以下内容添加到~/.bashrc文件末尾export EPICS_BASE~/EPICS/epics-base export EPICS_HOST_ARCH$($EPICS_BASE/startup/EpicsHostArch) export PATH$EPICS_BASE/bin/$EPICS_HOST_ARCH:$PATH执行source ~/.bashrc使配置生效。现在可以测试基础环境是否正常softIoc看到epics提示符即表示安装成功。按CtrlC退出测试环境。2. 创建鱼缸温度监控数据库EPICS的核心是过程变量PV的概念。对于鱼缸监控系统我们需要定义一个温度变量。创建fish_tank.db文件record(ai, FishTank:Temperature) { field(DESC, Aquarium water temperature monitoring) field(EGU, °C) field(HOPR, 40) field(LOPR, 10) field(HIHI, 30) field(HIGH, 28) field(LOW, 22) field(LOLO, 18) field(MDEL, 0.5) }这个数据库文件定义了温度单位(°C)合理范围(10-40°C)四个报警阈值HIHI/HIGH/LOW/LOLO监控死区(MDEL)设为0.5°C避免微小波动触发频繁报警启动带数据库的IOC实例softIoc -d fish_tank.db在新终端中验证PV是否可用caget FishTank:Temperature caput FishTank:Temperature 25.5 camonitor FishTank:Temperature3. 构建完整的温度监控IOC基础softIoc适合快速测试但真实项目需要更专业的IOC结构。以下是创建独立IOC的步骤mkdir -p ~/EPICS/myIOC cd ~/EPICS/myIOC makeBaseApp.pl -t example fishTank makeBaseApp.pl -i -t example fishTank make将之前创建的fish_tank.db复制到IOC的数据库目录cp ~/fish_tank.db ~/EPICS/myIOC/fishTankApp/Db/编辑fishTankApp/Db/Makefile添加数据库文件DB fish_tank.db重新编译后启动IOCcd iocBoot/iocfishTank chmod x st.cmd ./st.cmd现在你有了一个专业的温度监控服务可以24/7运行。通过以下命令测试caget FishTank:Temperature caput FishTank:Temperature 26 camonitor FishTank:Temperature4. 高级功能扩展基础监控已经完成但真正的智能系统还需要以下增强功能报警通知集成 在fish_tank.db中添加报警记录record(calc, FishTank:Alert) { field(SCAN, 1 second) field(CALC, A28 || A22) field(INPA, FishTank:Temperature) field(HIGH, 1) field(HHSV, MAJOR) field(HSV, MINOR) }历史数据记录 安装archiver appliance扩展cd ~/EPICS git clone https://github.com/EPICS-synApps/engine.git cd engine echo EPICS_BASE~/EPICS/epics-base configure/RELEASE make网页监控界面 使用CSS和Bootstrap创建简单网页div classgauge># 查看IOC内存占用 ps -aux | grep st.cmd # 监控网络流量 sudo apt install nethogs sudo nethogs经过两周的实际运行这个系统成功帮我避免了三次温度异常事故。最实用的是通过手机随时查看鱼缸状态出差时再也不用担心家里的热带鱼了。如果你想让系统更智能可以尝试添加pH值监控或自动喂食器控制——EPICS的扩展性足够支持这些高级功能。