Está en la página 1de 261

Machine Translated by Google

Machine Translated by Google

Tabla de contenido
Prefacio

1 Primeros pasos

2 Conexión al robot

3 interfaz principal

3.1 Descripción general

3.2 Barra de herramientas superior

3.3 Panel de control

4 configuraciones

4.1 Configuraciones básicas

4.2 Configuración de comunicación

4.3 Sistema de coordenadas

4.3.1 Sistema de coordenadas del usuario

4.3.2 Sistema de coordenadas de herramienta

4.4 Cargar parámetros

4.5 Parámetros de movimiento

4.6 Configuración de seguridad

4.6.1 Detección de colisiones

4.6.2 Freno de articulación

4.6.3 Instalación

4.6.4 Sensibilidad

4.6.5 Funciones avanzadas

4.7 Tensión de alimentación (CCBOX)

4.8 Control remoto

4.9 Calibración en casa

4.10 Función del fabricante

5 Monitoreo de E/S

6 Modbus

7 variables globales

8Dobot+

9 Programación

9.1 Dobot en bloque

2
Machine Translated by Google

9.2 Guión

10 proceso

10.1 Reproducción de trayectoria

10.2 Seguimiento del transportador

11 mejores prácticas

Apéndice A Definición del registro Modbus

Apéndice B Comandos Blockly

B.1 Inicio rápido

B.1.1 Controlar el movimiento del robot

B.1.2 Leer y escribir datos de registro Modbus

B.1.3 Transmitir datos mediante comunicación TCP

B.1.4 Paletizar

B.2 Descripción del bloque

B.2.1 Evento

B.2.2 Control

B.2.3 Operador

B.2.4 Cadena

B.2.5 Personalizado

B.2.6 OI

B.2.7 Moción

B.2.8 Configuración avanzada de movimiento

B.2.9 Modbus

B.2.10 TCP

Apéndice C Comandos de script

C.1 Gramática básica de Lua

C.1.1 Variable y tipo de datos

C.1.2 Operador

C.1.3 Control de procesos

C.2 Descripción del comando

C.2.1 Descripción general

C.2.2 Moción

C.2.3 Parámetro de movimiento

C.2.4 Movimiento relativo

C.2.5 OI

3
Machine Translated by Google

C.2.6 TCP/UDP

C.2.7 Modbus

C.2.8 Control del programa

C.2.9 Trayectoria

C.2.10 Visión

C.2.11 Transportador

C.2.12 Piel Segura

4
Machine Translated by Google

Prefacio
Objetivo

Este documento describe las funciones y operaciones de DobotStudio Pro para controlar robots de seis ejes (series CR y Nova), lo cual

es conveniente para que los usuarios comprendan y utilicen completamente el software.

Público objetivo

Este documento está destinado a:

Cliente

Ingeniero de Ventas

Ingeniero de Instalación y Puesta en Marcha

ingeniero de soporte técnico

cambia la historia

Fecha Cambiar Descripción

2024/02/06 Actualización basada en V2.8.0

2023/09/22 Optimizar el contenido de los comandos lua.

2023/05/29 Actualización basada en V2.7.1

2023/05/16 Actualización basada en V2.7.0

2023/01/12 Mejorar las funciones de programación Dobotblockly (V2.6.0)

Mejore las funciones de detección de colisiones, E/S remotas y programación en bloque en el último software
(V2.5.0)
2022/11/30
Agregar mejores
prácticas Agregar descripción sobre los comandos de DobotBlockly y los comandos de script

Ajuste el catálogo y actualice el contenido según el software más reciente (V2.4.0)

2022/10/31
Agregue un apéndice sobre la definición del registro Modbus.
Divida el contenido sobre robots de seis ejes y robots de cuatro ejes en dos documentos
separados.

Cambie el nombre del software como descripción de


DobotStudio Pro Update MG400 de acuerdo con la última interfaz del software, agregue descripción de
2022/03/25 alarma, configuración de parámetros de movimiento, configuración de WiFi, etc.
Agregar descripción sobre robots CR (Capítulo 3)
Eliminar descripción en M1

2020/05/20 el primer lanzamiento

Convenciones de símbolos

Los símbolos que se pueden encontrar en este documento se definen de la siguiente manera:

5
Machine Translated by Google

Símbolo Descripción

Indica un peligro con un alto nivel de riesgo que, si no se evita, podría provocar la
PELIGRO muerte o lesiones graves.

Indica un peligro con un nivel de riesgo medio o bajo que, si no se evita, podría
ADVERTENCIA provocar lesiones leves o moderadas o daños en el brazo del robot.

Indica una situación potencialmente peligrosa que, si no se evita, puede provocar daños
AVISO en el brazo del robot, pérdida de datos o resultados inesperados.

Proporciona información adicional para enfatizar o complementar puntos importantes


NOTA del texto principal.

6
Machine Translated by Google

1 Primeros pasos
DobotStudio Pro es un software de control multifuncional para brazos robóticos desarrollado independientemente por Dobot.

Con una interfaz sencilla, funciones fáciles de usar y gran practicidad, puede ayudarle a dominar rápidamente el

Uso de varios brazos robóticos.

Este documento presenta principalmente cómo utilizar DobotStudio Pro para controlar el brazo robótico de seis ejes (series CR y Nova).

DobotStudio Pro admite los siguientes sistemas operativos:

Win7

Win10

Win11

Instalación de DobotStudio Pro


Por favor visite el sitio web de Dobot para descargar el último paquete de instalación de DobotStudio Pro.

Procedimiento

Paso 1: haga doble clic en el paquete de instalación de DobotStudio Pro. Seleccione un idioma para la instalación. Haga clic en Siguiente.

Paso 2: haga clic en Instalar con un clic o inicie la instalación después de configurar la ruta de instalación en las opciones personalizadas.

7
Machine Translated by Google

Paso 3: Después de la instalación, haga clic en Experimentar ahora para ingresar a DobotStudio Pro.

Guía
Si está utilizando DobotStudio Pro por primera vez, se recomienda leer esta Guía en el siguiente orden.

1. Conexión al robot: conecte DobotStudio Pro al brazo del robot.

2. Interfaz principal: conozca la interfaz principal de DobotStudio Pro y comprenda aproximadamente

funciones de DobotStudio Pro.

3. Configuración: configure el brazo robótico según los requisitos reales. Si el robot está instalado en un interior

modo de montaje en techo o pared o en un ángulo determinado, debe configurar el ángulo de rotación y el ángulo de inclinación

8
Machine Translated by Google

bajo el estado de discapacidad. Consulte Instalación para obtener más detalles.

4. Monitoreo de E/S: conozca la función de monitoreo proporcionada por DobotStudio Pro. Si lo necesitas
instale los complementos finales; consulte Dobot+ para conocer la configuración.

5. Programación/Proceso: Conozca el módulo de programación y proceso de DobotStudio Pro y pruebe


creando tu propio proyecto.
6. Control remoto: después de desarrollar un proyecto, intente ejecutarlo a través del control remoto.

9
Machine Translated by Google

2 Conexión al robot
DobotStudio Pro admite conexión por cable (LAN) e inalámbrica (WiFi) al robot.

NOTA

Si la versión del controlador del robot es inferior a 3.5.4.0, deberá abrir el protocolo SMB1 antes de conectarse

al robot. Consulte (Opcional) Protocolo abierto SMB en este capítulo para obtener más detalles.

Conexión por cable

Conecte un extremo del cable de red a la interfaz LAN del controlador y el otro extremo a la PC.

Cambie la dirección IP de la PC para que esté en el mismo segmento de red que la del controlador. La dirección IP

predeterminada del controlador es 192.168.5.1, que se puede modificar en la configuración de comunicación.

Las diferentes versiones de Windows varían en la modificación de la dirección IP. Esta sección toma Windows 10 como

ejemplo para presentar operaciones específicas.

Paso 1: busque Ver conexiones de red y haga clic en Abrir.

Paso 2: haga clic derecho en Propiedades en la red actualmente conectada. Luego haga doble clic en Protocolo de Internet

versión 4 (TCP/IPv4) en la ventana emergente.

Paso 3: Seleccione Usar la siguiente dirección IP en la página "Protocolo de Internet versión 4 (TCP/IPv4)" y cambie la dirección

IP, la máscara de subred y la puerta de enlace de la PC. Puede cambiar la dirección IP de la PC para que esté en el mismo

segmento de red que la del controlador sin conflictos. La máscara de subred y la puerta de enlace de la PC deben ser las

mismas que las del controlador. Por ejemplo, configure la dirección IP en 192.168.5.100 y la subred
máscara al 255.255.255.0.

10
Machine Translated by Google

Paso 4: inicie DobotStudio Pro. Seleccione un dispositivo y haga clic en Conectar.

Paso 5: Después de la conexión, verá la información emergente en la interfaz de DobotStudio Pro y el estado de la conexión

cambiará a Conectado. Si desea desconectar el robot, haga clic en Conectado.

11
Machine Translated by Google

Conexión inalámbrica
Antes de conectarse al robot, asegúrese de que se haya instalado un módulo WiFi en el controlador.

Paso 1: busque el nombre WiFi del controlador Dobot y conéctelo. El SSID predeterminado de WiFi es "Dobot {Nombre del producto}­

{Número de serie}", donde el número de serie son los dos números de 4 dígitos conectados por "­" en el número S/N del robot (el

código S/N está colocado a la placa de identificación en la base del brazo del robot. Por ejemplo, el SSID predeterminado es

"DobotCR5­4025­0731" para el CR5 con SN "4025­0731"), y la contraseña de WiFi es 1234567890 de forma predeterminada. Puede

modificar el SSID y la contraseña de WIFI en la configuración de Comunicación.

Paso 2: seleccione un robot en la parte superior de la interfaz de DobotStudio Pro y haga clic en Conectar.

Paso 3: Después de la conexión, verá la información emergente en la interfaz de DobotStudio Pro y el estado de la conexión cambiará

a Conectado. Si desea desconectar el robot, haga clic en Conectado.

(Opcional) Abrir protocolo SMB


1. Tomando Windows 10 como ejemplo, busque "Características de Windows" en la barra de tareas y haga clic en Activar
Funciones de Windows activadas o desactivadas.

12
Machine Translated by Google

2. Seleccione Soporte para compartir archivos SMB 1.0/CIFS y haga clic en Aceptar.

13
Machine Translated by Google

14
Machine Translated by Google

3 interfaz principal

3.1 Descripción general

3.2 Barra de herramientas

superior 3.3 Panel de control

15
Machine Translated by Google

3.1 Descripción general

No. Descripción

1 Barra de herramientas superior

2 Muestra los proyectos recientes, en los que puedes hacer clic para abrirlos rápidamente.

3 Funciones principales, incluidas DobotBlockly, Script, Configuración y Proceso

Haga clic en el icono de la barra de herramientas derecha para mostrar u ocultar los paneles correspondientes, incluidos
4 Control, E/S, Modbus, Variable Global y Dobot+. El panel de control se muestra mediante
predeterminado después de que DobotStudio Pro se conecte exitosamente al robot.

dieciséis
Machine Translated by Google

3.2 Barra de herramientas superior

No. Descripción

Haga clic en el icono y aparecerán los siguientes elementos:


Configuración: haga clic para abrir la página de
configuración Idioma: seleccione un
1
idioma Ayuda: acceda a funciones de ayuda, como documentos de ayuda, herramientas de depuración, etc.
Verificar actualizaciones: ver la información de la versión del software Acerca de:
ver los componentes del software

2 Haga clic para regresar a la interfaz principal.

3 Panel de conexión. Consulte Conexión al robot para obtener más detalles.

4 Botón de registro de alarmas. Consulte el registro de alarmas a continuación.

Botón de habilitación. Haga clic para cambiar el estado de habilitación del brazo robótico. Consulte Estado de habilitación
5 para obtener más detalles. El botón es azul en estado deshabilitado, verde en estado habilitado y blanco en estado
de apagado.

Arrastre el control deslizante azul o haga clic en la barra de velocidad para ajustar la relación de velocidad global. La relación
6 de velocidad global es el factor de cálculo de la velocidad de carrera real del brazo robótico. Para conocer el
método de cálculo, consulte Configuración de Jog.

Botón de parada de emergencia. Presione el botón en caso de emergencia y el brazo robótico dejará de funcionar y se
7
apagará. Consulte Botón de parada de emergencia para obtener más detalles.

Registro de alarmas

Si un punto se guarda incorrectamente, por ejemplo, un robot se mueve hacia donde un punto está en una posición limitada o un punto

singular, se activará una alarma. Si se activa una alarma cuando un robot está en ejecución, el icono de alarma

se convierte en . Puede consultar la información de la alarma en la página Alarma.

17
Machine Translated by Google

En este caso, puede hacer doble clic en la información de la alarma para ver la causa y la solución, y hacer clic en **Borrar

Alarma**.

Estado de habilitación

El brazo robótico sólo puede funcionar en el estado habilitado.

Cuando el botón Habilitar es azul (aparecerá ), el brazo robótico está en estado deshabilitado. Haga clic en el botón y

la ventana "Modificación de habilitación de carga" (la coordenada excéntrica de la carga final debe

18
Machine Translated by Google

debe configurarse cuando el eje J6 esté a 0° y el valor de carga no debe exceder el peso de carga máximo permitido del

robot). Después de configurar los parámetros, haga clic en Confirmar modificación para habilitar el robot.

El brazo del robot comienza a moverse ligeramente y luego la luz indicadora de fin se vuelve verde, lo que indica que el brazo del

robot está habilitado. Al mismo tiempo, el botón Habilitar se mueve hacia el lado derecho y el ícono se vuelve

verde ( ) (el signo de exclamación amarillo en la esquina inferior derecha indica que la carga es de 0 kg)

Cuando el botón Habilitar está verde, el brazo robótico está en estado habilitado. Haga clic en el botón y se mostrará un

cuadro de confirmación. Después de su confirmación, el brazo robótico comienza a desactivarse. La luz indicadora al final del

brazo robótico se vuelve azul, lo que indica que el brazo robótico está desactivado. Al mismo tiempo, el botón Habilitar también

se vuelve azul.

Cuando el botón Habilitar parpadea en azul, el robot está en modo de arrastre. En este caso, no puede desactivar el robot ni

controlar su movimiento (ejecutar proyectos, realizar jogging, ejecutar a posturas específicas, etc.) a través del
software.

Botón de parada de emergencia

Una vez que se presiona el botón de parada de emergencia, el brazo robótico dejará de funcionar y se apagará, y el ícono de parada

de emergencia se volverá rojo.

Si necesita habilitar el brazo del robot nuevamente, reinicie el botón de parada de emergencia, encienda el robot y
luego habilítelo.

19
Machine Translated by Google

NOTA

Si se presiona el botón físico de parada de emergencia, el icono del botón de parada de emergencia en el

software no cambiará. Antes de borrar la alarma, primero debe restablecer el botón físico de parada de emergencia

(generalmente girando el botón en el sentido de las agujas del reloj).

20
Machine Translated by Google

3.3 Panel de control

No. Descripción

1 Haga clic para ocultar el panel. Puede hacer clic en Control en la barra de herramientas derecha para mostrar el panel.

2 Mantenga presionado el botón para mover el robot a su postura inicial, que se puede configurar en Configuración.

3 Haga clic para abrir la página de Configuración .

4 Haga clic para plegar el panel de control y haga clic nuevamente para desplegar el panel.

Haga clic en la lista desplegable a la derecha de Sistema de coordenadas del usuario o Sistema de coordenadas de la herramienta.
5
para seleccionar un índice del sistema de coordenadas que necesita utilizar.

Muestra el movimiento del brazo del robot en tiempo real cuando estás trotando o ejecutando el
6
brazo robótico.

Seleccione el modo de movimiento del robot.

Jog: el robot sigue moviéndose cuando mantienes presionado el botón de jog y se detiene.

21
Machine Translated by Google

moviéndose cuando se suelta el botón de avance.


Paso: el valor específico (como 0,1) indica que el robot se mueve esta distancia cuando presiona el
7 botón de avance. Pulsar prolongadamente el botón de avance puede hacer que el robot se mueva
continuamente. En el sistema de coordenadas cartesiano, la unidad de este valor es mm y 0,1 representa
un desplazamiento de 0,1 mm por cada paso. En el sistema de coordenadas conjuntas, la unidad de
este valor es ° y 0,1 representa un desplazamiento de 0,1 ° para cada paso.

Mueva el panel de operaciones. La columna de la izquierda son los botones de desplazamiento para el sistema de coordenadas cartesianas y

la columna de la derecha son los botones de desplazamiento para el sistema de coordenadas conjuntas.

Tome X+, X­ como ejemplo en el sistema de coordenadas cartesianas: haga clic en X+, X­: el brazo
8
del robot se mueve a lo largo del eje X en dirección positiva o negativa.
Tome J1+, J1 como ejemplo en Sistema de coordenadas conjuntas: Haga clic en J1+, J1: el motor base
del brazo del robot gira en dirección positiva o negativa.

22
Machine Translated by Google

4 configuraciones

4.1 Configuración

básica 4.2 Configuración de

comunicación 4.3 Sistema de coordenadas

4.3.1 Sistema de coordenadas del usuario

4.3.2 Sistema de coordenadas de la

herramienta 4.4 Parámetros

de carga 4.5 Parámetros de

movimiento 4.6 Configuración de seguridad

4.6.1 Detección de colisiones

4.6.2 Freno de articulación

4.6.3 Instalación

4.6.4 Sensibilidad

4.6.5 Funciones avanzadas

4.7 Tensión de alimentación (CCBOX)

4.8 Control remoto

4.9 Calibración en casa

4.10 Función del fabricante

23
Machine Translated by Google

4.1 Configuraciones básicas

La página de Configuración básica se utiliza para ver las especificaciones del dispositivo y configurar la postura del robot.

Seleccione El robot se conectará automáticamente la próxima vez que se inicie el software y el software intentará conectarse

automáticamente al robot actual la próxima vez que se inicie.

Puede señalar Ver más para ver más información sobre la versión del firmware.

Postura inicial
La postura inicial es una postura autodefinida, que es la postura inicial predeterminada, es decir, todos los ángulos de las articulaciones.

son 0.

Puede hacer clic en Restablecer postura inicial para modificar la postura inicial.

24
Machine Translated by Google

Puede ingresar los ángulos de todas las articulaciones o mover el robot a una postura específica y hacer clic en Obtener postura actual para obtener los

ángulos actuales de todas las articulaciones. Después de confirmar todos los ángulos de las juntas, haga clic en Aceptar para actualizar el valor inicial.

postura.

Mantenga presionado Mover a la pose predeterminada para mover el robot al punto inicial. Haga clic en Restaurar postura predeterminada para

recuperar la postura inicial a la postura predeterminada.

Postura del paquete y postura en casa.

25
Machine Translated by Google

Mover el robot a la posición de paquete puede reducir el espacio del robot, lo que facilita el embalaje y el transporte.

En la postura casera, todos los ángulos de las articulaciones son 0.

Mantenga presionado Mover a esta posición para mover el robot a la postura correspondiente.

26
Machine Translated by Google

4.2 Configuración de comunicación

Configuración de IP

El robot puede comunicarse con un dispositivo externo a través de la interfaz LAN que admite los protocolos TCP, UDP y Modbus.

Puede modificar la dirección IP, la máscara de red y la puerta de enlace. La dirección IP del robot debe estar dentro del mismo

segmento de red que la del dispositivo externo sin conflicto.

Cuando el controlador es CC162, solo hay una interfaz LAN y se modifica la dirección de esta interfaz. Cuando el controlador

es CCBOX, hay dos interfaces LAN y la dirección de LAN1

Se modifica la interfaz. La dirección IP predeterminada de la interfaz LAN1 de ambos controladores es 192.168.5.1.

Si el brazo robótico está conectado al dispositivo externo directamente o mediante un interruptor, debe marcar Establecer IP

manualmente, modificar la dirección IP, la máscara de red y la puerta de enlace y hacer clic en Aplicar.

Si el brazo robótico está conectado al dispositivo externo a través de un enrutador, marque Obtener IP automáticamente (el

enrutador asigna automáticamente la dirección IP) y luego haga clic en Aplicar.

Configuración WiFi

El sistema robótico puede comunicarse con un dispositivo externo a través de WiFi. Puede modificar el nombre y la contraseña de

WiFi y luego reiniciar el controlador para que sea efectivo. La contraseña predeterminada es 1234567890.

27
Machine Translated by Google

28
Machine Translated by Google

4.3 Sistema de coordenadas

29
Machine Translated by Google

4.3.1 Sistema de coordenadas del usuario

Cuando se cambia la posición de la pieza de trabajo o es necesario reutilizar un programa de robot en múltiples sistemas de

procesamiento del mismo tipo, puede crear un sistema de coordenadas en la pieza de trabajo para simplificar la programación.

DobotStudio Pro admite 10 sistemas de coordenadas de usuario, de los cuales el sistema de coordenadas de usuario 0 se define como el

sistema de coordenadas base de forma predeterminada y no se puede cambiar.

NOTA

Al crear un sistema de coordenadas de usuario, asegúrese de que el sistema de coordenadas de referencia sea el sistema de

coordenadas base.

El sistema de coordenadas del usuario se crea mediante el método de calibración de tres puntos. Mueva el robot a tres puntos: A, B y C.

El punto A se define como el origen y la línea del punto A al punto B se define como la dirección positiva del eje X. La línea en la que

el punto C es perpendicular al eje X se define como la dirección positiva del eje Y. El eje Z se puede definir según la regla de la mano

derecha.

Creando un sistema de coordenadas de usuario

1. Haga clic en Agregar.

30
Machine Translated by Google

2. Seleccione la configuración de Tres puntos en la página "Agregar marco de usuario: índice2".

NOTA

Al crear un sistema de coordenadas de usuario, asegúrese de que el sistema de coordenadas de referencia

sea el sistema de coordenadas base, es decir, el sistema de coordenadas de usuario sea 0 cuando mueva el robot.

31
Machine Translated by Google

Al presionar prolongadamente Ejecutar hasta se puede mover el robot a los puntos establecidos.

1. Mueva el robot hasta el punto P1 y haga clic en obtener en el panel P1.

2. Mueva el robot hasta el punto P2 y haga clic en obtener en el panel P2.

3. Mueva el robot hasta el punto P3 y haga clic en obtener en el panel P3.

4. Haga clic en Aceptar. El sistema de coordenadas del usuario se creó correctamente.

Ahora puede seleccionar un sistema de coordenadas de usuario y mover el brazo del robot.

NOTA

Al crear o modificar un sistema de coordenadas de usuario, también puede seleccionar Configuración de entrada e ingresar directamente

los valores X, Y, Z, Rx, Ry y Rz, luego hacer clic en Aceptar.

Otras operaciones
Modificar un sistema de coordenadas: seleccione un sistema de coordenadas y haga clic en Modificar. El procedimiento para modificar un

sistema de coordenadas es el mismo que para agregar un sistema de coordenadas.

Copiar un sistema de coordenadas: Seleccione un sistema de coordenadas y haga clic en copiar , y creará un nuevo sistema de

coordenadas igual al seleccionado.

32
Machine Translated by Google

4.3.2 Sistema de coordenadas de herramienta

Cuando se monta en el robot un efector final, como una pistola de soldar o una pinza, se requiere el sistema de coordenadas de la

herramienta para programar y operar un robot. Por ejemplo, cuando se utilizan varias pinzas para transportar varias piezas de

trabajo simultáneamente, puede configurar un sistema de coordenadas de herramienta para cada pinza para mejorar la eficiencia.

DobotStudio Pro admite 10 sistemas de coordenadas de herramientas. El sistema de coordenadas de herramienta 0 es el sistema

de coordenadas base que se encuentra en la brida del robot y no se puede cambiar.

NOTA

Al crear un sistema de coordenadas de herramienta, asegúrese de que el sistema de coordenadas de referencia sea el sistema

de coordenadas base.

El sistema de coordenadas de herramienta del robot de seis ejes se crea mediante el método de calibración de tres puntos (TCP +ZX):

después de montar el efector final, ajuste la dirección del efector final para que TCP (punto central de la herramienta) se alinee con el

mismo punto ( punto de referencia) en tres direcciones diferentes para obtener el desplazamiento de posición del efector final. Luego

mueva el robot a otros tres puntos (A, B, C) para obtener el desplazamiento del ángulo.

Crear sistema de coordenadas de herramienta

1. Monte un efector final en el robot.

33
Machine Translated by Google

2. Haga clic en Agregar.

3. Seleccione la configuración de seis puntos en la página "Agregar marco de herramientas: índice2".

NOTA

Al crear un sistema de coordenadas de herramienta, asegúrese de que el sistema de coordenadas de referencia sea

34
Machine Translated by Google

el sistema de coordenadas base, es decir, el sistema de coordenadas de la herramienta es 0 cuando mueve el robot.

Al presionar prolongadamente Ejecutar hasta se puede mover el robot a los puntos establecidos.

1. Mueva el robot hasta el punto de referencia en la primera dirección, luego haga clic en obtener en el panel P1.

2. Mueva el robot hasta el punto de referencia en la segunda dirección y luego haga clic en obtener en el panel P2.

3. Mueva el robot hasta el punto de referencia en la tercera dirección y luego haga clic en obtener en el panel P3.

4. Mueva el robot hasta el punto de referencia en dirección vertical y luego haga clic en obtener en el panel P4.

5. Mueva el eje Z a lo largo de la dirección positiva para mover el robot a otro punto, luego haga clic en obtener en P5.

panel.

6. Mueva el eje X a lo largo de la dirección positiva para mover el robot al punto P6 (no en la misma línea con P4 y

P5). Haga clic en obtener en el panel P6.

7. Haga clic en Aceptar. El sistema de coordenadas de la herramienta se crea correctamente.

Después de agregar o modificar un sistema de coordenadas de herramienta, puede seleccionar un sistema de coordenadas de herramienta en el panel

de control y mover el brazo del robot.

NOTA

Al crear o modificar un sistema de coordenadas de herramienta, también puede seleccionar Configuración de entrada o Configuración de tres

puntos en el Paso 3.

Otras operaciones

35
Machine Translated by Google

Modificar un sistema de coordenadas: seleccione un sistema de coordenadas y haga clic en Modificar. El procedimiento para modificar un

sistema de coordenadas es el mismo que para agregar un sistema de coordenadas.

Copiar un sistema de coordenadas: Seleccione un sistema de coordenadas y haga clic en copiar , y creará un nuevo sistema de

coordenadas igual al seleccionado.

36
Machine Translated by Google

4.4 Cargar parámetros


Para garantizar un rendimiento óptimo del robot, es importante asegurarse de que la carga y las coordenadas excéntricas del efector

final estén dentro del rango máximo para el robot y que la articulación 6 no se vuelva excéntrica.

Configurar la carga y las coordenadas excéntricas mejora el movimiento del robot, reduce la vibración y acorta el tiempo de

funcionamiento.

NOTA

Cada vez que habilite el robot, aparecerá una ventana "Modificación de habilitación de carga" que requiere que configure los

parámetros de carga. Los parámetros que establezca se sincronizarán con "Cargar parámetros".

página.

Haga clic en Modificar para modificar los parámetros de carga.

Debe configurar la coordenada excéntrica de la carga cuando el eje J6 esté a 0°.

El peso de la carga incluye el peso del efector final y la pieza de trabajo, que no debe exceder el
carga máxima del brazo del robot.

AVISO

Los ajustes de carga incorrectos pueden causar alarmas de detección de colisión anormales o que el brazo del robot esté

fuera de control durante el arrastre.

37
Machine Translated by Google

Después de configurar los parámetros, haga clic en Aceptar.

Establezca correctamente las coordenadas de carga y excéntricas. De lo contrario, se pueden producir errores o golpes excesivos y acortar el ciclo de vida de las

piezas.

38
Machine Translated by Google

4.5 Parámetros de movimiento

Los parámetros de movimiento óptimos se han establecido antes de la entrega y no se recomienda modificarlos sin requisitos especiales.

Si cree que la velocidad del robot es demasiado alta, puede ajustarla hacia abajo según sus necesidades reales. Si se requiere una

velocidad mayor, comuníquese con el soporte técnico para obtener una velocidad

aumentar la solución.

Ajuste de avance

Puede establecer la velocidad y aceleración máximas en el sistema de coordenadas conjuntas y en el sistema de coordenadas cartesianas.

Haga clic en Guardar después de configurar los parámetros.

Velocidad/aceleración real del robot = velocidad/aceleración establecida × relación de velocidad global.

Haciendo clic restaurará todos los valores en el módulo correspondiente a los valores predeterminados.

Configuración de reproducción

39
Machine Translated by Google

Puede configurar la velocidad, la aceleración y la sacudida en el sistema de coordenadas conjuntas y en el sistema de coordenadas cartesianas. Haga clic en

Guardar después de configurar los parámetros.

Velocidad/aceleración real del robot = velocidad/aceleración establecidas × relación de velocidad global × porcentaje establecido en los comandos de velocidad

durante la programación.

Haciendo clic restaurará todos los valores en el módulo correspondiente a los valores predeterminados.

40
Machine Translated by Google

4.6 Configuración de seguridad

41
Machine Translated by Google

4.6.1 Detección de colisiones

La detección de colisiones se utiliza principalmente para reducir el impacto sobre el robot y evitar daños al robot o al equipo

externo. Si se activa la detección de colisión, el brazo robótico suspenderá su funcionamiento automáticamente al chocar contra

un obstáculo.

Cuanto mayor sea el nivel de sensibilidad que seleccione, menor será la fuerza que necesitará el robot para detenerse después de la detección de una colisión.

El nivel de seguridad se mostrará en el panel de conexión en la barra de herramientas superior.

Cuando se detecta la fuerza necesaria para detenerse al mover el robot, aparecerá la ventana "Detección de colisión". En este caso,

debe resolver la causa de la colisión y hacer clic en Restablecer. Si necesita operar el software para resolver la causa de la colisión,

haga clic en Recordármelo en un minuto para cerrar temporalmente la ventana emergente (se mostrará nuevamente un mensaje

emergente en un minuto).

42
Machine Translated by Google

El procesamiento posterior a la colisión se refiere al tratamiento después de la colisión mientras el brazo robótico ejecuta el proyecto:

Detener: el brazo robótico deja de ejecutar el proyecto.

Pausa: el brazo robótico hace una pausa. Debe seleccionar si desea reanudar la operación después de resolver la causa de la

colisión de acuerdo con la condición real o detener la operación.

Ingrese al modo de arrastre: el brazo robótico deja de ejecutar el proyecto y automáticamente ingresa al modo de arrastre.

Ingrese al modo de retroceso: el brazo del robot retrocede automáticamente la distancia especificada de acuerdo con la

trayectoria antes de la colisión. El rango de distancia de retroceso es de 0 a 50 mm.

43
Machine Translated by Google

4.6.2 Freno de articulación

El frenado evita que el eje del servomotor se mueva cuando el servocontrolador no está en funcionamiento, de
modo que el motor mantiene su posición bloqueada y garantiza que la parte móvil de la máquina no se moverá
debido a su propio peso o fuerza externa.

Si desea arrastrar las articulaciones manualmente, puede habilitar la función de freno, es decir, sostener la articulación manualmente después de

que el brazo del robot esté desactivado y luego hacer clic en el botón de la articulación correspondiente.

AVISO

Al habilitar la función, sujete la articulación con la mano para evitar que se mueva.

44
Machine Translated by Google

4.6.3 Instalación
Si el robot está montado sobre una mesa plana o sobre el suelo, no es necesario configurarlo en esta página. Sin embargo, si el robot está

montado en el techo, en la pared o en ángulo, deberá configurar el ángulo de rotación y el ángulo de inclinación en
el estado de inhabilitado.

Puede calibrar mediante calibración manual o calibración automática.

