登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 电子信息类 > 电子科学与技术 > 正文

基于LabVIEW的自制扭矩磁力计的自动化操作外文翻译资料

 2022-12-22 17:33:02  

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


毕业设计(设计)

英文文献翻译

Title: Automated operation of a home made torque magnetometer

using LabVIEW

基于LabVIEW的自制扭矩磁力计的自动化操作

Stefan Kohout, Joseph Roos, and Hugo Keller

Physik-Institut, Universitat Zurich, Winterthurerstrasse 190, 8057 Zurich, Switzerland

摘要:为了简化和优化我们自制的扭矩磁力计,我们创建了一个新的软件系统。该架构基于与主控制程序通信并行且独立运行的仪器处理程序。所有程序都设计为命令驱动的状态机,大大简化了它们的维护和扩展。此外,由于主程序不仅可以从用户界面接收命令,也可以从其他并行运行的程序接收命令,因此实现了一种简单的自动化方式。将一系列命令的文本文件发送到主程序,就足以让系统自动执行一组复杂的测量。在本文中,我们将介绍系统的体系结构及其在LabVIEW中的实现。

1.序言

在现代凝聚态物质研究中,最有趣的主题只是微妙的影响,而这只有通过对大量样本进行彻底和系统的调查才能研究。虽然第一次调查必须手工完成,但是可以通过自动测量设置节省大量的时间。这种自动化系统已经广泛用于大规模实验,但是大多数小型实验,即使是计算机控制的,也不允许自动测量。在某种程度上,自动化的存在是为了方便测量,因为经常存在使系统自动执行特定测量的可能性,但是通常不轻易覆盖大的参数空间。 另一方面,商业上可用的完整测量系统很少带有复杂的控制软件,无法进行长测量序列的编程。当然,这种软件系统是昂贵的软件开发的产物,普通的研究实验室不太可能用这种软件系统。即使一些商业程序可以用在实验装置的某些仪器设备上,然而重要的是它们之间的相互作用。因此,大多数控制软件都是由科学家自己编写的,他们缺乏时间、金钱和人力来开发广泛的自动化软件。

在本文中,我们提出了一种开发控制软件的简便方法,该软件可以编写复杂序列并自动执行它们1。这可以通过使用公共实验室编程语言进行适度的开发来实现。我们将首先介绍实现此目标所需的不同架构方法,之后添加自动化只是一小步。

2. 实验室设备软件

为控制实验而创建的程序需要执行多项任务。首先,他们必须能够将控制命令发送到仪器并接收测量数据。其次,要处理和显示这些数据,并且最终需要将用户输入转换为控制命令。各种开发平台提供了大量的程序库,用于界面仪器,创建用户界面和执行复杂的数据处理,这些有助于减少与开发此类软件相关的工作量。是National 的开发环境,用于以自己的图形编程语言“G”创建程序(称为虚拟仪器或简称VI),可能是最知名的,并且最广泛地用于此类应用程序。“G”提供了在任何其他编程语言中都能找到的所有流控制结构,比如循环和条件分支。此外,任何VI都可以很容易地在其他VI中作为子VI使用。LabVIEW VI由用户界面(UI)和包含实际代码的框图(BD)组成。 编程是通过对数据流进行建模来完成的,其中数据流是图形化的函数和过程的表示由线连接,通常称为线。VI的命名源于这样的程序与实际仪器的相似性,UI显然对应于仪器的前面板,BD对应于其内部布线。

创建用于测量控制的LabVIEW软件的一种常用方法是编写一个主VI,其中包含UI和对用户输入进行适当操作的逻辑,以及处理、显示和保存数据的逻辑。与仪器的通信由驱动子程序执行,驱动子程序由主VI定期执行。当调用这样的驱动程序VI对仪器执行查询时,它会向仪器发送必要的命令,等待一段时间让仪器准备答案并最终从仪器读取该响应。通常这个过程需要几十到几百毫秒。假设整个测量设置由几个仪器组成,主VI可以用两种不同的方式组织:要么所有驱动程序VI都按顺序调用,所以需要时间来收集所有数据以随仪器数量增长。要么并行调用驱动程序VI,这要归功于LabVIEW固有的多线程架构。但是,在这种情况下,所有驾驶员都会尝试同时访问这些仪器。如果仪器连接到单个接口总线,这将导致“交通堵塞”。一些司机将被迫等待,直到其他人写入他们的总线。此外,由于某些仪器比其他仪器更少进行测量,因此不需要在总线上进行许多操作,因为不会获得新的数据。

