Вы находитесь на странице: 1из 78

manual de aplicación

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.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

© Copyright 2004-2008 ABB Todos los derechos reservados.

ABB Robotics AB
Productos SE-721 68
Västerås
Suecia
Tabla de contenido

Visión de conjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Documentación del


producto, M2004. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Seguridad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.................................................9

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 Configuración de tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dieciséis


1.2.1 estrategias de depuración para la creación de tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dieciséis

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

1.3 La comunicación entre tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


1.3.1 Las variables persistentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.2 A la espera de otras tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.3 Sincronización entre las tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3.4 El uso de un despachador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.4 Otras cuestiones de programación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


1.4.1 recurso compartido entre tareas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.2 Prueba si la tarea se controla unidad mecánica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.3 taskid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.4.4 evitar bucles pesados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2 Advanced RAPID 35

2.1 Visión general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2 funcionalidad de bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36


2.2.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.3 ejemplo la funcionalidad de bit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.3 funcionalidad de búsqueda de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39


2.3.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.3 Datos ejemplos funcionalidad de búsqueda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.4 señales de E / S Alias ​I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42


2.4.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
© Copyright 2004-2008 ABB. Todos los derechos reservados.

2.4.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43


2.4.3 ejemplo funcionalidad de E / S Alias ​I. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2,5 funcionalidad de configuración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


2.5.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.5.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.5.3 ejemplo funcionalidad de configuración. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

funcionalidad fallo de alimentación 2.6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


2.6.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6.2 componentes rápida y parámetros del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6.3 Poder ejemplo funcionalidad fracaso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

funcionalidad de soporte 2.7 Proceso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


2.7.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.7.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
ejemplos de funcionalidad apoyo 2.7.3 proceso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3HAC020434-001 Revisión: F 3
Tabla de contenido

2,8 funcionalidad de interrupción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55


2.8.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.8.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.8.3 Ejemplos de funcionalidad de interrupción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

funcionalidad mensaje de usuario 2.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58


2.9.1 Descripción general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.9.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.9.3 usuario ejemplos de funcionalidad mensaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.9.4 archivos de la tabla de texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

2,10 funcionalidad de soporte RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63


2.10.1 Generalidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.10.2 componentes de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.10.3 ejemplos funcionalidad de soporte de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sesenta y cinco

3 Sensor Interface [628-1] 67

3.1 Visión general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


3.2 Configuración de sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3 componentes rápidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4 Ejemplos de código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

© Copyright 2004-2008 ABB. Todos los derechos reservados.

4 3HAC020434-001 Revisión: F
Visión de conjunto

Visión de conjunto

Acerca de este manual

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

• De interfaz de sensor (628-1)

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

manual de referencia respectivo.

A quién va dirigido este manual?

Este manual está destinado principalmente para programadores de robots.

Requisitos previos

El lector debe ...

• estar familiarizado con robots industriales y su terminología

• estar familiarizado con el lenguaje de programación RAPID

• estar familiarizado con los parámetros del sistema y cómo configurarlos.

Organización de los capítulos

El manual está organizado en los siguientes capítulos:

Capítulo Contenido

1. Describe la opción multitarea.

2. Describe la funcionalidad de base avanzada de RAPID.

3. Describe la opción de interfaz de sensor.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

referencias

Referencia ID de documento

Manual de referencia técnica - Descripción general de RAPID 3HAC16580-1

Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos 3HAC16581-1

Manual del operador - IRC5 con FlexPendant 3HAC16590-1

Manual de referencia técnica - Parámetros del sistema 3HAC17076-1

manual de aplicación - Arco y sensor de arco 3HAC16591-1

manual de aplicación - la plataforma de aplicación continua 3HAC16584-1

Manual de aplicaciones - MultiMove 3HAC021272-001

continúa en la siguiente página

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:

• Multistop se retira porque es obsoleta


• La explicación de Nivel de confianza se ha mejorado Los cambios en
RAPID avanzada:
• funcionalidad de mensajes del usuario describe el nuevo formato XML para archivos de la tabla de texto.

segundo Se agregó información en la interfaz de sensor capítulo.

do Los cambios en el uso de las variables persistentes en el capítulo multitarea.

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.

correcciones menores hechas.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

6 3HAC020434-001 Revisión: F
Documentación del producto, M2004

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

• La instalación y puesta en servicio (descripciones de la instalación mecánica, las conexiones eléctricas)

• Mantenimiento (descripciones de todos los procedimientos de mantenimiento preventivo indicación de sus intervalos)

• Reparación (descripciones de todos los procedimientos de reparación recomendados, incluyendo repuestos)

• Procedimientos adicionales, si los hay (calibración, desmantelamiento)

• Información de referencia (números de artículo para la documentación mencionadas en el Manual del producto, procedimientos, listas

de herramientas, normas de seguridad)

• Lista de

• Láminas o vistas ampliadas

• diagramas de circuitos

manuales de referencia Técnicas

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.

funciones y tipos de datos.

• 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

Las aplicaciones específicas (por ejemplo opciones de software o hardware) se describen en

manuales de aplicación. Un manual de aplicación puede describir una o varias aplicaciones. Un manual de

aplicaciones contiene información sobre:

• El propósito de la aplicación (lo que hace y cuando es útil)

• ¿Qué se incluye (por ejemplo cables, tableros I / O, instrucciones de RAPID, parámetros del sistema, CD con el

software de PC)

• Cómo utilizar la aplicación

• Ejemplos de cómo utilizar la aplicación

continúa en la siguiente página

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

células de producción, programadores y tiradores de problemas. El grupo de manuales incluye:

• información de seguridad de emergencia

• Indicaciones generales de seguridad

• Empezar, el IRC5

• IRC5 con FlexPendant

• RobotStudio

• Introducción a RAPID

• Solución de problemas, para el controlador y el robot

© Copyright 2004-2008 ABB. Todos los derechos reservados.

8 3HAC020434-001 Revisión: F
seguridad
La

La seguridad

Seguridad del personal

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

activado por una señal externa que resulta en un movimiento inesperado.

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

Manual del operador - IRC5 con FlexPendant.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

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.1.1. Visión de conjunto

1 Multitasking [623-1]

1.1 Introducción

1.1.1. Visión de conjunto

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

ejecuten en paralelo con el programa principal:

• supervisión continua de las señales, incluso si el programa principal se ha detenido. Esto puede, en algunos casos asumir el

trabajo de un PLC. Sin embargo, el tiempo de respuesta no coincidirá con el de un PLC.

• La entrada del operador de la unidad FlexPendant mientras el robot está funcionando.

