1 Introducción a Modbus
Modbus es un protocolo de comunicación en serie. Mediante este protocolo, el robot puede comunicarse con dispositivos externos. Al controlar el robot mediante dispositivos externos como los PLC, el dispositivo externo actúa como una estación maestra Modbus y el robot como una estación esclava Modbus.
De acuerdo con el protocolo Modbus, las direcciones de Modbus asignadas por el robot colaborativo de seis ejes Dobot son las siguientes:
00001-09999: Registro de bobina, el valor solo admite 0 o 1, se utiliza para controlar el robot, se puede leer y escribir.
10001-19999: Registro de contacto, el valor solo admite 0 o 1, utilizado para obtener el estado del robot, solo lectura.
30001-39999: Registro de entrada, el valor máximo admite números de coma flotante de doble precisión de 64 bits, que se utilizan para obtener datos de retroalimentación en tiempo real del robot, de solo lectura.
40001-49999: Registro de retención, el valor máximo admite números de coma flotante de doble precisión de 64 bits, utilizados para la interacción del robot PLC, legibles y escribibles.
Los códigos de función Modbus correspondientes a diversos tipos de registros siguen el protocolo Modbus estándar:
Tipo de registro | Leer registro | Escribir un registro | Escribir varios registros |
Registro de coil | 01 | 05 | 0F |
Registro de contactos | 02 | - | - |
Registro de entrada | 04 | - | - |
Registro de retención | 03 | 06 | 10 |
El robot proporciona dos mapas para el acceso de dispositivos externos. Se puede acceder a map1 a través de los puertos 502 (Modbus-TCP) y 503 (RTU-over-TCP), y se puede acceder a map2 a través de los puertos 1502 (Modbus-TCP) y 1503 (RTU-over-TCP).
El sistema del robot utiliza algunas direcciones de map1 por defecto. Para obtener más información, consulte la definición de registro siguiente. map2 actualmente está vacío y se puede utilizar según las necesidades de los usuarios.
2 Registro de bobinas (mapa1, robot de control)
Dirección de PLC | Dirección de script (Get/SetCoils) | Tipo de registro | Función |
00001 | 0 | Bit | Iniciar |
00002 | 1 | Bit | Detener |
00003 | 2 | Bit | Poner en pausa |
00004 | 3 | Bit | Activar |
00005 | 4 | Bit | Desactivar |
00006 | 5 | Bit | Borrar alarma |
00007 | 6 | Bit | Entrar en arrastre |
00008 | 7 | Bit | Salir de arrastre |
00009 | 8 | Bit | Cambiar al modo automático |
00010 | 9 | Bit | Cambiar al modo manual |
00011~01025 | 10~1024 | Bit | Direcciones reservadas |
01025~09999 | 1024~9998 | Bit | Personalizado |
3 Definición del registro de contactos (mapa1, estado del robot)
Dirección de PLC | Dirección de script (GetInBits) | Tipo de registro | Función |
10001 | 0 | Bit | Estado de funcionamiento |
10002 | 1 | Bit | Estado de parada |
10003 | 2 | Bit | Estado de pausa |
10004 | 3 | Bit | Estado de origen de seguridad |
10005 | 4 | Bit | Estado de pausa de piel de seguridad |
10006 | 5 | Bit | Estado de inactividad |
10007 | 6 | Bit | Estado de encendido |
10008 | 7 | Bit | Estado de activación |
10009 | 8 | Bit | Estado de alarma |
10010 | 9 | Bit | Estado de colisión |
10011 | 10 | Bit | Entrar en estado de arrastre |
10012~19999 | 11~9998 | Bit | No definido |
4 Definición del registro de entrada (mapa1, datos de retroalimentación del robot en tiempo real)
Las funciones de registro de las direcciones PLC 30001~30999 y 31722~39999 no están definidas (excepto 32001, que almacena el código SN del controlador tipo U16). El orden de los bytes se invierte según el formato little-endian.
Dirección de PLC | Tipo de datos | Número | Tamaño de byte | Dirección de script (GetInRegs) | Tipo | Función |
31000 | unsigned short | 1 | 2 | 999 | U16 | Validez de datos |
31001 | unsigned short | 1 | 2 | 1000 | U16 | Longitud total de bytes del mensaje |
31002~31004 | - | - | - | 1001~1003 | - | Direcciones reservadas |
31005~31008 | uint64 | 1 | 8 | 1004~1007 | U64 | Entrada numérica, ver Instrucciones DI/DO |
31009~31012 | uint64 | 1 | 8 | 1008~1011 | U64 | Salida digital, ver Instrucciones DI/DO |
31013~31016 | uint64 | 1 | 8 | 1012~1015 | U64 | Modo robot, ver Descripción del modo robot |
31017~31020 | uint64 | 1 | 8 | 1016~1019 | U64 | Marca de tiempo de Unix (en ms) |
31021~31024 | - | - | - | 1020~1023 | - | Direcciones reservadas |
31025~31028 | uint64 | 1 | 8 | 1024~1027 | U64 | Valor estándar de prueba de estructura de memoria |
31029~31032 | - | - | - | 1028~1031 | - | Direcciones reservadas |
31033~31036 | double | 1 | 8 | 1032~1035 | F64 | Relación de velocidad |
31037~3104 | - | - | - | 1036~1039 | - | Direcciones reservadas |
31041~31044 | double | 1 | 8 | 1040~1043 | F64 | Voltaje de la placa de control |
31045~31048 | double | 1 | 8 | 1044~1047 | F64 | Voltaje del robot |
31049~31052 | double | 1 | 8 | 1048~1051 | F64 | Corriente del robot |
31053~31096 | - | - | - | 1052~1095 | - | Direcciones reservadas |
31097~31120 | double | 6 | 48 | 1096~1119 | F64 | Posición de la articulación objetivo |
31121~31144 | double | 6 | 48 | 1120~1143 | F64 | Velocidad de la articulación objetivo |
31145~31168 | double | 6 | 48 | 1144~1167 | F64 | Aceleración de la articulación objetivo |
31169~31192 | double | 6 | 48 | 1168~1191 | F64 | Corriente de la articulación objetivo |
31193~31216 | double | 6 | 48 | 1192~1215 | F64 | Par de la articulación objetivo |
31217~31240 | double | 6 | 48 | 1216~1239 | F64 | Posición real de la articulación |
31241~31264 | double | 6 | 48 | 1240~1263 | F64 | Velocidad real de la articulación |
31265~31288 | double | 6 | 48 | 1264~1287 | F64 | Corriente real de la articulación |
31289~31312 | double | 6 | 48 | 1288~1311 | F64 | Valor de fuerza del sensor TCP |
31313~31336 | double | 6 | 48 | 1312~1335 | F64 | Coordenada cartesiana real de TCP |
31337~31360 | double | 6 | 48 | 1336~1359 | F64 | Velocidad cartesiana real de TCP |
31361~31384 | double | 6 | 48 | 1360~1383 | F64 | Valor de fuerza TCP |
31384~31408 | double | 6 | 48 | 1384~1407 | F64 | Coordenada cartesiana objetivo de TCP |
31409~31432 | double | 6 | 48 | 1408~1431 | F64 | Velocidad cartesiana objetivo de TCP |
31433~31456 | double | 6 | 48 | 1432~1455 | F64 | Temperatura de la articulación |
31456~31480 | double | 6 | 48 | 1456~1479 | F64 | Modo de control de articulación. |
31481~31504 | double | 6 | 48 | 1480~1503 | F64 | Voltaje de la articulación |
31505~31506 | - | - | - | 1504~1505 | - | Direcciones reservadas |
31507 | char | 1 | 1 | Byte bajo 1506 | I8 | Sistema de coordenadas del usuario |
31507 | char | 1 | 1 | Byte alto 1506 | I8 | Sistema de coordenadas de la herramienta |
31508 | char | 1 | 1 | Byte bajo 1507 | I8 | Etiqueta de ejecución de cola de algoritmos |
31508 | char | 1 | 1 | Byte alto 1507 | I8 | Etiqueta de pausa de cola de algoritmos |
31509 | char | 1 | 1 | Byte bajo 1508 | I8 | Relación de velocidad de la articulación |
31509 | char | 1 | 1 | Byte alto 1508 | I8 | Relación de aceleración de la articulación |
31510 | char | 1 | 1 | Byte bajo 1509 | I8 | Relación de variación de aceleración de la articulación |
31510 | char | 1 | 1 | Byte alto 1509 | I8 | Relación de velocidad de posición cartesiana |
31511 | char | 1 | 1 | Byte bajo 1510 | I8 | Relación de velocidad de postura cartesiana |
31511 | char | 1 | 1 | Byte alto 1510 | I8 | Relación de aceleración de posición cartesiana |
31512 | char | 1 | 1 | Byte bajo 1511 | I8 | Relación de aceleración de postura cartesiana |
31512 | char | 1 | 1 | Byte alto 1511 | I8 | Relación de variación de aceleración de posición cartesiana |
31513 | char | 1 | 1 | Byte bajo 1512 | I8 | Relación de variación de aceleración de postura cartesiana |
31513 | char | 1 | 1 | Byte alto 1512 | I8 | Estado del freno del robot; consulte para obtener más detallesDescripción del estado del freno |
31514 | char | 1 | 1 | Byte bajo 1513 | I8 | Estado de activación del robot |
31514 | char | 1 | 1 | Byte alto 1513 | I8 | Estado de arrastre del robot |
31515 | char | 1 | 1 | Byte bajo 1514 | I8 | Estado de funcionamiento del robot |
31515 | char | 1 | 1 | Byte alto 1514 | I8 | Estado de alarma del robot |
31516 | char | 1 | 1 | Byte bajo 1515 | I8 | Estado de desplazamiento por impulsos del robot |
31516 | char | 1 | 1 | Byte alto 1515 | I8 | Tipo de máquina, consulteDescripción del tipo de robot |
31517 | char | 1 | 1 | Byte bajo 1516 | I8 | Señal de arrastre de tablero de botones |
31517 | char | 1 | 1 | Byte alto 1516 | I8 | Señal de activación de tablero de botones |
31518 | char | 1 | 1 | Byte bajo 1517 | I8 | Señal de registro de tablero de botones |
31518 | char | 1 | 1 | Byte alto 1517 | I8 | Señal de reproducción de tablero de botones |
31519 | char | 1 | 1 | Byte bajo 1518 | I8 | Señal de control de pinza de tablero de botones |
31519 | char | 1 | 1 | Byte alto 1518 | I8 | Estado en línea de fuerza de seis dimensiones |
31520 | char | 1 | 1 | 1519 bytes bajos | I8 | Estado de colisión |
31520 | char | 1 | 1 | 1519 bytes altos | I8 | (Piel de seguridad) El antebrazo está cerca del estado de pausa. |
31521 | char | 1 | 1 | 1520 bytes bajos | I8 | (Piel de seguridad) J4 está cerca del estado suspendido |
31521 | char | 1 | 1 | 1520 bytes altos | I8 | (Piel de seguridad) J5 está cerca del estado suspendido |
31522 | char | 1 | 1 | 1521 bytes bajos | I8 | (Piel de seguridad) J6 está cerca del estado suspendido |
31522 | char | 1 | 1 | 1521 bytes altos | I8 | Direcciones reservadas |
31523~31552 | - | - | - | 1522~1551 | - | Direcciones reservadas |
31553~31556 | double | 1 | 8 | 1552~1555 | F64 | Direcciones reservadas |
31557~31560 | uint64 | 1 | 8 | 1556~1559 | U64 | ID de cola de algoritmo actual |
31561~31584 | double | 6 | 48 | 1560~1583 | F64 | Par real |
31585~31588 | double | 1 | 8 | 1584~1587 | F64 | Peso de la carga (kg) |
31589~31592 | double | 1 | 8 | 1588~1591 | F64 | Distancia excéntrica en dirección X (mm) |
31593~31596 | double | 1 | 8 | 1592~1595 | F64 | Distancia excéntrica en dirección Y (mm) |
31597~31600 | double | 1 | 8 | 1596~1599 | F64 | Distancia excéntrica en dirección Z (mm) |
31601~31624 | double | 6 | 48 | 1600~1623 | F64 | Valores de coordenadas del usuario |
31625~31648 | double | 6 | 48 | 1624~1647 | F64 | Valores de coordenadas de la herramienta |
31649~31652 | double | 1 | 8 | 1648~1651 | F64 | Índice de ejecución de reproducción de trayectoria |
31653~31676 | double | 6 | 48 | 1652~1675 | F64 | Valor sin procesar actual de datos de fuerza de seis dimensiones |
31677~31692 | double | 4 | 32 | 1676~1691 | F64 | [qw,qx,qy,qz] cuaternión objetivo |
31693~31708 | double | 4 | 32 | 1692~1707 | F64 | [qw,qx,qy,qz] cuaternión real |
31709 | unsigned short | 1 | 2 | 1708 | U16 | Estado manual/automático. |
31710~31721 | double | 1 | 24 | 1709~1720 | F64 | Direcciones reservadas |
|
|
| 1440 |
|
| Total de 1440 bytes |
Descripción del valor de realimentación del parámetro de movimiento
Si los parámetros de movimiento (velocidad, aceleración, etc.) se configuran por separado en el proyecto, los valores de retroalimentación relevantes no se actualizarán inmediatamente, sino que hasta el robot ejecute el siguiente comando de movimiento.
Instrucciones DI/DO
Cada DI/DO ocupa 8 bytes, cada byte tiene 8 bits (binario) y puede representar el estado de hasta 64 puertos de DI/DO. Cada byte de bajo a alto y cada bit representan un estado de terminal. 1 significa que el terminal correspondiente está en ON y 0 significa que el terminal correspondiente está en OFF o que no hay ningún terminal correspondiente.
Por ejemplo, el primer byte de DI es 0x01, que en binario se representa como 00000001. Cuando se lee desde el bit menos significativo al más significativo, cada bit corresponde al estado de D1_1 a DI_8. En este caso, DO_1 está establecido en ON, mientras que las 7 DI restantes están establecidas en OFF.
El segundo byte es 0x02, que en binario se representa como 00000010. Cuando se lee desde el bit menos significativo al más significativo, cada bit corresponde al estado de D1_9 a DI_16. En este caso, DI_10 está establecido en ON, mientras que las 7 DI restantes están establecidas en OFF.
Los bytes posteriores siguen este patrón. Dependiendo del armario de control, el número de terminales de E/S varía. Los bits binarios más allá del número de terminales de E/S se rellenan con 0.
Descripción del modo robot
Valor | Definición | Descripción |
1 | ROBOT_MODE_INIT | Estado de inicialización |
2 | ROBOT_MODE_BRAKE_OPEN | Cualquier liberación del freno de la articulación |
3 | ROBOT_MODE_POWEROFF | Estado de apagado del brazo robótico |
4 | ROBOT_MODE_DISABLED | No activado (sin liberación del freno) |
5 | ROBOT_MODE_ENABLE | Activado e inactivo |
6 | ROBOT_MODE_BACKDRIVE | Modo de arrastre |
7 | ROBOT_MODE_RUNNING | Estado de ejecución (proyecto, movimiento de cola TCP, etc.) |
8 | ROBOT_MODE_SINGLE_MOVE | Estado de movimiento único (desplazamiento por impulsos, RunTo, etc.) |
9 | ROBOT_MODE_ERROR | Alarmas no borradas. Este estado tiene la prioridad más alta. Independientemente del estado del brazo robótico, devuelve 9 cuando hay una alarma. |
10 | ROBOT_MODE_PAUSE | Estado de pausa del proyecto |
11 | ROBOT_MODE_COLLISION | Estado de activación de la detección de colisión |
Descripción del estado del freno
Este byte expresa el estado del freno de cada articulación en bits. 1 significa que se ha liberado el freno de esa articulación. El número de bit se corresponde con la articulación como se muestra en la siguiente tabla:
Número de bit | Significado |
7 | Direcciones reservadas |
6 | Direcciones reservadas |
5 | Articulación 1 |
4 | Articulación 2 |
3 | Articulación 3 |
2 | Articulación 4 |
1 | Articulación 5 |
0 | Articulación 6 |
Ejemplo:
0x01 (00000001): Se libera el freno de la articulación 6
0x02 (00000010): Se libera el freno de la articulación 5
0x03 (00000011): Se liberan los frenos de las articulaciones 5 y 6
0x03 (00000100): Se libera el freno de la articulación 4
Descripción del tipo de robot
Valor | Modelo |
3 | CR3 |
5 | CR5 |
7 | CR7 |
10 | CR10 |
12 | CR12 |
16 | CR16 |
101 | Nova 2 |
103 | Nova 5 |
113 | CR3A |
115 | CR5A |
117 | CR7A |
120 | CR10A |
122 | CR12A |
126 | CR16A |
130 | CR20A |
150 | Magician E6 |
5 Definición del registro de retención (mapa1, interacción robot-PLC)
Dirección de PLC | Dirección de script (Get/SetHoldRegs) | Tipo de registro | Función |
40001~41024 | 0~1023 | - | Direcciones reservadas |
41025~49999 | 1024~9998 | - | Personalizado |