RoboPro ES PDF
RoboPro ES PDF
RoboPro ES PDF
ROBOPro
1
ÍNDICE
4.4.1Control de motor con pulsadores
por impulso .................................. 38
1 Introducción – Controlar los modelos 4.4.2 Control de motor con motores de
de fischertechnik mediante ROBO codificador ................................... 41
Pro ........................................................ 4 4.4.3 Programa principal Tango ........... 42
1.1 Instalación de ROBO Pro ...................... 4 4.5 Tango 2: comunicación a través de
1.2 Instalación del controlador USB ............ 5 WLAN, Bluetooth o RF Data Link ........ 44
1.2.1 Instalación del controlador USB en 4.5.1 Ajustes de radio para la Robo
Windows Vista 7 u 8 ..................... 6 Interface ...................................... 48
1.2.2 Instalación del controlador USB en 4.5.2 Ajustes Bluetooth para el TXT y el
Windows XP .................................. 7 TX-Controller ............................... 51
1.3 Primeros pasos ..................................... 9 5 Nivel 3: Variables, paneles de control
2 Antes de la programación, un breve & cía .................................................... 54
test del hardware ............................... 12 5.1 Variables e instrucciones .................... 54
2.1 Conexión de la interfaz al ordenador .. 12 5.2 Variables y varios procesos ................ 56
2.2 Para que la conexión sea correcta: las 5.3 Paneles de control ............................... 57
configuraciones de la interfaz ............. 12 5.4 Temporizador ...................................... 61
2.3 Si la conexión es incorrecta: ¡no hay 5.5 Entradas de comando para
conexión a la interfaz! ......................... 13 subprogramas...................................... 62
2.4 Todo funciona: prueba de interfaz ...... 14 5.6 Listados (Arrays) ................................. 65
5.7 Operadores.......................................... 67
3 Nivel 1: Tu primer programa de
control ................................................ 16 6 Nivel 4: Comandos definidos por el
3.1 Crear un nuevo programa ................... 16 usuario................................................ 71
3.2 Los elementos del programa de control17 6.1 Procesamiento de comandos en un
3.3 Insertar, desplazar y modificar proceso ................................................ 71
elementos de programa ...................... 17 6.2 El filtro de comandos ........................... 72
3.4 Interconectar los elementos de 6.3 Enviar cualquier comando a
programa ............................................. 20 subprogramas...................................... 74
3.5 Probar el primer programa de control . 21 7 Activar varias interfaces ................... 75
3.6 Más elementos de programa .............. 23 7.1 Activar extensiones (Extensions) ........ 75
3.6.1 Tiempo de espera ....................... 23 7.2 TXT Controller, TX Controller y ROBO
3.6.2 Esperar a entrada ....................... 24 Interface mezclados ............................ 75
3.6.3 Contador de impulsos ................. 24 7.3 Asignaciones de interfaz en
3.6.4 Bucle contador ............................ 25 subprogramas...................................... 77
3.7 Modo online o modo de descarga. 7.4 Consejos & Trucos .............................. 78
¿Cuál es la diferencia?........................ 25 7.5 Cambiar el número de serie en el ROBO
3.8 Consejos y trucos ................................ 27 Interface ............................................... 78
4 Nivel 2: Trabajar con subprogramas29 8 Los elementos de programa ............ 80
4.1 Tu primer subprograma ....................... 30 8.1 Elementos básicos (Nivel 1) ................ 80
4.2 La biblioteca del subprograma ............ 34 8.1.1 Inicio ............................................ 80
4.2.1 Utilizar la biblioteca ..................... 34 8.1.2 Fin ............................................... 80
4.2.2 Utilizar la propia biblioteca .......... 34 8.1.3 Bifurcación digital ........................ 80
4.3 Editar símbolos de subprogramas ...... 35 8.1.4 Bifurcación analógica .................. 81
4.4 Tango .................................................. 36 8.1.5 Tiempo de espera ....................... 83
8.1.6 Salida de motor ........................... 83
1
E
ROBOPro
2
8.1.7 Motor de codificador (Nivel 1) ..... 84 8.7 Entradas / salidas de la interfaz, ... ... 109
8.1.8 Salida de lámpara (Nivel 2) ......... 85 8.7.1 Entrada universal ...................... 109
8.1.9 Esperar a entrada ....................... 86 8.7.2 Entrada de contador .................. 110
8.1.10 Contador de impulsos ................. 87 8.7.3 Motor ha alcanzado la posición. 111
8.1.11 Bucle contador ............................ 88 8.7.4 Salida de motor ......................... 112
8.1.12 Sonido ......................................... 88 8.7.5 Salida de lámpara ..................... 113
8.2 Enviar y recibir (Niveles 2-4) ............... 89 8.7.6 Entrada del panel de control ..... 114
8.2.1 Emisor (Nivel 2)........................... 89 8.7.7 Salida del panel de control ........ 115
8.2.2 Receptor / Bifurcación al recibir el 8.7.8 Entrada de cámara .................... 116
comando (Nivel 2) ....................... 90 8.7.9 Entrada de infrarrojos (TXT
8.2.3 Receptor (Nivel 3) ....................... 91 Controller) .................................. 116
8.2.4 Esperar comando (Nivel 4) ......... 92 8.8 Operadores ........................................ 118
8.2.5 Filtro de comandos (Nivel 4) ....... 93 8.8.1 Operadores aritméticos ............. 118
8.2.6 Sustituir valor de comando (nivel 4)93 8.8.2 Operadores comparativos
8.2.7 I2C escritura (Nivel 4) .................. 94 (operadores relacionales).......... 118
8.2.8 I2C lectura (Nivel 4) ..................... 95 8.8.3 Operadores lógicos ................... 119
8.3 Subprograma I/O (Nivel 2-3) ............... 96 8.8.4 Operadores Bit .......................... 120
8.3.1 Entrada de subprograma (Nivel 2)96 8.8.5 Funciones .................................. 120
8.3.2 Salida de subprograma (Nivel 2) 96 8.9 ROBO Interface ................................. 122
8.3.3 Entrada de comando de 8.9.1 Bifurcación digital (ROBO
subprograma (Nivel 3)................. 96 Interface) ................................... 122
8.3.4 Salida de comando de 8.9.2 Bifurcación analógica (ROBO
subprograma (Nivel 3)................. 97 Interface) ................................... 123
8.4 Variable, Listado, ... (Nivel 3) .............. 98 8.9.3 Esperar a entrada (ROBO
8.4.1 Variable (global) .......................... 98 Interface) ................................... 123
8.4.2 Variable local............................... 99 8.9.4 Contador de impulsos (ROBO
8.4.3 Constante .................................. 100 Interface) ................................... 124
8.4.4 Variable de temporizador .......... 100 8.9.5 Entrada digital (ROBO Interface)125
8.4.5 Listado....................................... 101 8.9.6 Entrada analógica (ROBO
8.5 Comandos (Nivel 3) ........................... 103 Interface) ................................... 126
8.5.1 = ( Asignar ) .............................. 104 8.9.7 Entrada IR (ROBO Interface) .... 127
8.5.2 + ( Más ) .................................... 104
8.5.3 – ( Menos ) ................................ 104 9 Los elementos de control y paneles
8.5.4 Derecha ..................................... 104 de control ......................................... 129
8.5.5 Izquierda ................................... 104 9.1 Indicaciones ....................................... 129
8.5.6 Detener ..................................... 105 9.1.1 Aparato de medición ................. 129
8.5.7 ON ............................................. 105 9.1.2 Mensaje de texto ....................... 130
8.5.8 OFF ........................................... 105 9.1.3 Lámpara indicadora................... 131
8.5.9 Texto ......................................... 105 9.2 Elementos de mando ......................... 132
8.5.10 Agregar valor............................. 105 9.2.1 Botón ......................................... 132
8.5.11 Eliminar valor(es) ...................... 105 9.2.2 Regulador .................................. 133
8.5.12 Intercambiar valores.................. 106 10 Funciones de dibujo........................ 135
8.6 Compara, Esperar a, ... (Nivel 3)....... 106
8.6.1 Bifurcación ( con entrada de 11 Funciones de la cámara .................. 137
datos ) ....................................... 106 11.1 Ventana de cámara ........................... 137
8.6.2 Comparación con valor fijo ....... 107 11.2 Visor de cámera ................................ 137
8.6.3 Comparación ............................. 107 11.3 Campos de sensor de cámara .......... 138
8.6.4 Tiempo de espera ..................... 107 11.3.1 Detector de colores ................... 138
8.6.5 Esperar a................................... 108 11.3.2 Detector de movimiento ............ 139
8.6.6 Contador de impulsos ............... 109 11.3.3 Detector de líneas ..................... 140
2
E
ROBOPro
3
11.3.4 Detector de esfera .................... 141
11.3.5 Exclusión ................................... 143
12 Funciones para el TXT y el TX
Controller ......................................... 144
12.1 Instalación de controlador USB para el
ROBO TX Controller.......................... 144
12.2 Entorno ( a partir de nivel 1) .............. 144
12.3 Programación independiente de la
interfaz ............................................... 145
12.4 Conversión de programas ................. 146
12.5 Entradas universales, tipo de sensor y
modo de entrada ............................... 146
12.6 Entradas de contador rápidas y control
de motor extendido............................ 147
12.6.1 Motor de codificador (nivel 1).... 147
12.6.2 Controles de motor extendidos en
nivel 3 ........................................ 149
12.7 Display............................................... 150
13 Cálculo con cifras decimales ......... 152
13.1 Comparación de cifras de coma flotante152
13.2 Representación de cifras de coma
flotante ............................................... 152
13.3 Cálculo de la exactitud ...................... 154
3
E
ROBOPro
En caso que ya conozcas ROBO Pro y sólo quieras saber qué funciones nuevas se han
agregado con el ROBOTICS TXT Controller, es suficiente leer el capítulo 11 de este manual.
Y sin más dilación, ¡manos a la obra! Seguramente ya tienes mucha curiosidad por descubrir qué
posibilidades te ofrece el software ROBO Pro para programar tus modelos de fischertechnik. ¡Que
te diviertas!
4
E
ROBOPro
• Un puerto USB libre para conectar el ROBOTICS TXT Controller, el ROBO TX Controller o la
ROBO Interface.
• Adobe Acrobat Reader para visualizar el manual de instrucciones del ROBOTICS TXT
Controller, así como el material didáctico para los distintos módulos de ROBOTICS.
El primer paso es, claro está, iniciar el ordenador y esperar hasta que el sistema operativo
(Windows) se haya cargado completamente. El Controller sólo debería conectarse al ordenador
tras haber completado con éxito la instalación el software ROBO Pro. Se procede a introducir el
CD de instalación en la unidad del CD-ROM. El programa de instalación “Setup.exe” del CD se
inicia automáticamente.
• En la primera ventana de bienvenida del programa de instalación, haz clic en Continuar.
La segunda ventana, Indicaciones importantes, contiene información actualizada importante
sobre la instalación del programa o sobre el programa en sí. Aquí también haz clic en Continuar.
• En la tercera ventana, Condiciones de la licencia, se refleja el contrato de licencia para
ROBO Pro. Debes aceptar este contrato con Sí antes de poder acceder a la siguiente
ventana haciendo clic en Continuar.
• En la siguiente ventana, Datos del usuario, debes introducir tu nombre.
• En la ventana Tipo de instalación puedes elegir entre la Instalación Exprés e Instalación
definida por el usuario. En la instalación definida por el usuario se te permite excluir
algunos componentes de la instalación. Si estás instalando una nueva versión de ROBO Pro
sobre una versión anterior y has cambiado algunos de los programas de ejemplo de la
versión antigua, puedes excluir los ejemplos originales en la instalación definida por el
usuario. En caso contrario se sobrescriben sin aviso los programas de ejemplo cambiados
durante la instalación. Si eliges la instalación definida por el usuario y haces clic en
Continuar, aparece una nueva ventana en la que podrás elegir los componentes.
• En la ventana Directorio de instalación puedes elegir la carpeta o la ruta de carpeta donde
quieras que se instale el programa ROBO Pro. La ruta por defecto es C:\Archivos de
programa (x86)\ROBOPro, pero puedes introducir cualquier otro directorio.
• Si en la última ventana haces clic sobre Finalizar, se ejecuta la instalación. Al terminar la
instalación, que normalmente tarda sólo pocos segundos, el programa indica si la instalación
se ha completado con éxito. En caso de que haya problemas, aparece un aviso de error que
debería ayudarte a solucionar el problema.
5
E
ROBOPro
Para instalar el controlador USB, conecta primero el ROBOTICS TXT Controller, el ROBO TX
Controller o la ROBO Interface al ordenador mediante un cable USB y, a continuación, conecta la
alimentación eléctrica. Windows reconoce automáticamente que se ha conectado la Interface y,
según el sistema operativo, aparecen distintos avisos:
Si haces clic arriba con la tecla izquierda del ratón, aparece la siguiente ventana:
La búsqueda en Windows Update puede tardar varios minutos. Como el software de controlador
ya se ha preinstalado en tu PC al instalar ROBO Pro, puedes omitir la descarga del software de
controlador de Windows Update. La operación no debe cancelarse en ningún caso con Cerrar. De
lo contrario, el controlador no se instalará. Una vez finalizada la instalación del controlador USB,
aparecerá el siguiente aviso.
6
E
ROBOPro
7
E
ROBOPro
Haz clic sobre Finalizar para concluir la instalación del controlador USB.
8
E
ROBOPro
La entrada Desinstalar permite desinstalar ROBO Pro. La entrada Ayuda abre el archivo de ayuda
para ROBO Pro. La entrada ROBO Pro abre el programa de ROBO Pro. Debes elegir la entrada
ROBO Pro para iniciar el software.
La ventana tiene en la parte superior una barra de menús y una barra de herramientas con
distintos botones de instrucción y en la parte izquierda una ventana con elementos del programa.
Si en la columna lateral izquierda ves dos ventanas superpuestas, es que la ROBO Pro no está
ajustada en Nivel 1. Para adaptar la funcionalidad de ROBO Pro a los conocimientos
acumulativos del usuario, es posible ajustar ROBO Pro desde al Nivel 1 para principiantes hasta el
Nivel 5 para expertos. En este momento debes comprobar en el menú Nivel si el Nivel 1:
Principiantes está marcado. Si no es así, debes marcarlo.
ROBO Pro está configurado de forma que utilizas el ROBOTICS TXT Controller o el
ROBO TX Controller como interfaz. Esto lo puedes reconocer a través del botón TX/TXT
en la barra de herramientas. Como puedes conmutar al ROBO Interface más antiguo y
que debes observar en este caso, lo podrás saber en la sección 12.2 Entorno.
9
E
ROBOPro
10
E
ROBOPro
Aquí puedes ver qué aspecto tiene un programa sencillo de ROBO Pro. Con los elementos de
programa de la ventana de elementos se crean durante la programación los diagramas de
operaciones de los programas de control en la ventana de programación, para después
comprobarlos y probarlos mediante una interfaz fischertechnik que habremos conectado al
ordenador. ¡Pero tranquilo! En los próximos capítulos aprenderemos paso a paso a programar.
Cuando te hayas hecho ya una idea de cómo es la superficie de control, cierra de nuevo el archivo
de programa mediante la instrucción Salir del menú Archivo. A la pregunta de si quieres guardar
el archivo, puedes contestar con No.
11
E
ROBOPro
Prueba
12
E
ROBOPro
Una vez efectuados las configuraciones necesarias, debes cerrar la ventana con Aceptar. A
continuación abre la ventana de prueba de la interfaz con el botón Prueba de la barra de
herramientas:
Se abre una pantalla que muestra las entradas y las salidas presentes en la interfaz. La barra de
la esquina inferior derecha indica el estado de conexión desde el ordenador a la interfaz:
• Conexión: en marcha confirma una conexión correcta a la interfaz.
• Conexión: detenida indica que la conexión no se ha ajustado correctamente y que el PC no
pudo establecer una conexión con la interfaz, en cuyo caso la barra aparece en color rojo.
Para poder cambiar las configuraciones de la interfaz o de la conexión, debes cerrar la ventana de
prueba (con la X de la esquina superior derecha) y, como se describió anteriormente, elegir otro
puerto u otro tipo de interfaz mediante el botón COM/USB en la barra de herramientas.
Si con eso consigues ajustar la conexión del ordenador con la interfaz y en la ventana de Prueba
aparece la barra verde, puedes saltarte tranquilamente la siguiente sección.
Si no, quizás te ayuden los consejos del siguiente párrafo.
13
E
ROBOPro
14
E
ROBOPro
15
E
ROBOPro
En ese momento verás una superficie de dibujo grande y blanca, en la que introducirás enseguida
tu primer programa. Si en el margen izquierdo ves dos ventanas solapadas, debes cambiar en el
menú Nivel a Nivel 1: Principiantes.
16
E
ROBOPro
Descripción de la función:
Imagínate una puerta de garaje de apertura automática. ¡Quizás incluso
tengas una en casa! Si llegas en coche al garaje, basta con pulsar la tecla
del mando a distancia y la puerta del garaje se abre, accionada por un motor.
El motor debe estar en marcha hasta que la puerta del garaje quede
completamente abierta.
Describir un proceso de control con palabras resulta bastante complicado y
no muy ilustrativo, y por esta razón se utilizan los llamados diagramas de
operaciones, de control o de flujo para describir las sucesivas acciones de
ejecución y las condiciones que deben cumplirse para que se ejecuten estas
acciones. Por ejemplo, en nuestro caso la condición para que se ejecute la
acción "Conectar el motor" es que se presione el pulsador. Interpretar un
diagrama de operaciones de este tipo es bastante sencillo: simplemente hay
que ir siguiendo las flechas. El diagrama de flujo da como resultado el
funcionamiento exacto del control: cada paso puede ejecutarse solamente
en el orden indicado por las flechas, nunca de otra forma. En caso contrario
no necesitaríamos hacer todo este trabajo, ¿verdad?
Con ayuda de nuestro software ROBO Pro, ahora podemos dibujar este diagrama
de operaciones detalladamente y con ello crear el programa de control para el
hardware conectado (interfaz, motores, pulsadores, etc.). Del resto se encarga el
software, igual que ocurre en las grandes aplicaciones industriales. De ahí que
ahora podamos concentrarnos totalmente en la creación del diagrama de flujo.
El diagrama de operaciones se construye a partir de los elementos de programa.
¿Otra palabreja más? ¡Qué va, no es para tanto! En ROBO Pro los elementos
individuales con los que se crea el diagrama de control se llaman elementos de
programa. La acción "conectar el motor" no quiere decir otra cosa que la
instrucción de que la interfaz debe efectivamente encender este motor, que está
conectado en la interfaz. Los elementos de programa disponibles se encuentran en
la ventana de elementos del margen izquierdo.
17
E
ROBOPro
18
E
ROBOPro
19
E
ROBOPro
20
E
ROBOPro
del ratón sobre él, puedes cambiar la función del elemento a Detener motor. El programa se
termina con un elemento de fin. Tu programa debería ahora parecerse al de la ilustración de la
derecha. Si has situado unos elementos directamente debajo de otros siempre con una distancia
entre sí de uno o dos puntos reticulares, la mayoría de las entradas y salidas estarán ya
interconectadas mediante flechas de flujo del programa. Pero la salida de No (N) de las dos
bifurcaciones aún no estará conectada. Mientras no se presiona el pulsador de la entrada I1, el
programa tiene que retroceder y consultar el interruptor de nuevo. Para dibujar esta línea, debes ir
haciendo clic con el ratón sucesivamente sobre las posiciones indicadas en la imagen siguiente.
Nota: Si una línea no está conectada correctamente con una conexión o con otra línea, se
mostrará un rectángulo verde en la punta de la flecha. En este caso debes establecer la
conexión desplazando la línea o eliminando y redibujando. En caso contrario el proceso del
programa no funcionará en esta posición.
Antes de probar el programa de control debes guardar el archivo del programa en el disco duro
del ordenador. Haz clic con el ratón sobre la instrucción Guardar como del menú Archivo.
Enseguida aparece la siguiente ventana de diálogo:
21
E
ROBOPro
Selecciona en "Guardar
como" el directorio en el
cual quieres guardar el
programa. Introduce en
"Nombre de archivo" un
nombre que todavía no
hayas utilizado, por
ejemplo PUERTA DE
GARAJE, y confirma
haciendo clic con el
botón izquierdo del
ratón sobre "Guardar".
Para probar el programa
haz clic sobre el botón
Inicio de Inicio, a la izquierda
de la barra de
herramientas. Lo
primero que hace la ROBO Pro es comprobar si todos los elementos del programa están
interconectados correctamente. En caso de que algún elemento no esté interconectado
correctamente o que haya cualquier otra cosa incorrecta, se marcará con rojo y se mostrará un
aviso de error que describe el problema. Si por ejemplo has olvidado conectar la salida de No (N)
de la bifurcación del programa, aparece lo siguiente:
Si has recibido un aviso de error, debes primero corregir el error avisado. De otra manera no se
iniciará el programa.
Nota: Encontrarás una explicación más detallada de este modo de servicio y del modo de
descarga en el capítulo 3.7, página 25.
22
E
ROBOPro
Inicio
23
E
ROBOPro
Símbolo
Para ello podemos utilizar también una combinación de elementos de bifurcación, pero con el
elemento de Esperar a entrada es más fácil y se entiende mejor.
24
E
ROBOPro
número de impulsos recibidos en una entrada de la interfaz. Para este fin está el elemento
Contador de impulsos ilustrado a la izquierda, cuya función es esperar a que se registre un
número regulable de impulsos. En este elemento también puedes configurar si debe entenderse
como impulso cualquier cambio o solamente cambios de 0 a1 o de 1 a 0. Las ruedas de impulsos
esperan generalmente cualquier cambio, de modo que con 4 dientes se obtiene una definición de
8 pasos por revolución.
Con tu interfaz, en vez del modo online puedes usar también el modo de descarga. En el modo
online se ejecutan los programas desde tu ordenador. Este envía instrucciones de control (como
“conectar motor”) a la interfaz; para que ella los reciba, debe estar conectada al ordenador Descarga
mientras se ejecuta el programa. Pero en el modo de descarga, el programa lo ejecuta la propia
25
E
ROBOPro
26
E
ROBOPro
durante muchos años, incluso sin corriente. Esto no significa que no puedas sobrescribir los
programas guardados en Flash en un momento dado, pero la descarga a RAM funciona
claramente más rápido y por ello es recomendada para fines de prueba.
En la memoria Flash puedes almacenar varios programas distintos, p.ej. diferentes maneras de
comportamiento para un robot móvil. Los diferentes programas los puedes seleccionar, iniciar y
detener mediante el display y las teclas de selección del ROBOTICS TXT Controller o del ROBO
TX Controller. Si la opción Iniciar programa después de la descarga está activada, se iniciará el
programa inmediatamente después de la descarga.
En los robots móviles es más práctica la opción Iniciar programa desde el pulsador de la
interfase. Si no dispones de una interfaz Bluetooth o WLAN, tendrás que quitar el cable USB,
antes de que tu programa ponga el robot en movimiento. En este caso, el programa descargado lo
inicias con un pulsador directamente en la interfaz correspondiente.
A través de la función Autostart se inicia automáticamente un programa tan pronto como la
interfaz reciba alimentación de corriente. De esta forma puedes, por ejemplo, colocar un
temporizador en la fuente de alimentación de la interfaz de modo que el programa se inicie cada
día a la misma hora. Así no tendrás que dejar conectada la interfaz ni iniciar el programa con la
tecla de selección después de cada conexión.
Nota:
En el manual de instrucciones adjunto al dispositivo también encontrarás una descripción
más detallada de las funciones de la ROBOTICS TXT Controller.
Si el ratón se encuentra sobre una línea horizontal de unión, puedes desplazar toda la
línea horizontal con la tecla izquierda del ratón pulsada.
Si el ratón se encuentra sobre una línea diagonal de unión, se insertará un nuevo punto
en la línea de unión si pulsas la tecla izquierda del ratón. Debes mantener pulsada la
tecla izquierda del ratón y soltarla sólo cuando el ratón se encuentre donde quieres tener
el nuevo punto.
27
E
ROBOPro
Si el ratón se encuentra cerca de un punto angular o un punto final de una línea de unión,
puedes desplazar el punto con la tecla izquierda del ratón pulsada. Puedes arrastrar un
punto final de línea unida solamente a otra unión adecuada de un elemento de programa.
En este caso se une el punto final de la línea de unión con este punto de unión. En caso contrario
el punto no se desplazará.
28
E
ROBOPro
¡Pero no te preocupes! La ventana de elementos sigue estando ahí, lo que ocurre es que está
vacía. En el nivel 2 hay más elementos de programa, así que sería poco práctico meterlos todos
en una sola ventana. Por eso los elementos a partir del nivel 2 se han recogido en grupos. Los
elementos se organizan en grupos de forma muy parecida a la que se usa en el disco duro del
ordenador para organizar los archivos en carpetas. Si seleccionas un grupo de los que aparecen
en el margen izquierdo de la ventana superior, se desplegarán en la ventana inferior todos los
elementos de este grupo. Puedes encontrar los elementos del nivel 1 en el grupo de Elementos
de programa / Elementos básicos. Dado que la ventana de elementos se ha quedado en la
mitad del tamaño original, para mostrar los elementos inferiores debes hacer uso de la barra de
desplazamiento que encontrarás a la derecha de la ventana de elementos.
Pero vayamos ahora al tema que nos interesa realmente: los subprogramas. Es cierto que los
diagramas de operaciones que hemos creado hasta ahora no son tan amplios que nos hagan
perder la visión de conjunto, pero, como seguramente imaginarás, es muy fácil que esto ocurra en
proyectos más grandes con diagramas de operaciones más amplios. De repente nos encontramos
con que la hoja de trabajo está llena de componentes, tenemos líneas de unión por todas partes y
continuamente nos vemos obligados usar la barra de desplazamiento para movernos por la
pantalla. "¿Pero dónde estaría tal o cual salida?", nos preguntamos. Resumiendo: ¡caos a la vista!
¿Qué podemos hacer? ¿Ya no existe ninguna posibilidad de poner un poco de orden en todo
esto? ¡Claro que sí! ¡Utilizar un subprograma!
29
E
ROBOPro
Puedes moverte en cualquier momento del programa principal al subprograma haciendo clic sobre
el nombre pertinente de la barra de subprogramas. Dado que ambos programas aún están vacíos,
todavía no se ve ninguna diferencia.
Vamos ahora a estructurar en subprogramas el control de la puerta de garaje del capítulo anterior
(vea sección 3.6 Más elementos de programa, página 23). El programa consta de cuatro unidades
de función:
• Esperar hasta que el pulsador I1 esté pulsado
• Abrir puerta
• Esperar 10 segundos
• Cerrar puerta
Ahora queremos separar los procesos de abrir y cerrar en dos subprogramas. Después puedes
llamar a los dos subprogramas desde el programa principal con un solo símbolo. El pulsador I1 de
espera y el tiempo de espera de 10 segundos se mantienen en el programa principal, dado que
constan de un solo elemento cada uno y no supondría mucha diferencia hacerles un subprograma.
Acabas de crear un nuevo programa con un subprograma dentro, llamado Subprograma 1; mejor
sería darles los nombres Abrir y Cerrar a los dos subprogramas. Para cambiar el nombre del
subprograma ya creado, selecciona el subprograma 1 en la barra de subprogramas, si no está ya
seleccionado.
30
E
ROBOPro
¿Estás preparado para programar tu primer subprograma? Muy bien: ¡vamos allá! Bueno, pero
¿cómo empieza realmente un subprograma? ¡Buena pregunta! Hasta ahora habías empezado
todos los programas principales con el elemento de inicio. Pues bien: un subprograma empieza
con un elemento parecido: la entrada de subprograma. Se llama así al elemento porque, a través
de este elemento, el control del programa pasa del programa principal al subprograma. Aquí no
puedes utilizar un elemento de inicio, porque no queremos iniciar un nuevo proceso.
31
E
ROBOPro
32
E
ROBOPro
(tal y como estás acostumbrado a hacer con los elementos de programa habituales). ¡Así de
simple!
Si quieres, puedes concluir el programa principal con un elemento de detener y proceder a
probarlo. La puerta ya se abre con el pulsador I1, pero todavía nos falta programar la parte de
cerrar. Para hacerlo, vamos a crear otro subprograma. Pulsa el botón de Nuevo SP en la barra de Nuevo SP
herramientas e introduce en la ventana Nuevo subprograma el nombre Cerrar. No necesitas
introducir una descripción (aunque no estaría mal, para saber después cuál es la función para la
que está pensado el subprograma).
Introduce ahora en la ventana de programa del subprograma Cerrar el programa que cierra la
puerta de garaje. Empiezas otra vez con una entrada de subprograma. El motor M1 debe girar
primero a la derecha. Tan pronto como el pulsador de límite de I3 esté cerrado, debe detenerse el
motor M1. Se finaliza el subprograma de nuevo con una salida de subprograma.
Ahora debes pasar al programa principal mediante la barra de subprogramas. Si antes has
conectado tu programa principal con un elemento de detener para poder probarlo, ahora es el
momento de borrar ese elemento. Una vez que la puerta de garaje esté abierta, debe mantenerse
así durante 10 segundos antes de cerrarse de nuevo. Después de un tiempo de espera de 10
segundos, introduce desde el grupo de elementos Programas cargados / sin nombre1 el
símbolo Cerrar del subprograma. El programa principal y los dos subprogramas deberían más o
menos tener este aspecto:
33
E
ROBOPro
llega después a su salida de subprograma. En este punto el programa bifurca de nuevo hacia el
programa principal. Después del final del subprograma Abrir se produce una espera de 10
segundos en el programa principal. A continuación la ejecución del programa cambia al
subprograma Cerrar, que cierra la puerta de garaje de nuevo. Después del regreso desde el
subprograma Cerrar, el programa principal se encuentra con un elemento de detener, con lo que
se finaliza el programa.
34
E
ROBOPro
Puedes indicar en el menú Archivo, opción Directorio de biblioteca personal, en qué carpeta
quieres guardar tu propia biblioteca. El directorio usual para la propia biblioteca es
C:\Programas\ROBOPro\Biblioteca personal. Si tienes tu propio directorio de usuario en el
ordenador, recomendamos que crees en él una carpeta propia y la utilices para este fin.
35
E
ROBOPro
También puedes desplazar las conexiones del subprograma, pero no puedes borrarlas ni añadir
nuevas conexiones. En el símbolo del subprograma hay siempre una conexión para cada entrada
o salida del subprograma. Los elementos de conexión se crearán automáticamente aunque hayas
marcado la opción de creación de símbolo manual.
Tan pronto como hayas salido de la ventana de edición de símbolo, todas
las llamadas del subprograma del programa principal o de otros
subprogramas se adaptarán en consecuencia. Ten en cuenta que si habías
desplazado las conexiones de un subprograma, puede que se haya creado
cierto caos en las llamadas, si las conexiones ya estaban hechas. Si es así,
puede que los puntos finales de las líneas de unión ya no lleguen a la
conexión correcta, lo que se indicará por medio de una cruz en el punto
final de la línea o en la conexión (ver imagen). Por regla general es suficiente hacer clic con el
botón izquierdo del ratón sobre cualquier parte de la línea de unión: la línea se trazará de nuevo
automáticamente. Sin embargo, en los subprogramas con muchas uniones es posible que
además tengas que editar la línea.
4.4 Tango
Hasta ahora te hemos presentado programitas muy sencillos, así que tal vez ardas ya en
impaciencia por conocer nuevos elementos de programa y nuevas posibilidades. Pero antes de
ocuparnos de las variables y otras cuestiones más difíciles en el siguiente capítulo, queremos
repasar en este punto todas las cosas que se pueden hacer con los elementos de programa de
Nivel 2, que no son pocas. ¿Qué te parecería, por ejemplo, hacer que tu robot móvil baile el
tango? A los que tengáis más de nerdΣ os interesará saber que el tango se baila con un compás
de 2/4. La figura básica comprende 8 pasos en 3 compases. Para el hombre, la figura es la
siguiente:
• un paso lento hacia delante con el pie izquierdo (1/4)
• un paso lento hacia delante con el pie derecho (1/4)
• el paso de "la cunita", que dura 4/8. Para hacerlo casi no se mueven los pies: más bien se
desplaza el peso del cuerpo del uno al otro. En primer lugar se desplaza el peso al pie
izquierdo (atrás) en 1/8, después se desplaza en 1/8 al pie delantero (delante), y otra vez se
vuelve a desplazar durante otro 1/8 al pie izquierdo (atrás). Para terminar el paso de la cunita
se hace una pausa de 1/8.
• A continuación llegan tres pasos rápidos: En primer lugar se da un pequeño paso hacia atrás
con el pie derecho, de manera que vuelve a posicionarse al lado del izquierdo. Después se
da un paso lateral con el pie izquierdo. Finalmente se vuelve a colocar el pie derecho al lado
del izquierdo. Cada uno de estos tres pasos duran 1/8 y se cierran con una pausa, también
de 1/8.
Para las señoras, la figura es idéntica pero invertida, es decir, en vez de a la derecha se mueve a
la izquierda, y en vez de hacia adelante se mueve hacia atrás. Se repite la figura completa hasta
que se termine la música, se llegue a la pared de la habitación o aparezca el aburrimiento. En los
dos últimos casos conviene consultar con un profesor de baile.
Σ
"Nerd" es una palabra inglesa que denota a una persona que no sale de casa sin la calculadora
y que prefiere hablar con el profesor de matemáticas que salir por ahí de marcha.
36
E
ROBOPro
Pero en fin, volvamos al tema de la robótica. Tal vez tengas un kit fischertechnik de robots móviles.
Los robots de estos kits suelen tener dos ruedas impulsoras con un motor independiente cada una.
La dirección se controla igual que en los vehículos de cadena: cuando los dos motores giran en la
misma dirección, el robot se desplaza en línea recta; cuando uno de los motores está parado, en
cambio, el robot describe una curva.
Como es natural, estos robots también puedes desplazarse marcha atrás, tanto en línea recta
como en curvo. Cuando los dos motores giran en direcciones opuestas, el robot rota sobre sí
mismo. Vamos a tratar de traducir los pasos del tango a giros de las ruedas. El compás 1/4 debe
coincidir con un giro de la rueda, de manera que tenemos lo siguiente:
• Rueda izquierda: 1 giro hacia adelante (por norma general, motor M2 a la izquierda).
• Rueda derecha: 1 giro hacia adelante (por norma general, motor M1 a la izquierda).
Ahora llega el paso de la cunita, pero, como todos sabemos, el robot no puede hacer lo de mover
el cuerpo sin desplazar los "pies". También el paso lateral del tercer compás es bastante
complicado para un robot. Así las cosas, lo que vamos a hacer es un pequeño giro hacia la
izquierda en el segundo compás y un pequeño avance hacia adelante en el tercer compás para
simular el paso lateral. Para el segundo compás tenemos:
• Rueda izquierda: ½ giro hacia atrás (por norma general, motor M2 a la derecha).
• Rueda derecha: ½ giro hacia adelante.
• Rueda izquierda: ½ giro hacia atrás.
Tanto en el movimiento de izquierda hacia atrás como el de derecha hacia adelante, el robot gira
hacia la izquierda. En el tercer compás hacemos lo siguiente:
• Rueda derecha: ½ giro hacia atrás.
• Desplazamiento recto ½ giro hacia atrás.
• Rueda derecha hacia atrás y rueda izquierda hacia adelante ½ giro.
De este modo volvemos a girar el robot un poquito hacia la derecha, hacemos que avance en
recto (que será en dirección adelante- izquierda) para simular el paso a la izquierda, y luego
volvemos a girar el robot.
Ahora intentaremos trasladar estos pasos en ROBOPro. Dependiendo de si utilizas un TXT o un
TX Controller con motores de codificador o un modelo con pulsadores de impulso, el traslado será
un poco diferente. Los dos casos se tratan por separado en los siguientes dos apartados: 4.4.1
Control de motor con pulsadores por impulso en página 38 y 4.4.2 Control de motor con motores
de codificador en página 41.
37
E
ROBOPro
38
E
ROBOPro
los dos. La única cuestión es cómo hacerlo con los moduladores de impulsos. La opción de poner
dos contadores de impulsos, uno detrás del otro, no es válida, porque el programa esperaría
primero los 4 semiimpulsos de un motor y a continuación los 4 semiimpulsos del otro. Si
esperáremos a uno de los dos motores estaríamos más cerca de lo que queremos hacer, pero
entonces tendríamos un problema si los dos motores no girasen a exactamente la misma
velocidad. La mejor solución es encender los dos motores y a continuación esperar a que cambie
uno de los moduladores de impulsos. En ese momento se detiene inmediatamente el motor cuyo
modulador de impulsos haya cambiado y se espera a que cambie también el segundo modulador
para parar también el segundo motor. Es bastante complicado, por desgracia, porque no se sabe
si de entrada el modulador está abierto o cerrado. Como hay dos moduladores de impulsos, en
total tenemos cuatro posibilidades. Por suerte para esta función ya tenemos un programa
preconfeccionado en la biblioteca. Crea el subprograma "Recto 1/8" y añade el subprograma
"PasoSínc" que encontrarás en la biblioteca homónima de la carpeta "ROBO Mobile Set". Si no te
ubicas, consulta La biblioteca del subprograma del capítulo 4.2, página 34.
Los que quieren saber cómo funciona todo encontrarán en el mismo sitio una breve explicación
del subprograma "PasoSínc". Si te conformas con un simple vistazo del subprograma puedes
saltarte tranquilamente los siguientes párrafos y el correspondiente ejercicio. Es perfectamente
correcto utilizar un subprograma aunque no se entienda al detalle cómo funciona: lo importante es
saber lo que hace.
El subprograma pregunta en primer lugar cuál es el estado de los moduladores de impulsos I1 e I2.
Dependiendo de si I1 y I2 están en 0 o en 1, el subprograma salta a una de cuatro vías. La vía
más a la izquierda es para el caso de que tanto I1 como I2 tengan el valor 1. En ese caso el
subprograma debe esperar, por lógica, que o bien I1 o bien I2 tengan el valor 0. Esto se hace en
el bucle con los dos elementos de bifurcación. Mientras I1 y I2 tengan el valor 1, el programa se
ejecuta en círculo, pero en el momento que las dos entradas tengan valor 0 se detiene de
inmediato el motor en cuestión. El subprograma espera entonces con un elemento de "Esperar en
39
E
ROBOPro
entrada" hasta que la segunda entrada sea 0, y detiene entonces el segundo motor. El bucle en el
que espera a las dos entradas es necesario porque no sea sabe cuál de los dos motores gira más
rápido, y en consecuencia se ignora también cuál de los dos moduladores de impulsos cambia
antes. Las otras 3 vías del programa funcionan exactamente igual, sólo que parten de un estado
de salida diferente y esperan, como es natural, a su correspondiente estado final. En la segunda
vía desde la izquierda, por ejemplo, partimos de I1=1 e I2=0, como puedes comprobar si vas
siguiendo el camino por los dos primeros elementos de bifurcación. La segunda vía espera, por lo
tanto, que I1 pase a 0 y que I2 pase a 1. En caso de que quieras diseñar el programa tú mismo,
tienes que adaptarte con total precisión a los valores de partida del modulador de impulsos de
cada vía, y esperar los valores que correspondan en cada caso.
Si ya has echado un vistazo a la información sobre variables contenida en los siguientes capítulos
puede intentar crear un subprograma que haga lo mismo, pero con variables. Resulta más fácil,
porque al principio puedes almacenar el valor de los dos moduladores de impulsos en dos
variables y a partir de ahí sólo necesitarás una única vía de programa, en la que puedes comparar
el valor actual de las entradas con los valores de las variables.
Volvamos por fin al tango: el objetivo del subprograma
PasoSínc era crear un subprograma de nombre "Recto
1/8" que avanzase en línea recta 4 medios pasos. Si se
conectan los motores M1 y M2 y se ejecuta a
continuación el subprograma PasoSínc, los motores
darán medio paso y se detendrán. Esto significa que
tiene que hacerlo 4 veces: para conseguirlo, lo mejor es
optar por un elemento de bucle.
Si eres muy meticuloso puede que te ocupes de que los
motores se detengan al final del subprograma de
PasoSínc y vuelvan a funcionar a continuación. En el
motor que gire más despacio habrá una brevísima pausa
entre la desconexión y la conexión, necesaria para que
las velocidades de los dos motores se ajusten
mutuamente. A los motores no les supone ningún
problema. De hecho, la propia interfase regula la velocidad de los motores a base de encenderlos
y apagarlos constantemente. A este sistema se le llama MDI (modulación de duración de
impulsos). En el motor más rápido, el encendido y apagado es tan rápido que el motor ni siquiera
lo percibe. En el subprograma de PasoSínc puede prescindirse de apagar el segundo motor y
hacer que los dos se apaguen en cuando termine el bucle. A la hora de programa suele haber
distintas formas de llegar al mismo objetivo.
Comprueba ahora si verdaderamente el robot avanza mejor en línea recta con el subprograma
PasoSínc que cuando simplemente encendías los dos motores durante un número determinado
de impulsos.
El último subprograma que necesitamos es el que haga que el robot gire sobre sí mismo durante 4
medios pasos. Lo interesante es que para ello puede utilizar el mismísimo subprograma
"PasoSínc" que ya empleaste para "Recto 1/8". Es así porque el subprograma "PasoSínc"
simplemente detiene los motores, con independencia del sentido de giro. Simplemente encientes
el motor M1 en el bucle con giro a la derecha en lugar de a la izquierda, sin más complicación. Los
moduladores de impulsos no tienen en cuenta el sentido de giro. Tanto da que los motores giren
hacia la izquierda o hacia la derecha: los moduladores de impulsos pasan siempre de 0 a 1 y de 1
40
E
ROBOPro
a 0. Para crear el subprograma "Giro 1/8", por tanto, simplemente tienes que copiar el programa
"Recto 1/8" y modificar el sentido de giro.
41
E
ROBOPro
• Derecha 1/8 R (igual que Derecha 1/8, pero hacia atrás, es decir, con el
motor girando a la derecha)
La pausa de 1/8 no puedes fijarla, claro está, con el contador de impulsos,
porque en las pausas no se mueve ninguna de las ruedas. En lugar del contador
nos valemos de un retardo. En los modelos estándar del ROBO TX Training Lab,
37 semiimpulsos corresponden a unos 0,3 segundos. En función de la
transmisión y del motor puede ser que en tu modelo en concreto varíen los
valores. Crea también un subprograma para la pausa de 1/8. Este subprograma
contiene un único elemento de programa (además de la entrada y la salida),
pero en A lo mejor estás pensando que también deberíamos utilizar un retardo
para los pasos, en lugar de optar por un control de motor ampliado. Ahí no habría problema para
adaptar el tiempo de pausa y del paso. La desventaja sería, no obstante, que los motores derecho
e izquierdo nunca girarían exactamente a la misma velocidad, de manera que el robot no podría
bailar unas figuras reproducibles. Al utilizar el control de motor ampliado, en cambio, garantizamos
que las dos ruedas se muevan siempre exactamente el mismo trecho, incluso cuando el
acumulador esté bajo o cuando una de las ruedas sea un poco más pesada de mover que la otra.
Ahora sólo nos faltan los subprogramas para el paso 1/8 hacia
adelante y el giro sobre sí mismo de 1/8. El control de motor ampliado
también permite controlar simultáneamente dos motores. Para ello
existen las acciones Sincronización y Distancia de sincronización.
La acción Sincronización sirve para que dos motores de codificador
giren exactamente a la misma velocidad. Con ello consigues que tu
robot se desplace exactamente en línea recta. Con motores de
codificador no se puede desplazar el línea recta porque las ruedas
siempre tienen un poco de deslizamiento. En nuestro caso, M1 y M2
deben girar a la misma velocidad a lo largo de una distancia de 75
impulsos. Para ello, utilizas la acción Distancia de sincronización.
En motores acoplados sincrónicamente, la señal de destino alcanzado
se posiciona para los dos motores cuando ambos motores han
alcanzado su destino. Para ello basta con esperar a una de las dos
señales de destino alcanzado. ¡No olvides detener al final los dos
motores!
Comprueba ahora si verdaderamente el robot avanza mejor en línea
recta con la acción Distancia de sincronización que cuando controlas
los dos motores por separado con la acción Distancia.
El último subprograma que necesitamos es el que haga que el robot gire sobre sí mismo hacia la
derecha durante 37 impulsos. Para ello utilizas también el control de motor ampliado con la
acción Distancia de sincronización, donde para el subprograma “Giro 1/8” ambos motores giran
en direcciones diferentes. Piensa sobre cómo deben girar M1 y M2 para que el modelo gire sobre
sí mismo hacia la derecha.
42
E
ROBOPro
El programa principal que te presentamos hace que el robot baile el tango en un bucle sin fin.
Intenta utilizar un bucle contador para ejecutar la secuencia de tango 5 veces seguidas en un
bucle. Para ello copia el contenido del programa principal con Edición / Copiar y Edición / Pegar
en un nuevo subprograma y añádele un subprograma de entrada y de salida. A continuación
ejecuta este subprograma 5 veces en el bucle.
43
E
ROBOPro
El subprograma Giro 1/8 no cambia. ¿Se te ocurre por qué? Cambia en el Giro 1/8 la izquierda
por la derecha (M1 y M2 del subprograma) y el desplazamiento hacia adelante por un
desplazamiento hacia atrás (motor izquierda/derecha) y compara el subprograma original con el
modificado.
Si tienes dos robots móviles, carga en uno de ellos el programa TangoSolo.rpp y en el otro el
programa TangoSoloMujer.rpp. Si sólo tienes un robot, tal vez podrías probar con alguien que
tenga el suyo. Al hacer la descarga debes indicar que el programa se va a iniciar con el botón de
la interfase. Cuando los dos robots tengan su correspondiente programa, colócalos frente a frente
tal y como se muestra en la ilustración, y enciende los dos robots al mismo tiempo con una breve
presión sobre el botón de inicio (TXT o TX Controller) o el botón PROG (Robo Interface) de ambas
interfases.
Si has encendido los dos robots más o menos al mismo tiempo, los dos bailarán el tango al
compás durante un rato. Como los motores y los acumuladores no son idénticos, lo que ocurrirá
será que los motores no girarán exactamente a la misma velocidad, de manera que antes o
después los robots acabarán por descompasarse patentemente. Para saber cómo conseguir que
los dos robots sigan el compás durante más tiempo, lee la siguiente sección.
44
E
ROBOPro
roja se conecta al PC por el puerto USB. Seguramente hasta ahora sólo has utilizado conexiones
por radio para radiocontrolar tus robots, es decir, para manejarlos sin necesidad de cables. Con
WLAN, Bluetooth y RF Data Link se puede hacer mucho más: gracias a él dos robots pueden
intercambiarse mensajes y comunicarse de este modo entre sí.
En el Nivel 2 los elementos de
programa contienen un subgrupo de
Enviar, Recibir conformado por dos
elementos. El elemento de la
izquierda es el emisor; el de la
derecha, el receptor.
El elemento de envío de la imagen
envía el mensaje hola a el TXT Controller, a el TX Controller o a la ROBO Interface (en lo
sucesivo sólo TXT Controller) con el Número de llamada por radio 1, que se abrevia como FRN 1.
El número de llamada por radio es una especie de número de teléfono que indica a qué Controller
se envía el mensaje. Encontrarás más información sobre este tema en la siguiente sección, 4.5.1
Ajustes de radio para la Robo Interface en página 48 y 4.5.2 Ajustes Bluetooth para el TX
Controller en página 51.
El receptor de la derecha de la imagen funciona como una bifurcación de programa: al recibir el
mensaje de hola, el elemento se pasa a la bifurcación del sí, S; en caso contrario pasa a la salida
no, N.
Si tomamos en el elemento de emisión, se llama desde un programa en el Controller con el
número de llamada de radio (número de teléfono) 2. A continuación envía el mensaje hola a la
interfase con el número de llamada por radio 1, porque es lo que se indica como destinatario. La
interfase que posee el número de llamada por radio 1 se da cuenta de que ha recibido el mensaje
hola. La próxima vez que un elemento de recepción pregunte a la interfase si ha recibido un
mensaje de Hola, la respuesta será que sí; a partir de ahí contestará que no hasta que vuelva a
recibir otro. El receptor no es capaz de distinguir qué interfase le ha enviado el mensaje†. Para
permitirle hacer esa distinción tienes que enviarle mensajes diferentes.
El mensaje es la palabra que tú elijas (por ejemplo, hola). Lo que ocurre es que por razones Hola
técnicas sólo se tienen en cuenta las tres primeras cifras o letras del mensaje. Si quieres puedes =
poner más de tres letras, pero "hola", "holita" y "Holanda", por ejemplo, darán los tres el mismo Holita
mensaje, porque empiezan todos por "hol". Las mayúsculas y minúsculas y los caracteres
especiales (espacio en blanco, signos de admiración e interrogación y similares) tampoco se
distinguen. Por ejemplo, XY! y XY? se entenderán como el mismo mensaje. Los números sí que
se distinguen, de forma que XY1 no se confunde con XY2.
† A partir del Nivel 4 existen los grupos de recepción para estos casos.
45
E
ROBOPro
46
E
ROBOPro
47
E
ROBOPro
Quizás te estás preguntando por qué el "hombre" no puede simplemente mandar la invitación SH
y comprobar inmediatamente si ha recibido la respuesta de SM. No es posible porque la
ROBO-IF transmisión del mensaje del "hombre" a la "mujer" tarda entre 1/100 y 2/100 segundos, a lo que
hay que sumar otro tanto: el tiempo que tarda en llegar la respuesta. Incluso si el programa de la
"mujer" ya está en ejecución, nos encontramos, entonces, con que desde el envío hasta que llega
la respuesta pueden transcurrir 4/100 segundos. En este período de tiempo el "hombre" podría
mandar una gran cantidad de mensajes de SH que habría que transmitir a la "mujer". Para la
primera sincronización esto no tiene importancia, pero lo cierto es que todos esos mensajes
superfluos de SH se quedarían almacenados en el programa de mujer del elemento de recepción.
Cuando se empezase el siguiente ciclo, la "mujer" ya habría recibido un mensaje de SH antes de
que el "hombre" hubiese mandado nada más. Si así fuese, la "mujer" ya no esperaría recibir más
del "hombre". Por esta razón es imprescindible que el "hombre" espere un tiempo suficiente antes
de repetir la invitación.
Naturalmente el "hombre" también podría seguir esperando más de 1/10 segundos antes de
comprobar si hay respuesta o no. La ventaja de una espera en bucle de 10 veces 1/100 segundos
ROBO-IF es que el "hombre" puede proseguir con el programa casi inmediatamente si se da el caso de que
efectivamente recibe la respuesta de la "mujer". Comprueba que el programa funciona mejor si en
TangoSyncHombre.rpp modificas el subprograma Sínc tal y como te explicamos antes.
Hacemos que los robots inicien su programa en cuando el otro se inicia, independientemente de
cuál sea el que se encendió primero.
Si dejas que los robots bailen hasta que se vayan agotando los acumuladores, la sincronización
por ciclo de pasos pierde su efectividad. Los robots se sincronizan al principio de cada ciclo de
pasos, pero cuando uno de los acumuladores llega a su límite se descompasan evidentemente.
En ese caso es mejor diseñar una sincronización adicional tras cada paso. Como de todas formas
está claro que los dos programas están funcionando, puedes prescindir de la repetición. Para que
la sincronización inicial y la sincronización de pasos no se interfieran, tiene que utilizar dos
subprogramas distintos, Sync1 y Sync2, que manden mensajes diferentes (por ejemplo SH1, SM1
por un lado y SH2, SM2 por el otro). Encontrarás los programas ya confeccionados en la carpeta
de instalación de ROBOPro, en
Programas de ejemplo\Manual\Tango motor de codificador\
Programas de ejemplo\Manual\Tango modulador de impulsos\
TangoHombre.rpp
TangoMujer.rpp
En la misma carpeta verás el programa TangoMonitorMensajes.rpp. Si tienes un tercer TX-
Controller o una tercera interfase con módulo de ROBO RF Data Link, puedes ejecutar este
programa en modo online mientras bailan los dos robots. El programa muestra en la pantalla los
mensajes que se han enviado. El programa utiliza elementos de Nivel 3, así que en este momento
no necesitas entender cómo funciona.
48
E
ROBOPro
comunicarse entre sí pero formando grupos distintos. Cada grupo tiene su propia frecuencia,
común a todos los robots pero diferente de la frecuencia de otros grupos. También puedes
modificar la frecuencia si el RF Data Link no funciona bien en la que estás usando. Muchos
sistemas de radio (por ejemplo las redes inalámbricas de ordenadores) utilizan el mismo rango de
frecuencia (2,4 GHz) que el ROBO RF Data Link. Si el RF Data Link está interferido por otros
sistemas de radiocomunicación, un simple cambio de frecuencia puede resolver el problema. Eso
sí: ten en cuenta que entonces deberás modificar la frecuencia de todos los módulos de RF Data
Link y el módulo de radio del PC, puesto que todos los dispositivos del grupo deben utilizar
obligatoriamente la misma frecuencia.
Todas las ROBO Interface con RF Data Link configuradas en la misma frecuencia deben tener
asignado un número de llamada por radio entre 1 y 8. El número 0 está reservado para el
módulo del PC del RF Data Link, la "caja roja". Dicho de otro modo, pueden comunicarse un
máximo de 8 interfases con módulo de radio integrado y un módulo de PC RF Data Link. El
número de llamada por radio es, por así decirlo, el número de teléfono de cada interfase en la red
de radiocomunicación. A la hora de asignar los números de 1 a 8 a las 8 interfases puedes
proceder como prefieras.
La marca de activar está puesta casi siempre, pero si quieres puedes desactivar el módulo de
radio de una interfase cuando no la vas a utilizar y quieres ahorrar corriente sin necesidad de
desmontarlo del sistema que has compuesto.
Cuando hayas completado todos los ajustes de configuración puedes guardarlos en la interfase
con el botón de Escribir en la interfase. Por norma general debes guardar la configuración en la
memoria flash, en la cual se quedarán aunque apagues la interfase. Si tan sólo quieres hacer
una breve prueba, puedes guardar la configuración en la memoria temporal.
De la versión de firmware, es decir, la versión del programa interno de control del RF Data Link,
puedes despreocuparte. ROBOPro te avisará automáticamente de que has de actualizar el
firmware cuando llegue el momento.
Para permitir la comunicación entres los dos robots tanguistas empezamos por conectar uno de
los dos robots al puerto USB del PC y abrimos la ventana de prueba de la interfase. Puede ser
que antes tengas que apretar el botón COM-USB y seleccionar la interfase en cuestión. Cambia
de la ventana de prueba de interfase a la pestaña de info y configura en ella la frecuencia 2 y el
número de llamada por radio 1; guarda la configuración apretando el botón de escribir en la
interface. Cierra a continuación la ventana de prueba de interfase, conecta el otro robot al puerto
USB y configúralo con frecuencia 2 y número de llamada por radio 2.
49
E
ROBOPro
50
E
ROBOPro
vuelves a apretar el botón COM/USB, lo más probable es que ya no se muestre ningún menú de
selección, porque el módulo de radio del PC ha pasado a ser la única unidad con la que se puede
comunicar. En caso de que hayas conectado otras interfases directamente al USB y aparezca el
menú de selección, selecciona el módulo de radio del PC. Al abrir la prueba de interfase
aparecerá un mensaje de error avisando de que no se ha encontrado ninguna interfase. No te
preocupes: tú querías cambiar la configuración del Data Link, nada más. Si modificas la frecuencia
del módulo de radio del PC y vuelves a apretar el botón COM/USB, se mostrarán de nuevo el
módulo de radio del PC y las dos interfases, porque ahora tienen las tres la misma frecuencia.
¿Por qué debes cambiar primero las frecuencias de las interfases y sólo después la del módulo
del PC? Prueba a ver qué pasa si lo haces al revés.
Puede ocurrir, por cierto, que las modificaciones tarden un par de segundos en surtir efecto. Si el
menú de selección del botón COM/USB no se corresponde con la configuración actual,
simplemente apriétalo de nuevo. En caso de que dejes de poder comunicar por radio con una
interfase, lo mejor es que la conectes directamente al puerto USB del PC y repases la
configuración del RF Data Link de la interfase.
†Para expertos en Bluetooth que también pueden hacerlo sin instrucciones: la clave principal es
1234
51
E
ROBOPro
La lista con los TXT Controller o TX Controller detectados siempre está clasificada por números
de llamada por radio (FRN). Puedes modificar los números de llamada por radio seleccionando
una línea en la lista y pulsando Arriba o Abajo. Si, por ejemplo, seleccionas la línea para el
número de llamada por radio 2 y pulsas Arriba, el Controller se traslada una línea hacia arriba y
recibe el número de llamada por radio 1. Por su parte, el Controller de la línea 1 se desplaza una
línea hacia abajo y tiene entonces el número de llamada por radio 2. También puedes seleccionar
una línea, introducir el número de llamada por radio en el campo de texto junto el botón
Posicionar, y pulsar el botón Posicionar.
Después de que hayas ajustado el número de llamada por radio, aún deberás indicar qué
Controllers deben participar en la transmisión por radio. Generalmente se trata de todos los
Controllers de la lista. Puede suceder, especialmente es escuelas, que también aparezcan
Controller de otro grupo de experimentadores. Selecciona los Controllers con los que debe
comunicar el programa colocando las marcas al principio de las líneas en la lista.
Dado que descargar varios programas en varias
interfaces resulta latoso, ROBO Pro permite asignar a
cada TXT Controller o TX Controller de la lista un
archivo ROBOPro.rpp. Para ello se utilizan los botones
Asignar y Borrar. En la venta de descarga hay una
opción para descargar todos estos programas de una
vez.
Centralita
Central
52
E
ROBOPro
programas adoptan los ajustes Bluetooth del programa a través del que se ha iniciado la descarga.
La asignación entre números de llamada por radio y Controllers, por el contrario, no se guarda en
el programa ROBOPro, sino en el PC. Esto facilita la comunicación de programas ROBOPro con
otros programas.
53
E
ROBOPro
Imagínate que dentro de un museo descubres, en una sala lateral hasta ahora sin investigar, una
máquina fascinante, cuya construcción quieres imitar a toda costa con los materiales
fischertechnik. Pero estudiando la máquina pierdes la noción del tiempo y no te das cuenta que
todos los otros visitantes están ya saliendo del museo. Hasta que ha pasado la hora de cierre del
museo, no acabas de estudiar la máquina lo suficiente para poder reconstruirla. Pero
lamentablemente debes pasar una noche desagradable y solitaria en el museo antes de poder
ponerte manos a la obra. Para que esto no te suceda otra vez, ofreces al director del museo
programar un contador de visitantes que cuente todas las personas que entren y salgan y que
encienda un piloto de luz roja mientras quede algún visitante dentro del museo. ¿Pero cómo
hacerlo? ¿Cómo puedes contar algo con ROBO Pro? La respuesta es: con variables.
54
E
ROBOPro
55
E
ROBOPro
56
E
ROBOPro
Ahora se utilizarán procesos independientes para I1 y I2. Si se activa el pulsador de I1, el proceso
de I2 no se verá afectado y podrá continuar controlando el pulsador correspondiente. Para
consultar los valores del contador y para conectar y desconectar el piloto se utilizará igualmente
un proceso específico.
Como puedes ver, no es difícil servirse de una variable para varios procesos. Por un lado, puedes
enviar instrucciones a una variable desde varios procesos; por otro, puedes utilizar el valor de una
variable en varios procesos. Por eso las variables también sirven para intercambiar información
entre procesos.
El director del museo está tan entusiasmado con tu fantástico contador de visitantes que
enseguida te pide que le soluciones otro problema: el museo ha abierto una nueva exposición
pero, como todos los visitantes quieren contemplar esta novedad, hay tanto gentío que es
imposible ver nada. Por eso el director quiere limitar a 10 el número de visitantes simultáneos de
la exposición. El director ha colocado un torno en cada entrada y cada salida de la exposición. El
torno de la entrada puede bloquearse electrónicamente. Ahora lo único que necesita es un
experto programador. ¡Y ese eres tú!
Intenta desarrollar con ROBO Pro el programa descrito. Funciona básicamente como el contador
de visitantes. Simularás el bloqueo electrónico de la entrada con una lámpara roja conectada a M1
que se enciende en el momento en que haya 10 personas visitando la exposición.
El panel de control es, de primeras, una superficie vacía de color gris. En esta
superficie colocas los mensajes y los elementos de mando, que encontrarás en
la ventana de grupos de elementos, en la opción Elementos de control. Entre
los elementos de mando encontrarás botones pulsadores, reguladores etc.
Entre los mensajes encontrarás mensajes de texto, lámparas de alarma e
indicaciones con punteros giratorios.
57
E
ROBOPro
Como ves, un elemento de comando puede usarse también para enviar una instrucción
simultáneamente a dos variables. La variable Total no contiene las instrucciones - 1, dado que las
líneas naranjas transmiten las instrucciones solamente en el sentido de la flecha. Las
instrucciones + 1, en cambio, se transmiten a ambas variables. Pero aquí solamente lo indicamos
como ejemplo. Por regla general es más sencillo y más claro utilizar un segundo elemento de
comando.
Consejo: Cuando se bifurcan las líneas naranjas, a menudo es más práctico dibujar las
líneas de fin a principio. Así, si en el ejemplo superior quieres dibujar la línea hacia la variable
Total, haz clic primero sobre la entrada de la variable Total y después ve trazando la línea
hacia atrás hasta llegar al punto de bifurcación. Si por el contrario quieres empezar una línea
naranja en otra línea naranja ya existente, debes hacer doble clic con el botón izquierdo del
ratón sobre el punto en el que debe empezar la nueva línea.
58
E
ROBOPro
El programa aún no es perfecto: falta todavía un interruptor que ponga a cero el contador. Pero
para generarlo no queremos utilizar un pulsador corriente, sino un botón que podamos pulsar
desde dentro del panel de control.
59
E
ROBOPro
60
E
ROBOPro
Mientras que el botón 0000 esté pulsado, se enviará al contador total una instrucción = 0, que
pone el contador precisamente a 0.
5.4 Temporizador
Después de tus éxitos, el director ya no sabe qué hacer sin ti y te nombra asesor informático del
museo. Un cargo de esta entidad es un gran honor, como es natural, pero también conlleva
mucho trabajo: en el museo hay muchos modelos que se mueven mediante la pulsación de un
botón. El caso es que muchas de las personas que van a ver el museo pulsan los botones tantas
veces que los modelos se calientan y acaban continuamente en el taller. Ahora el director quiere
que los modelos estén en marcha cuantas veces se pulse el botón, pero como máximo durante 30
segundos cada vez. Una vez que el modelo haya estado en marcha, debe hacerse una pausa de
15 segundos antes de poder reconectarlo de nuevo.
Pues no es tan difícil, pensarás: unos tiempos de espera, unas bifurcaciones de programa y listo.
¡Inténtalo! No tardarás en descubrir que no es tan fácil. Y no lo es por dos razones:
• Durante el intervalo de 30 segundos, el programa debe consultar al botón para averiguar si
el botón ha sido soltado ya antes del transcurso de los 30 segundos. Vale, es cierto: esto
puede solucionarse con dos procesos que se desarrollen al mismo tiempo (ver sección 5.2
Variables y varios procesos, página 56).
• Si un visitante soltara el botón después de 5 segundos y lo pulsara de nuevo después de 15
segundos, el tiempo de espera de 30 segundos tendría que iniciarse de nuevo. Pero el
tiempo de espera transcurrido sería solamente de 5 + 15 = 20 segundos, y con ello aún
estaría activo. Ni siquiera con procesos de desarrollo en paralelo se puede reiniciar un
tiempo de espera. Quizás funcionaría con dos tiempos de espera en tres procesos de inicio
alternativo, pero eso ya te causaría unos quebraderos de cabeza espantosos.
61
E
ROBOPro
62
E
ROBOPro
En la línea superior verás un elemento de motor del grupo Elementos básicos. En la segunda
línea está ilustrada la combinación de un elemento de comando del grupo Instrucciones y un
elemento de motor del grupo Entradas, Salidas, que tiene exactamente el mismo efecto.
Realmente los elementos superiores no son más que abreviaciones o simplificaciones de las
combinaciones de la línea inferior. Ambas envían una instrucción derecha, izquierda o detener al
motor M1.
Lo mismo funciona también para la consulta de pulsadores:
En la línea superior verás de nuevo elementos del grupo Elementos básicos. En la línea inferior
encontrarás una combinación de una entrada digital y un elemento del grupo Bifurcación,
63
E
ROBOPro
Esperar... Encontrarás el elemento naranja Entrada digital igual que el elemento de motor, en el
grupo Entradas, Salidas.
Con este truco puedes separar la lógica de un desarrollo de programa y las entradas y salidas.
Pero todavía falta algo. Si los elementos de motor y de pulsadores deben estar en el programa
principal y las instrucciones en un subprograma, debería haber un modo de unir los pulsadores y
los elementos de motor con el subprograma. Encontrarás los elementos de conexión necesarios
para hacerlo en el grupo Subprograma I/O.
Mediante una entrada de comando puedes enviar instrucciones desde el
exterior a un subprograma. El elemento de entrada digital (pulsador) envía a
través de la línea naranja su nuevo valor siempre que varíe el estado de la
entrada (con lo que se llama una "instrucción ="). En el cuadro de diálogo del
elemento puedes darle nombre a la entrada.
Mediante una salida de comando puedes enviar instrucciones desde un
subprograma hacia el exterior. Así podrás, por ejemplo, enviar las
instrucciones izquierda, derecha y detener desde un subprograma a un motor.
También en este elemento puedes introducir un nombre en el cuadro de
diálogo.
Ya lo tienes todo articulado para proceder con tu temporizador múltiple de modelo con
subprogramas:
64
E
ROBOPro
por elementos de comando. Ambos envían sus instrucciones a la salida de comando del
subprograma Motor.
El subprograma Tiempo es consultado cuatro veces en el Programa principal. La entrada de
comando del subprograma Pulsador ha creado automáticamente la conexión naranja P en el
símbolo verde del subprograma de la parte izquierda. A través de la salida de comando del
subprograma Motor se ha producido la conexión M en la parte derecha. La conexión P del
símbolo del subprograma se une con el pulsador (de I1 a I4) correspondiente. En la conexión M
se conectará el motor M1 a M4 que corresponda. De esta manera cada consulta del
subprograma Tiempo consultará otro pulsador y activará otro motor.
Intenta copiar el subprograma superior y el programa principal y pruébalos. Primero debes dibujar
el subprograma, puesto que de otra manera no podrás insertar el subprograma en el programa
principal. Si tienes problemas con el subprograma, puedes consultar otra vez el capítulo 4 Nivel 2:
Trabajar con subprogramas, página 29.
65
E
ROBOPro
Para probar el programa sería útil reducir el tiempo del ciclo de 5 minutos a unos segundos.
Seguramente te preguntarás ahora cómo podrás leer en el listado los valores guardados. Para ello
hay dos posibilidades: puedes leer los valores como si se tratase de una variable normal y
corriente y procesarlas a continuación en tu programa. Dado que el listado contiene varios
elementos, eliges primero en la entrada de datos izquierda con la denominación I el número de
elementos que quieras leer. Entonces saldrá el valor que tiene ese elemento en la salida de datos
D de la parte derecha.
Pero ROBO Pro también puede guardar todos
los valores del listado en un archivo de tu
ordenador que más adelante podrás procesar
(por ejemplo en Excel). Dado que en el caso
presente solamente deseas mirar y comparar
las luminosidades y temperaturas grabadas,
seguramente esta opción sería más práctica.
ROBO Pro guarda los valores en lo que se
llama un archivo CSV (comma separated
values = valores separados por comas). Los
archivos CSV son archivos de texto que
contienen una o más columnas con una serie
de datos cada una. Así, puedes guardar varias
series de mediciones (como temperatura y
luminosidad) en las distintas columnas de un
archivo CSV. Las columnas están separadas
por comas. En los países en los que 0,5 se
escribe con coma y no 0.5 con punto (por
ejemplo, en España), también es frecuente
que se utilice como signo de separación de las
columnas también un punto y coma (;). Si
esto te causa problemas a la hora de exportar archivos CSV de ROBO Pro y (por ejemplo)
Microsoft Excel, puedes cambiar en la ventana de propiedades del listado el signo de separación
de columnas.
66
E
ROBOPro
Puedes configurar el nombre del archivo CSV y la columna en la cual debe guardarse el contenido
de un listado en la ventana de propiedades del listado, en Guardar archivo CSV. Se guardarán
los datos si sales del programa en modo online o si seleccionas en el menú Archivo la opción
Guardar archivo CSV mientras el programa esté en marcha (modo online o descarga). En el
modo de descarga puedes separar la ROBO Interface para grabar datos del PC y después
conectarla de nuevo para guardar.
Una vez que hayas ejecutado el programa de anterior en modo online, puedes abrir el archivo de
datos .CSV, creado con ROBO Pro, en Microsoft Excel u otra hoja de cálculo. Si no tienes un
programa de este tipo, también puedes utilizar el editor de Windows (Bloc de notas.exe), que
encontrarás casi siempre en el menú de Inicio de Windows, en Accesorios.
Mientras el programa se ejecuta en modo online, puedes ver los datos en un listado haciendo clic
con el botón derecho del ratón sobre el elemento del listado.
5.7 Operadores
El programa que has creado para grabar luminosidad y temperatura ha funcionado bien, pero la
grabación muestra que la temperatura de la sala de exposición del museo no tiene nada que ver
con el sol. Resulta que unos visitantes han confundido el climatizador de la sala de exposición con
un control de un modelo y se ha dedicado a darle al botón del aparato sin parar. ¡No es de
extrañar que la temperatura de la sala de exposición se haya vuelto loca!
Pero este problema puede solucionarse fácilmente: colocando con un candado de combinación
electrónico. El candado de combinación debe tener un teclado con teclas de 1 a 6. Si se
introducen correctamente 3 cifras seguidas, el candado con teclado debe desbloquear mediante
un imán la tapa del climatizador.
A primera vista ese candado con teclado es muy sencillo: el programa
espera hasta que se hayan pulsado las teclas correctas en el orden
correcto. A la derecha puede verse ese tipo de programa para la
combinación 3-5-2. A segunda vista, sin embargo, este programa tiene
un problema: el candado puede descifrarse fácilmente pulsando 3 veces
seguidas todas las teclas de 1 a 6, puesto que de este modo se habrá
pulsado sea como sea la tecla correcta. Como ya dijo Albert Einstein:
"Hay que hacer las cosas lo más fáciles posibles, pero no más“. Así que
el programa no solamente debe consultar si se pulsan las teclas
correctas, sino también si se ha pulsado una tecla incorrecta. Entonces
el programa tendrá este aspecto:
67
E
ROBOPro
68
E
ROBOPro
69
E
ROBOPro
70
E
ROBOPro
En el Nivel 3 has explorado en detalle cómo procesar datos con ayuda de comandos y, por
ejemplo, controlar motores. Para ello ha empleado únicamente comandos predeterminados, como
la orden = o las instrucciones de derecha, izquierda o detención. En el Nivel 4 el envío de
comandos por conexiones naranjas y la utilización de comandos propios, se combinan ahora entre
sí.
71
E
ROBOPro
72
E
ROBOPro
73
E
ROBOPro
74
E
ROBOPro
75
E
ROBOPro
• Quieres utilizar en tu programa, que ha sido escrito para un ROBO TX Controller con más de
3 extensiones, con varios ROBO Interface.
Todo esto puedes hacerlo muy fácilmente cambiando la asignación de la interfase en la ventana
de propiedades del programa principal:
76
E
ROBOPro
• En Interfase puedes indicar que interfaz quiere utilizar. Si conectas un ROBO Interface
antiguo o una interfaz inteligente al puerto serie, el programa podrá reconocer
automáticamente de qué interfaz se trata (selección automática).
• La parte derecha de la ventana solamente es importante si tienes simultáneamente
diferentes interfaces conectadas al bus USB. Si en Puerto haces clic en USB, puedes
seleccionar en Listado de interfaces USB una de las interfaces.
Atención: A diferencia del antiguo ROBO Interface se conecta siempre sólo un ROBO TX
Controller a través de USB o Bluetooth a un PC. A este así llamado maestro puedes conectar
hasta 8 ROBO TX Controller como así llamadas extensiones.
Si quieres trabajar con varios ROBO interfaces en el bus USB, primero tienes que asignar un
número de serie propio a cada interfaz. Por defecto todas las interfaces han sido
suministradas con el mismo número de serie para evitar problemas a la hora de cambiarlas,
sin embargo el sistema operativo Windows reconoce solamente interfaces con números de
serie distintos. Para saber más sobre esto, consulta la sección 7.5 Cambiar el número de
serie en el ROBO Interface, página 78.
77
E
ROBOPro
Prueba
78
E
ROBOPro
Atención: Al cambiar el número de serie es posible que haya que reinstalar el controlador,
por lo que necesitarás derechos de administrador si estás trabajando en Windows. Si
cambias un número de serie pero después no puedes reinstalar el controlador porque no
tienes derechos de administrador, te será imposible acceder a la interfaz a través del USB. Si
esto ocurre, desconecta la interfaz de la alimentación y vuelve a conectarla mientras pulsas
el botón Port. La interfaz se iniciará entonces con el número de serie 1 y volverá a ser
reconocida por el controlador ya instalado. Eso sí: esto no cambia el número de serie
permanentemente, de modo que, la próxima vez que se reinicie, el número de serie estará
configurado como antes a no ser que vuelvas a pulsar Port. Para cambiar el número de serie
permanentemente, debes proceder como se explica arriba.
79
E
ROBOPro
8.1.1 Inicio
Un proceso de un programa empezará siempre con un elemento de inicio. Si
este elemento de programa falta al principio, el proceso no podrá ejecutarse. Si
un programa contiene varios procesos, cada uno de ellos deberá empezar con
su propio componente de inicio. De ese modo los distintos procesos se iniciarán
simultáneamente.
Un elemento de inicio no tiene propiedades susceptibles de ser modificadas. Por eso, al contrario
de lo que ocurre con la mayoría de los elementos, no se abrirá ninguna ventana de propiedades al
hacer clic con el botón derecho del ratón en el elemento.
8.1.2 Fin
Si quieres salir de un proceso, debes unir la salida del último elemento con el
elemento final. También te permite este elemento salir de un proceso en
distintos puntos. Existe la posibilidad de unir las salidas de distintos elementos
con un único componente final, pero también puede suceder que un proceso se
ejecute como bucle sin fin y que no tenga ningún elemento final.
Un elemento final no tiene propiedades susceptibles de ser modificadas. Por eso no se abre, al
contrario de lo que pasa con la mayoría de los elementos, ninguna ventana de propiedades al
hacer clic con el botón derecho del ratón en el componente.
80
E
ROBOPro
81
E
ROBOPro
82
E
ROBOPro
83
E
ROBOPro
conectas una lámpara en una salida de motor (ver consejo en salida de lámpara) puedes
encenderla o apagarla.
• Finalmente puedes indicar también una Velocidad o una Intensidad entre 1 y 8. 8 es el
valor mayor de velocidad, luminosidad o fuerza magnética; 1 es el valor menor. Durante las
funciones de detener o desconectar naturalmente no necesitas indicar una velocidad.
Tienes aquí una lista de los símbolos de algunas acciones e imágenes:
Consejo: A veces un motor se acciona en una única dirección; es el caso, por ejemplo, de
una cinta transportadora. Si es así puedes utilizar una salida de lámpara para el motor, lo
que te permite ahorrar una conexión.
84
E
ROBOPro
• En Salida de motor 1/2 puedes seleccionar las salidas de motor sobre la cual la acción tiene
que ser efectiva. Según la acción, puedes seleccionar uno o dos motores.
• En Interfase / Extensión puedes seleccionar, si quieres emplear una salida del maestro o
una salida del módulo de extensión. Cuando la acción controla 2 motores, ambas salidas de
motor deben estar conectadas a la misma interfaz. Mayores detalles sobre ello las obtendrá
en el capítulo 7 Activar varias interfaces en página 75.
• En Dirección 1/2 puedes ajustar en qué dirección se deben mover los motores.
• En Velocidad puedes indicar la velocidad para los motores. Cuando se controlan dos
motores, la velocidad de ambos es la misma.
• En Distancia finalmente puedes indicar la cantidad de impulsos de codificador que debe
moverse el o los motores.
Otras indicaciones para el empleo de este elemento la obtendrás en la sección 12.6.1 Motor de
codificador (nivel 1) en página 147.
Consejo: Si quieres conectar solamente cuatro lámparas o motores, puedes utilizar una
salida de motor también para las lámparas. Resulta más práctico, dado que de esta manera
podrás conectar ambas conexiones de la lámpara directamente a la salida de la interfaz y no
tendrás que unir todos los polos negativos separadamente con una hembrilla de masa.
85
E
ROBOPro
• Finalmente puedes indicar también una Intensidad entre 1 y 8. 8 es el número mayor para la
luminosidad o la fuerza magnética, 1 es el número menor. Si vas a desconectar,
naturalmente no necesitarás indicar una intensidad.
Tienes aquí una lista de símbolos de las distintas acciones que se pueden ejercer sobre la
lámpara:
86
E
ROBOPro
Haciendo clic con el botón derecho del ratón en el elemento se mostrará la ventana de
propiedades:
• En Tipo de impulso puedes seleccionar de qué modo deben contarse los impulsos. Si
seleccionas 0 -> 1 (ascendente), el elemento espera hasta que el estado de la entrada haya
cambiado de abierto a cerrado (0->1) tantas veces como hayas indicado en Número de
impulsos. En 1 -> 0 (descendente) el elemento espera hasta que el estado de la entrada
haya cambiado de cerrado a abierto tantas veces como se haya indicado. Pero con las
ruedas dentadas de impulsos es muy usual utilizar la tercera opción: el elemento cuenta
tanto los cambios 0 -> 1 como los cambios 1 -> 0, de modo que se cuentan 8 impulsos por
cada giro de una rueda dentada de impulsos.
• En Entrada digital puedes ajustar que entradas deben ser consultadas. Con I1..I8
seleccionas una de las entradas universales. Con C1D..C4D seleccionas una de las
entradas de contador. En este caso sin embargo no se emplea un contador rápido de
hardware. La frecuencia de conteo máximo sin embargo es aún de algunos 100 Hz.
• En Interfase / Extensión puedes seleccionar si quieres utilizar una entrada de la interfaz o
una entrada del módulo de extensión o una segunda interfaz. Encontrarás más información
en el capítulo 7 Activar varias interfaces en página 75.
• En Tipo de sensor puedes seleccionar el sensor conectado en la entrada. En entradas
digitales mayormente se conectan pulsadores, sin embargo frecuentemente también
fotoresistores o contactos Reed. ROBO Pro ajusta automáticamente el modo de entrada de
87
E
ROBOPro
8.1.12 Sonido
Con el elemento Sonido es posible reproducir sonidos guardados
como archivo .wav en el ROBOTICS TXT Controller. Si haces clic en el
elemento con la tecla derecha del ratón, aparece la ventana de
propiedades:
• En Sonido puedes seleccionar
uno de los sonidos disponibles. En
el TXT Controller es posible
probar con antelación los sonidos
mediante el menú del display táctil,
en Prueba – Sonido.
• Si la casilla de Aguarde hasta
que el sonido haya finalizado
está marcada, el flujo de
programa solo continuará cuando el sonido se haya reproducido por completo.
• En la repetición de conteo puedes determinar cuántas veces sucesivas debe emitirse el
sonido. Para una repetición ilimitada, selecciona el valor 0.
88
E
ROBOPro
89
E
ROBOPro
90
E
ROBOPro
91
E
ROBOPro
92
E
ROBOPro
93
E
ROBOPro
2
8.2.7 I C escritura (Nivel 4)
Este elemento envía órdenes o datos a la interfaz I2C del TX Controller.
La interfaz I2C está disponible en la conexión EXT2. La interfaz
estándar I2C se emplea para conectar también sensores y actuadores
de otros fabricantes (no de fischertechnik) al TX Controller. El empleo
de I2C requiere experiencia en la manipulación con componentes
electrónicos y los instrumentos de medición adecuados.
En la ventana de elementos encontrarás bajo subprogramas Biblioteca / I2C para módulos I2C
diferentes, frecuentemente empleados. Puedes abrir directamente los archivos de biblioteca
también directamente como programa ROBO Pro. El programa principal de las bibliotecas
contiene un programa de prueba para el módulo correspondiente. Los archivos de biblioteca los
encontrarás en el índice de instalación ROBO Pro bajo Biblioteca\I2C.
El elemento I2C escritura envía un byte de direccionamiento y entre 1 y 4 bytes de datos a través
de la interfaz I2C. Primero se envían los 7 bit de la dirección del dispositivo y el bit de escritura. A
continuación se envía una subdirección de 0-2 Bytes de longitud y finalmente 1 o 2 Bytes de datos.
Desde el punto de vista del protocolo I2C no existe ninguna diferencia entre subdirección y datos.
Muchos módulos I2C requieren sin embargo que tras la dirección del dispositivo primero se envíe
una subdirección y sólo a continuación los datos. El protocolo exacto resulta de la ficha de datos
de un módulo I2C.
94
E
ROBOPro
• Bajo Velocidad puedes seleccionar la sincronización I2C. Esta puede ser de 100kHz o
400kHz. Si todos los módulos I2C conectados soportan 400kHz, debes emplear 400kHz, en
caso contrario 100 kHz.
• Bajo Tratamiento errores puedes seleccionar que es lo que sucede cuando el módulo I2C
conectado no puede procesar los datos enviados. Tienes la elección entre Repetir hasta
tener éxito, Repetir 10 veces y Cancelar inmediatamente. En las últimas dos opciones el
elemento recibe abajo a la derecha una salida de error adicional.
• Cuando en Mantener abierto se ha colocado un ganchillo, el elemento no envía al finalizar
ninguna parada a través del bus I2C. De esta manera se pueden enviar o leer más datos con
otro elemento I2C escritura I2C lectura. Siempre que no se cambie entre lectura y escritura o
se ejecute una orden de lectura con subdirección, la dirección del dispositivo de los
siguientes elementos I2C no se envía nuevamente. Ante un cambio entre escritura y lectura
se ejecuta un reinicio en el bus I2C, ninguna secuencia parada-inicio. El bus I2C permanece
reservado para el proceso actual, hasta que el proceso actual ejecute un elemento I2C sin
dejar abierta la opción. Otros procesos son bloqueados durante todo el tiempo, si emplea
elemento I2C.
2
8.2.8 I C lectura (Nivel 4)
Este elemento lee datos de la interfaz I2C del TX Controller. Las
observaciones para el elemento I2C escritura, también valen para este
elemento.
Cuando se emplea una subdirección, el elemento I2C lectura envía
primero un Byte de dirección en modo de escritura y a continuación la subdirección de 1 o 2 Byte
de longitud. A continuación el elemento ejecuta un reinicio en el bus I2C, envía nuevamente la
dirección del dispositivo, esta vez en modo de lectura y a continuación lee 1-2 Bytes de datos. Si
no se emplea ninguna subdirección, el Byte de dirección se envía inmediatamente en el modo de
lectura y a continuación se leen los datos.
95
E
ROBOPro
• Bajo Longitud datos puedes seleccionar, si el elemento envía datos de 8 o 16 bit al módulo
I2C. Con datos de 16 bits puedes seleccionar como en la subdirección si se transmite
primero el Byte más significativo (MSB) o en Byte menos significativo (LSB).
• Bajo Velocidad puedes seleccionar la sincronización I2C. Esta puede ser de 100kHz o
400kHz. Si todos los módulos I2C conectados soportan 400kHz, debes emplear 400kHz, en
caso contrario 100 kHz.
• Bajo Tratamiento errores puedes seleccionar que es lo que sucede cuando el módulo I2C
conectado no puede procesar los datos enviados. Tienes la elección entre Repetir hasta
tener éxito, Repetir 10 veces y Cancelar inmediatamente. En las últimas dos opciones el
elemento recibe abajo a la derecha una salida de error adicional.
• La opción Mantener abierto tiene el mismo efecto que en el elemento I2C escritura
96
E
ROBOPro
que es introducido en el programa de orden superior, habrá una clavija de conexión para cada
entrada de comando de subprograma en la parte izquierda. Las conexiones del símbolo tienen el
mismo orden (de arriba a abajo) que las entradas de comando de subprograma del subprograma.
El empleo de este elemento se explica detalladamente en el capítulo 5.5 Entradas de comando
para subprogramas en página 62.
Ventana de propiedades
• En Nombre puedes introducir el nombre
de la entrada de comandos. En el
símbolo verde de subprograma, sólo se
muestran los 2 primeros caracteres.
• En Tipo de datos puedes seleccionar,
si el valor de los comandos entrantes es
un número entero o es una cifra de
coma flotante. Véase también capítulo
13 Cálculo con cifras decimales en
página 152.
• En Modo de transmisión (a partir de
nivel 4) puedes ajustar, si la entrada sólo comando = o cualquier comando. Cuando en la
llamada del subprograma se conectan a la entrada de variables o a las entradas de interfaz,
sólo debes seleccionado comandos =. En este caso la entrada del subprograma memoriza el
último valor transmitido, de manera tal que el valor correcto está inmediatamente a
disposición al iniciar el subprograma. Si seleccionas varios comandos, también puedes
enviar a la entrada comandos como Detener o comandos propios. Estos comandos sólo se
encaminan al subprograma cuando este último está activo. Esto es conveniente, cuando el
subprograma por ejemplo contiene un elemento de motor, y tú quieres enviar comandos a
este elemento desde el exterior. Más sobre ello encontrarás en la sección 6.3 Enviar
cualquier comando a subprogramas en página 74.
97
E
ROBOPro
Que el rango de valores de la variable se encuentre entre dos números tan poco redondos como -
32.767 y 32.767 se debe a que el ordenador cuenta en sistema binario y no en sistema decimal,
98
E
ROBOPro
como hacemos nosotros. En el sistema binario el número 32.767 es un número más "lógico" para
ser fijado como límite, algo así como si fuese 9.999 en el sistema decimal. Pero nosotros
podemos despreocuparnos: el ordenador se encarga de convertir todos los números del sistema
binario al sistema decimal. Solamente tenemos conciencia de que usa un sistema de cálculo
diferente al ver los valores máximos de las variables y si durante el procesamiento se produce un
desbordamiento.
Ventana de propiedades para variables
• En Nombre puedes introducir un nombre para la variable.
• En Valor inicial puedes introducir el valor inicial de la
variable. La variable mantiene este valor hasta que recibe
un nuevo valor mediante el comando =, + ó –.
• En Tipo de datos puedes seleccionar, si el valor de los
comandos entrantes es un número entero o es una cifra de
coma flotante. Véase también capítulo 13 Cálculo con cifras
decimales en página 152.
• El punto Vida útil es interesante solamente para variables
de subprogramas y se explicará más detalladamente en la
siguiente sección, Variable local. Con las variables de
programa principal, ambas configuraciones tienen el mismo
efecto.
99
E
ROBOPro
8.4.3 Constante
Al igual que una variable, una constante tiene un valor, pero este valor no puede
cambiarse mediante el programa. Puedes, por ejemplo, unir una constante con
una entrada de datos de un símbolo del subprograma si el subprograma debe
utilizar siempre el mismo valor. Las constantes también resultan muy prácticas al trabajar con
operadores. Encontrarás un ejemplo ilustrativo al final de la sección 5.7 Operadores, página 67.
Ventana de propiedades para constante:
• En Tipo de datos puedes seleccionar, si el valor de los
comandos entrantes es un número entero o es una cifra de
coma flotante. Véase también capítulo 13 Cálculo con cifras
decimales en página 152.
• En Valor puedes introducir el valor de la constante.
100
E
ROBOPro
quieres saber cuánto tiempo habrá transcurrido entonces, debes restar el valor actual del
temporizador del valor inicial.
Ventana de propiedades para variables de temporizador
• En Retardo puedes fijar el valor inicial para la variable de
temporizador. Normalmente se introduce aquí 0 y se pone el
valor de la variable de temporizador con un comando = al
momento adecuado. Pero si el temporizador debe ponerse en
marcha durante el inicio del programa o de un subprograma,
puedes introducir aquí el valor correspondiente.
• En Unidad de tiempo puedes seleccionar el tamaño de los
ciclos en los que la variable de temporizador va bajando
hacia atrás.
• En Tipo de variable de temporizador puedes configurar si
el temporizador es una variable global o una variable local
(ver sección 8.4.2 Variable local, página 99).
8.4.5 Listado
El elemento Listado corresponde a una variable que puede memorizar no
solamente un valor, sino varios. El número máximo de valores que pueden
guardarse en un listado se fija en la ventana de propiedades del elemento.
Puedes añadir valores en la parte inicial del listado o eliminarlos de la parte final.
Además puedes cambiar o leer cualquier valor del listado e intercambiar cualquier valor del listado
con el valor de la primera posición. No se puede insertar o borrar directamente un valor a la mitad
o al principio del listado, pero se puede escribir un subprograma que ejecute esta función.
Se utilizan las siguientes funciones de listado enviando comandos al elemento en la entrada ES
(de escribir). Pueden enviarse los siguientes comandos a la entrada ES:
A través de la entrada I (de índice) puede seleccionarse un determinado elemento del listado.
Para ello envías un comando = a la entrada I con el número deseado de elementos. El primer
101
E
ROBOPro
elemento tendrá el número 0. Puedes asignar un nuevo valor al elemento seleccionado mediante
la entrada I enviando el nuevo valor deseado con el comando = a la entrada ES.
El elemento seleccionado mediante de la entrada I puede consultarse mediante la salida LR (de
lectura de retorno). Si se cambiara la entrada I o el valor de la entrada de datos seleccionada a
través de la entrada I, el listado devolverá el valor actual de la entrada de datos seleccionada a los
elementos conectados en la salida LR.
A través de la salida I puede consultarse si el índice creado en la entrada I será válido. Si N es el
número de los elementos, debe crearse en la entrada I un valor entre 0 y N-1. Si eso es el caso, la
salida I enviará un comando = con valor N; si no es así, enviará el comando con valor 0 a todos
los elementos conectados.
Ventana de propiedades para listados
• Bajo Nombre puedes introducir un
nombre para tu lista
• En Tamaño máximo puedes
introducir el número máximo de
elementos del listado. Este tamaño no
puede ser sobrepasado por los
comandos Añadir.
• En Tamaño inicial se introduce el
número de elementos con los que el
listado debe estar ocupado
previamente al inicio.
• En Lista de los valores iniciales
puedes introducir los valores iniciales
con los cuales el listado debe estar
ocupado previamente. Con los
botones a la derecha (junto al listado)
puedes editar el listado.
• En Cargar desde archivo .CSV
puedes seleccionar un archivo .CSV
compatible con Excel desde el cual el listado tomará sus valores. En el campo central de
selección puedes seleccionar la columna del archivo .CSV pertinente. El archivo se carga
inmediatamente y se muestra en Lista de los valores iniciales. Si inicias el programa o
ejecutas una descarga, ROBO Pro intentará de volver a cargar los valores actuales desde el
archivo. Si no lo consigue, se utilizarán los valores guardados en el listado de valores
iniciales.
• En Guardar en archivo .CSV puedes indicar un archivo en el cual debe guardarse el
contenido del listado después de finalizar el programa. Solamente funcionará, sin embargo,
en modo online y solamente para listados estáticos (ver próximo punto). El contenido del
listado se escrito en la columna del archivo seleccionada. En Separador de columnas
puedes seleccionar si debe separarse cada columna del listado mediante coma o punto y
coma. En los países en los que se escribe 0.5 con punto, se utiliza normalmente una coma
como carácter de separación de columna. Dado que en España 0,5 se escribe con coma, se
utiliza también frecuentemente el punto y coma como carácter de separación de columna. Si
surgen problemas durante la importación de un archivo CSV de ROBO Pro CSV, por ejemplo
en Microsoft Excel, intenta utilizar otro carácter de separación de columnas.
102
E
ROBOPro
• En Listar tipo de datos puedes seleccionar, si la lista debe contener números enteros o
cifras de coma flotante. Véase también capítulo 13 Cálculo con cifras decimales en página
152.
• En Listar tiempo de vida útil de datos puedes configurar si los elementos listados son una
variable global o una variable local (ver sección 8.4.2 Variable local, en página 99). Para
listados grandes (tamaño máximo más de 100 elementos) es recomendable el tipo Global,
porque se ofrece más memoria para variables globales que para variables locales.
103
E
ROBOPro
8.5.1 = ( Asignar )
El comando = asigna un valor al receptor. Generalmente se utiliza para
asignar un valor a variables, variables de temporizador, elementos de listado
o salidas de panel de control.
Pero el comando = no es enviado solamente por elementos de comando,
sino por todos los elementos de programa con salidas de datos. Todos los elementos envían
comandos = si se cambia el valor de una salida. Por ejemplo, un elemento de entrada digital envía
un comando = 1 cuando se cierra un pulsador de la entrada, y un comando = 0 cuando se abre el
pulsador. Pero en estos casos no se utiliza un elemento de comando; en realidad, podría decirse
que estos elementos de programa con salidas de datos ya llevan incorporados los elementos de
comando =.
Todas las entradas de datos de elementos de programa ROBO Pro pueden editar como mínimo el
comando =. Así que el comando = es el comando más utilizado en ROBO Pro.
8.5.2 + ( Más )
El comando + se envía a variables o variables de temporizador para
aumentar el valor de la variable. Con el comando + puede transmitirse
cualquier valor, que se añadirá a la variable. Dado que el valor transmitido
con el comando también puede ser negativo, el valor comando también sirve
para disminuir la variable. Ver sección 8.4.1 Variable, página 98 y sección
8.4.4 Variable de temporizador, página 100.
8.5.3 – ( Menos )
El comando – se utiliza de forma parecida al comando + que se acaba de
describir. La única diferencia es que el valor transmitido con el comando se
resta del valor de la variable.
8.5.4 Derecha
El comando Derecha se envía a elementos de salida de motor para conectar
el motor con sentido de giro a la derecha. Ver sección 8.7.4 Salida de motor,
página 112.
El valor es una velocidad de 1 a 8.
8.5.5 Izquierda
El comando Izquierda se envía a elementos de salida de motor para
conectar el motor con sentido de giro a la izquierda. Ver sección 8.7.4 Salida
de motor, página 112.
El valor es una velocidad de 1 a 8.
104
E
ROBOPro
8.5.6 Detener
El comando Detener se envía a elementos de salida de motor para detener
el motor. Ver sección 8.7.4 Salida de motor, página 112.
Con el comando detener no se transmite valor alguno.
8.5.7 ON
El comando ON se envía a elementos de salida de lámpara para encenderla.
Ver sección 8.7.5 Salida de lámpara, página 113. Un comando ON también
puede enviarse a elementos de salida de motor. Corresponde al comando
derecha. Para motores, sin embargo, sería mejor utilizar el comando
derecha, dado que así el sentido de giro es directamente reconocible.
El valor es la luminosidad o intensidad de la luz, de 1 a 8.
8.5.8 OFF
El comando OFF se envía a elementos de salida de lámpara para apagarla.
Ver sección 8.7.5 Salida de lámpara, página 113. El comando OFF puede
también enviarse a elementos de salida de motor. Corresponde al elemento
detener.
Con el comando OFF no se transmite valor alguno.
8.5.9 Texto
El comando Texto es un comando especial, dado que no envía ninguna
instrucción con ningún número, sino un texto, al elemento conectado.
Pero solamente hay un elemento de programa que puede trabajar con
el comando texto: un mensaje de texto en un panel de control.
Encontrarás más información en la sección 9.1.2 Mensaje de texto
página 130.
105
E
ROBOPro
106
E
ROBOPro
Nota: Este elemento no existe para cifras de coma flotante, debido a que estas últimas están
afectadas de errores de redondeo y por esta razón no es conveniente consultar, si dos
valores son iguales. Una comparación de 2 vías puedes ejecutarla con una bifurcación del
programa. Véase sección 8.6.1 Bifurcación ( con entrada de datos ) en página 106.
8.6.3 Comparación
Con el elemento de programa Comparación pueden compararse los
valores creados en las dos entradas de datos A y B. Dependiendo de
si A es menor que B, de si A es mayor que B o de si A es igual a B,
el elemento bifurcará hacia la salida derecha, izquierda o central. La
utilización más frecuente para ello es la comparación de un valor
nominal con un valor real. Puede hacerse, por ejemplo, que un motor
gire a la izquierda, a la derecha o se detenga En función de cuál sea
el valor real respecto del valor nominal.
El elemento de programa Comparación no tiene ninguna opción de configuración y por ello
tampoco ninguna ventana de propiedades.
Nota: Este elemento no existe para cifras de coma flotante, debido a que estas últimas están
afectadas de errores de redondeo y por esta razón no es conveniente consultar, si dos
valores son iguales. Una comparación de 2 vías puedes ejecutarla con un operador de
comparación (véase sección 8.8.2 Operadores comparativos (operadores relacionales) en
página 118) y una bifurcación del programa. Véase sección 8.6.1 Bifurcación ( con entrada
de datos ) en página 106.
107
E
ROBOPro
108
E
ROBOPro
109
E
ROBOPro
110
E
ROBOPro
111
E
ROBOPro
112
E
ROBOPro
Más allá de ello un elemento de motor aún puede recibir comandos del control de motor extendido
(sincronización, distancia, Reset), que se explican en la sección 12.6.2 Controles de motor
extendidos en nivel 3 página 149.
Ventana de propiedades para elementos de motor:
• En Salida de motor puedes seleccionar cuál de las
conexiones de salida de la interfaz debe utilizarse. Puedes
escoger las salidas de módulos de extensión en Interfase /
Extensión.
• En Resolución puedes seleccionar si quieres controlar la
intensidad de la salida en 8 pasos (de 1..8) o en 512 pasos
(de 1...512).
• En Interfase / Extensión puedes elegir si quieres utilizar
una salida de la interfaz, una salida de un módulo de
extensión o de una segunda interfaz. Encontrarás más
información en el capítulo 7 Activar varias interfaces, página
75.
• En Imagen puedes seleccionar una imagen del dispositivo consumidor conectado a la
salida. En la mayoría de los casos será un motor, pero también puedes conectar un
electroimán, una válvula magnética o una lámpara a la salida de motor.
113
E
ROBOPro
114
E
ROBOPro
115
E
ROBOPro
116
E
ROBOPro
117
E
ROBOPro
8.8 Operadores
Los elementos de programa de este grupo son los llamados operadores. Los operadores tienen
una o varias entradas de datos de color naranja. Los valores de las entradas de datos son
enlazados a un valor por el operador y en la salida del operador son emitidos por el comando =.
Ventana de propiedades para operadores
Todos los operadores utilizan la misma ventana de
propiedades. La ventana de propiedades también
sirve para transformar un operador en otro.
• En Operación puedes configurar el modo en
que el operador debe enlazar sus entradas. En
las dos siguientes secciones se explicará cada
función.
• En Número entradas puedes configurar cuántas
entradas debe tener el operador.
Si el operador Menos tiene más de dos entradas, se restarán todos los demás valores de entrada
del valor de la entrada A. Si el operador Menos tiene solamente una entrada, el operador invierte
el signo del valor de la entrada.
Si el operador Entre tiene más de dos entradas, se dividirá el valor de la entrada A por todos los
demás valores de entrada.
118
E
ROBOPro
Y O No
A>0 y B>0 A>0 o B>0 A <= 0
Los operadores lógicos interpretan los valores mayores que cero de la entrada como sí o
verdadero y los valores menores o iguales a cero como no o falso. Las entradas digitales
suministran un valor de 0 ó 1, de modo que 0 es interpretado como falso y 1 como verdadero.
El operador Y envía un comando = con valor 1 a los elementos conectados en la salida si el valor
registrado en todas las entradas es verdadero, es decir, si hay un valor > 0. En caso contrario, el
elemento enviará un comando = con valor 0.
El operador O envía un comando = con valor 1 a los elementos conectados en la salida si el valor
registrado es verdadero en una de las entradas como mínimo, es decir, si hay un valor > 0. En
caso contrario, el elemento enviará un comando = con valor 0.
El operador No envía un comando = con valor 1 a los elementos conectados en la salida si el
valor en la entrada es falso, es decir, si hay un valor <= 0. En caso contrario, el elemento enviará
un comando = con valor 0.
La función de los operadores lógicos puede reproducirse también con varios elementos de
bifurcación, pero a menudo es más práctico enlazar varias entradas con operadores.
119
E
ROBOPro
En el número 3 son por ejemplo los bits 0 y 1 están establecidos en 1 porque 20 + 21 = 3. Los
operadores de bit realizan las mismas operaciones que los operadores lógicos, solamente que
sobre cada bit individualmente. Así resulta 3 AND 6 el valor 2, porque el bit 21 es el único, que
está tanto establecido en 3 = 20+ 21 como también en 6 = 21 + 22. Observa que el valor numérico -
32768, en el que sólo el bit 215 está establecido en 1, tiene en ROBOPro un significado especial y
se emplea para errores o nada. Para generar una variable con este valor, introduce simplemente
el valor nada (vacío).
Y O NO Exclusivo Desplazar
O izquierda/derecha
Bit está Bit está Bit está Bit está Los bits en A se
establecido, establecido, establecido, establecido, desplazan en B lugares
cuando está cuando está cuando no cuando está hacia la izquierda (bits
establecido en establecido en está establecido en más elevados) o a la
AyB AoB establecido en A o B pero no derecha (bits más
A en ambos reducidos).
8.8.5 Funciones
Funciones son similares a operadores, sin embargo tienen siempre sólo una entrada. A las
funciones pertenecen las trigonométricas raíz, exponencial y logarítmica.
120
E
ROBOPro
Funciones básicas
abs Valor absoluto: Devuelve para un valor el valor positivo, p.ej. 3,2 de -3,2
sqrt Raíz cuadrada (inglés square root): Devuelve la raíz cuadrada de un valor p.ej.
1,4142... de 2.0
121
E
ROBOPro
122
E
ROBOPro
123
E
ROBOPro
124
E
ROBOPro
125
E
ROBOPro
126
E
ROBOPro
127
E
ROBOPro
128
E
ROBOPro
En el campo gris vacío que se ve debajo puedes proceder a insertar elementos de control. Un
panel de control pertenece siempre al programa principal o al subprograma en el que te
encontrabas en el momento en que creaste el panel de control. Por ello es importante seleccionar
en la barra de subprograma el subprograma correcto antes de crear un panel de control. Casi
siempre se creará el panel de control bajo el Programa principal.
Los paneles de control contienen mensajes y elementos de mando. Con las indicaciones puedes,
por ejemplo, mostrar valores con variables y mensajes de texto. Los elementos de mando, por su
parte, funcionan como pulsadores añadidos o entradas analógicas.
A cada elemento de control insertado en el panel de control corresponde
un elemento Entrada de panel de control (para elementos de mando) o
Salida de panel de control (para indicaciones) del programa. A través de
estos elementos de programa establecerás la conexión entre tu programa y
tu panel de control. Los encontrarás en el grupo de elementos Entradas,
Salidas. Dependiendo del tipo de elemento de mando con el que quieras
unir este elemento de programa, se mostrará un símbolo u otro, pero en el
listado de elementos solamente hay dos elementos: uno para indicaciones y otro para elementos
de mando.
9.1 Indicaciones
Las indicaciones se utilizan de modo similar a las salidas de interfaz. Puedes poner el valor de
una indicación con el comando =.
129
E
ROBOPro
130
E
ROBOPro
Caracteres de Efecto
control
###### Emite el valor de la entrada de datos en forma de un número de 5 cifras +
signo
##.## Emite el valor de la entrada de datos en forma de número de 2 decimales,
con punto de separación.
##,## Emite el valor de la entrada de datos en forma de número de 2 decimales,
con coma de separación.
\c Borra el mensaje y pone el punto de inserción al principio del mensaje
131
E
ROBOPro
9.2.1 Botón
El Botón elemento de mando puede utilizarse como pulsador o interruptor de
fischertechnik conectado en una de las entradas de la interfaz.
El botón es consultado desde el programa por medio de una
Entrada de panel de control. Encontrarás la Entrada de panel de control
en el grupo de elementos Entradas, Salidas.
La entrada de panel de control perteneciente al botón puede conectarse
como una entrada digital de la interfaz a todos los elementos de programa
que dispongan de entrada de datos; por ejemplo, a la Bifurcación. Si el
botón está pulsado, suministra un 1 como valor; en caso contrario, el valor
que devuelve es 0.
132
E
ROBOPro
9.2.2 Regulador
Puedes utilizar el regulador como un potenciómetro conectado en una
entrada analógica de la interfaz. Al contrario que al botón, el regulador
no solamente puede suministrar los valores 0 y 1, sino varios valores
igual que si fuese una entrada analógica. El rango de valor puede
configurarse desde la ventana de propiedades. El regulador puede utilizarse, por ejemplo, para
configurar la revolución del motor de 1 a 8.
El regulador es consultado desde el programa por medio de una entrada
de panel de control. Encontrarás la Entrada de panel de control en el
grupo de elementos Entradas, Salidas.
133
E
ROBOPro
134
E
ROBOPro
10 Funciones de dibujo
ROBO Pro dispone de las tradicionales utilidades de dibujo. Las encontrarás en la ventana de
grupos de elementos, en Dibujo. El subgrupo Formas contiene herramientas de dibujo para
trabajar con diferentes formas geométricas básicas. En el subgrupo Texto encontrarás
herramientas de dibujo de texto para diferentes tamaños de fuente. Los otros subgrupos contienen
funciones para cambiar el color y el grosor de las líneas.
Las utilidades de dibujo te permiten ilustrar tus paneles de control y tus programas para resaltar
funciones. Aquí, por ejemplo, te mostramos un panel de control dibujado para un robot:
135
E
ROBOPro
el punto de anclaje más pequeño te permite redondear los cantos del rectángulo. Para salir
del modo de edición, pulsa el botón derecho del ratón o la tecla ESC.
• Si posteriormente quieres editar un objeto, debes seleccionar en el menú Dibujo la función
Editar. Si después haces clic en un objeto, aparecerán de nuevo los puntos de anclaje en
azul claro.
• Muchos objetos tienen dos o más modos de edición y de dibujo. Puedes cambiar de un
modo a otro con la tecla de tabulación mientras estás dibujando o editando un objeto. En un
círculo puedes, por ejemplo, seleccionar si quieres trabajar con dos puntos angulares o con
el punto central y un punto angular. En los polígonos puedes cambiar entre edición de punto
y funciones cono "girar". En objetos de texto puedes conmutar entre edición de texto como
modificación del tamaño de texto y del ángulo de giro.
• En el menú Dibujo también se hallan las funciones Traer al frente / Enviar al fondo. Con
estas funciones puedes traer todos los objetos seleccionados (marcados en rojo) al frente o
enviarlos al fondo, de forma que tapen otros objetos o queden tapados por ellos
respectivamente.
• La utilidad Cuadrícula del menú Dibujo te permite mostrar o esconder la cuadrícula de
dibujo. Pero cuídate de que la cuadrícula esté activada si te dispones a editar tu programa,
dado que todos los elementos de programa están adaptados a ella.
• Al trabajar con objetos de texto puedes cambiar la alineación del texto pulsando CTRL más
una de las teclas de 1-9 del bloque numérico. Pero ojo: sólo funcionará si la luz de BloqNum
del teclado está encendida. Si no es así, antes de nada debes pulsar la tecla BloqNum.
136
E
ROBOPro
11 Funciones de la cámara
ROBO Pro admite a partir de la versión 4.x el uso de la cámara USB de fischertechnik, que se
puede conectar a la interfaz USB-Host del ROBOTICS TXT Controller (conexión USB1). Mediante
el cable USB o de forma inalámbrica vía WLAN es posible transferir las imágenes de la cámara al
PC y visualizarlas en ROBO Pro. Además, puedes utilizar la cámara como sensor y detectar
colores, movimientos, líneas y una esfera. Los así llamados campos del sensor de cámara se
pueden usar tanto en el modo online como en el de descarga.
También es posible conectar la cámara a un puerto USB libre del PC y utilizarla junto con el
ROBO TX Controller o la ROBO Interface en el modo online. No obstante, la cámara no puede
conectarse directamente a dichos dispositivos.
137
E
ROBOPro
138
E
ROBOPro
también se ven algunas zonas blancas por las que la cámara pueda guiarse. Si toda la imagen de
la cámara tiene muchos colores, es posible que la compensación de color no funcione
correctamente.
Si quieres determinar los colores con suma precisión, puedes utilizar el detector de líneas.
139
E
ROBOPro
140
E
ROBOPro
pone a disposición entradas para los componentes de color, de forma similar al campo de sensor
Detector de color. En el modo Precisión de color, el elemento de sensor utiliza el fondo blanco
para realizar un balance de blancos preciso de la luz. Los colores así determinados son más
precisos y más reproducibles, aunque en parte difieren de los colores determinados con el campo
de sensor Detector de color.
Seleccionando Posición y detección de anchos precisión puedes ajustar cuánto tiempo de
cálculo debe utilizar el elemento de sensor para determinar la posición y el ancho de la línea con
la mayor precisión posible.
En Valor mínimo/Valor máximo puedes ajustar el rango de valores de la escala. Si modificas
estos valores, también tendrás que adaptar el ajuste para el ancho. En Marcas del eje puedes
ajustar la distancia de las líneas de la escala.
El elemento de sensor ofrece,
según el modo, entre 4 y 7
campos de entrada por línea.
En total, un máximo de 35
campos de entrada. Los
campos de entrada más
importantes son Contraste y
Posición. El contraste indica
cuánto se diferencia la línea
respecto del fondo. Si el
contraste es inferior al valor
umbral ajustado, se vuelve a 0,
de modo que el contraste se
puede utilizar para determinar
si una línea ha sido detectada
o no. La Posición es el centro
de la línea en las coordinadas
de la escala. El Ancho es la anchura de la línea, también en las coordinadas de la escala.
Además, el elemento de sensor ofrece, según el modo de color, un brillo más de la línea S/W y un
color R (rojo), G (verde), B (azul).
141
E
ROBOPro
142
E
ROBOPro
11.3.5 Exclusión
Este elemento sirve para enmascarar áreas en la zona de detección de un
detector de esfera, cuando aparecen p. ej. partes de color del modelo que pueden
ser erróneamente identificadas como esferas.
Posteriormente puedes modificar el tamaño del campo mediante el menú
Delinear/Editar.
El Nombre se selecciona en el buscador de esferas y debe ser igual para todas las exclusiones
que deben utilizarse en el mismo detector de esfera. Se tienen en cuenta todas las exclusiones
con el mismo nombre.
143
E
ROBOPro
144
E
ROBOPro
145
E
ROBOPro
*Nota: En el ROBOTICS TXT Controller sólo se puede conectar el sensor de distancia por
ultrasonido Versión TX Art.nº 133009 con 3 cables de conexión. Por el contrario al ROBO
Interface se adapta sólo el sensor de distancia por ultrasonido Art.nº 128597 con 2 cables de
conexión.
**Nota: La abreviatura C1D significa, que la entrada de conteo C1 se emplea como entrada
digital simple. Cuando un elemento de entrada emplea C1 como entrada rápida de conteo,
en la ventana de diálogo aparece C1C.
Cuando tu programa sólo emplea las entradas arriba listadas y en el ROBOTICS TXT Controller
en las entradas universales I1-I8 también coincide el tipo de entrada, puedes cargar el programa
tanto sobre una ROBO Interface como sobre un ROBOTICS TXT Controller. El traslado se realiza
entonces automáticamente, cuando inicias el programa en modo en línea o en modo de descarga.
Tu puedes entonces desarrollar un programa en el entorno de ROBO Interface con entradas
ROBO Interface, pero bajo COM/USB seleccionar un ROBOTICS TXT Controller.
146
E
ROBOPro
En el ROBOTICS TXT Controller, algunos sensores necesitan diferentes tipos de entradas, si bien
en la ROBO Interface todas se pueden conectar a las entradas I1-I8. Esto afecta principalmente al
sensor de pista, que debe ser operada en el ROBOTICS TXT Controller con el tipo de entrada
digital 10V. En la conversión de programas y en la programación independiente de la interfaz,
ROBO Pro emplea la imagen de sensor actual como tipo de sensor para seleccionar el tipo de
entrada correcto.
147
E
ROBOPro
148
E
ROBOPro
149
E
ROBOPro
12.7 Display
Mediante el Display es posible manejar programas tal como en un panel de control y emitir datos
de estado en el display del ROBOTICS TXT Controller. El display se delinea en la guía TXT/TX
Display como un panel de mando:
Para modificar el tamaño del elemento de control, utiliza el punto de menú delinear / editar
150
E
ROBOPro
Indicación importante: Para detener un programa en modo de descarga, que emplea las
funciones de display, se deben oprimir simultáneamente ambas teclas de display en la
interfaz.
En el display en color del ROBOTICS TXT Controller, en cambio, los elementos se pueden
manejar de forma cómoda directamente mediante la función táctil.
Como es los cuadros de mando, cada subprograma puede tener otro contenido de display. A
diferencia de los cuadros de mando, el contenido del display sin embargo cambia
automáticamente, cuando se accede o abandona un subprograma. De esta forma se pueden
desarrollar de forma sumamente sencilla también controles de menú complejos. Sin embargo es
conveniente, controlar todos los subprogramas con contenidos de display desde un único
procesador. En caso contrario puede tornarse difícil prever, que contenido de display en qué
situación se visualiza.
151
E
ROBOPro
152
E
ROBOPro
en la técnica, como por ejemplo k (kilo) para miles, como en km (kilómetros). Los símbolos
exponenciales son los siguientes:
En caso que el exponente se encontrara con una cifra fuera de este rango, lo que mayormente
sólo se produce ante errores de cálculo, se muestra el error ?FORMAT?.
Naturalmente se pueden emitir cifras de coma flotante pero también con el formateado habitual de
ordenadores y calculadoras de bolsillo. Para ello empleas el comando de texto. Este ofrece las
siguientes opciones:
153
E
ROBOPro
Ejemplo:
Dos constantes se suman y el resultado de torna visible
durante 5 segundos en la indicación. A continuación la
indicación se borra (introducción \c en el comando de texto) y
se muestra la palabra "Fin".
Por favor observe las siguientes indicaciones para el
formateado:
• Tanto la cifra de los lugares válidos como también la
cantidad de cifras en exponentes se pueden variar en
todos los formatos.
• Puedes emplear un punto o una coma como símbolo
separador de decimales.
• Delante del punto o coma se deben ubicar como mínimo 2 símbolos #, uno para el signo y
uno para como mínimo, una cifra antes de la coma.
ROBOPro emplea los siguientes códigos para mostrar situaciones especiales y errores:
• 0 se emplea para representar un 0 exacto (sin errores) o cifras , que sean menores a unos
±10-2500.
• ?FORMAT? La cifra no puede ser mostrada con el formato seleccionado.
• ?OVERFLOW? El cálculo condujo a un desbordamiento aritmético. Por ejemplo una división
por 0 conduce a un desbordamiento.
• ?NAN? "No es una cifra" (inglés:Not A Number) es el resultado de un cálculo inválido, como
la raíz de -1.
• ?UNDEFINED? Este valor se emplea por ejemplo para entradas de subprogramas, antes
que estos reciban un valor.
• ?LOST? Aparece p.ej. con 0/0
• ?CORRUPTED? Esto no debería presentarse. Si tienes un programa que muestra este valor,
envíalo por favor al servicio técnico de fischertechnik.
• ??.?? Véase la siguiente sección.
154