APP下载

抽注水多层同心球中子谱仪手机控制APP设计

2023-02-08周纪森

物联网技术 2023年1期
关键词:控制指令谱仪下位

周纪森,许 洁

(成都理工大学 核技术与自动化工程学院,四川 成都 610059)

0 引 言

中子能谱测量在辐射防护领域有着重要意义,有利于获得环境中的中子剂量,是进行中子辐射防护的基础。多球中子谱仪由于具有各向同性响应、测量范围广、易操作等优点被广泛应用于中子能谱测量活动中。本课题组自主研发的具有5层同心空隙的抽注水多层同心球中子谱仪[1-5]采用水作为主要慢化材料,通过控制5层间隙抽水和注水组合出32种不同厚度的慢化水层,通过水层厚度与中心探测器测量中子计数之间的关系反演出中子能谱。

课题组已对抽注水多层同心中子谱仪系统开展了一系列的研究,黄红等人[6]完成了谱仪的理论模拟和结构设计;刘志和冯晨等人[7-8]设计了抽注水系统,通过USB通信实现了PC端控制谱仪的抽注水;穆克亮等人[9]设计了单泵抽注水装置,并计算出水层组合的最优方案,提升了系统工作效率;常康[10]使用神经网络算法开展了中子能谱反演研究;乔宇洁[11]开展了谱仪周围剂量当量校正模型研究;张灿[12]通过遗传算法优化球层抽注水切换方案,节省了测量时间。但对该谱仪配套的手机端控制软件尚缺乏相关研究。因此,本文基于Android Studio 4.2 平台设计开发了抽注水多层同心球中子谱仪控制助手APP(以下简称“控制助手APP”),通过手机控制下位机,实现对抽注水多层同心球中子谱仪中的球层控制、显示和设备管理。

1 系统总体设计

如图1所示控制助手APP采用三层架构设计,包括界面层、业务逻辑层和数据访问层。界面层负责建立APP与用户之间的良好交互;业务逻辑层实现控制助手APP的功能;数据访问层则进行数据库的相关操作,处理APP运行产生的用户信息、指令码和日志信息等。

图1 控制助手APP整体架构

2 功能设计

2.1 功能模块设计

根据系统设计的目标和实际需要,控制助手APP主要包括用户管理模块、水层管理模块、数据管理模块、设备监控模块和系统设置模块共5个模块,其具体功能结构如图2所示。

图2 控制助手APP功能模块

2.1.1 用户管理模块

用户管理模块负责用户的注册、登录和注销等相关操作。在用户注册时,将用户信息保存至SQL Server数据库和SQLite数据库中,密码采用“MD5”方式加密保存,增加了用户信息的安全性。同时,设置用户注销功能,便于用户退出当前用户账号,返回登录界面切换账号。此外,为了防止用户因遗忘密码而无法登录,设置“密码找回”功能,用户通过回答注册时设置的密保问题找回用户密码。系统以用户名作为依据,对多球谱仪的运行数据进行分类管理。因此,用户需要完成账号注册和登录后才能使用控制助手APP。

2.1.2 水层管理模块

水层管理是控制助手APP的核心功能,用户可以根据不同需求灵活选择单层控制或组合控制,其中单层控制表示一次发送一个球层的抽水或注水操作的控制指令到下位机;组合控制表示依次自动发送用户制定的多个球层的抽水或注水操作的控制指令到下位机。下位机根据指令自动完成一个或多个球层的抽水或注水操作。在抽水和注水的过程中,在控制助手APP界面实时显示当前抽水或注水的时长、流量大小、球层的液位以及其他设备工作信息,便于用户直观了解谱仪状态。

2.1.3 设备监控模块

设备监控模块可以查看谱仪相关功能部件的运行状态信息,以便用户实时监控谱仪相关设备的状态。系统自动解析功能部件的运行状态数据判断设备是否发生故障,若发生故障,APP启动紧急停止功能,并通知用户处理该故障,同时也为用户提供故障诊断依据。

2.1.4 系统设置模块

系统设置模块负责设置APP数据显示格式等相关参数、连接目标WiFi、日志管理等。其中日志信息包含了用户的登录信息、谱仪操作信息和参数更改记录等。

2.1.5 数据管理模块

数据管理模块负责处理用户使用控制助手APP产生的指令码、操作记录、组合方案等数据,并将数据显示在控制助手界面上。数据保存在SQL Server和SQLite两个数据库中,其中SQL Server为远程服务器中的数据库,用于数据备份;SQLite为本地数据库,用于存储实时数据。安装控制助手APP后,每次启动时会自动进行数据同步,检测该用户在SQL Server数据库与SQLite数据库内的操作日志、控制方案等数据是否存在差异,若存在则根据SQL Server数据库进行同步,避免用户因手机损坏等意外以及使用多个手机进行谱仪控制操作而导致的本地数据缺失。

2.2 系统工作流程

