Anda di halaman 1dari 3

UNIVERSIDAD POLITECNICA SALESIANA LABORATORIO DE ELECTIVA III

Fecha: 02/05/2018

SIMULACIÓN PARA EL CONTROL DE MOTORES DEL


ROBOTINO

INFORME 1
Imba Paucar Daniel Anthony
dimba@est.ups.edu.ec

RESUMEN: En el presente informe se realizará una Solución:


simulación de programación básica utilizando los software
Robotino View y Robotino Sim Demo para resolver dos Para el subprograma: “M1”
problemas propuestos por el docente en el cual se utilizarán
varias herramientas de las librerías de los software antes Se procedió a utilizar una “Constante” tipo “float” la
mencionados. cual debe ser arrastrada desde el directorio antes
mencionado hacia el espacio de trabajo, se debe
1 OBJETIVOS realizar el mismo paso para el “Temporizador”, para el
“Motor 1”, y para la variable creada de tipo “float”
llamada “next”, para crear esta última variable se debe
1.1 OBJETIVO GENERAL dar clic derecho sobre el directorio “Variables”,
seleccionar “añadir” y asignar el nombre
Conocer y familiarizarse con las herramientas que correspondiente.
disponen los Software Robotino View y Robotino Sim
Demo. A continuación, en el espacio de trabajo se procedió
a realizar las siguientes conexiones:
1.2 OBJETIVOS ESPECÍFICOS
 La “Constante” se conecta desde la terminal “val”
Resolver los problemas propuestos por el docente a con el bloque: “Motor 1” hacia la terminal “valor de
cargo del laboratorio de Electiva III. consigna de velocidad [rmp]”, además, la variable
“Constante” fue configurada con el valor de 2000.
Conocer y familiarizarse con las herramientas de Motor,  El bloque “Temporizador” fue conectado desde la
Constante, Temporizador, Variable, Función aleatorio, terminal “Tiempo” hacia la terminal “Value” de la
Suma y MOD variable “next”.

2. MATERIALES Y EQUIPO
Figura 1. Subprograma “M1”.

 Software Robotino View


 Software Robotino Sim Demo Para el subprograma: “M2” y subprograma “M3”, se
debe realizar los mismos pasos que para el
 Computador
subprograma “M1”, teniendo en cuenta lo siguiente:

3. DESARROLLO Y PROCEDIMIENTO  Para “M2” se utilizó el bloque “Motor 2” y para “M3”


se utilizó el bloque “Motor 3”, véase la figura 2 y
Problema 1: Se desea implementar un algoritmo de figura 3.
control para los motores del Robotino, los mismos que
giren uno a continuación del otro, a una velocidad de 2000
[r.p.m] por 2 [s] cada vez, y luego se detendrá el programa.
Figura 2. Subprograma “M2”.
Como primer paso, para cada subprograma se usará:

 Bloque: “Motor” encontrado en el directorio:


Robotino>>Sistema de accionamiento.
 Bloque: “Constante”; directorio: Librería de bloques
de función>> Generadores. Figura 3. Subprograma “M3”.
 Bloque: “Temporizador”; directorio: Librería de
Para el programa principal se establecieron los
bloques de función>> Generadores.
siguientes parámetros:
 Además, se necesitará crear una variable de tipo
“float” escritor, la cual se nombrará como “next”.
UNIVERSIDAD POLITECNICA SALESIANA LABORATORIO DE ELECTIVA III
Fecha: 02/05/2018

 En el step “Init” no se realizó ninguna programación  A continuación, se procedió a realizar las


y se le asigno el valor de “true” a la condición para conexiones de la siguiente manera:
avanzar al siguiente step.
 En el step 1 se encuentra el subprograma “M1” y se 1. Conectar la terminal “val” del bloque
le asignó a la condición de paso de step el valor de “Constante 3” hacia la terminal “Máximo” del
next>=2000, esto para cumplir con el requerimiento bloque “Generador aleatorio”.
del problema que solicita que cada motor se active 2. Conectar la terminal “val” del bloque
cada 2 segundos, se coloca el valor de 2000 ya que “Constante 1” hacia la terminal “Mínimo” del
está se mide en milisegundos, de esta manera bloque “Generador aleatorio”.
cuando el bloque “Temporizador” sobrepase dicho 3. Conectar la terminal “Valor” del bloque
valor la variable “next” pasa a tener el valor de “true” “generador aleatorio” hacia la terminal
y avanza al siguiente step. “Dividendo” del bloque “Módulo”.
 Para el step 2: subprograma “M2” y step 3: 4. Conectar la terminal “val” del bloque
