KPCI-812数据采集卡
使用说明书
Ver 2.0
北京科瑞兴业科技有限公司
北京科瑞兴业科技有限公司地址:北京市海淀区知春里28号开源商务写字楼212、213室
邮政编码:100086 电话:010-******** 010-******** 传真:010-********
阅读指南:
1.对于初次使用工控板卡的用户,我们希望您能从第一章开始仔细阅读本说明书。
2.具有同类产品使用经验,希望快速进入实用的用户,在注意到接线端子的布置,输入信号要符合量程设置,使用出厂默认值的情况下,可以直接跳到第三章阅读板卡的硬件安装和附带光盘上的软件安装部分,正确安装后,可以启动我们在光盘上提供的测试程序检测板卡的工作状态。
目录
第一章概述
第二章主要元件位置图、信号输出插座和开关跳线选择定义
第三章KPCI-812设备驱动程序安装
第四章函数模块调用说明
第五章KPCI-812 多功能卡的校准、保修和注意事项
第一章概述
一.介绍:
KPCI-812数据采集接口卡具有适用范围广、功能齐全、性能价格比高等特点。适用于486、586、PⅡ、PⅢ系列的原装机、兼容机和工控机。该卡可广泛应用于工业过程控制系统以及实验室数据采集系统。
KPCI-812数据采集接口卡安装、使用方便,程序编制简单。其模拟量输入及I/O信号均由卡上的37芯D型插头与外部信号源及设备连接。
二. 性能和技术指标
1. PCI局部总线性能:
●总线宽度32位,同步工作频率可达到33MHz,最高传输速率为132MB/S
●使用方便,能够实现自动配置,实现设备的即插即用
●提供数据和地址奇偶校验功能,保证了数据的完整性和准确性
2. 模入部分:
●输入通道数:单端16路;* (标*为出厂标准状态,下同)
●输入信号范围:0V~10V*;-5V~+5V
●输入阻抗:≥10MΩ
●放大器可选增益:×1*;×2;×5;×10
●A/D转换分辨率:12位
●A/D转换速度:10μS
●A/D启动方式:程序启动
●A/D转换结束识别:程序查询
●A/D转换非线性误差:±1LSB
●A/D转换输出码制:单极性原码*/双极性偏移码
●系统综合误差:≤0.2%FSR
3. 数字量输入输出部分:
●开关量输入DI:8路;TTL标准电平(高电平≥3.2V,低电平≤1V)
●开关量输出DO:8路;TTL标准电平;有输出锁存功能
4. 电源功耗:(不使用外部电源)
●+5V(±10%) ≤400mA
●+12V(±10%) ≤100mA
●-12V(±10%) ≤100mA
5. 使用环境要求:
工作温度:0℃~70℃
相对湿度:0%~95%(不凝露)
存贮温度:-55℃~+85℃
三、软件支持
提供Windows95/98/NT/2000下的多种语言的驱动,并提供在VB和VC环境下,开发的示例程序(详见软件说明部分)。
第二章元件位置图、信号输出插座和开关跳线选择定义
一.
W1:A/D 零点调整电位器W4:A/D双极性偏移调节电位器。
W2:前级满度调节电位器。JP1:转换码制选择插座。
W3:A/D后级满度调节电位器。JP2:放大倍数选择器。
二.模拟输入和数字输入输出接线方式:
KPCI-812模入接口卡主要由模数转换电路、数字量输入输出电路、接口控制逻辑电路构成。
1. 模入部分:
外部模拟信号经多路转换开关选择后送入放大器处理。放大器配有放大倍数选择器JP2和转换码制选择跨接器JP1。处理后的信号送入模数转换器进行转换,其转换状态和结果可用程序查询和读出。
图2.1单端输入方式
注意:公共地连接到AGND端,为了抑制噪音干扰,所有信号源接地端都应该一点接AGND。
2. 数字量输入输出部分:
数字量输入输出电路由输入缓冲器和输出锁存器及相关电路组成,可分别输入输出8位TTL电平信号。信号从输入输出端子和GND端子接入。本卡输入输出部分不带光隔。
三. 输入输出插座接口(DB37)定义:
输入输出插座接口定义见表1。
注:内部5V外加负载不得大于20mA,AGND是模拟地,GND是数字地
输入输出信号接法:
数字信号输入1-8路接Din1 -Din8
数字信号输出1-8路接Dout1-Dout8
数字信号的公共端接GND端
模拟信号输入1-16路接AD CH1-AD CH16
模拟信号输入地线接DB37的9、10、19、28任一脚
四. 板上跨接器的用法:
JP1为转换码制选择插座。码制的定义参见4.4节。
用户应根据输入信号的极性进行选择,选择方法见下图。
a. 单极性原码
b. 双极性偏移码
JP2为放大倍数选择器,选择方法见下图:
a. ×1倍
b. ×2倍
c. ×5倍
d. ×10倍
注意:输入信号与放大倍数的对应关系是不能大于(10V除以放大倍数),即当放大倍数选×2 时,输入信号范围为0~5V。
五. 数据格式:
1.A/D 转换结果数据格式
①查询A/D转换状态的数据格式:
当A/D转换未完成时,读A/D转换结果中D15为0,
当转换完成时D15为1。
②A/D转换结果数据格式:
A/D转换结果数据格式见表4:
2.模入码制以及数据与模拟量的对应关系:
①单极性输入
模拟输入的量程为0~10V时称为单极性方式工作,即,转换后的12位数为二进制原码。
此12 位数码表示一个正数码,调用动态链接库提供的函数(PCI812_ReadAd)其返回值为十进制数,与模拟电压值的对应关系为:
模拟电压值=转换后数据×10(V)/4096 (V)
即:1LSB=2.44mV
②双极性输入
模拟量输入信号为-5V~+5V时,称为双极性方式工作,转换后的12 位数码为二进制偏移码。调用动态链接库提供的函数(PCI812_ReadAd)其返回值为十进制数,与模拟电压值的对应关系为:
模拟电压值=(数码×10(V)/4096)-5 (V)
即:1LSB=2.44mV
六.调整与校准:
1.产品出厂前,本卡的模入部分已按照单极性0~10V调整好,一般情况下用户不需进行调节,如果用户改变了输入信号范围,可按本节所述方法进行调整。调整时应开机预热20分钟以上后进行,并准备一块4位半以上的数字万用表,用于测量输入信号与转换结果的比较。
2.各电位器功能说明:
W1为A/D零点调节。
W2为A/D前级满度调节。
W3为A/D后级满度调节。
W4为A/D双极性偏移调节。
3.模入部分调整:
凡改变模拟量输入工作方式,如果采样结果偏差不能满足要求,可对模拟量输入部分进行调整。
①零点调整:使任一通道与模拟地短接,并按实际需要设置好通道代码,运行程序,对该通
道采样。调整W1使转换电压显示为0或1。
②A/D转换满度调整:在任一通道接入一个满度信号,运行程序对该通道采样。调整W2、
W3使A/D转换数值等于外接信号电压。
③A/D转换双极性偏移调整:在双极性方式时,如果正负方向的放大倍数不对称,调整W4
使其对称。
第三章KPCI-812设备驱动程序安装
一、安装:
本卡的安装十分简便,关掉电源,将主机壳盖打开,将本卡插入主机的任何一个空余PCI扩展槽中,再将档板固定螺丝压紧即可。
二、注意事项
①本卡采用的模拟开关是COMS 电路,容易因静电击穿或过流造成损坏,所以在安装或
用手触摸本卡时,应事先将人体所带静电荷对地放掉,同时应避免直接用手接触器件管脚,以免损坏器件。
②禁止带电插拔本接口卡。设置接口卡开关、跨接器和安装接口带缆均应在关电状态下
进行。
③当模入通道不全部使用时,应将不使用的通道与AGND短接,不要使其悬空,以避免
造成通道间串扰和损坏通道。
④本卡跨接选择器较多,使用中应严格按照说明书进行设置操作。
⑤应避免输出端对地短路。
三、驱动程序安装及测试:
1、将接口卡插入计算机PCI扩展槽中,启动机器
2、当计算机提示发现新硬件并提示需要驱动程序时,指向驱动盘中的KPCI800.inf文件。安装
成功后,在设备管理器的外部接口中看到“北京科瑞KPCI系列板卡”。
3、安装完成硬件设备后,可用安装盘中VB测试程序kpci812.exe文件进行测试。首先运行程
序,打开设备,接入信号源,观察变化。按任一路数字量输出,用万用表或指示灯检测输出结果。完成测试后关闭设备。
第四章库函数调用说明及编程实例
光盘中提供了两个分别在VB和VC下开发的示例程序,给出了板卡的相关参数的设置过程和数据处理方法及板卡的工作过程和顺序,包括卡的打开与关闭。用户可以参照相应VB或VC程序段根据实际需要利用函数库中提供的函数设计自己的软件,初次使用动态链接库的用户,还可以在程序中找到动态链接库的调用方法。为方便用户分析示例程序以工程的形式提供
了所有的资源和代码。
一. A/D 采集过程流程图
图4.1 查询方式AD采集过程
二、编程示例:
VB编程示例请参照“VB”下的程序
VC 编程示例请参照“VC”下的程序
三. KPCI800.dll库函数说明
以下介绍KPCI800.dll所包含的全部函数应用方法,用户可以具体根据所选用的板卡使用其中的一些函数。函数中的参数设置要参考具体的板卡说明来设置。
4.3.1 打开设备
Visual C++ & C++Builder:
BOOL WINAPI OpenDevice(ULONG iIndex)
Visual Basic:
Declare Function OpenDevice Lib "kpci800.dll" (ByVal iIndex As Long)
As Boolean
参数:iIndex 指定KPCI板卡的设备序号,0对应第一个设备
返回值:“1”表示成功,“0”代表失败。
注意:设备序号兼容机是靠近CPU的PCI插槽号为小序号(从0开始),
工控机则相反,远离CPU的PCI插槽号为小序号(从0开始)。
4.3.2 关闭设备
Visual C++ & C++Builder:
VOID WINAPI CloseDevice(ULONG iIndex )
Visual Basic:
Declare Sub Close Device Lib "kpci800.dll" (ByVal iIndex As Long)
功能:该函数负责关闭板卡的设备对象
参数:iIndex 与OpenDevice中的相同
返回值:无
4.3.3 读A/D某一通道转换数据(适用KPCI812数据采集卡)
Visual C++ & C++Builder:
ULONG WINAPI PCI812_ReadAd(ULONG Iindex,UCHAR adch,ULONG delay)
Visual Basic:
Declare Function PCI812_ReadAd Lib "kpci800.dll" (ByVal iIndex As Long,
ByVal adch As Byte,
ByVal delay As Long)
As Long
功能:启动KPCI812 卡A/D某一通道采集数据并读入转换结果
参数:iIndex 与OpenDevice中的相同
adch 为A/D的通道号
delay 为改变通道后需要延时(单位为1微秒,此处delay的值要大于100)
返回值:A/D数据
4.3.4 读A/D某一通道转换数据(适合KPCI815数据采集卡)
Visual C++ & C++Builder:
ULONG WINAPI PCI815_ReadAd (ULONG iIndex, UCHAR flbmode, UCHAR flbnum, UCHAR adch, ULONG delay);
Visual Basic:
Declare Function PCI815_ReadAd Lib "kpci800.dll" (ByVal iIndex As Long,
ByVal flbmode As Byte,
ByVal flbnum As Byte,
ByVal adch As Byte,
ByVal delay As Long)
As Long
功能:启动KPCI815 卡A/D某一通道采集数据并读入转换结果
参数:iIndex, 与OpenDevice中的相同
flbnum, 滤波次数,
adch, 要采集的通道号,
delay 送通道号到启动AD转换之间延时(单位为1微秒,此处delay的值要大于200)
返回值:两字节A/D转换数据
注:关于滤波:
为上一次转换的结果。对多个通道循环采样时,第N通道转换读取的数据为上一通道转换的结果。
4.3.5 向AO端口输出一个字节(适用KPCI823模拟量输出卡)
Visual C++ & C++Builder:
VOID WINAPI DAOut823(ULONG iIndex,UCHAR channel,UCHAR iByte)
Visual Basic:
Declare Sub DAOut823 Lib "kpci800.dll"(ByVal iIndex As Long,
ByVal channel As Byte,
ByVal iByte As Byte)
功能:该函数向KPCI823卡AO某一通道写输出数据
参数:iIndex 与OpenDevice中的相同
channel 指定模拟量输出的通道号(查阅6.1的偏移地址操作表)
iByte 为输出的数据(字节)
返回值:无
4.3.6 从I/O端口读入一个字节
Visual C++ & C++Builder:
UCHAR WINAPI ReadByte(ULONG iIndex ,UCHAR dich)
Visual Basic:
Declare Function ReadByte Lib "kpci800.dll" (ByVal iIndex As Long,
ByVal dich As Byte)
As Byte
功能:从端口读入一个字节
参数:iIndex 与OpenDevice中的相同
dich为开关量输入的地址
返回值:读取的单字节数据
Visual C++ & C++Builder:
WORD WINAPI ReadWord(ULONG iIndex ,UCHAR dich)
Visual Basic:
Declare Function ReadWord Lib "kpci800.dll" (ByVal iIndex As Long,
ByVal dich As Byte)
As Long
功能:从端口读入一个字
参数:iIndex 与OpenDevice中的相同
dich为开关量输入的地址(查阅6.1的偏移地址操作表,地址为0和表中所列偶数)返回值:读取的单字数据(双字节数据)
4.3.8 从I/O端口读入一个双字
Visual C++ & C++Builder:
DWORD WINAPI ReadDWord(ULONG iIndex ,UCHAR iAddr)
Visual Basic:
Declare Function ReadDWord Lib "kpci800.dll" (ByVal iIndex As Long,
ByVal dich As Byte)
As Long
功能:从端口读入一个双字
参数:iIndex 与OpenDevice中的相同
iAddr 为开关量输入的地址(查阅6.1的偏移地址操作表,地址为0或4)返回值:读取的双字数据(4个字节数据)
4.3.9 向I/O端口输出一个字节
Visual C++ & C++Builder:
VOID WINAPI WriteByte(ULONG iIndex ,UCHAR iAddr , UCHAR iByte )
Visual Basic:
Declare Sub WriteByte Lib "kpci800.dll"(ByVal iIndex As Long,
ByVal iAddr As Byte,
ByVal ibyte As Byte)
功能:该函数向端口写一个字节
参数:iIndex 与OpenDevice中的相同
iAddr 为开关量输出地址(查阅6.1的偏移地址操作表)
iByte 为输出的数据(字节)
返回值:无
注:对于有两极锁存功能的板卡,执行过程略有不同,第一次执行此函数,数据被送入第一级锁存器,并未实际输出,当第二次执行此函数(数据变量iByte内容无效,地址变量iAddr要参照6.1的偏移地址操作表中二级锁存输出允许的偏移地址)时,数据才真正送到输出端口。请仔细阅读演示程序。
Visual C++ & C++Builder:
VOID WINAPI WriteWord(ULONG iIndex ,UCHAR iAddr , UCHAR iWord )
Visual Basic:
Declare Sub WriteWord Lib "kpci800.dll"(ByVal iIndex As Long,
ByVal iAddr As Byte,
ByVal idate As Long)
功能:该函数向端口写一个字
参数:iIndex 与OpenDevice中的相同
iAddr 为开关量输出地址(查阅6.1的偏移地址操作表,地址为0和表中所列偶数)
iWord 为输出的字数据(单字数据)
返回值:无
4.3.11 向I/O端口输出一个双字
Visual C++ & C++Builder:
VOID WINAP I WriteDWord(ULONG iIndex ,UCHAR iAddr , UCHAR iDWord )
Visual Basic:
Declare Sub WriteDWord Lib "kpci800.dll"(ByVal iIndex As Long,
ByVal iAddr As Byte,
ByVal idate As Long)
功能:该函数向端口写一个双字
参数:iIndex 与OpenDevice中的相同
iAddr 为开关量输出地址(查阅6.1的偏移地址操作表,地址为0或4)
iDWord 为输出的双字数据
返回值:无
4.3.12 延时函数
Visual C++ & C++Builder:
VOID WINAPI TimeDelay(ULONG timedelay )
Visual Basic:
Declare Sub TimeDelay Lib "kpci800.dll"(ByVal timedelay As Long,)
功能:该函数完成延时功能
参数:timedelay延时时间常数(单位为微秒,在Windows系统下,此数值应大于10)
返回值:无
4.3.13 打开指定设备函数(适用KPCI840、843、844、845、846、847、848)
Visual C++ & C++Builder:
BOOL WINAPI OpenmDevice(ULONG iIndex,ULONG boardtype)
Visual Basic:
Declare Function OpenDevice Lib "kpci800.dll" (ByVal iIndex As Long,ByVal boardtype)
As Boolean
参数:iIndex 指定KPCI板卡的设备序号,0对应第一个设备
boardtype 指定KPCI板卡的型号,这里只能是840、843、844、845、846、847、848。
返回值:“1”表示成功,“0”代表失败。
注意:设备序号兼容机是靠近CPU的PCI插槽号为小序号(从0开始),
工控机则相反,远离CPU的PCI插槽号为小序号(从0开始)。
注意:此函数是专门为带有开关量输出板卡编制的函数,当用户需要改变开关量输出的某一个通道的状态,而不影响其他通道时,必须用此函数打开设备。此函数与下面函数配合使
用。
4.3.14 改变开关量某一个通道的输出状态(适用KPCI840、843、844、845、846、847、848)
Visual C++ & C++Builder:
VOID WINAPI DoutBit(ULONG iIndex,UCHAR channel,UCHAR ibit)
Visual Basic:
Declare Sub DoutBit Lib "kpci800.dll"(ByVal iIndex As Long,
ByVal channel As Byte,
ByVal ibit As Byte)
功能:该函数向开关量输出指定通道输出一个状态
参数:iIndex 与OpenmDevice中的相同
channel 为开关量输出通道号
KPCI840、KPCI847H的取值范围是1~16
KPCI843、KPCI845的取值范围是1~32
KPCI844的取值范围是1~24
KPCI846的取值范围是1~64
KPCI847、KPCI848的取值范围是1~8
ibit 为输出的状态,只能是“0”或“1”。
返回值:无
第六章KPCI-812 卡的成套性和保修
一、保修:
本产品自售出之日起两年内,凡用户遵守贮存、运输及使用要求,而产品质量低于技术指标的,凭保修单免费维修。因违反操作规定和要求而造成损坏的,需交纳器件和维修费。
二、产品的配套清单:
1.KPCI-812 经济型数据采集卡壹块。
2. 北京科瑞兴业公司产品光盘壹张。
3. 37芯D型插头壹套。