控制助手APP的运行流程如图3所示。用户注册账号后登录APP,进入APP后用户可以在侧滑页中设置数据显示格式等相关参数,并输入IP和端口号连接目标WiFi。在连接目标WiFi后,用户可以在主界面中选择水层管理、设备管理和历史记录等功能进行操作。

图3 控制助手APP工作流程

3 关键功能实现

3.1 多线程开发

使用Android开发应用时,将消耗时间过长的任务放置于主线程中会导致应用的运行速度和响应速度变慢[13],因此在控制助手APP中使用Thread类和Runnable接口两种方式进行多线程开发,将数据收发、数据库连接和数据库操作等耗时长的任务放入子线程的run()方法中,主线程根据需要调用start()方法启动子线程执行操作。若子线程需要更改系统UI,可以通过Handler实现与主线程之间的消息传递,完成系统UI更改。其中,子线程调用Handler.sendMessage()方法将消息传递给主线程,主线程通过识别不同的Message.what和Message.obj对象内容,执行相应操作。

3.2 水层管理

用户在主界面中利用单选按钮组选择某一球层抽水或注水功能后生成功能指令码,APP将功能指令码发送到下位机实现单层控制。用户若需要一次性完成多个球层的控制,需要在组合方案置顶界面制定方案后,点击“组合控制”按钮启动组合控制功能;此时,APP根据接收的数据判断下位机是否正在执行指令操作。若正在执行指令操作,则等待完成;若下位机为空闲状态,则发送控制指令到下位机。如此循环直至组合方案的指令全部发送,则完成组合控制。

控制助手APP在发送控制指令到下位机前会检测数据库中当前指令所控制球层的状态,若为目标状态则弹出提示语并取消发送该控制指令,反之则将控制指令发送至下位机,防止用户对某球层进行连续注水或抽水等操作。下位机完成一条控制指令操作后发送球层的最新状态信息给APP,APP识别反馈信息后将所操作球层的最新状态与预期状态比较,若与预期状态不一致则表示存在故障,需要及时进行检查维修。

进行球层抽注水控制操作时,控制助手APP解析接收的数据并得到下位机发送的霍尔流量计脉冲信号的频率;根据流量计输出脉冲频率与流量之间的关系,并结合抽注水多层同心球中子谱仪实际抽注水情况进行校正,得到抽水或注水时的水流流量。同时,调用Date类对象获取开始工作和完成工作的时间,计算得到球层抽水、注水工作时间,并结合流量大小获得球层内的液体体积,将相关信息在主界面中实时显示。

3.3 WiFi通信

WiFi通信模式分为客户端模式和服务器模式,这两种模式通过继承Thread类封装成TCP_Client和TCP_Server两个线程,在线程内采用Socket通信实现控制助手APP与WiFi模块之间的通信。以用户选择客户端通信模式为例,输入目标的IP和端口号,点击“连接”按钮对IP和端口号进行判断,若正确则启动相应线程,连接目标WiFi;若错误则弹出提示语。成功建立WiFi通信后,通过调用Socket的getInputStream.read()方法获取输入流接收数据,调用getOutputStream.write()方法获取输出流发送数据。同时,设置setWifiNeverSleep()函数,修改手机WiFi设置选项,防止测量时间过长导致WiFi进入休眠状态和断开连接。

4 系统测试

将控制助手APP的API级别设置为21,保证控制助手APP可以在Android 5.0及以上版本的安卓智能手机上运行。控制助手APP在调试无误后生成apk文件进行相关测试。

4.1 UI测试和兼容性测试

在优测云服务平台选择兼容性测试和云真机项目进行在线测试。测试设备选择两种:(1)HUAWEI YAL-AL10型手机:运行内存为8.0 GB,存储为128 GB,处理器为HUAWEI Kirin 980,系 统 为 HarmonyOS 2.00;(2)HUAWEI TASAN00型手机:运行内存为8.0 GB,存储为256 GB,处理器为HUAWEI Kirin 990 5G,系统为HarmonyOS 2.00。

测试结果显示,控制助手APP可以在Android 5.0及以上版本的多种型号手机上流畅运行,无闪退和卡顿等现象;界面布局合理,人机交互友好,能够适应不同屏幕尺寸的手机。

4.2 用户管理

打开控制助手APP,首先会出现带有抽注水多层同心球中子谱仪logo的图片,持续1 s后进入APP登录界面,若用户尚未注册则进入注册界面完成注册。用户在登录界面输入账号和密码后,APP进行识别。若正确则进入主界面,若存在错误则会在错误位置显示红色错误标志,点击错误标志显示错误提示。若用户遗忘了密码,点击“忘记密码”后跳转至密码找回界面,输入账号和账号密保问题的正确答案后,系统提示“答案正确,该账号密码如下”即可找回密码。

4.3 谱仪球层控制测试

为检验控制助手APP是否满足谱仪球层控制要求,对控制助手APP进行谱仪球层抽注水控制实验。实验设备有抽注水多层同心球中子谱仪一台、HUAWEI YAL-AL10型手机一台、控制箱一个、USR-W610 WiFi模块一个、水箱一个、透明软管若干以及相关线缆。