• Control y activación / desactivación de un equipo externo.

Descripción básica

Hasta 20 tareas se pueden ejecutar al mismo tiempo.

Cada tarea consiste en un programa (con varios módulos de programa) y varios módulos del sistema. Los módulos

son locales en la tarea respectiva.

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.

de manejo de eventos y rutinas se activan sólo en sus propios sistema de tarea.

Que esta incluido

La opción RobotWare multitarea le da acceso a:

• la posibilidad de ejecutar hasta 20 programas en paralelo (uno por cada tarea)

• los parámetros del sistema: el tipo Tarea y todos sus parámetros

• los tipos de datos: taskid, syncident y Tareas

• la instrucción: WaitSyncTask

• Las funciones: TestAndSet, TaskRunMec y TaskRunRob

continúa en la siguiente página

3HAC020434-001 Revisión: F 11
1 Multitasking [623-1]

1.1.1. Visión de conjunto

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

tareas en la página 16 y componentes RAPID en la página 15 .

1. Definir las tareas que necesita.

2. Escribir código de RAPID para cada tarea.

3. Especifique qué módulos para cargar en cada tarea.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

12 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.1.2. Los parámetros del sistema

1.1.2. Los parámetros del sistema

Acerca de los parámetros del sistema

Esta es una breve descripción de cada parámetro en multitarea. Para obtener más información, véase el parámetro respectivo

en Manual de referencia técnica - Parámetros del sistema.

Tarea

Estos parámetros pertenece al tipo Tarea en el tema Controlador.

Parámetro Descripción

Tarea El nombre de la tarea.


Tenga en cuenta que el nombre de la tarea debe ser único. Esto significa que no puede tener el mismo
nombre que la unidad mecánica, y ninguna variable en el programa de RAPID pueden tener el mismo
nombre.

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.

Tarea en primer Se utiliza para establecer prioridades entre las tareas.

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.

Tipo Controla el arranque / parada y el comportamiento de reinicio del sistema:

• NORMAL - El programa de trabajo se inicia manualmente y se detuvo (por ejemplo, desde el


FlexPendant). La tarea se detiene en la parada de emergencia.

• 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.

• SEMISTATIC - El programa de trabajo se reinicia desde el principio en el arranque en caliente.


El programa de la tarea que normalmente no se detiene por el FlexPendant o de parada de
emergencia. Una tarea que controla una unidad mecánica debe ser del tipo NORMAL.

Entrada principal El nombre de la rutina de inicio para el programa de la tarea.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

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

continúa en la siguiente página

3HAC020434-001 Revisión: F 13
1 Multitasking [623-1]

1.1.2. Los parámetros del sistema

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.

• NoSafety - Sólo el programa de esta tarea se detendrá.

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.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

14 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.1.3. componentes RAPID

1.1.3. componentes RAPID

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

datos en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.

Tipo de datos Descripción

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

respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.

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

del Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.

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

con el indicador y TestAndSet en la página 31 .

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 .

TaskRunRob Compruebe si el programa de la tarea controla un robot con TCP.


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]

1.2.1. estrategias de depuración para la creación de tareas

configuración de la tarea 1.2

1.2.1. estrategias de depuración para la creación de tareas

¡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

Esta precaución, al añadir una nueva tarea a su sistema.

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.

2. Ajuste el parámetro Tipo A normal.


Esto hará que sea más fácil para crear y probar los módulos en la tarea.

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.

Realizar cambios en el programa de trabajo


© Copyright 2004-2008 ABB. Todos los derechos reservados.

Esta precaución, al editar un programa en una tarea existente con Tipo establece como Estática o SEMISTATIC.

Acción

1. Cambie el parámetro del sistema Nivel de confianza NoSafety.

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é

tareas que comienzan con el comienzo de la página 20 .

5. Pulse el botón STOP para detener la estática seleccionada y tareas SEMISTATIC.

6. Seleccionar el menú ABB> Editor de programas.


Las tareas estáticas y SEMISTATIC son ahora también se puede editar.

Continúa en la página siguiente

dieciséis 3HAC020434-001 Revisión: F


1 Multitasking [623-1]

1.2.1. estrategias de depuración para la creación de tareas

Continuado

Acción

7. Cambio, probar y guardar los módulos.

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).

10. Reiniciar el sistema.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 17
1 Multitasking [623-1]

1.2.2. prioridades

1.2.2. prioridades

¿Cómo funcionan las 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

otra tarea, utilice el parámetro Tarea en primer plano.

Ejemplo de prioridades

Se han usado 6 tareas, con Tarea en primer plano configurar como se muestra en la siguiente tabla.

Nombre de la tarea Tarea en primer plano

PRINCIPAL

Back1 PRINCIPAL

back2 Back1

back3 Back1

SUP1

SUP2 SUP1

La estructura de prioridad será el siguiente aspecto:

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.

cada (Caso 2 en la figura más abajo).

Si ambos programas principal tarea y Back1 están inactivos, los programas de Back2, back3 y SUP1 se turnan en la

ejecución de una instrucción cada uno (caso 3 en la figura más abajo).

en0300000479

18 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.2.3. Configuración de panel de tareas

1.2.3. Configuración de panel de tareas

Propósito de la configuración del panel de tareas

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.

Permitir la selección de tareas estáticas y SEMISTATIC en el panel de tareas

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]

1.2.4. Seleccionar qué tareas para iniciar con el botón START

1.2.4. Seleccionar qué tareas para iniciar con el botón START

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.

Configuración de panel de tareas

Los ajustes del panel de tareas se encuentra tocando la TEJIDO menú, seguido de Panel de control, FlexPendant y Tarea

ajustes del panel.

Cómo seleccionar tareas


© Copyright 2004-2008 ABB. Todos los derechos reservados.

Siga estas instrucciones para seleccionar cuáles de las tareas se inició con el botón START.

Acción

1. Ajuste el controlador al modo manual.

Continúa en la página siguiente

20 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.2.4. Seleccionar qué tareas para iniciar con el botón START

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

tareas estáticas y con SEMISTATIC

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.

Restablecer la configuración de depuración en modo manual

Siga estas instrucciones para reanudar el modo manual de ejecución normal.

Acción
© Copyright 2004-2008 ABB. Todos los derechos reservados.

1. Seleccionar Solo las tareas normales en el Tarea ajustes del panel.

2. Pulse el botón START.


Todo estático y SEMISTATIC se ejecutará de forma continua y no ser detenido por el botón STOP o de parada de
emergencia.

continúa en la siguiente página

3HAC020434-001 Revisión: F 21
1 Multitasking [623-1]

