4. Registri di Input/Output del Robot
Il client CNDE e il robot possono interagire tramite i registri di input e output, includendo due processi specifici:
① La configurazione di input del client CNDE include i registri di input. Durante l’inserimento dei dati, i valori dei registri di input vengono modificati. Il programma LUA del robot aggiunge istruzioni di lettura dei registri di input. Eseguendo il programma LUA, è possibile leggere i valori dei registri di input modificati dal client CNDE.
② Il programma LUA del robot aggiunge istruzioni di scrittura dei registri di output. Eseguendo il programma LUA, i valori vengono scritti nei registri di output. La configurazione di output del client CNDE include i registri di output. Avviando il feedback di stato CNDE del robot, il client riceve i dati di output CNDE e può leggere i valori dei registri di output scritti nel programma LUA.
4.1. Lettura dei Registri di Input
Apri WebApp, clicca in sequenza «Programma di insegnamento», «Programmazione», crea un nuovo programma utente «testReg.lua».
Figura 4-1 Creazione del programma «testReg.lua»
Clicca «Variabili», nella casella di aggiunta istruzioni a destra seleziona «Lettura variabile registro di input», scegli il tipo di variabile «int», indice di partenza registro 0, numero di registri 3, clicca il pulsante «Aggiungi» e poi «Applica».
Figura 4-2 Aggiunta istruzione lettura registro di input
Ora «testReg.lua» ha aggiunto un’istruzione per leggere il registro di input di tipo «int».
Figura 4-3 Aggiunta istruzione lettura registro di input tipo «int»
Clicca il pulsante di cambio modalità, passa alla modalità di modifica programma, aggiungi tre variabili del programma lua prima dell’istruzione di lettura registro di input, per ricevere i tre valori del registro di input letti.
Figura 4-4 Aggiunta lettura valori registro di input
Allo stesso modo, è possibile aggiungere rispettivamente la lettura di dati di registro di tipo «bit» e «double».
Figura 4-5 Aggiunta lettura registri di input tipo «bit» e «double»
Salva il programma sopra, passa il robot in modalità automatica, esegui il programma, i valori dei registri di input verranno letti nelle variabili del programma lua.
4.2. Scrittura dei Registri di Output
Apri WebApp, clicca in sequenza «Programma di insegnamento», «Programmazione», crea un nuovo programma utente «testReg.lua».
Figura 4-6 Creazione del programma «testReg.lua»
Clicca «Variabili», nella casella di aggiunta istruzioni a destra seleziona «Scrittura variabile registro di output», scegli il tipo di variabile «int», indice di partenza registro 0, numero di registri 2, valore registro «18,55», clicca il pulsante «Aggiungi»; poi seleziona di nuovo «Lettura variabile registro di output» scegliendo il tipo di variabile «int», indice di partenza registro 0, numero di registri 2, clicca i pulsanti «Aggiungi» e «Applica».
Figura 4-7 Aggiunta istruzioni lettura/scrittura registro di output
Ora «testReg.lua» ha aggiunto le istruzioni di scrittura e lettura del registro di output di tipo «int».
Figura 4-8 Aggiunta istruzioni scrittura e lettura registro di output tipo «int»
Clicca il pulsante di cambio modalità, passa alla modalità di modifica programma, aggiungi due variabili del programma lua prima dell’istruzione di lettura registro di output, per ricevere i due valori del registro di output letti.
Figura 4-9 Aggiunta lettura valori registro di input
Salva il programma sopra, passa il robot in modalità automatica, esegui il programma. A questo punto le variabili del programma LUA «intValue1» e «intValue2» hanno rispettivamente i valori 18 e 55. Le operazioni sui registri di tipo «bit» e «double» sono uguali a quelle di tipo «int».
4.3. Applicazione di Interazione Registri Input/Output CNDE
Figura 4-10 Interazione dati registri input e output
Gli scenari di interazione dati tra robot e client CNDE attraverso i registri di input e output includono, ma non sono limitati a, i seguenti tipi:
① Controllo del movimento del robot tramite registri di input; il client CNDE pianifica la posizione target del robot, scrive la posizione target del robot nei registri di input; nel programma LUA del robot legge i valori dei registri di input per ottenere la posizione target del robot, poi tramite istruzioni di movimento come PTP, LIN, ServoJ, controlla il movimento del robot verso la posizione target. Programma LUA di esempio:
1i = 0;
2oldFlag = 0
3while(1) do
4 startFlag = ReadInputINTRegs(0,1)
5 if(startFlag ~= oldFlag) then
6 oldFlag = startFlag
7 x, y, z, a, b, c = ReadInputDBLRegs(0,6)
8 ServoJ({x, y, z, a, b, c}, {0, 0, 0, 0}, 10, 10, 0.008, 0, 0)
9 end
10end
② Controllo delle azioni del robot tramite registri di input: il client CNDE scrive valori diversi in un certo registro di input, controllando così diverse azioni del robot. Il programma LUA del robot acquisisce ciclicamente i valori del corrispondente registro di input, in base al valore del registro, esegue azioni diverse. Programma di esempio:
1runFlag = ReadInputINTRegs(0,1)
2while(runFlag > 0) do
3 motion,target = ReadInputINTRegs(1,2)
4 if(motion > 0) then
5 if(target == 1)then
6 Lin(a1,100,-1,0,0)
7 else if(target == 2) then
8 Lin(a2,100,-1,0,0)
9 else
10 Lin(safety,100,-1,0,0)
11 end
12 end
13 else
14 sleep_ms(100)
15 end
16end
③ Durante il funzionamento, il robot scrive lo stato corrente del programma nei registri di output. Il client CNDE leggendo lo stato dei registri di output, realizza il monitoraggio dell’esecuzione del programma del robot. Programma di esempio:
1local weldCount = 0
2runFlag = ReadInputINTRegs(0,1)
3while(runFlag > 0) do
4 Lin(safety,100,-1,0,0)
5 Lin(a1,100,-1,0,0)
6 ARCStart(0, 0, 3000)
7 Lin(a2,100,-1,0,0)
8 ARCEnd(0, 0, 3000)
9 runFlag = ReadInputINTRegs(0,1)
10 weldCount = weldCount + 1
11 WriteOutputINTRegs(0,1,{weldCount})
12end