模拟中子测量时的测量环境,将抽注水多层同心球中子谱仪放置于实验室内距离门2 m位置处,把控制箱放置于谱仪旁边,控制箱通过透明软管连接抽注水多球同心球中子谱仪。连接完成并检查正确性后接通电源。USR-W610 WiFi模块作为服务器创建名称为“USR-W610-49D8”的WiFi信号,测试现场如图4所示。

使用HUAWEI YAL-AL10型手机安装控制助手APP,登录APP后连接名称为“USR-W610-49D8”的WiFi信号,开始测试。

首先进行单层控制测试。在主界面中依次选择“注水+第一层”“注水+第二层”“注水+第三层”“注水+第四层”“注水+第五层”和“注水+所有层”功能,将控制指令发送到下位机;下位机接收到控制指令后,可以控制控制箱内的水泵和电磁阀完成指定球层注水操作。然后依次选择“抽水+第一层”“抽水+第二层”“抽水+第三层”“抽水+第四层”“抽水+第五层”和“抽水+所有层”功能,将控制指令发送到下位机,下位机接收到控制指令后,可以控制控制箱内的水泵和电磁阀完成指定球层抽水操作。选择“取消”功能,可以控制下位机停止当前操作。

控制助手APP工作时,在主界面中可以实时显示谱仪的状态,主界面如图5所示。主界面采用约束布局[14],可以适应不同屏幕尺寸的智能手机。界面上方显示谱仪5个球层的液位信息、当前操作项目和谱仪相关的设备信息。界面中间显示发送和接收数据,其中文字是指令码的注解。界面下方的5个指示灯显示谱仪的各个球层状态,其中绿色常亮表示该球层完成注水操作,绿色闪烁表示该球层正在进行注水操作,红色常亮表示该球层完成抽水操作,红色闪烁表示该球层正在进行抽水操作,灰色表示该球层未进行任何操作。

图5 控制助手APP主界面

进行组合控制测试。在主界面点击“方案定制”跳转方案制定界面,根据最优球层组合顺序制定控制方案。方案制定完成后,点击“应用”按钮返回主界面,点击“组合控制”按钮启动组合控制功能。当下位机空闲时,APP可以自动发送控制指令到下位机,下位机能够执行相应操作;当下位机繁忙时,APP则会等待,直至方案的所有控制操作全部完成。

测试结果表明,控制助手APP可以通过WiFi通信建立与下位机之间的通信,发送控制指令至下位机,下位机接收后可以执行指定操作;下位机发送谱仪状态信息至控制助手APP,经过解析后可以在主界面上实时显示谱仪和流量计等设备的状态;组合控制功能实现了球层自动化切换,减轻了操作人员的工作量。控制助手APP满足了手机端控制谱仪球层抽注水和监测谱仪状态的功能需求。

4.4 性能测试

控制助手APP的核心功能是控制谱仪球层进行抽水或注水作业,其响应时间直接影响着用户体验。因此以用户开始发送控制指令后等待下位机返回反馈信息的响应时间作为性能衡量标准,并与目前使用电脑USB通信方式控制的响应时间进行比较。测试以控制谱仪的第一层球层进行注水操作为目标,分别使用控制助手APP和电脑重复测量5次响应时间,取平均值为最终数据。

由表1测试结果可知,使用控制助手APP控制谱仪的平均响应时间为5.90 s,使用电脑控制谱仪的平均响应时间为5.89 s,两者基本相同。故控制助手APP能够满足手机端控制谱仪球层抽注水的性能需求。

表1 响应时间测试结果

5 结 语

本文基于Android Studio 4.2平台开发出抽注水多层同心球中子谱仪控制助手APP,设计了用户管理、水层管理、数据管理、设备管理和系统设置共5个功能模块,使用约束布局完成了APP界面设计,采用多线程技术实现了WiFi通信、单层控制、组合控制、谱仪状态显示和数据库操作等功能;结合远程SQL Server数据库和本地SQLite数据库,实现了用户管理、数据存储和数据备份功能,通过WiFi通信实现了与下位机的数据传输。经测试,控制助手APP可以在Android 5.0及以上版本的多种型号的手机上流畅运行,界面布局合理,人机交互友好;APP提供了组合控制功能,实现球层自动化切换,提升了操作的便捷性。控制助手APP较好地满足了手机端控制谱仪的球层抽注水的功能和性能需求,进一步完善了抽注水多层同心球中子谱仪系统。

猜你喜欢

控制指令谱仪下位
新型X波段多功能EPR谱仪的设计与性能
城轨车辆控制指令试验装置研制
基于Casper和Simulink的射电谱仪信号处理系统设计与实现
宏指令控制的多轴系统研究及实现
发射机房监控系统之下位机
景洪电厂监控系统下位机数据传输网络改造
CAN总线并发通信时下位机应用软件设计
放射性氙测量中的天然源γ谱仪校准技术