1.2.4. Seleccionar qué tareas para iniciar con el botón START

Continuado

Cambia al modo automático

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

el panel de tareas se iniciarán por el botón START.

¡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.

El reinicio del controlador

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

y luego se ejecutan continuamente.

Deseleccionar tarea en el modo sincronizado

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

principal o de una rutina.

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

es posible, no es posible cambiar al modo automático.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

22 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.3.1. Las variables persistentes

1.3 La comunicación entre tareas

1.3.1. Las variables persistentes

Acerca de las variables persistentes

Para compartir datos entre tareas, utilizar variables persistentes.

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

esto, restablezca la variable persistente directamente después de la comunicación.

Ejemplo con la variable persistente

En este ejemplo, las variables persistentes startsync y stringtosend se accede por ambas tareas, y por lo tanto puede ser

utilizado para la comunicación entre los programas de trabajo.

programa de la tarea principal:

MÓDULO modulo1
PERS bool startsync: = FALSE; PERS cadena
stringtosend: = ""; principal PROC ()

stringtosend: = "esta es una prueba"; startsync: =


ENDMODULE ENDPROC TRUE

Antecedentes programa de la tarea:

MÓDULO modulo2
© Copyright 2004-2008 ABB. Todos los derechos reservados.

PERS bool startsync; stringtosend PERS


cadena; principal PROC ()

startsync WaitUntil;
SI stringtosend = "esto es una prueba" ENTONCES
. . .
TERMINARA SI

! Restablecer las variables persistentes


startsync: = false; stringtosend: = "";
ENDMODULE ENDPROC

continúa en la siguiente página

3HAC020434-001 Revisión: F 23
1 Multitasking [623-1]

1.3.1. Las variables persistentes

Continuado

Módulo de datos común

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.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

24 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.3.2. A la espera de otras tareas

1.3.2. A la espera de otras tareas

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

necesitan saber lo que otros están haciendo 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

variables persistentes se utilizan junto con las instrucciones Esperar hasta o

MIENTRAS.

Si la instrucción Esperar hasta se utiliza, se sondeará internamente cada 100 ms.

¡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

resulta en la pérdida de contacto con el FlexPendant.

ejemplo de votación

programa de la tarea principal:

MÓDULO modulo1
PERS bool startsync: = FALSE; principal
PROC ()
startsync: = TRUE;
. . .
ENDMODULE

ENDPROC

Antecedentes programa de la tarea:

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

rápida y sin la carga de trabajo causada por votación.

El inconveniente es que el código ejecutado después de la interrupción debe ser colocado en una rutina de interrupción.

continúa en la siguiente página

3HAC020434-001 Revisión: F 25
1 Multitasking [623-1]

1.3.2. A la espera de otras tareas

Continuado

ejemplo de interrupción

programa de la tarea principal:

MÓDULO modulo1
principal PROC ()

SetDO do1,1;
. . .
ENDMODULE

ENDPROC

Antecedentes programa de la tarea:

MÓDULO modulo2
intnum VAR intno1;

principal PROC ()

CONECTAR intno1 CON wait_trap; ISignalDO


DO1, 1, intno1; Mientras que la verdadera DO

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

© Copyright 2004-2008 ABB. Todos los derechos reservados.

26 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.3.3. Sincronización entre las tareas

1.3.3. Sincronización entre las tareas

Sincronización mediante WaitSyncTask

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

se realiza con un objeto y listo para recibir el nuevo valor.

programa de la tarea principal:

MÓDULO modulo1
PERS pos object_position: = [0,0,0]; PERS tareas task_list {2}: = [[ "MAIN"], [
"Back1"]]; VAR sync1 syncident;

principal PROC ()

la posición pos VAR; Mientras que la

verdadera DO

! Espera para el cálculo del próximo object_position WaitSyncTask sync1,


task_list; posición: = object_position; ! Llamada de rutina para manejar
handle_object objeto (posición); ENDWHILE ENDPROC
© Copyright 2004-2008 ABB. Todos los derechos reservados.

PROC handle_object (posición pos)


. . .
ENDMODULE

ENDPROC

continúa en la siguiente página

3HAC020434-001 Revisión: F 27
1 Multitasking [623-1]

1.3.3. Sincronización entre las tareas

Continuado

Antecedentes programa de la tarea:

MÓDULO modulo2
PERS pos object_position: = [0,0,0]; PERS tareas task_list {2}: = [[ "MAIN"], [
"Back1"]]; VAR sync1 syncident;

principal PROC ()

Mientras que la verdadera DO

! Llamada de rutina para calcular calculate_position object_position;

! Espera para la manipulación de objeto actual WaitSyncTask


sync1, task_list; ENDWHILE ENDPROC

calculate_position PROC ()
. . .
object_position: = ... ENDPROC
ENDMODULE

© Copyright 2004-2008 ABB. Todos los derechos reservados.

28 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.3.4. El uso de un despachador

1.3.4. El uso de un despachador

¿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

información sobre qué hacer.

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.

programa de la tarea principal:

MÓDULO modulo1
routine_string PERS cadena: = "";

principal PROC ()

! Llame clean_gun en el fondo routine_string tarea: =


"clean_gun"; SetDO do5,1; do5,0 WaitDO;

! Llame routine1 en el fondo routine_string tarea: =


"routine1"; SetDO do5,1; do5,0 WaitDO;

. . .
ENDMODULE

ENDPROC
© Copyright 2004-2008 ABB. Todos los derechos reservados.

Antecedentes programa de la tarea:

MÓDULO modulo2
routine_string PERS cadena: = "";

principal PROC ()

do5,1 WaitDO; %
Routine_string%; SetDO
do5,0; ENDPROC

clean_gun PROC ()
. . .

continúa en la siguiente página

3HAC020434-001 Revisión: F 29
1 Multitasking [623-1]

1.3.4. El uso de un despachador

Continuado

ENDPROC

routine1 PROC ()
. . .
ENDMODULE

ENDPROC

© Copyright 2004-2008 ABB. Todos los derechos reservados.

30 3HAC020434-001 Revisión: F
1 Multitasking [623-1]

1.4.1. recurso compartido entre tareas

1.4 Otras cuestiones de programación

1.4.1. recurso compartido entre tareas

Bandera que indica los recursos ocupados

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 true y devuelve true. De lo contrario, devolverá falso.

Ejemplo con el indicador y TestAndSet

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.

programa de la tarea principal:

PERS bool tproutine_inuse: = FALSE;


