LabVIEW NI SoftMotion和C系列驱动接口入门
扫描二维码
随时随地手机看文章
概览
本指南展示了如何使用美国国家仪器公司的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 NI SoftMotion Module概览
设置硬件
在控制器上安装和配置软件
在扫描接口模式下创建工程
在LabVIEW项目中增加NI SoftMotion资源
配置步进式驱动接口模块的轴
使用交互式测试面板测试系统
配置定时循环
创建运动配置文件
发布、测试并使用VI
连接至伺服式和步进式驱动
您所学到的东西
更多资源
所需元件
这篇指南需要使用到下列软件:
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 1和Axis 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 Enabled和Enable Drive on Transition to Active Mode复选框包含有复选标志。这样配置后,在运行VI的时候将自动激活轴。
要避免自动激活轴,需禁用这些选项。
4. 如果模块中并不包含有物理信号连接,那么为了保证系统正常运行,必须禁用这些输入信号。要禁用限制信号和引导信号(home翻译为引导合适吗?),转至Motion I/O页面,在Forward Limit、Reverse Limit和Home部分中,从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中类似。
图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。
完成上述步骤后,你的方框图应该与下图类似:
图8. 程序框图
切换到前面板。
23. 在 位置[]数组中,将数组的前两个元素设为5000。这将指定一个x y坐标(5000, 5000)。
24. 在 位置[] 2数组中,将矩阵的前两个元素设为0。这将x y轴移回至(0, 0)。
25. 暂时保持速度、加速度和加加速度的默认值。
26. 在前面板中增加一个波形图。
27. 切换到程序框图,将Read功能块的位置[]输出接线端连接到波形图显示控件上。完成以上步骤后,您的前面板应该与图9类似。
图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功能块为高级状态监测提供了状态输出。