热工回路漏热功率监测软件开发.docx
《热工回路漏热功率监测软件开发.docx》由会员分享,可在线阅读,更多相关《热工回路漏热功率监测软件开发.docx(11页珍藏版)》请在冰豆网上搜索。
![热工回路漏热功率监测软件开发.docx](https://file1.bdocx.com/fileroot1/2023-1/22/b620d9f4-29fc-493e-93ac-dc4d6734d5f6/b620d9f4-29fc-493e-93ac-dc4d6734d5f61.gif)
热工回路漏热功率监测软件开发
1.1TMSR简介
能源是人类赖以生存和发展的基础。
当前社会发展对能源的需求越来越大,传统能源却日益缺乏,同时高碳的传统能源利用还造成严重的环境压力,对人类的生存和发展构成了威胁,因此新能源的开发与利用变得越来越重要和迫切。
裂变核能,因其能量密度高、低碳排放、潜在的可持续发展等特点,在解决能源需求快速增长和环境保护的矛盾上具有其它能源不可比拟的巨大优势。
特别是,当前我国的能源结构正处于由以煤为主的高碳能源向低碳能源过渡的战略转型的关键时期,大力发展核电已成为我国能源中长期发展规划的战略重点之一。
核电的发展,将为我国的经济社会持续稳定地发展提供清洁可靠的能源保障。
中国科学院首批启动实施的战略性先导科技专项之一的“未来先进核裂变能——钍基熔盐堆(Thorium-basedMoltenSaltReactor,简称TMSR)核能系统”,目标是研发第四代的裂变反应堆核能系统,
TMSR热工回路系统简介
反应堆是热能产生装置,热工回路作为反应堆的冷却剂强制流动进行热能输送的系统,其功能是把反应堆内的热能高效、安全地输送到堆外,以进行其它的应用。
为了防止反应堆发生意外事故,确保环境安全,反应堆使用三个回路进行隔离。
主回路,又称为一回路,流经堆芯直接带出热能的回路。
二回路,是把经过热交换器从一回路得到的热能传递给热能应用的三回路,以起到隔离的效果。
三回路主要是热能应用回路,把经过热交换从二回路得到的热能进行应用把经过热交换器从二回路得到的热能进行应用,如发电等[2]。
TMSR-SF1零功率试验堆把经过热交换器从二回路得到的热能通过空气带走,而不进行发电应用,因此TMSR-SF1只有一、二回路两个回路[2]。
如图1-1所示。
一二回路系统主要设备有熔盐池、储罐、管道、膨胀罐、空冷塔、泵罐等。
1.1.1TMSR控制系统简介
1.1.2.1分布式控制系统
计算机控制系统的系统结构主要经历了两个发展阶段:
集中控制系统、分布式控制系统(DistributedControlSystem,DCS)[3-4]。
集中控制系统又称中央控制系统(中控)其基本思想就是一台计算机对各种信息进行统一的加工处理。
这种系统方便管理和监控,然而由于信息的过度集中,系统也就存在很大的风险,可靠性也就难以保证,对一些结构比较复杂的控制系统也难以满足其需求。
DCS其基本思想就是分散控制、集中操作、分级管理、配置灵活、组态方便。
这种系统具有高可靠性、开放性、灵活性、易于维护、协调性、控制功能齐全的特点,是现代工业过程控制实现的主要方式。
DCS目前,广泛应用于发电厂、石化、钢铁制造、食品及医药制造等大型工业企业,以及加速器、核电、同步辐射装置等大型科学装置中。
由美国的阿贡实验室(ArgonneNationalLaboratrory,ANL)和洛斯•阿拉莫斯国家实验室(LosAlamosNationalLaboratory,LANL)等联合开发的实验物理和工业控制系统(ExperimentalPhysicsandIndustrialControlSystem,EPICS),是一个典型的DCS系统,具有DCS系统的标准结构[5]。
EPICS具有DCS系统的典型特点:
可裁剪,可移植、可重用、互操作。
其系统结构灵活、可扩展性强、开放性好、支持多种操作系统(VxWorks、RTEMS、linux、Windows)。
同时它还是开放源代码的系统。
EPICS具体软件结构如图1-3所示。
国际上很多的实验室以及大型科研项目的控制系统中都采用EPICS平台,如瑞士光源(SwissLightSource,SLS)、美国的劳伦斯伯克利实验室(LawrenceBerkeleyNationalLaboratory,LBNL)、国际核聚变堆实验装(InternationalThermonuclearExperimentalReactor,ITER)等实验室,以及上海光源(SSRF)、合肥光源(HLS)[6-11]。
各实验室为了满足各自项目的不同需求,不同程度上对EPICS版本进行了相应的设备驱动程序开发、新数据记录类型扩充、以及用户应用工具开发等功能软件的扩充。
各个实验室与大型科研项目的运行结果充分证明了EPICS平台稳定可靠。
EPICS平台的基本用途有:
1.提供多种面向设备(数据采集设备、监控设备等)的操作接口,用户可以在控制系统的上层开发自己的应用软件。
2.提供友好的用户操作界面,用户可以在此界面实时的访问和监测系统中所有的参数。
3.提供实时的数据记录功能,用户可以把数据存储到自己建立的数据库中,以方便查看与数据的分析和处理。
CSS(ControlSystemStudio)是由德国DESY、BNL和美国SNS合作开发的,采用EclipseRCP(RichClientPlatform)的框架结构,是一个集成多个应用程序插件的开发工具软件[11],不仅可以运行在支持DAL控制系统协议的环境下也可以运行在EPICS环境下,实现控制系统的界面制作、数据存档、语音报警等功能[12-13]。
1.1.2.2TMSR控制系统
TMSR控制系统主要是完成反应堆的控制功能、保护功能和信号功能。
由1.1.2.1中EPICS的诸多特点可知,EPICS平台可以实现上述功能。
因此,TMSR控制系统采用EPICS平台实现数据显示、控制和监测系统的功能[2]。
实现过程可以按着TMSRSF1控制系统的设计来实现。
TMSRSF1控制系统的总体结构示意图如图1-2所示。
TMSRSF1控制系统按着DCS的标准结构分为三层:
现场设备层,过程控制层和监控管理层。
现场设备层包括各种传感器和相应的仪表;过程控制层主要包括反应堆运行过程中的各个子系统;监控管理层主要是监测整个反应堆的运行状态和控制反应堆的启停和其他维护功能。
1.2控制系统软件开发
1.2.1计算机控制系统软件
计算机控制系统使用软件完成监测任务,以保障机器的正常运行[16-18]。
软件分为系统软件和应用软件两部分(如图1-4),其中系统软件主要是管理系统,维护系统的正常运行,并优化系统使其达到最佳的运行效果;而应用软件主要是针对用户的某种应用目的所撰写的软件[19-20]。
软件间的共同协作,可以实现信号实时处理、界面监测等功能[21]。
1.2.2软件开发的发展和流程
随着计算机技术的发展,软件规模、功能也持续攀升。
然而人们发现,不同的人、团队或是不同国家合作开发出来的产品并不是完全可靠的,各种维护工作的工作量也是难以想象的,甚至带来灾难,软件危机就这样出现了,因此软件工程应运而生[22-23]。
软件工程是一套关于软件开发各阶段的定义、任务分配、职责描述的一门工学学科,主要用于解决软件危机、指导人们科学有效的开发软件,提高及保证软件开发的效率和质量[9]。
因此,很多计算机控制系统的软件开发按着软件工程的方法进行[21]。
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,各个阶段的工作重点为[24]:
需求捕捉:
主要是确定系统应该具有什么功能。
需求分析:
主要是明确需要解决的问题,重点在于理解问题并对理解的结果加以分析。
设计:
通过某种特定的平台,以达到并完成整体的软件功能。
实现:
明确要解决的问题采用什么技术和手段(语言、工具、开发平台等)来实现前面提出的设计方案以满足用户的需求。
测试:
此阶段主要是通过各种测试思想,方法和工具的具体应用,找出系统中各种隐藏的缺陷,使软件的Bug降到最低。
1.3课题的提出及意义
TMSR热工回路,作为熔盐堆冷却剂强制流动进行热能输运的系统,承担着把反应堆堆芯内的热能安全、高效地输运堆外进行应用的任务。
在冷却剂传输过程中,尽管采用先进的保温技术,回路系统仍然不可避免地存在漏热,同时在诸如回路冷却剂泄露、保温模块故障等需要及时快速处理的事故中,漏热功率会有明显的变化[2][25]。
2.1环境变量
环境变量是指在操作系统中,用来指定操作系统运行环境的一些参数,像系统文件夹的位置,临时文件夹位置等[46]。
2.2.1环境变量的作用
环境变量主要有三种作用,分别为:
设置参数,软件共用,系统运行。
设置参数:
就是给用户的一些应用程序或者系统设置参数,而具体的作用与具体的环境变量相关。
比如参数path,就是告诉系统,当运行一个程序,如果没有设置程序所在的路径时,系统除了在当前的目录中寻找此程序,还应到什么目录中寻找。
软件共用:
解决不同系统的软件共用问题。
例如:
我们在C盘装Win7,D盘装WindowsXP,但有些软件我们在Win7中安装,在WindowsXP中不能正常使用,麻烦但有效的方法是重新安装,但如果我们知道了它的有关环境变量后就可以解决此问题。
系统运行:
通过设置环境变量的方法,解决同一软件可以在不同的系统中运行。
基于环境变量的上述作用,我们在使用一个软件的时候要先对此软件进行相应的环境配置。
2.2.3环境变量设置方法
环境变量有许多种,但常见的主要有Window系统和Linux系统中的环境变量。
在Window系统中设置环境变量,通过“我的电脑-<系统属性-<高级系统设置-<环境变量”来设置。
在这里面环境变量分为用户变量和系统变量两类,它们在注册表中都有相应的对应,在配置时切记不要删除原来的系统变量,可以以添加的方式进行设置。
在Linux系统中,shell环境的配置要依赖于多个文件。
当调用shell时,会从/etc/profile和$HOME/.bash_projec两个初始文件中读取命令。
/etc/profile中包含系统变量,它由系统管理员设置特殊命令和本地系统变量。
普通的用户启动信息文件($HOME/.bash_project),其文件能被修改。
比如:
当新建用户时,bashrc、.bash_profile和其它公共环境文件模板将被复制到/etc/skel的目录下面。
可以编辑这些初始化设置,也可以在此目录下添加附加的文件。
TMSR热工回路系统,是在Linux系统下,基于EPICS平台进行控制系统软件的开发工作,且用此平台开发的软件,有许多优势[32]:
1.提供多种设备的操作接口。
EPICS支持的硬件设备接口(数据采集、监测设备等),不需要自己开发相应的驱动程序。
2.简单的人机图形界面。
为操作员提供友好的、风格统一的界面,操作员可以在此界面查看控制系统中的参数。
3.强大的分布式实时数据库。
EPICS平台中IOC的数量没有限制,过程控制中的数据库可以放于不同的IOC中。
不同的IOC运行的数据库进行了分散式存储,避免了集中式存储到来的弊端,并且,IOC之间时相互独立的,一个出现故障不会影响其他IOC的运行,而且IOC记录并保存系统中运行的数据,可以用于离线分析。
4.分级报警管理机制。
用户可以直接利用已有的报警管理工具建立自己的警告及报警体系。
5.多平台支持。
早期的EPICS的核心软件版本3.13.x是基于VxWorks操作系统开的,现在的版本可以运行在多种操作系统上,如Linux、Windows,Solaris等。
6.技术共享。
世界上有大量使用EPICS开发的人员,大家技术共享,为EPICS的使用以及发展奠定了基础。
而且,在开发中遇到有关EPICS的问题,可以在社区中得到专家的帮助。
基于以上诸多优势,因此,采用EPICS平台进行漏热功率监测软件的开发。
正如第1章所述,EPICS是一个典型的DCS控制系统,是基于C/S(客户端/服务器)模式的,具体的体系结构如图2-1所示。
由其系统结构可以看出EPICS软件具有标准的三层结构,包括OPI(operatorinterface)操作员接口层、IOC(inputoutputcontroller)输人输出控制器、设备控制级(devicecontroller)[26-29]。
OPI为监控管理层即顶层操作员接口层,可以通过人机界面对控制设备的信息进行数据采集、数据存档、控制和监测、以及报警处理等基本功能。
HP或是SUN工作站通常作为监控层的硬件配置,也有的用PC机作操作员控制台。
而EPICS中的OPI层的操作系统通常是Linux或UNIX。
本课题采用Linux操作系统,PC作为控制台。
前端控制层即过程控制层,是控制系统的核心,不仅要完成控制量的设置/调节、实时数据的采集/存储等工作,还要处理设备控制层的事件,以及响应来自监控层的请求。
EPICS的前端控制层称为IOC(输入/输出控制器)层。
控制系统的最底层设备控制层,直接与设备相连接,负责完成信号(模拟/数字)的输入/输出等功能。
监控管理层与前端控制层之间的通信是由局域网完成的,之间的数据传输是通过通道访问协议(ChannelAccess,CA)进行,基于TCP/IP协议。
用户可以通过CA访问某一数据,基于此协议获得连接状态等。
前端控制层与设备控制层的通信有I/O数据交换完成的。
EPICS软件包基于C/S(客户端/服务器)模式。
EPICS的核心部分为IOC。
IOC的核心是分布式动态数据库以及输入/输出模块,其他重要功能有数据库访问(DatabaseAccess)接口、数据库扫描(DataScanning)、记录支持(RecordSupport)模块、通道访问(ChannelAccess)服务器接口、设备/驱动器支持(Device/DriverSupport)模块等几个部分[26][30][31]。
其软件结构如图2-2所示。
1.动态数据库IOC。
IOC启动时会从主机自动下载分布式数据库、操作系统内核和应用软件,然后运行。
epicsCore中扫描器通过对数据库扫描来实现数据库中每个记录的I/O操作。
iocCore主要三种扫描机制,分别为有周期扫描、事件触发扫描、被动扫描,还提供一种中的机制是监控器(monitor),用来监控指定通道的制定变化并通过callback机制向OPI报告。
IOC采用面向对象的方式,所有的控制参数以及信号量、中间的计算过程都是用记录(record)的形式处理的,而域(field)是每种记录类型定义的记录的属性,主要包括扫描的方式、单位、报警的域值、当前值等。
而记录的有些域值是提前设置的,如扫描方式、单位、报警域值等,也有的域值是通过调用驱动/设备支持模块访问硬件设备获得的,EPICSbase软件包中的主要记录类型如表2-1所示[11][33][34]。
表2-1EPICSbase所包含的主要记录类型
动态数据库的其基本特点有:
(1)简单表的数据结构,以便于访问,
(2)数据库存放于内存中,(3)有多个节点,操作方便。
2记录支持模块,此模块中的记录支持程序是已经定义好的,每种记录类型都有一组;在此模块中可以对不同的域进行处理和操作,如:
向监视器发送记录的值发生变化,输入/输出操作,生成报警信息等;还可以被扫描器、CA客户端、回叫机制等任务调用。
3数据库扫描,使用SCAN语句确定是否有记录被扫描,扫描主要有周期扫描、事件触发扫描、被动扫描等。
1)周期扫描,IOC根据事先设定好的时间对记录进行周期性扫描,在操作系统和计算机允许的情况下,用户可以根据需要,设定相应的扫描周期。
2)事件触发扫描,两种触发方式,分别为用户定义事件和外部中断事件。
用户定义事件触发是通过函数post_event()实现的;外部中断触发是由于I/O触发引起的。
3)被动扫描,由于记录中的前向链接或是后向链接引起的。
4通道访问(ChannelAccess,CA)部分,CA主要用于数据服务及监视器模块中。
2.1.1.2记录支持及设备支持、驱动支持模块
EPICS将支持程序自下而上分为三层,分别为设备驱动模块、设备支持模块、记录支持模块。
每个模块向上层提供相应的接口调用。
而这种分层有利于存取数据,每一层都不需要知道下一层的细节,只要知道如何调用相应的层即可。
2.2.2通道访问
通道访问协议是EPICS的另一核心机制[35],其对象为IOC动态数据库。
用来记录的值域叫过程变量(ProcessVariable,PV),使用PV建立客户端与服务器间的通讯,且不同的PV对应不同的通道。
依据客户/服务器(C/S)模型,基于TCP/IP协议建立通道访问机制,并向客户端(主要是OPI)以及服务器(主要是IOC)提供应用接口子程序库。
具体如图2-3图2-3通道访问机制
IOC既可以作为CA服务端也可以作为CA客户端。
作为客户端,只要知道PV的名称,而不需要知道它在哪个IOC中。
在局域网内,客户端发送数据请求以UDP数据包的方式,而包含有相同PV名称的IOC以相同的方式应答,二者就建立了TCP连接,从而实现了透明访问IOC中数据。
因此,PV的名称在EPICS局域网中是唯一的,也就是说在局域网内记录的名称是唯一的。
OPI与IOC之间的连接是通过CA客户端进行通讯实现的。
通道访问提供的服务主要有客户服务、搜索服务、连接请求服务等。
2.1.2.1客户服务
基本的CA客户服务有:
1)搜索(Search),找到包含选择的过程变量和每个建立通信的IOC。
2)获取(Get),获取过程变量的值。
3)存储(Put),把更改后的过程变量的值进行存储。
4)添加事件(AddEvent),添加回叫机制状态的变化。
2.1.2.2搜索服务
当CA客户端(例:
操作员界面任务启动时)查找IOC中需要的过程变量时CA提供等待服务。
服务器接收查到的所有信息,如果发生异常,回复给发送者“Ihaveit”的信息。
2.1.2.3连接请求服务
用户需要的过程变量被找到时,CA客户端就会向包含此过程变量的IOC发出连接请求服务,IOC接受请求并建立连接到客户端。
连接请求服务有:
ca_get、ca_put、ca_add_event、ca_post_event等。
人机界面(HumanMachineInteraction,简称HMI),也称为人机交互,是用户与系统之间进行信息交换与交互的媒介,是为了实现人类与信息的内部形式可以接受形式的转换[36]。
人机界面存在于硬件与用户之间,最主要的体现用户与软件之间,人机界面主要结合构分别为:
人、硬件、软件,三者缺一不可[37]。
而衡量人机界面的优劣主要是在于对用户是否友好。
计算机人机界面的发展大致经过了以下4代的演变[37]:
(1)命令语言。
在鼠标和图形显示灯技术出现之前,我们只能通过命令或是询问的方式,完成信息的获取,也就是说通信完全是以文本的形式并通过用户命令和用户对系统询问的响应来完成。
这种方式对熟练的用户来说,比较灵活,可以提高其工作效率,也便于发挥其创造性,但对于其他用户不常用或是不熟悉的用户来说就要求比较高,且容易出错,不友善而且难于学习,对错误处理能力也比较差。
(2)菜单选项。
这种方式与命令语言方式相比有了一定的改善,不容易出错,还可以使用对话框管理工具,而且对错误的处理能力也有显著提高。
但使用起来仍很乏味,可能会出现菜单层次太多或菜单选项负责的情形,必须进行逐级的选择,不能一步到位,从而导致速度相对来说比较慢。
(3)图形用户界面(graphicsuserinterface,GUI)。
又称为WIMP界面,此类界面是四位一体,即窗口、图标、菜单、指示器,形成桌面。
这种方式可以使不同种类的信息同时显示,使用户还可以在几个工作环境中相互切换而不会使几个工作之间的联系丢失,用户能通过菜单方便的执行任务,例如:
控制型、对话型任务。
引入图标、滚动杆和按钮技术,不仅大大减少用键盘进行输入,而且对于不精于打字的用户也提高了交互的效率。
(4)自然语言。
使用应用软件和自然语言进行通讯,把图形界面技术与超文本、多任务概念相结合。
随着图形、文字、语音识别与输入技术的发展,多媒体技术进一步在人机界面开发领域内的应用,自然语言风格的人机界面将迅速发展,最终走向实用。
随着人机界面在计算机容量、图形技术、网络技术、新型输入输出设备以及多媒体技术的迅猛发展,界面设计在软件开发过程中也显得越来越重要。
(1)不仅有自己独特的个性,而且使软件更加生动。
就像微软和苹果一样,每一款自都有自己独特的风格。
(2)使用者不仅操作方便快捷,还易上手。
良好的界面设计能够起到向导的作用,引导用户独自完成相应操作。
(3)使软件使用寿命延长,也让软件深入人心,提高了软件的市场竞争力。
鉴于以上界面设计的诸多重要性,也便于操作员快速查看,因此在此软件开发的过程中也应该进行界面的设计与开发。
目前主要用于界面设计与开发的软件有edm、medm、CSS、Qt等。
edm、medm开发的界面没有CSS和Qt开发的界面美观、操作,CSS和Qt开发的界面还具有界面友好、维护方便、容易入门等特点。
与Qt相比,CSS发展更主流,而且CSS不仅可以与EPICS进行通讯,由CSS开发并已经在TMSRHTS回路、NNCL回路、FLiNaK回路等试验回路中使用的开发平台,运行稳定可靠,因此CSS可以用于此次软件开发中,作为监测界面。
由BNL、德国DESY和美国SNS合作开发而完成的CSS(ControlSystemStudio),采用EclipseRCP(RichClientPlatform)框架结构,是一个开发工具软件,集成了多个应用程序插件。
CSS通常被认定为下一代的操作接口,不仅可以运行在支持DAL控制系统协议的环境下也可以运行在EPICS环境下,实现控制系统的数据存档、语音报警、界面制作等功能[38][39]。
在启动CSS时首先要选择工作空间,即包含相关的配置和CSS项目的存储空间,然后才进入CSS工作台。
CSS的工作台像一个窗口集,每个窗口内,用户可以像组织桌面一样组织工作。
不同的布局方式称为透视图(perspective),存放着内容编辑器和一整套视图。
用户可现实的透视图中进行切换,例如监控透视图与报警透视图间切换。
每个透视图有其独特的内容和布局。
中间的编辑器可以现实系统的监控界面、Databrowser界面等,在它周围有各种视图,用户可以根据自己的需要进行选择,例如OPI界面的编辑透视图,如图3-1所示,包含导航视图、属性以及运行OPI的工具栏。
3-1OPI界面编辑透视图
CSS提供风格统一的人机界面,致力于将控制系统中的相关软件集成到一起。
具体的功能如下:
(1)CSS可以跨平台。
CSS是由Java开发的,基于EclipseRCP的软件构建,即富客户端平台,有图形界面框架的应用,而eclipse的扩展机制和插件使应用组件的部署与组织更方便。
JAVA是完全的面向对象的程序设计,使得CSS具有跨平台的特性。
(2)拥有多种成功的组件,例如诊断工具:
Probe、EPICSPVTREE等;显示工具:
PVTable、OPI界面、RDBTableEditor等;趋势显示工具:
DataBrowser等;还有报警、数据采集、显示、授权、日志等工具。
(3)不仅有集成菜单的向导,在线帮助,各种网络协议API还具有各种组件的配置页面,方便与其他组件进行连接。
利用CSS的功能可以实现与EPICS的通讯、数据的采集与显示、以及界面的监测等。
BOY(BestOPI,Yet)采用EclipseGraphicalEditingFramework(GEF)技术,是一个编辑与运行操作界面(OPI)工具,利用现代图形编辑软件进行开发[40]。
它支持本地PVs和CA协议,且已被集成到CSS中,可以与其他软件进行交互。
BOY可以对控制系统进行本地或是远程操作,BOY提供的丰富的图形界面操作也给操作员带来了方便。
BOY是基于Eclipse和Java技术开发的,可以跨平台操作。
Widgets使用插件