. . .
WaitUntil TestAndSet (tproutine_inuse); TPWrite "Primera línea
de MAIN"; TPWrite "Segunda línea de MAIN"; TPWrite "Tercera
línea de MAIN"; tproutine_inuse: = FALSE;

Antecedentes programa de la tarea:

PERS bool tproutine_inuse: = FALSE;


© Copyright 2004-2008 ABB. Todos los derechos reservados.

. . .
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]

1.4.2. Prueba si la tarea se controla unidad mecánica

1.4.2. Prueba si la tarea se controla unidad mecánica

Dos funciones para investigar

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

de las unidades mecánicas, consulte Manual de aplicaciones - MultiMove.

¡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 .

Ejemplo con TaskRunMec y TaskRunRob

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

Si la tarea controla un robot MaxExtSpeed: =


MaxRobSpeed ​(); MÁS

Si la tarea controla otra unidad mecánica que MaxExtSpeed ​robot: = 5000;


ENDIF ENDIF

© Copyright 2004-2008 ABB. Todos los derechos reservados.

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, el nombre de la variable de la tarea principal es MAINId.

ejemplo de código

En este ejemplo, el módulo de PART_A se guarda en la tarea Back1, aunque el Salvar


instrucción se ejecuta en otra tarea.

BACK1Id es una variable de tipo taskid que se declara automáticamente por el sistema.

Guardar \ TaskRef: = BACK1Id, "PART_A"


\ FilePath: = "INICIO: /DOORDIR/PART_A.MOD";
© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 33
1 Multitasking [623-1]

1.4.4. Evitar bucles pesados

1.4.4. Evitar bucles pesados

las tareas de fondo en bucle continuo,

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

ordenador y hacer que el controlador no puede manejar las otras tareas.

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

los ordenadores con un bucle sin hacer nada.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

34 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.1. Visión de conjunto

2 Advanced RAPID
2.1. Visión de conjunto

Acerca de Advanced RAPID

La funcionalidad básica de RobotWare avanzada RAPID está dirigido a programadores de robots que desarrollan aplicaciones que

requieren una funcionalidad avanzada.

Avanzada RAPID incluye muchos tipos diferentes de funcionalidad, que se pueden dividir en los siguientes grupos:

grupo de funcionalidad Descripción

la funcionalidad de bit operaciones bit a bit en un byte.

la funcionalidad de búsqueda de datos Buscar y obtener / fijar objetos de datos (por ejemplo, variables).

funcionalidad Alias ​I / O Dar señal de un nombre de alias opcional.

funcionalidad de configuración Obtener / parámetros del sistema establecidos.

funcionalidad fallo de alimentación Restaurar señales después de un apagón.

la funcionalidad de soporte de procesos Útil para crear aplicaciones de proceso.

funcionalidad de interrupción Más funcionalidad de interrupción que incluye en funcionalidad


de base RobotWare.

funcionalidad de mensajes del usuario Los mensajes de error y otros textos.

funcionalidad apoyo rápido Varios de apoyo para el programador.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 35
2 Advanced RAPID

2.2.1. Visión de conjunto

funcionalidad 2,2 Bit

2.2.1. Visión de conjunto

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

la comunicación o grupo de señales digitales en serie.

Que esta incluido

la funcionalidad de bit incluye:

• el tipo de datos byte

• Instrucciones utilizadas establecen un valor de bit: BitSet y BitClear

• función que se utiliza para obtener un valor de bit: BitCheck

• funciones que se utilizan para realizar operaciones lógicas en un byte: BitAnd, BitOr, BITXOR BitNeg, BitLSh y

BitRSh

© Copyright 2004-2008 ABB. Todos los derechos reservados.

36 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.2.2. componentes RAPID

2.2.2. componentes 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.

Tipo de datos Descripción

byte El tipo de datos byte representar un valor decimal entre 0 y 255.

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

modo bit lógico sobre tipos de datos byte.

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,

StrToByte y ByteToStr, se utilizan a menudo junto con la funcionalidad de bit.

3HAC020434-001 Revisión: F 37
2 Advanced RAPID

2.2.3. ejemplo la funcionalidad de bit

2.2.3. ejemplo la funcionalidad de bit

Código de programa

CONST parity_bit num: = 8;

! Conjunto datos1 a datos1 00100110


VAR byte: = 38;

! Conjunto data2 a 00.100.010 VAR


data2 bytes: = 34;

VAR datos3 bytes;

! Set datos3 a 00.100.010 datos3: = BitAnd


(datos1, datos2);

! Set datos3 a datos3 00100110: = BitOr (datos1,


datos2);

! Set datos3 a datos3 00000100: = BITXOR


(datos1, datos2);

! Set datos3 a 11.011.001 datos3: =


BitNeg (datos1);

! Set datos3 a 10.011.000 datos3: = BitLSh


(datos1, 2);

! Set datos3 a 00.010.011 datos3: = BitRSh


(datos1, 1);

! Set datos1 a 10.100.110 BitSet datos1,


parity_bit;
© Copyright 2004-2008 ABB. Todos los derechos reservados.

! Set datos1 a 00100110 BitClear datos1,


parity_bit;

Si parity_bit es 0, lo ponen a 1 SI BitCheck (datos1, parity_bit) = False


Then
datos1 BitSet, parity_bit; TERMINARA SI

38 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.3.1. Visión de conjunto

2.3 funcionalidad de búsqueda de datos

2.3.1. Visión de conjunto

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.

Estos son algunos ejemplos de aplicaciones para la funcionalidad de búsqueda de datos:

• Establecer un valor a una variable, cuando el nombre de la variable sólo está disponible en una cadena.

• Una lista de todas las variables de un tipo determinado.

• Establecer un nuevo valor para un conjunto de variables similares con nombres similares.

Que esta incluido

la funcionalidad de búsqueda de datos incluye:

• el tipo de datos datapos

• instrucciones utilizadas para encontrar un conjunto de objetos de datos y obtener o establecer sus valores: SetDataSearch,

GetDataVal, SetDataVal y SetAllDataVal

• una función para la que atraviesa el resultado de la búsqueda: GetNextSym


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 39
2 Advanced RAPID

2.3.2. componentes RAPID

2.3.2. componentes 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.

Tipo de datos Descripción

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

SetDataSearch SetDataSearch se utiliza junto con GetNextSym para recuperar datos


Objetos del sistema.

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

que coincide con la gramática dada.

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.

GetNextSym GetNextSym ( Obtener siguiente símbolo) se utiliza junto con SetDataSearch a


recuperar objetos de datos del sistema.

40 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.3.3. ejemplos de funcionalidad de búsqueda de datos

