文档库 最新最全的文档下载
当前位置:文档库 › 基于vs2010-mfc简易串口数据波形显示软件(入门篇)

基于vs2010-mfc简易串口数据波形显示软件(入门篇)

基于vs2010-mfc简易串口数据波形显示软件(入门篇)
基于vs2010-mfc简易串口数据波形显示软件(入门篇)

基于vs2010-mfc简易串口数据波形显示软件(入门篇)

软件版本vs2010旗舰版

文件—新建—项目

选择基本对话框语言—美国英语,若选择中国汉语,可能这版本没破解好,会有些问题。后面就一直下一步,直到完成。

在右边工具箱中,添加下面需要用到的控件。如下图

右击类向导---项目com 类名CcomDlg。

点击成员变量,分别给他们添加变量名。添加完如下图:

添加串口控件。右击插入Active控件(X),找到如下确定。界面出现串口控件(小电话一样的东东)

点击串口控件(小电话)右键添加变量,输入变量名m_mscomm ,同时下方出现mscomm1.h 和mscomm1.cpp,点击确定,坐标目录生成该两个文件

点击菜单栏工具---选择工具箱项(X)--点击COM组件,浏览找到TeeChart8.ocx,可由网上下载。

然后添加如下

之后再工具箱中最下面便可看到该控件

接下来拉出图形界面。

进入类向导,点击右上角 添加类(C)—>类型库中的MFC类(T)…

添加这5个类

这里有很多这里有很多这里有很多在comDlg.cpp文件中添加头文件

#include"CTChart.h"

#include"CAxis.h"

#include"CAxes.h"

#include"CScroll.h"

#include"CSeries.h"

双击teechart,添加曲线Add

这里模板很丰富,这里我们选择FastLine

标题命名、初值点设置Data中、左轴底轴显示设置在Axis中,以及其他功能

到此,基本框架已经搭好了后面添加程序

双击打开串口按钮

添加代码如下:

void CcomDlg::OnBnClickedButtonOpen()

{

// TODO: 在此添加控件通知处理程序代码

if( !m_mscomm.get_PortOpen())

{

m_mscomm.put_PortOpen(true);

SetDlgItemText(IDC_BUTTON_OPEN,_T("关闭串口"));

AfxMessageBox(_T("串口打开成功"));

}

else

{

m_mscomm.put_PortOpen(FALSE);

SetDlgItemText(IDC_BUTTON_OPEN,_T("打开串口"));

}

}

双击发送按钮。添加代码如下:

void CCommTestDlg::OnBnClickedButtonSend()

{

// TODO: 在此添加控件通知处理程序代码

UpdateData(true); //读取编辑框内容

m_mscomm.put_Output(COleVariant(m_EditSend));//发送数据UpdateData(false); //更新编辑框内容

}

双击清除接收区按键。添加代码:

void CCommTestDlg::OnBnClickedButtonClear()

{

// TODO: 在此添加控件通知处理程序代码

m_EditReceive.Empty();//清除接收对话框中的数据

UpdateData(FALSE);

}

双击串口combo box框,添加代码如下:

void CcomDlg::OnCbnSelchangeComboCom()

{

// TODO: 在此添加控件通知处理程序代码

if(m_mscomm.get_PortOpen())

{

m_mscomm.put_PortOpen(FALSE);

}

m_mscomm.put_CommPort( m_comsel.GetCurSel()+1 );

UpdateData(FALSE); //更新编辑框内容

}

双击波特率combo box框添加代码如下

void CcomDlg::OnCbnSelchangeComboBandrate()

{

// TODO: 在此添加控件通知处理程序代码

CString temp;

int i=m_bandratesel.GetCurSel();

int speed;

switch(i)

{

case 0:

speed=2400;

break;

case 1:

speed=4800;

break;

case 2:

speed=9600;

break;

case 3:

speed=19200;

break;

case 4:

speed=38400;

break;

}

temp.Format(_T("%d,n,8,1"),speed);

m_mscomm.put_Settings(temp);

}

右击串口控件,刚才那“电话“一样的东西—添加消息处理函数

添加编辑----生成串口消息处理函数,添加代码

//注意:这里只做了简单处理,接收区只是16进制代码

void CcomDlg::OnCommMscomm1()