Calibración manual

Puede seleccionar una postura de instalación adecuada según la condición real.

El ángulo de inclinación es el ángulo que gira un robot en sentido antihorario alrededor del eje X en el punto de origen.

El ángulo de rotación es el ángulo en el que un robot gira en sentido antihorario alrededor del eje Z en el punto de origen.

Calibración automática

Después de instalar y habilitar el robot, puede hacer clic en Calibración y operar de acuerdo con la ventana emergente para obtener el

ángulo de inclinación y el ángulo de rotación.

45
Machine Translated by Google

Haga clic en Guardar después de la calibración para guardar la configuración.

Haga clic en Restaurar para restaurar el ángulo calibrado al valor predeterminado.

46
Machine Translated by Google

4.6.4 Sensibilidad
La configuración de sensibilidad se utiliza principalmente para ajustar la sensibilidad de las articulaciones al correr y arrastrar.

Cuanto menor sea la sensibilidad, mayor será la resistencia durante el arrastre.

47
Machine Translated by Google

4.6.5 Funciones avanzadas


Si necesita habilitar o deshabilitar las funciones avanzadas, puede configurarlas en esta página. Se recomienda mantener

el valor predeterminado si no tiene requisitos especiales.

NOTA

La función requiere autoridad de administrador (contraseña predeterminada: 888888).

48
Machine Translated by Google

4.7 Tensión de alimentación (CCBOX)

Cuando el tipo de controlador es CCBOX, es necesario configurar el rango de voltaje de entrada del controlador.

Configure de acuerdo con el rango real de voltaje de entrada, con un voltaje máximo de no más de 60 V y un voltaje
mínimo de no menos de 30 V.

49
Machine Translated by Google

4.8 Control remoto


El equipo externo puede enviar comandos a un robot (controlar y ejecutar un archivo de programa aprendido) en diferentes

modos de control remoto, como el modo de E/S remotas y el modo Modbus remoto.

NOTA

No es necesario reiniciar el sistema de control del robot al cambiar el modo de control remoto.

No importa en qué modo se encuentre el sistema de control del robot, el interruptor de parada de emergencia siempre

es efectivo.

Si el robot se ejecuta en el modo de control remoto, el proyecto dejará de ejecutarse automáticamente cuando

cambie a otros modos de trabajo.

No envíe señales de control antes de que el robot se encienda e inicialice; de lo contrario, podría provocar que

el robot se mueva de forma anormal.

Después de ingresar al modo de control remoto, la barra de herramientas superior mostrará el modo actual.

Haga clic en "Registro de ejecución" para ver el registro de ejecución del modo remoto. La siguiente figura

toma el modo de E/S remotas como ejemplo.

Modo en línea

Es el modo de control predeterminado. Puedes controlar el brazo robótico a través de DobotStudio Pro.

Modbus remoto

El equipo externo puede controlar el brazo robótico en el modo Modbus remoto.

50
Machine Translated by Google

Las funciones específicas de los registros Modbus se muestran arriba. Puede hacer clic en Modificar para editarlo.

El procedimiento para ejecutar el proyecto en modo Modbus remoto se describe a continuación.

Requisitos previos

Se ha preparado el proyecto que se ejecutará en modo remoto.

El robot se ha conectado al equipo externo a través de la interfaz LAN. Puedes conectarlos directamente o mediante un enrutador.

La dirección IP del robot y el equipo externo debe estar dentro del mismo segmento de red sin conflicto. La dirección IP

predeterminada es 192.168.5.1. Puede configurar la dirección IP en la configuración de comunicación.

El brazo robótico se ha encendido.

Procedimiento

1. Establezca el modo actual en Modbus remoto y seleccione un proyecto fuera de línea (programa de bloques o script) para

correr.

2. Si necesita iniciar varios proyectos diferentes a través de Modbus, haga clic en Configuración avanzada. En Configuración avanzada,

puede configurar la dirección de registro de retención del proyecto de opción y configurar la lista de proyectos de opción, como

se muestra en la siguiente figura.

51
Machine Translated by Google

3. Haga clic en Aplicar. Ahora el brazo robótico entra en modo Modbus remoto. Sólo se emite el comando de parada de emergencia.
disponible.

4. Active la señal de inicio en el equipo externo. El robot se moverá según el seleccionado.

archivo del proyecto.

5. Si se activa la señal de parada, el brazo del robot dejará de moverse y se desactivará.

E/S remotas
El equipo externo puede controlar el brazo robótico en el modo IO remoto.

52
Machine Translated by Google

La definición de interfaz IO específica del sistema de control se muestra en la figura anterior. Puede hacer clic en Modificar para editarlo.

Cuando el tipo de armario de control es CCBOX, las E/S seguras y las E/S universales comparten el mismo terminal. El terminal

configurado como E/S segura no se puede configurar como E/S remota.

Al hacer clic en Configuración avanzada se pueden configurar múltiples proyectos a través de E/S de grupo.

53
Machine Translated by Google

1. Haga clic en + o ­ para aumentar o disminuir la cantidad de direcciones asignadas a E/S de grupo. Cuanto más

Cuantas más direcciones sean asignadas, más configurables serán los proyectos.

Dirección 0: los proyectos opcionales no se pueden configurar. 1

dirección: se puede configurar 1 proyecto opcional. 2 direcciones:

se pueden configurar 3 proyectos opcionales. 3 direcciones: se pueden

configurar 7 proyectos opcionales. 4 direcciones: se pueden configurar

15 proyectos opcionales.

2. Puede modificar la dirección asignada a través de la lista desplegable. La dirección asignada al grupo de E/S.

no se puede duplicar con E/S remotas o E/S seguras (CCBOX).

3. Después de asignar direcciones, puede configurar proyectos opcionales (al menos uno) para cada valor de IO de grupo.

En el modo de E/S remotas, antes de ejecutar el proyecto, seleccione el proyecto opcional correspondiente configurando el valor

de E/S del grupo correspondiente (el azul se refiere a ENCENDIDO y el gris a APAGADO).

Tome como ejemplo la asignación de DI1~DI4 en la figura anterior:

DI1 está ON, DI2, DI3 y DI4 están OFF: seleccione el primer proyecto opcional; DI1 y DI2 están

ON, DI3 y DI4 están OFF: seleccione el tercer proyecto opcional; DI1~ DI4 están todos ENCENDIDOS:

seleccione el decimoquinto proyecto opcional.

Cuando todas las E/S del grupo están configuradas en APAGADO, significa seleccionar el proyecto principal configurado

en la página anterior.

4. Haga clic en Guardar para completar la configuración.

54
Machine Translated by Google

El procedimiento para ejecutar el proyecto en el modo de E/S remotas se muestra a continuación.

Requisito previo

Se ha preparado el proyecto que se ejecutará en modo remoto.

El equipo externo se ha conectado al brazo robótico mediante una interfaz de E/S.

El brazo robótico se ha encendido.

Procedimiento

1. Establezca el modo actual en E/S remota y seleccione un proyecto fuera de línea (programa de bloques o secuencia de comandos) para ejecutar.

2. Haga clic en Aplicar. Ahora el brazo robótico ingresa al modo IO remoto. Sólo se emite el comando de parada de emergencia.

disponible.

3. (Opcional) Active E/S de grupo en dispositivos externos y seleccione un proyecto para ejecutar.

4. Activa la señal de salida. El robot se moverá según el archivo de proyecto seleccionado.

5. Si se activa la señal de parada, el brazo robótico dejará de moverse.

Desarrollo secundario TCP/IP


Este modo es para que los usuarios desarrollen software de control basado en TCP. Si necesita desarrollar el software, consulte el protocolo TCP/IP de

Dobot. (colocado en Github)

55
Machine Translated by Google

4.9 Calibración en casa


Después de que se hayan reemplazado algunas piezas (motores, unidades de engranajes reductores) del brazo del robot o de que el

robot haya sido golpeado, se cambiará el punto de inicio del robot. En este caso es necesario restablecer el punto de origen.

NOTA

La calibración inicial se utiliza sólo cuando cambia la posición inicial. Por favor opere con precaución.

La función de calibración en casa se puede utilizar después de ingresar la contraseña (contraseña predeterminada:

888888)

Mueva el robot al punto de inicio según las indicaciones de la página. Haga clic en Calibración inicial en el estado habilitado.

Después de operar la calibración de referencia, puede verificar las coordenadas conjuntas en el panel de control. Ahora todas las

coordenadas conjuntas (J1­J6) son cero.

56
Machine Translated by Google

4.10 Función del fabricante


Las funciones del fabricante incluyen identificación automática y interruptor de detección de colisiones. Una operación
incorrecta puede causar anomalías en el robot y riesgos de seguridad. Úselo bajo la guía del soporte técnico.

57
Machine Translated by Google

5 Monitoreo de E/S
Puede monitorear y configurar el estado de E/S del controlador y la herramienta final en la página de E/S. Para la E/S

definición, consulte la descripción de IO en la guía de hardware del robot correspondiente. Como diferentes controladores

varían en el número de E/S, las capturas de pantalla de este documento son solo como referencia.

No. Descripción

1 Haga clic para ocultar el panel y haga clic en E/S en la barra de herramientas derecha para mostrar el panel.

2 Haga clic para agregar E/S extendidas, que se pueden usar para monitorear la comunicación Modbus. Ver
Extensión de E/S para más detalles.

3 Haga clic para establecer el alias de E/S o si desea mostrarlo. Consulte la configuración de E/S para obtener más detalles.

58
Machine Translated by Google

4 Haga clic para plegar el panel de control y haga clic nuevamente para desplegar el panel.

5 Área de monitoreo IO. Ver Monitoreo

extensión de E/S

ID: ID del dispositivo esclavo.

Nombre: Nombre del dispositivo esclavo.

Dirección IP: Dirección del dispositivo Modbus. No puede ser la misma que la dirección IP del controlador.

Interfaz LAN (por ejemplo, la predeterminada 192.168.5.1); de lo contrario, puede causar fallas funcionales.

anormalidades.

Puerto: Número de puerto de comunicación Modbus.

DI/DO: Configure la dirección de registro y el número de DI/DO después de seleccionar la función. La dirección debe asignarse desde 0.

Después de hacer clic en Aceptar, aparecerá una nueva E/S en la parte inferior del panel de E/S. La función de monitoreo tiene efecto solo después de

reiniciar el controlador.

Al hacer clic en x a la derecha de la E/S extendida se puede eliminar la E/S.

configuración de E/S

59
Machine Translated by Google

Seleccione IO para mostrarlo en la página de monitoreo.

Ingrese el alias de IO en el lado derecho y el alias se mostrará en la página de monitoreo. Al mismo tiempo, también puede

llamar al IO correspondiente a través del alias en programación de bloques y programación de scripts.

Cuando el tipo de gabinete de control es CCBOX, puede configurar el tipo de entrada/salida digital en PNP (activo de alto

nivel) o NPN (activo de bajo nivel), como se muestra en la siguiente figura.

60
Machine Translated by Google

Supervisión

La página E/S del controlador y E/S de herramientas admite las siguientes funciones.

Salida: Configure la salida digital o la salida analógica. Para la salida digital, puede hacer clic en el interruptor correspondiente en el

lado derecho para cambiar su estado. Para salida analógica, primero debe hacer clic en Modificar y luego hacer clic en Confirmar

modificación después de modificar el valor de salida.

Monitor: Consulta el estado real de la entrada y salida. El punto a la derecha de la entrada digital indica el estado de la DI correspondiente.

Gris significa que DI no está activado y verde significa que DI está activado.

Simulación: Simule el estado de la entrada digital para facilitar la depuración y ejecución de programas. Haga clic en el área de

visualización de estado del DI correspondiente y aparecerá una ventana de configuración. Haga clic en Ficticio y seleccione

Transformación DI, y la DI cambiará al estado de disparo virtual (punto verde), que se considera ENCENDIDO lógicamente. Si no

selecciona Transformación DI, la DI mantendrá su estado real.

61
Machine Translated by Google

Cuando el tipo de gabinete de control es CC162, la entrada/salida analógica admite modo de voltaje o corriente.

Haga clic en Modificar para seleccionar el modo correspondiente y haga clic en Confirmar modificación para cambiar el modo. La

unidad del valor en el lado derecho cambiará en tiempo real. Tenga en cuenta que el valor de la entrada analógica sólo puede
ser visto en lugar de modificado.

NOTA

Esta función debe usarse con el interruptor DIP, que se encuentra dentro del gabinete de control. Si necesita configurarlo,

comuníquese con el soporte técnico de Dobot.

Puede configurar las funciones de cada interfaz de E/S segura en la página Safe IO. Para obtener detalles sobre las E/S seguras,

consulte la descripción de E/S en la guía de hardware del robot correspondiente.

Cuando el tipo de armario de control es CCBOX, las E/S seguras y las E/S universales comparten el mismo terminal. El

terminal configurado como E/S remota no se puede configurar como E/S segura.

62
Machine Translated by Google

NOTA

En el uso real, intente asegurarse de que la señal SI cambie en un intervalo de más de 150 ms; de lo contrario, el salto de la

señal SI puede causar anomalías en el estado de funcionamiento del robot.

Por ejemplo, cuando la entrada de reinicio de parada de protección no está configurada, el salto de la señal de entrada de

parada de protección (el intervalo de cambio es inferior a 150 ms) puede hacer que el robot no reanude automáticamente la

operación después de una pausa. En este caso, debe resolver el problema mediante el método siguiente.

1. Pause el proyecto a través del software y luego continúe ejecutando el proyecto.

2. Active nuevamente la señal de entrada de parada de protección y permanezca por encima de 150 ms.

63
Machine Translated by Google

6 Modbus
El módulo Modbus, que actúa como maestro Modbus, se utiliza para conectar el esclavo Modbus.

No. Descripción

1 Haga clic para ocultar el panel y haga clic en Modbus en la barra de herramientas derecha para restaurarlo.

2 Haga clic para conectar el esclavo Modbus. Consulte Conexión del esclavo Modbus para obtener más detalles.

3 Haga clic para plegar el panel de control y haga clic nuevamente para desplegar el panel.

4 Mostrar información de registro de los esclavos conectados

Conexión del esclavo Modbus

64
Machine Translated by Google

IP esclava: dirección del dispositivo Modbus.

Puerto: número de puerto de comunicación Modbus.

ID de esclavo: ID del dispositivo esclavo.

Función: seleccione el tipo de función del dispositivo esclavo.

Dirección/Cantidad: dirección y número de registros.

Tasa de escaneo: intervalo de tiempo de escaneo de la estación esclava por parte del brazo robótico.

sesenta y cinco
Machine Translated by Google

7 variables globales

El módulo se utiliza para configurar y comprobar las variables globales.

Después de configurar la variable global, puede llamar a la variable a través de bloques relevantes en la programación de bloques,

o llamar a la variable a través del nombre de la variable en la programación de scripts.

DobotStudio Pro admite los siguientes tipos de variables globales:

bool: valor booleano

Cadena: Cadena

int: Entero

flotante: Punto numérico flotante de doble

precisión: El punto del robot se puede obtener moviendo el robot a la posición especificada, como se muestra en la siguiente

figura.

66
Machine Translated by Google

Retención global:

Cuando se marca Retención global , se guardará cualquier modificación a la variable y el valor modificado se guardará

independientemente de salir del script o apagar y reiniciar el robot.

Cuando no se marca Retención global , las modificaciones a la variable solo son efectivas cuando se está ejecutando el script.

Se restaurará al valor de configuración inicial al salir del script.

Recomendaciones de nombres para variables globales

Se recomienda utilizar el formato g_project abreviatura_variable que significa nombrar variables globales y evitar el uso de

nombres demasiado cortos.

Cabe señalar que los nombres de las variables globales no pueden duplicar las palabras clave reservadas de lua ni las funciones

y nombres de variables ya definidos por Dobot.

­­ palabras clave reservadas de


lua y, break, do, else, elseif, end, false, for,
función, si, en, local, nulo, no, o, repetir, regresar, entonces,
verdadero, hasta, mientras, ir a

­­ Funciones y variables definidas por Dobot (incluidas funciones reservadas internamente)


Accel, AccelR, AccelS, AI, AO, AOExecute, Arc3,
Arc3Weave, Arch, BlockHighlight, CalcTool, CalcUser,
CheckGo, CheckMove, Circle3, CnvVison, CollisionLogInfo,
CP, CRC16, CyHelix, DestroyCam, DI, DIGroup, DO,
dobot_hook, DOExecute, DOGroup, ECP, ECPSet, ElapsedTime,
EventLog, FC, FCAct, FCCalib, FCCondDisplac, FCCondDisplace,
FCCondForce, FCCondTCPSpeed, FCCondTorque, FCCondTorque,
FCDeact, FCForce, FCLine, FCLoadID, FCRefDirect, FCRefForce,
FCRefLine, FCRefRot, FCRefSpiral, FCRefTorAdjust, FCRefTorque,
FCRel, FCRot, FCSetCompliance, FCSetGain, FCSpiral, FCTorque,
GetABZ, GetAngle, GetCnvObject, GetCoils, GetHoldRegs,
GetInBits, GetInRegs, GetLayerIndex, GetPartIndex, getPathPose,
GetPathStartPose, GetPose, GetRunningData, GetTraceStartPose,
Ir, GoIO, GoR, GoToolR, GoUserR, GRead, GWrite, IceCreamGO,
IceCreamP, IceCreamR, init(pix), InitCam, InverseSolution,IsDone,

67
Machine Translated by Google

Jerk, JerkR, JerkS, Jump, LimZ, Lineal, Lineal, LoadSet, LoadSwitch,


Registro, Formato de registro, MatrixPallet, MD, ModbusClose, ModbusCreate,
Mover, MoveIn, MoveIO, MoveJ, MoveJIO, MoveJR, MoveOut, MoveR,
MoveToolR, MoveUserR, MoveWeave, NewPose, APAGADO, ENCENDIDO, PalletSync,
Pausar, imprimir, QuitScript, ReadDB, RecvCam, Liberar, RelJointMovJ,
RelMovJTool, RelMovJUser , RelMovLTool, RelMovLUser, Restablecer,
ResetElapsedTime, RJ, Rotación, RP, ScrewCommitErrInfo,
ScrewCommitInfo, ScrewCommitProductInfo, ScrewDriverGetError,
ScrewDriverGetResult, ScrewGetSelectedSN, ScrewSetCurrentSN,
SendCam, ServoJ, ServoP, SetABZPPC, SetBackDistance,
SetCnvPointOffset, SetCnvTimeCompensation, SetCoils, SetCollisionLevel,
SetDOMode, setExcitMode, SetExicitCmd, SetExicitCmdZ, SetHoldRegs,
SetObstacleAvoid, SetPartIndex, SetSafeSkin, SetStackMode,
SetTool, SetTool485, SetToolBaudRate, SetToolPower, SetUnstackMode,
SetUser, SetWeldParams, SixForceHome, Sleep, Sleep(período), Velocidad,
SpeedFactor, SpeedR, SpeedS, Espiral, StartCamera, StartPath,
StartTrace, StopMove, StopSyncCnv, Sincronización, SyncCnv, SyncExit, Systime,
TCPCreate, TCPDestroy, TCPRead, TCPReadMultiVision, TCPReadVision,
TCPSpeed, TCPSpeedEnd, TCPStart, TCPWrite, TeachPallet, ToolAI,
ToolAnalogMode, ToolDI, ToolDO, ToolDOExecute, TriggerCam,
UDPCrear, UDPRead, UDPWrite, Esperar

68
Machine Translated by Google

8Dobot+
La página se utiliza para instalar y configurar el complemento final para controlar la herramienta final del robot.

Puede hacer clic en Dobot + en la parte superior izquierda del panel para ocultarlo y restaurarlo haciendo clic en Dobot + en la

barra de herramientas derecha.

Haga clic en Agregar complementos para ver la lista de complementos. Puede hacer clic en Instalar para instalar el complemento o hacer clic en Importar

complementos para cargar un complemento.

69
Machine Translated by Google

El complemento se mostrará en la página principal de Dobot+ después de la instalación. Después de seleccionar el

complemento correspondiente, puede configurar las funciones básicas del complemento. Los diferentes complementos varían

en sus métodos de configuración, que no se describirán en esta guía. Si desea eliminar el complemento, haga clic en x en la

esquina superior derecha del complemento.

70
Machine Translated by Google

Después de instalar un complemento, los bloques/comandos relevantes se agregarán en DobotBlockly y el módulo Script.

Ahora tome la pinza DH como ejemplo, como se muestra en la siguiente figura.

71
Machine Translated by Google

Puedes hacer clic en la esquina superior derecha de la página para configurar una tecla de acceso rápido para el complemento.

Después de guardarlo, puede controlar la herramienta Finalizar a través del botón Finalizar. Por ejemplo, seleccione DH. Establezca la

tecla de acceso directo 1 en DhOpen y la tecla de acceso directo 2 en DhClose y haga clic en Guardar. Luego presione el botón al final

del robot, como se muestra a continuación, y la pinza se abrirá. Presione el botón nuevamente y la pinza se cerrará.

72
Machine Translated by Google

73
Machine Translated by Google

9 Programación
9.1 Guión
DobotBlockly 9.2

74
Machine Translated by Google

9.1 Dobot en bloque


DobotStudio Pro proporciona programación en bloques. Puedes programar arrastrando los bloques para controlar
el robot.

NOTA

Este documento solo presenta el uso de programación en bloques. Para una descripción específica de los bloques, ,

consulte el Apéndice B.

No. Descripción

1 Mostrar el nombre del proyecto actual

Se utiliza para gestionar archivos de proyectos y deshacer o restaurar operaciones de programación. En la


2 lista desplegable Archivo , puede convertir un programa en bloque en un script. Después de una conversión
exitosa, puede abrir el proyecto convertido en el módulo Script

3 Controlar la ejecución del proyecto. Consulte Ejecución del proyecto para obtener más detalles.

Proporciona bloques utilizados en programación, que están divididos en diferentes colores y


4
categorías. Haga clic en la parte superior derecha del módulo para ver la descripción relevante de los bloques.

Área de edición de programas. Puedes arrastrar los bloques al área para editar un programa. Haga clic
derecho en el bloque en el área de programación para abrir el menú, que admite copiar bloques, eliminar
5 bloques y convertir un grupo de bloques en subrutinas.

Si un bloque se modifica pero no se guarda, verá mensajes en el lado izquierdo del bloque, que
que le indicarán que el bloque se ha modificado.

75
Machine Translated by Google

Haga clic para abrir el panel de Puntos . Si hay cambios no guardados, verá un punto rojo en la parte inferior derecha
6
del icono. Consulte Puntos para obtener más detalles.

Los iconos en el lado derecho del área de programación se describen a continuación.

Icono Descripción

Ingrese al modo de edición.


En el modo de edición, puede seleccionar varios o todos los bloques para copiarlos o eliminarlos.
Haga clic en Cancelar verificación o realice otras operaciones en el área de programación para salir del modo
de edición.

Bloquear/Desbloquear el área de programación.

Acercar/alejar/Restaurar el área de programación.

Volver al principio de los bloques/Centrar bloques/Volver al final de los bloques.

Arrastra el bloque a este ícono para eliminarlo, o mantenlo presionado y selecciona Eliminar bloque para
eliminarlo.

Puntos

La interfaz Point se utiliza para gestionar los puntos en la programación, como se muestra a continuación.

76
Machine Translated by Google

No. Descripción

Haga clic para ocultar el panel de Puntos . Puede hacer clic en Puntos en la barra de herramientas derecha para restaurar su visualización.
1
Si hay cambios no guardados, el ícono cambiará a .

2 Establecer el modo de movimiento de Ejecutar a

3 Importe un archivo de lista de puntos o exporte la lista de puntos actual a un archivo.

4 Haga clic para plegar el panel de control y haga clic nuevamente para desplegar el panel.

Área de gestión de puntos.


Después de mover el brazo robótico a un punto específico, haga clic en Agregar para guardar el punto actual de
El brazo robótico como nuevo punto de enseñanza.
Después de seleccionar un punto de enseñanza, haga doble clic en cualquier valor excepto Nombre de la enseñanza
5
apunte a modificar directamente el valor.
Después de seleccionar un punto de enseñanza, haga clic en Portada para sobrescribirlo con el punto actual.
Después de seleccionar un punto de enseñanza, mantenga presionado RunTo para mover el brazo del robot hasta el punto.
Después de seleccionar un punto de enseñanza, haga clic en Eliminar para eliminar el punto de enseñanza.

77
Machine Translated by Google

Depuración y ejecución del proyecto.

Haga clic en Depurar después de guardar el proyecto y el proyecto comenzará a ejecutarse paso a paso. Puede ver el registro de operaciones en este

proceso.

Haga clic en Paso para ejecutar el proyecto paso a paso.

Haga clic en Salir de depuración para salir del modo de depuración.

Haga clic en script para mostrar el script en ejecución correspondiente al proyecto.

Haga clic en Iniciar después de guardar el proyecto y el proyecto comenzará a ejecutarse. Se mostrará el registro del proceso en ejecución.

Haga clic en Pausa para pausar la ejecución del proyecto y el botón cambia a Continuar. Haga clic en Reanudar para continuar ejecutando

el proyecto.

Haga clic en Detener para detener la ejecución del proyecto.

Haga clic en script para mostrar el script en ejecución correspondiente al proyecto.

78
Machine Translated by Google

Procedimiento de operación

El siguiente ejemplo describe el procedimiento de edición de un programa de bloques para controlar el robot para que se mueva entre dos

puntos repetidamente.

1. Abra el panel Puntos . Mueva el brazo del robot a un punto (P1) y haga clic en Agregar para guardar el punto P1.

2. Mueva el brazo del robot a un punto (P2) y haga clic en Agregar para guardar el punto P2.

3. Arrastre el bloque para siempre desde el área del bloque y colóquelo debajo del bloque Inicio .

4. Arrastrar dentro del bloque para siempre y seleccione P1 para el punto objetivo.

5. Arrastrar debajo del bloque anterior y seleccione P2 para el punto objetivo.

79
Machine Translated by Google

6. Haga clic en Guardar, ingrese el nombre del proyecto y haga clic en Aceptar.

7. Haga clic en Iniciar y el robot comienza a moverse.

80
Machine Translated by Google

9.2 Guión
Los robots Dobot proporcionan varias API, como comandos de movimiento, comandos TCP/UDP, etc., que utilizan el lenguaje Lua para el

desarrollo secundario. DobotStudio Pro proporciona un entorno de programación para scripts Lua. Puedes escribir tus propios scripts Lua

para controlar el funcionamiento de los robots.

NOTA

Esta sección presenta principalmente el uso de la programación de scripts. Para obtener una descripción específica de

los comandos, consulte la Guía de sintaxis de DOBOT Lua (CR).

No. Descripción

1 Mostrar el nombre del proyecto actual

2 Se utiliza para gestionar archivos de proyectos y deshacer o restaurar operaciones de programación.

3 Abra la página de depuración. Consulte Proyecto de depuración para obtener más detalles.

4 Controlar la ejecución del proyecto. Consulte Ejecución del proyecto para obtener más detalles.

Lista de comandos.

Haga clic en el lado izquierdo del comando para ver la descripción del comando.
Haga doble clic en el comando para agregar rápidamente el comando Lua al área de programación de la derecha.
5 Si hay un
ícono azul en el lado derecho del comando, haga doble clic en el botón azul para agregar rápidamente el
comando Lua con parámetros detallados al área de programación en la derecha.

Área de edición de programas.


El archivo "src0.lua" es el hilo principal y puede llamar a cualquier comando.
El archivo "global.lua" sólo se utiliza para definir variables y subfunciones.

81
Machine Translated by Google

6 Haga clic en + para agregar subprocesos. Los subprocesos son programas paralelos que se ejecutan con el principal.
programa. Puede configurar E/S, variables, etc. en subprocesos, pero no puede llamar al movimiento
comandos.

Haga clic para abrir el panel de Puntos . Si hay cambios no guardados, verá un punto rojo en el
7
parte inferior derecha del icono. Consulte Puntos para obtener más detalles.

Puntos

La interfaz Point se utiliza para gestionar los puntos en la programación, como se muestra a continuación.

No. Descripción

Haga clic para ocultar el panel de Puntos . Puede hacer clic en Puntos en la barra de herramientas derecha para restaurarlo. Sí hay
1
son puntos no guardados, el ícono cambiará a .

2 Establecer el modo de movimiento de Ejecutar a

3 Importe un archivo de lista de puntos o exporte la lista de puntos actual a un archivo.

82
Machine Translated by Google

4 Haga clic para plegar el panel de control y haga clic nuevamente para desplegar el panel.

Área de gestión de puntos.


Después de mover el brazo del robot a un punto específico, haga clic en Agregar para guardar el punto actual del brazo del
robot como un nuevo punto de enseñanza.
Después de seleccionar un punto de enseñanza, haga doble clic en cualquier valor excepto en el Nombre del punto de
5
enseñanza para modificar directamente el valor.
Después de seleccionar un punto de enseñanza, haga clic en Portada para sobrescribirlo con el punto actual.
Después de seleccionar un punto de enseñanza, mantenga presionado RunTo para mover el brazo del robot hasta el punto.
Después de seleccionar un punto de enseñanza, haga clic en Eliminar para eliminar el punto de enseñanza.

Proyecto de depuración

Haga clic en Depurar después de guardar el proyecto y el proyecto entrará en modo de depuración. ­ Al hacer clic en el número de línea en el lado izquierdo

del código se puede establecer un punto de interrupción. El programa se detendrá automáticamente cuando se ejecute hasta el punto de interrupción

en modo de depuración. ­ Después de que el programa se detenga en el punto de interrupción, puede hacer clic en Continuar para mantener el programa en

ejecución; o haga clic en Paso para ejecutar el programa paso a paso. ­ Haga clic en Salir de depuración para salir de la depuración.

modo.

Proyecto en ejecución

Haga clic en Iniciar después de guardar el proyecto y el proyecto comenzará a ejecutarse. El registro del proceso en ejecución

83
Machine Translated by Google

Haga clic en Iniciar después de guardar el proyecto y el proyecto comenzará a ejecutarse. Se mostrará el registro del proceso en

ejecución.

Al hacer clic en Pausa se puede pausar la ejecución del proyecto y el botón cambiará a Reanudar. Al hacer clic en

Reanudar se continuará ejecutando el proyecto.

Al hacer clic en Detener se puede detener la ejecución del proyecto.

Procedimiento de operación

El siguiente ejemplo describe el procedimiento de edición de un programa de script para controlar el robot para que se mueva

entre dos puntos repetidamente.

1. Abra el panel Puntos . Mueva el brazo del robot a un punto (P1) y haga clic en Agregar para guardar el punto P1.

2. Mueva el brazo del robot a otro punto (P2) y haga clic en Agregar para guardar el punto P2.

3. Agregue comandos de bucle en el área de programación.

4. Agregue un comando de movimiento bajo el comando de bucle y establezca P1 como punto objetivo.

5. Agregue otro comando de movimiento y establezca P2 como punto objetivo.

mientras (verdadero)

hacer

Ir(P1)
Ir(P2)
fin

84
Machine Translated by Google

6. Haga clic en Guardar, ingrese el nombre del proyecto y haga clic en Aceptar.

7. Haga clic en Iniciar y el robot comienza a moverse.

85
Machine Translated by Google

10 proceso

10.1 Reproducción de trayectoria

10.2 Seguimiento del transportador

86
Machine Translated by Google

10.1 Reproducción de trayectoria

La reproducción de trayectoria se utiliza para reproducir la trayectoria registrada durante el arrastre manual del robot.

brazo. La interfaz principal se muestra a continuación.

Haga clic en Nueva trayectoria en la esquina superior derecha y la luz indicadora al final del robot se volverá amarilla.

