基于Linux的流设备驱动的实现 韩子国,叶梅 2015-08-20.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

1 第十七届全国科学计算与信息化会议 2015 年 8 月安徽合肥 基于 Linux 的探测器监控小系统 数据采集和存储的实现 王萃 2015 年 8 月 19 日.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
实验四 利用中规模芯片设计时序电路(二).
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
综合布线技术与实践教程 第九章:综合布线系统工程网络分析 课程网站:
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
J2EE与中间件技术 ——Lab.
基于R和pentaho的全套开源BI平台的实现
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Android开发入门 -----Android 开发“Ready go!” 主讲:李晓蕾
Hadoop I/O By ShiChaojie.
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
第二讲 搭建Java Web开发环境 主讲人:孙娜
存储系统.
大学计算机基础 典型案例之一 构建FPT服务器.
SVN服务器的搭建(Windows) 柳峰
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
SPI驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
数据挖掘工具性能比较.
ENS 10.1安装配置指南 王俊涛 | SE.
VSS使用简介 王树升
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
K60入门课程 02 首都师范大学物理系 王甜.
第四章 团队音乐会序幕: 团队协作平台的快速创建
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
Platform Builder使用介绍 WINCE系统应用开发流程说明 ACTION RDC 杨 涛 2005.Dec.3th
姚金宇 MIT SCHEME 使用说明 姚金宇
实验七 安全FTP服务器实验 2019/4/28.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
核探测与核电子学国家重点实验室 中国科学技术大学近代物理系 王照琪
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
Visual Basic程序设计 第13章 访问数据库
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
基于列存储的RDF数据管理 朱敏
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

基于Linux的流设备驱动的实现 韩子国,叶梅 2015-08-20

主要内容 系统概述 系统开发过程 EPICS平台的简单介绍 IOC的实现 监测与控制界面的实现 测试结果与结论

系统概述 需求分析:本文在调研了江门中微子实验需求的基础上,主要介绍了在实验物理和工业控制系统(EPICS)平台上开发流设备驱动程序,即IOC(Input/Output Controller)。 功能:可以远程监测与控制高压机箱与高压插件。 技术方法:采用基于数据流的设备通讯驱动软件模块StreamDevice,用到的接口方式为TCP/IP协议。 界面实现:本文还简单介绍了用CSS(Control System Studio)开发相应的远程监测与控制界面。

系统开发过程 1、实时数据库的建立 2、设备控制软件的开发 3、人机操作界面的开发 数据库信号名定义 建立数据库 数据装入 过程控制 专用I/O驱动程序的开发 3、人机操作界面的开发

EPICS平台 EPICS: 实验物理与工业控制系统 EPICS是美国ANL和LANL实验室联合研制开发的实验物理和工 业控制系统软件包。EPICS提供丰富的控制系统软件开发工具,可 以用来建立分布式的控制系统体系结构,进行系统集成。 优势: 1、大大减少设备级软件开发工作量 2、实现局域网计算机对控制系统实时数据的共享 3、有强大的分布式实时数据库系统 4、简单的人机图形界面开发工具

EPICS平台 OPI (Operator Interface) – 运行在客户端 – 提供图形操作员界面开发工具 – 动态图形控件与实时数据库相连 CA (Channel Access) IOC (Input Output Control) – 运行在服务器 – IOC数据库 – 提供设备驱动程序

IOC的实现 IOC主要组成部分:(1)数据库;(2)信道接入;(3)设备支持。 获取数据流程:设备支持将硬件返回的数据传给数据库,数据库将数据转换成EPICS能识别的数据格式,通过信道接入传递给网络,从而通过网络将数据传给客户端监控软件。发送命令流程与之相反。

StreamDevice是一种基于数据流的设备通讯驱动软件模块,通过发送和接收字符串来远程控制硬件设备 1、将StreamDevice软件包直接放到用户创建的EPICS应用目录下,通过编译StreamDevice生成用户需要的库文件,供用户调用。 2、将StreamDevice作为一种第三方外部模块,用户在使用时需要在新创建的EPICS应用目录内的RELEASE文件中指定其路径,并修改相关的配置文件重新编译即可调用相关库文件。