{

// TODO: 在此处添加消息处理程序代码

VARIANT variant_inp;

double chartdata;

COleSafeArray safearray_inp;

long len,k;

byte rxdata[1024]; //设置BYTE 数组

CString strtemp;

if(m_mscomm.get_CommEvent()==2) //值为2 表示接收缓冲区内有字符{

variant_inp=m_mscomm.get_Input(); //读缓冲区消息

safearray_inp=variant_inp; ///变量转换

len=safearray_inp.GetOneDimSize(); //得到有效的数据长度

for(k=0;k

{

safearray_inp.GetElement(&k,rxdata+k);

for(k=0;k

{

strtemp.Format(_T(" %x "),*(rxdata+k)); //数据之间增加1或2个空格

m_EditReceive+=strtemp;

chartdata =_ttof(strtemp);

CSeries(m_chart.Series(0)).Add(chartdata,_T(""),1);

CAxes chartaxis=(CAxes)m_chart.get_Axis();

CAxis chartaxisbottom=(CAxis)chartaxis.get_Bottom();

chartaxisbottom.Scroll(1,TRUE);

}

}

UpdateData(FALSE); //更新编辑框内容

}

在comDlg.cpp文件中注释点下面一行

在comDlg.cpp文件的BOOL CcomDlg::OnInitDialog()中添加初始化代码

m_mscomm.put_CommPort(1); //选择COM1

m_mscomm.put_Settings(_T("9600,n,8,1"));//波特率9600无检验位,8个数据位,1个停止位m_mscomm.put_InBufferSize(1024); //接收缓冲区

m_mscomm.put_OutBufferSize(1024);//发送缓冲区

m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取

m_mscomm.put_InputMode(1);//以二进制方式读写数据

m_mscomm.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件

m_mscomm.put_Settings(_T("9600,n,8,1"));//波特率9600无检验位,8个数据位,1个停止位

//chart初值随意

CSeries(m_chart.Series(0)).Add(68,_T(""),1);

编译发现出错

无法打开预编译头文件:“Debug\opencv.pch”: No such file or directory

解决方法

stdafx.cpp右键——属性,预编译头选“创建(Y/c)”.点击应用—确定

再次编译(Crl+F7)

点击调试运行

为了调试是否成功,这里连接了一个stm32开发板验证。Stm32串口接收程序中,每次中断分别循环发送十六进制37 35 39 ’a’

调试助手中接收37 35 39 61

OK,到此结束,一个简易的串口接收数据的上位机显示软件便完成,可以在此基础上修改自己所需要的形式!

By DragonF

2014/8/15

基于MATLAB实时串口数据采集与曲线显示

全日制普通本科生毕业设计 基于MATLAB实时串口数据采集与曲线显示REAL-TIME SERIAL DATA ACQUISITION AND FIGURE SHOW BASED ON MATLAB 学生姓名: 学号: 年级专业及班级: 指导老师及职称: 学院: 提交日期:2011年5月

全日制普通本科生毕业论文(设计) 诚信声明 本人郑重声明:所呈交的本科毕业论文(设计)是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。 毕业论文(设计)作者签名: 年月日

目录 摘要 (1) 关键词 (1) 1前言 (2) 1.1 Matlab实时串口数据采集研究现状及发展趋势 (2) 1.2研究的目的和意义 (4) 1.3论文的组织结构 (5) 2Matlab下实时串口数据采集概要 (5) 2.1 Matlab的Serial类 (5) 2.2 数据采集 (6) 2.3曲线显示 (7) 3实时串口数据采集与曲线显示的实现 (8) 3.1实时串口通信的实现 (8) 3.2数据采集的实现 (9) 3.3曲线显示GUI的实现 (10) 4基于MATLAB的实时串口数据采集与曲线显示的具体做法 (12) 4.1数据采集的一般流程 (12) 4.1.1创建接口对象并设置属性 (12) 4.1.2打开串口设备对象 (12) 4.1.3读写串口操作 (13) 4.1.4关闭并清除设备对象 (13) 4.2基于Matlab中断方式的实时串行通信编程 (13) 4.3绘制采集数据的曲线波形和数据显示 (14) 4.3.1绘制曲线波形 (14)

数据采集系统的软件设计

1104322035 公开 TP241 代号 分类号 学号 密级 10701 题(中、英文)目 数据采集系统的软件设计 Software Design of Data Acquisition System 作者姓名 张瑜 朱荣明 教授 工学 提交论文日期 二○一四年三月 控制理论与控制工程 指导教师姓名、职称 学科门类 学科、专业

西安电子科技大学 学位论文独创性(或创新性)声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:日期 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 (保密的论文在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名:日期 导师签名:日期

摘 要 随着工业技术需求的不断加深,计算机技术在电子仪器测试领域得到了广泛的应用,新的测试平台虚拟仪器成为了当前测试领域的发展主流。虚拟仪器不仅极大的提高了测试手段,而且具有实现容易、扩展性强,在信号调理、数据存储、数据分析、数据显示等多个方面与传统的测试仪器相比,具有十分突出的优点,使得人类的测试技术跨入了一个新的时期。 本文运用虚拟仪器开发平台LabWindows/CVI设计了一个数据采集系统软件。软件可以对飞行控制系统测试的模拟信号、离散信号和网络数字信号进行采集、显示、存储和回放。本文先介绍了虚拟仪器、软件开发平台LabWindows/CVI和多线程技术的相关知识,然后对数据采集系统软件的需求进行了分析,提出了数据采集系统的概要设计。根据系统的概要设计,结合人机工程学相关理论,开发了简单、友好、方便、一致的人机交互界面。同时,对软件的数据采集和记录、通道配置、通道监控和数据回放功能,在LabWindows/CVI软件开发环境下进行编程实现。经过测试表明:软件的界面显示直观、操作简便;程序设计思路正确、性能良好,满足设计要求。 关键词:虚拟仪器 LabWindows/CVI 数据采集 人机界面

基于单片机实时时钟-串口显示

/*******************说明:************************** 将实时时钟数据通过串口发送 -------------------------------------------------- 基于51/AVR最小系统板及DS1302实时时钟模块编写 **************************************************/ #include #define uchar unsigned char #define uint unsigned int //DS1302引脚定义,可根据实际情况自行修改端口定义 sbit RST=P1^3; sbit IO=P1^2; sbit SCK=P1^1; //DS1302地址定义 #define ds1302_sec_add 0x80 //秒数据地址 #define ds1302_min_add 0x82 //分数据地址 #define ds1302_hr_add 0x84 //时数据地址 #define ds1302_date_add 0x86 //日数据地址 #define ds1302_month_add 0x88 //月数据地址 #define ds1302_day_add 0x8a //星期数据地址 #define ds1302_year_add 0x8c //年数据地址 #define ds1302_control_add 0x8e //控制数据地址 #define ds1302_charger_add 0x90 #define ds1302_clkburst_add 0xbe //初始时间定义 uchar time_buf[8] = {0x20,0x10,0x09,0x14,0x23,0x59,0x50,0x02};//初始时间uchar readtime[14];//当前时间 uchar sec_buf=0; //秒缓存 uchar sec_flag=0; //秒标志位 //功能:延时1毫秒 //入口参数:x //出口参数:无 //说明:晶振为12M void Delay_xms(uint x) { uint i,j; for(i=0;i

数据采集软件使用说明

数据采集软件使用说明 一.软件安装 点击数据采集系统的安装文件,按照指示安装 二.驱动程序安装 如果是购买的数据线是USB接口的,请先安装驱动程序,在“USB驱动程序”目录下,点击“CH341SER”文件,安装指示安装 三.界面说明 四.操作说明 1.连接 打开软件后,点击【打开设备】按钮,软件自动搜寻设备,当前值窗口将有数据显示,【打开设备】按键变为【关闭设备】。 如果弹出 则表示设备连接失败,请按照说明书所附的故障处理来检查原因。 2.参数设定 在设备连接和断开的状态下都可以设置系统参数,点击【参数设置】按钮,参数设置窗口数据变成绿色(见下图),表示可以修改,数据修改完成后,再点击此按钮,参数保存,窗口恢复原样。

参数说明 1)标准尺寸 表示零件的名义尺寸 2)上公差 允许与标准尺寸的上偏差值 3)下公差 允许与标准尺寸的下偏差值 4)采集间隔 数据自动采集保存的间隔时间 5)测量单位 采集数据的单位由用户自己定义,可以是毫米、英寸和度 6)提示音 在数据保存时选择是否需要提示音 7)工件名称 工件名称用户可自己命名 8)操作员 操作员名称用户可自己命名 3.数据保存 数据保存可以是手动保存和自动保存,点击【手动采集】按钮,数据可以保存一条记录,点击【自动采集】按钮,可以按照参数设定中自动采集的时间来自动记录数据,记录过程中再点击该按钮可以停止采集。 点击【清除记录】按钮,可清除当前记录的数据 点击【保存导出】按钮,可把数据保存成EXCEL格式文件,做进一步处理。 五.故障处理 如果点击【打开设备】,显示找不到可用串口,请按下面的提示检测问题 1)检测设备是否打开 2)检测数据线是否连接正常 3)检测数据线是否被电脑识别 a.如果是USB数据接口请检测驱动程序是否安装,并在WINDOW的设备管理器中 找到已安装的设备 b.设备管理器的检测方式: 选择“我的电脑”,点击鼠标右键,在菜单中点击“属性”,弹出下面窗口 然后再点击“硬件”这一栏

