riservata:pw3a2025
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedente | |||
| riservata:pw3a2025 [2025/04/20 17:53] – [La parte del robot] admin | riservata:pw3a2025 [2025/05/27 07:48] (versione attuale) – [Cose minori] admin | ||
|---|---|---|---|
| Linea 54: | Linea 54: | ||
| * 2.7 singolarità; | * 2.7 singolarità; | ||
| + | ===== Programma per il robot ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | MODULE MainModule | ||
| + | PERS tooldata Servo: | ||
| + | PERS tooldata VaccumOne: | ||
| + | PERS tooldata Camera: | ||
| + | TASK PERS wobjdata wobj_scacchiera_a1: | ||
| + | CONST jointtarget sollevato: | ||
| + | CONST robtarget sopra_a1: | ||
| + | CONST robtarget presa_a1: | ||
| + | |||
| + | ! definizioni sulla scacchiera https:// | ||
| + | | ||
| + | ! distanza tra una casa e l' | ||
| + | CONST num delta:=40; | ||
| + | ! stringa di testo con le coordinate di prelievo e deposito del pezzo inviata dal PC | ||
| + | VAR string sFrom: | ||
| + | VAR string sTo: | ||
| + | ! valore numerico corrispondente alle due stringhe | ||
| + | VAR num numFrom; | ||
| + | VAR num numTo; | ||
| + | ! coordinate x e y dei punti di prelievo e deposito (x = colonna, y = traversa) | ||
| + | VAR num x1; | ||
| + | VAR num y1; | ||
| + | VAR num x2; | ||
| + | VAR num y2; | ||
| + | |||
| + | PROC main() | ||
| + | ! NB bisogna calibrare la pinza da Impostazioni|SmartGripper|modulo servoassistito | ||
| + | ! cliccare su grip+ poi grip- e infine Calibrate | ||
| + | | ||
| + | !sollevo il robot | ||
| + | MoveAbsJ sollevato, | ||
| + | | ||
| + | ! converte la stringa in un valore numerico e segnala eventuali errori di conversione | ||
| + | IF StrToVal(sFrom, | ||
| + | TPWrite " | ||
| + | Stop; | ||
| + | ENDIF | ||
| + | IF StrToVal(sTo, | ||
| + | TPWrite " | ||
| + | Stop; | ||
| + | ENDIF | ||
| + | |||
| + | ! ricava le coordinate dal valore numerico (yx -> x, y) | ||
| + | x1:=numFrom MOD 10; | ||
| + | ! cifra meno significativa | ||
| + | y1:=numFrom DIV 10; | ||
| + | ! cifra più significativa | ||
| + | x2:=numTo MOD 10; | ||
| + | ! cifra meno significativa | ||
| + | y2:=numTo DIV 10; | ||
| + | ! cifra più significativa | ||
| + | |||
| + | ! sposto il pezzo da x1,y1 a x2,y2 | ||
| + | preleva x1,y1; | ||
| + | deposita x2,y2; | ||
| + | |||
| + | ! sollevo il robot | ||
| + | MoveAbsJ sollevato, | ||
| + | |||
| + | ENDPROC | ||
| + | |||
| + | PROC preleva(num c,num t) | ||
| + | ! sposta il braccio sopra il punto di prelievo | ||
| + | apriPinza; | ||
| + | MoveJ Offs(sopra_a1, | ||
| + | MoveL Offs(presa_a1, | ||
| + | chiudiPinza; | ||
| + | MoveL Offs(sopra_a1, | ||
| + | ENDPROC | ||
| + | |||
| + | PROC deposita(num c,num t) | ||
| + | ! sposta il braccio sopra il punto di prelievo | ||
| + | MoveJ Offs(sopra_a1, | ||
| + | MoveL Offs(presa_a1, | ||
| + | apriPinza; | ||
| + | MoveL Offs(sopra_a1, | ||
| + | ENDPROC | ||
| + | |||
| + | ! per aprire e chiudere la pinza anche dall' | ||
| + | PROC apriPinza() | ||
| + | g_MoveTo(15); | ||
| + | ENDPROC | ||
| + | |||
| + | PROC chiudiPinza() | ||
| + | g_GripIn; | ||
| + | ENDPROC | ||
| + | |||
| + | ENDMODULE | ||
| + | </ | ||
riservata/pw3a2025.1745171635.txt.gz · Ultima modifica: da admin
