Sub riel (int x, int y, int z); declaracin e inicio de subrutina
loop if robotisfinished () break end if end loop output_set(12,0) ;; se fija a estado "0" bit 12 (apaga el riel output_set(11,x) ;; se fija el bit 11 segn el estado de la variable x output_set(10,y) ;; se fija el bit 10 segn el estado de la variable y output_set(9,z) ;; se fija el bit 9 segn el estado de la variable z output_set(12,1) ;; se fija el estado "1" bit 12 ( se enciende riel) delay (500) ;; se espera 500 mseg loop ;;lazo de espera para llegar a posicin indicada if input(8)==1 ;;verificacin de estado de la bandera de fin de posicin break end if ;; final del if end loop ;; final de loop output_set(12,0);; se fija el estado "0" bit 12 ( apagar riel) end sub ;;final de subrutina
main int i teachable cloc [8] ciclo for i=1 to 5 printf("Ejecucin nmero {} \n",i) riel(0,0,0) delay(3000) riel(0,0,1) grip_open() move(_ciclo[0]);;Posicin de seguridad p/tomar pza finish() move(_ciclo[1]);;Primera Aprox finish() move(_ciclo[2]);;Segunda Aprox finish() move(_ciclo[3]);;Posicin de tomar pza finish() delay(2000) grip_close() move(_ciclo[2]) finish() move(_ciclo[1]) finish() move(_ciclo[0]) finish() ready() riel(0,1,0) move(_ciclo[4]);;Posicin de seguridad p/dejar pza finish() move(_ciclo[5]);;Primera Aprox p/dejar finish() move(_ciclo[6]);;Segunda Aprox p/dejar finish() move(_ciclo[7]);;Posicin de dejar pza finish() delay(2000) grip_open() move(_ciclo[6]) finish() move(_ciclo[5]) finish() move(_ciclo[4]) finish() ready() end for riel (0,0,0) ready () end main