一种模拟现场辐射监测仪表数据反馈的方法与流程

文档序号:19218972发布日期:2019-11-26 01:57阅读:281来源:国知局
一种模拟现场辐射监测仪表数据反馈的方法与流程

本发明涉及仿真仪表技术领域,尤其涉及一种模拟现场辐射监测仪表数据反馈的方法。



背景技术:

辐射检测仪是用于测量高能、低能x,γ射线的仪器。r-pd型智能化х-γ辐射仪采用高灵敏的闪烁晶体作为探测器,反应速度快,用于监测各种放射性工作场所x,γ射线,辐射剂量率的专用仪器。

但是由于工业现场的辐射监测仪表价格昂贵且不便转借,在现场长期占用着进行上位机的开发与测试也是不切实际的。因此为保证尽可能小的影响现场设备的稳定正常运行,对原仪表进行模拟软件的开发,是十分必要的。



技术实现要素:

基于背景技术存在的技术问题,本发明提出一种模拟现场辐射监测仪表数据反馈的方法,其为充分测试采集接口程序的功能性和稳定性,仿真仪表也做了一些功能性和稳定性的优化,如一个仿真仪表可以模拟一个或多个仪表,以便对接口程序进行负荷测试,仿真仪表经过代码优化后可保障稳定运行至少720小时,为上位接口程序的稳定性测试建立了坚实的基础。

本发明提出的一种模拟现场辐射监测仪表数据反馈的方法,包括以下步骤:

s1、软件界面初始化:创建qfile对象,调用readline()方法逐行读取模拟寄存器和其存储的数据;

s2、读取配置文件:创建qsetting对象,调用其value()方法获取存储基本配置信息的config.ini文件内容;

s3、初始化串口:创建qserialport对象,调用其open(qiodevice::readwrite)方法开启串口;

s4、信号触发:启用connect()信号和槽函数,每当收到数据时自动进行校验、分析和回复;

s5、串口报文校验:使用unsignedchar类型数组w_buff[]将串口数据进行分解暂存,提取校验位前的数据进行crc16校验,与校验位值进行对比,若相等则说明此条报文有效;

s6、报文数据分析:根据标准modbusrtu协议,在w_buff数组的相应位置中提取报文功能区和数据区内容,明确此条报文需求:

s7、报文数据处理:如收到的是多寄存器读取指令,根据数据区内的范围收集界面上相关lineedit控件内的值,整理成标准modbus报文并反馈回串口。

优选地,所述步骤s1中,在逐行读取模拟寄存器和其存储的数据时,通过findchildren<qlineedit*>方法遍历所有lineedit控件,将模拟寄存器数据更新至界面上的lineedit控件内,并隐藏多余lineedit控件。

优选地,所述步骤s3中,开启串口后,分别调用setbaudrate()、setdatabits()、setparity()、setstopbits()以及setflowcontrol()方法对串口进行初始化配置。

优选地,所述步骤s6中,如功能区数据为03时,表示多寄存器读取,读取范围查看数据区内容,如功能区数据为06时,表示单寄存器写入,写入地点和值查看数据区。

优选地,所述步骤s7中,如收到的是单寄存器写入指令,则根据数据区内的指定寄存器和值,修改界面上相应lineedit控件内的值,修改成功后回复收到的报文表示修改成功。

本发明具有以下有益效果;

1、为实时准确的验证数据传输的稳定性和准确性,通过滑块和直接修改控件内的数值,就可对仿真仪表存储的数据进行修改;

2、另外为实时动态的看到数据变化,在仿真仪表内也加了定时器去修改某些关键数据;

3、为充分测试采集接口程序的功能性和稳定性,仿真仪表也做了一些功能性和稳定性的优化,如一个仿真仪表可以模拟一个或多个仪表,以便对接口程序进行负荷测试,仿真仪表经过代码优化后可保障稳定运行至少720小时,为上位接口程序的稳定性测试建立了坚实的基础;

4、该软件使用qt开发,基于qt强大的跨平台性,相对于其他开发平台,该软件源码可在windows、linux、android等多种操作系统上编译运行;

5、为方便用户使用,该软件设计了两个界面,主界面主要考虑美观性设计:采用lcd模式显示数据、使用horizontalslider可手动改变数值大小、并用combbox模拟故障状态,隐藏界面可通过主界面上的按钮“changeview”调出,隐藏界面主要考虑功能性和可操作性设计:采用textbrowser做实时报文的显示,采用多个lineedit做数据的存储。

附图说明