2.3.3. ejemplos de funcionalidad de búsqueda de datos

Establecer variable desconocida

Este es un ejemplo de cómo establecer el valor de una variable cuando el nombre de la variable se desconoce la hora de

programar, y sólo se dispensará en una cadena.

VAR mi_cadena cadena; VAR my_number


num; VAR num nuevo_valor: = 10;
mi_cadena: = "my_number";

! Establecer valor a 10 para la variable especificada por mi_cadena mi_cadena


SetDataVal, nuevo_valor;

Restablecer una gama de variables

Este es un ejemplo donde todas las variables numéricas que comienzan con "mi" se pone a 0.

mi_cadena cadena VAR: = "mi *."; VAR num


zerovar: = 0;
SetAllDataVal "num" \ objeto: = mi_cadena, zerovar;

Lista / set ciertas variables

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.

bloque datapos VAR; nombre


de la cadena VAR; VAR
valuevar num; VAR num
zerovar: = 0;

! Búsqueda de todas las variables que empiezan num! Con "mi"


en el módulo "mimodelo"
SetDataSearch "num" \ objeto: = "mi *" \ InMod: = "mimodelo";

! Bucle a través de los resultados de búsqueda, mientras

GetNextSym (nombre, bloque) DO


© Copyright 2004-2008 ABB. Todos los derechos reservados.

Leer el valor de cada variable de nombre que se encuentra


GetDataVal \ Bloquear: = bloque, valuevar;

! Anote el nombre y el valor para cada nombre de variable que se encuentra

TPWrite + "=" \ Num: = valuevar;

! Establecer el valor a 0 para cada variables encontradas nombre


SetDataVal \ Bloquear: = bloque, zerovar; ENDWHILE

3HAC020434-001 Revisión: F 41
2 Advanced RAPID

2.4.1. Visión de conjunto

2.4 señales Alias ​de E / S

2.4.1. Visión de conjunto

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

una señal configurada.

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.

Que esta incluido

funcionalidad Alias ​I / O consta de la instrucción AliasIO.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

42 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.4.2. componentes RAPID

2.4.2. componentes RAPID

Tipos de datos

No hay tipos de datos para la funcionalidad de alias de E / S.

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

No hay funciones para la funcionalidad de alias de E / S.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 43
2 Advanced RAPID

2.4.3. Alias ​I / O ejemplo funcionalidad

2.4.3. Alias ​I / O ejemplo funcionalidad

Asignar nombre de alias para señalar

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.

La rutina prog_start está conectado al evento START.

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.

VAR alias_do signaldo; prog_start


PROC ()
config_do AliasIO, alias_do; ENDPROC

© Copyright 2004-2008 ABB. Todos los derechos reservados.

44 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.5.1. Visión de conjunto

2,5 funcionalidad de configuración

2.5.1. Visión de conjunto

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.

Que esta incluido

funcionalidad de configuración incluye las instrucciones: ReadCfgData, WriteCfgData y


Arranque en caliente
© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 45
2 Advanced RAPID

2.5.2. componentes RAPID

2.5.2. componentes RAPID

Tipos de datos

No hay tipos de datos para la funcionalidad de configuración.

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

cambiar los parámetros del sistema con la instrucción

WriteCfgData.

funciones

No hay funciones para la funcionalidad de configuración.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

46 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.5.3. ejemplo funcionalidad de configuración

2.5.3. ejemplo funcionalidad de configuración

Manipular los parámetros del sistema

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

nuevo. Para realizar este cambio tenga efecto, el controlador se reinicia.

num VAR old_offset; VAR


new_offset num;

ReadCfgData "/ MOC / MOTOR_CALIB / rob1_1",


"Cal_offset", old_offset; new_offset: = old_offset + (0,2 / 1000);
WriteCfgData "/ MOC / MOTOR_CALIB / rob1_1",

"Cal_offset", new_offset; Arranque en


caliente;
© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 47
2 Advanced RAPID

2.6.1. Visión de conjunto

funcionalidad insuficiencia 2.6 Potencia

2.6.1. Visión de conjunto

¡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

incluso sin la funcionalidad de base avanzada de RAPID.

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

poder durante un movimiento de trayectoria.

Que esta incluido

La funcionalidad de fallo de alimentación incluye una función que comprueba camino interrumpido:

PFRestart

© Copyright 2004-2008 ABB. Todos los derechos reservados.

48 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.6.2. componentes rápida y parámetros del sistema

2.6.2. componentes rápida y parámetros del sistema

Tipos de datos

No hay tipos de datos en la funcionalidad de fallo de alimentación.

Instrucciones

No hay instrucciones en la funcionalidad de fallo de alimentación.

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.

Los parámetros del sistema

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

2.6.3. ejemplo funcionalidad fallo de alimentación

2.6.3. ejemplo funcionalidad fallo de alimentación

Prueba para la trayectoria interrumpida

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

decir, cuando el robot se movía).

! Prueba si se interrumpió el trayecto SI


PFRestart () = cierto, entonces
SetDO do5,1; MÁS

SetDO do5,0;

TERMINARA SI

© Copyright 2004-2008 ABB. Todos los derechos reservados.

50 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.7.1. Visión de conjunto

funcionalidad de soporte 2.7 Proceso

2.7.1. Visión de conjunto

Propósito

funcionalidad de soporte proceso proporciona algunas instrucciones de RAPID que pueden ser útiles en la creación de aplicaciones

de proceso. Ejemplos de su uso son:

• señales de salida analógicas, utilizados en la solicitud de proceso continuo, se pueden configurar para ser proporcional a la

velocidad del robot TCP.

• Una aplicación de proceso continuo que se detuvo con parada del programa o de parada de emergencia se puede continuar

desde donde se detuvo.

Que esta incluido

La funcionalidad de soporte proceso incluye:

• el tipo de datos restartdata

• instrucciones para el ajuste de la señal de salida analógica: TriggSpeed

• instrucciones utilizadas en conexión con el reinicio: TriggStopProc y StepBwdPath

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

2.7.2. componentes RAPID

2.7.2. componentes 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.

Tipo de datos Descripción

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

No hay funciones para la funcionalidad de soporte de procesos.


© Copyright 2004-2008 ABB. Todos los derechos reservados.

52 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.7.3. ejemplos de funcionalidad de apoyo Proceso

2.7.3. ejemplos de funcionalidad de apoyo Proceso

Señal proporcional a la velocidad

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

lógico calculado de glue_ao, la señal de salida digital glue_err se establece.

VAR glueflow triggdata;

! El flujo de pegamento se establece en valor de escala de 0,8! 0,05 s

