1. Introduzione a CNDE

Il protocollo configurabile di scambio dati di rete per robot collaborativi (di seguito CNDE) è un metodo tramite il quale un client controlla il robot e ottiene il suo stato di feedback attraverso la comunicazione UDP.

La Tabella 1-1 mostra l’insieme di tutti gli stati del robot ottenibili tramite CNDE. Il client può selezionare qualsiasi numero di stati necessari dalla tabella e far sì che il robot fornisca il feedback degli stati in base al periodo di feedback impostato.

Allo stesso modo, il client può selezionare le combinazioni di funzioni di controllo del robot necessarie dalla Tabella 1-2 per eseguire operazioni di controllo del robot. I dati di comunicazione CNDE tra client e robot devono seguire un formato di frame specifico, e la porta di comunicazione CNDE del robot è 20006.

L’utilizzo della funzione CNDE del robot comprende principalmente i seguenti quattro passaggi:

① Configurazione del contenuto dei dati di input e output: Il client invia un comando di configurazione di input e output al robot, in cui il contenuto del comando include nomi di funzioni di controllo o stato come «std_DI_box, cfg_DI_box, motion_queue_len», ecc. Dopo aver registrato e riconosciuto questi nomi, il robot risponde al client con i tipi di dati corrispondenti, ad esempio «UINT8, UINT8, INT32», indicando che la configurazione è riuscita.

② Avvio dell’output dei dati CNDE del robot: Il client invia un comando di avvio dell’output dei dati CNDE al robot, e il robot inizia a inviare i dati di stato al client via UDP sotto forma di array di byte (modalità little-endian) secondo il periodo configurato.

③ Analisi dei dati di stato del robot: Il client riceve ciclicamente i dati di stato inviati dal robot e li analizza in base ai tipi di dati restituiti durante la configurazione dell’output e alla lunghezza in byte corrispondente a ciascun tipo di dati nella Tabella 1-3, ottenendo i valori effettivi di ciascuno stato. L’output dei dati CNDE del robot supporta un massimo di 4096 byte, e il periodo di output CNDE configurabile è compreso tra 1 e 200 ms.

④ Invio dei dati di controllo al robot: Il client impacchetta i dati di controllo in base ai tipi di dati restituiti durante la configurazione dell’input e alla lunghezza in byte corrispondente a ciascun tipo di dati nella Tabella 1-3, e li invia al robot tramite comunicazione UDP. Il robot, dopo aver ricevuto i dati di controllo, li analizza e esegue le operazioni di controllo. L’input CNDE del robot supporta 256 ricette. Il client può configurare prima più ricette di input secondo necessità e, quando invia dati di input al robot, deve specificare il numero della ricetta corrispondente ai dati correnti.

Tabella 1-1 Funzioni di configurazione dell’output del robot

Nome

Tipo di dato

Descrizione

std_DI_box

UINT8

Input standard DI del quadro di controllo (bit0 ~ bit7 rappresentano DI0 ~ DI7)

cfg_DI_box

UINT8

Input CI configurabile del quadro di controllo (bit0 ~ bit7 rappresentano CI0 ~ CI7)

cfg_DI_tool

UINT8

Input DI dello strumento configurabile del quadro di controllo (bit0 ~ bit2 rappresentano toolDI0 ~ toolDI1)

std_AI0_box

DOUBLE

Input analogico AI0 del quadro di controllo (0 ~ 4095)

std_AI1_box

DOUBLE

Input analogico AI1 del quadro di controllo (0 ~ 4095)

std_AI_tool

DOUBLE

Input analogico dello strumento terminale tool_AI0 (0 ~ 4095)

run_up_time

DOUBLE

Statistica del tempo di accensione del robot (s)

target_joint_pos

DOUBLE_6

Posizione target giunto 1-6 (°)

target_joint_vel

DOUBLE_6

Velocità target giunto 1-6 (°/s)

target_joint_acc

DOUBLE_6

Accelerazione target giunto 1-6 (°/s²)

target_joint_current

DOUBLE_6

Corrente target giunto 1-6 (A)

target_joint_torque

DOUBLE_6

Coppia target giunto 1-6 (Nm)

actual_joint_pos

DOUBLE_6

Posizione corrente giunto 1-6 (°)

actual_joint_vel

DOUBLE_6

Velocità corrente giunto 1-6 (°/s)

actual_joint_current

DOUBLE_6

Corrente corrente giunto 1-6 (A)

actual_joint_torque

DOUBLE_6

Coppia corrente giunto 1-6 (Nm)

actual_TCP_pos

DOUBLE_6

Posizione corrente strumento DKR (mm)

actual_TCP_vel

DOUBLE_6

Velocità corrente strumento DKR (mm/s)

actual_TCP_force

DOUBLE_6

Forza risultante strumento DKR (N)

target_TCP_pos

DOUBLE_6

Posizione target strumento DKR (mm)

target_TCP_vel

DOUBLE_6

Velocità target strumento DKR (mm/s)

std_DO_box

UINT8

Output standard DO del quadro di controllo (bit0 ~ bit7 rappresentano DO0 ~ DO7)

cfg_DO_box

UINT8

Output CO configurabile del quadro di controllo (bit0 ~ bit7 rappresentano CO0 ~ CO7)

cfg_DO_tool

UINT8

