Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Nov 15, 2009

LabVIEW NI SoftMotion和C系列驱动接口入门

0 ratings | 0.00 out of 5
Read in | Print | PDF

Overview

本指南展示了如何使用美国国家仪器公司的LabVIEW NI SoftMotion Module和NI 951x C系列驱动接口来开发运动控制的应用。该应用使用了NI CompactRIO可重配置嵌入式系统以及LabVIEW、LabVIEW NI SoftMotion和NI-Motion驱动软件,用来执行一系列双轴运动。在开发这项应用的过程中,您可以学习到使用NI RIO Scan Interface开发运动应用的概念和技术。利用RIO Scan Interface,用户可以在LabVIEW Real-Time Module中,对C系列模块进行直接访问。

所需元件

这篇指南需要使用到下列软件:

  • LabVIEW 2009 或后续版本
  • LabVIEW Real-Time Module 2009或后续版本 
  • NI-RIO 3.2.0或后续版本
  • LabVIEW NI SoftMotion Module 2009或后续版本

这篇指南还需要使用下列硬件:

  • CompactRIO 控制器和可提供Scan Interface(扫描接口)模式的机箱或NI 9144分布式机箱
  • 两个 NI 9512 单轴步进式驱动接口
  • 控制器电源
  • 单独的模块电源
  • 以太网连接和线缆

即使您没有指定的硬件,仍可以遵循这篇文章中的“LabVIEW NI SoftMotion Module指南”一节,进行离线的配置以学习在LabVIEW中使用该模块的方法。

LabVIEW NI SoftMotion Module概览

通过LabVIEW NI SoftMotion Module,您可以借助于LabVIEW Real-Time Module使用功能块编程范例和RIO Scan Interface构建确定性的运动控制应用。RIO Scan Interface让用户可以从LabVIEW Real-Time Module中直接访问C系列模块。

这篇文档包含了NI 951x C系列驱动接口和RIO Scan Interface应用开发方面的内容。需要了解关于在LabVIEW FPGA Module中使用NI 951x模块的信息,请查阅ni.com/manuals网站上的《NI 951x C系列模块和LabVIEW FPGA入门指导》。

需要使用NI SoftMotion功能块进行本指南中所说的双轴运行,可以在开环状态下使用NI 9512步进式驱动接口 —— 而不需要额外的反馈设备或其它硬件连接。

这篇指南中的配置参数,也许对实际的运动系统并不合适。为了演示的需要,我们对硬件连接进行了最小化。

设置硬件

完成下列步骤,为本指南中的应用设置硬件。

1. 如果您不是使用集成的控制器和背板,那么需要在现场可编程门阵列(FPGA)背板上安装CompactRIO实时控制器。查阅控制器操作指南,获得安装控制器的信息。

2. 在机箱的1和2插槽中,安装NI 9512步进式驱动接口模块。

3. 将模块连接到电源上。查阅模块操作指南,以选择合适的电源。

4. 将控制器连接到电源和拥有相同子网的以太网络中,以作为开发用的计算机。查阅控制器操作指南,获得关于将控制器连接到电源和以太网络的信息。

5. 将模块连接到驱动器和其它I/O上,如果条件允许的话请使用NI 9512-to-P7000 Stepper Drives Connectivity Bundle(NI 9512至P7000步进式驱动连接包)、NI 951x Cable and Terminal Block Bundle(NI 951x线缆和接线终端),或者使用自定义线缆用于直接连接。

在控制器上安装和配置软件

完成下列步骤,在控制器上安装软件并进行配置。

1. 在开发计算机上,启动NI Measurement & Automation Explorer (MAX,NI测量与自动化导航器)配置工具。

2. 在配置窗格中的远程系统下选择控制器。如果没有看到控制器,那么您可能需要禁用开发计算机上的防火墙。

3. 检查识别中的序列号是否与设备上的序列号相符。

4. 如果您不想格式化控制器上的磁盘(那样会删除所有已经安装的软件和文件),那么给控制器通电,并跳到步骤13。

