在机器人代码中添加安全功能

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

复杂项目的常见问题是确保所有代码都能按预期执行。当优先级高,执行时间长或频繁调用roboRIO的处理能力任务持续运行时,可能会出现问题。这导致由于处理器繁忙而无法执行其他任务。在大多数情况下,这只会减慢处理器对来自操纵杆和其他设备的输入的反应时间。但是,这也可能导致机器人的驱动电机在下达停止命令后仍保持运转很长时间。为了避免一切灾祸,您可以实施安全功能,以检查命令输入是否缺乏处理,并自动关闭可能有害的操作。

电机具有内置功能,可轻松执行安全检查。这些功能是:

  • 机器驱动器安全配置

  • 电机驱动器安全配置

  • 继电器安全配置

  • PWM安全配置

  • 电磁阀安全配置

  • 机器驱动延迟和更新安全

在所有安全配置功能中,您可以在程序运行时启用和禁用这些安全检查,并配置您认为合适的最大时间限制。这些功能会管理一个所有启用了安全性的设备的缓存,并会检查其中是否有超过其时间限制的设备。如果有,则将禁用缓存中的所有设备,并且机器将立即停止或关闭其继电器/ PWM /电磁阀输出。下面的代码演示了如何使用“驱动器安全配置”功能来设置最大时间限制,即电动机在关闭之前所能接受的最长无输入时长。

../../../../_images/adding-safety-features-to-your-robot-code.png

要测试自关闭这一个安全机制,请尝试在循环中添加比您的最大时间限制更长的一个等待函数!

与实施安全检查有关的最终功能-机器人驱动延迟和更新安全性-使您可以将roboRIO置于自动阶段而不会超过前文设置的时间限制。它可以保持当前的电动机输出,而无需频繁调用驱动输出功能,而还可以确保定期进行安全检查,以防止电动机突然停止运行。

总的来说,强烈建议您在项目中进行某项安全检查,以确保您的机器人不会意外地处于危险状态!