Output standard DO dello strumento del quadro di controllo (bit0 ~ bit1 rappresentano toolDO0 ~ toolDO1)

std_AO0_box

DOUBLE

Output analogico AO0 del quadro di controllo (0.0 ~ 4095.0)

std_AO1_box

DOUBLE

Output analogico AO1 del quadro di controllo (0.0 ~ 4095.0)

std_AO_tool

DOUBLE

Output analogico AO1 dello strumento (0.0 ~ 4095.0)

robot_mode

UINT8

Modalità robot (0-automatico; 1-manuale)

collision_level

UINT8_6

Livello di collisione giunto 1-6 (1 ~ 10)

speed_scaling_man

DOUBLE

Percentuale velocità modalità manuale (0 ~ 100)

speed_scaling_auto

DOUBLE

Percentuale velocità modalità automatica (0 ~ 100)

program_state

UINT8

Stato esecuzione programma robot (1-fermo; 2-in movimento; 3-in pausa; 4-trascinamento)

line_number

INT32

Numero riga programma corrente in esecuzione

payload

DOUBLE

Massa del carico (kg)

pay_cog

DOUBLE_3

Centro di massa del carico (x,y,z) (mm)

motion_queue_len

INT32

Lunghezza attuale coda movimento

ft_sensor_data

DOUBLE_6

Dati grezzi sensore di forza

main_code

INT32

Codice errore principale

sub_code

INT32

Codice errore secondario

emergency_stop

UINT8

Stato arresto di emergenza

motion_done

INT32

Stato completamento movimento

timestamp_us

UINT64

Tempo di sistema robot (µs)

output_BIT_reg_8xX

UINT8_X

Registro di output robot tipo BIT (8xX indica il numero di registri, se servono 16 registri di output tipo BIT, il nome effettivo è: «output_BIT_reg_8x2». Il robot supporta massimo 128 registri di output tipo BIT)

output_INT_reg_X

INT32_X

Registro di output robot tipo INT (X indica il numero di registri, se servono 16 registri di output tipo INT, il nome effettivo è: «output_INT_reg_16». Il robot supporta massimo 64 registri di output tipo INT)

output_DOUBLE_reg_X

DOUBLE_X

Registro di output robot tipo DOUBLE (X indica il numero di registri, se servono 16 registri di output tipo DOUBLE, il nome effettivo è: «output_DOUBLE_reg_16». Il robot supporta massimo 64 registri di output tipo DOUBLE)

ft_sensor_data

DOUBLE_6

Dati sensore di forza

Tabella 1-2 Funzioni di configurazione del controllo in input del robot

Nome

Tipo di dato

Descrizione

speed_mask

UINT8

Maschera impostazione velocità globale: 0-non attiva; 1-attiva

speed

UINT8

Imposta velocità globale (0-100)

std_DO_mask

UINT8

Maschera controllo output DO standard del quadro di controllo (bit0 ~ bit7 rappresentano DO0 ~ DO7)

std_DO_box

UINT8

Output DO standard del quadro di controllo (bit0 ~ bit7 rappresentano DO0 ~ DO7)

cfg_DO_mask

UINT8

Maschera controllo output CO configurabile del quadro di controllo (bit0 ~ bit7 rappresentano CO0 ~ CO7)

cfg_DO_box

UINT8

Output CO configurabile del quadro di controllo (bit0 ~ bit7 rappresentano CO0 ~ CO7)

cfg_DO_tool_mask

UINT8

Maschera controllo output DO standard dello strumento del quadro di controllo (bit0 ~ bit1 rappresentano toolDO0 ~ toolDO1)

cfg_DO_tool

UINT8

Output DO standard dello strumento del quadro di controllo (bit0 ~ bit1 rappresentano toolDO0 ~ toolDO1)

std_AO_mask

UINT8

Maschera controllo output analogico del robot (bit0 ~ bit1 rappresentano AO0 ~ AO1 del quadro di controllo; bit2 rappresenta AO0 dello strumento)

std_AO0_box

DOUBLE

Output analogico AO0 del quadro di controllo (0.0 ~ 4095.0)

std_AO1_box

DOUBLE

Output analogico AO1 del quadro di controllo (0.0 ~ 4095.0)

std_AO0_tool

DOUBLE

Output analogico AO1 dello strumento (0.0 ~ 4095.0)

input_BIT_reg_8xX

UINT8_X

Registro di input robot tipo BIT (8xX indica il numero di registri, se servono 16 registri di input tipo BIT, il nome effettivo è: «input_BIT_reg_8x2». Il robot supporta massimo 128 registri tipo BIT)

input_INT_reg_X

INT32_X

Registro di input robot tipo INT (X indica il numero di registri, se servono 16 registri di input tipo INT, il nome effettivo è: «input_INT_reg_16». Il robot supporta massimo 64 registri tipo INT)

input_DOUBLE_reg_X

DOUBLE_X

Registro di input robot tipo DOUBLE (X indica il numero di registri, se servono 16 registri di input tipo DOUBLE, il nome effettivo è: «input_DOUBLE_reg_16». Il robot supporta massimo 64 registri tipo DOUBLE)

Tabella 1-3 Corrispondenza tipi di dati e lunghezza in byte

Tipo di dato

Lunghezza in byte

UINT8

1

INT32

4

DOUBLE

8

UINT8_X

1*X

INT32_X

4*X

DOUBLE_X

8*X