5. 将控制器上的安全模式开关调到On的位置上。

6.给控制器通电。如果控制器已经通电了,那么按控制器上的Reset按钮,重新启动。

7.右键点击配置窗格中远程系统下的控制器,选择格式化磁盘。在出现的对话框里点击Yes

8. 在MAX完成磁盘格式化之后,将安全模式开关调到Off的位置上,并按控制器上的Reset按钮,重新启动。

9. 选择自动获取IP地址单选按钮分配IP地址;或者选择使用以下IP地址单选按钮,在IP地址栏中指定静态IP地址。

10.在名称域中为系统输入描述性的名称。

11. 点击网络设置选项卡上的应用,让MAX重新启动系统。

12. 当新系统名称出现在远程系统下时,在列表中展开控制器条目,右击软件,并选择添加/删除软件

13. 选择推荐的软件组合,其包含了NI-RIO 3.2.0或后续版本,且带有NI Scan Engine支持和下列附加功能:

• LabVIEW NI SoftMotion Module

• 对LabVIEW NI SoftMotion Module软件的NI Scan Engine支持

• NI-Motion 驱动软件

14. 点击下一步,在控制器上安装选择的软件。如果需要了解关于推荐软件组合的信息,请点击帮助

15. 在MAX中完成控制器上的软件安装后,关闭MAX。

在扫描接口模式下创建工程

扫描接口模式允许用户从LabVIEW Real-Time中,直接访问C系列模块。这些模块出现在项目浏览器窗口中机箱条目下的扫描接口模式中。与多数C系列模块不同,NI 951x接口不是直接在项目浏览器窗口中配置的,该模块不支持直接可用的I/O变量。

在开发计算机上,使用LabVIEW项目管理VI、目标和I/O模块。完成下列步骤,来创建一个LabVIEW项目。

1. 启动LabVIEW。

2. 在启动窗口中点击 项目链接,显示项目浏览器窗口。也可以选择文件»新建项目,显示项目浏览器窗口。

3. 选择帮助,并确认显示即时帮助被选中。在整个指南中,您可以查阅上下文帮助,来获得方框图上条目的信息。

4. 右击项目浏览器窗口中的顶层工程项目,从快捷菜单中选择新建»终端和设备,显示添加终端和设备对话框。

5. 确认已有终端或设备单选按钮已被选中。

如果您没有安装硬件,可以选择新终端或设备单选按钮,显示出一系列在没有实物情况下即可创建的目标和设备。在这篇指南里,可以执行相似的离线配置步骤,学习使用CompactRIO和LabVIEW。

6. 展开Real-Time CompactRIO

7. 选择添加到工程中的CompactRIO控制器,并点击OK

8. 如果您已经安装了LabVIEW FPGA,将会出现选择编程模式对话框。选择Scan Interface,使系统处于扫描接口模式。

使用CompactRIO 属性对话框,改变已有工程中的编程模式。在项目浏览器窗口中的CompactRIO机箱上点击右键,从快捷菜单上选择属性,显示该对话框。

9. 如果出现查找C系列模块?对话框,请点击查找

10. 点击继续。LabVIEW会将控制器、机箱和所有模块添加到工程中。

11. 在LabVIEW完成硬件搜索后,选择文件»保存项目,并将工程保存为951x_Tutorial.lvproj。

在完成了这些步骤之后,您的LabVIEW项目应该与图1类似。

 

图1. 项目浏览器窗口,扫描接口模式

在LabVIEW项目中增加NI SoftMotion资源

现在来创建捆绑到C系列模块的NI SoftMotion资源。在VI中使用运动I/O资源来代替I/O变量。查阅LabVIEW Help中的NI SoftMotion Module一节,了解更多关于运动I/O资源和NI SoftMotion的信息。

在项目中增加轴