subprograma “M3”, se realiza el mismo “Constante 3” hacia la terminal “Divisor” del
procedimiento para la condición de avance de step. bloque “Módulo”.
 Para finalizar el programa principal se debe al final 5. Conectar la terminal “Resto” del bloque
cambiar la terminal a “TERMINATE” para que el “Módulo” hacia la terminal “Sumando 2” del
programa no se vuelva a ejecutar. bloque “Suma”.
6. Conectar la terminal “val” del bloque
“Constante 2” hacia la terminal “Sumando 1”
del bloque “Suma”.
7. Conectar la terminal “Suma” del bloque “Suma”
hacia la terminal “Value” del bloque de
variable “Transicion”.
8. Asignar al bloque “Constante 1” el valor de
cero, “Constante 2” el valor de cero y
“Constante 3” el valor de 3.

Figura 4. Programa Principal.

Problema 2: Usando la estructura del problema anterior


en los subprogramas, se plantea que los motores giren Figura 5. Subprograma aleatorio.

independientemente a 100 r.p.m y de manera aleatoria


con un periodo de tiempo de 4s.  Los subprogramas “M1”, “M2” y “M3”, no fueron
modificados de ninguna manera, véase la figura 1,
En el programa principal se crearán ramales paralelos figura 2 y figura 3.
para que el subprograma “aleatorio”, determine que  En el Programa principal se crearon ramales
motor activara. paralelos como se muestra en la figura 6 y se
establecieron los siguientes parámetros:
Solución: 1. Step “Init” sin programación y condición en
“true”.
 Para crear este subprograma adicional, se dará 2. Step 1 subprograma “aleatorio”, se este se
click en “nuevo Subprograma”, se le pondrá de derivan los ramales paralelos: Step 2, Step 3,
nombre “aleatorio”. Step 4; para los cuales las condiciones de
 Dentro del subprograma “aleatorio”, se utilizaron 3 inicio son: Transicion==1, Transicion==2,
“Constantes” de tipo “float”, además, se creó una Transicion==3, respectivamente.
variable tipo “float” escritor, nombrada “Transicion”, 3. Step 2 subprograma “M1”, con condición:
adicional a esto se utilizó: next>=4000, esto para cumplir con los
parámetros del problema.
- Bloque: “Generador aleatorio”; directorio: 4. Step 3 subprograma “M2”, con condición:
Librería de bloques de función>> next>=4000, esto para cumplir con los
Generadores. parámetros del problema.
- Bloque: “Suma”; directorio: Librería de bloques 5. Step 4 subprograma “M3”, con condición:
de función>> Matemáticas>> Operaciones next>=4000, esto para cumplir con los
aritméticas. parámetros del problema.
- Bloque: “Módulo”; directorio: Librería de 6. Para finalizar el Programa Principal se colocó
bloques de función>> Matemáticas>> la terminal “TERMINATE”.
Operaciones aritméticas.
Se deben colocar todos los bloques antes
mencionados en el espacio de trabajo.
UNIVERSIDAD POLITECNICA SALESIANA LABORATORIO DE ELECTIVA III
Fecha: 02/05/2018

Figura 6. Programa principal.

4. OPERADOR MOD

 En la presente práctica se utilizó el operador MOD,


en el subprograma “aleatorio”, para generar un
número de tipo entero entre 1 y 3 tomando en
cuenta lo siguiente:

1. El operador MOD recibe 2 números de tipo


entero en sus terminales de entrada “Dividendo”
y “Divisor” respectivamente y entrega un
número de tipo entero en su terminal “Resto” de
salida.
2. Ya que el bloque “Generador aleatorio” entrega
un número de tipo “float” entre 0 y 3, el bloque
“Módulo” toma solo la parte entera del número
aleatorio entregado por el “Generador aleatorio”,
de esta manera a la entrada del terminal
“Dividendo” del bloque “Módulo” siempre se
tendrán los valores de 0, 1 y 2.
3. En la terminal “Divisor” del bloque “Módulo” se
le asignó la “Constante 3” que tiene un valor de
3 con el objetivo de que en la terminal “Resto”
del bloque “Módulo” siempre se tengan los
valores de 0, 1 y 2, así, por ejemplo: 2 MOD 3
nos da como resultado 2 ya que al realizar la
división de 2 para 3 el cociente sería 0 y la
multiplicación del cociente con el divisor sería 0,
este resultado debe ser restado del dividendo lo
que nos daría como resultado 2 y este resultado
a su vez es el resto y es el resulta que el bloque
“Módulo” entrega en su terminal de salida
“Resto”.