Ahora puedes arrastrar el robot. La trayectoria se grabará para su reproducción.

Después de registrar la trayectoria, haga clic en Guardar ruta en la esquina superior derecha. Ahora la luz indicadora se vuelve verde y se agrega un nuevo

registro con el nombre del tiempo de grabación en la lista de archivos de trayectoria.

Haga clic en la trayectoria guardada y verá tres botones: Eliminar, Cambiar nombre y Reproducir.

Haga clic en Reproducción para reproducir la trayectoria grabada del robot. En este caso, la luz indicadora al final del robot parpadea en amarillo y

el robot comienza a moverse. Después de la reproducción, el robot deja de moverse y la luz indicadora se vuelve verde.

Haga clic en Cambiar nombre para modificar el nombre del archivo de trayectoria.

Haga clic en Eliminar para eliminar esta trayectoria.

NOTA

El archivo de trayectoria guardado se puede llamar a través de comandos de reproducción relevantes en programación en bloques y

scripts.

La reproducción de trayectoria no se ve afectada por la señal IO de seguridad.

Haga clic en Avanzado para configurar el modo de reproducción. Puede configurar la relación de velocidad de reproducción si no selecciona

Reproducir a una velocidad uniforme.

87
Machine Translated by Google

88
Machine Translated by Google

10.2 Seguimiento del transportador

El proceso del transportador es que el sensor fotoeléctrico detecta los objetos en el transportador cuando el transportador está

en movimiento, y el robot los recoge a medida que se mueven.

Entorno del edificio


La siguiente figura muestra un entorno de proceso completo de seguimiento del transportador.

El diagrama de comunicación se muestra a continuación.

Codificador Se utiliza un codificador para registrar la distancia de movimiento del transportador y la posición de la pieza de trabajo, y

repórtalos al robot. El codificador debe conectarse a la interfaz del codificador ABZ en el controlador.

Se recomienda utilizar el codificador E6B2­CWZ1X (1000P/R). Su conexión de pines se muestra en la tabla.


abajo.

Color Puerto

Negro A+

Negro y rojo A­

89
Machine Translated by Google

Blanco B+

blanco y rojo B­

Naranja Z+

naranja y rojo Z­

Marrón E/S 5V

Azul E/S 0V

Sensor fotoeléctrico

El sensor fotoeléctrico emite señales de diferentes niveles según si se detecta o no la pieza de trabajo.

no. El sistema de control puede detectar la pieza de trabajo a través del borde de la señal. Necesitas conectar el

sensor fotoeléctrico a una interfaz DI en el controlador, como se muestra a continuación.

## Calibración del transportador Antes de configurar el proceso del transportador, debe calibrarlo para

obtener la relación posicional entre el transportador y el robot. En los siguientes pasos, el usuario

El sistema de coordenadas se utiliza para la calibración. Antes de la calibración, debe instalar una aguja de calibración en el

extremo del robot y prepare una etiqueta para la calibración.

1. Pegue una etiqueta en el transportador, como se muestra a continuación.

1. Ingrese a la página del sistema de coordenadas del usuario .

2. Habilite el robot. Mueva el robot hasta la posición de la etiqueta en el transportador para obtener el primer punto (punto A,

el origen del sistema de coordenadas del usuario).

90
Machine Translated by Google

1. Controle el transportador para que se mueva una distancia específica.

2. Mueva el robot hasta la posición de la etiqueta en el transportador para obtener el segundo punto (punto B, para determinar

el eje x)

3. Mueva el robot hasta un punto que no esté en la línea determinada por los puntos A y B en el transportador para obtener el tercer punto

(punto C, para determinar el eje y).

1. Agregue o cubra un sistema de coordenadas y guárdelo.

Configuración del transportador

Haga clic en Seguimiento del transportador en la página Proceso. Haga clic en Abrir herramienta y verá la siguiente página.

91
Machine Translated by Google

Índice del transportador: seleccione el índice del transportador que se configurará; se admiten varios transportadores.

Tipo de transportador: solo se admite el tipo lineal (no se puede configurar).

Canal del codificador: el canal es el predeterminado (no se puede configurar).

Índice de coordenadas del usuario: seleccione el sistema de coordenadas del transportador guardado en el último paso.

Fuente de datos: solo se admite el sensor (no se puede configurar).

Codificador

92
Machine Translated by Google

Calibre la resolución del codificador. La resolución del codificador es el incremento de pulso del codificador por unidad de longitud

que mueve el transportador.

1. Pegue una etiqueta en el transportador. Mueva el robot a la posición de la etiqueta en el transportador y haga clic en 1 en Pos.
columna para obtener el valor de la Posición 1.

2. Controle el transportador para que se mueva una distancia específica y deténgalo.

3. Mueva el robot hasta la posición de la etiqueta en el transportador. Haga clic en 2 en la columna Pos para obtener el valor de
Posición 2.

4. Configure la dirección del codificador de acuerdo con la condición real (tomando Positivo como ejemplo).
5. Haga clic en Cálculo para obtener la resolución del codificador.

Configuración de sensores

93
Machine Translated by Google

Entrada de disparo IO: establece el índice del puerto DI en el controlador al que está conectado el sensor.

Distancia de deduplicación: después de detectar una señal válida, si la señal cambia dentro de una distancia posterior, la señal se

considerará no válida y se eliminará automáticamente. El valor se puede establecer en

2 mm ~ 5 mm según la condición real.

Tipo de disparador: solo se admite el disparador de flanco ascendente (no se puede configurar).

La calibración del sensor tiene como objetivo obtener la posición donde el sensor detecta la pieza de trabajo de modo que la posición de

la pieza de trabajo bajo el sistema de coordenadas del usuario en cada momento pueda calcularse en función del desplazamiento de

coordenadas cuando la pieza de trabajo se mueve junto con el transportador.

1. Haga clic en Iniciar escucha para comenzar a escuchar la señal del sensor.

2. Coloque una pieza de trabajo en la parte superior del transportador. Encienda el transportador y la pieza de trabajo se moverá con el

transportador. Después de que el sensor detecte la pieza de trabajo y ésta esté dentro del espacio de trabajo del robot, detenga el

transportador.

3. Mueva el robot hasta el centro de la pieza de trabajo y luego haga clic en Enseñar posición mecánica para obtener la posición actual.

4. Haga clic en Calc Sensor Pos para obtener la posición del sensor.

94
Machine Translated by Google

Establecer borde de trabajo

El borde de trabajo se utiliza para establecer el área de trabajo del robot en el transportador.

Frontera de entrada de trabajo: después de que la pieza de trabajo cruza este borde, el brazo del robot comienza a rastrear y recoger la

pieza de trabajo.

Recoger borde máximo: cuando la pieza de trabajo cruza el borde, si el brazo del robot no ha comenzado a recoger la pieza de trabajo,

se considera que no puede terminar la recogida de la pieza de trabajo, por lo que no la recogerá. El límite debe establecerse en función

de la velocidad de movimiento del transportador y la experiencia real. Se recomienda depurar varias veces antes de obtener el

valor óptimo.

Trabajo fuera del borde: después de que la pieza de trabajo cruza el borde, el brazo del robot dejará de seguir la pieza de

trabajo (para evitar que el robot se salga del área de trabajo) y activará alarmas.

Mueva el robot a la posición correspondiente de cada borde y haga clic en los botones para establecer los valores.

Haga clic en Guardar en la esquina superior derecha. Ahora puede utilizar la configuración del transportador en el proyecto.

Ejemplo
Después de configurar los parámetros de la cinta transportadora, puede editar un script llamando a las API de la cinta transportadora para

realizar el seguimiento de la cinta transportadora.

El proceso de seguimiento del transportador se muestra a continuación:

95
Machine Translated by Google

En este ejemplo, necesita enseñar seis puntos bajo el sistema de coordenadas del usuario establecido cuando configura la cinta transportadora.

Punto de espera: P1

Punto de seguimiento: P2

Punto de recogida: P3

Punto de elevación: P4

Punto encima del punto de colocación: P5

Punto de colocación: P6

96
Machine Translated by Google

El guión es el siguiente.

CnvVison(0) ­­­­­­­­­­­­­­­­­­­­­­­//Iniciar el transportador

DO(9,0) ­­­­­­­­­­­­­­­­­­­­­­­//Controla el arranque y el estado de la bomba de aire a través de DO1 y D


O2

HACER(2,0)

bandera local ­­­­­­­­­­­­­­­­­­­­­­­//Si hay una etiqueta de pieza de trabajo

tipo localObjeto ­­­­­­­­­­­­­­­­­­­­­­­ //Tipo de pieza de trabajo

punto local = {0,0,0} ­­­­­­­­­­­­­­­­­­­­­­­//Cola de coordenadas de la pieza de trabajo

si bien es cierto

Go(P1,"Speed=100 Accel=100 SYNC=1") ­­­//Punto de espera, generalmente establecido dentro del espacio de trabajo
CE

imprimir("Prueba")

si bien es cierto

flag,typeObject,point = GetCnvObject(0,0) ­­//Compruebe si hay una pieza de trabajo


mi. Si lo hay, rompe.

si bandera == verdadero entonces

romper

fin

Dormir(20)

fin

SyncCnv(0) ­­­­­­­­­­­­­­­­­­­­­­­//Sincroniza la cinta transportadora y comienza el seguimiento

97
Machine Translated by Google

Move(P2,"SpeedS=100 AccelS=100") ­­­­­­­­­­­­­­­­­­//Sobre el punto de recogida

Mover(P3,"SpeedS=100 AccelS=100") ­­­­­­­­­­­­­­­­­­//Punto de recogida

Espera(100)

DO(9,1) ­­­­­­­­­­­­­­­­­­­­­­­//Encienda la bomba de aire para recoger la pieza de trabajo

­­HACER(2,1)

Espera(100)

Mover(P4,"SpeedS=100 AccelS=100 SYNC=1") ­­­­­­­­­//Levantar la pieza de trabajo

StopSyncCnv() ­­­­­­­­­­­­­­­­­­­­­­­//Detener el seguimiento del transportador

Dormir(20)

Go(P5,"Speed=100 Accel=100") ­­­­­­­­­­­­­­­­//Sobre el punto de colocación

Go(P6,"Velocidad=100 Acel=100 SYNC=1") ­­­­­­­­//Punto de colocación

Dormir(1000)

DO(1,0) ­­­­­­­­­­­­­­­­­­­­­­­//Apague la bomba de aire

HACER(2,0,"SINCRONIZACIÓN=1")

Dormir(1000)

Ir(P5,"Velocidad=100 Aceleración=100")

Fin

98
Machine Translated by Google

11 mejores prácticas

Este capítulo describe el proceso completo de control de un brazo robótico a través de E/S remotas para ayudarle
comprender cómo se utilizan las diversas funciones de DobotStudio Pro de manera coordinada.

Ahora supongamos la siguiente escena: después de presionar el botón de inicio, la luz indicadora de funcionamiento se enciende. El brazo

del robot agarra el material desde el punto de recogida a través de la pinza final, se mueve hasta el punto objetivo para liberar el material y

luego regresa al punto de recogida nuevamente para agarrar el material... El proceso se ejecuta repetidamente.

Para lograr la escena anterior, debe instalar una pinza en el extremo del brazo del robot (tomando la pinza DH como ejemplo, consulte

la guía del usuario de la pinza DH para su instalación) y conectar los botones e indicadores al controlador. Interfaz de E/S (suponiendo

que el botón de inicio está conectado a DI11 y el botón de parada está conectado a DI12; el indicador de funcionamiento está conectado

a DO11 y el indicador de alarma está conectado a DO12. Para el cableado, consulte la guía de hardware correspondiente de el

robot).

Proceso general

Después de instalar el hardware y encender el brazo robótico, realice las operaciones de software como
sigue:

1. Conecta el robot

2. Instale el complemento Dobot+ (opcional)

3. Establecer y seleccionar un sistema de coordenadas de

herramienta 4. Editar el archivo

del proyecto 5. Configurar e ingresar al modo de E/S remotas

Procedimiento

Conexión y habilitación del robot

Para obtener detalles sobre cómo conectarse al robot, consulte Conexión al robot.

1. Busque el nombre WiFi del controlador Dobot y conéctelo. El SSID de WiFi es Dobot_WIFI_XXX (XXX es

el índice del robot ubicado en la base) y la contraseña WiFi es 1234567890 por defecto.

2. Seleccione un robot en la parte superior de la interfaz de DobotStudio Pro y haga clic en Conectar.

99
Machine Translated by Google

3. Haga clic en el botón de habilitación y configure los parámetros de carga para habilitar el robot.

Instalación del complemento Dobot+

Para obtener detalles sobre el complemento Dobot+, consulte Dobot+. Aquí tomamos el complemento DH como ejemplo.

Si la herramienta final instalada no tiene un complemento correspondiente, omita este paso y controle directamente la herramienta final a

través de comandos de E/S en la programación posterior.

1. Haga clic en Dobot+ en el lado derecho de la interfaz principal para abrir el panel de Dobot+.

2. Haga clic en Agregar complementos y luego haga clic en Instalar el complemento DH para completar la instalación.

Configuración y selección del sistema de coordenadas de la herramienta.

100
Machine Translated by Google

Para obtener detalles sobre el sistema de coordenadas de la herramienta, consulte Sistema de coordenadas de la herramienta. Aquí tomamos la configuración de entrada

como ejemplo.

1. Abra la página Configuración > Sistema de coordenadas > Sistema de coordenadas de herramienta .

2. Agregue o modifique un sistema de coordenadas. Introduzca el desplazamiento del punto central de la herramienta con respecto a la brida

punto central y haga clic en Aceptar.

3. Seleccione el sistema de coordenadas de herramienta que configuró en el último paso en el panel de control.

Editando proyecto

Para obtener detalles sobre la programación, consulte DobotBlockly y Script. Aquí tomamos DobotBlockly como ejemplo.

Para lograr la escena descrita al principio de este capítulo, necesita enseñar cuatro puntos, a saber, el punto de recogida P1, el punto de transición

P2 (sobre el punto de recogida), el punto de transición P3 (sobre el punto de carga) y el punto de carga. punto P4.

101
Machine Translated by Google

1. Abra la página Puntos, mueva el brazo del robot a P1 y haga clic en Agregar.

102
Machine Translated by Google

2. Agrega P2, P3 y P4 de la misma manera.

3. Arrastre los bloques al área de programación para realizar la recogida y descarga del material. La figura

A continuación se muestra un programa sencillo para su referencia.

4. Guarde el proyecto.

Configurar e ingresar al modo de E/S remotas

Para obtener detalles sobre el control remoto, consulte Control remoto. Aquí solo se describen los pasos para configurar e ingresar al modo

de E/S remotas según la escena de ejemplo.

1. Abra la página Configuración > Control remoto .

2. Establezca el modo actual en E/S remota.

3. Haga clic en Abrir y seleccione el proyecto DobotBlockly que guardó antes.

4. Haga clic en Modificar para modificar la configuración de E/S según la escena descrita al principio de

Este capítulo.

5. Haga clic en Aplicar para ingresar al modo IO remoto.

103
Machine Translated by Google

Después de ingresar al modo de E/S remotas, presione el botón de inicio conectado al controlador del brazo robótico y

el brazo robótico comenzará a ejecutar el proyecto.

104
Machine Translated by Google

Apéndice A Definición del registro Modbus

1 Introducción a Modbus

El protocolo Modbus es un protocolo de comunicación en serie. El sistema de robot puede comunicarse con externos.

equipo a través de este protocolo. El equipo externo, como un PLC, se configura como maestro Modbus y

el sistema de robot está configurado como esclavo.

Actualmente Modbus cuenta con las siguientes versiones:

Modbus­RTU: Es compacto y adopta representación binaria de datos, utilizando un modo de suma de verificación de

verificación de redundancia cíclica.

Modbus­ASCII: Adopta representación de cadena ASCII, que es legible y redundante, utilizando

modo de suma de comprobación de verificación de redundancia longitudinal.

Modbus­TCP: Adopta una conexión TCP sobre TCP/IP. Este modo no requiere suma de comprobación

cálculo.

Basándonos en nuestra interfaz de hardware existente, actualmente adoptamos el esquema Modbus­TCP.

Una dirección Modbus normalmente consta de cinco dígitos, incluido el código de tipo de datos inicial, seguido del

dirección de compensación. La biblioteca de protocolo Modbus Master asigna direcciones Modbus estándar a la función Modbus

números y lee y escribe datos de estaciones esclavas.

La biblioteca de protocolo Modbus Master admite las siguientes direcciones:

00001­09999: Salida digital (bobina)

10001­19999: Entrada digital (contacto)

30001­39999: Registro de entrada de datos (generalmente entrada analógica)

40001­49999: Registro de tenencia de datos

Los datos Modbus incluyen principalmente cuatro tipos: estado de bobina, entrada discreta, registro de entrada y registros de retención.

Según el espacio de memoria del robot, se definen cuatro tipos de registros: bobina, contacto (entrada discreta), entrada

y registros de retención, para la interacción de datos entre el equipo externo y el sistema robótico. cada registro

tiene 4096 direcciones. Para más detalles, consulte la descripción a continuación.

2 Registro de bobina (robot de control)

dirección del autómata Dirección del script (Get/SetCoils) Tipo de registro Función

00001 0 Poco Comenzar

00002 1 Poco Pausa

105
Machine Translated by Google

00003 2 Poco Continuar

00004 3 Poco Detener

00005 4 Poco Parada de emergencia

00006 5 Poco Borrar alarma

00007 6 Poco Encendido

00101 100 Poco Permitir

00102 101 Poco Desactivar

03096 – 10000 3095 – 9999 Poco Usuario definido

3 Entrada discreta (estado del robot)

dirección del autómata Dirección del script (GetInBits) Tipo de registro Función

10002 1 Poco Estado de parada

10003 2 Poco Estado en pausa

10004 3 Poco Estado de ejecución

10005 4 Poco Estado de alarma

10006 5 Poco Reservado

10008 7 Poco Modo remoto

13096 – 20000 3095 – 9999 Poco Usuario definido

4 registro de entrada

Número Guion
SOCIEDAD ANÓNIMA Datos Registro
de Byte DIRECCIÓN Función
DIRECCIÓN tipo tipo
valores (GetInRegs)

no firmado
31000 1 2 999 U16 Validez de los datos
corto

no firmado Longitud total en bytes de


31001 1 2 1000 U16
corto mensaje

31002 – no firmado
3 6 1001 – 1003 U16 Reservado
31004 corto

31005 –
uint64 1 8 1004 – 1007 U64 Entrada digital
31008

31009 –
uint64 1 8 1008 – 1011 U64 Salida digital
31012

106
Machine Translated by Google

31013–
punto 6 4 1 8 1012–1015 U64 Modo robot
31016

31017–
punto 6 4 1 8 1016–1019 U64 marca de tiempo
31020

31021–
punto 6 4 1 8 1020–1023 U64 R eservado
31024

Valor estándar de nueva


31025– prueba de estructura de
punto 6 4 1 8 1024–1027 U64
31028 memoria 0 x 0 1 2 3 4 5 6 7 8 9 AB
CDEF

31029–
doble 1 8 1028–1031 F64 R eservado
31032

31033–
doble 1 8 1032–1035 F64 Tasa de velocidad
31036

31037– Momento actual tu mofrobot


doble 1 8 1036–1039 F64
31040

voltaje del tablero


31041– de control
doble 1 8 1040–1043 F64
31044 ( No está portado por
CCBOX)

voltaje del robot


31045–
doble 1 8 1044–1047 F64 ( No está portado por
31048
CCBOX)

Actualidad del robot


31049–
doble 1 8 1048–1051 F64 ( No está portado por
31052
CCBOX)

31053–
doble 1 8 1052–1055 F64 R eservado
31056

31057–
doble 1 8 1056–1059 F64 R eservado
31060

31061–
doble 3 24 1060–1071 F64 R eservado
31072

31073–
doble 3 24 1072–1083 F64 R eservado
31084

31085–
doble 3 24 1084–1095 F64 R eservado
31096

31097– Posición conjunta


doble 6 48 1096–1119 F64
31120 objetivo

31121–
doble 6 48 1120–1143 F64 Velocidad de articulación objetivo
31144

31145– Aceleración
doble 6 48 1144–1167 F64
31168 conjunta objetivo

31169–
doble 6 48 1168–1191 F64 Objetivo de corriente conjunta

107
Machine Translated by Google

31192 doble 6 48 1168–1191 F64 Objetivo de corriente conjunta

31193–
doble 6 48 1192–1215 F64 par de torsión objetivo
31216

31217– A c tu
doble 6 48 1216–1239 F64
31240 aljointposition

31241–
doble 6 48 1240–1263 F64 A c tu aljointspeed
31264

31265–
doble 6 48 1264–1287 F64 A c tu aljointcu rr ent
31288

Fuerza del sensor TCP


31289– (Es necesario instalar
doble 6 48 1288–1311 F64
31312 un sensor de fuerza de
seis dimensiones)

TCP actual
31313–
doble 6 48 1312–1335 F64 Coordenadas
31336
cartesianas

31337– TCP actual


doble 6 48 1336–1359 F64
31360 C velocidad artesiana

Fuerza TCP
31361–
doble 6 48 1360–1383 F64 (calcular a través de la
31384
corriente conjunta)

destino TCP
31384–
doble 6 48 1384–1407 F64 Coordenadas
31408
cartesianas

31409– destino TCP


doble 6 48 1408–1431 F64
31432 C velocidad artesiana

31433–
doble 6 48 1432–1455 F64 Temperatura conjunta
31456

31456–
doble 6 48 1456–1479 F64 Modo de control conjunto
31480

31481–
doble 6 48 1480–1503 F64 tensión conjunta
31504

31505– sistema de coordenadas


carbonizarse 4 4 1504–1505 U16
31506 manual

1 5 0 6 byte
31507 carbonizarse 1 1 U8 Coordenadas U
bajo

1 5 0 6 byte
31507 carbonizarse 1 1 U8 Coordenadas de herramienta
alto

1 5 0 7 byte Una señal de ejecución


31508 carbonizarse 1 1 U8
bajo de cola de algoritmo

1 5 0 7 byte Un algoritmo
31508 carbonizarse 1 1 U8
alto queuepauseseñal

108
Machine Translated by Google

31509 carbonizarse 1 1 1 5 0 8 byte U8 velocidad conjunta


bajo

1 5 0 8 byte aceleración conjunta


31509 carbonizarse 1 1 U8
alto tasa

1 5 0 9 byte
31510 carbonizarse 1 1 U8 tasa de impulsión conjunta
bajo

1 5 0 9 byte C relación de velocidad de


31510 carbonizarse 1 1 U8
alto posición artesiana

1 5 1 0 byte C artesianpos tu
31511 carbonizarse 1 1 U8
bajo respeedratio

1 5 1 0 byte C relación de aceleración


31511 carbonizarse 1 1 U8
alto de posición artesiana

1 5 1 1 byte C artesianpos tu
31512 carbonizarse 1 1 U8
bajo reacelerationratio

1 5 1 1 byte C posición artesianajerkr


31512 carbonizarse 1 1 U8
alto atio

1 5 1 2 byte C artesianpos tu rejerkratio


31513 carbonizarse 1 1 U8
bajo

1 5 1 2 byte
31513 carbonizarse 1 1 U8 R obotbrakesta tu s
alto

1 5 1 3 byte R obotenablingsta tu
31514 carbonizarse 1 1 U8
bajo s

1 5 1 3 byte
31514 carbonizarse 1 1 U8 R obotdragsta tu s
alto

1 5 1 4 byte
31515 carbonizarse 1 1 U8 R obotdragsta tu s
bajo

1 5 1 4 byte
31515 carbonizarse 1 1 U8 R obotalarmsta tu s
alto

1 5 1 5 byte
31516 carbonizarse 1 1 U8 R obotjogsta tu s
bajo

1 5 1 5 byte
31516 carbonizarse 1 1 U8 tipo de robot
alto

1 5 1 6 byte Señal de arrastre del botón


31517 carbonizarse 1 1 U8
bajo

Señal de

1 5 1 6 byte habilitación del botón


31517 carbonizarse 1 1 U8
alto ( No está portado por
Serie Nova)

Señal de grabación del botón


1 5 1 7 byte
31518 carbonizarse 1 1 U8
bajo ( No está portado por
Serie Nova)

109
Machine Translated by Google

Señal de

reproducción del panel de botones


1 5 1 7 byte
31518 carbonizarse 1 1 U8
( No está portado por
alto
Serie Nova)

Señal de control

de agarre del panel


1 5 1 8 byte
31519 carbonizarse 1 1 U8 de botones
bajo
( No está portado por
Serie Nova)

Fuerza de seis
dimensiones en línea esta tu s
1 5 1 8 byte
31519 carbonizarse 1 1 U8 (Es necesario instalar un
alto
sensor de fuerza de seis

dimensiones)

1 5 1 9 byte
31520 carbonizarse 1 1 yo 8 Estatus de colisiones
bajo

(S a fe S kin)
1 5 1 9 byte
31520 carbonizarse 1 1 yo 8 armclosetopausesta
alto
tu s

1 5 2 0 byte (S a fe S kin) J 4
31521 carbonizarse 1 1 yo 8
bajo closetopausesta tu s

1 5 2 0 byte (S a fe S kin) J 5
31521 carbonizarse 1 1 yo 8
alto closetopausesta tu s

1 5 2 1 byte (S a fe S kin) J 6
31522 carbonizarse 1 1 yo 8
bajo closetopausesta tu s

1 5 2 1 byte
31522 carbonizarse 1 1 yo 8 R eservado
alto

31523–
­ ­ ­ 1522–1551 ­ R eservado
31552

31553–
doble 1 8 1552–1555 F64 R eservado
31556

31557–
punto 6 4 1 8 1556–1559 U64 R eservado
31560

31561–
doble 6 48 1560–1583 F64 A c tu altorque
31584

31585–
doble 1 8 1584–1587 F64 Peso de carga (kg)
31588

Distancia excéntrica
31589–
doble 1 8 1588–1591 F64 direccional X (mm)
31592

Distancia excéntrica
31593–
doble 1 8 1592–1595 F64 direccional Y (mm)
31596

Z ­ direccional
31597–

110
Machine Translated by Google

31600 (mm)

31601 –
doble 6 48 1600 – 1623 F64 Coordenadas del usuario
31624

31625 –
doble 6 48 1624 – 1647 F64 Coordenadas de herramienta
31648

31649 – Reproducción de trayectoria


doble 1 8 1648 – 1651 F64
31652 índice de ejecución

valor original de
fuerza actual
31653 – de seis dimensiones
doble 6 48 1652 – 1675 F64
31676 (Seis dimensiones
necesidades del sensor de fuerza

Para ser instalado)

31677 – [qw,qx,qy,qz]
doble 4 32 1676 – 1691 F64
31692 cuaternión objetivo

31693 – [qw,qx,qy,qz]
doble 4 32 1692 – 1707 F64
31708 cuaternión real

31709 –
doble 1 24 1708 – 1720 F64 Reservado
31721

1440 Totalmente 1440 bytes

5 Registro de retención (interacción entre robot y


SOCIEDAD ANÓNIMA)

SOCIEDAD ANÓNIMA
Dirección del guión Registro
Función
DIRECCIÓN (Obtener/EstablecerHoldRegs) tipo

Establezca la velocidad global, rango: 1–100 (el valor


40101 100 U16
más allá del rango no tendrá efecto)

40001 –
0 – 1280 U16 Reservado para paletizado
41281

43095 –
3095 – 8999 U16 Usuario definido
49000

49001 9000 U16 Índice de tornillo actual

Especifique el número de tornillo a ejecutar:


49002 9001 U16 El número comienza con 1 y 0 significa que no hay tornillo.
se especifica el número

Resultado del bloqueo del tornillo:


49003 9002 U16 Apoyar como máximo 50 grupos; 0 representa fracaso; 1
representa el éxito; 2 representa Ninguno

Número de tornillos en el producto de bloqueo.


49004 9003 U16
(estación de trabajo)

111
Machine Translated by Google

49004 9003 U16 (estación de trabajo)

Generar resultado de bloqueo:


49005 –
9004 – 9053 U16 Apoyar como máximo 50 grupos; 0 representa fracaso; 1
49054
representa el éxito; 2 representa Ninguno

Código de alarma:

0: Sin alarma; 1: No hay material en la máquina atornilladora


al sacar los tornillos; 2: Hay tornillos en el
49055 9054 U16
destornillador antes de atornillar; 3: Toma de tornillos
falla; 4: Bloqueo anormal del tornillo; 5: El
el destornillador eléctrico es anormal

49056 9055 U16 Número total de tornillos bloqueados

49057 9056 U16 Número total de tornillos bloqueados que no funcionan

49058 9057 U16 Número total de productos bloqueados

49201 9220 F64 Torsión de bloqueo del tornillo (Nm)

49205 9224 F64 Ángulo de bloqueo del tornillo (°)

49209 9228 F64 Tiempo (s) del ciclo de bloqueo del tornillo

49213 – Torsión de bloqueo del producto (Nm);


9232 – 9431 F64
49412 Soporta como máximo 50 grupos.

49413 – Ángulo de bloqueo del producto (°)


9432 – 9631 F64
49612 Soporta como máximo 50 grupos.

112
Machine Translated by Google

Apéndice B Comandos Blockly


B.1 Inicio rápido
B.1.1 Controlar el movimiento del robot

B.1.2 Leer y escribir datos de registro Modbus B.1.3

Transmitir datos mediante comunicación TCP


B.1.4 Paletizar

B.2 Descripción del bloque


B.2.1 Evento

B.2.2 Control

B.2.3 Operador

B.2.4 Cadena
B.2.5 Personalizado

B.2.6 OI

B.2.7 Moción

B.2.8 Configuración avanzada de movimiento


B.2.9 Modbus

B.2.10 TCP

113
Machine Translated by Google

Inicio rápido

114
Machine Translated by Google

Controlar el movimiento del robot

Descripción de la escena

Para experimentar cómo controlar el movimiento del brazo robótico mediante programación en bloques, puede asumir la siguiente

escena:

Cuando el controlador DI1 está en ON, el robot se mueve de P1 a P2 en modo lineal, se mueve a P4 a través de P3 en un

modo arco y luego regresa por el mismo camino. Cuando el controlador DI1 está apagado, el brazo robótico no
mover.

Por favor, primero enseñe P1~P4 según la figura anterior.

Pasos para programar

Para lograr esta escena, debe editar el programa como se muestra en la siguiente figura.

1. El brazo robótico se mueve hasta el punto inicial mediante el movimiento articular (P1).

115
Machine Translated by Google

2. Establezca un bucle incondicional para que los comandos posteriores se ciclen mientras el programa se está ejecutando.

3. Juzgue si el controlador DI1 está encendido. El programa siguiente se ejecutará sólo cuando el

El controlador DI1 está encendido. De lo contrario, ingresará directamente al siguiente bucle y volverá a adquirir el estado de DI1.

4. El brazo robótico se mueve a P2 en el modo lineal.

5. El brazo del robot se mueve a P4 a través de P3 mediante el movimiento del arco.

6. El brazo del robot se mueve a P2 a través de P3 a través del movimiento de arco (regresa por el mismo camino).

7. El brazo robótico se mueve a P1 en el modo lineal y luego ingresa al siguiente bucle (regrese al Paso 3).

Ejecute el programa

Ejecute el programa después de enseñar los puntos y programar. Puede configurar el estado de DI1 a través de DI virtual en el panel IO.

116
Machine Translated by Google

Leer y escribir datos de registro Modbus


Descripción de la escena

Para experimentar cómo leer y escribir datos Modbus mediante programación en bloques, puede asumir la siguiente escena:

Cree un maestro Modbus para el robot. Conéctese al esclavo externo y lea la dirección del registro de bobina especificado. Si el valor es 1,

