研华“e 时代自动化专家之路”系列丛书
数数数据据据采采采集集集系系系统统统
应应应用用用与与与编编编程程程
PC_Based Control 技术
Compact PCI Hot Swap 编程
数据采集 VC 编程详解
数据采集 ActiveX 控件编程
数据采集 LabVIEW 编程
工业通讯卡使用
PC_Based 运动控制系统
数据采集系统应用案例
数据采集系统选型指南
研华(中国)培训中心
1
2
3
目 录
第一章 数据采集基本原理............................................................................................7
一 PC_Based Control 技术............................................................................................7
二 数据采集板卡选择参数浅释...................................................................................8
三 Compact PCI 技术 ....................................................................................................9
四 数据采集板卡的安装...............................................................................................9
五 数据采集板卡的编程使用简介.............................................................................12
第二章 研华数据采集卡应用......................................................................................14
一、 安装与调试.....................................................................................................14
二、 应用软件开发.................................................................................................24
动态链接库使用方法介绍.............................................................................................24
使用 Visual C++ .............................................................................................................25
使用 visual Basic 来创建应用程序 ...............................................................................28
使用 Borland Dephi........................................................................................................31
使用 Borlang C++或 C++ Builder..................................................................................33
三、
Compact PCI Hot Swap ..................................................................................36
Hot Swap 介绍................................................................................................................36
研华 Compact PCI Hot Swap 编程 ................................................................................39
第三章 数据采集卡 VC 编程详解 ..............................................................................41
一、 软件触发数据采集 Adsoft.............................................................................41
第一步:创建一个 Dialog Based 程序框架。 .............................................................41
第二步:编辑对话框.....................................................................................................43
第三步:导入外部头文件和函数库。.........................................................................45
第四步:定义变量和函数。.........................................................................................45
第五步:编写程序代码。(注:函数的顺序无所谓)...............................................48
第六步:运行程序.........................................................................................................51
二、 应用中断进行数据采集 Adint.......................................................................52
第一步:创建一个 Dialog Based 程序框架。 .............................................................52
第二步:编辑对话框.....................................................................................................54
第三步:导入外部头文件和函数库。.........................................................................56
第四步:定义变量和函数。.........................................................................................56
第五步:编写数据程序代码。(注:函数的顺序无所谓) .......................................60
用户线程及其调用函数说明:.....................................................................................63
第六步:编写停止采集数据和退出程序按钮。.........................................................68
第七步:运行程序.........................................................................................................68
三、 应用 DMA 进行数据采集 addma..................................................................69
第一步:创建一个 Dialog Based 程序框架。 .............................................................69
第二步:编辑对话框.....................................................................................................72
第三步:导入外部头文件和函数库。.........................................................................74
第四步:定义变量和函数。.........................................................................................74
第五步:编写数据程序代码。(注:函数的顺序无所谓) .......................................77
4
用户线程及其调用函数说明:.....................................................................................81
第六步:编写停止采集数据和退出程序按钮。.........................................................86
第七步:运行程序.........................................................................................................86
第四章 数据采集控制卡 ACTIVEX 控件编程 .........................................................88
一、 从最简单的开始.............................................................................................88
二、完善程序.................................................................................................................91
三、打造自己的第一个综合工程应用程序.................................................................92
第五章 数据采集卡 LABVIEW 编程.........................................................................94
一、研华 LabVIEW 驱动程序的安装 ..........................................................................94
二、简单易用,轻松上手.............................................................................................94
三 更上一层楼,数据采集结果——显示且存储。...................................................98
四 结论...........................................................................................................................99
第六章 研华数据采集卡例程使用............................................................................100
一、 系列产品介绍、硬件简介:AI,AO,DI,DO........................................................100
二、 例程详解...............................................................................................................101
ADSOFT/ADTRIG(软件触发方式例程) ...............................................................101
ADDMA(DMA 方式进行数据采集的例程)函数: ................................................102
ADintf(中断方式进行数据采集的例程): ..............................................................103
DAINT(中断方式模拟量输出)....................................................................................105
DADMA(DMA 方式模拟量输出)...............................................................................107
AIEXP(使用扩展板进行模拟量输入的例程): .....................................................108
MAIexp(扩展的多通道模拟量输入例程,软件触发)..................................................109
ALARM(报警例程): ...............................................................................................110
DIGOUT(数字量输出): ......................................................................................... 111
COUNTER(计数程序)............................................................................................112
QCOUNTER(计数程序) ..............................................................................................113
Digin (数字量输入例程)..............................................................................................113
PULSE(脉冲输出例程)................................................................................................114
PWM(宽度可调的脉冲输出).......................................................................................115
Pwmin(输入脉冲宽度测量).........................................................................................115
MAIintf(多通道中断采集例程)...................................................................................116
CDADINT(看门狗中断数据传输例程) ......................................................................118
BDADDMA(总线控制 DMA 传输方式)...............................................................121
WDADMA(总线控制 DMA 方式模拟波形输出) ......................................................123
THERMO(热电偶数据采集) .......................................................................................124
FDIGIN(中断事件数字量输入例程):....................................................................125
CSYNCAO(同步/异步电流输出)...........................................................................126
DiginEx(使用扩展板的数字量输入例程) .............................................................127
CommPort(串口通信测试例程) .............................................................................130
PortIO(端口输入输出例程) .........................................................................................131
第七章 驱动开发基础................................................................................................132
5
10.1 虚拟设备初步..............................................................................................................132
10.2 虚拟机管理器..............................................................................................................132
9.3 虚拟设备驱动程序........................................................................................................133
9.4 VxD 程序之间的通讯....................................................................................................134
第八章 数据采集应用案例........................................................................................136
一、 压铸机计算机测控系统...............................................................................136
二、 内燃机车辅助电机综合试验台测控系统...................................................145
三、
PCI-1714 及其在船舶状态监测中的具体应用........................................149
四、 基于 PCI-1712 的移动式电网谐波分析仪的研制 ...................................153
五、 用 VC++实现 PCL-812PG 数据采集卡的应用 ..........................................157
附录一 PCL-813 快速安装使用入门.......................................................................164
一、 产品介绍...........................................................................................................164
二、 安装与测试.......................................................................................................165
三、 信号输入连接...................................................................................................174
附录二 工业通讯卡使用入门....................................................................................176
一、 如何在 Win 95/98/ME 下安装 PCL 系列的通讯卡....................................176
二、 如何在 Win NT 下安装 PCL 系列的通讯卡..............................................177
三、 如何在 Win 2000 下安装 PCL 系列的通讯卡............................................179
四、 如何在 Win 95/98/ME 下安装 PCI 系列的通讯卡.....................................179
五、 如何在 Win NT 下安装 PCI 系列的通讯卡...............................................181
六、 如何设置通讯卡上串口的序号...................................................................183
七、 如何测试已安装的通讯卡...........................................................................185
附录三 运动控制卡使用入门....................................................................................187
PCI-1240 安装 ..............................................................................................188
一、
PCI-1240 与驱动器接线 ..............................................................................190
二、
三、
PCI-1240 测试 ..............................................................................................196
四、 软件编程.......................................................................................................199
附录四 数据采集选型指南........................................................................................207
6
第一章 数据采集基本原理
一 PC_Based Control 技术
PC_Based Control 技术是融合 PC 技术、信号量测&分析技术、控制技术、通讯技术于
一体的高性能测量与控制技术,用于信号量测、工业过程数据采集&控制、运动控制、通讯
控制等。包括工业电脑平台、功能卡和应用软件。通过插入各种功能卡和编写软件,形成功
能强大的数据采集系统、通讯控制器和运动控制系统。
近年来,PC_Based Control 技术向更快速、更精确的测控方向发展。PC_Based Control
核心技术包括
1. Compact PCI
a) HOT SWAP、紧固式安装、制冷
2. 高速采集技术
a) 同步采集、精确信号触发与同步信号、DMA 传输
3. 与传统测试仪器联网:GPIB、ICOM
4. PC_Based 运动控制系统
5. 易于使用的编程方式
a) 虚拟仪器编程,控件,组态式开发
6. 易于使用和调试
a) Board ID 、通用 PCI、 ISA 兼容、高密度
本书主要介绍基本的数据采集编程方法,附录部分列出了工业通讯卡和运动控制卡的使
用方法。
数据采集与控制系统的基本任务是物理信号(电压/电流)的产生或测量。但是要使计
7
算机系统能够测量物理信号,必须要使用传感器把物理信号转换成电信号(电压或者电流信
号)。有时不能把被测信号直接连接到数据采集卡,而必须使用信号调理辅助电路,先将信
号进行一定的处理。总之,数据采集与控制系统是在硬件板卡/远程采集模块的基础上借助
软件来控制整个系统的工作 – 包括采集原始数据、分析数据、给出结果等。
二 数据采集板卡选择参数浅释
模拟量:
在使用数据采集卡的时候,操作的对象主要就是模拟量输入/输出,数字量输入/输出。
对于模拟量,工程中通常会对如下的一些参数比较关注:输入模式(单端输入或者差分输入)、
分辨率、输入范围、采样速率,精度和噪声等。
单端输入以一个共同接地点为参考点。这种方式适用于输入信号为高电平(大于一伏),
信号源与采集端之间的距离较短(小于 15 英尺),并且所有输入信号有一个公共接地端。如
果不能满足上述条件,则需要使用差分输入。差分输入方式下,每个输入可以有不同的接地
参考点。并且,由于消除了共模噪声的误差,所以差分输入的精度较高。
输入范围是指数据采集卡能够量化处理的最大、最小输入电压值。数据采集卡提供了可
选择的输入范围,它与分辨率、增益等配合,以获得最佳的测量精度。
分辨率是模/数转换所使用的数字位数。分辩率越高,输入信号的细分程度就越高,能
够识别的信号变化量就越小。增益表示输入信号被处理前放大或缩小的倍数。给信号设置一
个增益值,就可以实际减小信号的输入范围,使模数转换能尽量地细分输入信号。
总之,输入范围,分辩率以及增益决定了输入信号可识别的最小模拟变化量。此最小模
拟变化量对应于数字量的最小位上的变化,通常叫做转换宽度(Code width)。其算式为:
输入范围/(增益*2^分辩率)。
例如:16 位分辨率的板卡,那么该板卡能够分辨的最小单位即为:分辨率=最小分辨单
162 。实际上这个分辨率是板卡上的 A/D 转换芯片的转换精度,并不代
位=板卡选择的量程/
表板卡本身实际采集数据是能够达到的精度,通常板卡的采集精度会有另外的说明,例如:
0.03%*FSR ± 1LSB——满量程的百分比再加减一个最小分辨单位。板卡的精确度的标注实
际上更值得工程师注意.
采样率决定了模/数变换的速率。采样率高,则在一定时间内采样点就多,对信号的数
字表达就越精确。采样率必须保证一定的数值,如果太低,则精确度就很差。
根据耐奎斯特采样理论,采样频率必须是信号最高频率的两倍以上,采集到的数据才可
以有效地复现出原始的采集信号。例如,信号的最高频率为 1M,那么为了采集到的数据能够
准确地反映原始信号的频率特性,要求数据采集频率(Sample Rate)至少应该为 2M。
平均化。噪声将会引起输入信号畸变。噪声可以是计算机外部的或者内部的。要抑制外
部噪声误差,可以使用适当的信号调理电路,也可以增加采样信号点数,再取这些信号的平
均值以抑制噪声误差。
数字量
对于数字量我们通常比较关注的是:数字量的类型:TTL/隔离量,输入/输出速度,并
行操作的位数,驱动能力等
数字量的类型决定了数据采集板卡可以接收/侦测的电压范围,例如:TTL 电平 0-0.8V
位逻辑 0,2.4-5V 为逻辑 1,隔离电压逻辑 0/1 依板卡指标来确定。
8