图1软件整体功能架构图;

图2为txt文件内容示例;

图3为txt文件的解析图;

图4为软件主界面图;

图5为软件主要内部逻辑流程图。

具体实施方式

下面结合具体实施例对本发明作进一步解说。

一种模拟现场辐射监测仪表数据反馈的方法,包括以下步骤:

s1、软件界面初始化:创建qfile对象,调用readline()方法逐行读取模拟寄存器和其存储的数据,在逐行读取模拟寄存器和其存储的数据时,使用findchildren<qlineedit*>方法遍历所有lineedit,将模拟寄存器数据更新至界面上的lineedit控件内,并隐藏多余lineedit控件;

s2、读取配置文件:创建qsetting对象,调用其value()方法获取存储基本配置信息的config.ini文件内容;

s3、初始化串口:创建qserialport对象,调用其open(qiodevice::readwrite)方法开启串口,开启串口后,分别调用setbaudrate()、setdatabits()、setparity()、setstopbits()以及setflowcontrol()方法对串口进行初始化配置;

s4、信号触发:启用connect()信号和槽函数,每当收到数据时自动进行校验、分析和回复;

s5、串口报文校验:使用unsignedchar类型数组w_buff[]将串口数据进行分解暂存,提前校验位前的数据进行crc16校验,与校验位值进行对比,若相等则说明此条报文有效;

s6、报文数据分析:根据标准modbusrtu协议,在w_buff数组的相应位置中提取报文功能区和数据区内容,明确此条报文需求,如功能区数据为03时,表示多寄存器读取,读取范围查看数据区内容,如功能区数据为06时,表示单寄存器写入,写入地点和值查看数据区;

s7、报文数据处理:如收到的是多寄存器读取指令,根据数据区内的范围收集界面上相关lineedit控件内的值,整理成标准modbus报文并反馈回串口,如收到的是单寄存器写入指令,则根据数据区内的指定寄存器和值,修改界面上相应lineedit控件内的值,修改成功后回复收到的报文表示修改成功。

软件的主要功能:该软件的最终目标是尽可能真实的模拟现场仪表的工作方式,因此它的主要功能就是回复和执行上位机的查询或写入命令。

软件详细功能说明及其构架:在尽可能真实的模拟现场仪表工作方式的基础上,该仿真仪表在美观性和实用性上也做了一些优化。

txt文件分析和生成:通过对原系统主从机之间通讯报文的分析,确定了原仪表主要数据存储区以及数据存储类型。为尽可能真实的模拟现场仪表,我们对报文种的数据进行整理,生成了txt配置文件mgp.txt,配置文件大致内容如图2所示。

txt文件读取和解析:软件启动的第一个主要功能就是读取、解析和存储txt文件内的数据和信号,如图3所示为该仿真软件的隐藏界面中对txt文件内容的转存和显示。

隐藏界面的初始化:在如图3所示,隐藏界面中不仅包含了右侧多个lineedit控件的重要数据的界面显示,还有左边textbrowser控件内的实时报文显示功能。另外为实现数据的自动变化,我们对部分lineedit设置了定时器,实现对控件内数据的实时动态变化。

软件主界面的初始化:软件主界面主要基于美观性和实用性设计,软件主界面如图4所示,图中类似仪表显示窗口的控件主要使用lcd控件和painter方法绘画的多个圆边矩形堆叠而成。仪表显示控件下方的水平滑块为自定义的doubleslider,通过调节滑块,可改变仪表显示控件内的数据值。滑块下方为基于combbox控件的数据状态信息更新模块,可通过选择不同的状态信息,反馈给上位机当前仪表运行状态。

软件主要内部逻辑流程

作为一个基于串口modbus协议的下位机软件,该软件的主要功能就是对串口数据的接收和处理。

该软件对串口报文的接收和处理流程如图5所示,使用serialread方法对串口内的数据进行接收和暂存。

使用check方法对报文进行整理和crc16校验,如果校验通过,说明收到的是一条正确的modbus下发报文。

遍历所有lineedit文本控件,并把值从对应的lineedit中取出。

若modbus下发报文功能码为“03”查询多寄存器,则执行方法mgpdata,对lineedit内的数据进行收集,并使用方法analysis对数据打包写入串口。

若modbus下发报文功能码为“06”写单个寄存器,则执行方法analysis2,在相应的寄存器内写入新的数据。

若modbus下发报文功能码为“16”写多个寄存器,则执行方法analysis3,在相应的多个寄存器内写入新的数据。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1