Академический Документы
Профессиональный Документы
Культура Документы
herramientas de ingeniería
Robot Controller
RobotWare 5.0
herramientas manual de
ingeniería de aplicaciones
RobotWare 5.0
ID de documento: 3HAC020434-001
Revisión: F
© Copyright 2004-2008 ABB. Todos los derechos reservados.
La información contenida en este manual está sujeta a cambios sin previo aviso y no debe interpretarse como un
compromiso de ABB. ABB no asume ninguna responsabilidad por los errores que puedan aparecer en este manual.
Salvo lo que se indica expresamente en este manual, no hay nada en este documento se interpretará como cualquier
tipo de garantía por parte de ABB por pérdidas, daños a personas o bienes, idoneidad para un propósito específico o
similar.
En ningún caso ABB será responsable por daños incidentales o indirectos derivados del uso de este manual y de los
productos descritos en este documento.
Este manual y sus partes no deben ser reproducidos o copiados sin permiso por escrito de ABB, y el
contenido del mismo no debe dar a conocer a terceros ni utilizarse para fines no autorizados. La infracción
será perseguida.
Las copias adicionales de este manual se pueden obtener de ABB en su cargo entonces actual.
ABB Robotics AB
Productos SE-721 68
Västerås
Suecia
Tabla de contenido
1 Multitasking [623-1] 11
1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 Presentación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Parámetros del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.3 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.2 Prioridades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.3 Tarea ajustes del panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.4 seleccionar las tareas que comienzan con el botón START. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Advanced RAPID 35
3HAC020434-001 Revisión: F 3
Tabla de contenido
4 3HAC020434-001 Revisión: F
Visión de conjunto
Visión de conjunto
Este manual explica los conceptos básicos de cuándo y cómo usar las siguientes funciones y opciones de base de
RobotWare:
• Multitarea (623-1)
• avanzada RAPID
Uso
Este manual puede ser utilizado como una referencia para saber si una funcionalidad básica o una opción es la opción correcta para
resolver un problema, o como una descripción de cómo utilizar una funcionalidad básica o una opción. Información detallada acerca de la
sintaxis para las rutinas de RAPID y la configuración de los parámetros del sistema no se describe aquí, pero se puede encontrar en el
Requisitos previos
Capítulo Contenido
referencias
Referencia ID de documento
3HAC020434-001 Revisión: F 5
Visión de conjunto
Continuado
Las revisiones
Descripción de la revisión
- Primera edición
UN Los cambios en los parámetros del sistema para realizar múltiples tareas:
re Los cambios en la multitarea: tareas estáticas y SEMISTATIC ahora se pueden arrancar y parar desde el
FlexPendant. Esto conduce a cambios en el panel de tareas en el menú Configuración rápida y la adición de los
ajustes del panel de tareas.
mi Se agregó una sección acerca de cómo evitar bucles pesados en multitarea.
F Avanzada RAPID es ahora parte de la funcionalidad básica de RobotWare. Se ha añadido nueva información sobre la
nueva funcionalidad, hacia adelante y hacia atrás paso a paso de las tareas de fondo en el capítulo multitarea.
6 3HAC020434-001 Revisión: F
Documentación del producto, M2004
General
La documentación del robot se divide en varias categorías. Esta lista se basa en el tipo de información contenida en
los documentos, independientemente de si los productos son de serie u opcional. Esto significa que cualquier
entrega dada de productos robot no contendrá todos
Los documentos que figuran, sólo los pertenecientes a los equipos entregados. Sin embargo, todos los documentos mencionados se pueden
solicitar a ABB. Los documentos que se indican son válidas para sistemas de robot M2004.
manuales de productos
Todo el hardware, robots y controladores, se entregarán con una Manual del producto eso contiene:
• Información de seguridad
• Mantenimiento (descripciones de todos los procedimientos de mantenimiento preventivo indicación de sus intervalos)
• Información de referencia (números de artículo para la documentación mencionadas en el Manual del producto, procedimientos, listas
• Lista de
• diagramas de circuitos
Los manuales siguientes describen el software del robot en general y contienen la información de referencia pertinente:
• Descripción general de RAPID: Una visión general del lenguaje de programación RAPID.
• RAPID Instrucciones, funciones y tipos de datos: Descripción y sintaxis para todas las instrucciones de RAPID,
© Copyright 2004-2008 ABB. Todos los derechos reservados.
• Los parámetros del sistema: Descripción de los parámetros del sistema y los flujos de trabajo de configuración.
manuales de aplicación
manuales de aplicación. Un manual de aplicación puede describir una o varias aplicaciones. Un manual de
• ¿Qué se incluye (por ejemplo cables, tableros I / O, instrucciones de RAPID, parámetros del sistema, CD con el
software de PC)
3HAC020434-001 Revisión: F 7
Documentación del producto, M2004
Continuado
manuales de operación
Este grupo de manuales está dirigido a aquellos que tienen contacto operacional de primera mano con el robot, es decir, operadores de
• Empezar, el IRC5
• RobotStudio
• Introducción a RAPID
8 3HAC020434-001 Revisión: F
seguridad
La
La seguridad
Los robots son pesados y muy potente, independientemente de su velocidad. Una pausa o larga parada en movimiento pueden ser
seguidos por un movimiento peligroso rápido. Incluso si se predice un patrón de movimiento, un cambio en la operación puede ser
Por lo tanto, es importante que todas las normas de seguridad son seguidos al entrar en un espacio protegido.
Regulaciones de seguridad
Antes de comenzar a trabajar con el robot, asegúrese de que está familiarizado con las normas de seguridad que se describen en el
3HAC020434-001 Revisión: F 9
10
La seguridad
3HAC020434-001 Revisión: F
© Copyright 2004-2008 ABB. Todos los derechos reservados.
1 Multitasking [623-1]
1 Multitasking [623-1]
1.1 Introducción
Propósito
El propósito de multitarea es ser capaz de ejecutar más de un programa a la vez. Ejemplos de las aplicaciones se
• supervisión continua de las señales, incluso si el programa principal se ha detenido. Esto puede, en algunos casos asumir el
Descripción básica
Cada tarea consiste en un programa (con varios módulos de programa) y varios módulos del sistema. Los módulos
en0300000517
Variables y constantes son locales en la tarea respectiva, pero no son variables persistentes. Cada tarea tiene su propia trampa
© Copyright 2004-2008 ABB. Todos los derechos reservados.
• la instrucción: WaitSyncTask
3HAC020434-001 Revisión: F 11
1 Multitasking [623-1]
Continuado
¡NOTA!
TestAndSet, TaskRunMec y TaskRunRob Se puede utilizar sin la opción de multitarea, pero son mucho más útil junto
con multitarea.
enfoque básico
Este es el enfoque general para la creación de multitarea. Para más información, ver estrategias de depuración para la creación de
12 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
Esta es una breve descripción de cada parámetro en multitarea. Para obtener más información, véase el parámetro respectivo
Tarea
Parámetro Descripción
Tenga en cuenta que la edición de la entrada de tarea en el editor de configuración y cambiar el nombre de la
tarea se eliminará la antigua tarea y añadir una nueva. Esto significa que cualquier programa o módulo en la
tarea desaparecerá después de un reinicio con este tipo de cambios.
plano Tarea en primer plano contiene el nombre de la tarea que se debe ejecutar en el primer plano de esta tarea. Esto
significa que el programa de la tarea, para la cual se establece el parámetro, sólo se ejecuta si el programa de
trabajo de primer plano está inactivo. Si Tarea en primer plano se establece en una cadena vacía para una tarea,
se ejecuta en el nivel más alto.
• ESTÁTICA - En un arranque en caliente del programa de la tarea continúa desde donde el estaba. El
programa de la tarea que normalmente no se detiene por el FlexPendant o de parada de emergencia.
Verificar las Este parámetro debe ser establecido en NO si el sistema es aceptar referencias sin resolver en el programa
referencias sin mientras la vinculación de un módulo, configurado de otro modo a SÍ.
resolver
3HAC020434-001 Revisión: F 13
1 Multitasking [623-1]
Continuado
Parámetro Descripción
Nivel de confianza Nivel de confianza define el comportamiento del sistema cuando se detiene un programa de la tarea estática o
SEMISTATIC (por ejemplo, debido a un error):
• SysFail - Si el programa de esta tarea se detiene, el sistema se puede configurar para SYS_FAIL.
Esto hará que los programas de todas las tareas normal para detenerse (tareas estáticas y
SEMISTATIC continuarán ejecución si es posible). Sin correr o programa de inicio se puede hacer.
Se requiere un arranque en caliente.
• SysHalt -Si el programa de esta tarea se detiene, se detendrán los programas de todas las
tareas normales. Si "motores" se pone, trotar es posible, pero no inicio del programa. Se
requiere un arranque en caliente.
• SysStop - Si el programa de esta tarea se detiene, los programas de todas las tareas de tipo NORMAL se
detendrán, pero se pueden reiniciar. También es posible hacer footing.
MotionTask Indica si el programa de la tarea puede controlar el movimiento del robot con instrucciones de
movimiento de RAPID. Sólo una tarea puede tener MotionTask el valor de YES menos que se utilice la
opción MultiMove.
14 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
Tipos de datos
Esta es una breve descripción de cada tipo de datos en multitarea. Para obtener más información, consulte el respectivo tipo de
taskid taskid identificar las tareas disponibles en el sistema. Esta identidad se define por el parámetro del
sistema Tarea, y no puede ser definida en el programa de RAPID. Sin embargo, el tipo de datos taskid se
puede utilizar como un parámetro cuando se declara una rutina. Por ejemplo código, consulte taskid en
la página 33 .
syncident syncident se utiliza para identificar el punto de espera en el programa, cuando se utiliza la
instrucción WaitSyncTask.
El nombre de syncident variable debe ser la misma en todos los programas de trabajo. Por
ejemplo código, consulte WaitSyncTask ejemplo en la página 27 .
Tareas Una variable del tipo de datos Tareas contiene los nombres de las tareas que se van a sincronizar
por la instrucción WaitSyncTask.
Por ejemplo código, consulte WaitSyncTask ejemplo en la página 27 .
Instrucciones
Esta es una breve descripción de cada instrucción en multitarea. Para obtener más información, consulte la instrucción
Instrucción Descripción
WaitSyncTask WaitSyncTask se utiliza para sincronizar varios programas de trabajo en un punto especial en el programa.
UN WaitSyncTask de instrucciones retrasará la ejecución del programa y esperar a que los otros programas
de trabajo. Cuando todos los programas de trabajo han llegado al punto, el respectivo programa continuará
su ejecución. Por ejemplo código, consulte WaitSyncTask ejemplo en la página 27 .
© Copyright 2004-2008 ABB. Todos los derechos reservados.
funciones
Esta es una breve descripción de cada función en multitarea. Para obtener más información, consulte la función correspondiente
Función Descripción
TestAndSet TestAndSet se utiliza, junto con un indicador booleano, para asegurarse de que sólo un programa de trabajo en el
momento de utilizar un recurso específico el área de código o sistema de RAPID. Por ejemplo código, consulte Ejemplo
TaskRunMec Compruebe si el programa de la tarea controla cualquier unidad mecánica (robot u otra unidad).
Por ejemplo código, consulte Prueba si la tarea se controla unidad mecánica en la página 32 .
3HAC020434-001 Revisión: F 15
1 Multitasking [623-1]
¡PROPINA!
Las instrucciones a continuación muestran la manera segura de hacer actualizaciones. Al establecer el parámetro Tipo a la normalidad y Nivel
de confianza NoSafety el programa de la tarea será más fácil de probar y cualquier error que pueda ocurrir será más fácil de corregir.
Si está seguro de que el código se introduce es correcto, puede omitir el cambio de valores para Tipo
y Nivel de confianza. Si usted no cambia los parámetros del sistema puede que no tenga que hacer ningún reinicio del sistema.
crear tarea
Acción
1. Definir la nueva tarea mediante la adición de una instancia del tipo de parámetro del sistema Tarea, en el
tema Controlador.
3. Crear los módulos que deben estar en la tarea, ya sea desde el FlexPendant o fuera de línea, y guardarlos.
4. En los parámetros del sistema para el tema Controlador y el tipo Carga automática de módulos,
especificar todos los módulos que deben ser cargados previamente a la nueva tarea. Para las tareas normales de los módulos se pueden
cargar más tarde, pero las tareas estáticas o SEMISTATIC los módulos deben estar precargados.
5. Detener el controlador.
6. En "motores en" estado, probar y depurar los módulos hasta que la funcionalidad es satisfactoria.
7. Cambie los parámetros Tipo y Nivel de confianza a los valores deseados (por ejemplo SEMISTATIC y
SysFail).
8. Reinicie el sistema.
Esta precaución, al editar un programa en una tarea existente con Tipo establece como Estática o SEMISTATIC.
Acción
Esto hará que sea posible cambiar y probar los módulos en la tarea.
2. Si el parámetro del sistema necesitaba ser cambiado, reinicie el controlador (en caliente).
3. Seleccione el menú ABB> Panel de control> FlexPendant> Configuración del panel de tareas.
Seleccionar Todas las tareas y toque DE ACUERDO.
4. En el menú de configuración rápida, seleccione las tareas para iniciar y detener manualmente. Ver seleccionar qué
Continuado
Acción
8. Seleccione el menú ABB> Panel de control> FlexPendant> Configuración del panel de tareas.
Establecer el valor de nuevo a Solo las tareas normales y toque DE ACUERDO.
9. Cambie el parámetro Nivel de confianza Volver a valor deseado (por ejemplo SysFail).
3HAC020434-001 Revisión: F 17
1 Multitasking [623-1]
1.2.2. prioridades
1.2.2. prioridades
El comportamiento por defecto es que todos los programas de trabajo se ejecutan con la misma prioridad, de manera Round Robin. Es posible
cambiar la prioridad de una tarea mediante el establecimiento en el fondo de otra tarea. A continuación, el programa de la tarea en segundo
plano sólo se ejecutará cuando el programa de trabajo de primer plano está en reposo, a la espera de un evento, por ejemplo. Otra situación en
la que el programa se ejecutará tarea de fondo es cuando el programa de trabajo de primer plano ha ejecutado una instrucción de movimiento,
como la tarea de primer plano entonces tendrá que esperar hasta que el robot se ha movido. Para configurar una tarea en segundo plano de
Ejemplo de prioridades
Se han usado 6 tareas, con Tarea en primer plano configurar como se muestra en la siguiente tabla.
PRINCIPAL
Back1 PRINCIPAL
back2 Back1
back3 Back1
SUP1
SUP2 SUP1
en0300000451
Los programas de las principales tareas y SUP1 se alternarán en la ejecución de una instrucción cada (Caso 1 en la figura más
abajo).
Si el programa principal tarea está inactivo, los programas de Back1 y SUP1 se turnan en la ejecución de una instrucción
© Copyright 2004-2008 ABB. Todos los derechos reservados.
Si ambos programas principal tarea y Back1 están inactivos, los programas de Back2, back3 y SUP1 se turnan en la
en0300000479
18 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
El comportamiento por defecto es que sólo las tareas de tipo NORMAL se inician y detienen con el START y STOP. En el panel
de selección de tareas puede seleccionar qué tareas normales para iniciar y detener, ves Seleccionar qué tareas para iniciar con
el comienzo de la página 20 .
En los ajustes del panel de tareas el comportamiento por defecto se puede modificar para que las tareas estáticas y
SEMISTATIC también pueden intensificarse, inicia y se detiene con el START y STOP. Sin embargo, estas tareas sólo pueden
iniciarse y detenerse si tienen Nivel de confianza establecen NoSafety y sólo pueden iniciarse y detenerse en el modo manual.
El procedimiento siguiente detalla cómo hacer tareas estáticas y SEMISTATIC seleccionable en el panel de tareas.
Acción
1. En la TEJIDO menú, toque Panel de control, entonces FlexPendant y entonces Panel de tareas
Ajustes.
2. Seleccionar Todas las tareas (Normal / estática / semiestática) con NoSafety TrustLevel y toque DE ACUERDO.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 19
1 Multitasking [623-1]
Fondo
El comportamiento por defecto es que los programas de todas las tareas normales se iniciaron simultáneamente al pulsar el botón START.
Sin embargo, no todos los programas de trabajo normales no tienen que correr al mismo tiempo. Es posible seleccionar cuál de los
programas de trabajo normal se iniciará cuando se pulsa el botón START. Si Todas las tareas se selecciona en el Tarea Panel de ajustes, los
programas de todas las tareas estáticas y con SEMISTATIC Nivel de confianza establecer NoSafety puede seleccionarse para iniciar con el
botón START, avance escalonado con el botón FWD, hacia atrás un paso con el botón Atrás, y se detuvo con el botón STOP. Si Configuración
de panel de tareas se establece en Solo las tareas normales, todas las tareas estáticas y SEMISTATIC están en gris y no se pueden
seleccionar en el panel de tareas, menú de configuración rápida (consulte Utilización de IRC5 con FlexPendant Manual, sección Menú
Configuración rápida, tareas). Todas las tareas estáticas y SEMISTATIC se pondrá en marcha si se pulsa el botón de inicio. Si Configuración
de panel de tareas se establece en Todas las tareas, Las tareas estáticas y con SEMISTATIC Nivel de confianza
NoSafety se puede seleccionar en el panel de tareas. Todas las tareas estáticas y SEMISTATIC seleccionados se pueden detener, entraron y
empezaron. .
Una tarea estática o SEMISTATIC, no seleccionado en el panel de tareas, todavía puede estar ejecutando. Esto no es posible para una
tarea NORMAL.
Modo de ejecución es siempre continua para tareas estáticas y SEMISTATIC. el ajuste del modo de ejecución en el menú de configuración rápida
sólo es aplicable para las tareas normales (véase el Manual del operador - IRC5 con FlexPendant, la sección Menú de configuración rápida Modo
de ejecución).
Esto sólo funcionará en modo manual, no es una tarea estática o SEMISTATIC se puede iniciar, dio un paso o se detiene en el
modo automático.
Los ajustes del panel de tareas se encuentra tocando la TEJIDO menú, seguido de Panel de control, FlexPendant y Tarea
Siga estas instrucciones para seleccionar cuáles de las tareas se inició con el botón START.
Acción
20 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
Continuado
Acción
2. En el FlexPendant, toque el botón QuickSet (A) y luego el botón del panel de tareas (B). Se muestra el diálogo
siguiente.
en0300000452
Todas las tareas se muestran en esta lista. Si Configuración de panel de tareas se establece en Solo las tareas normales, todas las tareas
estáticas y SEMISTATIC están en gris y no pueden seleccionarse. Si Configuración de panel de tareas se establece en Todas las tareas, Las
Nivel de confianza NoSafety puede ser seleccionado, mientras que las tareas estáticas y SEMISTATIC con TrustLevel establecen
para los demás valores están en gris y no se pueden seleccionar.
3. Seleccione las casillas de verificación para aquellas tareas cuyo programa debe ser iniciada por el botón START.
Acción
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 21
1 Multitasking [623-1]
Continuado
Al cambiar al modo automático, todas las tareas estáticas y SEMISTATIC se cancelará la selección desde el panel de tareas. Las
tareas estáticas y SEMISTATIC dejado comenzarán la próxima vez que cualquiera de la salida, se prensan FWD o botón Atrás.
Estas tareas se ejecute de forma continua hacia adelante y no ser detenido por el botón STOP o de parada de emergencia.
Lo que sucede con las tareas normales que ha sido sin seleccionar en el panel de tareas depende del parámetro del sistema Reiniciar en el
tipo de Condición Autoreiniciable en el tema Controlador. Si Reiniciar se establece en Sí, todas las tareas normales se pueden seleccionar en el
panel de tareas y pueden iniciar con el botón START. Si Reiniciar se establece en No, sólo aquellas tareas de tipo NORMAL seleccionados en
¡NOTA!
Tenga en cuenta que al cambiar el valor del parámetro del sistema Reiniciar afectará a todo el reajustes de depuración (por ejemplo, corrección de la
velocidad y simulados I / O). Para más información, ver Los parámetros del sistema, - Manual de Referencia Técnica sección Condiciones de restauración
automática.
Si se reinicia el controlador, todas las tareas NORMAL mantiene su estado, mientras que todas las tareas estáticas y SEMISTATIC se cancelará la
selección desde el panel de tareas. A medida que el controlador se pone en marcha todas las tareas estáticas y SEMISTATIC se pondrán en marcha
Si una tarea está en un modo sincronizado, es decir, programa de puntero entre SyncMoveOn y
SyncMoveOff, la tarea se puede desactivar, pero no vuelve a seleccionar. La tarea no puede ser seleccionado hasta que se
termina la sincronización. Si la ejecución continúa, la sincronización con el tiempo se extinguirá por las otras tareas, pero no
para la tarea sin seleccionar. La sincronización puede ser terminado para esta tarea moviendo el puntero de programa a
Si el parámetro del sistema Reiniciar se establece en Sí, cualquier intento de cambiar al modo automático fallará mientras que una tarea no
seleccionado está en modo sincronizado. Cambiar al modo automático debe hacer todas las tareas normales seleccionados, y cuando esto no
22 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
Una variable persistente es global en todas las tareas en las que se declara. La variable persistente debe ser declarado como el mismo tipo y
tamaño (dimensión de matriz) en todas las tareas. De lo contrario se producirá un error de ejecución.
Es suficiente para especificar un valor inicial para la variable persistente en una tarea. Si los valores iniciales se especifican
en varias tareas, sólo se utilizará el valor inicial del primer módulo a cargar.
¡PROPINA!
Cuando se guarda un programa, el valor actual de una variable persistente se utiliza como valor inicial en el futuro. Si no se desea
En este ejemplo, las variables persistentes startsync y stringtosend se accede por ambas tareas, y por lo tanto puede ser
MÓDULO modulo1
PERS bool startsync: = FALSE; PERS cadena
stringtosend: = ""; principal PROC ()
MÓDULO modulo2
© Copyright 2004-2008 ABB. Todos los derechos reservados.
startsync WaitUntil;
SI stringtosend = "esto es una prueba" ENTONCES
. . .
TERMINARA SI
3HAC020434-001 Revisión: F 23
1 Multitasking [623-1]
Continuado
Cuando se utilizan las variables persistentes en varias tareas, debe haber declaraciones en todas las tareas. La mejor manera de hacer
esto, para evitar errores de tipo u olvidar una declaración en alguna parte, es declarar todas las variables comunes en un módulo del
sistema. El módulo de sistema puede ser cargado en todas las tareas que requieren las variables.
24 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
dos técnicas
Algunas aplicaciones tienen programas de trabajo que se ejecutan de forma independiente de otras tareas, pero a menudo los programas de tareas
Un programa de la tarea se puede hacer que esperar a otro programa de la tarea. Esto se logra mediante el establecimiento de una variable
persistente que otro programa de la tarea puede sondear, o estableciendo una señal de que el otro programa de la tarea se puede conectar a una
interrupción.
Votación
Esta es la manera más fácil de hacer una espera de programa de la tarea para otro, pero el rendimiento será el más lento. Las
MIENTRAS.
¡PRECAUCIÓN!
No sondear con mayor frecuencia que cada 100 ms. Un bucle que las encuestas sin una instrucción de espera puede causar sobrecarga, lo que
ejemplo de votación
MÓDULO modulo1
PERS bool startsync: = FALSE; principal
PROC ()
startsync: = TRUE;
. . .
ENDMODULE
ENDPROC
MÓDULO modulo2
PERS bool startsync: = FALSE; principal
© Copyright 2004-2008 ABB. Todos los derechos reservados.
PROC ()
startsync WaitUntil;
! Este es el punto donde la ejecución! continúa después startsync se
establece en TRUE
. . .
ENDMODULE
ENDPROC
Interrumpir
Mediante el establecimiento de una señal en un programa de trabajo y el uso de una interrupción en otro programa de la tarea, se obtiene una respuesta
El inconveniente es que el código ejecutado después de la interrupción debe ser colocado en una rutina de interrupción.
3HAC020434-001 Revisión: F 25
1 Multitasking [623-1]
Continuado
ejemplo de interrupción
MÓDULO modulo1
principal PROC ()
SetDO do1,1;
. . .
ENDMODULE
ENDPROC
MÓDULO modulo2
intnum VAR intno1;
principal PROC ()
WaitTime 10;
ENDWHILE ENDPROC
wait_trap TRAP
! Este es el punto donde la ejecución! continúa después DO1 está
situado en la principal tarea
. . .
intno1 IDelete;
ENDMODULE ENDTRAP
26 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
La sincronización es útil cuando los programas de tareas en función de unos a otros. Ningún programa de trabajo continuará más allá de un
punto de sincronización en el código del programa hasta que todos los programas de trabajo han llegado a ese punto en el código del
programa respectivo. La instrucción WaitSyncTask se utiliza para sincronizar los programas de tareas. Ningún programa de trabajo continuará
su ejecución hasta que todos los programas de trabajo han llegado a la misma WaitSyncTask
instrucción.
ejemplo WaitSyncTask
En este ejemplo, el programa de tarea en segundo plano calcula la posición del siguiente objeto, mientras que el programa de la tarea
principal maneja los robots trabajan con el objeto actual. El programa de tarea en segundo plano puede tener que esperar a la entrada del
operador o señales E / S, pero el programa principal tarea no va a continuar con el siguiente objeto hasta que se calcula la nueva
posición. Del mismo modo, el programa de la tarea de fondo no debe comenzar el siguiente cálculo hasta que el programa principal tarea
MÓDULO modulo1
PERS pos object_position: = [0,0,0]; PERS tareas task_list {2}: = [[ "MAIN"], [
"Back1"]]; VAR sync1 syncident;
principal PROC ()
verdadera DO
ENDPROC
3HAC020434-001 Revisión: F 27
1 Multitasking [623-1]
Continuado
MÓDULO modulo2
PERS pos object_position: = [0,0,0]; PERS tareas task_list {2}: = [[ "MAIN"], [
"Back1"]]; VAR sync1 syncident;
principal PROC ()
calculate_position PROC ()
. . .
object_position: = ... ENDPROC
ENDMODULE
28 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
¿Qué es un despachador?
Una señal digital se puede utilizar para indicar cuando otra tarea debería hacer algo. Sin embargo, no puede contener
En lugar de utilizar una señal para cada rutina, un despachador se puede utilizar para determinar qué rutina para llamar. Un
despachador puede ser una variable de cadena persistente que contiene el nombre de la rutina que se ejecuta en otra tarea.
ejemplo, despachador
En este ejemplo, el programa de la tarea principal llama a rutinas en la tarea de fondo mediante el establecimiento
routine_string a nombre de la rutina, y luego poner OC5 a 1. De esta manera, el programa principal tarea inicializar
que el programa de trabajo de fondo debe ejecutar la rutina clean_gun
primero y luego routine1.
MÓDULO modulo1
routine_string PERS cadena: = "";
principal PROC ()
. . .
ENDMODULE
ENDPROC
© Copyright 2004-2008 ABB. Todos los derechos reservados.
MÓDULO modulo2
routine_string PERS cadena: = "";
principal PROC ()
do5,1 WaitDO; %
Routine_string%; SetDO
do5,0; ENDPROC
clean_gun PROC ()
. . .
3HAC020434-001 Revisión: F 29
1 Multitasking [623-1]
Continuado
ENDPROC
routine1 PROC ()
. . .
ENDMODULE
ENDPROC
30 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
Los recursos del sistema, tales como el FlexPendant, sistema de archivos y señales E / S, están disponibles en todas las tareas. Sin
embargo, si varios programas de trabajo utilizan el mismo recurso, asegurarse de que se turnan para usar el recurso, en vez de usarlo al
mismo tiempo.
Para evitar tener dos programas de trabajo utilizando el mismo recurso al mismo tiempo, usar una bandera para indicar que el recurso ya
está en uso. Una variable booleana se puede ajustar a la verdadera mientras que el programa de la tarea utiliza el recurso. Para facilitar
esta manipulación, la instrucción TestAndSet se utiliza. Se comprobará primero la bandera. Si la bandera es falsa, se establece el indicador
En este ejemplo, dos programas de trabajo tratan de escribir tres líneas cada una en la FlexPendant. Si no se utiliza ninguna bandera, existe el
riesgo de que estas líneas se mezclan entre sí. Mediante el uso de una bandera, el programa de la tarea que ejecuta el primero TestAndSet instrucción
escribirá las tres líneas en primer lugar. El otro programa de la tarea esperará hasta que el indicador se establece en false y luego escribir todas
sus líneas.
. . .
WaitUntil TestAndSet (tproutine_inuse); TPWrite "Primera línea
de Back1"; TPWrite "Segunda línea de Back1"; TPWrite
"Tercera línea de Back1"; tproutine_inuse: = FALSE;
3HAC020434-001 Revisión: F 31
1 Multitasking [623-1]
Hay funciones para comprobar si el programa de trabajo tiene el control de cualquier unidad mecánica,
TaskRunMec, o de un robot, TaskRunRob. TaskRunMec devolverá true si el programa de la tarea controla un robot u otra
unidad mecánica.
TaskRunRob sólo devolverá verdadero si el programa de la tarea controla un robot con TCP.
TaskRunMec y TaskRunRob son útiles cuando se utiliza MultiMove. Con MultiMove puede tener varias tareas de control
¡NOTA!
Para una tarea tenga control de un robot, el parámetro Tipo debe ajustarse a la normalidad y
MotionTask debe estar ajustado a SÍ. Ver Los parámetros del sistema en la página 13 .
En este ejemplo, se establece la velocidad máxima para un equipo externo. Si el programa de la tarea controla un robot, la velocidad
máxima para un equipo externo se establece en el mismo valor que la velocidad máxima para el robot. Si el programa de la tarea
controla un equipo externo, pero ningún robot, la velocidad máxima se establece en 5.000 mm / s.
SI TaskRunMec () ENTONCES
SI TaskRunRob () ENTONCES
32 3HAC020434-001 Revisión: F
1 Multitasking [623-1]
1.4.3. taskid
1.4.3. taskid
sintaxis taskid
Una tarea siempre tiene una variable predefinida de tipo taskid que consiste en el nombre de la tarea y el postfix "ID". Por
ejemplo de código
BACK1Id es una variable de tipo taskid que se declara automáticamente por el sistema.
3HAC020434-001 Revisión: F 33
1 Multitasking [623-1]
Un programa de la tarea se ejecuta normalmente de forma continua. Esto significa que un programa de tarea de fondo es, en efecto, un
bucle eterno. Si este programa no tiene ninguna instrucción de espera, la tarea de fondo puede utilizar demasiada potencia del
Ejemplo
MÓDULO background_module
principal PROC ()
WaitTime 1; SI di1 = 1
entonces
. . .
ENDIF
ENDPROC
ENDMODULE
Si no había ninguna instrucción de espera en este ejemplo y ED1 0, entonces esta tarea en segundo plano usaría la potencia de
34 3HAC020434-001 Revisión: F
2 Advanced RAPID
2 Advanced RAPID
2.1. Visión de conjunto
La funcionalidad básica de RobotWare avanzada RAPID está dirigido a programadores de robots que desarrollan aplicaciones que
Avanzada RAPID incluye muchos tipos diferentes de funcionalidad, que se pueden dividir en los siguientes grupos:
la funcionalidad de búsqueda de datos Buscar y obtener / fijar objetos de datos (por ejemplo, variables).
3HAC020434-001 Revisión: F 35
2 Advanced RAPID
Propósito
El propósito de la función del bit es ser capaz de hacer operaciones en un byte, visto como 8 bits digitales. Es posible obtener o
establecer un solo bit, o realizar operaciones lógicas en un byte. Estas operaciones son útiles, por ejemplo, cuando el manejo de
• funciones que se utilizan para realizar operaciones lógicas en un byte: BitAnd, BitOr, BITXOR BitNeg, BitLSh y
BitRSh
36 3HAC020434-001 Revisión: F
2 Advanced RAPID
Tipos de datos
Esta es una breve descripción de cada tipo de datos utilizado para la funcionalidad de bit. Para obtener más información, consulte el
respectivo tipo de datos en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Instrucciones
Esta es una breve descripción de cada instrucción se utiliza para la funcionalidad de bit. Para obtener más información,
consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Descripción de instrucciones
BitSet BitSet se utiliza para establecer un bit especificado a 1 en un byte de datos definidos.
BitClear BitClear se utiliza para borrar (ajustado a 0) un bit especificado en un dato de bytes definidos.
funciones
Esta es una breve descripción de cada función que se utiliza para la funcionalidad de bit. Para obtener más información, consulte la
función correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
BitAnd BitAnd se utiliza para ejecutar una operación AND lógica binaria sobre tipos de datos byte.
BitOr BitOr se utiliza para ejecutar un bit a bit operación lógica OR en tipos de datos byte.
BITXOR BITXOR ( O-exclusiva) se utiliza para ejecutar una operación lógica XOR bit a bit en tipos de datos byte.
BitNeg BitNeg se utiliza para ejecutar una operación en modo bit negación lógica (complemento a uno) sobre
tipos de datos byte.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
BitLSh BitLSh ( Bit Shift izquierda) se utiliza para ejecutar una operación de desplazamiento izquierda en modo bit lógico sobre tipos
de datos byte.
BitRSh BitRSh ( Bit Desplazamiento a la derecha) se utiliza para ejecutar una operación de desplazamiento a la derecha en
BitCheck BitCheck se utiliza para comprobar si un bit especificado en un byte de datos definido se establece en 1.
¡PROPINA!
A pesar de que no forma parte de la opción, las funciones de conversión entre un byte y una cadena,
3HAC020434-001 Revisión: F 37
2 Advanced RAPID
Código de programa
38 3HAC020434-001 Revisión: F
2 Advanced RAPID
Propósito
El propósito de la función de búsqueda de datos es para buscar y obtener los valores de / set de objetos de datos de un tipo determinado.
• Establecer un valor a una variable, cuando el nombre de la variable sólo está disponible en una cadena.
• Establecer un nuevo valor para un conjunto de variables similares con nombres similares.
• instrucciones utilizadas para encontrar un conjunto de objetos de datos y obtener o establecer sus valores: SetDataSearch,
3HAC020434-001 Revisión: F 39
2 Advanced RAPID
Tipos de datos
Esta es una breve descripción de cada tipo de datos utilizado para la funcionalidad de búsqueda de datos. Para obtener más información,
consulte el respectivo tipo de datos en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
datapos datapos es el bloque que lo contiene a un objeto de datos (datos del sistema interno) recuperado con
la función de GetNextSym.
Instrucciones
Esta es una breve descripción de cada instrucción se utiliza para la funcionalidad de búsqueda de datos. Para obtener más información,
consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Instrucción Descripción
GetDataVal GetDataVal hace que sea posible obtener un valor de un objeto de datos que se especifica con una
variable de cadena, o de un objeto de datos recuperada con
GetNextSym.
SetDataVal SetDataVal hace que sea posible establecer un valor para un objeto de datos que se especifica con una
variable de cadena, o de un objeto de datos recuperada con
GetNextSym.
SetAllDataVal SetAllDataVal hacer posible el establecimiento de un nuevo valor a todos los objetos de datos de un determinado tipo
funciones
Esta es una breve descripción de cada función que se utiliza para la funcionalidad de búsqueda de datos. Para obtener más información,
consulte la función correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
© Copyright 2004-2008 ABB. Todos los derechos reservados.
40 3HAC020434-001 Revisión: F
2 Advanced RAPID
Este es un ejemplo de cómo establecer el valor de una variable cuando el nombre de la variable se desconoce la hora de
Este es un ejemplo donde todas las variables numéricas que comienzan con "mi" se pone a 0.
En este ejemplo, todas las variables numéricas en el módulo "mimodelo" comenzando con "mi" se enumeran en el FlexPendant y
luego se ponen a 0.
3HAC020434-001 Revisión: F 41
2 Advanced RAPID
Propósito
La funcionalidad de alias de E / S proporciona al programador la capacidad de usar cualquier nombre en una señal y conectar ese nombre a
Esto es útil cuando un programa de RAPID se reutiliza entre diferentes sistemas. En lugar de volver a escribir el código, usando un nombre
de señal que existe en el nuevo sistema, el nombre de la señal utilizada en el programa se puede definir como un nombre de alias.
42 3HAC020434-001 Revisión: F
2 Advanced RAPID
Tipos de datos
Instrucciones
Esta es una breve descripción de cada instrucción utilizada para la funcionalidad Alias I / O. Para obtener más información,
consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Descripción de instrucciones
AliasIO AliasIO se utiliza para definir una señal de cualquier tipo con un nombre de alias, o para utilizar señales en los
módulos de tarea incorporadas. El nombre de alias está conectado a una señal configurada. La instrucción AliasIO se
debe ejecutar antes de cualquier uso de la señal real.
funciones
3HAC020434-001 Revisión: F 43
2 Advanced RAPID
Este ejemplo muestra cómo definir la señal de salida digital alias_do para ser conectado a la señal de salida digital
configurada config_do.
Esto asegurará que "alias_do" se puede utilizar en el código de RAPID a pesar de que no hay ninguna señal configurada con
ese nombre.
44 3HAC020434-001 Revisión: F
2 Advanced RAPID
Propósito
La funcionalidad de configuración permite el acceso al programador para los parámetros del sistema en tiempo de ejecución. Los valores de
los parámetros se pueden leer y editar. El controlador puede ser reiniciado para que los nuevos valores de los parámetros tengan efecto.
3HAC020434-001 Revisión: F 45
2 Advanced RAPID
Tipos de datos
Instrucciones
Esta es una breve descripción de cada instrucción utilizada para la funcionalidad de configuración. Para obtener más
información, consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de
datos.
Instrucción Descripción
ReadCfgData ReadCfgData se usa para leer un atributo de un parámetro de sistema llamado (datos de
configuración).
WriteCfgData WriteCfgData se utiliza para escribir un atributo de un parámetro de sistema llamado (datos de
configuración).
Arranque en caliente Arranque en caliente se utiliza para reiniciar el controlador en tiempo de ejecución. Esto es útil después de
WriteCfgData.
funciones
46 3HAC020434-001 Revisión: F
2 Advanced RAPID
Este es un ejemplo en el que el parámetro del sistema cal_offset para se lee rob1_1, aumentó en 0,2 mm y luego escrito de
3HAC020434-001 Revisión: F 47
2 Advanced RAPID
¡NOTA!
Todos los valores de la señal con el parámetro tienda de señal a potencia falle se restauran después de un corte de energía. Este es el caso
Propósito
Si el robot se encontraba en medio de un movimiento de trayectoria cuando fall ocurrió el poder, es posible que algunas acciones
adicionales a tomar cuando se reanuda el movimiento del robot. La funcionalidad de fallo de energía le ayuda a detectar si fall ocurrió el
La funcionalidad de fallo de alimentación incluye una función que comprueba camino interrumpido:
PFRestart
48 3HAC020434-001 Revisión: F
2 Advanced RAPID
Tipos de datos
Instrucciones
funciones
Esta es una breve descripción de cada función en la funcionalidad de fallo de alimentación. Para obtener más información, consulte la
función correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
PFRestart PFRestart ( El no poder Reiniciar) se utiliza para comprobar si la ruta se interrumpe en fallo de alimentación. Si lo
que podría ser necesario realizar algunas acciones específicas. La función comprueba la ruta de acceso en el nivel
actual, el nivel de base o en el nivel de interrupción.
No hay parámetros del sistema en la funcionalidad de fallo de alimentación. Sin embargo, independientemente de si usted tiene
instalado ninguna opción, puede utilizar el parámetro tienda de señal a potencia falle.
Para cada señal, el parámetro tienda de señal a potencia falle determina si la señal debe ser restaurada después de fallo de
alimentación. Para más información, ver Manual de referencia técnica - Parámetros del sistema.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 49
2 Advanced RAPID
Al reanudar el trabajo después de un fallo de alimentación, este ejemplo prueba si el fallo de energía se produjeron durante un camino (es
SetDO do5,0;
TERMINARA SI
50 3HAC020434-001 Revisión: F
2 Advanced RAPID
Propósito
funcionalidad de soporte proceso proporciona algunas instrucciones de RAPID que pueden ser útiles en la creación de aplicaciones
• señales de salida analógicas, utilizados en la solicitud de proceso continuo, se pueden configurar para ser proporcional a la
• Una aplicación de proceso continuo que se detuvo con parada del programa o de parada de emergencia se puede continuar
limitaciones
La instrucción TriggSpeed sólo se puede utilizar si usted tiene la funcionalidad básica posición fija Eventos.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 51
2 Advanced RAPID
Tipos de datos
Esta es una breve descripción de cada tipo de datos utilizado para la funcionalidad de soporte proceso. Para obtener más
información, consulte el respectivo tipo de datos en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
restartdata restartdata puede contener el pre y post-valores de señales de E / S especificados (señales de proceso)
en la secuencia de parada de los movimientos del robot.
restartdata, junto con la instrucción TriggStopProc se utiliza para conservar los datos para el reinicio después de
la parada del programa o de parada de emergencia de instrucciones de proceso de auto-desarrollados.
Instrucciones
Esta es una breve descripción de cada instrucción se utiliza para la funcionalidad de soporte de procesos. Para obtener más
información, consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Instrucción Descripción
TriggSpeed TriggSpeed se utiliza para definir la configuración de una salida analógica a un valor proporcional a la
velocidad TCP.
TriggSpeed sólo se puede utilizar junto con la posición de opción fija Eventos.
TriggStopProc TriggStopProc se utiliza para almacenar el pre y post-valores de todas las señales de proceso utilizadas.
TriggStopProc y el tipo de datos restartdata se utilizan para conservar los datos para el reinicio después de la
parada del programa o de parada de emergencia de instrucciones de proceso de desarrollo propio.
StepBwdPath StepBwdPath se utiliza para mover el TCP hacia atrás en la trayectoria del robot de una rutina de evento
de reinicio.
funciones
52 3HAC020434-001 Revisión: F
2 Advanced RAPID
En este ejemplo, la señal de salida analógica que controla la cantidad de cola se ajusta para que sea proporcional a la
velocidad.
Cualquier inmersión velocidad por el robot está tiempo compensado de tal manera que la señal de salida analógica
glue_ao se ve afectada 0,04 s antes de que ocurra la caída de velocidad del TCP. Si desbordamiento del valor de salida analógica
¡PROPINA!
Tenga en cuenta que también es posible crear instrucciones de proceso de desarrollo propio con TriggSpeed
En este ejemplo, una señal de salida vuelve a su valor después de una parada de programa o de parada de emergencia. El
3HAC020434-001 Revisión: F 53
2 Advanced RAPID
Continuado
ENDPROC
. . .
PROC supervisar ()
myproc_data TriggStopProc
\ DO1: = do_close_gun, do_close_gun; ENDPROC
resume_signals PROC ()
SI myproc_data.preshadowval = 1 entonces
do_close_gun SetDO, 1; MÁS
En este ejemplo, el TCP se desplaza hacia atrás 30 mm en 1 segundo, a lo largo de la misma trayectoria que antes del reinicio. El
procedimiento mover hacia atrás se define como una rutina de evento de reinicio.
move_backward PROC ()
StepBwdPath 30, 1;
ENDPROC
54 3HAC020434-001 Revisión: F
2 Advanced RAPID
Propósito
La funcionalidad avanzada de interrupción en RAPID tiene algunas características adicionales, además de las características de interrupción siempre
incluidos en RAPID. Para obtener más información acerca de la funcionalidad básica de interrupción, consulte Manual de referencia técnica -
Estos son algunos ejemplos de aplicaciones de interrupción que Advanced RAPID facilita:
• Generar una interrupción cuando se produce un error, y obtener más información sobre el error.
ReadErrData
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 55
2 Advanced RAPID
Tipos de datos
Esta es una breve descripción de cada tipo de datos en la funcionalidad de interrupción. Para obtener más información, consulte el
respectivo tipo de datos en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
trapdata trapdata representa la información interna relacionada con la interrupción que causó la rutina de
interrupción de corriente para ser ejecutado.
errdomain errdomain se utiliza para especificar un dominio de error. Dependiendo de la naturaleza del error, que se
registra en diferentes dominios.
errtype errtype se utiliza para especificar un tipo de error (error, advertencia de cambio de estado).
Instrucciones
Esta es una breve descripción de cada instrucción en la funcionalidad de interrupción. Para obtener más información,
consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Descripción de instrucciones
iError iError ( Errores de interrupción) se utiliza para ordenar una interrupción que se genera cada vez que se produce un
error.
GetTrapData GetTrapData se utiliza en las rutinas de trampa generados por la instrucción IError.
GetTrapData obtiene toda la información acerca de la interrupción que causó la rutina de interrupción que se
ejecutará.
ReadErrData ReadErrData se utiliza en las rutinas de trampa generados por la instrucción IError.
ReadErrData leer la información obtenida por GetTrapData.
ErrRaise ErrRaise se utiliza para crear un error en el programa y la llamada al gestor de errores de la rutina. ErrRaise
También se puede utilizar en el tratamiento de errores para propagar el error actual para el controlador de
errores de la rutina de llamada.
funciones
© Copyright 2004-2008 ABB. Todos los derechos reservados.
56 3HAC020434-001 Revisión: F
2 Advanced RAPID
En este ejemplo, una rutina de interrupción se llama cuando el valor de la variable persistente mostrador
cambios.
principal PROC ()
. . .
contador: = contador + 1;
. . .
int1 IDelete;
ENDPROC
iroutine1 TRAP
TPWrite "Valor actual del contador ="
\ Num: = contador;
ENDTRAP
interrupción de error
En este ejemplo, una rutina de interrupción se llama cuando se produce un error. La rutina de interrupción determina el dominio de error
. . .
CONECTAR err_interrupt CON trap_err; IError COMMON_ERR,
© Copyright 2004-2008 ABB. Todos los derechos reservados.
TYPE_ERR, err_interrupt;
. . .
a: = 3; b: =
0; c: = a / b;
. . .
err_interrupt IDelete;
. . .
trap_err TRAP
err_data GetTrapData; ReadErrData err_data,
err_domain,
err_number, err_type; SetGO go_err1,
err_domain; SetGO go_err2, err_number;
ENDTRAP
3HAC020434-001 Revisión: F 57
2 Advanced RAPID
Propósito
La funcionalidad de mensaje de usuario se utiliza para configurar los números de error del sistema y facilitar el manejo de
mensajes de error y otros textos para ser presentados en la interfaz de usuario. Estos son algunos ejemplos de aplicaciones:
• Recibe mensajes de usuario desde un archivo de texto de la tabla, lo que simplifica las actualizaciones y traducciones.
• Agregar el número de error del sistema que se utilizará como constantes de recuperación de errores en las instrucciones de levantar y para la
58 3HAC020434-001 Revisión: F
2 Advanced RAPID
Tipos de datos
Instrucciones
Esta es una breve descripción de cada instrucción se utiliza para la funcionalidad de mensajes del usuario. Para obtener más
información, consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Instrucción Descripción
BookErrNo BookErrNo se usa para definir un nuevo número de error del sistema RAPID.
funciones
Esta es una breve descripción de cada función que se utiliza para la funcionalidad de mensaje de usuario. Para obtener más información,
consulte la función correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
TextTabGet TextTabGet se utiliza para obtener el número de tabla de texto de una tabla de texto definido por el usuario.
TextGet TextGet se utiliza para obtener una cadena de texto de los cuadros de texto del sistema.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 59
2 Advanced RAPID
ERR_GLUEFLOW;
ENTONCES
Error: el manejo de
errores
SI ERRNO = ERR_GLUEFLOW ENTONCES
Este ejemplo muestra cómo obtener los mensajes de usuario desde un archivo de tabla de texto. Hay una mesa de texto denominado
text_table_name en un hogar llamado archivo: / idioma / es / text_file.xml. Esta tabla contiene los mensajes de error en Inglés. El
procedimiento install_text se ejecuta en el evento de ENCENDIDO. La primera vez que se ejecuta, se instala el archivo de la tabla de
install_text PROC ()
! Comprueba si ya está instalado text_table_name SI TextTabFreeToUse (
"text_table_name") ENTONCES
! Instalar la tabla desde el archivo INICIO: TextTabInstall /language/en/text_file.xml!
"INICIO: /language/en/text_file.xml"; TERMINARA SI
60 3HAC020434-001 Revisión: F
2 Advanced RAPID
Continuado
ENDPROC
. . .
! Escribir mensaje de error con dos cadenas! De la mesa
text_res_no ErrWrite TextGet (text_res_no, 1),
3HAC020434-001 Revisión: F 61
2 Advanced RAPID
Visión de conjunto
Una tabla de texto se almacena en un archivo XML (cada archivo puede contener un cuadro en una lengua). Esta tabla puede contener cualquier
Esta es una descripción de las etiquetas XML y argumentos utilizados en el archivo de la tabla de texto.
Recurso Representa una tabla de texto. Un archivo sólo puede contener una instancia de recurso.
62 3HAC020434-001 Revisión: F
2 Advanced RAPID
Propósito
La funcionalidad de soporte rápida consiste en rutinas de varios que podrían ser útiles para un programador del robot
3HAC020434-001 Revisión: F 63
2 Advanced RAPID
Tipos de datos
Instrucciones
Esta es una breve descripción de cada instrucción se utiliza para la funcionalidad de apoyo rápido. Para obtener más información,
consulte la instrucción respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Instrucción Descripción
SetSysData SetSysData activa (o cambia el activo corriente) de la herramienta, objeto de trabajo o de carga útil para el
robot.
funciones
Esta es una breve descripción de cada función que se utiliza para la funcionalidad de soporte de RAPID. Para obtener más información,
consulte la función correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
ArgName ArgName se utiliza para obtener el nombre del objeto de datos original para el argumento
actual o los datos actuales.
IsStopStateEvent IsStopStateEvent devuelve información sobre el movimiento del puntero del programa.
64 3HAC020434-001 Revisión: F
2 Advanced RAPID
activar la herramienta
Este es un ejemplo de cómo activar una herramienta cuando el nombre de la herramienta sólo está disponible en una cadena:
En este ejemplo, el nombre original de par1 es descabellada. La salida será "nombre my_nbr discusión con valor de 5".
ArgName (PAR1);
ENDPROC
Este ejemplo se comprueba si el puntero de programa se mueve durante la última parada del programa.
66 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]
Propósito
La opción de interfaz de sensor se utiliza para la comunicación con los sensores externos a través de un canal serie.
El canal serie se puede acceder mediante un conjunto de instrucciones de RAPID que proporcionan la capacidad de leer y escribir los
Una característica de interrupción permite suscripciones en los cambios en los datos del sensor.
¡PROPINA!
La comunicación proporcionada por la interfaz de sensores está integrada en instrucciones de soldadura de arco para el seguimiento de la
costura y el control de adaptación de parámetros de proceso. Estas instrucciones manejan la comunicación y correcciones para usted,
mientras que con la interfaz de sensores de manejar esto por sí mismo. Para más información, ver manual de aplicación - Arco y sensor de
• instrucción utiliza para configurar de interrupción, basado en la entrada desde la interfaz de sensor de serie: IVarValue.
• instrucciones que se utilizan para leer y escribir en y desde un dispositivo conectado a la interfaz de sensor de serie: ReadBlock,
WriteBlock y WriteVar.
enfoque básico
2. Utilizar las interrupciones en el código de RAPID para hacer ajustes de acuerdo a la entrada de la
© Copyright 2004-2008 ABB. Todos los derechos reservados.
sensor. Para un ejemplo, véase Interrumpir la soldadura para ajustar la configuración en la página 70 .
limitaciones
interrumpe con IVarValue sólo es posible utilizar con las instrucciones ArcL, ARCC, CapL
y CAPC. El interruptor Pista debe ser usado. Es decir, el controlador debe estar equipado con RobotWare Arco o
Plataforma de Aplicación continua junto con seguimiento óptico, o con la opción Weldguide.
3HAC020434-001 Revisión: F 67
3 Sensor Interface [628-1]
Visión de conjunto
De interfaz de sensor se comunica con un máximo de dos sensores a través de canales de serie utilizando el protocolo RTP 1.
Esta es una breve descripción de los parámetros utilizados cuando se configura un sensor. Para obtener más información acerca de
Parámetro Descripción
Canal físico El nombre del canal físico que se utilizará para el sensor. Esto se refiere al parámetro Nombre
en el tipo Canal Físico.
Para obtener información sobre cómo configurar un canal físico, consulte Manual de referencia técnica
- Parámetros del sistema.
ejemplo de configuración
Este es un ejemplo de cómo un protocolo de transmisión puede ser configurado para un sensor. Suponemos que
68 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]
Tipos de datos
Instrucciones
Esta es una breve descripción de cada instrucción en la interfaz de sensores. Para obtener más información, vea la instrucción
Descripción de instrucciones
IVarValue IVarVal ( Interrupción Valor de variable) se utiliza para ordenar y permitir una interrupción cuando se cambia el
valor de una variable accede a través de la interfaz de sensor de serie.
ReadBlock ReadBlock se usa para leer un bloque de datos desde un dispositivo conectado a la interfaz de sensor de serie.
Los datos se almacenan en un archivo.
WriteBlock WriteBlock se utiliza para escribir un bloque de datos a un dispositivo conectado a la interfaz de sensor de
serie. Los datos se obtiene de un archivo.
WriteVar WriteVar se utiliza para escribir una variable a un dispositivo conectado a la interfaz de sensor de serie.
funciones
Esta es una breve descripción de cada función en la interfaz de sensores. Para obtener más información, consulte la función
correspondiente del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.
Función Descripción
ReadVar ReadVar se usa para leer una variable de un dispositivo conectado a la interfaz de sensor de serie.
© Copyright 2004-2008 ABB. Todos los derechos reservados.
3HAC020434-001 Revisión: F 69
3 Sensor Interface [628-1]
Este es un ejemplo de un programa de soldadura que se utiliza un sensor. El sensor lee la brecha (en
mm) y se produce una interrupción cada vez que el valor de los cambios del sensor. se utiliza entonces el nuevo valor del sensor para
principal PROC ()
! comenzar a soldar
p1 ArcLStart, v100, adaptSm, adaptWd, fina,
herramienta \ j \ Track: = pista;
70 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]
Continuado
ENDPROC
AdapTrap TRAP
VAR ArrInd num;
! Escalar el valor brecha prima recibida ArrInd: = ArrIndx
(gap_value);
3HAC020434-001 Revisión: F 71
3 Sensor Interface [628-1]
Continuado
En este ejemplo, el sensor está activado y las coordenadas se leen desde el sensor.
72 3HAC020434-001 Revisión: F
Índice
UN L
añadir una tarea de 16 laser1 68
Avanzado 35 RAPID AliasIO 42,
METRO
43 ArgName nombre de
segundo
norte
la funcionalidad de bit 36
BitAnd 37 BitCheck 37 Nombre NORMAL
do
datos comunes 24
configuración de la funcionalidad de tareas
R
45 16 Configurar crean tarea 16
funcionalidad de soporte RAPID 63 ReadBlock
depuración 20 16 24 declaraciones
despachador 29
58 ErrRaise 56 errtype 56
29 STATIC 13 StepBwdPath 52 StrToByte 37
GRAMO
GetDataVal 40
GetNextSym 40
GetTrapData 56
yo
funcionalidad de interrupción 70 55 56
IsStopStateEvent 64
IVarValue 69
3HAC020434-001 Revisión: F 73
Índice
T
13 tarea
Tarea en primer plano 13, los ajustes de
TextTabFreeToUse 59
TextTabGet 59 TextTabInstall 59
herramienta 64
Protocolo de transmisión 68
trapdata 56 TriggSpeed 52
TriggStopProc 52 14 Tipo
TrustLevel 13, 68
T
funcionalidad mensaje de usuario 58
W
a la espera de tareas 27
25 Arranque en caliente 46
WriteCfgData 46 WriteVar 69
74 3HAC020434-001 Revisión: F
3HAC020434-001, Revisión F, en
TEJIDO AB
robótica productos
S-721 68 VÄSTERÅS SUECIA