工业数据的采集处理
如今,在仪器制造、移动通信、航海等工业领域,以个人电脑为平台的信号采集和数据处理系统得到了广泛应用。其中,数据采集依靠硬件板卡,数据分析则要借助于软件技术。
在数据采集、处理的应用中,使用最为广泛,基础最为牢固的是PC_Based Control 技术,它是融合PC 技术、信号测量和分析技术、控制技术、通信技术于一体的高性能测量与控制技术,用于信号量测、工业过程数据采集和控制、运动控制、通信控制等。包括工业电脑平台、功能卡和应用软件。通过插入各种功能卡和编写软件,形成功能强大的数据采集系统、通信控制器和运动控制系统。
近年来,PC_Based Control 技术向更快速、更精确的测控方向发展,其中数据采集与控制是其核心技术之一,其基本任务是物理信号(电压/电流)的产生或测量。但是要使计算机系统能够测量物理信号,必须要使用传感器把物理信号转换成电信号(电压或者电流信号)。有时不能把被测信号直接连接到数据采集卡,而必须使用信号调理辅助电路,先将信号进行一定的处理。总之,数据采集与控制系统是在硬件板卡/远程采集模块的基础上借助软件来控制整个系统的工作,包括采集原始数据、分析数据、给出结果等,其中的硬件板卡就是现在广为使用的数据采集卡。而要对数据进行分析并产生结果,就需要利用软件编程技术来实现了。
这里,笔者以PCI-8319 光电隔离模入接口卡为例,介绍如何利用VC++ 6.0实现数据的采集、控制和分析。
PCI-8319 光电隔离模入接口卡
本文所要介绍的PCI-8319 光电隔离模入接口卡就是一款满足PC_Based Control 技术要求的硬件板卡。它提供了PCI 总线插槽的PC系列微机,具有即插即用(PnP)的功能。操作系统可选用Windows、Unix等多种操作系统,以及专业数据采集分析系统LabVIEW 等软件环境。在硬件的安装上也非常简单,使用时只需将接口卡插入机内任何一个PCI总线插槽中并用螺丝固定,信号电缆从机箱外部直接接入。
PCI-8319 光电隔离模入接口卡主要由多路模拟开关电路、高性能放大器电路、模数转换电路、开关量输入输出电路、接口控制逻辑电路、光电隔离电路及DC/DC电源电路组成,采用三总线光电隔离技术,使被测量信号系统同计算机之间完全电气隔离,适用于恶劣环境的工业现场数据采集以及必须保证人身安全的人体信号采集系统。该模入接口卡采用了高性能的仪用放大器,具有极高的输入阻抗和共模抑制比,并具有最高可达 1000 倍的放大增益,可直接配接各种传感器,以完成对不同信号的放大处理,同时,本卡自带 DC/DC隔离电源模块,无需用户外接电源。
PCI-8319 模入接口卡允许采用32路单端输入方式或16路双端输入方式。用户可根据需要选择测量单极性信号或双极性信号。其输入的模拟信号由卡前端的37芯D型插头直接接入。本卡还提供了非隔离的TTL电平的16路输入和16路输出信号通道,这些信号通道由卡后端的40芯扁平电缆转换为37芯D型插头提供给用户。
其多路模拟开关电路以及高性能放大器电路和模数转换电路均采用了AD公司的芯片作为使用器件,可以满足不同用户的不同需求。
开关量输入输出电路,接口控制逻辑电路及光隔电路DC/DC电源电路均可达到较好的使用效果。
相关函数
PCI8KP.dll是为PCI8000 系列数据采集卡配制的工作在中西文Windows 95/98/2000/NT环境下的一个动态链接库,它所封装的函数可以被其他应用程序在运行时直接调用。用户可以用任何一种可以使用 DLL链接库的编程工具来编写。表中所列函数的说明格式为C++ 应用程序中调用 DLL 库函数时的常用格式,无论使用哪一种开发工具,务必请注意数据格式的匹配及函数的返回类型。
点击小图看大图
为了将对PCI-8319卡的操作简单化。动态链接库 (PCI8KP.dll)中所有的函数的参数均通过一个结构体(ZT_PCIBOARD)来传递。该结构体及PCI8000的有关函数如表所示。
struct ZT_PCIBOARD
{
long lIndex; /* PCI卡索引值,该值在安装时被系统分配*/
HANDLE hHandle; /* PCI卡的操作句柄(只有涉及中断时才用)*/
short nCh; /* 通道号*/
long lData; /*输入输出数据变量*/
long* plData; /*输入输出数据指针*/
long lCode; /*设备控制字,具体含义见函数说明*/
};
实现数据采集
第一步,启动VC++6.0,建立一个工程文件;第二步,在工程文件中加入driver.h和Os.h两个头文件,并在工程设置中添加库文件ADSAPI32.lib;第三步,在需要数据采集的文件中添加相关的程序代码,具体步骤如下。
首先,在文件头部第一条注释行前加入如下常数变量及全局变量说明:
int time_sam;
SetTem dlg1;
int diff_tt;
CPoint end_tem;
CPoint start_tem;
ZT_PCIBOARD pci8319_tep;
其次,在相应的数据处理函数中加入下列代码打开采集板,把输入的模拟量转化为数字量:
if(OpenDevicePlx(&pci8319) != 0)
{
AfxMessageBox("Open device failed!");
}
if(OpenDevicePlx(&pci8319_tep) != 0)
{
AfxMessageBox("Open device failed!");
}
pci8319.lIndex = 0;
pci8319_tep.lIndex = 0;
pci8319_tep.nCh = 2;//选择通道1
pci8319_tep.lCode = 3;//0 = 原码值, 1 = 0 -- 10000mV , 2= -5000 --- 5000mV, 3= -10000 -- 10000mV
ZT8319Init(&pci8319_tep);//启动AD转换
pci8319.nCh = 1;//选择通道1
pci8319.lCode = 3;//0 = 原码值, 1 = 0 -- 10000mV , 2= -5000 --- 5000mV, 3= -10000 -- 10000mV
ZT8319Init(&pci8319);//启动AD转换
long retVal,retVal1;
retVal = ZT8319AI(&pci8319);
retVal1 = ZT8319AI(&pci8319_tep);
中间开始进行数据采集及实时曲线的绘制,在这个过程中,采集过程与曲线绘制过程是同时进行的,每采集十个数据就按照曲线的要求取这十个数据的平均值在图中绘出其数据值点,在采集过程中的某一时刻起曲线绘制如图所示。
图 数据采集中绘制的实时曲线
该界面主要用来,对模拟量数据进行更为直观的图形显示,相当于一个“软”示波器。点击“曲线显示”按钮,图形区域将显示A/D转换数据的变化曲线。为了稳定地显示曲线,滑动“同步点调整”滑块,可扫描同步点,同步点的原码值(十进制),在跟随滑块一起滑动的标签中显示。点击“选择通道”组合框,可进行通道切换,图形区域的曲线将自动作相应的更新。点击“退出显示”按钮,返回到主界面。最后,当采集结束后,退出显示,结束此次数据采集过程,得到所需要的曲线绘制图,完成测试流程,回到原始程序中
- 1CIO用商业科技重塑米奇
- 2营销方式决定IT建设思路
- 3开源软件以变求破
- 4区分Web服务器和应用服务器
- 5中小制造企业创造新的竞争优势
- 6食品制造业行业解决方案怎么选
- 7如何架构一个BI系统
- 8应用Pick-to-Display提高拣货准确率
- 9千兆以太网是不是在浪费用户的钱
- 10如何管好多个IT外包项目?(上)
- 11IT应用的文化力
- 12如何选出最好的CIO
- 13开源平台TCO与ROI如何计算
- 14怎样给IT系统一个新视角
- 15OA办公软件系统招募渠道代理商合作伙伴盛大开幕
- 16ASP模式需解决三大问题
- 17“量身定制”需电信IT携手
- 18综合布线屏蔽系统的现状与应用
- 19台湾宝洁(P&G)的供应链管理方式(下)
- 20中小企业信息化奶酪不好啃
- 21用组策略来部署软件
- 22如何加强外包安全策略
- 23OA软件可进一步弘扬集团公司踏实的经营作风
- 24CA 新品Introscope Change Detector 简化应用问题解决
- 25CIO怎样缩小目标与结果之间的差距
- 26资产管理实施的十条谏言
- 27网络推广陷误区 中小企业年死亡140万
- 28四大步骤提高IE以及Email安全性
- 29协同OA内容管理提供了如下几个方面的功能:
- 30通用汽车的生存本能