串口采集数据,表格显示

竭诚为您提供优质文档/双击可除串口采集数据,表格显示 篇一:基于matlab实时串口数据采集与曲线显示 全日制普通本科生毕业设计 基于matlab实时串口数据采集与曲线显示 Real-timeseRialdataacquisitionandFiguReshow basedonmatlab 学生姓名: 学号: 年级专业及班级: 指导老师及职称: 学院: 提交日期:20xx年5月 全日制普通本科生毕业论文(设计) 诚信声明 本人郑重声明:所呈交的本科毕业论文(设计)是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对

本文的研究做出重要贡献的个人和集体在文中均作了明确 的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。 毕业论文(设计)作者签名: 年月日 目录 摘要1关键词11前言2 1.1matlab实时串口数据采集研究现状及发展趋势2 1.2研究的目的和意义4 1.3论文的组织结构52matlab下实时串口数据采集概要5 2.1matlab的serial类5 2.2数据采集6 2.3曲线显示73实时串口数据采集与曲线显示的实现8 3.1实时串口通信的实现8 3.2数据采集的实现9 3.3曲线显示gui的实现104基于matlab的实时串口数据采集与曲线显示的具体做法12 4.1数据采集的一般流程12 4.1.1创建接口对象并设置属性12 4.1.2打开串口设备对象12 4.1.3读写串口操作13

