基于VC++的光谱仪器测控软件框架
1引言
光谱仪器是进行光谱研究和物质光谱分析的装置, 其基本用途是测定被研究的光的光谱组成,包括它的波长、强度、与轮廓等。光谱仪器应具有测定各波长能量, 并能纪录显示光谱数据,显示的光谱图。光谱仪一般由光源和照明系统、准直系统、色散系统、成像系统以及接收、检测显示系统。其中色散系统的一般由步进机驱动机械结构进行工作, 达到分解入射复合光得到光谱的目的。其接收、检测显示多与电子学设计有关。接收可选的探测器有光电倍增管、电荷耦合器件等通过信号调理后进行数据采集,显示则通常以谱、图、曲线等直观形式提供给用户。光谱仪器的操作和显示离不开人机界面软件。高效研制方便于用户的光谱仪器测控软件是光谱仪器产品重要的一项任务。为实现对光谱仪器的测量控制,本文从对光谱仪器的测量功能分析入手,详细介绍了 VC++环境下对光谱仪器的波长驱动方法、数据采集方案、光谱数据的储存、读取等功能,建立了具有通用性的软件框架,对于快速创建光谱仪器测控软件具有借鉴性。
2光谱仪器测控软件功能需求
从用户对光谱仪器的使用要求及其自身的功能特点分析其测控软件的功能需求如下:
1) 波长的选择:一般由起始波长、终止波长、采样间隔三要素组成。用户通过设定三要素而进行测量得到所需的光谱数据;
2) 数据采集:数据采集可由下微机传输或仪表采集得到,可选用串口通讯、usb 或 GPIB 等总线实现, 并一般需要有定点采集和波长扫描功能;
3) 数据保存和读取:以一定格式保存数据和相关信息,如波段、采样间隔、采集次数等。
4) 曲线显示:便于用户直观判读数据和读取数据。软件的数据流图如图1.
3框架的各项功能实现思路
首先创建基于一个单文档或者对话框的 Visual C++6.0 工程,单文档的视图类最好选用 CFormView。
1) 驱动系统和采集单元初始化:在视图类中初始化系统总线,如串口的打开,GPIB 总线接口卡初始化,USB 设备查找等;
2) 添加界面控件,用编辑框接收用户的输入,单选框排他执行唯一性任务;
3) 针对不同的通信协议和接收仪器写采集代码;
4) 添加波长驱动、扫描、显示保存等功能。
5) 添加销毁功能,在软件退出时自动结束总线控制;如关闭串口等。
4主要功能模块设计
4.1 波长驱动选取及扫描功能设计
波长驱动及扫描功能有三个变量需要添加:起始波长,终止波长,采样间隔(或叫步距)。在资源编辑页面添加三个编辑框,并按照以下定义进行并在视图类的构造函数中初始一定的数值, 波段选择的是91~400。为方便更改可以采用预定义#define 语句。然后手动或自动创建一个线程函数,UINT StartSample(PVOIDpParam);用以可靠完成测量,不出现假死机的现象。
相关文章
- 2024-04-25DZN1自动土壤水分观测仪及其维护与维修
- 2022-05-11双重冗余PLC控制系统的可靠性与可用性研究
- 2024-09-14核电汽轮机用1Cr12Mo环锻件热处理工艺的探究
- 2023-08-03基于逆向工程的人体颌骨个体化三维实体重建研究
- 2024-09-24浅析海上平台暖通空调系统噪声
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。