el robot se mueve a P1.

Pasos para programar

Para lograr esta escena, debe editar el programa como se muestra en la siguiente figura.

1. Cree la estación maestra. Establezca la dirección IP en la dirección esclava y el puerto y el ID en los valores predeterminados

valores. En esta demostración, la IP está configurada como dirección del robot, ya que aquí se utiliza el robot esclavo para una verificación rápida.

2. Determine si la estación maestra se creó exitosamente. Los pasos posteriores se ejecutarán solo si la creación es exitosa; de lo

contrario, el programa finalizará directamente.

3. Si se ha modificado el valor del registro de bobina 0 del robot, puede afectar al programa posterior. Entonces

primero debe establecer el valor del registro de la bobina de 0 a 0.

4. Espere a que el valor del registro de bobina 0 cambie a 1.

5. Controle el robot para que se mueva a P1, que es un punto definido por el usuario.
6. Cierre la estación maestra.

Ejecute el programa

117
Machine Translated by Google

Si necesita ejecutar el programa rápidamente, puede utilizar la herramienta de depuración de DobotStudio Pro para modificar el valor del registro

de la bobina.

1. Abra la herramienta de depuración e ingrese a la página "Herramienta de red > Modbus TCP".

2. Mueva el robot a un punto distinto de P1 (para observar si el robot ejecuta el movimiento

dominio). Luego guarde y ejecute el programa.

3. Después de ver "Crear Modbus Master Success" en el registro de ejecución, seleccione Activo en la herramienta de depuración.

y modificar la dirección de red y el puerto.

4. Modifique el código de función de ID del esclavo para escribir una bobina única y modifique los datos de la resistencia de 0 a 1. Luego

haga clic en Enviar.

5. Observe si el robot se mueve a P1.

La siguiente figura muestra la interfaz de la herramienta de depuración. Los números marcados corresponden a los pasos.

arriba.

118
Machine Translated by Google

119
Machine Translated by Google

Transmitir datos por comunicación TCP


Descripción de la escena

Para experimentar cómo realizar la comunicación TCP mediante programación en bloques, puede asumir la siguiente

escena:

Cree un servidor TCP para el robot. Espere a que el cliente se conecte al servidor y envíe el comando "ir".

Luego, el servidor devuelve el mensaje "Ir a P1" y el robot comienza a moverse a P1.

Pasos para programar

Para lograr esta escena, debe editar el programa como se muestra en la siguiente figura.

1. Cree el servidor TCP (Socket 1). Configure la IP (IP del robot) y el puerto (personalizado).

2. Determine si el servidor TCP se creó correctamente. Los pasos siguientes se ejecutarán únicamente

si la creación es exitosa, de lo contrario, el programa finalizará directamente.

120
Machine Translated by Google

3. Espere a que el cliente se conecte y envíe la cadena. Guarde la cadena recibida en la variable de cadena "tcp_recv". Debe

crear la variable de cadena con anticipación.

4. Determine si la cadena recibida incluye "go". si es así, ejecute los pasos 5 y 6. De lo contrario, ejecute el paso 7 directamente.

5. Envíe la cadena "Ir a P1" al cliente.

6. Controle el robot para que se mueva a P1, que es un punto definido por el usuario.
7. Cierre el servidor TCP.

Ejecute el programa

Si necesita ejecutar el programa rápidamente, puede utilizar la herramienta de depuración de DobotStudio Pro como cliente TCP.

1. Abra la herramienta de depuración e ingrese a la página "Herramienta de red" > "Cliente TCP".

2. Mueva el robot a un punto distinto de P1 (para observar si el robot ejecuta el comando de movimiento). Luego guarde y

ejecute el programa.

3. Después de ver "Crear servidor TCP correctamente" en el registro de ejecución, modifique la dirección IP y el puerto del servidor

en la página DebugTools y haga clic en Conectar.

4. Una vez que la conexión sea exitosa, ingrese "ir" en la parte inferior de la página DebugTools y haga clic en Enviar.

5. Observe si la herramienta de depuración recibe el mensaje "Ir a P1" y si el robot se mueve a P1.

121
Machine Translated by Google

La siguiente figura muestra la interfaz de la herramienta de depuración. Los números marcados corresponden a los pasos.
arriba.

122
Machine Translated by Google

paletizar

Descripción de la escena

En el caso en el que los materiales a transportar estén dispuestos de manera regular y uniformemente espaciados, enseñar

la posición de cada material uno por uno puede conducir a grandes errores y baja eficiencia. El proceso de paletizado puede

resolver eficazmente estos problemas.

Suponga que el material debe apilarse formando un cubo. Debe paletizar manualmente un tipo de pila de destino y luego

enseñar los puntos relevantes:

Punto seguro (P1): Un punto al que el robot debe moverse al ensamblar o desarmar pilas para una transición segura.

Se puede establecer en un punto sobre el punto de recogida.

Punto de recogida (P2).

No es necesario enseñar el punto de preparación y el punto objetivo uno por uno. Consulte Configuración del tipo de pila.

Luego suponga que se ha instalado una pinza o ventosa en el extremo del brazo del robot, que está controlada por el

controlador DO1 para agarrar o liberar materiales.

Configurar el tipo de pila

Arrastre el bloque de paleta al área de programación y haga clic en el bloque para abrir el panel de paleta.

123
Machine Translated by Google

Dimensión de la plataforma

Unidimensional: los materiales están dispuestos en una fila y el número total de materiales es igual a
el número en la dirección X.

Bidimensional: los materiales están dispuestos en un cuadrado y el número total de materiales es igual al producto del

número en la dirección X y la dirección Y.

Tridimensional: los materiales se apilan en un cubo y el número total de materiales es igual al producto de los números

en tres direcciones.

Esta sección toma como ejemplo el apilamiento tridimensional. Aquí la cantidad de materiales en cada dirección se
establece en 10, por lo que esta demostración contiene 1000 materiales.

Configuración de puntos Tomando como ejemplo la pila tridimensional, es necesario configurar ocho puntos, que corresponden

a las posiciones de los materiales en las ocho esquinas del cubo. El sistema de control calculará automáticamente

el punto objetivo de cada material a través de los ocho puntos y la cantidad de materiales, y luego realizará la

paletización en el orden de los ejes de coordenadas X ­> Y ­> Z.

Al configurar puntos, puede seleccionar los puntos que se han enseñado en el proyecto o puede hacer clic en

Personalizado para obtener el punto actual del brazo robótico. El icono del punto configurado se volverá verde.

Pasos para programar

124
Machine Translated by Google

Para lograr esta escena, debe editar el programa como se muestra en la siguiente figura.

1. Crear palet1.

2. Cree una variable numérica personalizada y configúrela en 1, que se utiliza para registrar las veces de repetición.

3. Ejecute los comandos siguientes cíclicamente y establezca el número de veces en el número total de

puntos correspondientes al palet.

4. El robot se desplaza sobre el punto de recogida (P1).

5. El robot se desplaza hasta el punto de recogida (P2).

6. Configure DO1 en ON para controlar que la pinza recoja el material.

7. El robot regresa al punto de recogida (P1).

8. El robot se mueve 100 mm por encima del punto de palet actual.

9. El robot se mueve hasta el punto de palet actual.

10. Configure DO1 en APAGADO para controlar que la pinza suelte el material.

11. El robot regresa a 100 mm por encima del punto de palet actual.

125
Machine Translated by Google

12. Los tiempos de repetición se incrementan en 1. Regrese al Paso 4.

El programa de esta sección es sólo un ejemplo sencillo. Puede agregar más comandos de control y juicio de IO de

acuerdo con la condición real, como no realizar acciones posteriores si el material no se recoge.

Ejecute el programa

Ejecute el programa después de enseñar los puntos, configurar el tipo de pila y programar. Puede comprobar el estado de DO1

en el panel IO.

126
Machine Translated by Google

Descripción del bloque

127
Machine Translated by Google

Evento
Los comandos de evento se utilizan como marca para comenzar a ejecutar un programa.

Comando de inicio

Descripción: Es la marca del hilo principal de un programa. Después de crear un nuevo proyecto, hay un bloque de Inicio por defecto en

el área de programación. Coloque otros bloques que no sean eventos debajo del bloque Inicio para

programa.

Limitación: un proyecto solo puede tener un bloque de inicio .

Comando de inicio de subproceso

Descripción: Es la marca del subproceso de un programa. El subproceso se ejecutará sincrónicamente con el subproceso principal, pero el

subproceso no puede llamar a los comandos de control del robot. Sólo puede realizar operación variable o control de E/S. Determine si

desea utilizar el subproceso de acuerdo con los requisitos lógicos.

Limitación: un proyecto solo puede tener cinco subprocesos.

128
Machine Translated by Google

Control
Los bloques de control se utilizan para controlar la ruta de ejecución del programa.

Esperar hasta…

Descripción: el programa deja de ejecutarse y continúa ejecutándose si el parámetro es verdadero.

Parámetro: utilice otros bloques hexagonales como parámetro.

repetir n veces

Descripción: inserte otros bloques dentro del bloque y el comando del bloque incrustado se ejecutará repetidamente durante

los tiempos especificados.

Parámetro: número de veces que se repite la ejecución.

Repetir continuamente

Descripción: Cuando se incrustan otros bloques dentro de este bloque, los comandos incrustados se

ejecutado repetidamente hasta la reunión .

Finalizar repetición

Descripción: Se utiliza para incrustar dentro de los bloques de repetición de ejecución. Cuando el programa se ejecuta en este

bloque, finalizará directamente la repetición y ejecutará los bloques después del bloque repetido de ejecución.

129
Machine Translated by Google

si…entonces…

Descripción: Si el parámetro es verdadero, ejecute el bloque incrustado. Si el parámetro es falso, salte directamente
al siguiente bloque.

Parámetro: utilice otros bloques hexagonales que devuelvan un valor booleano (verdadero o falso) como parámetro.

si…entonces…si no…

Descripción: Si el parámetro es verdadero, ejecute los bloques incrustados antes de "else". Si el parámetro es falso,
ejecute los bloques incrustados después de "else".

Parámetro: utilice otros bloques hexagonales que devuelvan un valor booleano (verdadero o falso) como parámetro.

Repetir hasta…

Descripción: Ejecute repetidamente el bloque incrustado hasta que el parámetro sea verdadero.

Parámetro: utilice otros bloques hexagonales que devuelvan un valor booleano (verdadero o falso) como parámetro.

Coloca una etiqueta

Descripción: Establezca una etiqueta, luego podrá saltar a la etiqueta a través .

130
Machine Translated by Google

Parámetro: nombre de la etiqueta, que debe comenzar con una letra y no se pueden usar caracteres especiales como espacios.

usado.

Ir a etiqueta

Descripción: Cuando el programa se ejecuta en el bloque, saltará directamente a la etiqueta especificada y se ejecutará.

los bloques después de la etiqueta.

Parámetro: nombre de la etiqueta

Comandos de plegado

Descripción: Dobla los bloques incrustados. No tiene ningún efecto de control excepto el de hacer que el programa sea más legible.

Parámetro: un nombre para describir los bloques plegados.

Pausa

Descripción: El programa se detiene automáticamente después de ejecutarse hasta el bloque. Puede continuar funcionando únicamente a

través de software de control u operaciones de control remoto.

Establecer detección de colisiones

Descripción: Establece la detección de colisiones. El nivel de detección de colisiones establecido a través de este bloque es válido solo cuando el

proyecto se está ejecutando y restaurará el valor anterior después de que se detenga el proyecto.

Parámetro: Seleccione la sensibilidad de la detección de colisiones. Puede desactivarlo o seleccionar del nivel 1 al nivel 5. Cuanto más alto sea

el nivel, más sensible será la detección de colisiones.

Modificar el sistema de coordenadas del usuario

131
Machine Translated by Google

Descripción: Modifica el sistema de coordenadas del usuario especificado. La modificación es válida solo cuando el proyecto se está ejecutando y el

sistema de coordenadas restaurará el valor anterior después de que se detenga el proyecto.

Parámetro:

Especificar el índice del sistema de coordenadas del usuario.

Especificar los parámetros del sistema de coordenadas del usuario modificado.

Modificar el sistema de coordenadas de la herramienta

Descripción: Modifica el sistema de coordenadas de la herramienta especificada. La modificación es válida solo cuando el proyecto se está ejecutando

y el sistema de coordenadas restaurará el valor anterior después de que se detenga el proyecto.

Parámetro:

Especificar el índice del sistema de coordenadas de la herramienta.

Especificar los parámetros del sistema de coordenadas de herramienta modificado.

Crear palet

Descripción: Crea el tipo de pila de un palet. Consulte Paletizado para obtener más detalles.

Parámetro: : nombre de la paleta

Obtener recuento de puntos de paleta

Descripción: Obtenga el número de puntos objetivo del palet especificado.

Parámetro: : nombre de la paleta

Obtener coordenadas de puntos de palet

Descripción: Obtenga las coordenadas del punto especificado de la paleta especificada.

132
Machine Translated by Google

Parámetro: :

índice de puntos

del nombre de la paleta, comenzando desde 1

Retrasar la ejecución

Descripción: Cuando el programa se ejecuta en el bloque, se detendrá durante un tiempo específico antes de continuar.
correr.

Parámetro: tiempo de pausa del programa.

Espera de movimiento

Descripción: Se utiliza antes o después de un bloque de movimiento para retrasar la entrega de comandos de movimiento o

retrasar la entrega del siguiente comando después de que se completa el movimiento anterior.

Parámetro: tiempo de retraso para entregar el comando

Obtener la hora del sistema

Descripción: Obtenga la hora actual del sistema.

Retorno: marca de tiempo Unix de la hora actual del sistema.

133
Machine Translated by Google

Operador
Los comandos del operador se utilizan para calcular variables o constantes.

comando aritmético

Descripción: Realiza sumas, restas, multiplicaciones o divisiones de los parámetros.

Parámetro:

Complete ambos espacios en blanco con variables o constantes. Puede utilizar bloques ovalados que devuelven valores numéricos o ingresar

directamente el valor en los espacios en blanco.

Seleccione un operador.

Retorno: Valor después de la operación

comando de comparación

Descripción: Compara los parámetros.

Parámetro:

Complete ambos espacios en blanco con variables o constantes. Puede utilizar bloques ovalados que devuelvan valores numéricos o ingresar

valores directamente en los espacios en blanco.

Seleccione un operador de comparación.

Retorno: Devuelve verdadero si el resultado de la comparación es verdadero y falso si el resultado es falso.

Comando A y B

Descripción: Realizar una operación según los parámetros.

Parámetro: Complete ambos espacios en blanco con variables (usando bloques hexagonales).

Retorno: Devuelve verdadero si los dos parámetros son verdaderos y falso si alguno de ellos es falso.

Comando A o B

134
Machine Translated by Google

Descripción: Realizar una operación con los parámetros.

Parámetro: Complete ambos espacios en blanco (usando bloques hexagonales).

Retorno: Devuelve verdadero si alguno de los parámetros es verdadero y falso si ambos son falsos.

No es un comando

Descripción: No realizar ninguna operación con los parámetros.

Parámetro: Complete el espacio en blanco con una variable (usando bloques hexagonales).

Retorno: Devuelve falso si el parámetro es verdadero y verdadero si el parámetro es falso.

obtener el resto

Descripción: Obtiene el resto de parámetros.

Parámetro: Complete ambos espacios en blanco con variables o constantes. Puedes usar bloques ovalados que devuelven números.

valores, o complete directamente el valor en los espacios en blanco.

Retorno: Valor después de la operación

Operación de redondeo

Descripción: Realizar operación de redondeo a parámetros.

Parámetro: Complete el espacio en blanco con una variable o constante. Puedes usar bloques ovalados que devuelven números.

valores, o complete directamente el valor en el espacio en blanco.

Retorno: Valor después de la operación

operación monádica

Descripción: Realiza varias operaciones monádicas con parámetros.

135
Machine Translated by Google

Parámetro:

Seleccione un operador.

abdominales

piso

techo

cuadrado

pecado

porque

broncearse

como en

acos

un bronceado

en

jajaja

mi^

10^

Complete el espacio en blanco con una variable o constante. Puede utilizar bloques ovalados que devuelven valores numéricos o completar directamente el valor en el

espacio en blanco.

Retorno: Valor después de la operación

Imprimir

Descripción: Envía los parámetros a la consola, que se utiliza principalmente para la depuración.

Parámetro:

Seleccione Sincronizar o Asíncrono. Para Sync, imprimirá información después de que se ejecuten todos los comandos que se han entregado. Para Async,

imprimirá información inmediatamente cuando el programa se ejecute en el bloque.

Variables o constantes a generar. Puedes utilizar bloques ovalados o rellenar directamente el espacio en blanco.

136
Machine Translated by Google

Cadena
Los comandos de cadena incluyen funciones generales de cadena y matriz.

Obtener carácter en una determinada posición de la cadena

Descripción: obtiene el carácter en la posición especificada de la cadena.

Parámetro:

1er parámetro: especifique la posición del carácter que se devolverá en la cadena 2do parámetro:

cadena, puede usar otros bloques ovalados o completarlos directamente.

Retorno: carácter en la posición especificada de la cadena

Determinar si la cadena A contiene la cadena B

Descripción: determine si la primera cadena contiene la segunda cadena.

Parámetro: Dos cadenas. Puede utilizar bloques ovalados que devuelven una cadena o completarlos directamente.

Retorno: si la primera cadena contiene la segunda cadena, devuelve verdadero; de lo contrario, devuelve falso.

Conecta dos cuerdas

Descripción: Conecte dos cuerdas en una sola cuerda. La segunda cadena seguirá a la primera.

Parámetro: Dos cadenas a conectar. Puede utilizar bloques ovalados que devuelven una cadena o completarlos directamente.

Retorno: Cordón articulado.

Obtener la longitud de una cadena o matriz

Descripción: obtiene la longitud de la cadena o matriz especificada. La longitud de una cadena se refiere a cuántos caracteres tiene

la cadena y la longitud de una matriz se refiere a cuántos elementos tiene la matriz.

137
Machine Translated by Google

Parámetro: una cadena o matriz. Puede utilizar bloques ovalados que devuelvan una cadena o una matriz.

Retorno: longitud de la cadena o matriz

Compara dos cadenas

Descripción: Compara los tamaños de dos cadenas según los códigos ACS .

Parámetro: Dos cadenas a comparar. Puede utilizar bloques ovalados que devuelven una cadena o completarlos directamente.

Retorno: devuelve 0 cuando la cadena 1 y la cadena 2 son iguales, ­1 cuando la cadena 1 es menor que la cadena 2 y 1 cuando la cadena 1 es

mayor que la cadena 2.

Convertir matriz a cadena

Descripción: convierte la matriz especificada en una cadena y los diferentes elementos de la matriz en la cadena se separan por el delimitador

especificado. Por ejemplo, si la matriz es {1,2,3} y el delimitador es |, entonces la cadena convertida es "1|2|3".

Parámetro:

Una matriz que se convertirá en cadena. Puedes usar bloques ovalados que devuelven una cadena.

Delimitador utilizado en la conversión

Retorno: Cadena convertida.

Convertir cadena a matriz

Descripción: convierte la cadena especificada en una matriz, utilizando el delimitador especificado para separar cadenas. Por ejemplo, si la matriz

es “1|2|3” y el delimitador es |, entonces la matriz convertida es {[1]=1,[2]=2,[3]=3}.

Parámetro:

Una cadena que se convertirá en una matriz. Puede usar bloques ovalados que devuelven una cadena o los completan directamente

Delimitador utilizado en la conversión

Retorno: matriz convertida.

Obtener elemento en una determinada posición de la matriz

138
Machine Translated by Google

Descripción: obtiene el elemento en la posición del subíndice especificada en la matriz especificada. El subíndice representa la

posición del elemento en la matriz. Por ejemplo, el subíndice de 8 en la matriz {7,8,9} es 2.

Parámetro:

Matriz de destino, utilizando bloques ovalados que devuelven valores de

matriz. subíndice del elemento especificado.

Retorno: valor del elemento en la posición especificada en la matriz.

Obtener múltiples caracteres especificados de cadena

Descripción: obtiene varios elementos en la posición del subíndice especificada en la matriz especificada. Obtenga el elemento según

el valor del paso dentro del rango de los subíndices inicial y final.

Parámetro:

Matriz de destino, utilizando bloques ovalados que devuelven valores de matriz.

Especifique el rango de elementos mediante el subíndice inicial y el subíndice final.

El valor del paso se utiliza para determinar con qué frecuencia se obtienen los elementos. 1 se refiere a obtener todo, y 2 se refiere a

obtener todos los demás elementos, y así sucesivamente.

Retorno: nueva matriz de elementos especificados.

Establecer el carácter especificado de la matriz

Descripción: establece el valor del elemento en la posición especificada de la matriz.

Parámetro:

matriz de destino, utilizando bloques ovalados que devuelven valores de

matriz. subíndice del elemento.

valor del elemento.

139
Machine Translated by Google

Costumbre

Los comandos personalizados se utilizan para crear y administrar bloques personalizados y llamar a variables globales.

Llamar variable global

Descripción: Llamar a las variables globales configuradas en el software de control.

Parámetro: Nombre de una variable global.

Retorno: Valor de la variable global.

Establecer variables globales

Descripción: establece el valor de una variable especificada. Tenga en cuenta que el bloque para configurar variables globales y configurar

variables personalizadas tiene la misma forma, pero tiene funciones ligeramente diferentes.

Parámetro:

Seleccione una variable a modificar.

Valor después de la modificación. Puede completar directamente el valor en el espacio en blanco o utilizar otros bloques ovalados.

Crear variables

Haga clic para crear una variable. El nombre de la variable debe comenzar con una letra y no puede contener caracteres especiales como

espacios. Después de crear al menos una variable, verá los siguientes bloques de variables en el bloque

lista.

Variable numérica personalizada

Descripción: Se recomienda utilizar la variable numérica personalizada recién creada (valor predeterminado: nulo) después

de la asignación. También puede modificar el nombre de la variable o eliminar la variable a través de la lista desplegable de
variables.

140
Machine Translated by Google

Retorno: valor variable

Establecer el valor de la variable numérica personalizada

Descripción: establece el valor de una variable numérica específica. Tenga en cuenta que el bloque para configurar variables globales

y configurar variables personalizadas tiene la misma forma, pero tiene funciones ligeramente diferentes.

Parámetro:

Seleccione una variable a modificar.

Valor después de la modificación. Puede completar directamente el valor en el espacio en blanco o utilizar otros bloques ovalados.

Sumar valor de variable numérica

Descripción: Agrega el valor especificado a una variable numérica.

Parámetro:

Seleccione una variable a modificar.

Valor añadido. Puede completar directamente el valor en el espacio en blanco o utilizar otros bloques ovalados. Un valor negativo
Se refiere a la disminución del valor.

Variable de cadena personalizada

Descripción: Se recomienda utilizar la variable de cadena personalizada recién creada (valor predeterminado: nulo) después de la

asignación. También puede modificar el nombre de la variable o eliminar la variable a través del menú desplegable de variables.
lista.

Retorno: valor variable

Establecer el valor de la variable de cadena personalizada

Descripción: establece la variable de cadena especificada.

Parámetro:

141
Machine Translated by Google

Seleccione una variable a modificar.

Valor después de la modificación. Puede llenar el espacio en blanco directamente con una cadena.

Crear matriz

Haga clic para crear una matriz personalizada. El nombre de la matriz debe comenzar con una letra y no puede contener caracteres

especiales como espacios. Después de crear al menos una matriz, verá los siguientes bloques de matriz en el

lista de bloqueos.

Matriz personalizada

Descripción: la matriz personalizada recién creada es una matriz vacía de forma predeterminada. Se recomienda utilizarlo después de la

asignación. Haga clic con el botón derecho (PC) o mantenga presionado (Android o iOS) el bloque en la lista de bloques para modificar el nombre

de la matriz o eliminarla. También puede modificar el nombre de la matriz seleccionada actualmente o eliminar la matriz a través de la lista

desplegable de matrices en otros bloques de matrices. La casilla de verificación en el lado izquierdo del bloque de matriz no tiene ningún uso y puede

ignorarse.

Retorno: valor de la matriz.

Agregar variable a la matriz

Descripción: agrega una variable a una matriz especificada. La variable agregada será el último elemento de la matriz.

Parámetro:

Variable a agregar. Puede completar directamente la variable en el espacio en blanco o utilizar otros bloques ovalados.

Seleccione una matriz para modificar.

Eliminar elemento de la matriz

Descripción: elimina un elemento de una matriz especificada.

Parámetro:

Seleccione una matriz para modificar.

142
Machine Translated by Google

Índice de artículos. Puede completar directamente el índice en el espacio en blanco o usar otros bloques ovalados que devuelvan valores numéricos.

valores.

Eliminar todos los elementos de la matriz

Descripción: Elimina todos los elementos de la matriz.

Parámetro: seleccione una matriz para modificar.

Insertar elemento en la matriz

Descripción: inserta un elemento en una posición especificada de la matriz.

Parámetro:

Seleccione una matriz para modificar.

posición de inserción. Puede completar directamente el índice en el espacio en blanco o usar otros bloques ovalados que devuelvan

valores numéricos.

Variable a agregar. Puede completar directamente la variable en el espacio en blanco o utilizar otros bloques ovalados.

Reemplazar elementos de la matriz

Descripción: Reemplace un elemento de la matriz con una variable especificada.

Parámetro:

Seleccione una matriz para modificar.

Índice de artículos. Puede completar directamente el índice en el espacio en blanco o usar otros bloques ovalados que devuelvan valores numéricos.

valores.

Variable después del reemplazo. Puede completar directamente la variable en el espacio en blanco o utilizar otros bloques ovalados.

Obtener elementos de la matriz

Descripción: obtiene el valor de un elemento específico de la matriz.

143
Machine Translated by Google

Parámetro:

Seleccione una matriz.

Índice de artículos. Puede completar directamente el índice en el espacio en blanco o usar otros bloques ovalados que devuelvan valores numéricos.

valores.

Devolución: valor del artículo especificado

Obtener la cantidad de elementos en una matriz

Descripción: obtiene la cantidad de elementos de una matriz.

Parámetro: seleccione una matriz.

Retorno: Número de elementos en la matriz.

Crear función

Haga clic para crear una nueva función. Una función es un segmento de programa fijo. Puede definir un grupo de bloques que

implementen funciones específicas como una función. Cada vez que desee utilizar la función, solo necesita llamar a esta función sin

necesidad de crear el mismo grupo de bloques repetidamente. Es necesario declarar y definir una nueva función creada. Una vez que la

nueva función se haya creado correctamente, el bloque de funciones correspondiente aparecerá en la lista de bloques.

1. Declarar función

144
Machine Translated by Google

En esta interfaz, debe definir el nombre de la función y el tipo, cantidad y nombre de la entrada (parámetro). Los nombres de

funciones y parámetros no deben contener caracteres especiales como espacios. También puede agregar etiquetas a funciones,

que pueden usarse como comentarios para funciones o entradas.

1. Definir función

Después de completar la declaración de función, verá el bloque de encabezado de definición en la programación.


área.

Debe programar debajo del bloque de encabezado para definir la función.

Puede arrastrar la entrada en el bloque de encabezado para usarla en los bloques siguientes, indicando el uso de la entrada

cuando realmente se llama a la función como parámetro.

Función personalizada

Descripción: Los bloques de funciones personalizados, cuyo nombre y parámetros de entrada los define el usuario, se utilizan

para llamar a la función definida. Al hacer clic con el botón derecho (PC) o mantener presionada (App) el bloque en la lista de

bloques se puede modificar la declaración de la función. Si necesita eliminar la función, elimine el encabezado de definición
bloque de la función.

145
Machine Translated by Google

Crear subrutina

Haga clic para crear una nueva subrutina. La programación en bloques admite la incrustación y llamada de subrutinas, que

pueden ser programación en bloques y programación de scripts, con un máximo de dos niveles integrados.

Después de que la nueva subrutina se haya creado exitosamente, el bloque de subrutina correspondiente aparecerá en la

lista de bloqueos.

Después de seleccionar Programación de bloques, verá la página de programación de bloques de subrutinas. Puede

configurar la descripción de la subrutina y escribir la subrutina.

146
Machine Translated by Google

Después de seleccionar Programación de scripts, verá la ventana de programación de scripts de subrutina. Puede

configurar la descripción de la subrutina y escribir el subprograma.

Subrutina

Subrutina en bloque

Subrutina de script

Descripción: El bloque de subrutina, que define el usuario al crear una subrutina, se utiliza para llamar a la subrutina

guardada. Al hacer clic con el botón derecho (PC) o mantener presionada (App) el bloque en la lista de bloques se puede
modificar o eliminar la subrutina.

147
Machine Translated by Google

OI
Los bloques IO se utilizan para gestionar la entrada y salida de los terminales IO del brazo robótico. El rango de valores de los

puertos de entrada y salida está determinado por el número correspondiente de terminales del brazo del robot. Consulte la guía de

hardware del brazo robótico correspondiente.

Configurar salida digital

Descripción: Establece el estado de encendido/apagado del puerto de salida digital.

Parámetro:

Seleccione la posición del puerto DO, incluidos el controlador y la herramienta.

Seleccione el índice del puerto DO.

Seleccione el estado de salida (ON o OFF)

Establecer salida digital (para subproceso)

Descripción: Establece el estado de encendido/apagado del puerto de salida digital. Utilice este bloque al configurar en el sub­
hilo.

Parámetro:

Seleccione la posición del puerto DO, incluido el controlador y la herramienta

Seleccione el índice del puerto DO

Seleccione el estado de salida (ON o OFF)

Establecer un grupo de salida digital

Descripción: Establece un grupo de DO. Puede arrastrar el bloque al área de programación y hacer clic para configurarlo.

Parámetro:

148
Machine Translated by Google

haga clic en + o ­ para aumentar o disminuir el número de DO

Seleccione el índice del puerto DO

Seleccione el estado de salida (ON o OFF)

Esperar entrada digital

Descripción: Espere a que la DI especificada cumpla la condición o espere el tiempo de espera antes de ejecutar comandos de

bloque posteriores.

Parámetro:

Seleccione la posición del puerto DI, incluido el controlador y la herramienta.

Seleccione el índice del puerto DI.

Seleccione el tiempo de espera del

estado (ON o OFF) para esperar (0 significa esperar hasta que se cumpla la condición)

Establecer salida analógica

Descripción: Establece el valor del puerto de salida analógica.

Parámetro:

149
Machine Translated by Google

Seleccione el índice del puerto de salida analógica.

Valor de salida analógica. Puede ingresar el valor directamente en el espacio en blanco o usar bloques ovalados que devuelvan valores

numéricos.

Determinar el estado de la entrada digital

Descripción: determine si el estado actual del DI especificado cumple con la condición.

Parámetro:

Seleccione la posición del puerto DI, incluido el controlador y la herramienta.

Seleccione el índice del puerto DI.

Seleccione el estado que se considera verdadero

Devolución: si el estado actual del DI especificado cumple con la condición, devuelve verdadero; de lo contrario, devuelve

FALSO.

Obtener entrada analógica

Descripción: Obtenga el valor de la entrada analógica.

Parámetro:

Seleccione una posición de entrada analógica, incluido el controlador o la herramienta.

Seleccione un índice de puerto.

Retorno: valor de entrada analógica

150
Machine Translated by Google

Comandos de movimiento

Los comandos de movimiento se utilizan para controlar el movimiento del brazo del robot y establecer parámetros relacionados con el movimiento.

parámetros.

Todos los bloques de movimiento son comandos asincrónicos, es decir, una vez que el comando se entrega con éxito, el siguiente

comando se ejecutará sin esperar a que el robot complete el movimiento actual. Puede utilizar el comando de sincronización si necesita