4.1.4关闭并清除设备对象13 4.2基于matlab中断方式的实时串行通信编程13 4.3绘制采集数据的曲线波形和数据显示14 4.3.1绘制曲线波形14 4.3.2数据显示15 4.3.3采集图像15 4.4扩展功能——发送数据175结论17参考文献18致谢19 附录19附录120 基于matlab实时串口数据采集与曲线显示 摘要:数据采集是获取信息的基本手段,数据采集技术作为信息科学的一个重要分支,它研究信息数据的采集、存储、处理及控制等作业,具有很强的实用性,与传感器、信号测量与处理、微型计算机等技术为基础而形成的一门综合应用技术。本设计是在matlabR20xxa版本中以串口通信实时接收目标系统数据,将采集的数据进行时间同步和字对齐处理,并在matlab的数据采集工具箱支持下,利用图形界面gui的设计,直观的实时显示数据曲线。设计得重点在于在matlab上实现串口数据同步采集与处理,接收数据的时间同步和字对齐,同时扩展了发送数据的功能。关键词:matlab;gui;实时串口;数据采集;曲线显示;

Matlab与51单片机的串口通信

数字信号处理2012电子信息工程专业答辩报告

Matlab与51单片机的串口通信 一、简介 从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrument control toolbox),提供了对RS-232/RS-485通信标准串口(九针串口)通信正式支持(本实验采用USB转串口)利用该工具箱serial类及instrcallback()回调函数,能可靠地进行实时串地通信。Matlab支持面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用serial函数就可创建串口对象,通过定义串口对象的属性,能定义串口的通信模式,从串口对象属性也能了解串口的状态,即可以通过MATLAB的串口通讯函数读写数据。 二、 Matlab串口函数 serial 创建一个串口对象,格式:s = serial('coml' ) fopen 打开串口对象,格式:fopen(s) fwrite 其他程序能对该串口进行读写操作fwrite(s,’’) fread 读取串口数据,格式: fread(s) fclose 关闭串口对象,格式:fclose(s) free 解除Matlab对串口对象的控制,使 delete 删除对象s,格式:delete(s) clear 从工作空间中删除对象s,格式:clear(s) 三、实现功能 利用MATLAB串口通信函数,读写51单片机(STC89C52R+)数据,运用keil编写时钟程序,烧录到单片机中,时钟程序实现的功能是实现时钟的显示,并且能用开发板上的三个按钮进行时钟的修改,一个按钮进入修改模式(复位),另两个实现时间的增减。编辑MATLAB程序,实现对单片机的控制。读写串口操作。初始化并打开串口调协对象之后,现在可以对串口设备对象进行读写操作,串口读写操作支持二进制和文本(ASCII)两种方式。当Matlab通信数据采用西方(ASCII)方式时,读写串口设备命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备命令分别是fread、fwrite。

matlab串口实时波形显示

作者:GG 功能:实现matalb与PC外设通讯 本例:串口232与外设单片机51通讯。实时监控51数据并且实时图形显示 时间:2011—9—16 简介:实现该功能使用M脚本文件和函数文件。 第一个文件连接串口和打开串口,设置了串口的一些参数和触发事件。连接串口COM5。有关该方面的知识请自行百度I/O文字流。 第二个文件是时间回调函数,相当于其他语言中例如C语言的中断函数 第三文件是关闭串口和清除列连接。并且清除中间TXT中介文件内容 下面是源文件 第一个: clear all s=serial('COM5');%打开串口 s.BytesAvailableFcnMode='byte';%设置事件触发为接受触发 s.InputBufferSize=5000;%设置接受缓冲区大小为5000个字节 s.BytesAvailableFcnCount=10;%每次接受到50个数据时候触发事件 s.BaudRate=19200;%设置通讯波特率 s.BytesAvailableFcn=@my_callback;%指向触发事件函数 fopen(s);%打开串口 第二个 function my_callback(obj,event) out=fread(obj,10,'uint8');%串口处读出50个数据 fid=fopen('G1.txt','a+');%打开文件并且追加 fprintf(fid,'%3d',out); fclose(fid); speed=textread('G1.txt','%u'); plot(speed); disp('save ok!'); end 第三个 fclose(s);%关闭串口 delete(s);%删除串口变量 clear all; fid=fopen('G1.txt','w');%清除中间文件txt a=[]; fprintf(fid,'%s',a); fclose(fid); clear all;%清除所以变量

关于数据采集技术的内容

关键词:声卡数据采集MATLAB 信号处理 论文摘要:利用数据采集卡构建的数据采集系统一般价格昂贵且难以与实际需求完全匹配。声卡作为数据采集卡具有价格低廉、开发容易和系统灵活等优点。本文详细介绍了系统的开发背景,软件结构和特点,系统地分析了数据采集硬件和软件设计技术,在此基础上以声卡为数据采集卡,以MATLAB为开发平台设计了数据采集与分析系统。 本文介绍了MATLAB及其数据采集工具箱, 利用声卡的A/ D、D/ A 技术和MATLAB 的方便编程及可视化功能,提出了一种基于声卡的数据采集与分析方案,该方案具有实现简单、性价比和灵活度高的优点。用MATLAB 语言编制了相应软件,实现了该系统。该软件有着简洁的人机交互工作界面,操作方便,并且可以根据用户的需求进行功能扩充。最后给出了应用该系统采集数据的应用实例。 1绪论 1.1 课题背景 数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据采集,又称数据获取,就是将系统需要管理的所有对象的原始数据收集、归类、整理、录入到系统当中去。数据采集是机管理系统使用前的一个数据初始化过程。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。 数据采集(Data Acquisition)是将被测对象(外部世界、现场)的各种参量(可以是物理量,也可以是化学量、生物量等)通过各种传感元件作

