仪器仪表编程基础和概念

2023-11-09 18:31

本文主要是介绍仪器仪表编程基础和概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 如何通过电脑访问控制仪器仪表?

 物理上,必须通过一定的接口实现电脑与仪表相连接,如USB, LAN, GPIB, RS-232等。连接好之后两者之间必须有规定好的语言,才能实现两之间的访问和控制。通常电脑实现对仪器仪表的访问比较容易,随着电脑安全性的增加,仪表对电脑的访问和控制越来越复杂。

2. 电脑与仪器仪表的沟通语言,也就是驱动

相同测试领域有不同厂家的仪表,各行各业也有不同的测试需求。如果不同的测试需求,不同的仪表厂家都制定各自的仪表驱动,会导致行业交流困难,阻碍技术的发展。所以,仪器仪表行业为了解决仪表驱动统一化和标准化成立了IVI Foundation(Interchangeable Virtual Instruments Foundation简称IVI基金会)。这个基金会有三种不同的会员,分别是高级会员、一般会员、准会员。高级会员主要由世界知名的仪表厂商,如Keysight, NI, Rohde & Schwarz三家组成。

IVI Foundation网站

为了支持所有流行的编程语言和开发环境,IVI驱动程序提供了IVI- C或IVI- COM (Component Object Model) API。驱动程序开发人员可以提供其中一种或两种接口,以及针对特定开发环境优化的包装后的接口。

虽然功能是相同的,但IVI-C驱动程序是为在ANSI -C开发环境中使用而优化的;IVI-COM驱动程序针对支持组件对象模型(COM)的环境(如.net编程环境)进行了优化。IVI-C驱动程序扩展了VXI即插即用驱动程序规范。IVI-COM驱动程序通过方法和属性可以方便地访问仪器功能。

通过下面框图可以清楚看出,仪表厂家必须提供IVI-C或IVI-COM的接口,或者是包装后的接口,基于特定的编程环境才实现电脑对仪表的控制和访问。而发布的IVI接口也需要维护和升级。主要仪表厂家有专门的I/O库管理软件,如Keysight Connection Expert和NI Measurement & Automation Explore。

3. 测试软件的架构和实现

硬件上,除被测件之外有测试夹具、仪器仪表、硬件接口(如RS-232, USB, LAN, GPIB/HPIB, PXI等)。软件层面包括VISA/SICL、IVI接口和各种开发平台(如Visual Studio, VEE, LabView等)、和应用界面。

什么是SICL?安捷伦标准仪器控制库(SICL)是由安捷伦(HP)开发的I/O库,可在许多接口和系统之间移植。SICL是一个模块化的仪器通信库,适用于各种计算机体系结构、I/O接口和操作系统。使用此库用C/ c++或Visual Basic编写的应用程序可以在源代码级别从一个系统移植到另一个系统,很少或不需要进行更改。SICL使用标准的、常用的函数通过各种接口进行通信。例如,为在给定接口上与特定仪器通信而编写的程序也可以在不同类型的接口上与等效仪器通信。

什么是VISA?安捷伦虚拟仪器软件架构(VISA)是根据VXI即插即用系统联盟设计的I/O库,允许来自不同供应商开发的软件在同一系统上运行。如果您想在应用程序中使用VXI plug&player驱动程序,或者如果您希望您开发的I/O应用程序或仪表驱动程序符合VXI plug&player标准,请使用VISA。

这篇关于仪器仪表编程基础和概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/ryanbabao/article/details/131254955
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/377870

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制