资料介绍
在海洋投弃式温盐深剖面测量中,需要进行大量的实时数据采集和可视化显示,经过软件处理后形成的曲线比原始数据更能给人直观的印象。C++ Builder是一种面向对象的可视化应用程序开发工具,为程序开发人员提供了十分轻松而快捷的开发环境。它以其友好的界面设计和方便的编程实现,广泛应用于工程实践中。本系统在C++ Builder环境下针对抛弃式温盐深剖面测量系统进行软件设计。其中利用C++ Builder进行数据的串行传输的方法,只要根据实际情况对代码稍做修改,即可应用到其他的以串口测量的系统,具有一定的通用性。
1 系统概述
该软件在Windows操作系统下以C++ Builder为开发平台,应用于海洋投弃式温盐深剖面测量系统中的实时数据采集与处理。如图1所示,其主要包含与下位机通信、实时数据处理、实时曲线显示和数据导出,浏览等部分。软件以RS 232方式与下位机进行通信。对接收的数据进行处理和温度盐度曲线绘制后可在每次测量结束后自动将所有数据存储到Realtime Data文件夹和Backup文件夹中。操作人员可以对历史数据进行查询,并根据需要打印。

2 串口通信
2.1 MSComm控件
MSComm(Microsoft Communications Contro1)控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。它的安装也十分简单,只需把VB安装目录下Mscomm.reg、Mscomm32.ocx、Mscomm32.dep这三个文件拷贝到Windows的system32目录下。然后用Windows下的注册工具regsvr32注册该OCX控件,剩下的工作是在C++ Builder中导入这个ActiveX控件,进入C++ Builder环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX控件页面上可以看到一个为电话图标的控件,这就是MSComm控件。
MSComm控件有很多属性,如CommPort属性用来设置或返回通信端口号,可以设置为1~16之间的任何值,本系统采用缺省值2;Settings属性以字符串形式设置或返回波特率、奇偶校验、数据位和停止位,本系统采用缺省值“9 600,n,8,1”;
PortOpen属性用来设置或返回通信端口的状态以及打开和关闭端口;InBufferSize和OutBufferSize属性分别设置接收和发送缓冲区分配的内存数量,单位为字节。
MSComm控件提供了两种处理通信问题的方法:(1)事件驱动方式,当串口上发生某一事件时,MSComm控件将解发OnComm事件,还可以检测并处理通信错误信息,从而采取相应的操作。(2)查询方式,在程序的每个串行口操作后,将不断检查CommEvent属性的值以查询事件和错误。本后台软件采取事件驱动方式,事件驱动方式相当于一般程序设计中的中断方式。
2.2 串口实现
在添加了MSComm控件后,采集工作之前还要对串口进行必要的初始化工作。实质上就是要在PC机与数据接收装置之间建立起一个共同遵守的协议,以使两者在接收或发送数据上保持协调一致。串口初始化部分代码如下:
if(MSComm1-》PortOpen==true)MSComm1-》PortOpen=
false;
MSComm1-》CommPort=StrToInt(comno.Trim().SubString
(comno.Length(),1)); //点击开始后才开启Timer1
MSComm1-》RThreshold=60;
//接收缓冲区每有1个字符时,
就会触发一次OnComm事件
MSComm1-》InputMode=1;
//设置传入数据的格式,0表示文本形式
MSComm1-》InBufferCount=0; //清除接收缓冲区
MSComm1-》InBufferSize=32000;
//设置MSComm1接收缓冲区为32 000 B
MSComm1-》PortOpen=true
把MSComm控件加入到窗体后,在主窗口系统设置菜单里加入串口设置菜单,在窗体中再加入Memo控件,Memo控件用来显示接收到的数据,在主程序加入代码:
void __fastcall TFormMain::N1Click(TObject *Sender)
{
MSCcomm= new TFormScom(this);
MSCcomm -》ShowModal();
MSCcomm -》Free();
}
为了方便串口通信参数的选择,设置几个Combo Box控件,将常用串口参数值默认显示在控件中。串口参数默认值设置的具体代码如下:
ComboBoxPort-》Text=ReadConfig(iniComFileName,“scom”,
“port”,“Com1”);
ComboBoxBaud-》Text=ReadConfig(iniComFileName,“scom”,
“baud”,“9600”);
ComboBoxDataBits-》Text=ReadConfig(iniComFileName,“
scom”,“databits”,“8”);
ComboBoxParity-》Text=ReadConfig(iniComFileName,“scom”,
“parity”,“1”);
ComboBoxStopBit-》Text=ReadConfig(iniComFileName,“scom”,
“stopbit”,“None”);
在使用MSComm控件开发抛弃式温盐深剖面测量数据采集系统时,采用事件驱动法处理通信问题,实现数据实时采集,即每当缓冲区有规定个数以上的新字符到达时或通信状态发生变化时,MSComm控件触发该事件并获取缓冲区的数据。主要是考虑MSComm控件在接收到数据事件发生时能及时响应并获取缓冲区中的数据,不需要一直让程序处于检测的状态下,而且可靠性高。
1 系统概述
该软件在Windows操作系统下以C++ Builder为开发平台,应用于海洋投弃式温盐深剖面测量系统中的实时数据采集与处理。如图1所示,其主要包含与下位机通信、实时数据处理、实时曲线显示和数据导出,浏览等部分。软件以RS 232方式与下位机进行通信。对接收的数据进行处理和温度盐度曲线绘制后可在每次测量结束后自动将所有数据存储到Realtime Data文件夹和Backup文件夹中。操作人员可以对历史数据进行查询,并根据需要打印。

