已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CompanyLogo 第5章使用传统语言开发测控软件 5 3在VisualC 窗口中调用VISA 5 2开发简单VISA程序 5 1VISA简介及其函数简介 5 4VisualC 综合测控系统开发 5 1VISA简介及其函数简介 5 1 1 什么是VISA 5 1 2 VISA的发展现状 5 1 3 VISA种类 5 1 4 VISA函数简介 5 1 1什么是VISA VISA是虚拟仪器软件结构 VirtualInstrumentSoftwareArchitecture 的简称 是由VXIplug play VPP 系统联盟所统一制定的I O接口软件标准及其相关规范的总称 一般称这个I O函数库为VISA库 用于仪器编程的标准I O函数库 VISA函数库驻留于计算机系统中 是计算机与仪器之间的标准软件通信接口 用以实现对仪器的控制 5 1 1什么是VISA 包含GPIB VXI PXI 串口 RS232 485 以太网 USB和 或IEEE1394接口的仪器系统进行配置 编程和故障排除的标准 什么是SICL SICL StandardInstrumentControlLibrary isanI OlibrarydevelopedbyAgilentthatisportableacrossmanyI Ointerfacesandsystems Aplatform independentAPIforsoftwaretocontrolandtestelectronicinstrumentsconformingtoIEEE488 AgoalofSICListomakeinstrumentprogramminginCmoreviablethanitistoday 5 1 2VISA的发展状况 VISA规范是VPP规范的核心内容 其中 VPP4 3 VISA库 规定了VISA库的函数名 参数定义及返回代码等 VPP4 3 2 文本语言的VISA实现规范 和 VPP4 3 3 图形语言的VISA实现规范 分别对文本语言 C C 和VisualBasic 和图形语言 LabVIEW 实现VISA时的VISA数据类型与各种语言特定数据类型的对应关系 返回代码 常量等进行了定义 VISA3 0由IVI InterchangeableVirtualInstruments 基金维护 5 1 3VISA种类 NI VISA 大体分2种 Agilent VISA VISA COM和VISA C VISA COM VISACOMI O是基于VISAI O架构的 VISA中的基本单元是资源会话 即表示与物理资源的一个连接 某些资源支持同时多个会话 但一个会话在整个会话期间只能针对一个物理资源 在VISACOM 一个COM对象表示一个VISA资源会话 TheCOMobjectisonlyconsideredaVISAresourceduringtheportionofitslifetimebetweeninitialization viatheobject sInitmethodorcreationbyaResourceManager andclosing eitherdestructionoftheobjectuponthereferencecountgoingtozerooracalltotheClose method whichevercomesfirst 扩展介绍 COM组件对象模型 VISA COM和VISA C VISA C 标准C语言接口VISA 5 1 4VISA函数简介 viOpenDefaultRM viOpenDefaultRM ViPSessionsesn 参数 返回值 ViStatus viOpen viOpen ViSessionsesn ViRsrcrsrcName ViAccessModeaccessMode ViUInt32timeout ViPSessionvi 参数 返回值 ViStatus viPrintf viPrintf ViSessionvi ViStringwriteFmt arg1 arg2 参数 返回值 ViStatus viScanf viScanf ViSessionvi ViStringreadFmt arg1 arg2 参数 返回值 ViStatus viRead viRead ViSessionvi ViPBufbuf ViUInt32count ViPUInt32retCount 参数 返回值 ViStatus 同前 viWrite viWrite ViSessionvi ViBufbuf ViUInt32count ViPUInt32retCount 参数 返回值 ViStatus 同前 viMoveIn viMoveIn8 ViSessionvi ViUInt16space ViBusAddressoffset ViBusSizelength ViAUInt8buf8 参数 返回值 ViStatus viMoveOut viMoveOut8 ViSessionvi ViUInt16space ViBusAddressoffset ViBusSizelength ViAUInt8buf8 参数 返回值 ViStatus viPoke viPoke8 ViSessionvi ViAddraddr ViUInt8val8 参数 返回值 无 viPeek viPeek8 ViSessionvi ViAddraddr ViPUInt8val8 参数 返回值 无 viClose viClose ViSession ViEvent ViFindListvi 参数 返回值 ViStatus 5 2开发VISA程序 MicrosoftVisualC Version6 0开发环境 点击File菜单创建一个空的控制台工程 选择菜单Project Settings 点击C C 标签 从Category下拉框选择CodeGeneration 从UseRun TimeLibraries下拉框选择Multi ThreadedDLL 点击Link标签 将visa32 lib 新版agilent的VISA库为agvisa32 lib 添加到Object LibraryModules框中 添加头文件 include visa h 编写程序 步骤1 步骤1 步骤1 步骤2 步骤3 注意 新版agilent的VISA库为了跟NI VISA区别 改成agvisa32 lib 步骤4 注意 有的路径可能是C VXIPNP WinNT agvisa include 步骤4 注意 有的路径可能是C VXIPNP WinNT agvisa lib msc 步骤4 步骤4 运行程序 步骤5 添加头文件 include visa h 步骤6 编写程序 include include includevoidmain ViSessiondefaultRM vi charbuf 256 0 OpensessiontoGPIBdeviceataddress22 viOpenDefaultRM 步骤6 Sendan IDN stringtothedevice viPrintf vi IDN n Readresults viScanf vi t buf Printresults printf Instrumentidentificationstring s n buf Closesession viClose vi viClose defaultRM getch 5 2 1接口类型 5 2 1接口类型 5 2 2接口类型举例 5 2 2接口类型举例 5 2 3AgilentVISACOMI O资源类 5 2 4VISACOM程序 import C VXIPNP visacom GlobMgr dll no namespaceintmain IResourceManagerPtrrm IMessagePtrptr bstr tidn CoInitialize NULL 5 2 4VISACOM程序 try InstantiatetheGlobalResourceManagerrm CreateInstance uuidof ResourceManager OpenthesessionwiththedefaultvaluesfortheLock None Timeout N A andOptionString ThereturnvalueisanIVisaSession buttheptrvariableisanIMessageinterfacereference causinganimplicitIUnknown QueryInterface tooccur The com ptr tsmartpointerclassthatwrapstheinterfaces courtesyof import handlesthedetails 5 2 4VISACOM程序 ptr rm Open GPIB0 22 NO LOCK 0 ptr WriteString IDN n idn ptr ReadString 1000 MessageBox NULL idn IDN Result MB OK catch com error 5 2 5AgilentI OLibraySuite14 5 2 5AgilentI OLibraySuite14 5 2 5AgilentI OLibraySuite14 5 3在VisualC 窗口中调用VISA 5 3 1 VisualC 深入介绍 5 3 2 NIMeasurementStudio 5 3 3 窗口中调用VISA 5 3 1VisualC 深入介绍 VisualC 是一个功能强大的可视化软件开发工具 特色VisualC 6 0由Microsoft开发 它不仅是一个C 编译器 而且是一个基于Windows操作系统的可视化集成开发环境 integrateddevelopmentenvironment IDE VisualC 6 0由许多组件组成 包括编辑器 调试器以及程序向导AppWizard 类向导ClassWizard等开发工具 这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境 Microsoft的主力软件产品 VisualC 是一个功能强大的可视化软件开发工具 自1993年Microsoft公司推出VisualC 1 0后 随着其新版本的不断问世 5 3 1VisualC 深入介绍 VisualC 6 0以拥有 语法高亮 自动编译功能以及高级除错功能而著称 比如 它允许用户进行远程调试 单步执行等 还有允许用户在调试期间重新编译被修改的代码 而不必重新启动正在调试的程序 其编译及创建预编译头文件 stdafx h 最小重建功能及累加连结 link 著称 这些特征明显缩短程序编辑 编译及连结的时间花费 在大型软件计划上尤其显著 5 3 1VisualC 深入介绍 缺点由于C 是由C语言发展起来的 也支持C语言的编译 6 0版本是使用最多的版本 很经典 最大的缺点是对于模版的支持比较差 现在最新补丁为SP6 推荐安装 否则易出现编译时假死状态 仅支持Windows操作系统 目前发现与windows7兼容性不好 安装成功后可能会出现无法打开cpp文件的现象 5 3 1VisualC 深入介绍 主要部分DeveloperStudio这是一个集成开发环境 我们日常工作的99 都是在它上面完成的 再加上它的标题赫然写着 MicrosoftVisualC 所以很多人理所当然的认为 那就是VisualC 了 其实不然 虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard 但实际上它没有任何编译和链接程序的功能 真正完成这些工作的幕后英雄后面会介绍 我们也知道 DeveloperStudio并不是专门用于VC的 它也同样用于VB VJ VID等VisualStudio家族的其他同胞兄弟 所以不要把DeveloperStudio当成VisualC 它充其量只是VisualC 的一个壳子而已 5 3 1VisualC 深入介绍 2 MFC从理论上来讲 MFC也不是专用于VisualC BorlandC C Builder和SymantecC 同样可以处理MFC 同时 用VisualC 编写代码也并不意味着一定要用MFC 只要愿意 用VisualC 来编写SDK程序 或者使用STL ATL 一样没有限制 不过 VisualC 本来就是为MFC打造的 VisualC 中的许多特征和语言扩展也是为MFC而设计的 所以用VisualC 而不用MFC就等于抛弃了VisualC 中很大的一部分功能 但是 VisualC 也不等于MFC 5 3 1VisualC 深入介绍 3 PlatformSDK这才是VisualC 和整个VisualStudio的精华和灵魂 虽然我们很少能直接接触到它 大致说来 PlatformSDK是以MicrosoftC C 编译器为核心 不是VisualC 看清楚了 配合MASM 辅以其他一些工具和文档资料 上面说到DeveloperStudio没有编译程序的功能 那么这项工作是由谁来完成的呢 是CL 是NMAKE 和其他许许多多命令行程序 这些我们看不到的程序才是构成VisualStudio的基石 5 3 1VisualC 深入介绍 5 3 2NIMeasurementStudio NIMeasurementStudio是为VisualStudio NET和VisualStudio6 0环境提供的一个集成式套件 包括各种常用的测量和自动化控件 工具和类库 NIMeasurementStudio带有的ActiveX和 NET控件 面向对象的测量硬件接口 高级的分析库 科学的用户界面控件 测量数据网络化 向导 交互式代码设计器和高扩展性类库等功能 极大的减少了您应用程序的开发时间 5 3 2NIMeasurementStudio 为C 提供的功能 MeasurementStudio为在VisualC 中开发测量和自动化系统提供了一个交互式设计方式 由于这些工具被集成到VisualC 开发环境中 因此您可以像使用微软工具一样直接调用它们 您也可以利用MeasurementStudio应用向导 AppWizard 以及控件和类库 轻松创建您的C 测量系统 应用向导根据您的特定要求创建一个项目 包含一个代码模板和设计应用程序时所需要的测量工具 这些工具包含了用于仪器控制 数据采集 数据分析和通过因特网实时传输数据所需要的C 类库 此外 自定义控件可创建您自己的测量用户界面 数据对象类库实现了数据从采集到分析再到显示的无缝封装和传输 将测量类库和界面控件连接到了一起 5 3 2NIMeasurementStudio 为C 提供的功能 MeasurementStudio企业版和专业版继续提供在VisualC 6 0和VisualBasic6 0环境下开发所需的ActiveX控件和类库 利用交互式ActiveX属性页面 您可以为模拟输入和输出 数字I O GPIB VISA以及更多的设备图形化配置数据采集和仪器控制应用程序 科学分析库包括了很多常用函数 如快速傅立叶变换 FastFouriertransforms 频谱测量和数组操作等 此外 包含在MeasurementStudio里的ActiveX用户界面控件专为使您创建一个如同真实世界仪器的虚拟仪器系统而设计 5 3 2NIMeasurementStudio 5 3 2NIMeasurementStudio 5 3 2NIMeasurementStudio 5 3 2NIMeasurementStudio 例 模拟温度采集 5 3 2NIMeasurementStudio voidCMoniDlg OnTimer UINTnIDEvent if m Switch GetValue m SliderS SetValue rand 100 else m SliderH SetValue rand 100 1 8 32 CDialog OnTimer nIDEvent 5 3 2NIMeasurementStudio voidCMoniDlg OnBtnStart TODO AddyourcontrolnotificationhandlercodehereSetTimer 1 200 NULL voidCMoniDlg OnButtonStop TODO AddyourcontrolnotificationhandlercodehereKillTimer 1 5 3 2NIMeasurementStudio 例 模拟波
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 趸船水手岗前岗位水平考核试卷含答案
- 啤酒酿造工班组考核考核试卷含答案
- 石英晶体生长设备操作工QC管理测试考核试卷含答案
- 特种炉冶炼工安全文化考核试卷含答案
- 联运港联运集配中心项目技术方案
- 汽车内饰件产品项目技术方案
- 工程材料采购库存与采购对接方案
- 中国矿业大学徐海学院《放射诊断》2025-2026学年第一学期期末试卷
- 2026福建省面向中央民族大学选调生选拔工作备考题库附答案详解(培优a卷)
- LED道路照明项目可行性分析报告范文
- GB/T 9755-2024合成树脂乳液墙面涂料
- 市政雨污水管排水工程监理实施细则
- 《工程勘察设计收费标准》(2002年修订本)-完整版-1
- 建筑工地消防安全知识培训
- 《煤矿防治水细则》全文
- 江苏省南通市名校联盟2024~2025学年高三上学期八月模拟演练性月考英语试题英语
- 2023年江苏省高等教育自学考试旅游资源规划与开发试卷3共八套会了这八套通过是没问题的不信试试看
- 2024年山东省高中自主招生数学模拟试卷试题(含答案)
- 纯种宠物繁殖中的遗传多样性管理
- 2024届福建省福州一中学数学七年级上册期末联考试题含解析
- 车间经理个人成长计划书
评论
0/150
提交评论