在本文中,我们介绍了独立驱动程序VIs的使用,我们称之为处理程序,通过LabVIEW提供的方法并行运行并与主VI通信。这样可以更有效地使用用于连接仪器的接口总线,从而获得更高的数据采集速率。此外,通过使用“状态机”(SM)架构,这些程序在功能上更容易扩展和维护,最重要的是允许通过单独的程序进行控制,从而实现自动化。

3. 实验配置

这里介绍的程序是为控制和自动化扭矩磁力测定装置而开发的,该装置是在我们的3,4组中制造的。这种装置用于通过由磁场H引起的扭矩测量样品的磁矩m

(1)

它非常适合于研究大多数高温超导体中的各向异性磁现象。扭矩磁力测量法与大多数其他磁力测定技术相辅相成,因为它只对垂直于所施加场的部分敏感。扭矩测量很快,一次测量只需要几分之一秒,并且由于比例性在高场中可达到的高灵敏度。我们的自制扭矩磁力计系统,如图1所示,由位于可旋转支架上的铁轭磁铁两极之间的流动低温器组成。安装有样品的扭矩传感器,并将它插入低温恒温器然后连接到锁定放大器(LIA)来读出。测量原理的细节超出了本文的范围,并在别处描述3,4。控制和测量系统状态所需的所有设备通过IEEE-488通用接口总线(GPIB),RS-232串行连接和间接通过LIA仪器中的其他模拟和数字输入和输出端口连接到Windows PC。主要部件是EG&G Model 7265 LIA,Lakeshore DRC 93A温度控制器和Bruker BH-15磁场控制器。还可以通过GPIB连接附加装置,例如具有读出电子装置的压力传感器,用于监测低温恒温器或电流源中的交换气体压力,以及用于专门应用的电压表。GPIB是一种广泛用于科学仪器的接口总线,它具有8位并行数据传输,握手和实时响应功能。

图1.使用所提供的软件自动化的扭矩测量设置概述。低温恒温器放置在铁轭磁铁的磁极之间,铁磁轭磁铁可自由旋转。扭矩传感器插入低温恒温器并连接到读出电子设备。控制实验状态所需的所有仪器都连接到个人计算机。

4. 软件系统结构

新开发的控制软件的架构如图2所示。连接到系统的每个仪器都由一个名为handler.vi的VI对应物表示。所有处理程序都由数据服务器管理,它与torque.vi VI进行通信,后者是主要应用程序。所有这些VI并行独立运行,这样,每个handler.vi都可以进行优化,以最大限度地利用它所针对的仪器。这包括通信所需的等待时间,基于不同需求的优化数据速率以及使用每种仪器通过GPIB发出特殊事件信号的能力。由于所有handler.vis并行运行,因此与仪器通信所需的各个写等待读取周期是隔行扫描的,从而减少了总线的空闲时间。此外,每个仪器仅在必要时与之通信,从而在保持数据质量的同时减少总线占用。通过利用GPIB的服务请求(SRQ)功能,可以很好地优化这一点。每个仪器都可以通过断言特殊SRQ线路向GPIB控制器发出一系列事件信号。这些事件可能是错误条件,但也可能是数据可用性的指示器。例如,当新的温度读数准备好时,湖岸温度控制器被编程来断言SRQ线。由于这仅在每两秒发生一次,因此只有在真正需要时才读取仪器,而不是每秒多次读取相同的数据。 即使没有提供此类功能的仪器也可以通过降低指令handler.vi读取仪器的速率来优化。这使得能够更频繁地读取更关键的测量结果,从而以更高的速率获取数据并且导致更好的质量。

图2.扭矩控制软件系统的架构。所有VI(torque.vidataserver.vi和处理程序* .vis)执行在平行下。命令沿实心右指向箭头发送,数据沿虚线左侧传播回来指向箭头。