在项目中,NI SoftMotion轴被捆绑到专门的C系列模块中,而且允许对模块上的I/O进行配置。要以扫描接口模式来配置并使用NI 951x模块,您必须在RT目标中增加轴,并使用与VI中的轴所相关的运动I/O资源。

完成下述步骤,在项目中增加一个NI SoftMotion轴:

1. 在项目浏览器窗中右击目标,并在快捷菜单中选择新建»NI SoftMotion Axis,打开轴管理器对话框,如图2所示。

2. 双击添加轴,使两个NI 9512模块都关联到NI SoftMotion轴。轴自动捆绑到一个可用模块中。你可以双击轴的名称对其重新命名,赋予其一个描述性的名字,但是两个不同的轴不可以使用同一个名字。

图2.轴管理器对话框

3. 单击修改绑定打开资源绑定对话框。如果需要的话,更改与该轴相关联的硬件。

4. 单击OK关闭轴管理器对话框。将所有轴都添加到项目浏览器窗口中。同一个C系列模块,最多只能关联一个轴。

在项目中增加坐标

NI SoftMotion轴可以组成坐标空间。坐标空间就是轴的逻辑性多维组合。坐标空间跟轴类似,也有可以作为资源输入的关联I/O资源。

完成以下步骤,在项目中增加坐标空间:

1. 在项目浏览器窗口中右击目标,并从快捷菜单中选择新建»NI SoftMotion 坐标空间,打开Configure Coordinate Space对话框。

2. 从Available Axes栏中选择Axis 1Axis 2,并使用箭头标志将它们移至Coordinate Axes栏。

 

图3. 配置坐标空间对话框

当使用坐标资源的时候,目标位置和其它坐标信息都包含在一个一维矩阵中,其中轴的信息是按照采用该对话框增加轴的顺序进行排列的。

3. 单击OK关闭Configure Coordinate Space对话框。

至此,你的工程中已经包含了应用程序所需的轴和坐标空间。你的LabVIEW项目应该与图4中类似。

 

图4.采用运动资源所完成的项目

配置步进式驱动接口模块的轴

在本部分中,采用轴配置对话框,对与NI 9512 C系列模块相关联的轴进行配置。该对话框中包含了步进式驱动命令信号的配置选项、反馈设备、运动和数字I/O、轨迹以及轴的设置。图5中显示了NI 9512 C系列模块的轴配置对话框。无法配置的部分以灰色显示。

 

图5. NI 9512模块的轴配置对话框

完成下述步骤,对轴进行配置:

1. 右击项目浏览器窗口中的轴,并从快捷菜单中选择属性,打开轴配置对话框。

2. 在Axis Setup页面中,确认将循环模式设置为开环。配置为开环模式的轴会生成步进式输出,但无需电动机的反馈信息来确认位置。

3. 同样在Axis Setup页面中,确认Axis EnabledEnable Drive on Transition to Active Mode复选框包含有复选标志。这样配置后,在运行VI的时候将自动激活轴。

要避免自动激活轴,需禁用这些选项。

4. 如果模块中并不包含有物理信号连接,那么为了保证系统正常运行,必须禁用这些输入信号。要禁用限制信号和引导信号(home翻译为引导合适吗?),转至Motion I/O页面,在Forward LimitReverse LimitHome部分中,从Enable复选框中删除这些复选标志。

5. 根据系统需求,配置所有额外I/O。

6. 单击OK关闭轴配置对话框。

7. 重复步骤1到步骤6,配置轴2。

注意:请确保在部署项目之前,已经连接好所有的硬件,并接通了电源。项目的部署将NI 扫描引擎切换为Active(活动)模式,并使轴和驱动有效(如果已经连接好轴和驱动的话),这样你就可以立即启动运动。参考LabVIEW Help中的《在RT目标上部署并运行VI》一章节,了解更多关于配置和问题解决技巧方面的知识。

8. 右击项目浏览器窗口中的控制器项目,并从快捷菜单中选择部署全部,将轴、坐标和轴设置部署成实时目标。

使用交互式测试面板测试系统

