您好, 访客   登录/注册

运输机器人软件系统设计

来源:用户上传      作者:

  摘要:运输机器人是可以进行自动化运输作业的工业机器人。由NI的MY RIO来实现运输机器人系统设计,主要根据实际药房中对药品进行自动搬运的要求,对运输机器人的总体结构进行了设计和组装。最后,制作了一台以MYRIO控制器为核心,基于LabVIEW的集成开发环境的四轮运输机器人设备的软件系统设计。
  关键词:运输机器人;MY RIO;LabVIEW
  中图分类号:G642.41     文献标志码:A     文章编号:1674-9324(2019)31-0266-02
   一、LabVIEW简介
  美国国家仪器公司(简称NI公司)开发的面向仪器与测试过程的图形化开发平台——LabVIEW,在这种开发环境下,用户可以从自己的需要出发,随心所欲地组织仪器的前面板,然后经过简单的连线操作,一台适合自己需要的测试系统的设计工作便大功告成。
  (一)LabVIEW概述
  LabVIEW的英文全称是Laboratory Virtual Instrument Engineering Workbench。这个软件编程不是用代码,而是用图形符号。LabVIEW开发环境可以搭建在Windows,Mac或Linux系统上,LabVIEW的程序可以在上述系统上运行,还可以运行在Microsoft Pocket PC,Microsoft Windows CE,Palm OS以及多种嵌入式平台上,包括DSP、FPGA和微处理器。
  (二)LabVIEW的特点
  NI公司经过多年的不懈努力,使LabVlEW不仅拥有卓越的功能,而且形成了丰富的实用工具软件包,这不仅保证了系统开发的质量,而且简化了开发的难度。它具有如下特点:
  1.LabVlEW使用“所见即所得”的可视化技术建立人机界面。
  2.LabVlEW使用图标表示功能模块,使用图标间的连线表示在各功能模块间的数据传递。
  3.LabVlEW提供程序调试功能。
  4.LabVlEW继承了传统的编程语言中的结构化和模块化编程的优点。
  5.LabVlEW采用编译方式运行32位应用程序。
  6.LabVlEW支持多种系统平台。
  7.LabVlEW提供了大量的函數库供用户直接调用。
  8.LabVlEW是一个开放式的平台,提供DLL库接口和CIN节点,使用户有能力在LabVlEW平台上使用由其他软件平台编译的模块。
  LabVlEW是一个具有高度灵活性的开发系统,用户可以根据自己的应用领域和开发要求选择系统配置。
  (三)LabVIEW应用程序的组成
  一个LabVIEW程序由多个(至少一个)虚拟仪器(VI)组成。它的内部的逻辑处理思维具有主程序、子程序、函数等,使用者看到或者操作上的都是封装了这些逻辑处理的外观,使得使用起来更加方便高效。
  1.前面板(Panel)。与物理仪器的前面板相似,是VI的交互式用户界面。
  2.流程图(Diagram Programme)。LabVIEW编程又称为“数据流编程”。其流程图提供的图形化VI源程序。
  3.LabVIEW的操作模板(图表/连接器)。在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具模板、控制模板和功能模板。
  (1)工具模板(Tools Palette)。工具模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。
  (2)控制模板(Controls Palette)。控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。
  (3)功能模板(Functions Palette)。功能模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。
  (四)LabVIEW程序设计步骤
  LabVIEW有一个图形编辑器来产生最优化编程代码,利用应用程序生成器,用户能够产生虚拟仪器,就像独立的可执行程序一样。
  1.建立方案。利用LabVIEW软件,可以构建虚拟仪器,而不是编写程序。
  2.建立前面板。从控制模块上选择所需的对象放在虚拟仪器的前面板上。
  3.构建图形化的流程图。对虚拟仪器进行程序设计,不用担心很多传统程序设计所需的语法细节,而可以自己构建流程图。
  4.数据流程序设计。LabVIEW用一种精巧的数据流程序设计模式把用户从文本式语言的线性化方式构建程序的办法中解脱出来。
  5.模块化和层次。LabVIEW虚拟仪器实行模块化设计,因而任何虚拟仪器既能独立运行,又能被其他虚拟仪器调用。
  6.图形编辑器。LabVIEW软件是唯一的带有编辑器的图形化编程环境,它可以产生最优化的代码。
  二、NI FPGA简介
  对于FPGA,LabVIEW仍然提供了一些强大而方便的工具包,这样就很容易地解决我们的编程问题。在myRIO的RT中运行程序,其精确度可精确到微秒级别,而在FPGA中,其精确度可达纳秒级别,所以程序在FPGA中能更快速地运行,定时精确度更高。
  (一)数字量及模拟量输入/输出
  数字量的输入与输出有两种方式,Line和Port方式,采用Line方式可以一次控制一个或多个I/O,数据类型为布尔型。采用Port方式,则控制整个I/O寄存器,比如一次可以控制0到7(DIO0至DIO7),8到15(DIO8至DIO15)的数字I/O,数据类型为数值型。
  “设置输出数据”可以配置输出数据,当选择Line方式需要输入布尔型数据,当选择port方式可以直接输入整型数,这样一次可以写入多个数字I/O。   当数字I/O口需要同时实现输出及输入时,将用到“设置输出启动”,Line方式需要输入布尔型数据,Port方式可以直接输入整型数,这样一次可以配置多个数字I/O。
  模拟量的输入与输出与数字量的输入与输出不同,模拟量的输入与输出只有Line方式,即单独控制一个模拟口。数据类型为整型。模拟量的输入与输出还涉及分辨率的问题,因此在写入和读取的时候都需要读取出一个LSB的值,并在RT中将模拟口读取回来的数据除以LSB的值,最终的结果才是模拟值;同样地,在写入模拟量之前在RT中乘以LSB的值再赋给模拟口。
  (二)FPGA常用定时函数
  FPGA定時函数选板包括三个函数,分别为循环定时函数、等待函数、滴答计数。它们的配置对话框完全相同,不再赘述。
  LoopTime(循环定时):该函数用于确定两次循环之间的时间间隔。当程序代码执行时间小于循环定时,则定时循环可以精确地控制每个循环时间保持一致。但是如果程序代代码执行时间大于所设定循环间隔,下次循环便会立即执行,同时把下次循环开始的时间设置为启动时刻,而且循环计时器会把它作为新的时间基准。
  Wait(等待):当程序运行到该函数时,先让当前线程暂停,等待所设定的时间,然后再继续执行程序代码。
  Tick Count(滴答计数):该函数用于返回当前计数器的值。需要注意的是计数器存在计数的最大值,因此当计数达到最大值时,会自动从0开始计数。所以当我们利用Tick Count函数测量时间间隔,并采用了Ticks作为单位时,就需要考虑计数器自动复位的情况。
  参考文献:
  [1]杨乐平,李海涛,等.LABVIEW程序设计与应用[M].第二版.电子工业出版社.
  [2]杨乐平,等.LABVIEW高级程序设计[M].北京:清华大学出版社,2004.
  [3]张凯.LabVIEW虚拟仪器工程设计与开发[M]北京:国防工业出版社,2004.
  [4]邴志刚,方景林,等.计算机控制——基础技术工具实例[M].北京:北京交通大学出版社,2005.
  [5]陶永华.新型PID控制及其应用[M].北京:机械工业出版社,1999.
  [6]胡寿松.自动控制原理[M].北京:科学出版社,2001.
  [7]陈锡辉,张银鸿.LABVIEW8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.
  [8]陈树学.LabVIEW实用工具详解[M].北京:电子工业出版社,2014.
  [9]王福明,于丽霞,刘吉,等.LabVIEW程序设计与虚拟仪器[M].西安:西安电子科技大学出版社,2009.
  [10]NI myRIO入门指南[Z].2015.
转载注明来源:https://www.xzbu.com/9/view-14948495.htm