适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储记录的过程。 被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,都以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,包括对连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量数据。 在智能仪器、信号处理以及自动控制等领域,都存在着数据的测量与控制问题,常常需要对外部的温度、压力、流量、位移等模拟量进行采集。数据采集技术是一种流行且实用的技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展态势。 数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

基于C++Builder的串口数据实时曲线绘制的实现

基于C++Builder的串口数据实时曲线绘制的实现 范寒柏, 赵建锐, 谢汉华时间:2011年10月27日来源:微型机与应用2011年第14期 关键词:C++ Builder实时曲线MSComm控件串行通信 摘要:介绍了在C++ Builder 6.0软件开发环境下设计温盐深实时数据采集与处理系统的方法,其中PC机与数据接收装置之间的串行通信采用MSComm串行通信控件来实现,并给出了相应的程序代码,利用模拟数据源模拟现场采集数据,将实地测量得到的温度和电导率值依次通过串口传输到本软件中,结果证实系统运行稳定,该后台软件以实时曲线绘制的方式形象、直观地显示了采集的温盐深数据,并能把盐度、密度、声速的曲线绘制出来,运行良好。 关键词:C++ Builder; 实时曲线; MSComm控件; 串行通信 在海洋投弃式温盐深剖面测量中,需要进行大量的实时数据采集和可视化显示,经过软件处理后形成的曲线比原始数据更能给人直观的印象。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

通用大数据采集系统操作流程

通用税务数据采集软件的操作 目录 海关完税凭证发票(进口增值税专用缴款书)的操作流程 (1) 一、海关凭证抵扣,在通用数据采集软件里,分6步操作 (1) 二、以上6个步骤的具体说明 (1) 三、常见问题 (4) 铁路运输发票的操作流程 (6) 一、运输发票抵扣,在通用数据采集软件里,分6步操作 (6) 二、以上6个步骤的具体说明 (6) 三、常见问题 (9)

海关完税凭证发票(进口增值税专用缴款书)的操作流程 一、海关凭证抵扣,在通用数据采集软件里,分6步操作: 1、下载安装软件到桌面 2、打开软件第一步‘新增企业’(录入公司的税号和全称) 3、软件里第二步‘新增报表’(设置申报所属期) 4、软件里第三步‘纵向编辑’(录入发票内容) 5、软件里第四步‘数据申报’(把录入的内容生成文件,便于上传国税申报网) 6、国税申报网上传录入的发票数据(第5点‘数据申报’生成的文件上传) 二、以上6个步骤的具体说明 1、下载安装软件到桌面 进入申报网页htt://100.0.0.1:8001—服务专区“软件下载”—通用税务数据采集软件2.4(一般纳税人版)右键目标另存为—ty24双击安装—安装完成桌面上出现图标 2、打开软件第一步‘新增企业’(录入公司的税号和全称)

进入通用税务数据采集软件后,点击‘新增企业’,输入本企业的税号与公司名称,输完后点击确定。 3、软件里第二步‘新增报表’(设置申报所属期) 鼠标左键点左边”目录”-“海关完税凭证抵扣清单”,点中后,右键点“新增报表”或点击上方的新增报表,所属区间就是选企业要抵扣的月份,选好后点击确定 4、软件里第三步‘纵向编辑’(录入发票内容) 点新增企业下方的“纵向编辑”,弹出“记录编辑”窗口,同一条记录要录入两次发票信息,第一次录入发票信息,全部填好后,点保存并新增,弹出” 数据项目确认”的窗口,第二次录入发票信息。 ●第一次发票录入信息详细说明如下:

matlab串口通信

摘要:结合单片机和Matlab两者优点,基于事件驱动中断通信机制,提出一种Matlab环境下PC机与单片机实时串行通信及数据处理方法;完成单片机数据采集系统与PC机RS-232/RS-485串行通信及其通信数据分析处理、文件存储、FIR滤波及图形显示;简化系统开发流程,提高开发效率。该方法已成功应用于一个PIC16F876单片机应用系统实例之中。 关键词:PIC16F876 Matlab 串口通信 RS-232 事件驱动回调函数 引言 Matlab是由美国Mathworks公司开发面向理论分析研究、工程计算数据处理和缓图一套具有强大功能软件系统。其中Matlab语言是一种以矩阵为基本运算单元解释执行高级语言,编程简例,只要几条语句就能实现诸如FFT变换、FIR/IIR滤波等数据分析处理,易于掌握。从Matlab6.0版本开始,Mathworks 公司在软件中增加了设备控制箱(instrument control toolbox),提供了对RS-232/RS-485通信标准串口通信正式支持。利用该工具箱serial类及instrcallback()回调函数,能可靠地进行实时串地通信。为此,笔者充分结合单片机和Matlab优点,基于事件驱动中断通信机制,提出了一种Matlab环境下PC机与单片机实时串行通信数据处理方法,极大地简化开发流程,提高了系统开发效率。另外,与目前普遍采用基于Matlab查询方式下非实时串行通信技术相比,这种方法实用性也大大增强了。 https://www.wendangku.net/doc/5a5201761.html,提示请看下图: 1 系统总体设计简介 下面以Mircochip公司PIC16F876单片机为下位机,PC机为上位机组成实时数据采集处理系统为例,介绍基于Matlab环境下PC机与单片机串行通信实时数据处理方法实现。数据采集系统结构框图如图1所示。PC机串口与单片机USART 口通过MAX232电平转换芯片相连,系统工作时,Matlab通过调用设备控制工具箱中serial类及相关函数。来创建串口设备对象,得到设备文件句柄,从而以操作文件方式实现对PC机串行口读写操作。因而PC机可以通过Matlab向串行

