如何使用操纵杆按钮控制电机或电磁阀

../../../../_images/ni-logo.png

随着驱动系统的正常工作,我们可以开始连接辅助设备,例如电动机和电磁阀。对此,我们通常将使用操纵杆按钮来控制这些设备。首先,我们将介绍几种通过操纵杆按钮控制设备的方法。

您是否知道可以从这样的文档中单击VI片段并将其拖放到您的LabVIEW代码中?用这个文档的VI片段先试试看吧

初始设置:

无论配置如何,您都需要在 “Begin.vi” 中添加一个,两个或更多(如果您真的很兴奋)手柄。第一个示例使2个手柄,而其他示例仅使用一个。给每个手柄起一个唯一的名称,这样我们就可以在其他地方使用它,例如下面的代码段。我将它们命名为 “LeftStick”和 “RightStick”,因为它们位于我桌子的左右两侧。如果你的手柄已经配置好了,那太好了,你可以跳过此步骤。

../../../../_images/setup1.png

本文档中的其余代码将置于Teleop.VI中。在此处,我们将对操纵杆按钮进行编程,以控制电动机或电磁阀的不同功能。

场景1

“当我按下一个按钮时,我希望电机以一种方式移动,而当按下另一按钮时,我希望电机以另一种方式移动。”

该代码使用两个不同手柄上的按钮0来控制同一电机。如果按下 LeftStick 上的按钮0,则电机向后移动,如果按下 RightStick 上的按钮0,则电机向前移动。如果同时按下两个按钮或两个按钮均未按下,则电机不会移动。在这里,我将电机参考命名为 “ Motor5” ,但是您可以在 “Begin.vi” 中随意命名电机。

../../../../_images/1-a.png

您可能需要使用同一手柄上的多个按钮进行控制。有关此示例,请查看以下VI片段或场景2中的VI片段。

../../../../_images/1-b.png

在这里,我使用了操纵杆按钮0和2,但您可以随意使用所需的任何按钮。

场景2

“我希望使用不同的手柄按钮令机器以不同的速度移动。”

如果您需要让一个电机根据所按的按钮执行不同的操作,则此示例可能会有所帮助。例如,假设我的手柄有一个扳机(按钮0)和顶部的4个按钮(按钮1至4)。在这种情况下,以下按钮应具有以下功能:

  • 按钮1-以一半速度向后移动

  • 按钮2-以半速前进

  • 按钮3-以1/4速度向后移动

  • 按钮4-以1/4速度向前移动

  • 扳机-全速前进!(以满速向前移动)

然后,我们将从 JoystickGetValues.vi 中获取布尔数组,并将其连接到“布尔数组到数字”节点(数值选板转换选板)。这会将布尔数组转换为我们可以使用的数字。将此数字连接到条件结构。

每种情况都对应于数组中值的二进制表示形式。在此示例中,每种情况都对应一个按钮组合。我们添加了六种情况:0(关闭所有按钮),1(打开按钮0),2(打开按钮1),4(打开按钮2),8(打开按钮3)和16(打开按钮4)。请注意,我们跳过了值3。3将对应于同时按下的按钮0和1。我们没有在需求中定义它,所以我们以默认情况处理。

在以下位置查看 LabVIEW 2014 条件结构帮助文档可能会有所帮助:

https://zone.ni.com/reference/en-XX/help/371361L-01/glang/case_structure/

这里还有关于条件结构的3个社区教程:

https://forums.ni.com/t5/Curriculum-and-Labs-for/Unit-3-Case-Structures-Lesson-1/ta-p/3505945?profile.language=en

https://forums.ni.com/t5/Curriculum-and-Labs-for/Unit-3-Case-Structures-Lesson-2/ta-p/3505933?profile.language=en

https://forums.ni.com/t5/Curriculum-and-Labs-for/Unit-3-Case-Structures-Lesson-3/ta-p/3505979?profile.language=en

../../../../_images/21.png

由于我们的要求很简单,因此在每种情况下我们只需要一个常数。我们可以使用1到-1之间的任何常量值。对于情况1(全力向前),我们使用1,对于情况2(半速向后),我们使用-0.5,依此类推。我将情况0保留为默认值,因此如果按下多个按钮(达到任何未定义状态),电动机将停止。当然,您可以随意自定义这些状态。

场景3

“我想用手柄按钮控制电磁阀。”

到目前为止,我们已经熟悉手柄如何以布尔数组的形式输出按钮。我们需要索引该数组以获得我们感兴趣的按钮数值,并将此布尔值连接到一个选择节点。由于 Solenoid Set.vi 需要一个枚举类作为输入,因此获取枚举的最简单方法是右键单击 Solenoid Set.vi 的 “ Value” 输入,然后选择“创建常量”。复制此常量,然后将一个副本连接到这个选择节点的 True 端口,将一个副本连接到选择节点的False 端口。然后将该选择节点的输出连接到电磁阀VI的 “Value” 输入。

../../../../_images/31.png

祝您编程愉快!