由于主VI不将handler.vis称为子VI,所以需要建立特殊的通信方式。这里我们介绍如何使用队列向handler.vis和DataSockets发送命令以接收测量数据。队列是由LabVIEW提供的先进先出式内存结构。在我们的示例命令中,它可能包含固定或无限数量的字符串条目。 通过使用特殊的子VI,任何VI都可以将命令附加到队列的末尾或检索最旧的命令。任何读取条目都会自动删除。队列由名称标识,使得访问它们相当容易。在大多数应用程序中,一个给定的队列只被一个VI读取,而多个VIs可以对它进行写入。DataSockets也是内存结构,由唯一名称标识,但仅包含最新的数据。 他们的数据类型可以在LabVIEW中的数据类型中自由选择。在我们的例子中使用的DataSockets是包含handler.vi的主要数据的浮点数的数组。 上面提到的dataserver.vi用作中间VI,它收集所有handler.vi的数据并将所有数据放在一个单独的DataSocket中,然后由torque.vi main VI读取。因此,主VI不需要知道从哪个仪器获得哪些数据。

为了使VI能够相应地对可能的命令起作用,必须给它们提供一些命令解析功能。事实上,这样的命令解析器是每个VI的核心部分:甚至VI执行的常规操作也被放入重复执行的命令中。本质上,所有VI都设计为命令驱动状态机(SM)。在LabVIEW程序中使用SM范例已经在很多场合被提出,考虑到LabVIEW的功能,这并不奇怪。然而,据我们所知,只有少数应用程序使用这种架构。其基本思想是,通过执行,程序将经历各种命名状态。可以预先确定和定义访问这些状态的顺序,也可以基于当前状态的结果确定要遵循的状态。LabVIEW中的实现非常简单,如图3所示。一个无限运行的循环包含一个由所有状态组成的案例结构。这些状态由字符串标识,因此易于人类阅读。与其他方法相比,它的标识是通过数字或特殊的枚举数据类型来实现的,这使得结构易于扩展和维护。除了这些结构之外,VI还包含命令堆栈和执行所需的一些内部数据。在启动时,当命令堆栈为空时,执行默认情况(状态)。通常称为“GetCommands”案例。这种情况包含清空此VI队列所需的代码和一组放在命令堆栈上的默认命令。当主循环第二次迭代时,最旧的命令从堆栈中移除,分成指令和可选参数,然后该指令被送入案例结构选择器,定义要执行的案例。这种情况可能会向堆栈添加更多命令或只是执行特定任务。完成大小写后,主循环再次迭代,下一个命令从堆栈中删除,依此类推。只要堆栈变空,就会再次执行默认情况“GetCommands”并重新填充它。

图3.VI的基本结构示意。一个全封闭的主循环无限执行。内部逻辑由命令堆栈组成,其第一个元素分为指令和参数。该指令用作包含各个指令代码的案例结构中的选择器值。这导致操作所需的命令解析功能。VI执行所需的内部数据通过每次迭代,并且可以由每个命令案例读取和修改。

因为handler.vis是独立的程序,不必依赖于由主VI定期调用,所以它们可以用于执行比仅仅与乐器交谈更复杂的任务。举个例子:handlerLakeshore.vi,Lakeshore温度控制器的handler.vi包含通过软件控制低温恒温器中的冷却剂流来控制温度的逻辑。流控制器连接到一个单独的数模转换器(DAC),从而使handlerLakeshore.vi能够通过向DAC的handler.vi(handlerDAC.vi)发送命令来控制它。跟踪最后几秒的测量数据,计算它们的时间趋势并将其发布到DataSocket,这些数据被编码到一个命令中并由handler.vis执行。

5. 自动化

如前所述,所有VI都被组织为状态机,甚至包括主VI torque.vi。如图4所示,其用户界面(UI)上的每个用户动作(按钮按下,值改变)被UI处理器转换成命令,然后该命令被发送到SM并在SM中处理。然后,SM将适当的命令发送到dataserver.vihandler.vis(图4中的宽箭头(1))。这两个部分(UI处理程序和SM)独立运行torque.vi的组件。 通过队列再次确保它们之间的通信。这启用了其他VI(例如图4中所示的音序器)用于控制SM的转矩,通过编程方式将这些命令直接发送到SM(图4中的宽箭头(2))。

当需要自动测量时,会写入序列文本文件,其中包含完成这些测量所需的命令,然后由sequencer.vi读取。除了torque.vi的SM命令外,sequencer.vi还了解一组流控制指令,如“if”,“while”和“for”,这些指令对于创建重复任务的

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[21024],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图