使用Interactive Test Panel(交互式测试面板)来测试并调试您的运动系统和所选轴上的配置设置。借助于交互式测试面板,你可以执行简单的直线运动、监测运动和I/O状态信息、改变运动限制、获取系统中的错误和故障信息并查看运动的位移或者速度曲线。如果系统中连接有一个反馈设备的话,你还可以获取反馈的位置以及位置错误信息。

在配置好轴后,完成以下步骤,采用轴配置对话框测试所做设置。

1. 右击项目浏览器窗口中的轴,并从快捷菜单中选择交互测试面板

2. 使用选项卡设置期望位置、运动模式和运动限制。参考LabVIEW帮助中的NI SoftMotion模块部分,详细了解该对话框中的条目。

3. 在对话框的底部单击开始按钮,根据配置好的选项启动运动。

4. 使用状态曲线选项卡,在运动进行中监测其状态。

以扫描接口模式创建一个VI

在本部分中,借助于增添到工程中的模块的运动I/O资源,创建一个VI。参考LabVIEW帮助中的Real-Time Module(实时模块)一节,获得关于扫描接口模式和NI Scan Engine(NI扫描引擎)的详细信息。

 配置定时循环

将定时循环同步到NI扫描引擎,可以使得时间敏感型的运动函数模块能够以指定的扫描速度运行。定时循环内部的任何代码都保证了每个扫描周期只执行一次。必须最小化定时循环中的内存分配,以避免在系统中引入不确定的时间延迟。

如果你的代码不需要按照扫描速率运行,那么你可以使用带有等待下一毫秒整数倍功能的while循环来控制循环速率。

完成以下步骤,配置定时循环:

1. 在项目浏览器窗口中右击控制器项目,并从快捷菜单中选择新建»VI,打开一个空白VI。

2. 在VI的程序框图中放置一个定时循环。

3. 双击定时循环的输入节点,打开配置定时循环对话框。

4. 在循环定时源中,将源类型设为同步至扫描引擎。你可以单击帮助按钮,获得关于如何同步至NI扫描引擎的信息。

5. 在循环定时参数中,将周期设为5个扫描周期。该步骤可选,但是可以允许定时循环以一个较低的速率同步至NI扫描 引擎。配置定时循环对话框应该与图7中类似。


[+] Enlarge Image

图7. 配置定时循环

6. 单击OK

创建运动配置文件

本示例采用NI SoftMotion Line and Read function blocks(线和读功能块)来创建一个简单的运动配置文件,并监测运动位置信息。

完成以下步骤,设置运动:

1. 在定时循环内部放置一个Line功能块。

2. 右击execute(执行)控件,并从快捷菜单中选择创建»输入控件,在前端面板中为该输入增加控件。

3. 重复步骤2,在前端面板中,分别为position(位置)velocity(速度)acceleration(加速度)acceleration jerk(加加速度)这几个输入增加控件。

4. 将deceleration(减速度)输入连线至acceleration(加速度)输入,将deceleration jerk(减减速度)输入连接至acceleration jerk(加加速度)输入。在有些应用中,减速度值可能必须与加速度值不同,但本应用中二者相同。

5. 从LabVIEW 项目中将坐标空间1资源拖至定时循环外部的方框图中,并将其连线至功能块上的资源输入。

6. 在定时循环内部放置另一个Line功能块。

7. 将Line功能块的错误接线端和资源接线端连接在一起。

8. 将第一个Line功能块的完成输出连线至第二个Line功能块的执行输入。

9. 将第二个Line功能块的velocity(速度)acceleration(加速度)deceleration(减速度)acceleration jerk(加加速度)deceleration jerk(减减速度)输入连接到步骤3中所创建的控件上。这将使得第二个功能块的运动参数值和第一个功能块相同。

10. 右击位置输入,并从快捷菜单中选择创建»输入控件,向前端面板中增加第二个位置信息的控件。

