Módulos y Atributos en RAPID ABB

Módulos y Atributos en RAPID de ABB: Cómo Estructurar y Proteger tu Código de Forma Profesional

Si estás dando tus primeros pasos en la programación de robots industriales ABB con RobotStudio, o si trabajas en el departamento de mantenimiento de una planta, es muy probable que te hayas topado con archivos de extensión .mod y .sys.
A simple vista, todos contienen código escrito en lenguaje RAPID, pero el controlador del robot los trata de manera muy diferente. Además, cuando un integrador entrega una celda robótica, suele aplicar ciertos "escudos" al código para evitar modificaciones accidentales que puedan provocar colisiones.
En este artículo vamos a desmitificar qué son los Módulos de Programa, los Módulos de Sistema y cómo utilizar los atributos de seguridad (NOSTEPIN, READONLY, VIEWONLY y NOVIEW) para proteger la integridad de tus programas.

Módulos de Programa (.mod) vs. Módulos de Sistema (.sys)

En RAPID, el código no se escribe en un único bloque infinito. Se organiza en módulos, que actúan como cajas donde guardamos nuestras rutinas, funciones y datos de posición (como los robtarget).

1. Módulos de Programa (.mod)

Son los archivos dinámicos del robot. Contienen la lógica directa de la aplicación (las trayectorias de soldadura, los puntos de pick & place o las secuencias de movimiento del ciclo de producción).
  • Comportamiento: Están vinculados a la tarea activa del programa. Si realizas un borrado de programa o cargas uno nuevo desde el FlexPendant, estos módulos se eliminarán de la memoria para dejar espacio a los nuevos.
  • Uso típico: Definición de trayectorias, lógicas de agarre de pinza y secuencias que cambian según el modelo de pieza que produce la máquina.

2. Módulos de Sistema (.sys)

Son archivos permanentes que se cargan en la configuración profunda del sistema operativo del controlador robótico.
  • Comportamiento: No se borran al cargar un nuevo programa de producción. Permanecen residentes en la memoria del robot y se cargan automáticamente cada vez que el controlador se enciende.
  • Uso típico: Configuración global de herramientas (tooldata), sistemas de coordenadas (wobjdata), rutinas de comunicación general con el PLC o gestores de errores globales.

Atributos de Módulo: Protegiendo el Código de Manos Inexpertas

En una planta de producción, el acceso libre al código del robot es un arma de doble filo. Un operario o un técnico sin formación suficiente podría modificar una línea de código por error o intentar depurar el programa manualmente, saltándose pasos de seguridad indispensables y dañando el robot.
Para evitar esto, ABB nos permite asignar atributos de protección en la cabecera de declaración de los módulos. Estos son los cuatro atributos más utilizados:

1. READONLY (Solo lectura)

Permite que cualquier persona abra el módulo y lea el código desde el FlexPendant o RobotStudio, pero bloquea cualquier intento de edición.
  • Ideal para: Estudiantes o técnicos en formación que necesitan ver cómo funciona la lógica interna, pero que no deben alterar las variables ni las trayectorias de producción.

2. VIEWONLY (Solo visualización)

Es una variante de seguridad similar a READONLY. El código puede inspeccionarse directamente, pero está protegido contra escrituras y modificaciones externas desde el terminal físico del operario.

3. NOSTEPIN (Prohibido el paso a paso)

Este atributo permite que el código sea ejecutado de manera normal y automática por el robot, pero impide que el programador entre de forma secuencial (línea a línea) en sus rutinas durante la depuración manual. El cursor amarillo de ejecución simplemente "saltará" la rutina por completo y continuará en la siguiente línea del programa principal.
  • Ideal para: Rutinas complejas de comunicación por socket TCP/IP, cálculos matemáticos avanzados o secuencias de intercambio de señales con el PLC que no deben interrumpirse a mitad de ejecución.

4. NOVIEW (Ocultación total / Encriptado)