esperar a que se ejecuten los comandos entregados antes de ejecutar comandos posteriores.

Los parámetros de punto se pueden seleccionar aquí después de agregarlos en la página "Punto" del proyecto. Los bloques de movimiento

también permiten arrastrar el bloque variable predeterminado y reemplazarlo con otros bloques ovalados que devuelven coordenadas

de puntos cartesianos.

Configuración avanzada

Cuando el bloque de movimiento preestablecido no puede cumplir con los requisitos de programación, puede crear un bloque que

controle el movimiento del robot mediante una configuración avanzada. El bloque creado aparecerá en el área de

programación. Para obtener más información, consulte Configuración avanzada de Motion.

Mover al punto objetivo

Descripción: Controla el robot para que se mueva desde la posición actual hasta el punto objetivo. Después de arrastrar los bloques al

área de programación, haga doble clic para realizar la configuración avanzada. Consulte Configuración avanzada de Motion para

obtener más detalles.

Parámetro:

Seleccione un modo de movimiento, incluido el movimiento articular (MovJ) y el movimiento lineal (MovL). Para el movimiento

articular, la trayectoria no es lineal y todas las articulaciones completan el movimiento

simultáneamente. punto objetivo

Mover al punto objetivo (con desplazamiento)

151
Machine Translated by Google

Descripción: controla el robot para que se mueva desde la posición actual a un punto objetivo después del desplazamiento. Puede

establecer el punto actual como punto objetivo.

Parámetro:

Seleccione un modo de movimiento, incluido el movimiento relativo de las articulaciones (RelMovJ) y el movimiento

relativo lineal

(RelMovL).

Desplazamiento del punto objetivo en la dirección de los ejes X, Y y Z con respecto al punto objetivo bajo el sistema de

coordenadas cartesianas. unidad: mm

Movimiento de compensación conjunta

Descripción: controla el robot para mover un desplazamiento específico desde la posición actual.

Parámetro: compensación conjunta. unidad: °

movimiento de arco

Descripción: Controle el robot para que se mueva desde la posición actual a una posición objetivo en un modo de arco interpolado

bajo el sistema de coordenadas cartesianas. Las coordenadas de la posición actual no deben estar en la línea recta determinada

por el punto intermedio y el punto final.

Parámetro:

El punto medio es un punto intermedio para determinar el arco.

El punto final es el punto objetivo.

Movimiento circular

Descripción: controle el brazo del robot para que se mueva desde la posición actual en un modo interpolado de círculo completo y

regrese a la posición actual después de mover un número específico de círculos. Las coordenadas de la posición actual no deben

estar en la línea recta determinada por el punto intermedio y el punto final.

Parámetro:

El punto medio es un punto intermedio para determinar todo el círculo.

El punto final se utiliza para determinar todo el círculo.

152
Machine Translated by Google

Ingrese el número de círculos para el movimiento circular. Rango de valores: 1~ 999.

Reproducción de trayectoria

Descripción: Controla el robot para reproducir la trayectoria. La trayectoria debe grabarse en el proceso de reproducción de trayectoria.

Parámetro:

Seleccione un archivo de trayectoria.

Seleccione la velocidad de movimiento en la reproducción:

velocidad uniforme

0,25x velocidad

0,5x velocidad

1x velocidad

2x velocidad

Comando de sincronización

Descripción: Cuando el programa ejecuta este comando, esperará a que el brazo robótico ejecute todos los comandos que se entregaron

anteriormente y luego continuará ejecutando los comandos posteriores.

Establecer proporción de CP

Descripción: Establezca la relación de trayectoria continua en movimiento, es decir, cuando el robot se mueve desde el punto inicial hasta el punto

final a través del punto intermedio, ya sea que pase el punto intermedio en ángulo recto o en curva, como se muestra a continuación.

153
Machine Translated by Google

Parámetro: Relación de trayectoria continua. Rango de valores: 0~100.

Establecer relación de velocidad conjunta

Descripción: Establece la relación de velocidad del movimiento articular.

Parámetro: relación de velocidad conjunta, rango: 0~100. Velocidad real del robot = porcentaje establecido en bloques × velocidad en la configuración

de reproducción × relación de velocidad global.

Establecer la relación de aceleración conjunta

Descripción: Establece la relación de aceleración del movimiento articular.

Parámetro: relación de aceleración conjunta, rango: 0~100. Aceleración real del robot = porcentaje establecido en bloques × aceleración en la configuración

de reproducción × relación de velocidad global.

Establecer relación de velocidad lineal

Descripción: Establece la relación de velocidad del movimiento lineal y de arco.

Parámetro:

154
Machine Translated by Google

Relación de velocidad lineal y de arco (rango de valores: 0~100). Velocidad real del robot = porcentaje establecido en bloques × velocidad

en la configuración de reproducción × relación de velocidad global.

Establecer relación de aceleración lineal

Descripción: Establece la relación de aceleración del movimiento lineal y de arco.

Parámetro:

Relación de aceleración lineal y de arco (rango de valores: 0~100). Aceleración real del robot = relación establecida × valor en la configuración de

reproducción en el software × relación de velocidad global.

Modificar coordenadas

Descripción: Modifica el valor del punto especificado en el eje de coordenadas cartesiano especificado.

Parámetro:

Seleccione un punto.

Seleccione un eje de coordenadas.

Establecer el valor de las coordenadas.

Obtener coordenadas

Descripción: obtiene las coordenadas de un punto específico en el sistema de coordenadas cartesiano.

Parámetro: Seleccione un punto para obtener sus coordenadas.

Retorno: coordenadas cartesianas del punto especificado

Obtener coordenadas de un eje específico

Descripción: Obtenga el valor del punto especificado en el eje de coordenadas cartesiano especificado.

Parámetro:

Seleccione el punto para obtener el valor de las coordenadas.

155
Machine Translated by Google

Seleccione la dimensión de coordenadas.

Retorno: Valor del eje de coordenadas cartesiano especificado

Obtener coordenadas de la posición actual

Descripción: Obtenga el valor de la posición actual de TCP en el eje de coordenadas especificado bajo el sistema de coordenadas

especificado.

Parámetro:

Seleccione la dimensión de coordenadas.

Seleccione el sistema de coordenadas del usuario y el sistema de coordenadas de la herramienta. El valor devuelto se

transformará al valor en el sistema de coordenadas correspondiente.

Retorno: Valor de la posición actual de TCP en el eje de coordenadas especificado bajo la coordenada especificada

sistema.

156
Machine Translated by Google

Configuración avanzada de movimiento

Crea un bloque que controla el movimiento del robot mediante configuración avanzada. La configuración incluye el nombre del bloque, el modo

de movimiento y los parámetros de movimiento. Los diferentes modos de movimiento varían en los parámetros de movimiento que se configurarán.

Velocidad/aceleración real del robot = porcentaje establecido en los comandos × velocidad/aceleración en la configuración de reproducción ×

relación de velocidad global.

MovJ
Modo de movimiento: muévase desde la posición actual a la posición de destino bajo el sistema de coordenadas cartesianas en un modo de

interpolación conjunta.

157
Machine Translated by Google

Configuración básica:

P: punto objetivo, que se puede seleccionar aquí después de agregarlo en la página Punto o definirse en esta página.

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.
para detalles.

Configuración de E/S del proceso: cuando el brazo del robot se mueve a la distancia o porcentaje especificado, se activará el DO

especificado. Cuando la distancia es positiva, se refiere a la distancia desde el punto de partida; y cuando la distancia es

negativa, se refiere a la distancia desde el punto objetivo. Puede hacer clic en "+" a continuación para agregar un proceso IO y

hacer clic en "­" a la derecha para eliminar el proceso IO correspondiente.

158
Machine Translated by Google

Movil

Modo de movimiento: muévase desde la posición actual a la posición de destino bajo el sistema de coordenadas cartesianas en

un modo de interpolación lineal.

Configuración básica: P: punto objetivo, que se puede seleccionar aquí después de agregarlo en la página Punto o definirse en

esta página.

159
Machine Translated by Google

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.
para detalles.

Configuración de E/S del proceso: cuando el brazo del robot se mueve a la distancia o porcentaje especificado, se activará el DO

especificado. Cuando la distancia es positiva, se refiere a la distancia desde el punto de partida; y cuando la distancia es

negativa, se refiere a la distancia desde el punto objetivo. Puede hacer clic en "+" a continuación para agregar un proceso IO y

hacer clic en "­" a la derecha para eliminar el proceso IO correspondiente.

ConjuntoMovJ

160
Machine Translated by Google

Modo de movimiento: muévase desde la posición actual al ángulo de articulación objetivo en un modo interpolado de articulación.

Configuración básica: ángulo articular objetivo, que se puede definir mediante enseñanza.

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Consulte Ruta continua (CP) al final de esta sección para obtener

más detalles.

RelMovJ

161
Machine Translated by Google

Modo de movimiento: muévase desde la posición actual a la posición de desplazamiento objetivo bajo el sistema de coordenadas

cartesianas en un modo de interpolación conjunta.

Configuración básica: desplazamiento del eje X, eje Y y eje Z bajo el sistema de coordenadas cartesianas, unidad: mm

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.

para detalles.

RelMovL

Modo de movimiento: muévase desde la posición actual a la posición de desplazamiento objetivo bajo el sistema de coordenadas

cartesianas en un modo de interpolación lineal.

162
Machine Translated by Google

Configuración básica: desplazamiento del eje X, eje Y y eje Z bajo el sistema de coordenadas cartesianas, unidad: mm

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.
para detalles.

Arco

Modo de movimiento: muévase desde la posición actual a la posición de destino en un modo de arco interpolado bajo el sistema de

coordenadas cartesianas. La posición actual no debe estar en una línea recta determinada por el punto A y el punto B.

163
Machine Translated by Google

Configuración básica:

Coordenada del punto intermedio A: coordenadas del punto intermedio del arco Coordenada

del punto final B: coordenadas del punto objetivo. Los dos puntos se pueden seleccionar aquí después de agregarlos en la

página Puntos o definirse en esta página.

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.
para detalles.

Círculo

Modo de movimiento: muévase desde la posición actual en un modo de círculo interpolado y regrese a la posición actual después

de mover círculos específicos. La posición actual no debe estar en una línea recta determinada por el punto A y el punto B, y el círculo

determinado por los tres puntos no puede exceder el rango de movimiento de


el brazo robótico.

164
Machine Translated by Google

Configuración básica:

Punto intermedio Coordenada A: Se utiliza para determinar las coordenadas del punto intermedio del
círculo.

Coordenada del punto final B: se utiliza para determinar las coordenadas del punto final del círculo. Los dos puntos se pueden

seleccionar aquí después de agregarlos en la página Puntos o definirse en esta página.

Número de círculos: círculos de movimiento circular, rango: 1~999.

Configuración avanzada:

Seleccione y configure los parámetros avanzados según sea necesario.

Velocidad: tasa de velocidad, rango: 1~100.

Aceleración (Accel): tasa de aceleración, rango: 1~100.

CP: establece una trayectoria continua en movimiento, rango: 0~100. Ver Ruta continua (CP) al final de esta sección.
para detalles.

Camino continuo (CP)

165
Machine Translated by Google

La trayectoria continua (CP) significa cuando el brazo del robot se mueve desde el punto inicial hasta el punto final a través

del punto medio, ya sea que haga una transición en ángulo recto o de forma curva al pasar por el punto medio, como

se muestra a continuación.

166
Machine Translated by Google

Comandos Modbus
Los comandos Modbus se utilizan para operaciones relacionadas con la comunicación Modbus.

Crear maestro Modbus

Descripción: Cree el maestro Modbus y establezca la conexión con el esclavo.

Parámetro:

Dirección IP del esclavo Modbus

puerto de esclavo Modbus

ID del esclavo Modbus, rango: 1~4

Obtener el resultado de la creación del maestro Modbus

Descripción: Obtenga el resultado de la creación del maestro Modbus.

Devolver:

0: El maestro Modbus se ha creado correctamente.

1: Como hay 4 estaciones maestras creadas, no se pudo crear una nueva.

2: No se pudo inicializar el maestro Modbus. Se recomienda comprobar si la IP, el puerto y


La red es normal.

3: El esclavo Modbus no pudo conectarse. Se recomienda comprobar si el esclavo está establecido

correctamente y si la red es normal.

Espere el registro de entrada

Descripción: Espere a que el valor de la dirección especificada del registro de entrada cumpla la condición antes de ejecutar el

siguiente comando.

Parámetro:

Dirección: Dirección inicial de los registros de entrada. Rango de valores: 0~9998.

167
Machine Translated by Google

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro)

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros)

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros)

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros).

condición que el valor debe cumplir

Esperar a que se registre

Descripción: Espere a que el valor de la dirección especificada del registro de retención cumpla la condición antes de

ejecutar el siguiente comando.

Parámetro:

Dirección: Dirección inicial de los registros de explotación. Rango de valores: 0~9998.

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro)

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros)

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros)

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros).

condición que el valor debe cumplir

Espere el registro de entrada discreta

Descripción: Espere a que el valor de la dirección especificada del registro de entrada discreta cumpla la condición antes

de ejecutar el siguiente comando.

Parámetro:

Dirección: Dirección inicial de los registros de entrada discreta. Rango de valores: 0~9999.

condición que el valor debe cumplir

Espere el registro de la bobina

Descripción: Espere a que el valor de la dirección especificada del registro de entrada cumpla la condición antes de

ejecutar el siguiente comando.

168
Machine Translated by Google

Parámetro:

Dirección: Dirección inicial de los registros de la bobina. Rango de valores: 0~9999. condición

que el valor debe cumplir

Obtener registro de entrada

Descripción: obtiene el valor de la dirección especificada del registro de entrada.

Parámetro:

Dirección: Dirección inicial de los registros de entrada. Rango de valores: 0~9998.

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro)

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros)

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros)

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros).

Retorno: valor del registro de entrada

Obtener registro de explotación

Descripción: Obtenga el valor de la dirección especificada del registro de tenencia.

Parámetro:

Dirección: Dirección inicial de los registros de explotación. Rango de valores: 0~9998.

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro)

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros)

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros)

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros).

Devolución: valor del registro de retención

Obtener entrada discreta

Descripción: obtiene el valor de la dirección especificada del registro de entrada discreta.

Parámetro: Dirección inicial del registro de entrada discreta. Rango de valores: 0~9999.

169
Machine Translated by Google

Retorno: valor de entrada discreto

Obtener registro de bobina

Descripción: obtiene el valor de la dirección especificada del registro de la bobina.

Parámetro: Dirección inicial del registro de la bobina. Rango de valores: 0~9999.

Devolución: valor del registro de la bobina

Obtenga múltiples valores de registro de bobina

Descripción: obtiene múltiples valores de la dirección especificada del registro de la bobina.

Parámetro:

Dirección inicial del registro de bobinas. Rango de valores: 0~9999.

Número de bits de registro. El valor máximo es 216 (serie CR) o 984 (serie Nova) cuando se comunica con el

esclavo a través de la interfaz de E/S de la herramienta y 2008 para los otros escenarios.

Retorno: valores de registro de bobina almacenados en la tabla. El primer valor de la tabla corresponde al valor del registro de la

bobina en la dirección inicial.

Obtenga múltiples valores de registro de tenencia

Descripción: obtiene múltiples valores de la dirección especificada del registro de tenencia.

Parámetro:

Dirección inicial de los registros de entrada. Rango de valores: 0~9998.


Número de valores a leer.

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro). Se leen continuamente hasta 13 valores (serie

CR) o 61 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y

se leen hasta 125 valores continuamente para los otros escenarios.

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros). Se leen continuamente hasta 6 valores (serie CR) o

30 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y se leen

hasta 62 valores continuamente para los otros escenarios.

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros). Hasta 6 valores (CR

170
Machine Translated by Google

serie) o 30 valores (serie Nova) se leen continuamente cuando se comunica con el esclavo a través de la interfaz de E/

S de la herramienta, y hasta 62 valores se leen continuamente para los otros escenarios.

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros). Se leen continuamente hasta

3 valores (serie CR) o 15 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la

herramienta, y se leen hasta 31 valores continuamente para los otros escenarios.

Retorno: valores de registro almacenados en la tabla. El primer valor de la tabla corresponde al valor del registro de retención en la

dirección inicial.

Establecer registro de bobina

Descripción: Escriba el valor en la dirección especificada del registro de la bobina.

Parámetro:

Dirección inicial del registro de la bobina. Rango de valores: 6~9999.

Valores escritos en el registro de la bobina. Rango de valores: 0 o 1.

Establecer registro de bobinas múltiples

Descripción: escriba varios valores en la dirección especificada del registro de la bobina.

Parámetro:

Dirección inicial del registro de la bobina. Rango de valores: 0~9999.


Número de bits de valor que se escribirán.

Valores escritos en el registro de la bobina. Complete una matriz con la misma longitud que el número de bits escritos, cada

uno de los cuales solo puede ser 0 o 1. Se escriben hasta 440 valores a la vez cuando se comunica con el esclavo a través de

la interfaz de E/S de la herramienta, y hasta Los valores de 1976 se escriben a la vez para los otros escenarios.

Establecer registro de explotación

Descripción: Escriba el valor en la dirección especificada del registro de tenencia.

Parámetro:

Dirección inicial de los registros de entrada. Rango de valores: 0~9998.

Valor a escribir, que debe corresponder al tipo de datos seleccionado.

171
Machine Translated by Google

Tipo de

datos U16: entero sin signo de 16 bits (dos bytes, ocupan un registro). Se escriben hasta 27 valores

continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y hasta 123

valores se escriben continuamente para los otros escenarios.

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros). Se escriben hasta 13 valores

continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y hasta 61

valores se escriben continuamente para los otros escenarios.

F32: número flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros). Se escriben hasta 13

valores continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y

hasta 61 valores se escriben continuamente para los otros escenarios.

F64: número flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros). Se escriben hasta 6

valores continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y

hasta 30 valores se escriben continuamente para los otros escenarios.

Cerrar maestro Modbus

Descripción: Cierre el maestro Modbus y desconéctese de todos los esclavos.

172
Machine Translated by Google

Comandos TCP
Los comandos TCP se utilizan para operaciones relacionadas con TCP.

Conecte el enchufe

Descripción: cree un servidor TCP para comunicarse con el servidor TCP especificado.

Parámetro:

Seleccione el índice SOCKET (se pueden establecer como máximo 4 enlaces de comunicación TCP).
Dirección IP del servidor TCP.

Puerto del servidor TCP.

Obtener el resultado de conectar SOCKET

Descripción: Obtenga el resultado de la conexión de comunicación TCP.

Parámetro: Seleccione el índice SOCKET.

Retorno: Devuelve 0 si la conexión se realizó correctamente y 1 si no se pudo conectar.

Crear ENCHUFE

Descripción: cree un servidor TCP para esperar la conexión del cliente.

Parámetro:

Índice de socket (se pueden establecer como máximo 4 enlaces de comunicación TCP).
Dirección IP del servidor TCP.

Puerto del servidor TCP: cuando el robot actúa como servidor, no utilice los siguientes puertos que han sido ocupados

por el sistema.

22, 23, 502 (0 ~ 1024 puertos son puertos definidos por Linux, que tienen una alta posibilidad de estar ocupados.

Evite su uso),

5000~5004, 6000, 8080, 11000, 11740, 22000, 22002, 29999, 30003, 30004, 60000, 65500~65515

173
Machine Translated by Google

Obtener el resultado de crear SOCKET

Descripción: Obtenga el resultado de la creación del servidor TCP.

Parámetro: Seleccione el índice SOCKET.

Retorno: Devuelve 0 si la creación se realizó correctamente y 1 si no se pudo crear.

Cerrar ENCHUFE

Descripción: cierre el SOCKET especificado y desconecte el enlace de comunicación.

Parámetro: Seleccione el índice SOCKET.

Obtener variables

Descripción: Obtenga variables a través de comunicación TCP y guárdelas.

Parámetro:

Índice de enchufe

tipo de variable: cadena o número.

El nombre se utiliza para guardar las variables recibidas, utilizando bloques de variables creados.

Tiempo de espera: si el tiempo de espera es 0, esperará hasta obtener las variables.

Enviar variables

Descripción: Envío de variables mediante comunicación TCP.

Parámetro:

Índice de enchufe.

datos a enviar. Puede utilizar bloques ovalados que devuelvan valores numéricos o de cadena, o completar directamente el

blanco.

Obtener el resultado del envío de variables

174
Machine Translated by Google

Descripción: Obtiene el resultado del envío de variables.

Parámetro: Índice de socket.

Retorno: Devuelve 0 si se envía la variable y 1 si no se pudo enviar la variable.

175
Machine Translated by Google

Apéndice C Comandos de script


C.1 Gramática básica de

Lua C.2 Descripción del comando

176
Machine Translated by Google

gramática básica lua

177
Machine Translated by Google

Variable y tipo de datos


Si desea adquirir conocimientos relacionados con la programación de Lua de forma sistemática, busque tutoriales de Lua en

Internet. Esta guía solo enumera algunas de las sintaxis básicas de Lua para su referencia rápida.

Las variables se utilizan para almacenar valores, pasar valores como parámetros o devolver valores como resultados. Las variables

se asignan con "=".

Las variables en Lua son variables globales por defecto a menos que se declaren explícitamente como variables locales usando "local".

El alcance de las variables locales es desde la ubicación de la declaración hasta el final del bloque en el que están.
situado.

un = 5 ­­ variable global
locales b = 5 ­­ variable local

Los nombres de las variables pueden ser una cadena formada por letras, guiones bajos y números, que no pueden comenzar con

un número. Las palabras clave reservadas por Lua no se pueden utilizar como nombre de variable.

Para las variables de Lua, no es necesario definir sus tipos. Después de asignar un valor a la variable, Lua juzgará automáticamente el

tipo de variable según el valor.

Lua admite una variedad de tipos de datos, incluidos números, booleanos, cadenas y tablas. La matriz en Lua es un tipo
de mesa.

También hay un tipo de datos especial en Lua: nil, que significa nulo (sin ningún valor válido). Por ejemplo, si imprime una variable no

asignada, generará un valor nulo.

Número

El número en Lua es un número de punto flotante de doble precisión y admite varias operaciones. Los siguientes formatos se

consideran todos como un número:

2.2

0,2

2e+1

0.2e­1

7.8263692594256e­06

Booleano

El tipo booleano tiene sólo dos valores opcionales: verdadero y falso. Lua trata falso y nulo como falso, y otros como verdaderos,

incluido el número 0.

Cadena

178
Machine Translated by Google

Una cadena puede estar formada por dígitos, letras y/o guiones bajos. Las cadenas se pueden representar de tres formas:

Caracteres entre comillas simples.

Caracteres entre comillas dobles. caracteres

entre [[ y ]]

Al realizar operaciones aritméticas con una cadena de números, Lua intenta convertir la cadena de números en un número.

Lua proporciona muchas funciones para respaldar las operaciones de cadenas.

Función Descripción

cadena.superior (argumento) Convertir a letras mayúsculas

cadena.inferior (argumento) Convertir a letras minúsculas

Reemplazar caracteres en una cadena. MainString es la cadena de origen, findString


cadena.gsub (cadena principal, son los caracteres que se reemplazarán, replaceString son los caracteres de
cadena de búsqueda, cadena de reemplazo, número) reemplazo y num es el número de sustituciones (se puede ignorar)

Busque la subcadena de contenido especificada en una cadena de destino. Si se


string.find (cadena, subcadena,
encuentra una subcadena coincidente, se devuelven los índices inicial y final de la
[inicio, [fin]])
subcadena y se devuelve nil si no existe ninguno.

cadena.reversa(arg) La cuerda está invertida

cadena.formato(...) Devuelve una cadena formateada similar a printf

char se usa para convertir números enteros en caracteres y


cadena.char(arg) y
concatenarlos byte
cadena.byte(arg[,int])
se usa para convertir caracteres en valores enteros

cadena.len(arg) Obtener la longitud de una cuerda

cadena.rep(cadena, n) Copie la cadena, n indica el número de replicación

.. Se utiliza para unir dos cadenas.

Es una función iteradora. Cada vez que se llama a esta función, devuelve la
siguiente subcadena encontrada en la cadena que coincide con la
string.gmatch(cadena, patrón)
descripción del patrón. Si no se encuentra la subcadena descrita por el patrón,
el iterador devuelve nil

Busque el contenido especificado que coincida con la descripción de Patrón en una


cadena de destino . Init es un parámetro opcional que especifica el índice inicial
para la búsqueda, cuyo valor predeterminado es 1. Solo se encuentra la primera coincidencia
string.match(cadena, patrón, inicio) en la cadena de origen. Si se encuentra un carácter coincidente, se devuelve la cadena
coincidente. Si no se establece ningún indicador de captura, se devuelve la cadena
coincidente completa. Devuelve nulo si no hay una coincidencia exitosa.

Se utiliza para interceptar cadenas. s es la cadena fuente que se truncará, i


cadena.sub(s, i [, j]) es el índice inicial, j es el índice final y el valor predeterminado es ­1, que
indica el último carácter.

Ejemplo:

179
Machine Translated by Google

cadena = "Lua"

print(string.upper(str)) ­­Convertir a letras mayúsculas e imprimir el resultado: LUA