Eclipse数值模拟软件问答(初级)

Eclipse数值模拟软件问答(初级) 1. ECLIPSE输出结果文件是哪些? .GRID或.FGRID: 网格文件 .EGRID: 网格文件,与GRID格式不同,文件要小的多。(用关键字GRIDFILE来控制输出类型) .INIT或.FINIT: 属性文件。(用关键字INIT来控制输出) .PRT: 报告输出。文件很大,模型处理及计算结果详细报告。(RPTGRID,RPTPROP,RPTSOL,RPTSCHED控制输出) .LOG: 后台作业时的输出报告,文件比PRT要小很多。可用于错误检查。 .DBG: Debug文件,一般不用。可用于检查ECLIPSE如何处理输入参数。 .SA VE: 用于快速重启。(用关键字SA VE来控制输出) .RFT:RFT计算结果。(用关键字WRFTPLT来控制输出) .FLUX: 流动边界。(用关键字DUMPFLUX来控制输出) .Snnnn或.UNSMRY: 图形文件输出(在SUMMARY部分定义) .Xnnnn或.UNRST: 重启文件输出(用RPTRST,RPTSOL或RPTSCHED来控制输出)2. ECLIPSE输出文件都有什么格式? 格式化输出:可读文件,文件大。(用关键字FMTOUT来控制) 非格式化输出:不可读文件,文件小。 多输出文件:每一时间步一个输出文件。 单文件输出:所有时间步输出到一个文件。(用关键字UNIFOUT来控制) ECLIPSE缺省输出:非格式化,多文件输出。 3. ECLIPSE数据文件分几部分,各部分定义什么数据类型? ECLIPSE数据类型分八部分,各部分内的关键字除几个个别的外不能混用。 RUNSPEC: 定义模型维数以及模型基本类型,包括模型网格维数,最大井数,井组数,流体类型,输出类型控制等。 GRID: 定义模型网格和属性,包括顶部深度,厚度,孔隙度,渗透率,净毛比,一般由前处理软件Flogrid或Petrel输出。 EDIT: 编辑孔隙体积,传导率。 PROPS: 流体PVT及岩石数据,包括油、气体积系数,粘度随压力变化,水的体积系数,粘度;油,气,水地面密度等。岩石数据是相渗曲线和毛管压力。 REGIONS: 分区数据,包括流体分区,岩石分 区,储量区,平衡区等。 SOLUTION: 平衡区数据,包括油水界面、油气界面、参考压力、参考深度、水体参数。 SUMMARY: 计算结果输出,包括油田,井组,单井的油、气、水产量,压力输出,网格的压力,饱和度输出等。 SCHEDULE: 动态数据部分,包括定义井位,射孔,产量,压力,历史拟合,预测等。 4. 在RUNSPEC中定义什么内容?

数据采集系统

目录 摘要 第1章引言 (3) 第2章研华ADAM模块简介 (4) 第2.1节 ADAM4017模拟量输入模块 (4) 第2.2节 ADAM-4520 隔离转换器 (4) 2.2.1 RS-232接口和RS-485接口 (5) 第3章监控组态软件概述 (7) 第3.1节组态与监控组态软件 (7) 第3.2节组态王6.5的介绍 (7) 3.2.1 组态王6.5的程序组成 (8) 3.2.2 组态王6.5变量和命令语言 (10) 第4章数据采集系统的总体结构 (12) 第4.1节数据采集系统的硬件结构 (12) 第4.2节数据采集系统的监控界面设计 (13) 4.2.1 通讯组态 (13) 4.2.2 画面组态 (19) 第5章结论 (24) 参考文献 (26) 致谢 (27)

摘要 文章介绍了以数据采集模块,通讯模块和监控组态软件为基础的多通道模拟量数据采集系统。系统采用研华ADAM40178通道A/D模块进行现场数据的采集,通过研华ADAM4520模块传输到计算机,利用组态王软件对数据进行分析处理,并实时显示数据。 本系统数据库技术、计算机图形接口技术于一体, 实现了系统的动态显示、报警、数据记录, 并提供友好的人机界面, 可靠性高、可维护性强。 关键词:数据采集系统;ADAM4017;ADAM4520;组态王软件 Abstract This article introduced a data acquisition system based on data acquisition module,communication module and monitoring and control configuration software.It use YanHua ADAM4017 PLC to make acquisition of those field data.Then we use YanHua ADAM4520 module to transmite to the computer making data processing and analysis with Kingview softwre and at the same time ,displaying the data. This system includes control technology,database technology and computer graphics interface technology,it achieves dynamic display and warning,data records. In addition,our system provides friendly man-machine interface with advantages such as high reliability and good maintainability. Keywords:data acquisition system,ADAM4017,ADAM4520,Kingview softwre

