【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-用VB实现数据采集与分析的程序设计方法 - 编程语言,希望本篇文章对您学习有所帮助。
用
VB实现数据采集与分析的程序设计方法朱宏辉α 佟 力 摘 要 本文介绍了用VC创建数据采集动态链接库和用
VB调用DLL的方法给出了用
VB设计数据采集与分析程序的实例。
关键词
VB 数据采集 程序设计一、用DLL技术实现数据采集在计算机辅助测试系统中常用AD接口模块作为输入硬件使用VisualBasic编制人机交互界面。
但是
VB不具备直接对硬件IO地址进行访问的函数。
为了实现动态数据采集和处理用C语言或汇编语言编制对硬件端口访问的DLL函数然后由
VB主程序调用从而实现对IO口的访问和控制既能保留
VB设计界面的灵活和快捷又能发挥DLL在Windows环境下多个应用程序之间可共享
代码和资源从而提高运行效率的优势。
二、用VC创建用于数据采集的动态链接库DLL尽管Windows95的DLL库内容相当丰富但是通过它只能访问
计算机的标准接口对于不存在Windows95的标准驱动程序的端口来说就无能为力了。
而本系统数据采集模块驱动程序不在标准驱动程序库中所以必须创建自己的动态链接库文件。
目前
常用的动态链接库开发工具为VisualC、BorlandC、TurboC。
本文采用VisualC4.1集成开发环境作为开发工具方便地创建了用于数据采集的DLL。
11建立DLL的C源程序.CPPDLL源程序包括以下3个部分:1LibMain函数。
它是Windows95DLL文件的主入口函数负责对DLL模块的初始化即当DLL第一次被装入时Windows将调用它。
本文中通过定义以下程序
代码的方式调用DLL文件:BOOTFARPASCALLibMainHANDLEhInstanceWORDwDataSegWORDwHeapSizeLPSTRlpszCmdLine return1其中4个参量的含义为:hInstance-DLL的句柄wDataSeg-数据段的
注册器值wHeapSize-模块定义文件中所定义的堆大小lpszCmdLine-指向命令行参数的远指针。
2出口函数WEP。
它是DLL的终止函数。
在DLL完成装入以及初始化以后便可以提供给其它函数调用。
当所有调用这个DLL程序结束或者要释放它的时候Windows95就会调用DLL中的WEP函数来进行必要的清除
工作如释放系统资源等。
本文中通过以下形式调用WEP函数:BOOLFARPASCALWEPintnifnWEP-SYSTEMEXIT 3系统即将关闭请做好必要的处理3elseifnWEP-FREE-ALL 3所有调用此DLL函数的程序都已结束或者不再需要3return13自已定义输出的库函数My-function。
每个函数必须用FAR声明。
这一部分是整个程序的核心执行本DLL程序特定的任务。
21建立模块定义文件.DEF在VisualC4.1中模块定义文件向LINK提供定义库属性的DLL标志、DLL信息、
版权声明、库
代码段属性、库致据段属性、局部堆属性和引出函数等输入信息。
DLL的模块定义文件与Windows应用
程序的模块定义文件不同其主要区别在第一项LIBRARY。
它说明此模块为1个DLL而非应用程序其后跟着库名它必须和DLL文件名相同。
此外所有输出函数及WEP出口函数需用EXPORT语句将其引出。
31生成新的项目文件.MAK在VisualC4.1集成开发环境下选择File菜单下New子项创建工程文件.mdp项目类型选为Windowsdy2namic-linklibrary.DLL并把以上DLL的源文件.CPP和??93??MicrocomputerApplicationsVol.16No.32000 开发应用 微型电脑应用 2000年第16卷第3期α朱宏辉 武汉交通科技大学 副教授 硕士 武汉 430063模块定义文件.DEF加入该项目中经过编译后即自动生成动态链接库文件.DLL。
然后将此DLL文件存放到win95sys2tem子目录中这样就可以在编写应用程序时调用它。
三、DLL应用实例下面介绍我们编写的可供
VB调用的DLL模块用以对数据采集接口板进行初始化并获得其任一通道的测量值。
本系统中采用的ADC1674是16通道、分辨位为12位的逐次逼近型模数转换器转换时间10∧s端口地址为308H启动方式控制字地址为30AH读AD转换结果高8位数据的地址为308H读AD转换结果低4位数据的地址为30AH取状态转换字的地址为309H当D7位1时表示正在转换。
由于VC关于硬件端口的函数inp和outp等仅支持DOS程序因此在创建DLL模块时需通过在VC程序中嵌入汇编语言
代码以实现对端口的访问。
源
代码文件ADC.CPP及模块定义文件ADC.DEF如下:源
代码文件:ADC.CPPincludeexterncintFARPASCALSampleintchDLL入口函数intFARPASCALLibMainHANDLEhInstanceWORDwDataSegWORDwHeapSizeLPSTRLpszCmdLineifwHeapSizeOUnlocKDataO:使用局部堆数据段可移动return1初始化成功intFARPASCAL-exportSampleintchintchselectconverted-datachselect0x80ch-asmMOV DX308HMOV ALchselect 送通道控制字OUTDXAL启动转换MOVDX309HCHECK:INALDX读转换状态TESTAL80H检查AD转换是否结束JNZCHECK未结束则继续MOVDX308HINALDX读高8位MOVAHALMOVDX30AHINALDX读低4位MOV CL4SHRAXCLMOVconverted-dataAXreturnconverted-data返回转换结果intFARPASCALWEPintnParameterDLL终止函数return1模块定义文件:ADC.DEFLIBRARY ADCDESCRIPTION‘DLLforDataAcquisitionwithADC1674’EXETYPEWINDOWSCODEPRELOADMOVEABLEDISCARD2ABLEDATAPRELOADMOVEABLESINGLEHEAPSIZE1024EXPORT Sample1 WEP2在模块定义文件ADC.DEF中LABRARY表示DLL库名称:DESCRIPTION用于文件说明EXETYPE为选择操作
系统CODE为设置
代码段属性DATA为设置数据段属性HEAPSIZE为设置局部堆大小以字节为单位EXPORT为定义导出函数。
四、
VB调用DLL从
VB中调用ADC.DLL时先在全局模块GlobalMod2ule或窗体层的说明部分DeclarationSection中用Declare语句声明所要使用的DLL中的函数然后像使用
VB自己的函数或过程一样调用该DLL函数。
本系统中调用DLL的声明如下:PublicDeclareFunctionSampleLibADC.DLLByValchannelAsIntegerAsInteger其中Sample表示将在
VB中使用的采样函数的名字ADC.DLL是动态链接库名。
对于DLL中无返回值的函数
VB中定义时以Sub代替Function。
值得注意的是声明语句中参数、返回值的类型必须与DLL中相应的参数、返回值的类型相一致否则就会出错甚至造成死机。
五、采集、分析程序设计在
VB中大多数应用程序的基础是窗体模块文件扩展??04??MicrocomputerApplicationsVol.16No.32000 开发应用 微型电脑应用 2000年第16卷第3期名为.frm。
本系统的采集、分析程序就是在一个多
文档界面MDI的若干各子窗体上建立起来的。
下面就以其中一个子窗体为例简述采集、分析程序的设计。
11建立模块文件打开多
文档界面MDI调出其中一个窗体Forml在从Insert菜单中选择Module菜单项以建立模块文件Moudell.bas。
21选择窗体Forml1将其属性设置为Caption:SamplesystemName:Sam2pleLinkMode:1-Source。
2从
VB的Tools菜单中选择MenuEditor为此窗体设置“Run”菜单属性设为Caption:RunName:menuRun。
并设置菜单项为“Start”属性为Caption:StartName:menuS2tart。
3加入控制数组Text0……Text7。
4加入定时器控件Timerl作为采样定时器并设置其属性为Enabled:TureInterval:1000采样周期为ls。
5加入定时器Timer2并设置其属性为Enabled:TrueInterval:60000。
6将下列
代码加到menuStart-Click事件过程中:PrivateSubmenuStart-Click Start ‘启动EndSub7将有关数据采集、数字滤波、标度变换等
代码加入Timer1-Timer事件过程中:PrivateTimer1-TimerDiminchAsIntegerFori0ToSWEEP-1 Forch0To15 VoltschiSampech409.5 ‘调用数据采集函数并算出电压值 NextchNextiForch0to15 Filtered-voltchFilterch ‘调用数字滤波函数得到滤波后的电压值NextchVolt2Temp ‘将滤波后的电压转换为温度EndSub8将有关数据存盘
代码加入Timer2-Timer事件过程中:PrivateTimer2-Timer SaveDate ‘每一分钟调用一次SaveDate子程序进行数据存盘EndSub对于把所采集来的数据进行时域分析、加窗处理、数字滤波、FFT变换、频域分析以及相关分析等其过程与此类似这里就不再赘述。
31声明在全局模块GlobalModuleMODULE1.BAS的说明部分DeclarationSection中声明所要使用的DLL中的函数以及全局变量并放入Start的过程定义
代码作为全局过程。
Module1.bas程序清单如下:AttributeVB-NameModule1PublicDeclareFunctionFindWindowLibUserByVallpszClassNameAsAnyByVallpszWindowNameAsAnyPublicDeclareFunctinSampleLibADC.DLLByValchannelAsIntegerAsIntegerPublicconstSWEEP-5Publicvolts0To70ToSWEEP-1AsSinglePublicfiltered-volt0To7AsSinglePublictemp0To7AsSingleSubStart OnErrorGoToErrorHandle ‘设置错误陷阱 LpszClassnamexlmain RunFlag0 ‘程序未运行时运行标志设为0 ReturuValueDoEvents RunFlag1 ‘程序已运行时运行标志设为1…错误处理程序略EndSub41生成可执行文件保存工程项目文件文件名为Sample.vbp编译生成Sample.exe。
六、结束语我们将上述方法应用于笔者设计的基于虚拟仪器技术的计算机辅助测试系统中取得了良好的效果。
人机交互界面清新悦目系统功能组态方便灵活程序运行稳定可靠。
该方法对用户自行开发Windows环境下的应用程序具有启发作用。
参考文献1陈宝江VisualBasic5.0编程实用手册北京人民邮电出版社1997年10月:P256-P3052江峡等译美PhilFeldmanRogerJennings著即学即用VisualC4.1电子工业出版社1997:P135263收稿日期:99年11月11日??14??MicrocomputerApplicationsVol.16No.32000 开发应用 微型电脑应用 2000年第16卷第3期Keywords fractal Juliaset MandelbrotSet self2similarityOnImageMatchingTechnologyP26……………………………………………………………………………………………………LuoChengping GongPeizhenDepartmentofComputerTongjiUniversity Shanghai200092Abstract Matchingcharactercomparabilitymeasureandmatchingstrategyarethreekeyaspectsinimagematching.Thispa2perexploresintovariousmethodsinthethreekeyaspectsandevaluatestheiradvantagesanddisadvantagesrespectively.Keywords imagematching comparabilitymeasureDesignandImplementationofActiveDirectoryTreeontheWebpageP29…………………………………………………………ZhangZhilong CanChengtiEducationalTechnologyCentreInstituteofElectronicInformationandEngineeringUniversityofDefenseScienceTechnology Changsha410073Abstract ThispaperintroducestheimplementationofactivedirectorytreeontheWebpageusinga
Javaappletcalledoutline.class.ItalsoproposesanewideaofhowtoorganizethecontentofaWebsitesoastosimplifytheWebsitestructurebringuser2friendlinessandmakefulluseofscreenspace.Keywords computernetwork CAI Web frame Javeapplet
HTMLDataMiningAppliedinFashionDesignP31……………………………………………………………………………………………WeiGangDepartmentofComputerScienceTongjiUniversity Shanghai200092YeChenzhouInstituteofImageProcessingPatternRecognitionShanghaiJiaotongUniversity Shanghai200030Abstract Thispaperextractsasetofrulesusingcertaindataminingtechniquetoreflecttherelationshipbetweencolorcombi2nationsandpopularfashions.Theprocessofdataminingmainlyinvolvesclusteringbasedonmodels.Itsresultisbothsimpleandocular.Asetofrulesforcolorcombinationcanbeobtainedbyapplyingreductionandothersimpleprocessestotheresultsofclustering.Similardataminingtechniquesproveveryapplicableinfashiondesignareas.Keywords datamining clusteringbasedonmodel rulesabstractionDevelopmentApplicationSoftwareDesignandImplementationfortheElectricityPowerDispatchingSystemP34……………………………………………ChenTong HuangPeiwei NiuYanweiDepartmentofElectronicEngineeringShanghaiJiaotongUniversityShanghai200030Abstract Theelectricitypowerdispatchingsyste
misusedfordispatchingpowerresources.Itplaysavitalroleincommunica2tionofpowerenterprises.Thispaperintroducesthesoftwareforanewtypeofpowerdispatchingsystemwithitsarchitectureanddesignin
gprinciples.Furthermoreitdiscussesthekeyproblemsencounteredinimplementingthesoftwaresuchasoperat2ingsystemdesigncallprocessingandsoon.Key
words realtimeinterrupt callprocessing trunkinterfaceDevelopmentandApplicationofCAICoursewareBasedonMATLABP37…………………………………………………………XiaoJunDepartmentofAutomationFushunPetroleumInstitute Fushun113001Abstract ThispaperintroducestheCAIcoursewareforwithitsdesignideasandmethods.Thiscourse2warehasbeendevelopedusingMATLAB.Itscontentincludesand.Itprovesprettyeffectiveinapplication.Keywords CAI MATLABlanguage coursewaredevelopmentVisualBASICProgrammingforDataAcquisitionandAnalysisP39…………………………………………………………………ZhuHonghui TongLiWuhanUniversityofTransportationScienceTechnology Wuhan430063Abstract ThispaperintroduceshowtocreatedynamiclinklibraryDLLusingVisualCandcallDLLusingVisualBASIC.Italsogivesanexampleofdesigningaprogramfordataacquisitionandanalysis.Keywords
VB dataacquisition programdesignHotelDoor-LockingSystemUsingIC-cardP42…………………………………………………………………………………………MeiJun ZhengJianyongDepartmentofElectricalEngineeringSoutheastUniversityAbstract Thispaperintroducesthearchitectureanddesignprinciplesofadoor2lockingsystemusingIC2cardtakingSLE4442asanexample.Itexplainsparticularlytherealizationofcommunication.Keywords IC2card systemarchitecture communicationTechnicalCommunicationDesignofMultimediaCAICoursewareforControlSeriesCoursesandRelatedTechnologyP45…………………………………??3??MicrocomputerApplicationsVol.16No.3 2000 ABSTRACTSKEYWORDS 微型电脑应用 2000年第16卷第3期