antes del punto p1


TriggSpeed ​glueflow, 0, 0,05, glue_ao, 0,8
\ DipLag =: 0,04, \ ErrDO: = glue_err; p1 TriggL, v500,
glueflow, z50, gun1;

! El flujo de pegamento se establece en valor de escala de 1 10 mm


más 0,05 s antes del punto p2 glueflow TriggSpeed, 10, 0,05, glue_ao,
1!; p2 TriggL, v500, glueflow, z10, gun1;

! Los extremos de flujo de pegamento (valor de escala 0)! 0,05

s antes del punto p3

TriggSpeed ​glueflow, 0, 0,05, glue_ao, 0; p3 TriggL, v500, glueflow,


z50, gun1;

¡PROPINA!

Tenga en cuenta que también es posible crear instrucciones de proceso de desarrollo propio con TriggSpeed

utilizando el NOSTEPIN concepto de rutina.

Reanudará después de las señales de parada

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

procedimiento supervisar se define como una ENCENDIDO rutina de evento y resume_signals


© Copyright 2004-2008 ABB. Todos los derechos reservados.

como una rutina de evento de reinicio.

PERS restartdata myproc_data: =


[FALSE, FALSE, 0,0,0,0,0,0,0,0,0,0,0,0,0];
. . .
myproc PROC ()
p1 MoveJ, vmax, fina, my_gun; do_close_gun
SetDO, 1; p2 Movele, v1000, z50, my_gun; p3
Movele, v1000, fina, my_gun; do_close_gun
SetDO, 0;

continúa en la siguiente página

3HAC020434-001 Revisión: F 53
2 Advanced RAPID

2.7.3. ejemplos de funcionalidad de apoyo Proceso

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

do_close_gun SetDO, 0; ENDIF


ENDPROC

Mover hacia atrás TCP

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

© Copyright 2004-2008 ABB. Todos los derechos reservados.

54 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.8.1. Visión de conjunto

2,8 funcionalidad de interrupción

2.8.1. Visión de conjunto

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 -

Descripción general de RAPID.

Estos son algunos ejemplos de aplicaciones de interrupción que Advanced RAPID facilita:

• Generar una interrupción cuando el valor de cambio de la variable persistente.

• Generar una interrupción cuando se produce un error, y obtener más información sobre el error.

Que esta incluido

La funcionalidad avanzada de interrupción en RAPID incluye:

• tipos de datos para las interrupciones de error: trapdata, errdomain y errtype

• instrucciones para generar interrupciones: examen preliminar internacional y iError

• instrucciones para saber más acerca de una interrupción de error: GetTrapData y

ReadErrData
© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 55
2 Advanced RAPID

2.8.2. componentes RAPID

2.8.2. componentes 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.

Tipo de datos Descripción

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

examen preliminar internacional


examen preliminar internacional ( Interrumpir persistente) se utiliza para ordenar una interrupción que se genera cada vez

que se cambia el valor de una variable persistente.

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.

No hay funciones para la funcionalidad de interrupción.

56 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.8.3. ejemplos de funcionalidad de interrupción

2.8.3. ejemplos de funcionalidad de interrupción

Interrumpir variable cambia cuando persistentes

En este ejemplo, una rutina de interrupción se llama cuando el valor de la variable persistente mostrador

cambios.

int1 VAR intnum; counter PERS num:


= 0;

principal PROC ()

CONECTAR int1 CON iroutine1; contador de examen

preliminar internacional, int1;

. . .
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

y el número de error y los comunica a través de señales de salida.

VAR err_interrupt intnum; VAR err_data


trapdata; VAR err_domain errdomain; VAR
err_number num; VAR err_type errtype;

. . .
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

2.9.1. Visión de conjunto

funcionalidad de mensajes del usuario 2.9

2.9.1. Visión de conjunto

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

prueba de controladores de errores.

Que esta incluido

La funcionalidad de mensaje de usuario incluye:

• manual de instrucciones tabla de texto TextTabInstall

• de texto funciones operativas tabla: TextTabFreeToUse, TextTabGet y TextGet

• instrucciones para el manejo número de error: BookErrNo

© Copyright 2004-2008 ABB. Todos los derechos reservados.

58 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.9.2. componentes RAPID

2.9.2. componentes RAPID

Tipos de datos

No hay tipos de datos para la funcionalidad de mensajes del usuario.

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.

TextTabInstall TextTabInstall se utiliza para instalar una tabla de texto en el sistema.

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

TextTabFreeToUse TextTabFreeToUse se utiliza para comprobar si el nombre de la tabla de texto es libre


utilizar (no está ya instalado en el sistema).

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

2.9.3. ejemplos de funcionalidad mensaje de usuario

2.9.3. ejemplos de funcionalidad mensaje de usuario

número de error libro

Este ejemplo muestra cómo agregar un nuevo número de error.

VAR sig1int intnum;

! Introducir un nuevo número de error en un sistema de pegamento. ! Nota: La


nueva variable de error debe ser declarada con el valor -1 ERR_GLUEFLOW
VAR errnum inicial:! = -1;

! Reserve el nuevo número de error del sistema RAPID BookErrNo

ERR_GLUEFLOW;

! Levante error de flujo de pegamento si ED1 = 1 si ED1 = 1

ENTONCES

RAISE ERR_GLUEFLOW; TERMINARA SI

Error: el manejo de
errores
SI ERRNO = ERR_GLUEFLOW ENTONCES

"Error de pegamento" ErrWrite,


"Hay un problema con el flujo de pegamento"; TERMINARA SI

Mensaje de error de archivo de la tabla de texto

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

texto text_file.xml. La próxima vez que se ejecuta, la función


© Copyright 2004-2008 ABB. Todos los derechos reservados.

TextTabFreeToUse devuelve FALSE y la instalación no se repite. La tabla se utiliza a continuación para

obtener mensajes de la interfaz de usuario.

VAR text_res_no num;

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

! Asignar el número de tabla de texto para text_table_name a text_res_no


text_res_no:! = TextTabGet ( "text_table_name");

Continúa en la página siguiente

60 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.9.3. ejemplos de funcionalidad mensaje de usuario

Continuado

ENDPROC

. . .
! Escribir mensaje de error con dos cadenas! De la mesa
text_res_no ErrWrite TextGet (text_res_no, 1),

TextGet (text_res_no, 2);


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 61
2 Advanced RAPID

2.9.4. archivos de la tabla de texto

2.9.4. archivos de la tabla de texto

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

número de cadenas de texto.

Explicación del archivo de la tabla de texto