11. 向方框图中增加一个合并错误VI,并将Read功能块和第二个Line功能块的错误输出连线到合并错误 VI。

12. 右击合并错误 VI的错误输出输出,并从快捷菜单中选择创建»显示控件,向前端面板中增加一个显示控件。

13. 将错误输出连线到定时循环的边沿。

14. 在为错误输出所创建的循环通道上右击,并从快捷菜单中选择替换为移位寄存器。这会将错误信息传递给下一个循环迭代。

15. 将错误输出连线到定时循环另一侧的移位寄存器上。

16. 右击移位寄存器,并从快捷菜单中选择创建»常量,初始化定时循环外部的错误簇。因为最终的硬件会使用LabVIEW实时模块,所以要在定时循环外部初始化所有功能块阵列(array)和簇(cluster),以避免系统抖动。在定时循环内部,在那两个Line功能块底下放置一个Read功能块。

一般是在主机上(而非在确定性定时循环中) ,通过读取目标发布的数据来读取并绘制位置信息。为了简化,本例中包含了数据读取部分。

17. 将资源错误输出连接到第一个Line功能块的资源错误输入上。

18. 为位置[]输入创建一个常数,并将该矩阵的前两个元素设为0。将位置[]常数移出定时循环。这样初始化阵列可以无需为功能块分配内存。

19. 右击定时循环的条件接线端,并从快捷菜单中选择创建»输入控件,向前端面板中增加一个停止按钮。这将允许你在任何时候停止运行VI。

完成上述步骤后,你的方框图应该与下图类似:


[+] Enlarge Image

图8. 程序框图

切换到前面板。

23. 在 位置[]数组中,将数组的前两个元素设为5000。这将指定一个x y坐标(5000, 5000)。

24. 在 位置[] 2数组中,将矩阵的前两个元素设为0。这将x y轴移回至(0, 0)。

25. 暂时保持速度、加速度和加加速度的默认值。

26. 在前面板中增加一个波形图。

27. 切换到程序框图,将Read功能块的位置[]输出接线端连接到波形图显示控件上。完成以上步骤后,您的前面板应该与图9类似。

 
[+] Enlarge Image

图9. 前端面板

28. 保存VI。

29. 保存项目。

发布、测试并使用VI

完成以下步骤,发布、测试并使用VI。

1. 运行VI。LabVIEW将该VI以及该VI所使用的所有模块和I/O变量部署至控制器中。

2. 点击执行输入控件,启动任务。

3. 在前面板中,确认位置图在更新。

4. 单击停止按钮,停止VI。

5. 修改任意输入参数,然后运行VI,再次点击执行控件,看看不同参数的结果如何。

连接至伺服式和步进式驱动

针对CompactRIO 的NI 951x C系列驱动接口可以直接连接到数以百计的步进式和伺服式驱动/电机。这些运动模块提供了单轴的伺服式或步进式驱动接口信号。另外,它们还提供了一组完整的运动I/O,包括原点开关和限位开的输入、位置反馈信号的正交增量式编码输入,以及数字输入线和数字输出线。NI 951x驱动接口包含有一个处理器,运行样条插值函数和NI专利的步长生成算法或控制环。

下面来看看如何连接至NI P7000系列步进式驱动。要了解如何连接到第三方的P-command步进式或伺服式驱动,请参考安装在LabVIEW NI SoftMotion Module 中的NI SoftMotion帮助文件。

连接到P7000系列步进式驱动

本部分介绍了如何采用NI 9512-to-P7000 Stepper Drives Connectivity Bundle(NI  9512-to-P7000步进式驱动连接包),将NI 9512步进式驱动接口连接到P7000系列步进式驱动。该产品中有一根线缆,直接将NI 9512 D-Sub连接到P7000系列步进式驱动;以及一个37管脚的接线块和线缆,将NI 9512 MDR连接头连接到其它I/O上。

完成以下步骤,将NI 9512驱动接口连接到P70530直流驱动或者P70360交流驱动和其它I/O。图10中是一幅简化的连接图。

