robòtica - upc universitat politècnica de catalunyarob/protegit/apunts/tema4.pdf · barrientos a....
TRANSCRIPT
![Page 1: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/1.jpg)
Josep Fernández RuzafaDpt. Enginyeria de Sistemes, Automàtica i Informàtica Industrial
RobòticaRobòtica
Tema 4. ProgramacióTema 4. Programació
![Page 2: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/2.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Tema 4: Tema 4: Programació del RobotProgramació del Robot
4.1. Introducció. Formes de Programació.
4.2. Requeriments pels llenguatges de programació de robots.
4.3. Exemples de llenguatges de programació de robots: ACL, AL, RAPID
Temps Estimat: 2 hores
![Page 3: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/3.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Tema 4. Programació del RobotTema 4. Programació del Robot
Bibliografia
Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8.McKerrow P.J. "Introduction to Robotics" Capítol 12.Fu K. i altres " Robotica" Capítol 9.Groover M. i altres "Industrial Robotics" Capítols 8 i 9.Craig J. "Introduction to Robotics: Mechanics & Control" Capítol 12.Snyder W. "Industrial Robots" Capítol 15.
![Page 4: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/4.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
4.1. Introducció4.1. Introducció
ACTUADORSSENSORSINTERNS
VelocitatParell
Posicióactual
PROGRAMAMOVIMENT = Posició Inicial i Final
+ Temps de trajectòria
CONTROL DE LES ARTICULACIONS
MOSTREIG
INTERPOLACIÓ
Posicionsde referència
Evolució suaude la posició i la velocitat
θ(t=nT)
θ(t)
MOVE A
Unitatde
Control
USUARI
2.1.
![Page 5: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/5.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
IntroduccióIntroducció
Robot industrial: Manipulador multifuncional i reprogramable.
La programació permet fer de forma ràpida i econòmica diferent tipus de tasques.
El programa està relacionat amb la manipulació d’objectes a l’espai tridimensional.
Programa Computador Programa RobotiManipula dades i dades i objectesi Valor de la variables depèn del procés i depèn del procés i d’events externs
i temps d’execució crític
4.1.
![Page 6: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/6.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Tipus de ProgramacióTipus de Programació
Per Guiat• Passiva• Activa
Textual• Nivell robot (Exemple: ACL, Mitsubishi, VAL, RAPID)• Nivell objecte (Exemple: RAPT)• Nivell tasca
4.1.
![Page 7: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/7.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació per GuiatProgramació per Guiat
1. Moure el robot (o una maqueta) i memoritzar les posicions dels sensors interns (Programació)Programa = seqüència d’una infinitat de punts que defineixen la trajectòria
2. Reproduir el moviment memoritzat (execució)
4.1.
![Page 8: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/8.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació per Guiat ActivaProgramació per Guiat Activa
• Programa ACTIVA: Es fa servir la botonera del robot per moure el robot.
• Es memoritza només les posicions de treball (o de pas) i no tota la trajectòria.
• Els sist. de prog. per guiat ACTIVA més avançats permeten definir característiques del comportament del robot (velocitat, tipus trajectòria, precisió, ..) i/o instruccions de control del flux d’execució, accions d’entrada / sortida ...
4.1.
![Page 9: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/9.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació per Guiat Programació per Guiat
AVANTATGES
• Utilització simple• No calen coneixements de programació
INCONVENIENTS
• Necessitat del robot en la fase de programació• No existeix un document del programa• Els programes resulten complexes de modificar• Difícil de realitzar tasques complexes
4.1.
![Page 10: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/10.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació Textual (I) Programació Textual (I)
Tasques més complexes Mètodes de programació més potents
1r llenguatge comercial VAL (Unimation) 1979.
Tipus de programació textual• Nivell robot. S’indica cada acció que ha de realitzar el robot. Permet
l’estructuració dels programes, la concurrència i una major capacitat sensorial. Ex.: MOVE POS, OPEN, SPEED 70, IF sensor=1 THEN ...
• Nivell objecte. S’indica com s’ha de manipular els objectes. Un planificador de tasques, amb la informació del món, genera les instruccions a nivell robot. Ex.: Situa l’objecte A sobre l’objecte B.
• Nivell tasca. S’indica el que ha de fer el sistema, i en cap cas es diu com s’ha de fer. Ex.: Muntar la cadira.
4.1.
![Page 11: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/11.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació Textual (II) Programació Textual (II)
Programa del robot
Nivell robot...MOVE p_forat.....
PlanificadorModeldel món
Nivell Objecte....Situa travesser A en forat 1...
Especificació de la tasca
Descomposició de la tasca
Nivell tascaMuntar cadira
4.1.
![Page 12: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/12.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programació Textual (III) Programació Textual (III)
AVANTATGES
• Increment de la llegibilitat i potència dels programes.• Facilitat de modificació i extensió.• Programació off-line. Simulació gràfica.
INCONVENIENTS
• Dificultat d’ús.• Extensió dels programes en aplicacions complexes.
4.1.
![Page 13: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/13.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
4.2. Requeriments d’un llenguatge 4.2. Requeriments d’un llenguatge de programació de Robots de programació de Robots
A. Pròpies d’un llenguatge de programació de computadors
• Estructurabilitat• Extensibilitat• Facilitat de “debugat”• Eficiència• Naturalitat
![Page 14: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/14.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Requeriments d’un Requeriments d’un llenglleng. de programació de Robots . de programació de Robots
B. Pròpies d’un llenguatge de programació de robots• Instruccions de moviment i d’acció de l’E.T.• Sincronització amb events externs ( entrades i sortides).• Capacitat d’interaccionar amb dispositius i sensors externs.• Concurrència de tasques (UC multiprocés).• Comunicació entre processos.• Tipus de dades adequats (associats a posicions, sensors, ..).• Capacitat d’interacció amb un sistema de modelat del món.• Capacitat de prendre decisions.
4.2.
![Page 15: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/15.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
4.3. Exemples de Llenguatge de Progr. de Robots 4.3. Exemples de Llenguatge de Progr. de Robots
A. Llenguatge AL (Univ. Stanford, 1980)
• Derivat del Pascal i el Algol• Especificació a nivell robot• Instruccions per temps real: sincronització, concurrència• Tipus de dades adequats• Associat a un entorn per al modelat del món
![Page 16: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/16.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple 1. Llenguatge AL Exemple 1. Llenguatge AL
Inserció d’un cargol en el forat
4.3.
![Page 17: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/17.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple: Llenguatge AL (I) Exemple: Llenguatge AL (I)
BEGIN inserción
{variables}diametro_tornillo ← 0.5*pulgadas;longitud_tornillo ← 1*pulgadas;intentos ← 0; sujeción ← falso;
{sistemas base}bloque ← FRAME(ROT(Z,90*grad),VECTOR(20,15,0)*pulgadas);alimentador ← FRAME(nilrot,VECTOR(25,20,0)*pulgadas);
{matrices de características}cabeza_tornillo ← alimentador *TRANS(nilrot,nilvect);punta_tornillo ← cabeza_tornillo *TRANS(nilrot,VECTOR(0,0,0.5)*pulgadas);taladro_bloque ← bloque *TRANS(nilrot, VECTOR(0,0,1)*pulgadas);
4.3.
![Page 18: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/18.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple: Llenguatge AL (II) Exemple: Llenguatge AL (II) {sistemas de puntos de paso}A ← alimentador *TRANS(nilrot, VECTOR(0,0,5)*pulgadas); B ← alimentador *TRANS(nilrot, VECTOR(0,0,8)*pulgadas);C ← taladro_bloque *TRANS(nilrot, VECTOR(0,0,5)*pulgadas);D ← taladro_bloque *TRANS(nilrot, longitud_tornillo*Z);
{Abrir la pinza}OPEN bhand TO diametro_tornillo + 1*pulgadas;
{situar la pinza sobre el tornillo}MOVE barm TO cabeza_tornillo VIA A
WITH APPROACH = -Z WRT alimentador;
DOCLOSE bhand TO 0.9*diametro_tornillo+1*pulgada;IF bhand < diametro_tornillo THEN BEGIN {Fracaso en la sujeccion del tornillo, nuevos intentos}
OPEN bhand TO diametro_tornillo + 1*pulgadas;MOVE barm TO ⊗ - 1*Z*pulgadas;
END ELSE sujeccion ← verdadero;intentos ← intentos + 1 ;
UNTIL sujeccion OR (intentos > 3);
IF NOT sujeccion THEN ABORT(<<Fracaso de sujeccion del tornillo>>); {Suspender la ejecucion }4.3.
![Page 19: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/19.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple: Llenguatge AL (III) Exemple: Llenguatge AL (III)
{Mover el brazo hasta B}MOVE barm TO B VIA A WITH DEPARTURE = Z WRT alimentador;
{Mover el brazo hasta D}MOVE barm TO D VIA C WITH APPROACH = Z WRT taladro_bloque;
{Comprobar que el agujero está allí}MOVE barm TO ⊗ -0.1*Z*pulgadas
ON FORCE(Z) > 0.2*kg DO ABORT(“No se encontró el agujero”);
{Inserción}MOVE barm TO taladro_bloque DIRECTLY
WITH FORCE(Z) = -0.2*kgWITH FORCE(X) = 0*kgWITH FORCE(Y) = 0*kgWITH DURATION = 5*segundos;
END insercion.
4.3.
![Page 20: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/20.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemples de Llenguatge de Progr. de Robots Exemples de Llenguatge de Progr. de Robots
B. Llenguatge RAPID (ABB, 1994)
• Amb tota la “potència” d’un lleng. Prog. de computadors.• Especificació a nivell robot.• Programació mitjançant paleta o ordinador extern.• Tipus i estructures de dades adequats
- Constants (CONS), Persistents (PERS) i Variables (VAR) - Tipus atòmiques: Numèric (num), Lògic (bool) i cadena (string)- Es poden definir tipus “struc”
4.3.
![Page 21: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/21.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple 2. Llenguatge RAPID Exemple 2. Llenguatge RAPID
Extracció de peces defectuoses
4.3.
![Page 22: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/22.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Exemple 2. Llenguatge RAPIDExemple 2. Llenguatge RAPID
• Tipus de subprogrames o rutines- Procediments. No retornen cap valor- Funció. Retorna un valor que s’utilitza en una expressió- Rutina TRAP. Rutina associada a una interrupció
• Estructures de dades predefinides- Confdata. Especifica la configuració del robot- Loaddata. Descriu la càrrega transportada pel robot- Tooldata. Descriu les característiques de l’E.T.- Robtarget. Localització (configuració) del robot i dels eixos externs- Motsetdata. Definició d’alguns paràmetres de moviment
4.3.
![Page 23: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/23.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Definició de Variables i ConstantsDefinició de Variables i Constants
PERS tooldata herramienta:= [TRUE,[[97,0,223],[0.924,0,0.383,0]],[5,[-23,0,75],[1,0,0,0],0,0,0]] ; Características elemento terminal
PERS loaddata carga:= [5,[50,0,50],[1,0,0,0],0,0,0]] ; Descripción de la carga manipulada
VAR signaldo pinza ; señal de activación de pinzaVAR signaldo activar_cinta ; señal de activación de cintaVAR signaldi pieza_defectuosa ; señal de pieza defectuosaVAR signaldi terminar ; señal de terminar programaVAR robtarget conf_espera := [[600,500,225],[1,0,0,0],
[1,1,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]] ; Posición de espera
4.3.
![Page 24: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/24.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Rutina d’interrupció Rutina d’interrupció
VAR intnum senal_pinza ; Variable interrupción
TRAP etrapHoldMove ; Para el movimiento del robotTPErase ; Borrar la pantalla de la paletaTPWrite “ERROR: La pieza se ha soltado de la pinza”TPWrite “” reg:= TPReadFK(“Cuando el sistema esté listo pulse
Start”,\FK1:=”Start”)RelMove ; Reanudar el movimientoIr_posición_espera ; Ir a posición inicial
ENDTRAP
4.3.
![Page 25: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/25.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Subrutines (I)Subrutines (I)
PROC Coger()Set pinza ; Cerrar la pinza activando la señal digital pinzaWaitTime 0.3 ; Esperar 0.3 segundosGripLoad carga ; Señalar que la pieza esta cogidaIWatch senal_pinza ; Activar interrupción
ENDPROC
PROC Dejar() ISleep senal_pinza ; Desactivar interrupciónReset pinza ; Abrir la pinzaWaitTime 0.3 ; Esperar 0.3 segundosGripLoad LOAD0 ; Señalar que no hay pieza cogida
ENDPROC
4.3.
![Page 26: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/26.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Subrutines (II)Subrutines (II)
PROC Coger_pieza() MOVEJ*, VMAX, z60, herramienta ; Mov. en articulares con poca precisión
; *= Punto grabado directamente por guiadoMOVEL*, V500, z20, herramienta ; Mov. línea recta con precisión MOVEL*, V150, FINE, herramienta ; Bajar con precisión máxima Coger ; Coger la piezaMOVEL*, V200, z20, herramienta ; Subir con la pieza cogida
ENDPROC
PROC Dejar_pieza()MOVEJ*, VMAX, z30, herramienta ; Mover hacia almacen piezas malasMOVEJ*, V300, z30, herramientaDejar ; Dejar la pieza.
ENDPROC
PROC Ir_posición_espera()MoveJ \Conc conf_espera, VMAX, z30, herramienta ; Mover a posición espera
ENDPROC
4.3.
![Page 27: Robòtica - UPC Universitat Politècnica de Catalunyarob/protegit/apunts/tema4.pdf · Barrientos A. i altres "Fundamentos de Robòtica" Capítol 8. McKerrow P.J. "Introduction to](https://reader033.vdocuments.net/reader033/viewer/2022041711/5e482b3db9689f3e4d3b0891/html5/thumbnails/27.jpg)
© J. Fernández, J. Aranda. Dpt. ESAII - UPC
Programa principalPrograma principal
PROC main()ISignalDI senal_pinza ; Asignar señal de interrupciónCONNECT senal_pinza TO etrap ; Asignar rutina de interrupción
Ir_posicion_espera ; Mover a posición de espera
WHILE DInput(terminar)=0 DO ; Esperar señal de terminarIF DInput(pieza_defectuosa)=1 THEN ; Esperar señal de pieza defectuosa
SetDO activar_cinta,0 ; Parar cintaCoger_pieza ; Coger la piezaSetDO activar_cinta, 1 ; Activar señal de cintaDejar_pieza ; Dejar la piezaIr_posicion_espera ; Ir a posición de espera
ENDIFENDWHILE
ENDPROC
4.3.