print(string.lower(str)) ­­Convertir a letras minúsculas e imprimir el resultado: lua
print(string.reverse(str) ­­Se invierte la cadena e imprime el resultado: aul
print(string.len("abc")) ­­Calcule la longitud de la cadena ABC e imprima el resultado:
3

print(string.format("el valor es: %d",4)) ­­Imprimir el resultado: el valor es:4

print(string.rep(str,2)) ­­Copia la cadena dos veces e imprime el resultado: LuaLua


cadena1 = "cn."
cadena2 = "dobot"
cadena3 = ".cc"
print("Dirección: ",cadena1..cadena2..cadena3) ­­Utilice... para conectar cadenas e imprimir el resultado.
es: Dirección: cn.dobot.cc

cadena1 = [[aaaa]]
imprimir (cadena.gsub (cadena1, "a", "z", 3)) ­­Reemplazar en una cadena e imprimir el resultado: zzza

print(string.find("Hello Lua user", "Lua", 1)) e índice inicial y ­­Busca Lua en la cadena y devuelve th
final de la subcadena, imprimiendo el resultado: 7,9

fuentestr = "prefijo­­runoobgoogletaobao­­sufijo"
sub = cadena.sub(fuentestr, 1, 8) ­­Obtenga del primero al octavo carácter de t
él cuerda
print("\n resultado", string.format("%q", sub)) ­­Imprimir: resultado: "prefijo­­"

Mesa

Una tabla es un grupo de datos con índices.

La forma más sencilla de crear una tabla es utilizar {}, que crea una tabla vacía. Este método inicializa

la mesa directamente.

Una tabla puede utilizar matrices asociativas. El índice de una matriz puede ser cualquier tipo de dato, pero el valor no

ser nulo.

El tamaño de una mesa no es fijo y se puede ampliar según sea necesario.

El símbolo "#" se puede utilizar para obtener la longitud de una tabla.

tbl = {[1] = 2, [2] = 6, [3] = 34, [4] =5}


print("tbl length", #tbl) ­­ Imprime el resultado: 4

Lua proporciona muchas funciones para respaldar el funcionamiento de la tabla.

Función Descripción

tabla.concat

(tabla [, septiembre [, La función table.concat () enumera todos los elementos de la matriz especificada desde el principio hasta el final.
comenzar [, final, separado por el separador especificado (sep)
fin]]])

tabla.insertar

180
Machine Translated by Google

(tabla, [pos,] Parámetro opcional, que por defecto se encuentra al final de la tabla.
valor)

tabla.remove Devuelve el elemento en la tabla en la posición especificada (pos), el elemento que sigue se
moverá hacia adelante. pos es un parámetro opcional y su valor predeterminado es la longitud
(tabla [, pos])
de la tabla, que se elimina del último elemento.

tabla.sort
(tabla [, Los elementos de la tabla están ordenados en orden ascendente.
comp])

Ejemplo 1:

frutas = {} ­­inicializar una tabla


frutas = {"banana","orange","apple"} ­­asignar para la mesa

print("Cadena después de la concatenación",table.concat(frutas,", ", 2,3)) ­­Obtiene el elemento del índice especificado
de la tabla y los concatena, Cadena después de la concatenación naranja, aplicación
le

­­Insertar elemento al final


table.insert(frutas,"mango") print("El
elemento con índice 4 es",frutas[4]) ­­imprimir el resultado: El elemento con inde
x4 es mango

­­ Insertar el elemento en el índice 2


table.insert(frutas,2,"uvas") print("El
elemento con índice 2 es",frutas[2]) ­­imprimir el resultado: El elemento con inde
x 2 son uvas

print("El último elemento es",frutas[5]) ­­imprime el resultado: El último elemento es mango


table.remove(frutas)
print("El último elemento después de la eliminación es",frutas[5]) ­­imprime el resultado: El último elemento
después de la eliminación es nula

Ejemplo 2:

frutas = "plátano","naranja","manzana","uvas"}
print("Antes") para
k,v en ipares(frutas) hacer
imprimir(k,v) ­­imprimir el resultado: plátano naranja manzana uvas
fin
­­En orden ascendente
table.sort(frutas)
print("Después")
para k,v en ipairs(frutas) hacer
imprimir(k,v) ­­imprimir el resultado: manzana plátano uvas naranja
fin

Formación

181
Machine Translated by Google

Una matriz es una colección de elementos del mismo tipo de datos dispuestos en un orden determinado. Puede ser

unidimensional o multidimensional. El índice de una matriz se puede representar como un número entero y el tamaño de la matriz

no es fijo.

Matriz unidimensional: la matriz más simple con una estructura lógica de tabla lineal.

Matriz multidimensional: una matriz contiene una matriz o el índice de una matriz unidimensional corresponde a

una matriz.

Ejemplo 1: una matriz unidimensional se puede asignar o leer mediante el comando de bucle for . Se utiliza un índice entero

para acceder a un elemento de matriz. Si el índice no tiene valor, entonces la matriz devuelve nulo.

array = {"Lua", "Tutorial"} ­­Crea una matriz unidimensional para i= 0, 2 do

imprimir (matriz [i]) ­­Imprimir el resultado: nulo Tutorial de Lua


fin

En Lua, los índices de una matriz comienzan en 1 o 0. Alternativamente, puede usar un número negativo como índice de una matriz.

matriz = {}
para i= ­2, 2 hacer

matriz[i] = i*2+1 ­­Asignar valores a una matriz unidimensional


fin

para i = ­2,2 hacer

imprimir (matriz [i]) ­­Imprimir el resultado: ­3 ­1 1 3 5


fin

Ejemplo 2: una matriz de tres filas y tres columnas

­ inicializar una matriz matriz = {}


para i=1,3 hacer

matriz[i] = {} para
j=1,3 hacer matriz[i]
[j] = i*j
fin
fin

­­ Accede a una matriz para


i=1,3 do

para j=1,3 imprimir


(matriz[i][j]) ­­Imprimir el resultado: 1 2 3 2 4 6 3 6 9
fin
fin

182
Machine Translated by Google

Operador
Operador aritmético

Dominio Descripción

+ Suma

­ Sustracción

*
Multiplicación

/ División de coma flotante

// División del piso

% Resto

^
exponenciación

& y operador

\ O operador

~ operador XOR

<< Operador de turno a la izquierda

>> Operador de cambio a la derecha

Ejemplo

a=20

b=5

imprimir(a+b) ­­Imprimir los resultados para a más b: 25

imprimir(ab) ­­Imprimir el resultado de a menos b: 15

imprimir(a*b) ­­Imprimir el resultado de a multiplicado por b: 100

imprimir(a/b) ­­Imprimir el resultado de a dividido por b: 4

imprimir(a//b) ­­Imprimir el resultado de un divisible por b: 4

imprimir(a%b) ­­Imprimir el resto de a dividido por b: 0

imprimir(a^b) ­­Imprimir los resultados para la potencia b de a: 3200000

imprimir(a&b) ­­Imprimir los resultados de a y b: 4

imprimir(a|b ) ­­Imprimir los resultados de a OR b: 21

imprimir(a~b) ­­Imprimir los resultados de un XOR b: 17

imprimir(a<<b) ­­Imprimir el resultado de un desplazamiento a la izquierda b: 640

imprimir(a>>b) ­­Imprimir el resultado de un desplazamiento a la derecha b: 0

Operador relacional

Dominio Descripción
==
Igual

183
Machine Translated by Google

~=
No es igual

<= Igual o menor que

>= Igual o mayor que

< Menos que

> Mas grande que

Ejemplo

a=20 ­­Crear variable a

b=5 ­­Crear variable b

imprimir(a==b) ­­Determinar si a es igual a bfalso

imprimir(a~=b ) ­­Determinar si a no es igual a bverdadero

imprimir(a <=b) ­­Determinar si a es menor o igual que b: falso

imprimir(a>=b) ­­Determinar si a es mayor o igual que b: verdadero

imprimir(a<b) ­­Determinar si a es menor que bfalso

imprimir(a>b) ­­Determinar si a es mayor que b: verdadero

Operador lógico

Dominio Descripción

Operador lógico AND, el resultado es verdadero si ambos lados son verdaderos y falso si cualquiera de los lados
y
Es falso

o Operador lógico OR, el resultado es verdadero si un lado es verdadero, o falso si alguno de los lados es falso

no Operador NOT lógico, es decir, el resultado del juicio es directamente negativo

Ejemplo

a=verdadero

b=falso

imprimir(a y b) ­­Verdadero y falso, el resultado es falso.

imprimir(a o b) ­­Verdadero o falso, el resultado es verdadero

imprimir(20 > 5 no es cierto) ­­Verdadero y falso, el resultado es falso.

184
Machine Translated by Google

Control de procesos

Dominio Descripción

si... entonces...
Comando condicional (si). Determine si las condiciones son válidas de arriba a abajo. Si un juicio de
si no...
condición es verdadero, se ejecuta el bloque de código correspondiente y los juicios de condición posteriores
se ignoran directamente y ya no se ejecutan.
entonces... si no... fin

Comando de bucle (mientras). Cuando la condición sea verdadera, haga que el programa ejecute el
mientras…
bloque de código correspondiente repetidamente. Se verifica que la condición sea verdadera antes de
termina… termina
ejecutar la declaración.

para... Comando de bucle (for), ejecute la declaración especificada repetidamente y el número de repeticiones se
hacer... fin puede controlar en la declaración for

repetir
Comando de bucle (repetir), el bucle se repite hasta que la condición especificada sea verdadera
hasta()

Ejemplo

1.Comando condicional (si)

a = 100;
b = 200;
­­[ Verificar condiciones ­­] if(a
== 100)
entonces

­­[Ejecute el siguiente código si la condición es verdadera­­] if(b == 200)

entonces

­­[Ejecute el siguiente código si la condición es verdadera­­]


print("Esto es un: ", un);
print("Este es b: ", b);
fin
fin

2.Comando de bucle (mientras)

a=10
mientras (a < 20)
hacer

imprimir("Esto es un: ", a)


un = un+1
fin

3.Comando de bucle (para)

para i=10,1,­1 hacer

185
Machine Translated by Google

imprimir(yo)
fin

4.Comando de bucle (repetir)

un = 10
repetir
imprimir("Esto es un: ", a)
un = un + 1
hasta(a > 15)

186
Machine Translated by Google

Descripción del comando

187
Machine Translated by Google

Descripción general
Modo de movimiento

Los modos de movimiento del robot incluyen los siguientes tipos.

movimiento conjunto

El brazo robótico planifica el movimiento de cada articulación de acuerdo con la diferencia entre el ángulo de la articulación actual y el

ángulo de la articulación del punto objetivo, de modo que cada articulación complete el movimiento al mismo tiempo. El movimiento conjunto

no limita la trayectoria del TCP (punto central de la herramienta), que generalmente no es una línea recta.

Como el movimiento de la articulación no está limitado por la posición de la singularidad (consulte la guía de hardware correspondiente

para obtener más detalles), si no hay requisitos para la trayectoria del movimiento o el punto objetivo está cerca de la posición de la

singularidad, se recomienda utilizar el movimiento de la articulación.

Movimiento lineal

El brazo robótico planifica la trayectoria del movimiento de acuerdo con la postura actual y la postura del punto objetivo, de modo que la

trayectoria del movimiento TCP sea una línea recta y la postura del extremo cambie uniformemente durante el movimiento.

Cuando la trayectoria pueda pasar por la posición de singularidad, se informará un error cuando el comando de movimiento lineal se envíe

al brazo del robot. Se recomienda volver a planificar el punto o utilizar el movimiento conjunto cerca de la posición de singularidad.

movimiento de arco

El brazo robótico determina un arco o un círculo a través de tres puntos no colineales: la posición actual, P1 y P2. La postura del extremo del

brazo del robot durante el movimiento se calcula mediante la interpolación de la postura del punto actual y P2, y la postura de P1 no se incluye

en la operación (es decir, la postura del brazo del robot cuando llega a P1 durante el movimiento). el movimiento puede ser diferente de la

postura enseñada).

188
Machine Translated by Google

Cuando la trayectoria pueda pasar por la posición de singularidad, se informará un error cuando el comando de movimiento del arco se envíe al

brazo del robot. Se recomienda volver a planificar el punto o utilizar el movimiento conjunto cerca de la posición de singularidad.

Parámetros de puntos

Los parámetros de punto en los comandos generalmente usan el punto aprendido en la página Puntos, y se puede llamar directamente usando el

nombre del punto aprendido. En realidad, el punto aprendido se guarda como una constante en segundo plano en el siguiente formato.

­­[[
nombre: nombre del punto aprendido
articulación: coordenadas conjuntas del punto aprendido
herramienta: índice del sistema de coordenadas de la herramienta en la guía
manual usuario: índice del sistema de coordenadas del usuario en la guía manual
pose: valor de la variable postura del punto enseñado ­­]] {

nombre =
"nombre", articulación = {j1, j2, j3, j4, j5, j6},
herramienta = índice,
usuario = índice,
pose = {x, y, z, rx, ry, rz}
}

Además del punto aprendido, los usuarios también pueden definir los puntos de coordenadas cartesianas o puntos de coordenadas conjuntas como

parámetros de punto; consulte la descripción de los parámetros de cada comando para obtener más detalles.

Puntos de coordenadas cartesianas:

{pose = {x, y, z, rx, ry, rz}}

Puntos de coordenadas conjuntos:

{articulación = {j1, j2, j3, j4, j5, j6} }

189
Machine Translated by Google

Parámetros de velocidad

Speed/SpeedS y Accel/AccelS en los parámetros opcionales se utilizan para especificar la velocidad y


tasa de aceleración cuando el brazo del robot ejecuta el comando de movimiento.

Velocidad/aceleración de movimiento real del robot = velocidad/aceleración máxima x velocidad global x comando r
comió

La aceleración/velocidad máxima está limitada por la configuración de reproducción, que se puede ver y modificar en la página

"Parámetro de movimiento" del software.

La velocidad global se puede configurar a través del software de control (esquina superior derecha de la figura anterior) o el comando

SpeedFactor.

La velocidad del comando la llevan los parámetros opcionales de los comandos de movimiento. Cuando la tasa de

aceleración/velocidad no se especifica a través de los parámetros opcionales, el valor establecido en los parámetros de

movimiento se utiliza de forma predeterminada (consulte los comandos Speed, Accel, SpeedS, AccelS, SpeedR, AccelR para obtener

más detalles, y el valor predeterminado es 50 cuando el la configuración del comando no se llama).

Ejemplo:

Accel(50) : establece la aceleración predeterminada del movimiento articular en 50 %.


Velocidad (60) : establece la velocidad predeterminada del movimiento articular en 60 %.
AccelS(70) : establece la aceleración predeterminada del movimiento lineal en 70%
SpeedS(80) : establece la velocidad predeterminada del movimiento lineal en 80 %.

­­ Tasa de velocidad global: 20%

Ir (P1) : muévase a P1 con la aceleración de (aceleración máxima de la articulación x 20 % x 50 %) y la velocidad de (velocidad máxima de la
articulación x 20 % x 60 %) a través del movimiento de la articulación.
Go(P1,"Speed = 40, Accel = 90") ­ Muévete a P1 con la aceleración de (aceleración máxima de la articulación).

190
Machine Translated by Google

en x 20% x 30%) y velocidad de (velocidad máxima de la articulación x 20% x 80%) a través del movimiento de la articulación

Mover (P1) : se mueve a P1 con una aceleración de (aceleración cartesiana máxima x 20 % x 70 %) y una velocidad
de (velocidad cartesiana máxima x 20 % x 80 %) en el modo lineal.
Move(P1,"SpeedS = 40, AccelS = 90") : se mueve a P1 con la aceleración de (aceleración cartesiana máxima x 20
% x 40 %) y la velocidad de (velocidad cartesiana máxima x 20 % x 90 %) en el modo lineal

Comando inmediato y comando de cola

Los comandos proporcionados por Dobot se dividen en comando inmediato y comando en cola.

El comando inmediato se ejecuta inmediatamente una vez que se emite.

El comando de cola no se ejecuta inmediatamente después de su emisión, sino que ingresa a la cola algorítmica en

segundo plano y espera a ser ejecutado.

La cola del algoritmo en segundo plano no bloqueará el hilo. Si el comando inmediato se llama después del comando de la

cola, el comando inmediato se puede ejecutar antes de que se complete el comando de la cola, como en el siguiente ejemplo:

Go(P1) ­ Comando de cola


local currentPose = GetPose() ­ Comando inmediato

En este ejemplo, el punto que obtiene GetPose() no es P1, sino un punto de proceso en movimiento.

Si desea asegurarse de que todos los comandos anteriores se hayan ejecutado al ejecutar el comando inmediato,

puede llamar al comando Sync () antes de llamar al comando inmediato, lo que bloqueará la ejecución del programa hasta

que todos los comandos anteriores se ejecuten por completo. como el siguiente ejemplo:

Ir (P1) ­ Comando de cola


Sync()
local currentPose = GetPose() ­ Comando inmediato

En este ejemplo, el punto que obtiene GetPose() es P1.

191
Machine Translated by Google

Movimiento

Los comandos de movimiento se utilizan para controlar el movimiento del brazo robótico. Los comandos de este grupo son todos

comandos de cola.

Ir
Dominio:

Ir(P,"Usuario=1 Herramienta=2 CP=1 Velocidad=50 Aceleración=20 SINCRONIZACIÓN=1")

Descripción:

Muévase desde la posición actual a una posición de destino bajo el sistema de coordenadas cartesianas en modo punto a punto. La

trayectoria del movimiento articular no es lineal y todas las articulaciones completan el movimiento al mismo tiempo.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se

ejecute por completo.

Ejemplo:

Ir(P1)

El robot se mueve a P1 en el modo punto a punto con la configuración predeterminada.

Mover

Dominio:

192
Machine Translated by Google

Mover(P,"Usuario=1 Herramienta=2 CP=1 VelocidadS=50 AccelS=20 SYNC=1 STOP=1")

Descripción:

Muévase desde la posición actual a una posición de destino bajo el sistema de coordenadas cartesianas en modo lineal.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en la Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en la Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: tasa de velocidad, rango: 1 ­ 100.

AccelS: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute

por completo.

STOP: aborta el movimiento. Especifique el índice DI. Cuando la DI especificada cambia a ON durante la ejecución de este

comando de movimiento, el robot aborta inmediatamente el movimiento actual y ejecuta directamente el siguiente comando.

Cuando se establece este parámetro, la configuración del parámetro SYNC no es válida y

por defecto es 1.

Ejemplo:

Mover(P1)

El brazo robótico se mueve a P1 en modo lineal con la configuración predeterminada.

Mover(P1,"PARAR=3")
Mover(P2)

El brazo robótico se mueve a P1 en modo lineal. Cuando DI3 cambia a ON durante el movimiento, deja de moverse a P1

inmediatamente y gira para moverse a P2 en modo lineal.

moverj

Dominio:

193
Machine Translated by Google

MoveJ(P,"CP=1 Velocidad=50 Acel=20 SYNC=1")

Descripción:

Muévase desde la posición actual a un ángulo de articulación objetivo en un modo punto a punto (movimiento de articulación).

Parámetro requerido:

P: punto objetivo, que sólo se puede definir a través del ángulo de la articulación.

Parámetro opcional:

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se

ejecute por completo.

Ejemplo:

local P = {conjunto={0,­0.0674194,0,0,0,0}}
MoverJ(P)

Defina el punto de coordenadas de la articulación P. Mueva el robot a P con la configuración predeterminada.

Círculo3
Dominio:

Círculo3(P1,P2,Contar,"Usuario=1 Herramienta=2 CP=1 Velocidad=50 Aceleración=20 SINCRONIZACIÓN=1")

Descripción:

Muévase desde la posición actual en un modo de círculo interpolado y regrese a la posición actual después de mover círculos

específicos. Como el círculo debe determinarse a través de la posición actual, P1 y P2, la posición actual no debe estar en una línea recta

determinada por P1 y P2, y el círculo determinado por los tres puntos no puede exceder el rango de movimiento del brazo del robot.

Parámetro requerido:

P1: punto medio, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

P2: punto final, que es definido por el usuario u obtenido de la página Punto. Solo coordenada cartesiana

194
Machine Translated by Google

Los puntos son compatibles.

Recuento: número de círculos, rango: 1 ­ 999.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: índice de velocidad, rango: 1 ­ 100

AccelS: índice de aceleración, rango: 1 ­ 100 SYNC:

indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute

por completo.

Ejemplo:

Ir(P1)
Círculo3(P2,P3,1)

El brazo del robot se mueve a P1 y luego mueve un círculo completo determinado por P1, P2 y P3.

Arco3

Dominio:

Arc3(P1,P2,"Usuario=1 Herramienta=2 CP=1 Velocidad=50 Aceleración=20 SINCRONIZACIÓN=1")

Descripción:

Muévase desde la posición actual a una posición de destino en un modo de arco interpolado bajo el sistema de coordenadas

cartesianas. Como el arco debe determinarse a través de la posición actual, P1 y P2, la posición actual no debe estar en una línea recta

determinada por P1 y P2.

Parámetro requerido:

P1: punto medio, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

P2: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en la Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en la Configuración.

195
Machine Translated by Google

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: índice de velocidad, rango: 1 ­ 100

AccelS: índice de aceleración, rango: 1 ­ 100

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado,

independientemente del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando

se ejecute por completo.

Ejemplo:

Ir(P1)
Arco3(P2,P3)

El robot se mueve a P1 y luego a P3 a través de P2 en el modo de arco interpolado.

Goio
Dominio:

GoIO(P,{ {Modo,Distancia,Índice,Estado},{Modo,Distancia,Índice,Estado}...}, "Usuario=1 Herramienta=2 CP=1 Velocidad=50 Aceleración=20


SINCRONIZACIÓN=1" )

Descripción:

Muévase desde la posición actual a una posición objetivo en un modo punto a punto (movimiento conjunto) bajo el

sistema de coordenadas cartesianas y establezca el estado del puerto de salida digital cuando el robot se esté moviendo.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas

cartesianas.

Parámetros de salida digital: configura el DO especificado que se activará cuando el brazo del robot se mueva a

una distancia o porcentaje específico. Puede configurar varios grupos, cada uno de los cuales contiene lo siguiente

parámetros:

Modo: modo de disparo. 0: porcentaje de distancia; 1: valor de distancia.

Distancia: distancia especificada.

Si la Distancia es positiva, se refiere a la distancia desde el punto de partida.

Si la Distancia es negativa, se refiere a la distancia desde el punto objetivo.

Si Modo es 0, Distancia se refiere al porcentaje de la distancia total. rango: 0 ­ 100.

Si Modo es 1, Distancia se refiere al valor de distancia, unidad: mm.


Índice: índice DO.

Estado: estado DO. 0: APAGADO; 1: ENCENDIDO.

Parámetro opcional:

196
Machine Translated by Google

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute

por completo.

Ejemplo:

GoIO(P1, { {0, 10, 2, 1} })

El brazo del robot se mueve hacia P1 con la configuración predeterminada. Cuando se aleje un 10% del punto de inicio, configure DO2 en

ON.

MoverIO
Dominio:

MoveIO(P,{ {Modo,Distancia,Índice,Estado},{Modo,Distancia,Índice,Estado}},"Usuario=1 Herramienta=2 CP=1 Velocidad dS=50 AccelS=20


SYNC=1")

Descripción:

Muévase desde la posición actual a una posición objetivo en modo lineal bajo el sistema de coordenadas cartesianas y establezca el estado del

puerto de salida digital cuando el robot se esté moviendo.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

Parámetros de salida digital: configura el DO especificado que se activará cuando el brazo del robot se mueva una distancia o porcentaje

específico. Puede configurar varios grupos, cada uno de los cuales contiene los siguientes parámetros: Modo: modo de disparo. 0:

porcentaje de distancia; 1: valor de distancia.

Distancia: distancia especificada.

Si la Distancia es positiva, se refiere a la distancia desde el punto de partida.

Si la Distancia es negativa, se refiere a la distancia desde el punto objetivo.

Si Modo es 0, Distancia se refiere al porcentaje de la distancia total. rango: 0 ­ 100.

Si Modo es 1, Distancia se refiere al valor de distancia, unidad: mm.

Índice: índice DO.

Estado: estado DO. 0: APAGADO; 1: ENCENDIDO.

197
Machine Translated by Google

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute

por completo.

Ejemplo:

MoverIO(P1, { {0, 10, 2, 1} })

El robot se mueve hacia P1 con la configuración predeterminada. Cuando se aleje un 10% del punto de inicio, configure DO2 en ON.

MoverJIO
Dominio:

MoveJIO(P,{ {Modo,Distancia,Índice,Estado},{Modo,Distancia,Índice,Estado}...}, "Usuario=1 Herramienta=2 CP=1


Velocidad=50 Aceleración=20 SINCRONIZACIÓN=1")

Descripción:

Muévase desde la posición actual al ángulo de articulación objetivo mediante el movimiento de la articulación y establezca el estado del puerto

de salida digital cuando el robot se esté moviendo.

Parámetro requerido:

P: ángulo de la articulación objetivo.

Parámetros de salida digital: configura el DO especificado que se activará cuando el brazo del robot se mueva una distancia o porcentaje

específico. Puede configurar varios grupos, cada uno de los cuales contiene los siguientes parámetros:

Modo: modo de disparo. 0: porcentaje de distancia; 1: valor de distancia.

Distancia: distancia especificada.

Si la Distancia es positiva, se refiere a la distancia desde el punto de partida.

Si la Distancia es negativa, se refiere a la distancia desde el punto objetivo.

Si Modo es 0, Distancia se refiere al porcentaje de la distancia total. Rango: 0 ­ 100.

Si Modo es 1, Distancia se refiere al valor de distancia. Unidad: mm.

Índice: índice DO.

198
Machine Translated by Google

Estado: estado DO. 0: APAGADO; 1: ENCENDIDO.

Parámetro opcional:

CP: establece la velocidad de trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC = 1: ejecución sincrónica, lo que significa no regresar después de ser llamado hasta que el comando se ejecute por completo.

Ejemplo:

local P = {conjunto={0,­0.0674194,0,0,0,0}}
MoverJIO(P, { {0, 10, 2, 1} })

El brazo del robot se mueve hacia P con la configuración predeterminada. Cuando se mueva a una distancia del 10% del punto inicial,

configure DO2 en ON.

ServoJ
Dominio:

ServoJ(P,"t=0.1 tiempo de anticipación=50 ganancia=500")

Descripción:

El comando de seguimiento dinámico basado en el espacio conjunto se usa generalmente para la función paso a paso del control en línea

para realizar el seguimiento dinámico mediante llamadas cíclicas. Se recomienda configurar la frecuencia de llamada en 33 Hz, es decir,

el intervalo de llamada cíclica es de 30 ms.

AVISO

Este comando no se ve afectado por la velocidad global.

Cuando el ángulo de la articulación del punto objetivo es bastante diferente del del punto actual y el tiempo de movimiento

t es pequeño, la velocidad del movimiento de la articulación será demasiado rápida, lo que puede provocar un error del servo

o incluso un corte de energía del robot.

Antes de utilizar el comando, se recomienda realizar una planificación de velocidad para los puntos de ejecución y emitir

los puntos planificados de acuerdo con el intervalo de tiempo fijo t para garantizar que el robot pueda rastrear los puntos

objetivo sin problemas.

199
Machine Translated by Google

Parámetro requerido:

P: ángulo de la articulación objetivo.

Parámetro opcional:

t: tiempo de ejecución del punto, unidad: s, rango: [0.02,3600.0], valor predeterminado:

0.1. lookahead_time: lookahead_time, similar al término D en el control PID. Escalar, sin unidad, rango:

[20.0,100.0], valor predeterminado:

50. ganancia: ganancia proporcional de la posición objetivo, similar al término P en el control PID. Escalar, sin unidad,

rango: [200.0,1000.0], valor predeterminado: 500.

Los parámetros lookahead_time y ganancia determinan conjuntamente el tiempo de respuesta y la suavidad de la trayectoria del brazo

robótico. Un valor de tiempo de anticipación más pequeño o un valor de ganancia mayor pueden hacer que el brazo del robot responda

rápidamente, pero pueden causar inestabilidad y fluctuaciones.

Ejemplo:

ServoJ({joint={0,­0.0674194,0,0,0,0}},"t=0.1 lookahead_time=50 ganancia=500")

servop

Dominio:

ServoP(P)

Descripción:

El comando de seguimiento dinámico basado en el espacio cartesiano se usa generalmente para la función paso a paso del

control en línea para realizar el seguimiento dinámico mediante llamadas cíclicas. Se recomienda configurar la frecuencia de

llamada en 33 Hz, es decir, el intervalo de llamada cíclica es de 30 ms.

Parámetro:

P: punto cartesiano objetivo.

Ejemplo:

ServoP({pose={­500,100,200,150,0,90} }

200
Machine Translated by Google

Parámetro de movimiento

Los parámetros de movimiento se utilizan para establecer u obtener parámetros de movimiento relevantes del robot. Los

comandos de este grupo son comandos de cola, excepto GetPose, GetAngle y SpeedFactor.

Sincronizar

Dominio:

Sincronización()

Descripción:

El comando se utiliza para bloquear el programa para ejecutar los comandos de la cola. Regresa hasta que se hayan

ejecutado todos los comandos de la cola y luego ejecuta los comandos posteriores. Generalmente se utiliza para esperar

a que el brazo robótico complete el movimiento.

Ejemplo:

Ir(P1)
Ir(P2)
Sincronización()

El brazo del robot se mueve a P1 y luego a P2 antes de regresar para ejecutar comandos posteriores.

CP

Dominio:

CP(R)

Descripción:

Establezca la relación de trayectoria continua (CP), es decir, cuando el brazo del robot se mueve continuamente a través

de múltiples puntos, ya sea que haga una transición en ángulo recto o de forma curva al pasar por el punto medio.

201
Machine Translated by Google

Parámetro requerido:

R: relación de trayectoria continua, rango: 1 ­ 100

Ejemplo:

PC(50)

Mover(P1)

Mover(P2)

Mover(P3)

El brazo del robot se mueve de P1 a P3 a través de P2 con una relación de trayectoria continua del 50 %.

Factor de velocidad

Dominio:

Factor de velocidad(R)

Descripción:

Establecer tasa de velocidad global.

Parámetro requerido:

R: tasa de velocidad, rango: 1 ­ 100.

Ejemplo:

Factor de velocidad(20)

Establezca la tasa de velocidad global en 20%.

Velocidad

Dominio:

202
Machine Translated by Google

Velocidad(R)

Descripción:

Establezca la velocidad del movimiento articular.

Parámetro requerido:

R: tasa de velocidad, rango: 1 ­ 100.

Ejemplo:

Velocidad(20)

Ir(P1)

El brazo del robot se mueve a P1 con una velocidad del 20%.

Acelerar

Dominio:

Acelerar(R)

Descripción:

Establezca la tasa de aceleración del movimiento articular.

Parámetro requerido:

R: tasa de aceleración, rango: 1 ­ 100.

Ejemplo:

Aceleración(50)

Ir(P1)

El brazo robótico se mueve a P1 con una tasa de aceleración del 50 %.

Velocidades

Dominio:

VelocidadS(R)

Descripción:

203
Machine Translated by Google

Establezca la velocidad del movimiento espacial (X/Y/Z) para movimiento lineal y de arco.

Parámetro requerido:

R: tasa de velocidad, rango: 1 ­ 100.

Ejemplo:

Velocidades(20)

Mover(P1)

El brazo del robot se mueve a P1 con una velocidad del 20%.

Aceleraciones

Dominio:

AccelS(R)

Descripción:

Establezca la tasa de aceleración del movimiento espacial (X/Y/Z) para movimiento lineal y de arco.

Parámetro requerido:

R: tasa de aceleración, rango: 1 ­ 100.

Ejemplo:

Aceleraciones(50)

Mover(P1)

El brazo robótico se mueve a P1 con una tasa de aceleración del 50 %.

VelocidadR

Dominio:

VelocidadR(R)

Descripción:

Establezca la velocidad del movimiento de pose (RX/RY/RZ) para movimiento lineal y de arco.

Parámetro requerido:

R: tasa de velocidad, rango: 1 ­ 100.

204
Machine Translated by Google

Ejemplo:

VelocidadR(20)

Mover(P1)

El brazo del robot se mueve a P1 con una velocidad del 20%.

Acelerar

Dominio:

Acelerar(R)

Descripción:

Establezca la velocidad de aceleración del movimiento de pose (RX/RY/RZ) para movimiento lineal y de arco.

Parámetro requerido:

R: tasa de aceleración, rango: 1 ­ 100.

Ejemplo:

Aceleración(50)

Mover(P1)

El brazo robótico se mueve a P1 con una tasa de aceleración del 50 %.

ObtenerPose

Dominio:

GetPose("usuario=0 herramienta=0")

Descripción:

Obtenga la postura en tiempo real del brazo del robot bajo el sistema de coordenadas cartesianas.

Parámetro opcional:

usuario: índice del sistema de coordenadas del usuario correspondiente a la postura, que primero debe agregarse en el

software de control. Si no se establece, se utiliza el sistema de coordenadas global del usuario.

herramienta: índice del sistema de coordenadas de la herramienta correspondiente a la postura, que primero debe agregarse

en el software de control. Si no se establece, se utiliza el sistema de coordenadas de herramienta global.

Devolver:

205
Machine Translated by Google

Coordenadas cartesianas de la postura actual.

Ejemplo:

PoseActual local = GetPose()


Ir(P1)
Ir (pose actual)

El brazo del robot se mueve a P1 y luego regresa a la postura actual.

Obtener ángulo

Dominio:

ObtenerAngle()

Descripción:

Obtenga la postura en tiempo real del brazo del robot bajo el sistema de coordenadas conjuntas.

Devolver:

Coordenadas conjuntas de la postura actual.

Ejemplo:

ángulo actual local = GetAngle()


Ir(P1)
MoverJ(ángulo actual)

El brazo del robot se mueve a P1 y luego regresa a la postura actual.

ComprobarIr

Dominio:

ComprobarIr(P)

Descripción:

Verifique la operatividad de los comandos de movimiento articular.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas
cartesianas.

206
Machine Translated by Google

Devolver:

Comprobar resultado.

0: sin errores

16: Punto final cerrado al punto de singularidad del hombro

17: Error de cinemática inversa del punto final sin solución

18: Error de cinemática inversa con resultado fuera del área de trabajo

22: Error de orientación del brazo

26: Punto final cerrado al punto de singularidad de la muñeca

27: Punto final cerrado al punto de singularidad del codo

29: Error de parámetro de velocidad

32: Punto de singularidad del hombro en la trayectoria

33: Error de cinemática inversa sin solución en trayectoria

34: Error de cinemática inversa con resultado fuera del área de trabajo en trayectoria

35: Punto de singularidad de muñeca en trayectoria

36: Punto de singularidad del codo en la trayectoria.

37: El ángulo de la articulación cambia en 180 grados.

Ejemplo:

estado local =CheckGo (P1)


si(estado==0)
entonces

Ir(P1)
fin

Compruebe si el brazo del robot puede alcanzar P1 mediante la configuración predeterminada de movimiento articular. Si puede, pase a P1

mediante un movimiento articular.

ComprobarMover

Dominio:

ComprobarMovimiento(P)

Descripción:

Verifique la operatividad de los comandos de movimiento lineal.

Parámetro requerido:

P: punto objetivo, definido por el usuario u obtenido de la página Punto. Sólo se admiten puntos de coordenadas cartesianas.

Devolver:

207
Machine Translated by Google

Comprobar resultado.

0: sin errores

16: Punto final cerrado al punto de singularidad del hombro

17: Error de cinemática inversa del punto final sin solución

18: Error de cinemática inversa con resultado fuera del área de trabajo

22: Error de orientación del brazo

26: Punto final cerrado al punto de singularidad de la muñeca

27: Punto final cerrado al punto de singularidad del codo

29: Error de parámetro de velocidad

32: Punto de singularidad del hombro en la trayectoria

33: Error de cinemática inversa sin solución en trayectoria

34: Error de cinemática inversa con resultado fuera del área de trabajo en trayectoria

35: Punto de singularidad de muñeca en trayectoria

36: Punto de singularidad del codo en la trayectoria.

37: El ángulo de la articulación cambia en 180 grados.

Ejemplo:

estado local = CheckMove (P1) si (estado


==0)
entonces

Mover(P1)
fin

Compruebe si el brazo del robot puede alcanzar P1 mediante la configuración predeterminada de movimiento lineal. Si puede, muévase a

P1 mediante movimiento lineal.

TCPVelocidad

Dominio:

Velocidad TCP(vt)

Descripción:

Establezca la velocidad absoluta. Los comandos de movimiento del sistema de coordenadas cartesiano después de este comando se ejecutarán

a la velocidad absoluta establecida y los comandos de movimiento de coordenadas conjuntas no se verán afectados. Después de configurar

TCPSpeed, SpeedS ya no tiene efecto, pero la velocidad máxima aún está limitada por la velocidad global (incluido el modo reducido).

Al utilizar el paquete de proceso de soldadura, si el comando entra en conflicto con los comandos de soldadura relacionados, los comandos de

soldadura tendrán prioridad.

Parámetro requerido:

208
Machine Translated by Google

vt: velocidad absoluta, unidad: mm/s, rango: (0,100000]

Ejemplo:

Velocidad TCP(100)
Mover(P1)

El brazo del robot se mueve a P1 a una velocidad absoluta de 100 mm/s mediante un movimiento lineal.

Fin de velocidad TCP

Dominio:

TCPSpeedEnd()

Descripción:

El comando se utiliza con el comando TCPSpeed para desactivar la configuración de velocidad absoluta.

Ejemplo:

Velocidad TCP(100)
Mover(P1)
TCPSpeedEnd()
Mover(P2)

El brazo del robot se mueve a P1 a una velocidad absoluta de 100 mm/s mediante un movimiento lineal y luego se mueve a P2 a

una velocidad global mediante un movimiento lineal.

Solución inversa

Dominio:

Solución inversa(P,Usuario,Herramienta,esConjuntaCerca,ConjuntaCerca)

Descripción:

Solución inversa: Calcule las coordenadas conjuntas del brazo del robot, basándose en las coordenadas dadas en el

sistema de coordenadas cartesiano especificado.

Como las coordenadas cartesianas solo definen las coordenadas espaciales y el ángulo de inclinación del TCP, el brazo del

robot puede alcanzar la misma postura mediante diferentes gestos, lo que significa que una variable de postura puede corresponder

a múltiples variables de articulación. Para obtener una solución única, el sistema requiere una coordenada conjunta específica y

la solución más cercana a esta coordenada conjunta se selecciona como solución inversa. Para configurar esta coordenada

conjunta, consulte los parámetros isJointNear y JointNear para obtener más detalles.

209
Machine Translated by Google

Parámetro requerido:

P: punto cartesiano objetivo.

Usuario: el índice del sistema de coordenadas del usuario calibrado.

Herramienta: el índice del sistema de coordenadas de la herramienta calibrada.

Parámetro opcional:

isJointNear: se utiliza para establecer si JointNear es efectivo. 0 o nulo: JointNear no es efectivo, el algoritmo selecciona

los ángulos de las juntas de acuerdo con el ángulo actual. 1: el algoritmo selecciona los ángulos de las juntas según JointNear.

JointNear: coordenadas de articulación para seleccionar ángulos de articulación.

Devolver:

Las coordenadas conjuntas de los puntos.

Ejemplo:

Solución inversa({473.000000,­141.000000,469.000000,­180.000000,0.000,­90.000},0,0)

Las coordenadas cartesianas del extremo del brazo del robot en el sistema de coordenadas del usuario 0 y el sistema de coordenadas

de la articulación 0 son {473,­141,469,­180,0,­90}. Calcule las coordenadas de la articulación y seleccione la solución más cercana al

ángulo de la articulación actual.

Solución inversa({473.000000,­141.000000,469.000000,­180.000000,0.000,­90.000},0,0,1,{0,0,­90,0, 90,0})

Las coordenadas cartesianas del extremo del brazo del robot en el sistema de coordenadas del usuario 0 y el sistema de coordenadas

de la articulación 0 son {473,­141,469,­180,0,­90}. Calcule las coordenadas conjuntas y seleccione la solución más cercana a

{0,0,­90,0,90,0}.

Establecer distancia atrás

Dominio:

Establecer distancia atrás (distancia)

Descripción:

Establezca la distancia de retroceso después de que el robot detecte una colisión. El valor establecido mediante este comando solo

tiene efecto cuando el proyecto actual se está ejecutando y se restaurará al valor original después de que se detenga el proyecto.

Parámetro requerido:

210
Machine Translated by Google

distancia: distancia de retroceso de colisión, rango: [0,50], unidad: mm.

Ejemplo:

Establecer distancia atrás(20)

Establezca la distancia de retroceso de colisión en 20 mm.

211
Machine Translated by Google

Movimiento relativo

Los comandos de movimiento se utilizan para controlar el movimiento del brazo robótico. Los comandos de este grupo son

comandos de cola, excepto RP y RJ.

PR
Dominio:

RP(P, {DesplazamientoX, DesplazamientoY, DesplazamientoZ})

Descripción:

Establezca el desplazamiento del eje X, eje Y y eje Z de un punto bajo el sistema de coordenadas cartesianas para devolver un nuevo

punto de coordenadas cartesianas.

Parámetro requerido:

P1: Punto antes del desplazamiento, que está definido por el usuario o se obtiene de la página TeachPoint. Solo se

admiten puntos de coordenadas

cartesianas OffsetX, OffsetY, OffsetZ: desplazamiento del eje X, eje Y, eje Z en el sistema de coordenadas cartesianas; unidad: mm

Devolver:

Punto de coordenadas cartesianas después del desplazamiento

Ejemplo:

Ir(RP(P1, {30,50,10}))

Desplace P1 una cierta distancia en los ejes X, Y y Z respectivamente, y luego muévase al punto después del
compensar.

RJ
Dominio:

RJ(P1, {Desplazamiento1, Desplazamiento2, Desplazamiento3, Desplazamiento4, Desplazamiento5, Desplazamiento6})

Descripción:

Establezca el desplazamiento del ángulo de los ejes J1 ~ J6 de un punto específico en el sistema de coordenadas conjuntas y devuelva un nuevo

punto de coordenadas conjuntas.

212
Machine Translated by Google

Parámetro requerido:

P1: Punto antes del desplazamiento, que no se puede obtener desde la página TeachPoint. Sólo se admiten puntos de

coordenadas cartesianas.

Offset1~Offset6: Desplazamiento de los ejes J1~J6. unidad: °.

Devolver:

Punto de coordenadas conjuntas después del desplazamiento

Ejemplo:

MoverJ(RJ(P1, {60,50,32,30,25,30}))

Establezca el desplazamiento del ángulo de los ejes J1 ~ J6 y mueva el brazo del robot al punto objetivo después del desplazamiento.

GoToolR
Dominio:

GoToolR({x, y, z, rx, ry, rz}, Herramienta, "Usuario=0 CP=1 Velocidad=50 Aceleración=20 SYNC=1")

Descripción:

Pasar de la posición actual a la posición objetivo relativamente mediante el movimiento articular. La trayectoria del movimiento articular no es lineal

y todas las articulaciones completan el movimiento al mismo tiempo.

Parámetro requerido:

{x, y, z, rx, ry, rz}: desplazamiento del punto objetivo con respecto a la posición actual en el sistema de coordenadas de la

herramienta especificada. x, y, z representan el desplazamiento espacial, unidad: mm; rx, ry, rz representan el desplazamiento angular,

unidad: °.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del proceso de

ejecución.

SYNC = 1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute por completo.

Ejemplo:

213
Machine Translated by Google

GoToolR({10, 10, 10, 0, 0, 0},0)

El brazo del robot se mueve hasta el punto de desplazamiento específico a lo largo del sistema de coordenadas de la herramienta 0 mediante el movimiento de la

articulación con la configuración predeterminada.

MoveToolR
Dominio:

MoveToolR({x, y, z, rx, ry, rz}, Herramienta, "Usuario=0 CP=1 VelocidadS=50 AccelS=20 SYNC=1")

Descripción:

Muévase desde la posición actual a la posición objetivo relativamente mediante un movimiento lineal.

Parámetro requerido:

{x, y, z, rx, ry, rz}: desplazamiento del punto objetivo con respecto a la posición actual en el sistema de coordenadas de la

herramienta especificada. x, y, z representan el desplazamiento espacial, unidad: mm; rx, ry, rz representan el desplazamiento angular,

unidad: °.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: tasa de velocidad, rango: 1 ­ 100.

AccelS: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del proceso de

ejecución.

SYNC = 1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute por completo.

Ejemplo:

MoverHerramientaR({10, 10, 10, 0, 0, 0},0)

El brazo del robot se mueve hasta el punto de desplazamiento específico a lo largo del sistema de coordenadas de la herramienta 0 mediante un movimiento lineal

con la configuración predeterminada.

GoUserR
Dominio:

214
Machine Translated by Google

GoUserR({x, y, z, rx, ry, rz}, Usuario, "Herramienta=0 CP=1 Velocidad=50 Aceleración=20 SYNC=1")

Descripción:

Pasar de la posición actual a la posición objetivo relativamente mediante el movimiento articular. La trayectoria del movimiento articular no es

lineal y todas las articulaciones completan el movimiento al mismo tiempo.

Parámetro requerido:

{x, y, z, rx, ry, rz}: desplazamiento del punto objetivo con respecto a la posición actual en el sistema de coordenadas del usuario

especificado. x, y, z representan el desplazamiento espacial, unidad: mm; rx, ry, rz representan el desplazamiento angular,

unidad: °.

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Parámetro opcional:

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del proceso de

ejecución.

SYNC = 1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute por completo.

Ejemplo:

IrUsuarioR({10, 10, 10, 0, 0, 0},0)

El brazo del robot se mueve hasta el punto de desplazamiento específico a lo largo del sistema de coordenadas del usuario 0 mediante el movimiento de la articulación

con la configuración predeterminada.

MoverUsuarioR

Dominio:

MoveUserR({x, y, z, rx, ry, rz}, Usuario, "Herramienta=0 CP=1 VelocidadS=50 AccelS=20 SYNC=1")

Descripción:

Muévase desde la posición actual a la posición objetivo relativamente mediante un movimiento lineal.

Parámetro requerido:

{x, y, z, rx, ry, rz}: desplazamiento del punto objetivo en relación con la posición actual en el usuario especificado

215
Machine Translated by Google

sistema coordinado. x, y, z representan el desplazamiento espacial, unidad: mm; rx, ry, rz representan el desplazamiento angular,

unidad: °.

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en Configuración.

Parámetro opcional:

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: tasa de velocidad, rango: 1 ­ 100.

AccelS: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del proceso de

ejecución.

SYNC: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute por completo.

Ejemplo:

MoverUsuarioR({10, 10, 10, 0, 0, 0},0)

El brazo del robot se mueve hasta el punto de desplazamiento específico a lo largo del sistema de coordenadas del usuario 0 mediante un movimiento lineal

con la configuración predeterminada.

MoverJR
Dominio:

MoveJR({Desplazamiento1, Desplazamiento2, Desplazamiento3, Desplazamiento4, Desplazamiento5, Desplazamiento6},"CP=1 Velocidad=50 Acel=20 SYNC=1")

Descripción:

Muévase desde la posición actual al ángulo de compensación de la articulación en un modo punto a punto (movimiento de la articulación).

Parámetro requerido:

{Desplazamiento1, Desplazamiento2, Desplazamiento3, Desplazamiento4, Desplazamiento5, Desplazamiento6}: Ejes J1 ­ J6 desplazados bajo el sistema de

coordenadas cartesiano, unidad: °.

Parámetro opcional:

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0~100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del

proceso de ejecución.

216
Machine Translated by Google

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se

ejecute por completo.

Ejemplo:

MoverJR({20,20,10,0,10,0})

El brazo del robot se mueve hasta el ángulo de compensación mediante el movimiento de la articulación con la configuración predeterminada.

GoR
Dominio:

GoR({OffsetX, OffsetY, OffsetZ},"Usuario=1 Herramienta=2 CP=1 Velocidad=50 Aceleración=20 SYNC=1")

Descripción:

Este comando ha sido reemplazado por GoToolR y GoUserR.

Muévase desde la posición actual a la posición de desplazamiento en un modo punto a punto (movimiento conjunto) bajo el sistema

de coordenadas cartesianas. La trayectoria del movimiento articular no es lineal y todas las articulaciones completan el movimiento.
al mismo tiempo.

Parámetro requerido:

OffsetX, OffsetY, OffsetZ: Desplazamiento del eje X, eje Y y eje Z bajo el sistema de coordenadas cartesiano, unidad:
mm.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en la Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en la Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

Velocidad: índice de velocidad, rango: 1 ­ 100.

Accel: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente

del proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se

ejecute por completo.

Ejemplo:

GoR({10,10,10})

217
Machine Translated by Google

El brazo del robot se mueve hasta el punto objetivo en modo articulación a articulación con la configuración predeterminada.

Agente de mudanzas

Dominio:

MoveR({OffsetX, OffsetY, OffsetZ},"Usuario=1 Herramienta=2 CP=1 VelocidadS=50 AccelS=20 SYNC=1")

Descripción:

Este comando ha sido reemplazado por MoveToolR y MoveUserR.**

Mover desde la posición actual a la posición de desplazamiento en modo lineal bajo la coordenada cartesiana

sistema.

Parámetro requerido:

OffsetX, OffsetY, OffsetZ: Desplazamiento del eje X, eje Y y eje Z bajo el sistema de coordenadas cartesiano, unidad:

milímetros

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, que se puede usar aquí después de agregarlo en la Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, que se puede usar aquí después de agregarlo en la Configuración.

CP: establece una trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: tasa de velocidad, rango: 1 ­ 100.

AccelS: tasa de aceleración, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado, independientemente del

proceso de ejecución.

SYNC=1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se ejecute por

completo.

Ejemplo:

MoverR({10,10,10})

El brazo del robot se mueve hasta el punto objetivo mediante un movimiento lineal con la configuración predeterminada.

218
Machine Translated by Google

OI
Los comandos IO se utilizan para leer y escribir IO del sistema y establecer parámetros relevantes.

DI
Dominio:

DI(índice)

Descripción:

Mando inmediato. Obtenga el estado del puerto de entrada digital.

Parámetro requerido:

índice: índice DI

Devolver:

Nivel (ON/OFF) del puerto DI correspondiente

Ejemplo:

si (DI(1)==ON) entonces
Mover(P1)
fin

El brazo del robot se mueve a P1 mediante un movimiento lineal cuando el estado de DI1 está activado.

Grupo DI
Dominio:

DIGroup(índice1,...,índiceN)

Descripción:

Mando inmediato. Obtenga el estado de múltiples puertos de entrada digital.

Parámetro requerido:

índice: índice DI, se puede ingresar más de uno, separados por comas.

Devolver:

219
Machine Translated by Google

Estado (ON/OFF) del puerto DI correspondiente, devuelto como una matriz.

Ejemplo:

digrupo local = DIGroup(1,2) si


(digrupo[1]&digrupo[2]==ON)
entonces

Mover(P1)
fin

El brazo del robot se mueve a P1 en un movimiento lineal cuando tanto DI1 como DI2 están activados.

EsperaDI

Dominio:

EsperaDI(índice,ON|OFF,período)

Descripción:

Mando inmediato. Obtenga el estado del puerto de entrada digital. Si el estado es consistente con el estado especificado, el

programa continuará ejecutándose. De lo contrario, obtenga el estado del puerto de entrada digital en un punto específico.
intervalo.

Parámetro requerido:

índice: índice DI

ON|OFF: estado del puerto DI. ENCENDIDO: nivel alto; APAGADO: período

de nivel bajo: período para obtener el estado DI, unidad: ms

Ejemplo:

EsperaDI(1,ON,50)
Mover(P1)

Obtenga el estado de DI1 cada 50 ms. Si DI1 es alto, el programa continúa ejecutándose y el brazo robótico se mueve a P1 en
modo lineal.

HACER

Dominio:

HACER (índice, ENCENDIDO | APAGADO)

Descripción:

220
Machine Translated by Google

Comando de cola. Establezca el estado del puerto de salida digital.

Parámetro requerido:

índice: índice DO

ON|OFF: estado del puerto DO. ENCENDIDO: nivel alto; APAGADO: nivel bajo

Ejemplo:

HACER (1, ENCENDIDO)

Establezca el estado de DO1 en ON.

DOEjecutar

Dominio:

DOEjecutar(índice,ON|OFF)

Descripción:

Mando inmediato. Establezca el estado del puerto de salida digital inmediatamente independientemente del comando actual

cola.

Parámetro requerido:

índice: índice DO

ON|OFF: estado del puerto DO. ENCENDIDO: nivel alto; APAGADO: nivel bajo

Ejemplo:

DOEjecutar(1,ON)

Establezca el estado de DO1 en ON inmediatamente independientemente de la cola de comandos actual.

DOGrupo

Dominio:

DOGroup({índice1,ON|OFF},..,{índiceN,ON|OFF})

Descripción:

Establezca el estado de múltiples puertos de salida digital.

Parámetro requerido:

221
Machine Translated by Google

índice: índice DO.

ON|OFF: estado del puerto DO.

Se pueden configurar varios grupos, con cada grupo entre llaves y separados por comas.

Ejemplo:

GrupoDO({1,ON},{2,ON})

Configure DO1 y DO2 en ON.

HerramientaDO

Dominio:

HerramientaHACER(índice,ON|OFF)

Descripción:

Comando de cola. Establezca el estado del puerto de salida digital de la herramienta.

Parámetro requerido:

índice: herramienta DO índice

ON|OFF: estado del puerto DO. ENCENDIDO: nivel alto; APAGADO: nivel bajo

Ejemplo:

HerramientaHACER(1,ON)

Establezca el estado de la herramienta DO1 en ON.

HerramientaDOEjecutar

Dominio:

HerramientaDOEjecutar(índice,ON|OFF)

Descripción:

Mando inmediato. Establezca el estado del puerto de salida digital de la herramienta inmediatamente independientemente de la

cola de comandos actual.

Parámetro requerido:

índice: herramienta DO índice

222
Machine Translated by Google

ON|OFF: estado del puerto DO. ENCENDIDO: nivel alto; APAGADO: nivel bajo

Ejemplo:

HerramientaDOEjecutar(1,ON)

Establezca el estado de la herramienta DO1 en ON inmediatamente, independientemente de la cola de comandos actual.

HerramientaDI

Dominio:

HerramientaDI(índice)

Descripción:

Mando inmediato. Obtenga el estado del puerto de entrada de la herramienta.

Parámetro requerido:

índice: índice DI de herramienta

Devolver:

Nivel (ON/OFF) del puerto DI correspondiente

Ejemplo:

si (ToolDI(1)==ON) entonces

Mover(P1)
fin

El robot se mueve a P1 en modo lineal cuando el estado de la herramienta DI1 es ON.

HerramientaAI

Dominio:

HerramientaAI(índice)

Descripción:

Mando inmediato. Obtenga el valor del puerto de entrada analógica de la herramienta. Debe configurar el puerto en modo de

entrada de voltaje a través de ToolAnalogMode antes de usarlo.

Parámetro requerido:

223
Machine Translated by Google

índice: índice de IA de la herramienta

Devolver:

Valor del índice AI correspondiente

Ejemplo:

prueba = HerramientaAI(1)

Obtenga el valor de la herramienta AI1 y asígnelo a la variable "prueba".

HerramientaModoAnalógico

Dominio:

HerramientaModoAnalógico(modo)

Descripción:

Mando inmediato. Establezca el estado del puerto de entrada analógica de la herramienta.

Parámetro requerido:

modo: modo de puerto de entrada analógica

0: predeterminado, modo 485

10: modo de adquisición de corriente

11: modo de entrada de voltaje de 0 ­ 3,3

V 12: modo de entrada de voltaje de 0 ­ 10 V

Ejemplo:

HerramientaModoAnalógico(11)

Establezca el estado del puerto de entrada analógica de la herramienta en modo de entrada de voltaje de 0­3,3 V.

ao
Dominio:

AO(índice,valor)

Descripción:

Comando de cola. Configure el voltaje del puerto de salida analógica.

224
Machine Translated by Google

Parámetro requerido:

índice: índice AO

valor: voltaje, rango: 0 ­ 10

Ejemplo:

AO(1,2)

Establezca el voltaje de AO1 en 2V.

AOEjecutar

Dominio:

AOEjecutar(índice,valor)

Descripción:

Mando inmediato. Configure el voltaje del puerto de salida analógica inmediatamente independientemente del comando actual

cola.

Parámetro requerido:

índice: índice AO

valor: voltaje, rango: 0 ­ 10

Ejemplo:

AOEjecutar(1,2)

Establezca el voltaje de AO1 en 2 V inmediatamente, independientemente de la cola de comandos actual.

AI

Dominio:

IA (índice)

Descripción:

Mando inmediato. Obtenga el voltaje del puerto de entrada analógica.

Parámetro requerido:

índice: índice AI

225
Machine Translated by Google

Devolver:

Valor del índice AI correspondiente

Ejemplo:

prueba = AI(1)

Obtenga el valor de la herramienta AI1 y asígnelo a la variable "prueba".

EstablecerHerramientaPoder

Dominio:

SetToolPower(estado)

Descripción:

Mando inmediato. Establece el estado de energía de la herramienta final, que generalmente se usa para reiniciar la energía final,

como repotenciar y reinicializar la pinza. Si necesita llamar a la interfaz continuamente, se recomienda mantener un intervalo de

al menos 4 ms.

Parámetro requerido:

estado: estado de energía de la herramienta final, 1: apagado; 0: encendido

Ejemplo:

Establecer potencia de herramienta(1)

Apague la herramienta.

EstablecerABZPPC

Dominio:

EstablecerABZPPC(valor)

Descripción:

Mando inmediato. Establezca el valor actual del codificador.

Parámetro requerido:

valor: posición del codificador, unidad: pulso.

226
Machine Translated by Google

Ejemplo:

EstablecerABZPPC(1000)

Establezca el valor del codificador ABZ en 1000 pulsos.

ObtenerABZ

Dominio:

ObtenerABZ()

Descripción:

Mando inmediato. Obtenga la resolución del codificador ABZ configurado.

Devolver:

Resolución del codificador, unidad: pulso/mm.

Ejemplo:

abz local = ObtenerABZ()

Obtenga la resolución del codificador ABZ configurado y asigne el valor a la variable "abz".

227
Machine Translated by Google

TCP/UDP
Los comandos TCP/UDP se utilizan para la comunicación TCP/UDP. Los comandos de este grupo son todos
órdenes inmediatas.

TCPCrear
Dominio:

TCPCreate(isServer, IP, puerto)

Descripción:

Crea una red TCP. Sólo se admite una red TCP.

Parámetro requerido:

isServer: si se debe crear un servidor. verdadero: crea un servidor; falso: crea un cliente.

IP: Dirección IP del servidor, que se encuentra en el mismo segmento de red del cliente sin conflicto. Es la dirección
IP del brazo robótico cuando se crea un servidor y la dirección del par cuando se crea un cliente.
creado.

puerto: puerto del servidor. Cuando el robot actúe como servidor, no utilice los siguientes puertos que han sido
ocupados por el sistema.

22, 23, 502 (0 ­ 1024 puertos son puertos definidos por Linux, que tienen una alta posibilidad de estar ocupados.
Evite su uso),

30005, 30006, 5000 ­ 5004, 6000, 8080, 11000, 11740, 22000, 22002, 29999, 30003, 30004, 60000,
65500~65515

Devolver:

errar:

0: la red TCP se ha creado correctamente.


1: No se pudo crear la red TCP.

enchufe: objeto de enchufe.

Ejemplo 1:

local ip="192.168.5.1" ­ Establece la dirección IP del robot como la dirección IP del servidor local port=6001 ­ Puerto
del servidor
error local = 0
enchufe local = 0
err, socket = TCPCreate(verdadero, ip, puerto)

228
Machine Translated by Google

Cree un servidor TCP.

Ejemplo 2:

local ip="192.168.5.25" ­ Establece la dirección IP de un equipo externo, como una cámara, como IP
dirección del servidor
puerto local = 6001 ­ Puerto del servidor
error local = 0
enchufe local = 0
err, socket = TCPCreate(falso, ip, puerto)

Cree un cliente TCP.

TCPInicio
Dominio:

TCPStart(socket, tiempo de espera)

Descripción:

Establezca una conexión TCP. El brazo robótico espera conectarse con el cliente cuando actúa como servidor y conecta

el servidor cuando actúa como cliente.

Parámetro requerido:

enchufe: objeto de enchufe.

tiempo de espera: tiempo de espera de espera. unidades. Si el tiempo de espera es 0, espere hasta que la conexión se establezca correctamente.

De lo contrario, se produce un error de conexión después de exceder el tiempo de espera.

Devolver:

Resultado de la conexión.

0: la conexión TCP es exitosa

1: los parámetros de entrada son incorrectos 2:

no se encuentra el objeto socket 3: la

configuración del tiempo de espera es incorrecta

4: fallo de conexión

Ejemplo:

err = TCPStart(zócalo, 0)

Comience a establecer una conexión TCP hasta que la conexión sea exitosa.

229
Machine Translated by Google

TCPLeer

Dominio:

TCPRead(socket, tiempo de espera, tipo)

Descripción:

Recibir datos de un par TCP.

Parámetro requerido:

enchufe: objeto de enchufe.

Parámetro opcional:

tiempo de espera: tiempo de espera de espera. unidades. Si el tiempo de espera es 0, espere hasta que los datos se lean por completo antes de

ejecutar; de lo contrario, continúe ejecutándose después de exceder el

tiempo de espera. tipo: tipo de valor de retorno. Si no se establece el tipo, el formato del búfer de RecBuf es una tabla. Si el tipo se

establece en cadena, el formato del búfer es una cadena.

Devolver:

errar:

0: Los datos se han recibido correctamente.


1: No se pudieron recibir datos.

Recbuf: buffer de datos.

Ejemplo:

err, RecBuf = TCPRead(socket,0,"string") ­ El tipo de datos de RecBuf es cadena err, RecBuf =


TCPRead(socket, 0) ­ El tipo de datos de RecBuf es tabla

Reciba datos TCP y guarde los datos en formato de cadena y tabla respectivamente.

TCPEscribir

Dominio:

TCPWrite(zócalo, buf)

Descripción:

Enviar datos al par TCP.

Parámetro requerido:

230
Machine Translated by Google

enchufe: objeto de enchufe.

buf: datos enviados por el robot.

Devolver:

Resultado del envío de datos.

0: Los datos se han enviado correctamente.


1: No se pudieron enviar los datos.

Ejemplo:

TCPWrite(socket, "prueba")

Enviar datos TCP "prueba".

TCPDestruir
Dominio:

TCPDestruir(socket)

Descripción:

Desconecte la red TCP y destruya el objeto del socket.

Parámetro requerido:

enchufe: objeto de enchufe.

Devolver:

Resultado de la ejecución.

0: Se ha ejecutado con éxito.


1: No se pudo ejecutar.

Ejemplo:

TCPDestruir(socket)

Desconéctese del par TCP.

UDPCrear
Dominio:

231
Machine Translated by Google

UDPCreate(esServidor, IP, puerto)

Descripción:

Crea una red UDP. Sólo se admite una red UDP.

Parámetro requerido:

isServer: falso.

IP: dirección IP del par, que se encuentra en el mismo segmento de red del cliente sin conflicto.
puerto: puerto par.

Devolver:

errar:

0: La red UDP se ha creado correctamente.


1: No se pudo crear la red UDP.

enchufe: objeto de enchufe.

Ejemplo:

local ip="192.168.5.25" ­ Establece la IP de un dispositivo externo, como una cámara, como dirección IP
del par
puerto local = 6001 ­ puerto par
error local = 0
enchufe local = 0
err, socket = UDPCreate(falso, ip, puerto)

Crea una red UDP.

UDPLeer
Dominio:

UDPRead(socket, tiempo de espera, tipo)

Descripción:

Recibir datos del par UDP.

Parámetro requerido:

enchufe: objeto de enchufe

Parámetro opcional:

tiempo de espera: tiempo de espera de espera. unidades. Si el tiempo de espera es 0, espere hasta que los datos se lean por completo antes de ejecutar; de

lo contrario, continúe ejecutándose después de exceder el tiempo de espera.

232
Machine Translated by Google

tipo: tipo de valor de retorno. Si no se establece el tipo, el formato del búfer de RecBuf es una tabla. Si el tipo se establece en

cadena, el formato del búfer es una cadena.

Devolver:

errar:

0: Los datos se han recibido correctamente.


1: No se pudieron recibir datos.

Recbuf: buffer de datos.

Ejemplo:

err, RecBuf = UDPRead(socket,0,"string") ­ El tipo de datos de RecBuf es cadena err, RecBuf =


UDPRead(socket, 0) ­ El tipo de datos de RecBuf es tabla

Reciba datos UDP y guarde los datos en formato de cadena y tabla respectivamente.

UDPEscribir

Dominio:

UDPWrite(zócalo, buf)

Descripción:

Enviar datos al par UDP.

Parámetro requerido:

socket: objeto socket buf:

datos enviados por el robot

Devolver:

Resultado del envío de datos.

0: Los datos se han enviado correctamente.


1: No se pudieron enviar los datos.

Ejemplo:

UDPWrite(socket, "prueba")

Enviar datos UDP "prueba".

233
Machine Translated by Google

Modbus
Los comandos Modbus se utilizan para la comunicación Modbus. Este grupo de comandos son todos inmediatos.
comandos.

ModbusCrear
Dominio:

ModbusCrear()

Descripción:

Cree la estación maestra Modbus y establezca la conexión con la estación esclava.

Parámetro requerido:

IP: dirección IP esclava.

puerto: puerto esclavo.

esclavo_id: ID del esclavo. rango: 0 ­ 4.

isRTU: Si es nulo o 0, establece comunicación ModbusTCP. Si es 1 establecer ModbusRTU


comunicación.

AVISO

Este parámetro determina el formato de protocolo utilizado para transmitir datos una vez establecida la

conexión y no afecta el resultado de la conexión. Por lo tanto, si configura el parámetro incorrectamente

al crear el maestro, el maestro aún se podrá crear exitosamente, pero puede haber una excepción en la

comunicación posterior.

Devolver:

errar:

0: La estación maestra Modbus se ha creado correctamente.


1: Como hay 5 estaciones maestras creadas, no se pudo crear una nueva.

2: No se pudo inicializar la estación maestra Modbus. Se recomienda comprobar si la IP, el puerto


y la red es normal.

3: No se pudo conectar la estación esclava Modbus. Se recomienda comprobar si el esclavo está

correctamente establecido y si la red es normal.

id: índice de estación maestra, rango: 0 ­ 4.

234
Machine Translated by Google

Ejemplo 1:

ip local ="192.168.5.123" ­ dirección IP esclava puerto


local =503 ­ puerto esclavo
error local = 0
identificación local = 1

err, id = ModbusCreate(ip, puerto, 1)

Cree el maestro Modbus y conéctese con el esclavo especificado.

Ejemplo 2:

Cuando no se especifica ninguno de los parámetros o la IP se especifica en 127.0.0.1 o 0.0.0.1, indica


conexión al esclavo Modbus local. Consulte los siguientes comandos.

ModbusCrear()

ModbusCreate("127.0.0.1")

ModbusCreate("0.0.0.1")

ModbusCreate("127.0.0.1",xxx,xxx) ­­ valor arbitrario xxx

ModbusCreate("0.0.0.1",xxx,xxx) ­­ valor arbitrario xxx

Ejemplo 3:

err,id=ModbusCreate("127.0.0.1",60000,1,1)

El ejemplo 3 es un caso especial, que indica la comunicación con el esclavo Modbus RTU externo a través del
Interfaz 485 al final del brazo del robot.

GetInBits
Dominio:

GetInBits(id, dirección, recuento)

Descripción:

Lea el valor de entrada discreta del esclavo Modbus.

235
Machine Translated by Google

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial de las entradas discretas, rango: 0 ­ 9999. count:

número de entradas discretas. El valor máximo es 216 (serie CR) o 984 (serie Nova) cuando se comunica con el

esclavo a través de la interfaz de E/S de la herramienta y 2008 para los otros escenarios.

Devolver:

Valor de entrada discreta almacenado en una tabla, donde el primer valor de la tabla corresponde al valor de entrada discreta

en la dirección inicial.

Ejemplo:

enBits = ObtenerInBits(id,0,5)

Lea 5 entradas discretas a partir de la dirección 0.

ObtenerInRegs

Dominio:

GetInRegs(id, dirección, recuento, tipo)

Descripción:

Lea el valor del registro de entrada con el tipo de datos especificado del esclavo Modbus.

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial de los registros de entrada, rango: 0 ­ 9998. count:

número de valores de registros de entrada.

Parámetro opcional:

tipo: tipo de datos

Vacío: U16 por defecto

U16: entero sin signo de 16 bits (dos bytes, ocupa un registro). Se leen continuamente hasta 13 valores (serie CR)

o 61 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y se

leen hasta 125 valores continuamente para los otros escenarios.

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros). Se leen continuamente hasta 6 valores (serie

CR) o 30 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta,

y se leen hasta 62 valores continuamente para los otros escenarios.

F32: número de punto flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros). Se leen continuamente

hasta 6 valores (serie CR) o 30 valores (serie Nova) cuando se comunica con el esclavo a través de

236
Machine Translated by Google

la interfaz de E/S de la herramienta y se leen continuamente hasta 62 valores para los otros escenarios.

F64: número de coma flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros). Se leen continuamente hasta 3

valores (serie CR) o 15 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta,

y se leen hasta 31 valores continuamente para los otros escenarios.

Devolver:

Valores del registro de entrada almacenados en una tabla, donde el primer valor corresponde al valor del registro de entrada en la

dirección inicial.

Ejemplo:

datos = GetInRegs(id, 2048, 1, “U32”)

Lea un entero sin signo de 32 bits a partir de la dirección 2048.

Obtener bobinas

Dominio:

GetCoils(id, dirección, recuento)

Descripción:

Lea el valor del registro de la bobina del esclavo Modbus.

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial del registro de la bobina, rango: 0 ­ 9999. count:

número de valores del registro de la bobina. El valor máximo es 216 (serie CR) o 984 (serie Nova) cuando se comunica con

el esclavo a través de la interfaz de E/S de la herramienta y 2008 para los otros escenarios.

Devolver:

Valor del registro de la bobina almacenado en una tabla, donde el primer valor corresponde al valor del registro de la bobina

en la dirección inicial.

Ejemplo:

Bobinas = GetCoils(id,0,5)

Lea 5 valores seguidos a partir de la dirección 0.

ObtenerHoldRegs

237
Machine Translated by Google

Dominio:

GetHoldRegs(id, dirección, recuento, tipo)

Descripción:

Lea el valor del registro de retención con el tipo de datos especificado del esclavo Modbus.

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial del registro de retención, rango: 0 ­ 9998. recuento:

número de valores del registro de retención.

Parámetro opcional:

tipo: tipo de datos.

Vacío: U16 por defecto.

U16: entero sin signo de 16 bits (dos bytes, ocupan un registro). Se leen continuamente hasta 13 valores (serie

CR) o 61 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta,

y se leen hasta 125 valores continuamente para los otros escenarios.

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros). Se leen continuamente hasta 6 valores (serie

CR) o 30 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta,

y se leen hasta 62 valores continuamente para los otros escenarios.

F32: número de punto flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros). Se leen continuamente

hasta 6 valores (serie CR) o 30 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de

la herramienta, y se leen hasta 62 valores continuamente para los otros escenarios.

F64: número de coma flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros). Se leen continuamente