Protocol文件定义了record与硬件设备之间的多种通信协议。 不同类型的硬件设备都会使用各自独立的protocol文件。 record在INP域或OUT域中加载相对应的protocol文件名。 可以通过设置环境变量STREAM_PROTOCOL_PATH来指定protocol文件位置。 内容示例: readai{ out "$CMD:MON,CH:\$1,PAR:\$2"; in "#CMD:OK,VAL:%f"; }^M readstring{out "$CMD:MON,CH:\$1,PAR:\$2"; in "#CMD:OK,VAL:%s";}^M …. “$CMD:MON,CH:\$1,PAR:\$2”; “#CMD:OK,VAL:%f”; 为硬件设备通讯命令,这里要根据不同的硬件设备进行设置。 out: 代表输出到硬件设备的指令;in: 代表反馈的数据信息

Db文件指的是数据库文件。定义了数据类型、数据处理、数据输入输出等有关数据的信息。 Db文件主要由record组成。下面是一个record的示例 record(ai, “$(S):$(SS):$(D):$(CH_NAME):VMon”) { field(DESC, "Monitor Voltage") field(DTYP, “stream”) field(INP, “@nim8304.proto readai($(CH),VMON) $(PORT)” field(PREC, "2") field(EGU, "V") field(SDIS, "$(S):$(SS):$(D):Disable") } 1、DTYP:指定设备支持类型。这里是StreamDevice。 2、INP:输入。这里加载了nim8304.proto文件中的readai函数。 3、ai :模拟信号输入。需要根据硬件设备数据类型来选择。bi为数字信号输入。

监测与控制界面的实现 CSS是什么? Eclipse RCP是什么? CSS(Control System Studio)是一个以Eclipse RCP(Rich Client Platform)为框架结构,由多个应用程序以插件的形式组成的跨平台集成开发工具软件。可实现控制系统的界面制作、语音报警、数据存档等功能。 Eclipse RCP是什么? Eclipse RCP是基于Eclipse项目推出的一个富客户端平台开发的应用框架,目的在于为开发人员提供一个功能强大的、快速的、可扩展的应用平台。Eclipse RCP采用插件技术,便于扩展。

1、启动CSS,完成配置工作,Edit->Preference。如服务器IP等。 监测与控制界面的实现 CSS开发步骤: 1、启动CSS,完成配置工作,Edit->Preference。如服务器IP等。 2、新建OPI工程,将需要的控件从控件窗口拖动到编辑窗口。 3、以IOC的PV名命名控件名。此时控件就会实时监控PV数据。 CSS测试程序: IOC测试record如下: record(calc,"VME:Voltage_5V") { field(SCAN,"1 second") #扫描周期1s field(INPA,"10") #A为10 field(CALC,"RNDM*A") #产生随机数乘以A } 从测试程序可以看出,运行前,将一个XY图像的名字设置为某个PV名字,运行后就可以实时监测到此PV的当前值。测试程序中,每隔1秒扫描一次,输入A为10,产生一个随机数,乘以A得到了一条实时曲线。

Name:通道名字 VMon:监测电压值 IMon:监测电流值 ISet:设置电流值 ISet.RBV:预设电流值 Power:开关 监测与控制界面的实现 Name:通道名字 VMon:监测电压值 IMon:监测电流值 ISet:设置电流值 ISet.RBV:预设电流值 Power:开关 高压机箱界面

Ch0-3:通道名字 Voltage:监测电压值 Current:监测电流值 RUP:上升速度 RDW:下降速度 Power:开关 监测与控制界面的实现 Ch0-3:通道名字 Voltage:监测电压值 设置电压值 预设电压值 Current:监测电流值 设置电流值 预设电流值 RUP:上升速度 RDW:下降速度 Power:开关 高压插件界面

测试结果与结论 测试结果 1、实现了实时监测高压机箱与高压插件的各个参数。 2、实现了控制高压机箱开关与高压插件升降高压。 3、实现了预设电压与电流值,配置基本参数。 4、监测数据可以通过Python程序存到MySQL中。 5、加入了报警触发机制,当数据不在阈值范围内时,就会触发报警,数据框或指示灯将显示红色警报。

测试结果与结论 结论 1、从结果可以看出,本驱动基本完成了对高压电源及其插件的监测与控制,经过了一年的调试与运行,达到了预期效果。可以作为江门中微子实验高压系统软件设计及开发的参考。 2、随着探测器设计的逐步完善,在后续的应用开发中,还会根据需求,继续完善相应的功能。