基于vc++的数据采集系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于vc的数据采集系统

基于VC++的数据采集系统 摘要:介绍了基于PCI总线的数据采集卡的功能特点,并结合在减速器试验台中的定时数据采集系统的研究,搭建了针对减速器的扭矩和转速参数的数据采集系统,并运用VC++编程实现了对减速器扭矩和转速的数据定时采集和实时采集曲线的显示功能,取得了较好的效果。 关键词:数据采集;VC++;定时采集 1前言 随着计算机技术的飞速发展,以个人计算机为平台的信号采集系统得到了广泛的应用。由于个人计算机只处理数字信号,所以在对模拟信号进行处理时,需要由传感器测量的物理信号转换为电信号,再通过数据采集卡采集进来,并由VC++作为编程工具,设计出友好的人机界面,实时显示采集到的数据绘制的曲线。 本文编程主要应用于减速器试验台的传动效率测试系统。该系统是利用个人计算机建立一套电机调速、数据采集和加载控制系统,与试验台连接起来由计算机对减速器的转矩、转速进行数据采集、量化和处理并输出测试结果。在试验过程中,个人计算机还可以根据数字反馈或人工要求对测试过程进行控制,达到计算机密切跟踪和控制试件状态的目的。 2 PCI-8360I数据采集卡的特性 PCI-8360I数据采集卡是中泰研创公司生产的一款功能强大的低成本多功能PCI总线数据采集卡,该卡有以下几个主要特点。 输入通道数:双端16路 输入信号范围:0~20mA 输入精度:12Bit 最大采样频率:75KHz 启动转换方式:软件启动 卡带37芯D型插头(模拟量输入和计数器输出接口),共16路通道采集数据,每个通道都采用双端输入,四路通道,分别两组转矩和转速转矩传感器采集的转矩和转速信号都是频率信号,需要通过F/I转换器转化模拟信号,模拟信号被采集卡处理后变成数字信号,在经过计算机软件的一系列处理计算后显示在软件界面上,其如图所示 扭矩传感器的主要技术参数 电源电压:±12V±0.4VDC(I300mA) 转矩量程:10N·m 转速量程:6000rpm 转矩信号输出:5~15kHz,幅值为5V 转速信号输出:0~6000Hz,幅值为5VF/I转换器 转换原理:转矩和转速转换,转换器是将转矩、转速传感器采集到的关于频率信号(5~15kHz)转换为4~20mA的电流输送到数据采集卡中;转速转换器是将、转速传感器采集到的关于转速的频率信号(0~2000Hz)转换为4~20mA的电流输送到数采集卡里去。 ZH型系列F/I转换器采用±12VDC电源单独供电,输入进行了光电隔离,具有一定的抗干扰能力,具有零点、满度调节功能,其与、转速传感器的五芯接头的接线图如图示 图2 非隔离式接线图(转矩) B 系统程序设计方法 在该数据采集系统中,采用Visual C++ 6.0进行开发,首先在个人计算机上驱动PCI数据采集卡,在VC程序里添加它。在VC++的程序初始化时调用ZT8360I_OpenDevice函数,用于打开设备,调用其他函数可以完成AD等工作,在程序退出前调用ZT8360I_CloseDevice函数。在采集数据过程中,需要定时采集,利用VC++编程时,在Windows下解决定时问题的方法是直接使用其提供的定时器函数KillTimer()、SetTimer()和OnTimer()。部分程序如下。 BOOL CRdtestsysDlg::OnInitDialog() { CDialog::OnInitDialog(); long m_cardNO = 1; ZT8360I_OpenDevice(m_cardNO); ZT8360I_AIinit(m_cardNO, 1, 16, 11, 0, 0, 0, 0, 0, 100); SetTimer(1, 10, NULL); void CRdtestsysDlg::OnTimer(UINT nIDEvent) { switch (nIDEvent) { case 1: { long wantCount,retCount1,retCount3; wantCount = 2000; float retCount2,retCount4; retCount1 = ZT8360I_AIonce(1,1,10,0,10000,0); retCount2 = ZT8360I_AIonce(1,2,10,0,10000,0); retCount1=(retCount1-4000)*0.001*2000/16-19; retCount2=(retCount2*0.001-12)*10/8+1.6; retCount3=(retCount1-4000)*0.001*2000/16-19; retCount4=(retCo

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档