hasta 3 valores (serie CR) o 15 valores (serie Nova) cuando se comunica con el esclavo a través de la interfaz de E/S de

la herramienta, y se leen hasta 31 valores continuamente para los otros escenarios.

Devolver:

Valor del registro de retención almacenado en una tabla, donde el primer valor corresponde al valor del registro de retención

en la dirección inicial.

Ejemplo:

datos = GetHoldRegs(id, 2048, 1, “U32”)

Lea un entero sin signo de 32 bits a partir de la dirección 2048.

Conjunto de bobinas

Dominio:

238
Machine Translated by Google

SetCoils(id, dirección, recuento, tabla)

Descripción:

Escriba el valor especificado en la dirección especificada del registro de la bobina.

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial del registro de la bobina, rango: 6 ­ 9999. count:

número de valores que se escribirán en el registro de la bobina. El valor máximo es 440 cuando se comunica con

el esclavo a través de la interfaz de E/S de la herramienta y 1976 para los demás escenarios. tabla: almacena

los valores que se escribirán en el registro de la bobina. El primer valor de la tabla corresponde a la dirección inicial del registro

de la bobina.

Ejemplo:

Bobinas locales = {0,1,1,1,0}


SetCoils(id, 1024, #bobinas, Bobinas)

A partir de la dirección 1024, escriba 5 valores seguidos en el registro de la bobina.

EstablecerRegsHold

Dominio:

SetHoldRegs(id, dirección, recuento, tabla, tipo)

Descripción:

Escriba el valor especificado de acuerdo con el tipo de datos especificado en la dirección especificada del registro de retención.

Parámetro requerido:

identificación: identificación maestra.

addr: dirección inicial del registro de retención, rango: 0 ­ 9998. recuento:

número de valores que se escribirán en el registro de retención. tabla:

almacena los valores que se escribirán en el registro de la bobina. El primer valor de la tabla corresponde a la dirección inicial

del registro de explotación.

Parámetro opcional:

tipo: tipo de datos.

Vacío: U16 por defecto.

U16: entero sin signo de 16 bits (dos bytes, ocupan un registro). Se escriben hasta 27 valores.

239
Machine Translated by Google

continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y se escriben hasta

123 valores continuamente para los otros escenarios.

U32: entero sin signo de 32 bits (cuatro bytes, ocupa dos registros). Se escriben hasta 13 valores

continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y hasta 61 valores

se escriben continuamente para los otros escenarios.

F32: número de punto flotante de precisión simple de 32 bits (cuatro bytes, ocupa dos registros). Se escriben hasta 13

valores continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y hasta 61

valores se escriben continuamente para los otros escenarios.

F64: número de coma flotante de doble precisión de 64 bits (ocho bytes, ocupa cuatro registros). Se escriben hasta 6

valores continuamente cuando se comunica con el esclavo a través de la interfaz de E/S de la herramienta, y hasta 30

valores se escriben continuamente para los otros escenarios.

Ejemplo:

datos locales = {95.32105}


SetHoldRegs(id, 2048, #datos, datos, “F64”)

A partir de la dirección 2048, escriba un número de punto flotante de doble precisión en el registro de tenencia.

ModbusCerrar
Dominio:

ModbusCerrar(id)

Descripción:

Desconectar con la estación esclava Modbus.

Parámetro opcional:

identificación: identificación maestra.

Devolver:

0: El esclavo Modbus se ha desconectado correctamente.


1: No se pudo desconectar el esclavo Modbus.

Ejemplo:

ModbusCerrar(id)

Desconectar con el esclavo Modbus.

240
Machine Translated by Google

Control de programa

Los comandos de control de programas son comandos generales relacionados con el control de programas. Mientras , if

y for son comandos de control de flujo de lua. Consulte Gramática básica de Lua ­ Control de procesos.

imprimir

Dominio:

imprimir(var)

Descripción:

Mando inmediato. Imprime información específica en la consola.

Parámetro requerido:

var: imprimir información

Ejemplo:

var local = "Hola mundo"

imprimir(var)

Imprime Hola mundo en la consola.

Dormir

Dominio:

Hora de dormir)

Descripción:

Mando inmediato. Retrasar la ejecución del siguiente comando. Este comando se utiliza para bloquear la ejecución

del script.

Parámetro requerido:

tiempo: tiempo de retardo, unidad: ms. No se permiten puntos decimales en el parámetro, lo que hará que la alarma o el

comando no sean válidos, incluso en el formato 0,5 * 1000. Utilice el número entero como parámetro.

Ejemplo:

241
Machine Translated by Google

HACER (1, ENCENDIDO)

Dormir(100)

HACER (1, APAGADO)

Configure DO1 en ON, espere 100 ms y luego configure DO1 en OFF.

Esperar

Dominio:

Tiempo de espera)

