LabVIEWNISoftMotion和C系列驱动接口入门剖析.docx
《LabVIEWNISoftMotion和C系列驱动接口入门剖析.docx》由会员分享,可在线阅读,更多相关《LabVIEWNISoftMotion和C系列驱动接口入门剖析.docx(19页珍藏版)》请在冰豆网上搜索。
![LabVIEWNISoftMotion和C系列驱动接口入门剖析.docx](https://file1.bdocx.com/fileroot1/2022-12/11/995f9e17-0b22-4e43-9cd9-e27096327552/995f9e17-0b22-4e43-9cd9-e270963275521.gif)
LabVIEWNISoftMotion和C系列驱动接口入门剖析
∙
窗体顶端
窗体底端
LabVIEWNISoftMotion和C系列驱动接口入门
发布日期:
十一月15,2009 |1评级| 3.00 outof5|
窗体顶端
ReadinEnglish
窗体底端
|
PDF
概览
本指南展示了如何使用美国国家仪器公司的LabVIEWNISoftMotionModule和NI951xC系列驱动接口来开发运动控制的应用。
该应用使用了NICompactRIO可重配置嵌入式系统以及LabVIEW、LabVIEWNISoftMotion和NI-Motion驱动软件,用来执行一系列双轴运动。
在开发这项应用的过程中,您可以学习到使用NIRIOScanInterface开发运动应用的概念和技术。
利用RIOScanInterface,用户可以在LabVIEWReal-TimeModule中,对C系列模块进行直接访问。
目录
1.所需元件
2.LabVIEWNISoftMotionModule概览
3.设置硬件
4.在控制器上安装和配置软件
5.在扫描接口模式下创建工程
6.在LabVIEW项目中增加NISoftMotion资源
7.配置步进式驱动接口模块的轴
8.使用交互式测试面板测试系统
9. 配置定时循环
10.创建运动配置文件
11.发布、测试并使用VI
12.连接至伺服式和步进式驱动
13.您所学到的东西
14.更多资源
1.所需元件
这篇指南需要使用到下列软件:
∙LabVIEW2009或后续版本
∙LabVIEWReal-TimeModule2009或后续版本
∙NI-RIO3.2.0或后续版本
∙LabVIEWNISoftMotionModule2009或后续版本
这篇指南还需要使用下列硬件:
∙CompactRIO控制器和可提供ScanInterface(扫描接口)模式的机箱或NI9144分布式机箱
∙两个NI9512单轴步进式驱动接口
∙控制器电源
∙单独的模块电源
∙以太网连接和线缆
即使您没有指定的硬件,仍可以遵循这篇文章中的“LabVIEW NISoftMotionModule指南”一节,进行离线的配置以学习在LabVIEW中使用该模块的方法。
至页首
2.LabVIEWNISoftMotionModule概览
通过LabVIEWNISoftMotionModule,您可以借助于LabVIEWReal-TimeModule使用功能块编程范例和RIOScanInterface构建确定性的运动控制应用。
RIOScanInterface让用户可以从LabVIEWReal-TimeModule中直接访问C系列模块。
这篇文档包含了NI951xC系列驱动接口和RIOScanInterface应用开发方面的内容。
需要了解关于在LabVIEWFPGAModule中使用NI951x模块的信息,请查阅951xC系列模块和LabVIEWFPGA入门指导》。
需要使用NISoftMotion功能块进行本指南中所说的双轴运行,可以在开环状态下使用NI9512步进式驱动接口——而不需要额外的反馈设备或其它硬件连接。
这篇指南中的配置参数,也许对实际的运动系统并不合适。
为了演示的需要,我们对硬件连接进行了最小化。
至页首
3.设置硬件
完成下列步骤,为本指南中的应用设置硬件。
1.如果您不是使用集成的控制器和背板,那么需要在现场可编程门阵列(FPGA)背板上安装CompactRIO实时控制器。
查阅控制器操作指南,获得安装控制器的信息。
2.在机箱的1和2插槽中,安装NI9512步进式驱动接口模块。
3.将模块连接到电源上。
查阅模块操作指南,以选择合适的电源。
4.将控制器连接到电源和拥有相同子网的以太网络中,以作为开发用的计算机。
查阅控制器操作指南,获得关于将控制器连接到电源和以太网络的信息。
5.将模块连接到驱动器和其它I/O上,如果条件允许的话请使用NI9512-to-P7000StepperDrivesConnectivityBundle(NI9512至P7000步进式驱动连接包)、NI951xCableandTerminalBlockBundle(NI951x线缆和接线终端),或者使用自定义线缆用于直接连接。
至页首
4.在控制器上安装和配置软件
完成下列步骤,在控制器上安装软件并进行配置。
1.在开发计算机上,启动NIMeasurement&AutomationExplorer(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-RIO3.2.0或后续版本,且带有NIScanEngine支持和下列附加功能:
•LabVIEWNISoftMotionModule
•对LabVIEWNISoftMotionModule软件的NIScanEngine支持
•NI-Motion驱动软件
14.点击下一步,在控制器上安装选择的软件。
如果需要了解关于推荐软件组合的信息,请点击帮助。
15.在MAX中完成控制器上的软件安装后,关闭MAX。
至页首
5.在扫描接口模式下创建工程
扫描接口模式允许用户从LabVIEWReal-Time中,直接访问C系列模块。
这些模块出现在项目浏览器窗口中机箱条目下的扫描接口模式中。
与多数C系列模块不同,NI951x接口不是直接在项目浏览器窗口中配置的,该模块不支持直接可用的I/O变量。
在开发计算机上,使用LabVIEW项目管理VI、目标和I/O模块。
完成下列步骤,来创建一个LabVIEW项目。
1.启动LabVIEW。
2.在启动窗口中点击 项目链接,显示项目浏览器窗口。
也可以选择文件»新建项目,显示项目浏览器窗口。
3.选择帮助,并确认显示即时帮助被选中。
在整个指南中,您可以查阅上下文帮助,来获得方框图上条目的信息。
4.右击项目浏览器窗口中的顶层工程项目,从快捷菜单中选择新建»终端和设备,显示添加终端和设备对话框。
5.确认已有终端或设备单选按钮已被选中。
如果您没有安装硬件,可以选择新终端或设备单选按钮,显示出一系列在没有实物情况下即可创建的目标和设备。
在这篇指南里,可以执行相似的离线配置步骤,学习使用CompactRIO和LabVIEW。
6.展开Real-TimeCompactRIO。
7.选择添加到工程中的CompactRIO控制器,并点击OK。
8.如果您已经安装了LabVIEWFPGA,将会出现选择编程模式对话框。
选择ScanInterface,使系统处于扫描接口模式。
使用CompactRIO 属性对话框,改变已有工程中的编程模式。
在项目浏览器窗口中的CompactRIO机箱上点击右键,从快捷菜单上选择属性,显示该对话框。
9.如果出现查找C系列模块?
对话框,请点击查找。
10.点击继续。
LabVIEW会将控制器、机箱和所有模块添加到工程中。
11.在LabVIEW完成硬件搜索后,选择文件»保存项目,并将工程保存为951x_Tutorial.lvproj。
在完成了这些步骤之后,您的LabVIEW项目应该与图1类似。
图1. 项目浏览器窗口,扫描接口模式
至页首
6.在LabVIEW项目中增加NISoftMotion资源
现在来创建捆绑到C系列模块的NISoftMotion资源。
在VI中使用运动I/O资源来代替I/O变量。
查阅LabVIEWHelp中的NISoftMotionModule一节,了解更多关于运动I/O资源和NISoftMotion的信息。
在项目中增加轴
在项目中,NISoftMotion轴被捆绑到专门的C系列模块中,而且允许对模块上的I/O进行配置。
要以扫描接口模式来配置并使用NI951x模块,您必须在RT目标中增加轴,并使用与VI中的轴所相关的运动I/O资源。
完成下述步骤,在项目中增加一个NISoftMotion轴:
1.在项目浏览器窗中右击目标,并在快捷菜单中选择新建»NISoftMotionAxis,打开轴管理器对话框,如图2所示。
2.双击添加轴,使两个NI9512模块都关联到NISoftMotion轴。
轴自动捆绑到一个可用模块中。
你可以双击轴的名称对其重新命名,赋予其一个描述性的名字,但是两个不同的轴不可以使用同一个名字。
图2.轴管理器对话框
3.单击修改绑定打开资源绑定对话框。
如果需要的话,更改与该轴相关联的硬件。
4.单击OK关闭轴管理器对话框。
将所有轴都添加到项目浏览器窗口中。
同一个C系列模块,最多只能关联一个轴。
在项目中增加坐标
NISoftMotion轴可以组成坐标空间。
坐标空间就是轴的逻辑性多维组合。
坐标空间跟轴类似,也有可以作为资源输入的关联I/O资源。
完成以下步骤,在项目中增加坐标空间:
1.在项目浏览器窗口中右击目标,并从快捷菜单中选择新建»NISoftMotion 坐标空间,打开ConfigureCoordinateSpace对话框。
2.从AvailableAxes栏中选择Axis1和Axis2,并使用箭头标志将它们移至CoordinateAxes栏。
图3. 配置坐标空间对话框
当使用坐标资源的时候,目标位置和其它坐标信息都包含在一个一维矩阵中,其中轴的信息是按照采用该对话框增加轴的顺序进行排列的。
3.单击OK关闭ConfigureCoordinateSpace对话框。
至此,你的工程中已经包含了应用程序所需的轴和坐标空间。
你的LabVIEW项目应该与图4中类似。
图4.采用运动资源所完成的项目
至页首
7.配置步进式驱动接口模块的轴
在本部分中,采用轴配置对话框,对与NI9512C系列模块相关联的轴进行配置。
该对话框中包含了步进式驱动命令信号的配置选项、反馈设备、运动和数字I/O、轨迹以及轴的设置。
图5中显示了NI9512C系列模块的轴配置对话框。
无法配置的部分以灰色显示。
图5. NI9512模块的轴配置对话框
完成下述步骤,对轴进行配置:
1.右击项目浏览器窗口中的轴,并从快捷菜单中选择属性,打开轴配置对话框。
2.在AxisSetup页面中,确认将循环模式设置为开环。
配置为开环模式的轴会生成步进式输出,但无需电动机的反馈信息来确认位置。
3.同样在AxisSetup页面中,确认AxisEnabled和EnableDriveonTransitiontoActiveMode复选框包含有复选标志。
这样配置后,在运行VI的时候将自动激活轴。
要避免自动激活轴,需禁用这些选项。
4.如果模块中并不包含有物理信号连接,那么为了保证系统正常运行,必须禁用这些输入信号。
要禁用限制信号和引导信号(home翻译为引导合适吗?
),转至MotionI/O页面,在ForwardLimit、ReverseLimit和Home部分中,从Enable复选框中删除这些复选标志。
5.根据系统需求,配置所有额外I/O。
6.单击OK关闭轴配置对话框。
7.重复步骤1到步骤6,配置轴2。
注意:
请确保在部署项目之前,已经连接好所有的硬件,并接通了电源。
项目的部署将NI扫描引擎切换为Active(活动)模式,并使轴和驱动有效(如果已经连接好轴和驱动的话),这样你就可以立即启动运动。
参考LabVIEWHelp中的《在RT目标上部署并运行VI》一章节,了解更多关于配置和问题解决技巧方面的知识。
8.右击项目浏览器窗口中的控制器项目,并从快捷菜单中选择部署全部,将轴、坐标和轴设置部署成实时目标。
至页首
8.使用交互式测试面板测试系统
使用InteractiveTestPanel(交互式测试面板)来测试并调试您的运动系统和所选轴上的配置设置。
借助于交互式测试面板,你可以执行简单的直线运动、监测运动和I/O状态信息、改变运动限制、获取系统中的错误和故障信息并查看运动的位移或者速度曲线。
如果系统中连接有一个反馈设备的话,你还可以获取反馈的位置以及位置错误信息。
在配置好轴后,完成以下步骤,采用轴配置对话框测试所做设置。
1.右击项目浏览器窗口中的轴,并从快捷菜单中选择交互测试面板。
2.使用选项卡设置期望位置、运动模式和运动限制。
参考LabVIEW帮助中的NISoftMotion模块部分,详细了解该对话框中的条目。
3.在对话框的底部单击开始按钮,根据配置好的选项启动运动。
4.使用状态和曲线选项卡,在运动进行中监测其状态。
以扫描接口模式创建一个VI
在本部分中,借助于增添到工程中的模块的运动I/O资源,创建一个VI。
参考LabVIEW帮助中的Real-TimeModule(实时模块)一节,获得关于扫描接口模式和NIScanEngine(NI扫描引擎)的详细信息。
至页首
9. 配置定时循环
将定时循环同步到NI扫描引擎,可以使得时间敏感型的运动函数模块能够以指定的扫描速度运行。
定时循环内部的任何代码都保证了每个扫描周期只执行一次。
必须最小化定时循环中的内存分配,以避免在系统中引入不确定的时间延迟。
如果你的代码不需要按照扫描速率运行,那么你可以使用带有等待下一毫秒整数倍功能的while循环来控制循环速率。
完成以下步骤,配置定时循环:
1.在项目浏览器窗口中右击控制器项目,并从快捷菜单中选择新建»VI,打开一个空白VI。
2.在VI的程序框图中放置一个定时循环。
3.双击定时循环的输入节点,打开配置定时循环对话框。
4.在循环定时源中,将源类型设为同步至扫描引擎。
你可以单击帮助按钮,获得关于如何同步至NI扫描引擎的信息。
5.在循环定时参数中,将周期设为5个扫描周期。
该步骤可选,但是可以允许定时循环以一个较低的速率同步至NI扫描引擎。
配置定时循环对话框应该与图7中类似。
图7. 配置定时循环
6.单击OK。
至页首
10.创建运动配置文件
本示例采用NISoftMotionLineandReadfunctionblocks(线和读功能块)来创建一个简单的运动配置文件,并监测运动位置信息。
完成以下步骤,设置运动:
1.在定时循环内部放置一个Line功能块。
2.右击execute(执行)控件,并从快捷菜单中选择创建»输入控件,在前端面板中为该输入增加控件。
3.重复步骤2,在前端面板中,分别为position(位置)、velocity(速度)、acceleration(加速度)和accelerationjerk(加加速度)这几个输入增加控件。
4.将deceleration(减速度)输入连线至acceleration(加速度)输入,将decelerationjerk(减减速度)输入连接至accelerationjerk(加加速度)输入。
在有些应用中,减速度值可能必须与加速度值不同,但本应用中二者相同。
5.从LabVIEW项目中将坐标空间1资源拖至定时循环外部的方框图中,并将其连线至功能块上的资源输入。
6.在定时循环内部放置另一个Line功能块。
7.将Line功能块的错误接线端和资源接线端连接在一起。
8.将第一个Line功能块的完成输出连线至第二个Line功能块的执行输入。
9.将第二个Line功能块的velocity(速度)、acceleration(加速度)、deceleration(减速度)、accelerationjerk(加加速度)和decelerationjerk(减减速度)输入连接到步骤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。
这将指定一个xy坐标(5000,5000)。
24.在 位置[]2数组中,将矩阵的前两个元素设为0。
这将xy轴移回至(0,0)。
25.暂时保持速度、加速度和加加速度的默认值。
26.在前面板中增加一个波形图。
27.切换到程序框图,将Read功能块的位置[]输出接线端连接到波形图显示控件上。
完成以上步骤后,您的前面板应该与图9类似。
图9. 前端面板
28.保存VI。
29.保存项目。
至页首
11.发布、测试并使用VI
完成以下步骤,发布、测试并使用VI。
1.运行VI。
LabVIEW将该VI以及该VI所使用的所有模块和I/O变量部署至控制器中。
2.点击执行输入控件,启动任务。
3.在前面板中,确认位置图在更新。
4.单击停止按钮,停止VI。
5.修改任意输入参数,然后运行VI,再次点击执行控件,看看不同参数的结果如何。
至页首
12.连接至伺服式和步进式驱动
针对CompactRIO的NI951xC系列驱动接口可以直接连接到数以百计的步进式和伺服式驱动/电机。
这些运动模块提供了单轴的伺服式或步进式驱动接口信号。
另外,它们还提供了一组完整的运动I/O,包括原点开关和限位开关的输入、位置反馈信号的正交增量式编码输入,以及数字输入线和数字输出线。
NI951x驱动接口包含有一个处理器,运行样条插值函数和NI专利的步长生成算法或控制环。
下面来看看如何连接至NIP7000系列步进式驱动。
要了解如何连接到第三方的P-command步进式或伺服式驱动,请参考安装在LabVIEWNISoftMotionModule中的NISoftMotion帮助文件。
连接到P7000系列步进式驱动
本部分介绍了如何采用NI9512-to-P7000StepperDrivesConnectivityBundle(NI 9512-to-P7000步进式驱动连接包),将NI9512步进式驱动接口连接到P7000系列步进式驱动。
该产品中有一根线缆,直接将NI9512D-Sub连接到P7000系列步进式驱动;以及一个37管脚的接线块和线缆,将NI9512MDR连接头连接到其它I/O上。
完成以下步骤,将NI9512驱动接口连接到P70530直流驱动或者P70360交流驱动和其它I/O。
图10中是一幅简化的连接图。
1.根据机箱文档说明,在机箱中安装模块。
2.采用NI9512-to-P7000线缆,将D-sub连接头模块连接到P7000系列驱动上的CommandI/O连接头上。
该线缆为步进式输出、驱动使能输出和驱动错误信号提供连接。
3.将电源连接到NI9512-to-P7000上的直接连接线缆+24V输入。
4.采用接线盒线缆,将MDR连接头模块连接到37管脚的接线块上。
5.将硬件设备上的其它I/O信号连接到37管脚接线块或者自定义线缆上。
参考图11了解接线盒的引脚。
a.将接线块上的ForwardLimit(前向限位)、ReverseLimit(反向限位)和Home(原点)输入连接到限位和原点传感器上。
b.如果你使用编码器来反馈位置信息,则请将编码器的输入连接到编码器上。
c.采用所提供的接线端,连接所有额外I/O。
6.将驱动电源连接到P7000驱动上。
图10. NI9512-to-P7000系列驱动连接图
注意:
如果只需要将MDR连接头连接到接线盒上,则接线盒上的所有D-Sub信号都是无连接(noconnects,NC)。
图11中显示了只连接MDR连接头时的37管脚接线盒的引脚。
图11. NI951237管脚接线块只连接MDR时的管脚分配
7.在控制器中安装软件,创建一个LabVIEW项目,并添加NISoftMotion轴。
8.在项目浏览器窗口中右击轴,并从快捷菜单中选择属性,打开轴配置对话框。
9.针对P7000驱动,在轴配置对话框中改变下述项目的默认轴设置:
a.右击轴,并从快捷菜单中选择属性,显示轴配置对话框。
b.在步进电机页面中,将输出方式设置为单端。
c.在运动I/O页面的驱动信号标签页中,将驱动使能信号的输出方式设置为源输出。
d.在数字I/O页面中,将驱动器错误/报警映射到DI1,并将输入方式设置为源输入。
10.在项目浏览器窗口中单击控制器项目,并选择部署全部来部署轴信息。
连接到伺服式驱动器
伺服式轴的配置
伺服式轴只能以闭环模式运行,所以必需有一个反馈设备。
如果你使用NI9514或者NI9516驱动接口模块,那么你必须另外对