1. 根据机箱文档说明,在机箱中安装模块。

2. 采用NI 9512-to-P7000线缆,将D-sub连接头模块连接到P7000系列驱动上的Command I/O连接头上。该线缆为步进式输出、驱动使能输出和驱动错误信号提供连接。

3. 将电源连接到NI 9512-to-P7000上的直接连接线缆+24 V输入。

4. 采用接线盒线缆,将MDR连接头模块连接到37管脚的接线块上。

5. 将硬件设备上的其它I/O信号连接到37管脚接线块或者自定义线缆上。参考图11了解接线盒的引脚。
   a.将接线块上的Forward Limit(前向限位)、Reverse Limit(反向限位)和Home(原点) 输入连接到限位和原点传感器上。
   b.如果你使用编码器来反馈位置信息,则请将编码器的输入连接到编码器上。
   c.采用所提供的接线端,连接所有额外I/O。

6. 将驱动电源连接到P7000驱动上。

 

图10. NI 9512-to-P7000系列驱动连接图

注意:如果只需要将MDR连接头连接到接线盒上,则接线盒上的所有D-Sub信号都是无连接(no connects,NC)。图11中显示了只连接MDR连接头时的37管脚接线盒的引脚。

 

图11. NI 9512 37管脚接线块只连接MDR时的管脚分配

7. 在控制器中安装软件,创建一个LabVIEW项目,并添加NI SoftMotion轴。

8. 在项目浏览器窗口中右击轴,并从快捷菜单中选择属性,打开轴配置对话框。

9. 针对P7000驱动,在轴配置对话框中改变下述项目的默认轴设置:

a. 右击轴,并从快捷菜单中选择属性,显示轴配置对话框。

b. 在步进电机页面中,将输出方式设置为单端

c. 在运动I/O页面的驱动信号标签页中,将驱动使能信号的输出方式设置为源输出

d. 在数字I/O页面中,将驱动器错误/报警映射到DI 1,并将输入方式设置为源输入

10. 在项目浏览器窗口中单击控制器项目,并选择部署全部来部署轴信息。

连接到伺服式驱动器

伺服式轴的配置

伺服式轴只能以闭环模式运行,所以必需有一个反馈设备。如果你使用NI 9514或者NI 9516驱动接口模块,那么你必须另外对反馈设备、伺服控制环和伺服驱动的驱动命令输出进行配置。图6中显示了NI 9514和NI 9516 C系列模块的轴配置对话框部分。无法配置的部分以灰色显示。

 

图6. NI 9514和NI 9516模块的轴配置对话框

使用增益调节测试面板

使用Gain Tuning Test Panel(增益调节测试面板)来调节控制环的设置,并计算伺服轴的相对稳定性。参考NI SoftMotion LabVIEW帮助中的“使用增益调节面板”部分,了解关于增益调节面板和伺服式系统调节指令方面的详细信息。

右击项目浏览器窗口中的轴,并从快捷菜单中选择交互式测试面板,访问增益调节面板。

您所学到的东西

本指南中,分析了使用LabVIEW NI SoftMotion和NI 951x C系列模块来开发运动应用中的几个概念,如下:

  • NI 951x模块与大多数C系列模块的不同之处在于,当你使用扫描接口模式的时候,不能直接在项目浏览器窗口中对它们进行配置,而且模块中不能直接获得I/O变量。
  • 你必须使用NI SoftMotion向RT目标中增加轴,并将它们与NI 951x模块相关联,以期以扫描接口模式配置并使用它们。然后,你可以在VI中使用与这些轴相关联的运动I/O资源。
  • NI SoftMotion轴使用Axis Configuration对话框进行配置。
  • NI SoftMotion功能块允许你使用功能块编程方式来创建确定性运动控制应用。
  • NI SoftMotion功能块为高级状态监测提供了状态输出。

更多资源 

 

0 ratings | 0.00 out of 5
Read in | Print | PDF

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).