Sie sind auf Seite 1von 4

Programa 1:

Pick & Place con entrada de datos por teclado:


Se cuenta con 3 cubos ubicados en las posiciones mostradas (conocidas),
adems se
cuenta con una posicin adicional de origen conocida.
Se requiere operar el robot de modo tal que el usuario pueda elegir una
Columna de inicio
y una de destino. El robot deber tomar el bloque ms alto de la columna de
inicio y dejarlo
en la parte ms alta de la columna de destino. El mximo nmero de cubos
apilables son
3.
Programa:
DEFP ORI
DEFP A
DEFP B
DEFP C
DEFP AUP
DEFP BUP
DEFP CUP
GLOBAL DEST
GLOBAL INI

;Las posiciones que inicialmente se conocen son:


;ORI, A, B y C.

;Estas variables globales servirn para almacenar


;los valores que se ingresarn ms adelante para
;indicarle al programa qu hacer.

PROGRAM PRO1
LABEL 1
MOVED ORI

;Aqu retornar el programa tras ejecutar el lazo.

SETP AUP =
SETP BUP =
SETP CUP =
SHIFTC AUP
SHIFTC BUP
SHIFTC CUP

A
B
C
BY Z 150
BY Z 150
BY Z 150

;Definimos estas posiciones sobre la


;ubicacin de las pilas que se formarn

PRINTLN Seleccione la posicin inicial del cubo: (A/B/C)


GET INI
PRINTLN Seleccione la posicin final del cubo: (A/B/C)
GET DEST
IF INI = A
;si el valor ingresado para la posicin inicial
MOVED A
;es A, entonces nos movemos a la posicin del cubo
CLOSE
;A y lo tomamos. Lo mismo se hace en las
MOVED AUP
;siguientes estructuras selectivas con B y C.
SHIFTC A BY Z -30
ENDIF

IF INI = B
MOVED B
CLOSE
MOVED BUP
SHIFTC B BY Z -30
ENDIF
IF INI = C
MOVED C
CLOSE
MOVED CUP
SHIFTC C BY Z -30
ENDIF
IF DEST = A
MOVED AUP
MOVED A
OPEN
SHIFTC A BY Z 30
ENDIF

;Aqu analizamos la posicin final a la cual


;se llevar el cubo tomado previamente.

IF DEST = B
MOVED BUP
MOVED B
OPEN
SHIFTC B BY Z 30
ENDIF
IF DEST = C
MOVED CUP
MOVED C
OPEN
SHIFTC C BY Z 30
ENDIF
GOTO 1
END
DEFP ORI
DEFP A
DEFP B
DEFP C
DEFP AUP
DEFP BUP
DEFP CUP
GLOBAL DEST
GLOBAL INI
GLOBAL CONTA
GLOBAL CONTB
GLOBAL CONTC

;Las posiciones que inicialmente se conocen son:


;ORI, A, B y C.

;Estas variables globales servirn para almacenar


;los valores que se ingresarn ms adelante para
;indicarle al programa qu hacer.

DEFP VARA
DEFP VARB
DEFP VARC
PROGRAM PRO1
SET CONTA
SET CONTB
SET CONTC
SETP VARA
SETP VARB
SETP VARC
SETP AUP =
SETP BUP =
SETP CUP =
SHIFTC AUP
SHIFTC BUP
SHIFTC CUP

=
=
=
=
=
=

1
1
1
A
B
C
A
B
C
BY Z 100
BY Z 100
BY Z 100

LABEL 1
MOVED ORI

;Definimos estas posiciones sobre la


;ubicacin de las pilas que se formarn

;Aqu retornar el programa tras ejecutar el lazo.

PRINTLN "Seleccione posicion inicial: (A/B/C)"


GET INI
IF INI = 'A'
ORIF INI = 'B'
ORIF INI = 'C'
GOTO 2
ELSE
PRINTLN "POSICION INICIAL INVALIDA"
GOTO 1
ENDIF
LABEL 2
PRINTLN "Seleccione posicion final: (A/B/C)"
GET DEST
IF DEST = 'A'
ORIF DEST = 'B'
ORIF DEST = 'C'
GOTO 3
ELSE

PRINTLN "DESTINO INVALIDO"


GOTO 2
ENDIF
LABEL 3

Das könnte Ihnen auch gefallen