Es el nivel máximo de protección de propiedad intelectual. El módulo se carga y ejecuta perfectamente en el robot, pero nadie puede abrirlo, leerlo ni ver su código. El archivo se encripta por completo.
• Ideal para: Desarrolladores e integradores que han diseñado un algoritmo propio muy valioso y no desean que el cliente final o la competencia copien su tecnología.

Ejemplos Prácticos de Declaración en Código

Para aplicar estos atributos, debemos escribir la sintaxis correcta en la primera línea de declaración de nuestro módulo en RobotStudio. Aquí tienes tres ejemplos reales:

Ejemplo 1: Módulo de trayectorias estándar (Abierto)

Este es un módulo de programa común .mod sin restricciones. Cualquiera puede leerlo y modificarlo.
MODULE ModuloProduccion
    ! Posición segura de inicio
    CONST robtarget pHome := [[1000, 0, 1200], [1, 0, 0, 0], [0, 0, 0, 0], [9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];

    PROC rCicloPrincipal()
        MoveJ pHome, v1000, fine, tGripper;
        ! Secuencia de trabajo...
    ENDPROC

ENDMODULE

Ejemplo 2: Módulo de calibración protegido con READONLY

Queremos que los técnicos vean los puntos de calibración, pero que nadie pueda modificarlos accidentalmente desde la pantalla del robot.
MODULE ModuloCalibracion (READONLY)
    PERS tooldata tAntorcha := [TRUE, [[0, 0, 250], [1, 0, 0, 0]], [1.5, [0, 0, 100], [1, 0, 0, 0], 0, 0, 0]];

    PROC rVerificarCalibracion()
        ! Código visible pero no modificable
    ENDPROC

ENDMODULE

Ejemplo 3: Módulo de sistema crítico con SYSMODULE y NOSTEPIN

Declaramos un módulo de sistema .sys que gestiona el envío de códigos de error al PLC. El robot ejecuta la rutina, pero el cursor amarillo manual no entrará en ella durante el paso a paso.
MODULE ModuloComunicaciones (SYSMODULE, NOSTEPIN)
   
   GLOBAL PROC rEnviarStatusPLC(num codError)
        ! Lógica interna de comunicación TCP/IP o bus de campo
        ! El operario de mantenimiento no podrá detenerse aquí línea por línea
    ENDPROC

ENDMODULE

Peculiaridades y Recomendaciones de Campo

Al programar robots ABB, te sugerimos seguir estas pautas para equilibrar la seguridad con la facilidad de mantenimiento:
  • No abuses de NOVIEW con tu propio equipo: Encriptar todo el código dificulta enormemente las tareas de diagnóstico nocturnas del personal de mantenimiento. Guarda el encriptado únicamente para bloques de código muy específicos (como drivers de comunicación o cálculos propietarios).
  • Usa NOSTEPIN para la estabilidad del proceso: Si tienes una rutina que realiza un cálculo matemático en bucle o sincroniza tiempos con una cámara de visión artificial, el hecho de que un operario detenga la ejecución "en medio" de ese proceso con el botón del paso a paso puede desincronizar la máquina completa. NOSTEPIN es tu mejor aliado aquí.
  • Herramientas siempre en Módulos de Sistema: Configura tus tooldata (herramientas) y wobjdata (objetos de trabajo) en un módulo de sistema declarado como READONLY. De este modo, si un operario carga por error un backup de programa antiguo, las calibraciones reales y actuales de las herramientas físicas no se perderán.

¡Queremos saber tu opinión!

¿Te has encontrado alguna vez con un robot bloqueado por atributos NOVIEW que te impidió solucionar una avería? ¿Qué método prefieres utilizar para evitar que modifiquen tus trayectorias?
Déjanos tus comentarios y dudas aquí abajo.
Si quieres dominar la programación de robots industriales ABB desde cero y sin frustraciones, no olvides suscribirte a nuestra newsletter para recibir tips semanales y acceder a nuestro Curso de Iniciación a RAPID Gratuito de OneDoor. ¡La puerta al futuro de la automatización está abierta!

Publicar un comentario

0Comentarios

Publicar un comentario (0)