基于PCI_1710HG数据采集卡的衡器系统开发

基于PCI-1710HG数据采集卡的衡器系统开发
衡器是指各种规格型号的台、案秤,是用于贸易结算的属国家明文规定的强制检定计量器具。广泛用于工业、农业、商业、科研、医疗卫生等部门。本文衡器系统是以研华数据采集卡PCI-
1710HG为核心,以工控机为基础,对物体重量进行自动监测,并通过LED显示器对重量进行数字化显示的系统。1衡器系统功能及结构1.1衡器系统
衡器系统以PCI-1710HG数据采集卡提供的软件包为基础,在WindowsNT操作系统下基于VisualC++平台开发。通
过压力传感器,系统实时检测物体重量引起的压力信号,经信号调理电路进行信号调理,再经数据采集卡采集到计算机内进行处理,与数据库信息进行对比,根据采集到的信息控制外设,并保存、打印信息。
1.2衡器系统组成
按系统的集成性可分为两个部分:人机交互界面部分和信息处理部分。其中人机交互界面部分包括重量文件的形成、数据查询、打印,为人机交互提供平台。信息处理部分包含三个子模块:压力传感器模拟量数据采集模块、重量数字化显示模块与状态输出模块。系统框图如图1所示。
图1系统软件框图
2PCI-1710HG数据采集卡
衡器系统的核心问题是重量信息获取、如何将获取到的信
息显示出来。以数据采集卡为核心,进行系统设计,可以简化系统设计。因此选择一款技术成熟的数据采集卡至关重要。经多方
对比,衡器系统选择了研华公司的PCI-1710数据采集卡。
PCI-1710HG是一款PCI总线的多功能数据采集卡,具有
常用的测量和控制功能,如:12位A/D转换、D/A转换、数字量输入、数字量输出及计数器/定时器功能。PCI-1710HG支持即
质壁分离插即用,地址和中断号都是自动默认,不需要手工设置地址和中断号的跳线,使用起来简单方便。
在开发程序中直接利用研华动态库中提供的函数,获得设备的操作句柄,以便针对具体设备进行相关操作。主要函数有以下几个:
法希文
DRV_DeviceGetNumOfList((SHORTfarS )&gnNumOfDevices))//获得设备数目的函数;
DRV_DeviceGetList((DEVLISTfarS )&DeviceList[0],(SHORT)gnNu-mOfDevices,(SHORTfarS )&nOutEntries))//获得设备列表的函数;
DRV_DeviceOpen(DeviceList[gwDevice].dwDeviceNum,(LONGfarS )&DHandle)
//打开设备,并获得设备操作句柄;
DRV_DeviceGetFeatures(DHandle,(LPT_DeviceGetFeatures)&ptDe-vFeatures)
//获得指定设备的特征并存储到缓存器中;DRV_DeviceClose((LONGfarS )&DHandle)//通过设备句柄关闭设备;工业奈
3重量的LED显示
衡器系统对物体重量进行监
测显示。为了有助于工作人员掌握物体重量,系统实时地用LED显示器直观地将其重量显示出来。
3.1硬件连接
如图2所示,用5个共阴极的LED显示器进行数据显示,用一个共阴极LED显示器作为选择通道的负载。PCI-1710HG有两个数字量输出通道,其中0通道用来进行5个LED显示器的选择;通道1用
来进行数字量输出。通过动态扫描
(下转第12页)邵
张桂香
赵庆志(山东理工大学机械工程学院,山东淄博255049)
DesignofWeighingInstrumentSystemBasedonPCI-1710HGDataAcquisitionCards
衡器系统是以VisualC++6.0为开发平台,以研华PCI-1710HG数据采集卡为基础开发。利用采集卡的数字量输出与模拟量输入功能,配以外围接口电路,对重量采集及其LED显示等功能进行了软硬件设计。系统通过循环扫描方式实时控制5个共阴极LED显示器,实现采集重量的LED显示,减少对外输出端口的数量,降低系统费用。
关键词:数据采集卡,衡器,LED显示器
Abstract
BasedonVisualC++6.0andPCI-1710HGDataAcquisitionCardsofDAVANTECHCompany,
三叶草成人weighinginstrument
systemweredevelopped.ItdesignedsoftwareandhardwarefortheLEDdemonstrationofcollectingweig
ht.Takinguseofthecard'sDO/AIfunctionandtheperipheralinterfacecircuit,fiveLEDmonitorswereinthecontrolofthesystemthroughscanninground,realizedLEDdemonstrationofweight.Itreducedtheoutputportsandtheuseofsystem.
Keywords:dataacquisitioncard,weighinginstrument,LEDdisplay
图2
七段共阴极LED显示器
基于PCI-1710HG
数据采集卡的衡器系统开发
10
智能建筑第三方开放式协议设备通讯中抗干扰技术研究图3放电不及时导致数据接收错误
(上接第10页)
实现5个LED显示器上示数字。
数据采集卡插在数控机的PCI插槽,通过板卡接口端子和7段LED显示器进行连接。通道1的8路(0~7)分别接其中1个数字显示器的h-a,其它4个数字显示器与这个数字显示器的各灯节
相连;这8路用来对7段LED显示器的7个灯节(a~g)外加1个小数点(h)进行显示控制,每一灯节都由其所接接口输出电平控制灯节的亮暗。通道0的5路从0~4分别接5个LED显示器的共阴极,通过其电平的高低来对显示器进行选择。3.2软件设计
为了将数字在共阴极LED显示器上显示出来,需定义实际数字与LED的显示相对应的函数,将一个数字转换成一个8位2进制的数据转换函数,将0或1输出到8个数字输出端口来控制LED显示。ptDioWritePortByte.state=gwData,给输出端口赋值。一次赋值即对一个通道的8路同时赋值,即8位2进制。
为了动态扫描,实现5个LED显示器上示数字的功能。需经ptDioWritePortByte.state=gwData;对通道0进行赋值。3.3LED显示重量的实时控制
为了能够控制程序精确地完成定时和计时操作,系统中使用VisualC++中的WM_TIMER消息映射进行时间控制。首先调用定时器函数SetTimer()设置定时间隔,即:SetTimer(0,200,NULL)为定时器0设置了200ms的时间间隔;然后在时间WM_TIMER响应函数OnTimer()中添加响应的处理语句,用来完成到达定时时间的操作;最后用KillTimer()函数从系统中删除对应ID号的定时器。3.4LED显示重量使用的主要函数
2013小企业会计准则
(USHORTfarT)GlobalAlloc(GHND,sizeof(USHORT)TgulCon-vNum)
//采用中断采集方式,需开辟一块数据缓存区;
DRV_FAIIntScanStart(DHandle,(LPT_FAIIntScanStart)&ptFAI-IntScanStart)
//开始一个不同的、多通道的通过中断方式进行数据采集,存储它的输入到一个数组,为扫描信道获得代码;
DRV_FAICheck(DHandle,(LPT_FAICheck)&ptFAICheck)
//核对当前数据访问操作是否完成,并返回当前状态;
DRV_FAITransfer(DHandle,(LPT_FAITransfer)&ptFAITransfer)
//转移访问操作获得的数据到一个专用数据缓存区;
DRV_FAIStop(DHandle)
//取消当前的数据访问操作并重置软硬件;
DRV_DioWritePortByte(DHandle,(LPT_DioWritePortByte)&pt-DioWritePortByte)
//往指定的计算机输入/出端口写一个8位的数据;
4结束语
耻骨联合系统开发中充分考虑了生产制造过程的实际情况,通过循环扫描方式进行数字量输出,减少对外输出端口的数量,可靠性高、适应面广、可移植性强,操作维护简单、价格低廉。
参考文献
[1]RICHARDC.LERNECKER,TOMARCHER.VisualC++6宝典[M].张艳,王文学,张廉,等译.北京:电子工业出版社,2001
[2]王昌明,孔德仁,何云峰.传感与测试技术[M].北京:北京航空航天大学出版社,2005
[收稿日期:2007.6.14]
确的数据,在软件中加入较验码程序,以确保数的正确性。目前常用的校验码有奇偶校验码、海明校验码、LRC校验码、CRC校验码等,其中CRC校验是当中算法最复杂,准确率最高的校验码之一,这里就以CRC校验码为例介绍一下校验码的运用。CRC校验基本原理如图4所示:
图4CRC校验基本原理图
下面以最常用的CRC-16为例来说明其生成过程。
1)设置CRC寄存器,并给其赋值FFFF(hex)。
2)将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。
3)CRC寄存器向右移一位,MSB补零,移出并检查LSB。
4)如果LSB为0,重复第3步;若LSB为1,CRC寄存器与多项式码相异或。
5)重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。
6)重复第2至第5步直到所有数据全部处理完成。
7)最终CRC寄存器的内容即为CRC值。
以下便是以查表方式的CRC校验码的C语言实现:
unsignedshortCRC16(puchMsg,usDataLen)
unsignedcharTpuchMsgg/h要进行CRC校验的消息h/
unsignedshortusDataLeng/h消息中字节数h/
iunsignedcharuchCRCHi=0xFFg/T高CRC字节初始化T/
unsignedcharuchCRCLo=0xFFg/T低CRC字节初始化T/
unsigneduIndexg/TCRC循环中的索引T/
while(usDataLen--)/T传输消息缓冲区T/
iuIndex=uchCRCHi^TpuchMsgg++g/T计算CRCT/
uchCRCHi=uchCRCLo^auchCRCHi[uIndex]l g
uchCRCLo=auchCRCLo[uIndex]g l
return(uchCRCHi<<8|uchCRCLo)gl
3结束语
文章对RS-485通讯中的存在的信号反射问题,分布电容的影响和校验技术分别从硬件和软件两方面作了研究,提出了具体的解决措施,给出了CRC校验的生成步骤。提高了第三方协议设备的集成质量。在实际工程运用中,取得了良好的效果。
参考文献
[1]李海森.发展中的楼宇自动控制系统数据通讯协议[J].微型电脑应用,1998(1)
[2]吴伟陵.信息处理与编码[M].北京:人民邮电出版社,2003
[收稿日期:2007.5.23]
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!12

本文发布于:2024-09-23 21:26:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/167011.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   系统   进行   重量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议