Descripción:

Comando de cola. Entregue el comando de movimiento con un retraso o entregue el siguiente comando con un retraso

después de que se complete el movimiento actual. Este comando solo bloquea la ejecución del algoritmo en segundo plano.

cola.

Parámetro requerido:

tiempo: tiempo de retardo, unidad: ms. No se permiten puntos decimales en el parámetro, lo que hará que la alarma o el

comando no sean válidos, incluso en el formato 0,5 * 1000. Utilice el número entero como parámetro.

Ejemplo:

HACER (1, ENCENDIDO)

Espera(100)

Ir(P1)

Espera(100)

HACER (1, APAGADO)

Configure DO1 en ON, espere 100 ms y luego mueva el robot a P1. Retrase 100 ms y luego configure DO1 en APAGADO.

Pausa

Dominio:

Pausa()

Descripción:

Pausa la ejecución del programa. El programa puede continuar ejecutándose sólo mediante control de software o control remoto.
control.

Ejemplo:

242
Machine Translated by Google

Ir(P1)
Pausa()
Ir(P2)

El robot se mueve a P1 y luego deja de funcionar. Puede continuar moviéndose a P2 sólo a través de controles externos.
control.

Establecer nivel de colisión

Dominio:

Establecer nivel de colisión (nivel)

Descripción:

Comando de cola. Establezca el nivel de detección de colisiones. Esta configuración solo tiene efecto cuando el proyecto actual se está

ejecutando. Una vez que el proyecto deja de ejecutarse, los parámetros se restauran a la configuración original.

Parámetro requerido:

nivel: nivel de detección de colisiones, rango: 0 a 5. 0 significa desactivar la detección de colisiones. Cuanto mayor sea el nivel

del 1 al 5, más sensible será la detección de colisiones.

Ejemplo:

Establecer nivel de colisión (2)

Establezca la detección de colisiones en el Nivel 2.

Restablecer tiempo transcurrido

Dominio:

Restablecer tiempo transcurrido()

Descripción:

Comando de cola. Comience a cronometrar después de que todos los comandos antes de este comando se hayan ejecutado

por completo. Este comando debe usarse combinado con el comando ElapsedTime() para calcular el tiempo de operación.

Ejemplo:

Consulte el ejemplo de ElapsedTime.

Tiempo transcurrido

243
Machine Translated by Google

Dominio:

Tiempo transcurrido()

Descripción:

Comando de cola. Detén el cronometraje y devuelve la diferencia horaria. El comando debe usarse combinado con el comando

ResetElapsedTime().

Esta interfaz solo puede contar la diferencia horaria en 35 minutos. Si la diferencia horaria supera los 35 minutos, la

interfaz devolverá una diferencia horaria incorrecta. Para diferencias horarias más largas, se recomienda utilizar

la interfaz Systime para el cálculo.

Devolver:

tiempo entre el inicio y el final del cronometraje.

Ejemplo:

Ir(P2, "Velocidad=100 Aceleración=100")


ResetElapsedTime() para
i=1,10 hacer
Mover(P1)
Mover(P2)
fin

imprimir (Tiempo transcurrido())

Calcule el tiempo que tarda el brazo del robot en moverse hacia adelante y hacia atrás 10 veces entre P1 y P2 e imprímalo en el
consola.

tiempo del sistema

Dominio:

hora del sistema()

Descripción:

Mando inmediato. Obtenga la hora actual del sistema.

Devolver:

Marca de tiempo Unix de la hora actual.

Ejemplo:

hora local = hora del sistema()


Mover(P1)

244
Machine Translated by Google

hora local2 = Systime()


imprimir(hora2­hora1)

Obtenga la hora actual del sistema y guárdela en la variable "hora".

Establecer usuario

Dominio:

Establecer usuario (índice, tabla)

Descripción:

Comando de cola. Modifique el sistema de coordenadas del usuario especificado. Esta modificación solo tiene efecto mientras el

proyecto actual está en ejecución. Después de detener el proyecto, el sistema de coordenadas se restaurará al
valor antes de la modificación.

Parámetro requerido:

índice: índice del sistema de coordenadas del usuario, rango: 0 ­ 9 (0 es el sistema de coordenadas del usuario

predeterminado) tabla: matriz para el sistema de coordenadas del usuario, en formato {x, y, z, rx, ry, rz}

Ejemplo:

EstablecerUsuario(1,{10,10,10,0,0,0})

Modifique el sistema de coordenadas del usuario 1 a "X=10Y=10Z=10RX=0RY=0RZ=0".

UsuarioCalc

Dominio:

CalcUser(índice,matriz_dirección,tabla)

Descripción:

Comando de cola. Calcule el sistema de coordenadas del usuario.

Parámetro requerido:

índice: índice del sistema de coordenadas del usuario, rango: [0,9]. El valor inicial 0 se refiere al sistema de

coordenadas del

usuario predeterminado. dirección_matriz:

método de cálculo. 1: multiplicación por la izquierda, lo que indica que el sistema de coordenadas especificado

por "índice" desvía el valor especificado por "tabla" a lo largo del sistema de coordenadas base.

245
Machine Translated by Google

0: multiplicación por la derecha, lo que indica que el sistema de coordenadas especificado por "índice" desvía el

valor especificado por "tabla" a lo largo de sí mismo.

tabla: valor de desplazamiento del sistema de coordenadas del usuario, en formato {x, y, z, rx, ry, rz}.

Devolver:

El sistema de coordenadas del usuario después del cálculo, en formato {x, y, z, rx, ry, rz}.

Ejemplo:

­­ El siguiente proceso de cálculo puede ser equivalente a: Un sistema de coordenadas con la misma postura inicial que
el sistema de coordenadas del usuario 1, se mueve {x=10, y=10, z=10} a lo largo de la coordenada base.
sistema y gira {rx=10, ry=10, rz=10}, y el nuevo sistema de coordenadas es newUser. nuevoUsuario =
UsuarioCalc(1,1,{10,10,10,10,10,10})

­­ El siguiente proceso de cálculo puede ser equivalente a: Un sistema de coordenadas con la misma postura inicial que
el sistema de coordenadas del usuario 1, se mueve {x=10, y=10, z=10} a lo largo del sistema de coordenadas del usuario
1 y gira {rx =10, ry=10, rz=10} y el nuevo sistema de coordenadas es newUser. nuevoUsuario =
UsuarioCalc(1,0,{10,10,10,10,10,10})

Establecer herramienta

Dominio:

SetTool(índice,tabla)

Descripción:

Comando de cola. Modifique el sistema de coordenadas de la herramienta especificada.

Parámetro requerido:

índice: índice del sistema de coordenadas de la herramienta, rango: 0 ­ 9 (0 es el sistema de coordenadas de la herramienta

predeterminado). tabla: matriz para el sistema de coordenadas de la herramienta, en formato {x, y, z, rx, ry, rz}.

Ejemplo:

EstablecerHerramienta(1,{10,10,10,0,0,0})

Modifique el sistema de coordenadas de la herramienta 1 a "X=10Y=10Z=10RX=0RY=0RZ=0".

CalcHerramienta

Dominio:

CalcTool(índice,matriz_dirección,tabla)

246
Machine Translated by Google

Descripción:

Comando de cola. Calcule el sistema de coordenadas de la herramienta.

Parámetro requerido:

índice: índice del sistema de coordenadas de la herramienta, rango: [0,9]. El valor inicial 0 se refiere al sistema de

coordenadas de brida

predeterminado (TCP0). dirección_matriz:

método de cálculo. 1: multiplicación hacia la izquierda, lo que indica que el sistema de coordenadas especificado

por "índice" desvía el valor especificado por "tabla" a lo largo del sistema de coordenadas

de brida (TCP0). 0: multiplicación por la derecha, lo que indica que el sistema de coordenadas especificado por

"índice" desvía el valor especificado por "tabla"

a lo largo de sí mismo. tabla: sistema de coordenadas de la herramienta, en formato {x, y, z, rx, ry, rz}.

Devolver:

El sistema de coordenadas de la herramienta después del cálculo, en formato {x, y, z, rx, ry, rz}.

Ejemplo:

­­ El siguiente proceso de cálculo puede ser equivalente a: Un sistema de coordenadas con la misma postura inicial que
el sistema de coordenadas de la herramienta 1, se mueve {x=10, y=10, z=10} a lo largo del sistema de coordenadas de
la brida (TCP0) y gira {rx=10, ry=10, rz=10} y el nuevo sistema de coordenadas es newTool. nuevaHerramienta =
CalcTool(1,1,{10,10,10,10,10,10})

­­ El siguiente proceso de cálculo puede ser equivalente a: Un sistema de coordenadas con la misma postura inicial que
el sistema de coordenadas de la herramienta 1, se mueve {x=10, y=10, z=10} a lo largo del sistema de coordenadas de
la herramienta 1 y gira {rx =10, ry=10, rz=10} y el nuevo sistema de coordenadas es newTool.
nuevaHerramienta = CalcTool(1,0,{10,10,10,10,10,10})

conjunto de carga

Dominio:

LoadSet (peso, inercia)

Descripción:

Comando de cola. Establecer el peso de la carga. Esta configuración solo tiene efecto cuando el proyecto actual se está

ejecutando. Una vez que el proyecto deja de ejecutarse, los parámetros se restauran a la configuración original.

Parámetro requerido:

peso: peso de la carga, el rango de valores no puede exceder el rango de carga de cada modelo de robot. Unidad: kg.

247
Machine Translated by Google

inercia: inercia de la carga, unidad: kgm².

Ejemplo:

Conjunto de carga (3,0.4)

Establezca el peso de la carga en 3 kg y la inercia de la carga en 0,4 kgm².

interruptor de carga

Dominio:

LoadSet(estado)

Descripción:

Comando de cola. Activa o desactiva la configuración de carga. La configuración de carga está desactivada de forma predeterminada, la

sensibilidad de detección de colisiones se puede mejorar después de encenderla.

Parámetro requerido:

Estado: cambio de configuración de carga. 0: APAGADO; 1: ENCENDIDO.

Ejemplo:

Interruptor de carga(1)

Active la configuración de carga.

248
Machine Translated by Google

Trayectoria
ObtenerTraceStartPose

Dominio:

GetTraceStartPose(pista)

Descripción:

Obtenga el primer punto de la trayectoria para ajustarla (StartTrace).

Parámetro requerido:

track: nombre del archivo de trayectoria, con sufijo.

Devolver:

Coordenada del primer punto de la trayectoria.

Iniciar seguimiento

Dominio:

StartTrace(pista, "Usuario=1 Herramienta=2 CP=1 VelocidadS=50 AccelS=20 SYNC=1")

Descripción:

Ajuste de trayectoria. La trayectoria del movimiento se ajusta y reproduce en función de los puntos grabados en el archivo de

trayectoria, y la velocidad del movimiento se calcula de la misma manera que el movimiento lineal, que no se ve afectado por la

velocidad del movimiento en el momento de la grabación de la trayectoria.

Parámetro requerido:

track: nombre del archivo de trayectoria, con sufijo.

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, al que se debe hacer referencia aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, al que se debe hacer referencia aquí después de agregarlo en Configuración.

CP: establece la velocidad de trayectoria continua en movimiento (consulte el comando CP en el parámetro Movimiento), rango: 0 ­ 100.

SpeedS: tasa de velocidad de movimiento, rango: 1 ­ 100.

AccelS: tasa de aceleración del movimiento, rango: 1 ­ 100.

SYNC: indicador de sincronización, rango: 0 o 1 (valor predeterminado: 0).

SYNC = 0: ejecución asincrónica, lo que significa regresar inmediatamente después de ser llamado,

249
Machine Translated by Google

independientemente del proceso de ejecución.

SYNC = 1: ejecución sincrónica. lo que significa no regresar después de ser llamado hasta que el comando se
ejecute por completo.

Ejemplo:

pista local = "track.json" local P1


= GetTraceStartPose(pista)
Ir(P1)
Iniciar seguimiento (pista)

Ajuste y reproduzca las trayectorias grabadas en el archivo track.json.

ObtenerRutaInicioPose

Dominio:

GetPathStartPose(pista)

Descripción:

Obtenga el primer punto de la trayectoria para su reproducción (StartPath).

Parámetro requerido:

track: nombre del archivo de trayectoria, con sufijo.

Devolver:

Coordenadas del primer punto de la trayectoria.

Ruta de inicio

Dominio:

StartPath(pista, "Usuario=1 Herramienta=2 muestra = 50 frecuencia = 0.2 Multi=1 isConst=0 isCart=0 isRev=0 isRe l=0")

Descripción:

Ajuste de trayectoria. La trayectoria del movimiento se ajusta y reproduce en función de los puntos grabados en el archivo de

trayectoria, y la velocidad del movimiento se calcula de la misma manera que el movimiento lineal, que no se ve afectado por la

velocidad del movimiento en el momento de la grabación de la trayectoria.

Parámetro requerido:

track: nombre del archivo de trayectoria, con sufijo.

250
Machine Translated by Google

Parámetro opcional:

Usuario: índice del sistema de coordenadas del usuario, al que se debe hacer referencia aquí después de agregarlo en Configuración.

Herramienta: índice del sistema de coordenadas de la herramienta, al que se debe hacer referencia aquí después de agregarlo en

Configuración. muestra: el intervalo de muestreo de los puntos de la trayectoria, es decir, las diferencias de tiempo de muestreo entre

dos puntos adyacentes al generar el archivo de trayectoria. Rango: [8, 1000], unidad: ms, 50 de forma predeterminada (el

intervalo de muestra cuando el controlador registra el archivo de trayectoria). freq:

coeficiente de filtro. Cuanto menor sea el valor de este parámetro, más suave será la curva de la trayectoria de reproducción, pero

más grave será la distorsión en relación con la trayectoria original. Establezca el coeficiente de filtro apropiado de acuerdo con la

suavidad de la trayectoria original. Rango: (0,1], 1 se refiere a desactivar el filtrado, 0,2 de forma predeterminada.

Multi: multiplicador de velocidad en reproducción, rango: [0.1, 2], 1 por defecto.

isConst: si reproducir o no a velocidad constante. 0 por defecto.

0 significa que la trayectoria se reproducirá a la misma velocidad. 1 significa que

la trayectoria se reproducirá a una velocidad constante y se eliminarán las pausas y las zonas muertas de la trayectoria. isCart:

si se utilizan o no puntos cartesianos. 0

por defecto.

0 significa que la trayectoria se planifica utilizando los puntos conjuntos en el archivo de trayectoria.

1 significa que la trayectoria se planifica utilizando los puntos cartesianos en el archivo de trayectoria. Solo las posiciones de

las articulaciones se registran en los archivos de trayectoria grabados con DobotStudio Pro o Dobot CRStudio; no configure este

parámetro en la reproducción.

isRev: inversión de trayectoria. 0 por defecto.

0 significa que la trayectoria no se invierte. 1

significa que la trayectoria se invierte, tomando el punto final en el archivo de trayectoria como punto inicial y el punto inicial

como punto final.

isRel: desplazamiento de trayectoria. 0 por defecto.

0 significa que la trayectoria no está

compensada. 1 significa que la trayectoria se compensa, tomando el punto actual del brazo robótico como punto inicial de la

trayectoria y compensando la trayectoria en su conjunto.

Ejemplo:

pista local = "track.json" local P1


= GetPathStartPose(pista)
Ir(P1)
Ruta de inicio (pista)

Reproduzca la trayectoria grabada en el archivo track.json a la velocidad original.

251
Machine Translated by Google

Visión
El módulo de visión se utiliza para configurar los ajustes relevantes de la cámara. La cámara se fija dentro del rango de trabajo del robot.

Su posición y campo de visión son fijos. La cámara actúa como el ojo del robot e interactúa con el robot a través de comunicación

Ethernet o activación de E/S.

Los métodos de instalación y configuración de la cámara varían según las diferentes cámaras. Esta sección no lo describirá en detalle.

Configurar el proceso de visión

Haga clic en Vision Config en el lado derecho de los comandos de Vision para comenzar a configurar la cámara. Si configura la

cámara por primera vez, haga clic en Nuevo e ingrese un nombre de cámara para crear una configuración de cámara.

Entonces se mostrará la siguiente página.

Tipo de disparador

Establezca un tipo para activar la cámara.

Disparador por IO: conecte la cámara a la interfaz DO del robot. Debe configurar el puerto de salida correspondiente según

el puerto del cableado eléctrico.

Disparador por red: Conecte la cámara al puerto Ethernet del robot. Debe configurar las cadenas que el robot envía a través de la red

para activar la cámara.

252
Machine Translated by Google

Parámetros básicos de la red.

Los parámetros básicos de la red se utilizan para configurar el modo de comunicación entre la cámara y el robot, incluidos los

siguientes modos.

TCP_Client: comunicación TCP. El robot actúa como cliente y la cámara como servidor. Debe configurar la dirección

IP, el puerto y el tiempo de espera de la cámara.

TCP_Server: comunicación TCP. El robot actúa como servidor y la cámara como cliente. Necesita configurar el puerto

y el tiempo de espera de la cámara.

El método de recepción incluye dos modos: bloque y no bloque. Seleccione de acuerdo con el guión del proyecto.

Bloquear: después de enviar la señal de activación, el programa permanecerá en la línea de recepción de datos

durante el tiempo de bloqueo y continuará ejecutándose hasta que se reciban los datos enviados por la cámara; Si el

tiempo de bloqueo se establece en 0, el programa esperará en la línea de recepción de datos hasta recibir los datos

enviados por la cámara.

Sin bloqueo: después de enviar la señal de activación, el programa continúa ejecutándose sin importar si el
se reciben o no datos de la cámara.

El formato de aceptación de red se refiere al tipo de datos enviado por la cámara utilizada para el análisis. Si el bit

de datos predeterminado actual no es suficiente, puede hacer clic en Agregar bits de datos para aumentar la longitud de

los datos recibidos a un máximo de 8 bits: No, D1, D2, D3, D4, D5, D6, STA, donde No indica el número de plantilla

de bit de inicio, y STA indica el bit de finalización (bit de estado).

Puede configurar una variedad de formatos de datos, como:

Sin bit inicial ni bit final: XX, YY, CC;

Con un bit inicial pero sin bit final: No, XX, YY, CC;

Sin bit de inicio pero sí de final: XX, YY, CC, STA;

Con bit inicial y bit final: No, XX, YY, CC, STA;

Haga clic en Guardar en la esquina superior derecha después de la configuración.

cámara inicial

Dominio:

253
Machine Translated by Google

Cámara inicial (CAM)

Descripción:

Conéctese a la cámara especificada e inicialícela.

Parámetro requerido:

CAM: Nombre de la cámara, el cual debe ser consistente con la cámara configurada en el proceso de visión

Devolver:

Resultado de la inicialización.

0: Inicialización exitosa

1: No se pudo inicializar

Ejemplo:

Cámara inicial(“CAM0”)

Conéctese a la cámara CAM0 e inicialícela.

Cámara de disparo

Dominio:

Cámara de disparo (CAM)

Descripción:

Active la cámara inicializada para tomar una fotografía.

Parámetro requerido:

CAM: Nombre de la cámara, el cual debe ser consistente con la cámara configurada en el proceso de visión

Devolver:

Resultado del disparador.

0: Disparo exitoso

1: no se pudo activar

Ejemplo:

Activador de cámara(“CAM0”)

254
Machine Translated by Google

Active la cámara CAM0 para tomar una fotografía.

Enviar Cámara

Dominio:

EnviarCam(CAM,datos)

Descripción:

Envía datos a la cámara inicializada.

Parámetro requerido:

CAM: Nombre de la cámara, que debe ser coherente con la cámara configurada en la visión.

proceso
datos: datos enviados a la cámara

Devolver:

Resultado del envío de datos.

0: enviar con éxito


1: no se pudo enviar

Ejemplo:

EnviarCam(“CAM0”,“0,0,0,0”)

Envía datos (“0,0,0,0”) a la cámara CAM0.

cámara recv

Dominio:

RecvCam(CAM,tipo)

Descripción:

Reciba datos de la cámara inicializada.

Parámetro requerido:

CAM: Nombre de la cámara, el cual debe ser consistente con la cámara configurada en el proceso de visión

Parámetro opcional:

tipo: tipo de datos, rango de valores: número o cadena (número por defecto)

255
Machine Translated by Google

Devolver:

errar: código de error

0: recibir datos correctamente


1: tiempo muerto

2: formato de datos incorrecto que no se puede analizar


3: desconexión de la red

n: número de grupos de datos enviados por la cámara.

datos: los datos enviados por la cámara se almacenan en una matriz bidimensional.

Ejemplo:

error local ,n,datos = RecvCam("CAM0","número")

Reciba datos de la cámara CAM0 y el tipo de datos es número.

DestroyCam
Dominio:

DestruirCam(CAM)

Descripción:

Libere la conexión con la cámara.

Parámetro requerido:

CAM: Nombre de la cámara, el cual debe ser consistente con la cámara configurada en el proceso de visión

Devolver:

0: La cámara ha sido desconectada.

1: La cámara no se pudo desconectar.

Ejemplo:

DestruirCam(“CAM0”)

Liberar la conexión con la cámara CAM0.

256
Machine Translated by Google

Transportador

El comando del transportador debe usarse con el paquete de proceso del transportador.

CnvVison

Dominio:

CnvVison(CnvID)

Descripción:

Inicialice el transportador especificado.

Parámetro requerido:

CnvID: ID del transportador

Devolver

El resultado del ajuste.

0: Se ha configurado correctamente.
1: No se puede configurar.

Ejemplo:

CnvVisón(0)

Inicialice el transportador con el número 0.

ObtenerCnvObjeto

Dominio:

ObtenerCnvObject(CnvID, ObjID)

Descripción:

Obtiene los datos del objeto especificado del transportador especificado y detecta si ingresa al área de agarre.
área.

Parámetro requerido:

CnvID: ID del transportador.

257
Machine Translated by Google

ObjID: ID del objeto.

Devolver

bandera: indica si se detecta el objeto. Rango de valores: verdadero o falso tipoObjeto:

tipo de objeto punto:

coordenada del objeto {x,y,z}

Ejemplo:

bandera,tipoObjeto,punto = GetCnvObject(0,0)

Obtenga los datos del objeto 0 en el transportador 0.

Establecer desplazamiento de punto Cnv

Dominio:

EstablecerCnvPointOffset(xOffset,yOffset)

Descripción:

Establezca el desplazamiento de los puntos en las direcciones X e Y bajo el sistema de coordenadas del usuario del transportador.

Parámetro requerido:

xOffset: desplazamiento del eje X, unidad: mm

yOffset: desplazamiento del eje Y, unidad: mm

Devolver

El resultado del ajuste.

0: Se ha configurado correctamente.
1: No se puede configurar.

Ejemplo:

EstablecerCnvPointOffset(10,10)

Establezca el desplazamiento del punto del transportador en X=10 mm e Y=10 mm.

Establecer compensación de tiempoCnv

Dominio:

SetCnvTimeCompensation(tiempo)

258
Machine Translated by Google

Descripción:

Establecer compensación de tiempo. Cuando la posición de agarre del brazo del robot queda por detrás de la posición real del objeto,

se puede ajustar configurando la compensación de tiempo.

Parámetro requerido:

tiempo: compensación de tiempo, unidad: ms

Devolver

El resultado del ajuste.

0: Se ha configurado correctamente.
1: No se puede configurar.

Ejemplo:

Establecer compensación de tiempoCnv(30)

Establezca la compensación de tiempo en 30 ms.

SincronizarCnv

Dominio:

SincCnv(CnvID)

Descripción:

Sincronice el transportador especificado. Después de la sincronización, los puntos basados en el sistema de coordenadas del usuario

del transportador se mueven con el transportador. El comando de movimiento entre este comando y el comando StopSyncCnv

solo admite el comando Mover.

Parámetro requerido:

CnvID: ID del transportador

Devolver

El resultado de la sincronización.

0: Se ha sincronizado correctamente.

1: No se puede sincronizar.

Ejemplo:

SincronizaciónCnv(0)

259
Machine Translated by Google

Sincronice el transportador número 0.

PararSyncCnv
Dominio:

StopSyncCnv(CnvID)

Descripción:

Deje de sincronizar el transportador y solo después de ejecutar este comando continuará emitiendo otros comandos.

Parámetro requerido:

CnvID: ID del transportador

Devolver

El resultado de la ejecución.

0: Se ha ejecutado con éxito.


1: No se puede ejecutar.

Ejemplo:

DetenerCnvSincronización(0)

Deje de sincronizar el transportador número 0.

260
Machine Translated by Google

Piel segura

SetSafeSkin
Dominio:

EstablecerSafeSkin(estado)

Descripción:

Activa o desactiva SafeSkin.

Parámetro requerido:

estado: 0 representa deshabilitar SafeSkin, 1 representa habilitar SafeSkin. Si el SafeSkin interno del Dobot+ está apagado,
este comando no funciona.

Ejemplo:

HabilitarSafeSkin(1)

Habilite SafeSkin.

261

También podría gustarte