Agregar funciones de seguridad a su código de robot

Un problema común con los proyectos complejos es asegurarse de que todo su código se esté ejecutando cuando lo espera. Pueden surgir problemas cuando las tareas con alta prioridad, tiempos de ejecución prolongados o llamadas frecuentes acaparan la potencia de procesamiento del roboRIO. Esto conduce a lo que se conoce como «starvation» para las tareas que no se pueden ejecutar debido a que el procesador está ocupado. En la mayoría de los casos, esto simplemente ralentizará el tiempo de reacción a su entrada de los joysticks y otros dispositivos. Sin embargo, esto también puede hacer que los motores de accionamiento de su robot permanezcan encendidos mucho tiempo después de que intente detenerlos. Para evitar cualquier catástrofe robótica a causa de esto, puede implementar funciones de seguridad que verifiquen la falta de entrada de tareas y apague automáticamente las operaciones potencialmente dañinas.

Hay funciones integradas para los motores que permiten una fácil implementación de los controles de seguridad. Estas funciones son:

  • Configuración de seguridad del accionamiento del robot

  • Configuración de seguridad del accionamiento del motor

  • Configuración de seguridad de la retransmisión

  • PWM Safety Configuration

  • Configuración de seguridad del solenoide

  • Seguridad de actualización y retardo del accionamiento del robot

En todas las funciones de configuración de seguridad, puede habilitar y deshabilitar las comprobaciones de seguridad mientras se ejecuta la programación y configurar el tiempo de espera que considere apropiado. Las funciones mantienen un caché de todos los dispositivos que tienen la seguridad habilitada y comprobarán si alguno de ellos ha superado su límite de tiempo. Si alguno lo ha hecho, todos los dispositivos en la caché se desactivarán y el robot se detendrá inmediatamente o se apagarán sus salidas de retransmisión / PWM / solenoide. El código a continuación demuestra cómo usar las funciones de configuración de seguridad del variador para establecer un límite de tiempo máximo en el que los motores no recibirán ninguna entrada antes de apagarse.

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

Para probar el apagado de seguridad, intente agregar una función de espera al ciclo que sea más largo que su tiempo de espera.

La función final que se relaciona con la implementación de verificaciones de seguridad, el retardo de la unidad de robot y la actualización de seguridad, le permite poner el roboRIO en modo autónomo sin exceder el límite de tiempo. Mantendrá la salida actual del motor sin realizar costosas llamadas a las funciones de salida del variador y también se asegurará de que las comprobaciones de seguridad se actualicen periódicamente para que los motores no se detengan repentinamente.

En general, es muy recomendable que se implemente algún tipo de control de seguridad en su proyecto para asegurarse de que su robot no quede involuntariamente en un estado peligroso.