Esta es una descripción de las etiquetas XML y argumentos utilizados en el archivo de la tabla de texto.

Etiqueta argumento Descripción

Recurso Representa una tabla de texto. Un archivo sólo puede contener una instancia de recurso.

Nombre El nombre de la tabla de texto. Utilizado por la instrucción de RAPID


TextTabGet.

Idioma Código de idioma para el idioma de las cadenas de texto.


Actualmente no se utiliza este argumento. La instrucción de RAPID
TextTabInstall sólo puede manejar textos en inglés.

Texto Representa una cadena de texto.

Nombre el número de la cadena de texto en la tabla.

Valor La cadena de texto que se utilizará.

Comentario Comentarios acerca de la cadena de texto y su uso.

Ejemplo de archivo de la tabla de texto

<? Xml version = "1.0" encoding = "iso-8859-1"?> <Resource name =


"text_table_name" Language = "es">
<Texto Name = "1">
<Valor> Este es un texto que es </ value> <Comentario> La primera parte
de mi texto </ Comment> </ texto> <texto Name = "2">

<Valor> aparece en la interfaz de usuario. </ Value> <Comentario> La segunda


parte de mi texto </ Comment> </ texto> </ resource>
© Copyright 2004-2008 ABB. Todos los derechos reservados.

62 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.10.1. Visión de conjunto

2,10 funcionalidad de soporte RAPID

2.10.1. Visión de conjunto

Propósito

La funcionalidad de soporte rápida consiste en rutinas de varios que podrían ser útiles para un programador del robot

avanzado. Estos son algunos ejemplos de aplicaciones:

• Activar una nueva herramienta, objeto de trabajo o carga útil.

• Averigüe lo que se llama un argumento fuera de la rutina actual.

• Probar si el puntero de programa se ha movido durante la última parada del programa.

Que esta incluido

funcionalidad apoyo rápido incluye:

• instrucciones para la activación de los datos del sistema se especifican: SetSysData

• función que recibe el nombre de objeto de datos original: ArgName

• la función de información sobre el movimiento del puntero del programa: IsStopStateEvent


© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F 63
2 Advanced RAPID

2.10.2. componentes RAPID

2.10.2. componentes RAPID

Tipos de datos

No hay tipos de datos para la funcionalidad de apoyo rápido.

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.

© Copyright 2004-2008 ABB. Todos los derechos reservados.

64 3HAC020434-001 Revisión: F
2 Advanced RAPID

2.10.3. ejemplos funcionalidad de soporte RAPID

2.10.3. ejemplos funcionalidad de soporte RAPID

activar la herramienta

Este es un ejemplo de cómo activar una herramienta conocida:

! Activar Tool1 SetSysData


Tool1;

Este es un ejemplo de cómo activar una herramienta cuando el nombre de la herramienta sólo está disponible en una cadena:

cadena VAR tool_string: = "tool2"; ! Active la herramienta especifica en


tool_string SetSysData tool0 \ ObjectName: = tool_string;

Obtener nombre de argumento

En este ejemplo, el nombre original de par1 es descabellada. La salida será "nombre my_nbr discusión con valor de 5".

VAR num my_nbr: = 5; my_nbr


proc1;

PROC proc1 (num par1)


nombre de la cadena VAR; Nombre: =

ArgName (PAR1);

TPWrite "nombre de argumento '+ nombre +' con el valor"


\ Num: = par1;

ENDPROC

Prueba si el puntero del programa se ha movido

Este ejemplo se comprueba si el puntero de programa se mueve durante la última parada del programa.

SI IsStopStateEvent (\ PPMoved) = cierto, entonces


TPWrite "El puntero de programa se ha movido."; TERMINARA SI
© Copyright 2004-2008 ABB. Todos los derechos reservados.

3HAC020434-001 Revisión: F sesenta y cinco


2 Advanced RAPID

2.10.3. ejemplos funcionalidad de soporte RAPID

© Copyright 2004-2008 ABB. Todos los derechos reservados.

66 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]

3.1. Visión de conjunto

3 Sensor Interface [628-1]


3.1. Visión de conjunto

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

datos del sensor.

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

arco y manual de aplicación - la plataforma de aplicación continua.

Que esta incluido

La opción RobotWare Sensor Interface le da acceso a:

• de instrucciones utiliza para conectarse a un dispositivo sensor: SenDevice.

• 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.

• función para la lectura de un dispositivo conectado a la interfaz de sensor de serie: ReadVar.

enfoque básico

Este es el enfoque general para el uso de la interfaz de sensores.

1. Configurar el sensor. Ver Configuración de sensores en la página 68 .

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]

3.2. Configuración de sensores

3.2. Configuración de sensores

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.

Los dos canales deben ser nombrados "laser1:" y "swg".

Los parámetros del sistema

Esta es una breve descripción de los parámetros utilizados cuando se configura un sensor. Para obtener más información acerca de

los parámetros, consulte Manual de referencia técnica - Parámetros del sistema.

Estos parámetros pertenecen al tipo Protocolo de transmisión en el tema Comunicación.

Parámetro Descripción

Nombre El nombre del protocolo de transmisión. Para un sensor que


tiene que ser "laser1:" o "swg".

Tipo El tipo de protocolo de transmisión. Para un

sensor que tiene que ser "RTP 1".

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

ya existe un canal físico configurado con el nombre de "COM1".

Nombre Tipo Canal físico

laser1: RTP1 COM1

© Copyright 2004-2008 ABB. Todos los derechos reservados.

68 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]

3.3. componentes RAPID

3.3. componentes RAPID

Tipos de datos

No hay tipos de datos para la interfaz de sensores.

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

respectiva en Manual de referencia técnica - RAPID Instrucciones, funciones y tipos de datos.

Descripción de instrucciones

SenDevice SenDevice se utiliza, para conectarse a un dispositivo sensor físico.

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]

3.4. Ejemplos de código

3.4. Ejemplos de código

Interrumpir la soldadura para ajustar las configuraciones

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

determinar la configuración correcta para la tensión, alimentación de alambre y la velocidad.

PERS num LOCAL adptVlt {8}: =


[1,1.2,1.4,1.6,1.8,2,2.2,2.5]; PERS num LOCAL
adptWfd {8}: =
[2,2.2,2.4,2.6,2.8,3,3.2,3.5]; PERS num LOCAL
adptSpd {8}: =
[10,12,14,16,18,20,22,25]; LOCAL GAP_VARIABLE_NO
CONST num: = 11; PERS num gap_value: = 0;

