基于LabView核磁共振测井仪测试系统研制与应用.docVIP

基于LabView核磁共振测井仪测试系统研制与应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于LabView核磁共振测井仪测试系统研制与应用

基于LabView核磁共振测井仪测试系统研制与应用   摘 要 本文对基于LabView的核磁共振测井仪测试系统的软硬件进行了介绍,其中具体介绍了基于Labview事件队列状态机的软件实现,并对测试软件的功能进行了介绍,最后对测试系统的功用进行了总结,对下一步工作进行了展望。   【关键词】核磁共振 LabView 事件队列状态机 测试系统   1 系统概述   基于LabView的核磁共振测井仪测试系统是为国产核磁共振测井仪EMRT科研相配套的测试系统。其设计和应用,伴随着核磁共振测井仪器研发的全程,对核磁共振测井仪的测试、连调、数据分析等各方面都起到了很好的应用作用。它是基于USB总线和复杂事件队列状态机的系统架构,以用来应付核磁测井工业样机复杂的测井模式、通讯协议和数据处理。   2 测试系统整体框图   测试系统软硬件结构简单清晰,便于测试工作的开展,省去了中间很多与核磁测井仪器本身问题不相关的环节,比如数据遥传短节、辅助短节等。   下面图1是整个测试系统的框图:   3 测试系统硬件简述   整个测试系统想要运行起来,下面几个部分是必不可少的:(1)刻度装置;(2)仪器的三个短节;(3)数据转换盒;(4)测试系统软件。刻度装置是一个卧式圆柱环体的容器,它与放置探头的轴是同心的,刻度装置一般是用玻璃纤维做成的,而且由薄金属层相连接,具有法拉第圆筒的作用,可以起到屏蔽作用;刻度筒内注满了掺加硫酸铜的水,硫酸铜明显的降低了水的T1弛豫时间。采用这种结构,探测区就包含100%的硫酸铜溶液,而且由于水的弛豫时间相对较快,就可以缩短刻度时间。数据转换盒的作用是1553B总线转USB总线,USB总线可以方便的与笔记本进行连接。   4 基于Labview事件队列状态机的软件实现   4.1 Labview高级编程   4.1.1 Labview数据流   LabVIEW是一个图形化软件开发环境,它所使用的编程语言是G语言,也称为图形化编程语言。传统文本编程语言根据指令的先后顺序决定应用程序执行顺序,也称为:“控制流”;而LabVIEW则按照“数据流”的模式运行VI。所谓数据流也就是说:当所有的输入端都具备了必要的输入数据时,程序框图节点将运行。节点在运行时产生输出数据并将该数据传送给数据流路径中的下一个节点。数据流经节点的动作决定了程序框图上VI和函数的执行顺序。   4.1.2 通知器   通知器是Labview同步数据传输编程的方法之一,通知器操作用于挂起一个程序框图的执行,直到从程序框图的另一部分或同一应用程序中运行的VI收到数据后才继续执行,通知器经常使用在向多个位置或消费者广播时发布消息的场合。通知器操作函数不缓冲已发送的消息,如消息被发送后没有任何节点在等待,则当另一消息被发送后数据将丢失,这一点与测井数据采集机制是类似的,如果丢了一包数据,或者一次通讯错误,是不会挂起程序的,程序只会记录错误,继续下一个新周期的执行。   在本测试系统中,通知器主要用于工作模式的触发,几乎所有测井模式都用到了这项功能。   4.1.3事件队列状态机   状态机包含三要素:状态(State)、事件(Event)和动作(Action)。LabVIEW 中的状态机由一个while主循环和一个case结构组成,并利用位移寄存器来实现状态的跳转。while循环保证状态机的连续运行;case结构的分支与系统的状态(State)一一对应,即case结构的分支名称对应着状态名称,分支里执行代码的功能对应着状态的行为(Action);而case结构的条件变量与系统的事件(Event)相对应,引发状态的变迁以及决定状态迁移的方向。   队列型状态机是把将要执行的状态排队,然后把它们的状态名存在队列里,队列里的状态名与状态机的各个状态一一对应,用来控制状态的转换顺序。执行了的状态,其名称会从队列中删除,同时根据运行时状态的动作和碰到的事件,新的状态名又会被添加到队列中。   本测试系统将核磁共振测井仪器的每一个测井模式都作为一个事件队列状态机来实现,包括通讯测试、仪器刻度等,总计设计了20个事件,对仪器各个方面的状态信息都进行采集监测。图2所示,20个事件状态的G语言编程框架:   4.2 仪器的各种模式实现   每个测井模式都是由事件状态机来控制实现的,测试软件实现了仪器的所有测井模式和通讯协议,包括:扫频、接收刻度、发射刻度、单频模式、FBW模式、油模式、重油模式、气模式等总计15个仪器操作模块。   基本上所有的仪器测井模式都必不可少以事件和状态来驱动,事件状态机的实现粗略描述如下:在用户界面选择模式-设置好参数-由用户事件触发开始-对应模式参数初始化-通知器发送通知-通过DLL库函数下发命令和参数给

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档