MATLAB串口通信

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%本程序主要实现串口控制三轴转台进行自动标定,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%查找串口对象,若串口一开始被占用,需要加上这段程序释放串口,若串口没有被占用,则不需要这段程序 scoms=instrfind; %%尝试停止、关闭删除串口对象 stopasync(scoms); fclose(scoms);%关闭串口 delete(scoms);%释放串口%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% clear all;clc; %%%%%串口配置通道1 global s; s=serial('COM13');%设置串口号 s.baudrate=57600;%设置波特率 s.parity='none';%校验位 s.stopbits=1;%停止位 s.databits=7;%数据位 s.timeout=2;%一次读/写的时间最长为0.5s s.InputBufferSize=1024;%输入缓冲区 s.OutputBufferSize=1024;%输出缓冲区 %s.BytesAvailableFcnMode='byte';%中断触发事件为'bytes-available event' %s.BytesAvailableFcnCount=8;%接收缓冲区每收到n个字节时,触发回调函数%s.BytesAvailableFcn={'cmd_rec_callback',handles};%得到回调函数句柄fopen(s);%%%%打开串口 fclose(s); %%%%%串口配置通道2 global s2; s2=serial('COM15');%设置串口号 s2.baudrate=460800;%设置波特率 s2.parity='none';%校验位 s2.stopbits=1;%停止位 s2.databits=8;%数据位 s2.timeout=2;%一次读/写的时间最长为0.5s s2.InputBufferSize=1024;%输入缓冲区 s2.OutputBufferSize=1024;%输出缓冲区 %s.BytesAvailableFcnMode='byte';%中断触发事件为'bytes-available event' %s.BytesAvailableFcnCount=8;%接收缓冲区每收到n个字节时,触发回调函数%s.BytesAvailableFcn={'cmd_rec_callback',handles};%得到回调函数句柄fopen(s2);%%%%打开串口 fclose(s2); %InitPos(1)=InitPos(1)+0.3 %Pos1=num2str(InitPos(1)'); %Pos1=['Q010',Pos1(1,:),'$']; %A=[00000000000]; %fwrite(s2,A,'uint8') %AA=fread(s2,11,'uint8')

数值模拟及软件应用-02-1

数值模拟的概念基础知识 Excel 在数值模拟中的应用MatLab 软件应用Ansys WorkBench 简介 1. 2. 3. 4. 5. 及软件应用 数值模拟 基础知识 2. ?用简单易懂的方式和例子,说明数值模拟的思想; ?掌握一些简单的数值计算方法;?数值模拟思想在专业问题中的应用。 数值模拟的本质?在理论家眼里,大坝是一堆偏微分方程... ?神秘的偏微分没有理论解 数值模拟的本质 ?试坏了才知道结果 ?在实验员眼里,大坝是个黑箱... 数值模拟的本质?每一个单元都符合:牛顿定理,建立平衡方程; ?每一个单元都符合:应力—应变关系,建立物理方程。 ?单元之间,符合:作用力与反作用力定理。 ?所有单元联合,组成方程组求解。 数值计算,化整为零 ?数值求解偏微分方程 数值模拟的本质 ?数值模拟的本质是:将问题离散化,利用计算机求解。 实际问题数学模型数值方法运行程序输出结果 数学化离散化程序化(理论分析) 编制程序(数值模拟) 12 34 56

7 D are De sign 水工进水塔intake tower 2011-2014青海省果洛藏族自治州—黄河玛尔挡泄洪洞 8 D are De sign 水工进水塔intake tower 2009-2012羊曲泄洪洞进水塔·青海 9 D are De sign 水工进水塔intake tower 新疆自治区阿克苏地区—大石峡泄洪洞 数值积分 ?数值积分体现了离散化→ 利用计算机求解的思想,也是其他数值模拟方法的基础。 依据微积分基本定理,对于积分 只要找到被积函数的原函数, 便有下列牛顿-莱布 尼茨(Newton-Leibniz)公式: 但对于下列情形: 数值积分 (1)被积函数,诸如等等,找不到用初等 函数表示的原函数; (2)当是由测量或数值计算给出的一张数据表. 这时,牛顿-莱布尼茨公式也不能直接运用. 因此有必要研究积分的数值计算问题. 数值积分 ?数值积分体现了离散化→ 利用计算机求解的思想,也是其他数值模拟方法的基础。 由于定积分表示的是函数与坐标系围成的面积,我们可以将这个面积分割为用n 个很窄的矩形,这些矩形的面积之和近似等于定积分的值。这个分割的过程就是离散化的过程。 78 910 1112

VB6 实时 串口通信 数据采集代码

VB6 实时串口通信数据采集代码 介绍VB6.0利用MSComm通信控件,开发微机通过串口对工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详细的注释,可以直接或稍加改动后用于其他数据采集或实时控制程序中。 ----一台工业专用实时检测仪表,接高精度位移传感器,用于测量微小形变或微量位移,仪表测量精度为0.01毫米,测量范围最大值为50毫米。该仪表带有一个9针的RS-232C 串口,能与微机进行串口数据通信,实时传送检测数据,通过微机软件处理可实现工业实时监控。 ----该仪表的串口数据通信协议是:数据传输速率为9600bps,1位开始位,8位数据位,1位停止位,无奇偶校验位。仪表每秒发送50帧检测数据,每帧数据由4个字节组成。第一个字节定义为二进制常数0F0H,是每帧数据开始的标志字节;后面连续2个字节为数据字节,采用压缩的BCD码编码方式,高位在前,低位在后,即一个字节表示两位十进制数,则两个字节表示四位十进制数,小数点采用固定形式,定义在两字节中间;第四个字节为符号字节,该字节第八位为1,即:1 x x x x x x x 则为负数;第八位为0,即:0 x x x x x x x 则为正数。 ----例如:0F0H 26H 87H 80H 0F0H 34H 62H 00H 表示-26.87 34.62。 ----通信传输速率为9600bps,则最快速度1.04ms发送一帧数据。

9600bps = 1200Bps这样计算出来的结果相当于8bits/Frame,现在串口中协议是10bits/Frame,求解方程1200 * 8 = x * 10得到x = 960Frame/s。1000/960 = 1.04167Frame/ms。仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序。----为了实现实时监测功能,接收数据的读取要尽可能的快速,则设置MSComm1的属性如下: RThreshold = 1 接收缓冲区收到一个字节产生OnComm事件 InputLen = 1 每次读取一个字节 ----仪表每秒发送50帧数据,微机收到一帧完整数据至少需要20 ms 时间(1000/50=20),然后再进行数据处理。①如果微机在下一帧数据接收前即20ms内能将数据计算处理完毕,则接收缓冲区内只会保存有一帧数据,不会存有两帧以上数据,接收缓冲区的大小不会影响实时监测效果(接收缓冲区>4字节),这时完全可以实现实时监测或实时控制;②如果微机在20ms内不能将数据计算处理完毕,接收缓冲区设置得又很大,在数据计算处理完毕前,接收缓冲区内就会保存有两帧以上数据,而且一次工作时间越长,缓冲区内滞留数据帧就越多,数据采集和数据处理之间产生逐渐增大的额外时间差,当接收缓冲区充满后,时间差不再增大,固定在某一值,部分数据因不能及时采集到接收缓冲区中,数据产生丢失现象,真实工作情况就会和微机处理结果产生较大的时间差,对实时监测和实时控制很不利,这种情

通用数据采集系统操作规程

精心整理通用税务数据采集软件的操作 目录 海关完税凭证发票(进口增值税专用缴款书)的操作流程 (1) 一、海关凭证抵扣,在通用数据采集软件里,分6步操作 (1) 二、以上6个步骤的具体说 三、问题 (4) 铁路运输发流 一、运输发票抵扣,.6 二、以上说 6 三、常见问题 (9) 一、6步操作: 1、 2、打开软件第一步‘新增企业’(录入公司的税号和全称) 3、软件里第二步‘新增报表’(设置申报所属期) 4、软件里第三步‘纵向编辑’(录入发票内容) 5、软件里第四步‘数据申报’(把录入的内容生成文件,便于上传国税申报网) 6、国税申报网上传录入的发票数据(第5点‘数据申报’生成的文件上传) 二、以上6个步骤的具体说明 1、下载安装软件到桌面

—服务专区“软件下载”—通用税务数据采集软件 2.4(一般纳税人版)右键目标另存为—ty24双击安装—安装完成桌面上出现图标 2、打开软件第一步‘新增企业’(录入公司的税号和全称) 进入通用税务数据采集软件后,点击‘新增企业’,输入本企业的税号与公司名称,输完后点击确定。 3、软件里第二步‘新增报表’(设置申报所属期) 鼠标左键点左边”目录”-“海关完税凭证抵扣清单”,点中后,右键点“新增报表” 或点击上方的新增报表,所属区间就是选企业要抵扣的月份,选好后点击确定 4、软件里第三步‘纵向编辑’ 点新增企业下方的“纵向编辑” ”的窗口,第二次录入发票信息。 ● 专用缴款书号码22位,X代表数字,-后的英文字母必须是L,L)进口口岸代码 进口口岸名称 填发日期 录入的内容必须跟第一次 5、软件里第四步‘数据申报’(把录入的内容生成文件,便于上传国税申报网) ●所有发票录入完成后,最后一步才是点击‘数据申报’,点指定路径(请记好指定 路径,便于到国税申报网上传时找这个文件时用),点“开始导出” ●导出后,会生成两个文件,HGWSPZ201105_330100AAAAAAAAA_JK与 HGWSPZ201105_330100AAAAAAAAA_CRC(这两个文件名就是到国税申报网上需要导 入的两个文件) 6、国税申报网上传录入的发票数据(第5点‘数据申报’生成的文件上传)

相关文档
相关文档 最新文档