pista PERS trackdata: = [0, FALSE, 150, [0,0,0,0,0,0,0,0,0],


[3,1,5,200,0,0,0]]; VAR intnum
IntAdap;

principal PROC ()

! Configuración de la interrupción. La rutina de interrupción AdapTrap! será llamado


cuando la variable brecha con! número GAP_VARIABLE_NO en la interfaz de
sensor! ha sido cambiado. El nuevo valor será! disponible en la variable gap_value.
CONNECT IntAdap CON AdapTrap;

IVarValue "laser1:", GAP_VARIABLE_NO, gap_value, IntAdap;

! comenzar a soldar
p1 ArcLStart, v100, adaptSm, adaptWd, fina,
herramienta \ j \ Track: = pista;

p2 ArcLEnd, v100, adaptSm, adaptWd, fina,


herramienta \ j \ Track: = pista;
© Copyright 2004-2008 ABB. Todos los derechos reservados.

Continúa en la página siguiente

70 3HAC020434-001 Revisión: F
3 Sensor Interface [628-1]

3.4. Ejemplos de código

Continuado

ENDPROC

AdapTrap TRAP
VAR ArrInd num;
! Escalar el valor brecha prima recibida ArrInd: = ArrIndx
(gap_value);

! Actualización de datos de soldadura activos adaptWd variable! los nuevos datos


de las matrices de parámetros predefinidos. ! El valor del espacio a escala se
utiliza como índice en el! voltaje, velocidad de avance de hilo y matrices.
adaptWd.weld_voltage: = adptVlt {ArrInd}; adaptWd.weld_wirefeed: = adptWfd
{ArrInd}; adaptWd.weld_speed: = adptSpd {ArrInd};

! Solicitar una actualización de los parámetros de soldadura usando! los nuevos


datos en adaptWd ArcRefresh; ENDTRAP

FUNC ArrIndx (valor num)


SI valor <0,5 luego regresar 1; valor ELSEIF <1,0 luego
regresar 2; valor ELSEIF <1,5, luego vuelva 3; valor
ELSEIF <2,0, luego vuelva 4; valor ELSEIF <2.5 a
continuación, volver 5; valor ELSEIF <3,0, luego vuelva
6; valor ELSEIF <3.5 a continuación, volver 7; RETURN
ELSE 8; ENDIF ENDFUNC
© Copyright 2004-2008 ABB. Todos los derechos reservados.

continúa en la siguiente página

3HAC020434-001 Revisión: F 71
3 Sensor Interface [628-1]

3.4. Ejemplos de código

Continuado

posiciones de lectura de sensor

En este ejemplo, el sensor está activado y las coordenadas se leen desde el sensor.

! Definir variables SensorOn números


CONST num: = 6; CONST num Ycoord: =
9; CONST num ZCoord: = 10;

! Definir el CONST matriz de transformación plantear SensorMatrix: = [[100,0,0],


[1,0,0,0]];

SensorPos VAR POS;


RobotPos VAR POS;

! Solicitud de inicio de las mediciones del sensor WriteVar


SensorOn, 1;

! Leer una posición cartesiana de la SensorPos.x sensor: = 0;

SensorPos.y: = ReadVar (Ycoord); SensorPos.z: =


ReadVar (ZCoord);

! Sensor de tope de WriteVar


SensorOn, 0;

! Convertir a las coordenadas del robot


RobotPos: = PoseVect (SensorMatrix, SensorPos);

© Copyright 2004-2008 ABB. Todos los derechos reservados.

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

argumento 64 64 22 Modo entrada principal 13 unidad

automático mecánica 32 MotionTask 14


Multitasking 11

segundo
norte
la funcionalidad de bit 36
​BitAnd 37 BitCheck 37 Nombre NORMAL

BitClear 37 BitLSh 37 68 13 14 NoSafety

BitNeg 37 BitOr 37 BitRSh


37 BitSet 37 BITXOR 37
PAG
BookErrNo 59 byte 37
Ruta 49 de carga útil 64 variables persistentes
ByteToStr 37
23 PFRestart 49 Canal Físico 68 de sondeo 25
prioridades programa funcionalidad de soporte
51 18 proceso de puntero 64 señal proporcional
52

do

datos comunes 24
configuración de la funcionalidad de tareas
R
45 16 Configurar crean tarea 16
funcionalidad de soporte RAPID 63 ReadBlock

69 ReadCfgData 46 ReadErrData 56 ReadVar


re 69 restartdata 52 del curriculum vitae señales 53

la funcionalidad de búsqueda de datos 39 llamada de rutina 29 de protocolo RTP 1 68

datapos 40 Desactivar las tareas de

depuración 20 16 24 declaraciones

despachador 29

No acepte referencias no resueltas 13


S
mi 9 seguridad seleccionar tareas SEMISTATIC

errdomain 56 error 20 13 69 SenDevice sensor de 67

interrumpe 55 mensajes de SetAllDataVal 40 SetDataSearch 40

error 58 Número de error SetDataVal 40 64 SetSysData la creación de

tareas 16 recursos compartidos de señal 31 25,


© Copyright 2004-2008 ABB. Todos los derechos reservados.

58 ErrRaise 56 errtype 56
29 STATIC 13 StepBwdPath 52 StrToByte 37

swg 68 tareas de sincronización 27 syncident 15,

27 SysFail 14 SysHalt 14 SysStop


F parámetros 14 del sistema 13, 45, 49 recursos

FlexPendant 31 del sistema 31

GRAMO

GetDataVal 40
GetNextSym 40
GetTrapData 56

yo

IError 56 de interrupción 25, 69, la

funcionalidad de interrupción 70 55 56

examen preliminar internacional

IsStopStateEvent 64
IVarValue 69

3HAC020434-001 Revisión: F 73
Índice

T
13 tarea
Tarea en primer plano 13, los ajustes de

panel de tareas 18 19 prioridades de las

tareas 18 TaskID 15, 33 TaskRunMec 15,

32 TaskRunRob 15, 32 tareas 11, 15, dieciséis,

20, 27 TestAndSet 15, archivo de la

tabla de texto 31 58 59 TextGet

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

WaitSyncTask 15, 27 WaitUntil

25 Arranque en caliente 46

trabajo objeto 64 WriteBlock 69

WriteCfgData 46 WriteVar 69

© Copyright 2004-2008 ABB. Todos los derechos reservados.

74 3HAC020434-001 Revisión: F
3HAC020434-001, Revisión F, en

TEJIDO AB
robótica productos
S-721 68 VÄSTERÅS SUECIA

Teléfono: +46 (0) 21 344000 Telefax:


+ 46 (0) 21 132 592

Вам также может понравиться