2 串口通信
2.1 MSComm控件
MSComm(Microsoft Communications Contro1)控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。它的安装也十分简单,只需把VB安装目录下Mscomm.reg、Mscomm32.ocx、Mscomm32.dep这三个文件拷贝到Windows的system32目录下。然后用Windows下的注册工具regsvr32注册该OCX控件,剩下的工作是在C++ Builder中导入这个ActiveX控件,进入C++ Builder环境在Component菜单下选Import ActiveX Control,这时在列表中可以看到Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。在ActiveX控件页面上可以看到一个为电话图标的控件,这就是MSComm控件。
MSComm控件有很多属性,如CommPort属性用来设置或返回通信端口号,可以设置为1~16之间的任何值,本系统采用缺省值2;Settings属性以字符串形式设置或返回波特率、奇偶校验、数据位和停止位,本系统采用缺省值“9 600,n,8,1”;
PortOpen属性用来设置或返回通信端口的状态以及打开和关闭端口;InBufferSize和OutBufferSize属性分别设置接收和发送缓冲区分配的内存数量,单位为字节。
MSComm控件提供了两种处理通信问题的方法:(1)事件驱动方式,当串口上发生某一事件时,MSComm控件将解发OnComm事件,还可以检测并处理通信错误信息,从而采取相应的操作。(2)查询方式,在程序的每个串行口操作后,将不断检查CommEvent属性的值以查询事件和错误。本后台软件采取事件驱动方式,事件驱动方式相当于一般程序设计中的中断方式。
2.2 串口实现
在添加了MSComm控件后,采集工作之前还要对串口进行必要的初始化工作。实质上就是要在PC机与数据接收装置之间建立起一个共同遵守的协议,以使两者在接收或发送数据上保持协调一致。串口初始化部分代码如下:
if(MSComm1-》PortOpen==true)MSComm1-》PortOpen=
false;
MSComm1-》CommPort=StrToInt(comno.Trim().SubString
(comno.Length(),1)); //点击开始后才开启Timer1
MSComm1-》RThreshold=60;
//接收缓冲区每有1个字符时,
就会触发一次OnComm事件
MSComm1-》InputMode=1;
//设置传入数据的格式,0表示文本形式
MSComm1-》InBufferCount=0; //清除接收缓冲区
MSComm1-》InBufferSize=32000;
//设置MSComm1接收缓冲区为32 000 B
MSComm1-》PortOpen=true
把MSComm控件加入到窗体后,在主窗口系统设置菜单里加入串口设置菜单,在窗体中再加入Memo控件,Memo控件用来显示接收到的数据,在主程序加入代码:
void __fastcall TFormMain::N1Click(TObject *Sender)
{
MSCcomm= new TFormScom(this);
MSCcomm -》ShowModal();
MSCcomm -》Free();
}
为了方便串口通信参数的选择,设置几个Combo Box控件,将常用串口参数值默认显示在控件中。串口参数默认值设置的具体代码如下:
ComboBoxPort-》Text=ReadConfig(iniComFileName,“scom”,
“port”,“Com1”);
ComboBoxBaud-》Text=ReadConfig(iniComFileName,“scom”,
“baud”,“9600”);
ComboBoxDataBits-》Text=ReadConfig(iniComFileName,“
scom”,“databits”,“8”);
ComboBoxParity-》Text=ReadConfig(iniComFileName,“scom”,
“parity”,“1”);
ComboBoxStopBit-》Text=ReadConfig(iniComFileName,“scom”,
“stopbit”,“None”);
在使用MSComm控件开发抛弃式温盐深剖面测量数据采集系统时,采用事件驱动法处理通信问题,实现数据实时采集,即每当缓冲区有规定个数以上的新字符到达时或通信状态发生变化时,MSComm控件触发该事件并获取缓冲区的数据。主要是考虑MSComm控件在接收到数据事件发生时能及时响应并获取缓冲区中的数据,不需要一直让程序处于检测的状态下,而且可靠性高。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于C++Builder的太阳能电池测试软件设计
- 串口屏Modbus教程5-曲线控件和历史曲线控件V1.0
- 大彩串口屏控件教程14 - 串口屏历史曲线控件应用
- 大彩串口屏控件教程9 - 串口屏曲线控件应用
- 如何使用MATLAB和DSP2812 RTDX实时绘制电机的转速曲线 2次下载
- 使用串口绘制实时曲线的使用经验程序说明
- C++Builder XE2开发工具免费下载 49次下载
- 试飞实时数据分析方法 5次下载
- c++ builder学习教程(创世纪) 0次下载
- MATLAB的ROC曲线绘制比较研究
- 以C++Builder设计Modbus通信程序
- MCU51的串口调试工具
- CDX在C++Builder中的应用
- C++Builder中平面交互动画
- 基于PComm的串口通信实现
- 广州易显串口屏设置实时曲线控件实验流程 956次阅读
- C语言映射表在串口数据解析中的应用 915次阅读
- 七种编程语言的学习曲线 2k次阅读
- 基于TMS320C6713 DSP和GP2015芯片实现GPS卫星数据实时传输系统的设计 4.8k次阅读
- 电感阻抗频率曲线_Matlab绘制电感曲线实验 1.5w次阅读
- 采用AVR单片机和GTJ4-10A固态继电器实现实时测量监控系统的设计 1.7k次阅读
- 如何使用c++builder api函数编写出串行通信控制程序 2.2k次阅读
- GD32330C-START开发板试用体验:+ 串口USART收发数据 5.9k次阅读
- 基于STM32的printf串口数据输出 2.1w次阅读
- 一维、二维、三维电机的性能分析 4.4k次阅读
- labview串口接收数据_labview串口被动接收数据 6.9w次阅读
- labview串口数据解析 6w次阅读
- labview串口数据保存_labview如何对串口数据缓存 3.4w次阅读
- python串口接收数据 4.6w次阅读
- 绘制金字塔程序实现 1k次阅读
下载排行
本周
- 1MDD品牌三极管BC807数据手册
- 3.00 MB | 次下载 | 免费
- 2MDD品牌三极管BC817数据手册
- 2.51 MB | 次下载 | 免费
- 3MDD品牌三极管D882数据手册
- 3.49 MB | 次下载 | 免费
- 4MDD品牌三极管MMBT2222A数据手册
- 3.26 MB | 次下载 | 免费
- 5MDD品牌三极管MMBTA56数据手册
- 3.09 MB | 次下载 | 免费
- 6MDD品牌三极管MMBTA92数据手册
- 2.32 MB | 次下载 | 免费
- 7STM32G474 HRTIME PWM 丢波问题分析与解决
- 1.00 MB | 次下载 | 3 积分
- 8新能源电动汽车高压线束的铜铝连接解决方案
- 2.71 MB | 次下载 | 2 积分
本月
- 1爱华AIWA HS-J202维修手册
- 3.34 MB | 37次下载 | 免费
- 2PC5502负载均流控制电路数据手册
- 1.63 MB | 23次下载 | 免费
- 3NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
- 0.63 MB | 6次下载 | 1 积分
- 5UWB653Pro USB口测距通信定位模块规格书
- 838.47 KB | 5次下载 | 免费
- 6技嘉H110主板IT8628E_BX IO电路图资料
- 2.61 MB | 4次下载 | 1 积分
- 7苏泊尔DCL6907(即CHK-S007)单芯片电磁炉原理图资料
- 0.04 MB | 4次下载 | 1 积分
- 8苏泊尔DCL6909(即CHK-S009)单芯片电磁炉原理图资料
- 0.08 MB | 2次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191439次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183353次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论