- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Linux的流设备驱动的实现-Indico
* * 基于Linux的流设备驱动的实现 韩子国,叶梅 2015-08-20 主要内容 系统概述 系统开发过程 EPICS平台的简单介绍 IOC的实现 监测与控制界面的实现 测试结果与结论 系统概述 需求分析:本文在调研了江门中微子实验需求的基础上,主要介绍了在实验物理和工业控制系统(EPICS)平台上开发流设备驱动程序,即IOC(Input/Output Controller)。 功能:可以远程监测与控制高压机箱与高压插件。 技术方法:采用基于数据流的设备通讯驱动软件模块StreamDevice,用到的接口方式为TCP/IP协议。 界面实现:本文还简单介绍了用CSS(Control System Studio)开发相应的远程监测与控制界面。 系统开发过程 1、实时数据库的建立 数据库信号名定义 建立数据库 数据装入 2、设备控制软件的开发 过程控制 专用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应用 StreamDevice是一种基于数据流的设备通讯驱动软件模块,通过发送和接收字符串来远程控制硬件设备 StreamDevice目前有两种编译方法 1、将StreamDevice软件包直接放到用户创建的EPICS应用目录下,通过编译StreamDevice生成用户需要的库文件,供用户调用。 2、将StreamDevice作为一种第三方外部模块,用户在使用时需要在新创建的EPICS应用目录内的RELEASE文件中指定其路径,并修改相关的配置文件重新编译即可调用相关库文件。 Protocol文件的实现 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文件指的是数据库文件。定义了数据类型、数据处理、数据输入输出等有关数据的信息。 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:指定设备支持类型。这里是StreamD
文档评论(0)