anexo i software de fabricante para el sistema...
TRANSCRIPT
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 85
Anexo I Software de fabricante para el
sistema Hx11
Utilidades Software para el sistema Hx11
Usar la aplicación de configuración
Hay dos modos de cambiar los parámetros del Hx11. Haciendo clic en “Find Devices”, el
programa buscará todos los dispositivos conectados; esta operación puede requerir varios
segundos. Una vez se ha asegurado que todos los dispositivos se han encontrado, se hace
clic en “Stop”.
Nótese que si todos los dispositivos están activos puede ser necesario hacer clic en
“Stop” antes de hacer clic en “Find Devices”. Una vez encontrados todos los dispositivos, se
hace clic en “Read EEPROM”. Esta acción debe mostrar la configuración de todos los
dispositivos en línea. Los parámetros pueden modificarse y retransmitirse al dispositivo (clic
“Write EEPROM”). Los parámetros pueden también salvarse en un fichero (cambiando el
nombre “Current” por el nombre del fichero propio).
El otro modo de configurar los dispositivos es usando una configuración preestablecida,
haciendo doble clic en el fichero correcto.
86 SOFTWARE PARA EL SISTEMA HX11
Imagen I-1. Selección del fichero de configuración de la EEPROM.
El siguiente ejemplo muestra el fichero “Distance A to B”. Se hace clic en “Write
EEPROM” para descargar en línea los parámetros de los dispositivos.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 87
Imagen I-2. Resultado de la carga del fichero “Distance A to B. set”
El fichero “Distance A to B.set” tiene el aspecto mostrado en la figura X siguiente
aspecto y puede utilizarse un editor de texto simple para modificarlo.
Este es un ejemplo punto a punto donde ambos dispositivos están cableados al puerto
serie. Si se envía “$x”, donde x es un carácter cualquiera, el dispositivo 11362 transmitirá una
señal una vez transcurrido el tiempo txDelay 11. El dispositivo 11364 medirá el tiempo de
viaje y dará como salida la distancia al dispositivo 11362, una vez transcurrido el tiempo
txDelay 128.
88 SOFTWARE PARA EL SISTEMA HX11
|
|
11362 1 11 1 33
11364 2 128 1 33
El símbolo “|” indica el final de los comentarios y el comienzo de la información. Si se
selecciona “Write EEPROM”, la información en la primera línea se escribe en la EEPROM del
dispositivo 11362 y la segunda línea se escribe en la EEPROM del dispositivo 11364.
Operación
El “Hx11 configure” puede utilizarse para configurar los dispositivos Hx11 bien uno por
uno, o bien por grupos conectados a una red. Puede utilizarse para configurar redes
conectadas o no a un controlador Hx11C. Hay por tanto, dos modos de configurar el
dispositivo, bien cargando un fichero desde el menú de ficheros, o bien encontrando los
dispositivos en la red, leyéndolos (usando “read EEPROM”), configurar los ajustes y recargar
haciendo clic en “Write EEPROM”.
Para editar la tabla de configuración una vez que se han cargado los valores, se
selecciona la columna o fila deseada, lo que lleva este valor a la ventana de texto donde
puede ser modificado. Se repite la operación con todos los valores que se quieran modificar.
A continuación se selecciona “Save” o “Save on a file”, o bien se hace clic en “Write
EEPROM”. El nombre del fichero también puede editarse cambiando el contenido en la
ventana de texto situada más a la izquierda.
Para modificar los dispositivos conectados, se pulsa el botón “Find Devices” y tras
esperar varios segundos, se listan las direcciones de todos los dispositivos conectados a la
red. Una vez que se han listado todos los dispositivos, se hace clic en “Stop”, lo que cargará
las direcciones primarias de los dispositivos en la tabla de configuración.
Una vez que las direcciones de los dispositivos están en la tabla de configuración, se
presiona “Read EEPROM” para cargar en la tabla de configuración los parámetros actuales
de los dispositivos. Estos parámetros pueden editarse, cambiarse y volver a ser cargados en
los dispositivos mediante la orden “Write EEPROM”.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 89
Para cargar un fichero en la tabla de configuración, se hace clic en el botón “File” y se
selecciona el fichero de configuración, los cuales tienen la extensión .SET. El fichero .SET es
ya un fichero de texto que puede editarse utilizando un editor de texto cualquiera.
TxDelay
La constante txDelay se expresa en términos de 4.096 milisegundos, por tanto, un
txDelay=128 equivale aproximadamente a 524 ms. Para poner todo esto en perspectiva,
supongamos que el txDelay del dispositivo 11362 se hubiese fijado a 1 y el del 11364 a 10.
Entonces, la señal sónica saldría del dispositivo 11362 4ms después de la señal de
sincronismo, dado que la señal debe viajar como máximo 4 metros, se obtiene que la señal,
que dura unos 15ms, tarda sobre 12 ms en recorrer dicha distancia. Se tardan otros 10 ms en
transmitir los resultados a través del cable serie; por tanto el valor 10x4 (40ms) no es muy
adecuado.
Si el valor del txDelay es menor del requerido, puede ser que la señal no esté
completamente almacenada en el dispositivo cuando se le pide a este que vacíe su
contenido.
Por tanto la próxima vez que se solicite su contenido habrá dos valores en el ring buffer
haciendo errático el muestreo.
XpDelay
El xpDelay es un retardo que se introduce entre el instante en el que el transpondedor
recibe una llamada y el instante en que éste responde a la misma. Puede resultar útil para
permitir que las señales residuales de transmisiones previas decaigan al menos
parcialmente.
El xpDelay está en términos de 4.096 milisegundos.
IdOverride
Los dispositivos responderán a una ID transmitida de valor inferior a 16. De manera que
si un dispositivo envía una señal con un código de identificación por debajo de 16, entonces
cualquier dispositivo que reciba el código responderá enviando una señal transcurrido el
tiempo xpDelay.
90 SOFTWARE PARA EL SISTEMA HX11
El dispositivo que ha realizado la llamada producirá la etiqueta temporal de la señal (es
decir, el tiempo de vuelo)
Operación Background del receptor Hx11
Cuando el dispositivo recibe el carácter “$”, limpia sus temporizadores al llegar el flanco
de subida del bit de inicio perteneciente al carácter que siga al “$”. La latencia de esta
sincronización es 200ns, y los contadores desbordan cada 1.048576 segundos.
El dispositivo escucha señales ultrasónicas y almacena la identidad y el tiempo de
llegada de cada señal en un buffer de anillo. La información almacenada es referida como la
etiqueta temporal, donde el tiempo de llegada equivale al tiempo transcurrido desde la
sincronización hasta que se detecta un punto fijo de la señal ultrasónica detectada.
Si el dispositivo recibe su propia dirección ID de dispositivo (16bit) por la línea serie,
transmitirá todos los datos que tenga en el ring buffer en ese momento. El ring buffer se
desborda cada vez que se reciben 32 etiquetas temporales ultrasónicas, y la última etiqueta
se sobrescribe.
CtlByte = 1 (modo bit 0 fijado)
Una vez que el tiempo transcurrido desde la sincronización iguala al tiempo especificado
en el txDelay, el dispositivo transmite la ID ultrasónica. Este valor de ID está
especificado en el etiquetado del dispositivo.
Si se ha escrito un valor inferior a 16 en el buffer de invalidación (override buffer),
entonces este valor se convierte en la ID transmitida, y se conoce como la ID del caller.
CtlByte = 2 (modo bit 1 fijado)
Una vez que el tiempo transcurrido desde la sincronización iguala al tiempo especificado
por el txDelay, el dispositivo transmite el contenido de su propio ring-buffer a través de las
líneas serie.
CtlByte = 3 (modo bit 0 and 1 fijado)
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 91
Una vez que el tiempo transcurrido desde la sincronización iguala al tiempo especificado
por txDelay, el dispositivo transmite una ID ultrasónica. Este valor de ID está especificado en
el etiquetado del Hx11.
Si se ha escrito un valor inferior a 16 en el buffer de invalidación (override buffer),
entonces este valor se convierte en la ID transmitida, y se conoce como la ID del caller.
El dispositivo limpiará sus propios temporizadores y transmitirá el contenido de su ring
buffer a través de las líneas serie.
Esta operación se repite con un intervalo igual al txDelay.
CtlByte: Modo bit 2 fijado.
Transpondedor deshabilitado. El dispositivo no transponderá a ningún caller.
Uso del programa “A to B”
El programa “A to B” se proporciona para ayudar a la comprensión del funcionamiento
de los dispositivos Hx11. Se ha diseñado para implementar la operación punto a punto
básica. Existen dos casos:
Caso 1
Tanto el dispositivo A como el B deben estar cableados (RS232) a un ordenador o un
microcontrolador. Se trata de una operación sincronizada donde el programa “A to B”
sincroniza los dispositivos periódicamente, con una tasa definida por el “SyncInterval”
(Intervalo de Sincronización).
Caso 2
Los dispositivos deben estar en modo transpondedor. En este caso uno de los
dispositivos no está conectado al dispositivo controlador (puede moverse libremente). En el
modo transpondedor no se requiere ni se usa sincronización.
Com, SyncInterval, K1 y K2 son todas variables definidas por el usuario.
92 SOFTWARE PARA EL SISTEMA HX11
Imagen I-3. Ejecución de A to B.exe con variables introducidas por usuario.
Frecuencia de muestreo y SyncInterval (sólo para caso 1)
El SyncInterval (intervalo de sincronización) se introduce en términos de milisegundos.
Una vez que el valor correcto se ha seleccionado el usuario puede hacer clic en la ventana de
SyncInterval y la frecuencia de muestreo cambiará.
El carácter de sincronización para el Hx11 es “$” seguido de cualquier carácter no
reservado.
Para la operación sin cableado (transpondedor) el SyncInterval debe ser cero (sin
sincronismo).
Almacenamiento de información
Para almacenar el valor de la distancia en un fichero, se hace doble clic en la ventana
“Distance Value”.
Calibración
Tanto el txDelay como el xpDelay (ver el programa Config) están integrados en el tiempo
de vuelo de la señal, es decir, el tiempo (en hexadecimal o decimal) estará alterado por el
valor de estas dos constantes. Dado que son constantes, pueden calibrarse desde fuera del
sistema como sigue.
Calibración Simple
Dado que la frecuencia del reloj del Hx11 es 16000000 cuentas/segundo y el sonido viaja
a una velocidad 344000 milímetros/segundo, tenemos un valor igual 344/16000 ó 0.0215
milímetros/cuenta. Este valor varía levemente con la temperatura. La relación entre la
distancia y el tiempo es como sigue:
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 93
Distancia = K1*tiempo-K2
Fijar K2= 0
Colocar los dispositivos A y B a una distancia conocida el uno del otro y anotar el valor
(K1*tiempo) en la ventana de distancia.
Por tanto:
K2= Ventana de distancia – Distancia Conocida
Calibración elaborada
Colocar A y B a una distancia aproximada de 3 metros.
Anotar el valor de la ventana temporal (DTWV) y la distancia conocida (KD)
KD=3000 y DTWV(1)= #1
Colocar A y B a una distancia aproximada de 6 metros
Anotar el valor de la ventana temporal (DTWV) y la distancia conocida (KD)
KD=6000 y DTWV(1)= # 2
Usando la relación Distancia = K1*tiempo – K2 se tiene suficiente información para
calcular K1 y K2.
94 SOFTWARE PARA EL SISTEMA HX11
K1 = (6000 –3000) / (#2 – #1)
Conocido K1 puede calcularse K2
K2 = K1 * #1 – 3000
Introducir K1 y K2 en sus respectivas ventanas y el valor de distancia reflejará la
distancia real entre A y B.
Considérense los dos ficheros de configuración mostrados a continuación.
Dispositivo Id 11362 … Transmisor ID 231 … Transpondedor ID 31
Dispositivo Id 11364 … Transmisor ID 232 … Transpondedor ID 32
Distance A to B.set
Este es un ejemplo punto a punto donde ambos dispositivos están cableados al puerto
serie. Si se envía $x, donde x es un carácter cualquiera, el dispositivo 11362 transmitirá una
señal una vez transcurrido el tiempo txDelay 11. El dispositivo 11364 medirá el tiempo de
viaje y dará como salida la distancia al dispositivo 11362, una vez transcurrido el tiempo
txDelay 128.
|
11362 1 11 1 33
11364 2 128 1 33
Imagen I-4. Ejecución de A to B.exe con variables introducidas por usuario.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 95
Distance A to B wireless.set (ver notas de aplicación)
Este es un ejemplo punto a punto donde A y B no están cableados. El dispositivo 11362
transponde a la llamada del 11364.
|
11362 0 80 1 33
11364 3 255 1 15
Imagen I-5. Ejecución de A to B.exe con variables introducidas por usuario.
Aunque una configuración utiliza sincronismo y la otra no, la mayor diferencia entra
ambas es la ID hexadecimal resultante. Nótese que en la configuración utilizada para el
archivo “Distance A to B wireless.set” se le ha asignado al dispositivo 11364 la ID 15 (F en
hexadecimal). La etiqueta ID hexadecimal del dispositivo 11362 es 231 (hex) y su ID de
transpondedor es 31. En la configuración sin cables (wireless), el dispositivo 11364 reporta
que su llamada F, ha sido recuperada por el transpondedor 31. Esto permite al usuario
destacar la respuesta, incluso en el caso de que haya muchas otras señales detectadas por
otros transpondedores.
La utilidad de sondeo de dispositivo (DevicePollUtility)
El programa devicePoll es una utilidad para inspeccionar el buffer circular (ring buffer)
de un dispositivo. Se proporciona también la característica que permite almacenar el
contenido del ring buffer en un fichero. El nombre del fichero es decivePoll.txt y puede
inspeccionarse usando un editor de texto estándar.
96 SOFTWARE PARA EL SISTEMA HX11
Imagen I-6. Programa DevicePoll
Uso del programa u_Track
El programa Hx11 u_Track es una utilidad para mostrar las etiquetas que transmite el
Hx11 en una imagen de fondo a escala, proporcionada por el usuario.
El escalado es muy importante para el correcto funcionamiento. Para ajustarlo,
simplemente se introducen las coordenadas de la esquina superior izquierda y de la esquina
inferior derecha del plano de planta en un fichero de texto con la extensión .hxt. El fichero
puede crearse con un nombre elegido por el usuario. Por ejemplo, si suponemos que el
usuario tiene una imagen en formato GIF de la primera planta de un edificio, podemos
llamar a la imagen floor1.gif. El usuario debe crear a continuación un fichero .hxt utilizando
el mismo nombre elegido para la imagen.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 97
El fichero le dice al programa Hx11 u_Track la escala de la imagen, es decir, las
coordenadas de las esquinas superior izquierda e inferior derecha.
Fichero: floor1.hxt 0 0 15000 16000
El programa Hx11 u_Track lee el fichero anterior como esquina superior izquierda en
(0,0) y esquina inferior derecha en (15000,16000). Estas son las coordenadas (x,y)
respectivamente. Dado que la habitación 1 se encuentra dentro de las fronteras de la planta
1, y asumiendo que el esquema o la foto (.gif) representa la habitación 1, el escalado para
floor1room1.gif puede ser como sigue:
Fichero: floor1room1.hxt 100 200 5000 4000
Puede crearse un fichero de escalado para cada habitación si se tiene una imagen .gif
dentro de las fronteras de la habitación.
Cuando se instala el programa y se ejecuta por primera vez, para facilitar la operación el
usuario debe hacer doble clic en un fichero con extensión *.hxt y asociar este tipo de fichero
con el programa Hx11 u_track.exe. De este modo, el usuario puede disponer de una
colección de plantas y habitaciones en forma de iconos en un fichero, de manera que
haciendo doble clic en el fichero *.hxt aparecerá la planta/habitación.
El usuario también puede asociar imágenes con los transmisores o las etiquetas, y tan
pronto como las etiquetas estén dentro de las fronteras de una imagen escalada, las
imágenes asociadas se podrán mover sobre la imagen de fondo.
La siguiente ilustración muestra el Hx11layout abierto haciendo doble clic en el fichero
floor1.hxt. Se ha seleccionado un fichero (Jun 13th 2004) que contiene las coordenadas XYZ,
obtenidas utilizando el programa XYZ.exe.
98 SOFTWARE PARA EL SISTEMA HX11
ImagenI-7.Layout en fichero floor1.hxt
Cuando una etiqueta cruza las fronteras definidas por la esquina superior izquierda y la
esquina inferior derecha, el programa compara el valor de la etiqueta con el fichero en el
directorio de trabajo. El fichero Jun 13th contiene dos etiquetas (etiqueta 2 y etiqueta 3). Si
en el directorio de trabajo existe disponible un fichero con el nombre t 2 tagImage.gif,
entonces esta imagen (la esquina superior izquierda) se mueve con las coordenadas de la
etiqueta 2. De manera similar, el fichero t 3 tagImage.gif obtiene las coordenadas de la
etiqueta 3. El formato de la nomenclatura del fichero es t # tagImage.gif donde # representa
el valor de la etiqueta a la cual está asociada la imagen.
Una vez que se ha seleccionado el fichero, se muestra en una ventana el instante de su
creación. Si por ejemplo, se cambia el valor cero en la ventana que se muestra continuación
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 99
por un valor 200, el programa Hx11layout pasará por los ficheros con extensión *.XYZ
(ficheros de coordenadas) a una velocidad de un punto cada 200 milisegundos.
El botón de un sólo paso (single step SS) puede usarse también para pasar por los
ficheros de coordenadas XYZ.
Sin embargo, se recomienda poner cero en la ventana del temporizador, lo que detiene
automáticamente el paso por el fichero.
Imagen I-8. Detalle del Timer en fichero floor1.hxt
Operación en tiempo real
Si se hace clic en el botón “live”, se fuerza al programa Hx11layout a extraer su
información a través de DDE.
Para ver la acción en tiempo real en la pantalla, el programa XYZ debe estar
ejecutándose en background.
100 SOFTWARE PARA EL SISTEMA HX11
Configuración del programa u_Track
La utilidad de configuración proporcionada en el CD instalará el programa u_Track en el
directorio \programfiles\uTrack\. Este directorio debe contener todas imágenes de etiquetas
que pueden ser usadas por el programa. Si el programa no encuentra la imagen asociada a
una determinada etiqueta, éste utiliza la imagen por defecto. Nótese que el ejecutable
u_Track.exe puede almacenarse en cualquier directorio, pero las imágenes de etiquetas
deben estar en el mismo directorio.
Imagen I-9. Ubicación de las imágenes de etiquetas para uTrack.exe
El fichero que se muestra a continuación puede almacenarse en cualquier directorio,
incluido el escritorio. Este directorio puede contener las imágenes arquitectónicas, o los
planos de las plantas. Pero es importante que el fichero de escalado con extensión .hxt esté
en el mismo directorio que estas imágenes.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 101
Imagen I-10. Contenido de la carpeta U Track para el ejemplo.
Es de vital importancia que el escalado contenido en los ficheros .hxt se correspondan
perfectamente con las imágenes. En caso contrario, las localizaciones XYZ no se mostrarán
en las posiciones correctas.
El usuario ha de asociar los ficheros .hxt con el programa u_Track.exe, de manera que
cuando se haga doble clic sobre el fichero .hxt, aparezca el programa u_Track.exe. Esto se
consigue haciendo clic con el botón derecho del ratón sobre el fichero .hxt:
102 SOFTWARE PARA EL SISTEMA HX11
Imagen I-11. Detalle de la asociación de un fichero .hxt con el programa u_Track.exe.
Lo siguiente es elegir la opción Default Program. Con el browser de directorios se debe
seleccionar el programa u_track.exe en el directorio \program files\uTrack. No olvidar
marcar la opción “Utilizar siempre este programa para abrir este tipo de archivos”. Cuando
se abre la ventana “Abrir con”, se necesitará el browser para encontrar la localización de
u_Track.exe y notepad.exe.
El programa notepad.exe puede usarse para editar ficheros hxt, mientras que el
programa u_Track.exe se utiliza para visualizar la información de coordenadas XYZ en una
imagen preparada.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 103
Programa Hx11unit.exe
Este programa lee la información de los dispositivos configurados como callers.
Funciona bien para conexión privada entre dispositivos Hx11 y como lector de dispositivos
Hx11. El código fuente está disponible en la página Web para ayudar a los integradores a
entender como calcular la distancia real entre dispositivos. El Hx11x sólo proporciona una
precisión de 9mm en modo totalmente asíncrono. Para obtener precisiones mayores se
puede hacer uso de un filtrado estadístico, y modos síncronos.
Imagen I-12. Programa Hx11unit.exe
El botón de Reset envía al dispositivo Hx11 los parámetros especificados en la ventana
de texto ID primaria. Una vez que los parámetros se ha almacenado en la memoria
permanente, el dispositivo se reinicia. Estos parámetros se cargan en el dispositivo cada vez
que se enciende. El botón de Stop detiene el flujo de información procedente del dispositivo
Hx11. Si se intenta enviar parámetros al Hx11 usando el botón de Reset mientras existe un
flujo de información procedente de éste, es posible que el dispositivo no reciba los
parámetros.
El dispositivo con dirección primaria 11364 se configuró con un retraso de 120 ms. Esto
significa que cada línea que se muestra a continuación requiere un tiempo de 120 ms.
Se le asignó la ID de caller 15 al dispositivo. Los dispositivos con direcciones de
transpondedor 51 y 53 respondieron a la llamada. La distancia al dispositivo 51 es
104 SOFTWARE PARA EL SISTEMA HX11
aproximadamente 3134 milímetros, y la distancia al dispositivo 53 es aproximadamente
5942 milímetros.
La dirección primaria, la dirección de transpondedor y la dirección de etiqueta se
encuentran en la pegatina situada en la parte superior del dispositivo Hx11.
Cuando se configuran muchos callers en un sistema ajustado, se debe tener en cuenta
que los callers configurados con los mismos retrasos pueden acabar enviando señales con la
misma tasa. Si estas señales colisionan (en términos de tiempo, no de espacio) pueden verse
dañadas. La línea roja en el diagrama de eventos es 16ms. Para reducir la probabilidad de
colisiones repetidas, se recomienda configurar los retrasos de llamada con una diferencia de
al menos 16ms.
Programa datalog.exe (se requiere controlador de red)
Este programa lee el flujo de información directamente del controlador de red y
almacena la información en el fichero. Este fichero puede convertirse después en
información acerca de la posición, usando el programa XYZ en modo 1. Si el programa
datalog.exe está en ejecución, entonces el programa XYZ en modo 3 puede aprovechar el
flujo de información en tiempo real, mientras la información del controlador de red se está
almacenando en el fichero monData.hxm.
En la ventana de visualización adjunta, los primeros 4 dígitos en la cadena de
información son la representación hexadecimal de la ID del monitor. Cada etiqueta se
representa con un total de 10 dígitos hexadecimales. Los primeros 4 contienen el número ID
de la etiqueta, mientras que los 6 restantes representan los datos de tiempo asociados a la
posición. Si existe la misma etiqueta en ambos ciclos de adquisición (superior e inferior),
entonces la tasa de transmisión de la etiqueta es demasiado alta. Si se utiliza el programa
XYZ.exe para extraer la posición 3D del fichero monData.hxm, donde se viola esta regla, es
posible que falle. Algunas veces un monitor puede tomar la misma etiqueta más de una vez
en el mismo ciclo de adquisición, en este caso, el programa XYZ interpreta las etiquetas más
tardías como eco de las primeras y son ignoradas.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 105
REGLA DE OPERACIÓN CRÍTICA
Un monitor o monitores no deben tomar la misma etiqueta en dos ciclos de adquisición
consecutivos. Se aconseja empezar por la tasa de transmisión más baja, e ir aumentándola
gradualmente hasta encontrar el límite.
Ventana de visualización de datos
Aceptado Prohibido Aceptado
4E50 000218355B # 4E50 0002618BCC # 4E50 00031399AC 00021507DB #
4E52 0002186B6F # 4E52 000261C1E8 # 4E52 000313D987 0002153DE9 #
4E54 0002185317 # 4E54 000261A980 # 4E54 000313BD38 0002152578 #
4E56 0002184403 # 4E56 0002619A75 # 4E56 0003139A33 000215167B #
4E50 000348DBFA # 4E50 0002103663 # 4E50 #
4E52 0003491BC6 # 4E52 0002106C6C # 4E52 #
4E54 000348FF83 # 4E54 000210540E # 4E54 #
4E56 000348DCC6 # 4E56 0002104500 # 4E56 #
Tabla I-1. Ventana de visualización de datos.
Si el programa no puede evaluar el valor de una posición devuelve cero para esa
coordenada.
Si se fijan las coordenadas de referencia como un valor distinto de cero, y haciendo la
tríada (0,0,0) un valor imposible, se pueden ignorar los fallos de evaluación incluidos en una
trama.
Si aparece el carácter “?” tras el monitor en lugar de “#”, entonces el monitor en
cuestión no está respondiendo al sondeo del Controlador de Red. En este caso es necesario
verificar la conexión y comprobar si el monitor está encendido.
NOTA: El controlador sólo sondea los receptores especificados en el fichero layout.hxm.
Nótese que las reglas de operación especificadas también se aplican al programa
XYZ.exe en cualquiera de sus modos.
106 SOFTWARE PARA EL SISTEMA HX11
El programa XYZ
Para el modo de operación en tiempo real, se necesita utilizar un controlador para los
programas datalog, XYZ y u_Track. El programa XYZ convierte la posición de múltiples
transmisores en coordenadas 3D reales (X,Y,Z). Éste programa lee las etiquetas temporales
de los transmisores, bien directamente del Hx11C (controlador de red), bien de un fichero
que contenga este tipo de información como el monData.hxm (creado por el programa
Datalog). El programa XYZ también puede recolectar la información de etiquetas temporales
a través de DDE y convertirlas a coordenadas. Esto se hace comparando etiquetas
temporales de varios monitores (receptores) y calculando las coordenadas X, Y, Z con la
diferencia de tiempos.
Esta id de etiqueta, (X,Y,Z), tiempo de llegada, se almacena en un fichero cuyo nombre
es el instante y fecha en que se creó. El usuario puede utilizar está información mientras está
siendo creado por el programa XYZ.exe, para una monitorización en tiempo real (se consigue
mediante Intercambio Dinámico de Datos (DDE: Dynamic Data Exchange).
Uso del programa XYZ
El programa XYZ requiere que se especifiquen las coordenadas (x,y,z) para cada receptor
de la red. Estas coordenadas pueden introducirse mediante un fichero de texto (layout.hxm).
El programa XYZ lee este fichero y posiciona a todos los usuarios con relación al origen
(0,0,0). Calcula la posición de los transmisores en un rango basado en estas coordenadas.
Todas las posiciones deben estar en el cuadrante de x e y positivos. Las coordenadas de la
etiqueta y el tiempo de encuentro se almacenan en el directorio [XYZ Data] en un fichero
cuyo nombre es el tiempo y la información. Otras aplicaciones tienen acceso al flujo de
información a través de DDE.
La imagen a continuación sugiere como varios monitores pueden configurarse para un
ejemplo en una habitación donde el plano 0 (xy) es el techo.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 107
Imagen I-13. Seguimiento ultrasónico en áreas 3D.
Cobertura de Área Extensa
La ilustración sugiere una forma de cubrir un área extensa usando monitores. Puede
utilizarse cualquier formación, pero una estructura de panal hexagonal proporciona uno de
los mejores costes por unidad de cobertura.
En lo siguiente, la distancia “D” entre monitores es siempre la misma. Los monitores
forman triángulos de 60 grados. Dependiendo de la densidad de la red, muchos monitores
pueden contribuir a la posición de una etiqueta dada. Cuanto mayor sea el número de
monitores que detectan la etiqueta, más precisa y estable será la información acerca de la
posición.
108 SOFTWARE PARA EL SISTEMA HX11
Imagen I-14. . Red de receptores en forma de panal hexagonal.
Configuración para evaluación de coordenada Z
El Hx11 opera con el principio de equidistancia, el cual supone que existen líneas
equidistantes entre los monitores (receptores) que se cruzan en la localización de la etiqueta
o transmisor. Imagínese que los receptores forman un triángulo y que el transmisor está
colocado a la misma distancia de todos ellos. En este caso existe equidistancia en una línea
que pasa justó a través del triángulo.
Por tanto, se necesita que el cuarto receptor fije la posición de Z en un punto en lugar de
a lo largo de una línea. Si se necesita seguir la coordenada Z, no deben colocarse todos los
receptores en el mismo plano.
Evaluación de Datos y Errores
Si el programa XYZ es incapaz de calcular las coordenadas, es posible que alguna de las
coordenadas X, Y o Z tengan valor cero. Si se configura el receptor para que el cero se un
valor imposible (por ejemplo, que para el valor cero el transmisor esté fuera de rango) se
consigue que los programas ignoren estas coordenadas. El último número de la cadena de
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 109
datos, es decir el resultado del escaneo de posición realizado por el programa XYZ, indica
cuántas líneas estaban disponibles para construir la coordenada. Si este número es inferior a
3, cualquiera que sea el resultado de la coordenada, no debe considerarse como un valor
válido.
Nótese que las etiquetas pueden colisionar, es decir, información de dos o más
etiquetas puede cruzarse y dar lugar a una lectura errónea. Si una etiqueta no es recogida
por más de dos monitores (número líneas disponibles <3), y sólo se recoge en un período de
adquisición sobre un período de determinada duración, ésta debería ignorarse.
Descripción de programa XYZ Version 2
El programa XYZ necesita cuatro ficheros para funcionar, los cuales deben estar
guardados en el mismo directorio en el cual está el ejecutable XYZ.exe.
Estos ficheros son:
MonData.hxm (sólo modo 1)
Layout.hxm (todos los modos)
Parameters.hxm (todos los modos)
Sspeed.hxm (todos los modos)
MonData.hxm es creado por un programa llamado data.exe. Todos los ficheros
con extensión .hxm son ficheros de texto y pueden leerse y modificarse usando
el programa Notepad.exe.
Layout.hxm La primera columna es la coordenada X del monitor, la segunda
columna es la Y, y la tercera la coordenada Z. La cuarta columna es la ID de la
etiqueta.
Sspeed.hxm
110 SOFTWARE PARA EL SISTEMA HX11
En el momento de iniciarse, XYZ busca un parámetro para la velocidad del sonido en un
fichero llamado sspeed.hxm. En el fichero de muestra la velocidad del sonido tiene valor 340
(m/s). Si se cambia el valor de este parámetro, el resultado del cálculo de las coordenadas
(XYZ) puede verse afectado.
Ejemplo de fichero Layout.hxm:
2040 1440 0 20048
2950 1000 0 20050
2180 450 0 20052
1000 1000 0 20054
Las coordenadas se introducen siempre en milímetros. El contenido del fichero
layout.hxm mostrado anteriormente se traduce en:
Monitor 20048 localización: (x,y,z) (2040,1440,0)
Monitor 20050 localización: (x,y,z) (2950,1000,0)
Monitor 20052 localización: (x,y,z) (2180, 450,0)
Monitor 20054 localización: (x,y,z) (1000,1000,0)
Sugerencia
Para hacer una prueba use el fichero de parámetros a continuación, colocando los
monitores XY formando una cruz de separación aproximadamente 2 metros en el eje XY.
Fichero: Parameters.hxm
Los números de la siguiente configuración son arbitrarios, estas cifras se deben fijar para
adaptarse a la configuración.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 111
5 "línea 1: Número total de monitores en la red"
1 "línea 2: retraso entre actualizaciones"
1 "línea 3: Puertos de comunicaciones 1, 2, 3, 4, 5, 6 y etc"
1 "línea 4: 1 = alta y 0 = baja velocidad de comunicación"
1 "línea 5: Modo 0 hasta 2"
256 "línea 6: Paso de escaneo"
1000.5 "línea 7: Tolerancia de escaneo"
10000 "línea 8: Distancia máxima entre monitores"
-200 "línea 9: Comienzo del rango de escaneo para X en mm"
+200 "línea 10: Fin del rango de escaneo para X en mm"
-200 "línea 11: Comienzo del rango de escaneo para Y en mm"
+200 "línea 12: Fin del rango de escaneo para Y en mm"
2000 "línea 13: Comienzo del rango de escaneo para Z en mm"
4000 "línea 14: Fin del rango de escaneo para Z en mm"
3 "línea 15: visualización 1=on 0=off"
4000 "línea 16: Escala total de ventana de visualización de X"
4000 "línea 17: Escala total de ventana de visualización de Y"
6000 "línea 18: Escala total de ventana de visualización de Y"
0 "línea 19: Offset de ventana de visualización de X"
0 "línea 20: Offset de ventana de visualización de Y"
0 "línea 21: Offset de ventana de visualización de Z"
Descripción de parámetros
Línea 1: Número total de monitores en la red
112 SOFTWARE PARA EL SISTEMA HX11
Este valor es crucial y debe actualizarse si se añade o se quita un monitor de la red. El
programa XYZ necesita este número.
Línea 2: Control de la velocidad de muestreo (toda la red)
Para sistemas estándar, el intervalo entre actualizaciones se calcula de la siguiente
forma:
Intervalo entre actualizaciones (Interval Between Updates)=0.131072s * (Valor de
control de la tasa de muestreo)
El valor de control de la tasa de muestreo debe ser un entero entre 1 y 255. Si se
necesitan tasas mayores o menores, contacten con Hexamite; el Hx11NC (controlador de
red) deberá modificarse o reemplazarse. Al expirar el contador asociado al intervalo, se
recupera la información de todos los monitores de la red.
Línea 3: Puerto de Comunicación
El valor de esta línea selecciona el puerto de comunicaciones serie utilizado, Com1,
Com2,.., ComN. Este parámetro es un valor entero que representa el valor de un puerto
serie libre (ComPort) en el ordenador.
Línea 4: 1 = alta y 0 = baja velocidad de comunicación
No aplica. El valor seleccionado no es relevante.
Línea 5: Modo de operación XYZ
El valor de esta línea puede ser 0, 1 ó 2. Con este valor se selecciona uno de los
siguientes modos.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 113
Modo 0: (Modo de tiempo real)
En este modo, el programa toma la información directamente del flujo de datos del
controlador de red Hx11NC. Estos datos se convierten en coordenadas de tiempo XYZ, de
manera que sean accesibles vía DDE.
Ver el ejemplo de programa en Visual Basic DDExample a continuación de la sección
Interfaz DDE. Tenga en cuenta que en tiempo real, los datos no se corresponden al tiempo
de etiquetado. Dado que se trabaja en tiempo real, el reloj interno del ordenador se puede
utilizar para almacenar el tiempo. En caso de existir un número elevado de monitores
trabajando con frecuencias de muestreo altas, el posible que el ordenador no pueda
almacenar la información correctamente. En este caso, el buffer de comunicación se llenará
y desbordará, lo que provocará el fallo del programa. Si se desea seguir trabajando en este
modo, será necesario reiniciar las operaciones, seleccionando una frecuencia de muestreo
menor y con un número menos de monitores y etiquetas. En caso de que se necesite
operaciones en tiempo real a alta velocidad, pueden dividirse las operaciones en varios
ordenadores. Estos ordenadores pueden ponerse en red para trabajar a alta velocidad.
Modo 1: (Modo de clasificación)
La información contenida en el fichero llamado MonData.hxm se convierte en etiquetas
de posición (x,y,z) en una línea de tiempo y se almacena en un subdirectorio [XYZ Data]. Si
este subdirectorio no existe, el programa XYZ lo crea. La información de posición procesada
se nombra con la hora y la fecha en que la se adquirieron los datos. Por ejemplo:
Jun 09 040609143505.xyz es realmente la fecha 9 de Junio de 2004 y la hora es
14:35:05.
Si se modifica el formato de este nombre, el programa layout no será capaz de mostrar
la etiqueta y su posición en la imagen de fondo.
Modo 2: (Modo de tiempo real)
En este modo el programa XYZ toma su información de otro programa llamado “data”.
Este programa debe estar ejecutándose antes de ejecutar el programa XYZ en este modo. De
114 SOFTWARE PARA EL SISTEMA HX11
la misma manera que en el Modo 0 las coordenadas XYZ están disponibles a través de DDE
(usando el programa DDExample).
En este modo real, quedarse atrás no es un problema. El programa data aprovecha el
flujo de información del controlador Hx11NC y almacena los datos sin procesar en el fichero.
El programa XYZ puede monitorizar la información, convertirla en coordenadas XYZ y hacer
accesibles estas coordenadas vía DDE para aplicaciones en tiempo real.
Línea 6: Paso de escaneo
El ordenador tiene que escanear las posiciones x,y,z aproximadamente. Este número
representa el tamaño del paso de escaneo en milímetros. Si por ejemplo, la mayor distancia
entre dos monitores que detectan una etiqueta específica es 2000mm, entonces si
selecciona un paso de escaneo igual a 100mm, esto significa que la posición se determinará
a través de 20 escaneos. Sin embargo, en el caso de tener por ejemplo 3000mm en el eje X,
2000mm en el eje Y y 500mm en el eje Z, el número total de escaneos será 30x20x5= 3000
pasos en total.
Una vez que se ha encontrado la posición aproximada, el ordenador comienza a iterar (8
veces) para afinar la precisión del escaneo, reduciendo a la mitad el paso de escaneo cada
vez. A continuación se muestra un ejemplo donde inicialmente el paso de escaneo es 128.
Iteración 1. 128/2 o 64mm
Iteración 2. 64/2 o 32mm
Iteración 3. 32/2 o 16mm
Iteración 4. 16/2 o 8mm
Iteración 5. 8/2 o 4mm
Iteración 6. 4/2 o 2mm
Iteración 7. 2/2 o 1mm
Iteración 8. 1/2 o 1/2mm
Línea 7: Tolerancia de escaneo
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 115
El ordenador lleva a cabo la evaluación de mínimo error cuadrado para la convergencia
de las coordenadas. El mínimo resultante es ErrorX2 +ErrorY2 +ErrorZ2. Si el mínimo es
mayor que la tolerancia de escaneo éste cálculo de coordenada se ignora.
Línea 8: Distancia Máxima Entre Monitores
Este valor le dice al programa la distancia máxima permisible entre los monitores que
detectan una etiqueta dada. Por ejemplo, si se tiene una configuración donde la etiqueta
500 es detectada por los monitores que la rodean y por error, un monitor situado a una
distancia de 20 metros también la detecta, el programa XYZ intentará incluir este error de
detección en el cálculo de la posición de la etiqueta 500. Esto puede retrasar el cálculo del
punto de manera significativa y proporcionar resultados erróneos. No es probable que se
detecte la etiqueta 500 por error, pero puede suceder.
Línea 9: Comienzo del rango de escaneo para X en mm
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está situado
en el eje X a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo del rango
toma el valor -300, ello implica que el escaneo para la posición X de la etiqueta 100
comienza en 20100.
Línea 10: Fin del rango de escaneo para X en mm
Este valor determina dónde termina el rango de escaneo para la coordenada X de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada X de
la etiqueta 100 finaliza en 22600 (mm).
Línea 11: Comienzo del rango de escaneo para Y en mm
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está situado
en el eje Y a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo del rango
toma el valor -300, ello implica que el escaneo para la posición Y de la etiqueta 100
comienza en 20100.
116 SOFTWARE PARA EL SISTEMA HX11
Línea 12: Fin del rango de escaneo para Y en mm
Este valor determina dónde termina el rango de escaneo para la coordenada Y de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada Y de
la etiqueta 100 finaliza en 22600 (mm).
Línea 13: Comienzo del rango de escaneo para Z en mm
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está situado
en el eje Z a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo del rango
toma el valor -300, ello implica que el escaneo para la posición Z de la etiqueta 100 comienza
en 20100.
Línea 14: Fin del rango de escaneo para Z en mm
Este valor determina dónde termina el rango de escaneo para la coordenada Z de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada Z de
la etiqueta 100 finaliza en 22600 (mm).
Todos los ejes se tratan por igual. La configuración en el archivo de parámetros se
orienta hacia un ambiente de oficina donde la posición Z de los monitores es igual a 0. La
posición Z para las etiquetas sólo puede tomar un valor entre 2 y 4 metros desde el techo, lo
que reduce el tiempo de procesamiento.
Línea 15: Visualización
Este valor habilita la visualización gráfica de la posición XYZ en cualquier modo. Por
favor, tenga en cuenta que esta característica ralentiza el procesamiento
considerablemente. El ordenador procesará menos etiquetas de posición por segundo si se
activa esta característica, por tanto, se corre el riesgo de que las operaciones en tiempo real
se queden atrás.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 117
Línea 16 y 18: Escalado de la ventana de visualización
Los valores de las líneas 4 y 5 son la escala completa de la ventana de visualización en
milímetros.
Líneas 19 y 21: Offset de la ventana de visualización
Con el valor de estas líneas se desplazará la ventana de visualización a
izquierda/derecha o arriba/abajo.
Interfaz DDE
A continuación se muestra un sencillo programa de enlace DDE escrito en visual Basic y
llamado DDExample. Este programa lee los resultados del programa XYZ que se esté
ejecutando en cualquiera de sus 3 modos.
Los resultados de este ejemplo se almacena en un fichero llamado “myFile.XYZ”. La
calidad del escaneo indica el número de líneas equidistantes extraídas del programa data. Si
el número es inferior a 3, las coordenadas no son válidas y probablemente tomen todas el
valor cero.
Private Sub Form_Load(
Text1.LinkTopic = "XYZ|Hx11"
Text1.LinkItem = "text3"
Text1.LinkMode = 1 'link mode must be set last
Open "myFile.XYZ" For Output As #1
End Sub
118 SOFTWARE PARA EL SISTEMA HX11
Private Sub Form_Unload(Cancel As Integer)
Close #1
End
End Sub
Private Sub Text1_Change()
myTag = Val(Mid(Text1, 1, 4))
myX = Val(Mid(Text1, 6, 6))
myY = Val(Mid(Text1, 13, 6))
myZ = Val(Mid(Text1, 20, 6))
scanQuality = Val(Mid(Text1, 27, Len(Text1) - 1))
Print #1, myTag, myX, myY, myZ, scanQuality
End Sub
Programa Layout.exe
El programa Layout.exe requiere fichero Layout.gif para operar.
Ésta debe ser la imagen de fondo (o plano de la planta) donde se posicionan los
monitores y las etiquetas. El usuario debe proporcionar esta imagen (en formato .gif) y ésta
debe estar albergada en el mismo directorio que el programa Layout.exe.
El programa Layout.exe crea los siguientes ficheros:
Layout.scl:
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 119
Este fichero almacena la información de escalado. Para que la posición de los monitores
y etiquetas se muestre correctamente, la imagen en la ha de estar escalada.
Layout.hxm:
Este fichero contiene la disposición de los monitores (layout) y es utilizado por el
programa XYZ para calcular la posición de las etiquetas.
Movimiento de la Imagen de Fondo
Para mover la imagen se hace doble clic sobre ella y se mantiene pulsado el botón
izquierdo del ratón mientras se arrastra a la posición deseada.
Escalado
Antes de salvar los parámetros de escalado, las cajas de texto “Origin” y “XY scale”
deben estar colocadas en la esquina superior izquierda e inferior derecha respectivamente.
La distancia XY desde el origen (Origin) hasta la escala XY (XY scale) puede introducirse
en unidades del Sistema Métrico o del Sistema Imperial (Reino Unido).
Los valores se introducen utilizando la tecla “Enter”.
Borrado de los monitores
Para borrar un monitor se hace sobre él doble clic y se presiona la tecla “Delete”.
Movimiento de Objetos libres
Para mover cualquier objeto libre se hace doble clic sobre él y se mantiene pulsado el
botón izquierdo del ratón mientras se arrastra a la posición deseada.
Tenga en cuenta que la esquina superior izquierda del objeto es el lugar geométrico del
objeto.
120 SOFTWARE PARA EL SISTEMA HX11
El Objeto de referencia
Este objeto puede colocarse en cualquier parte de la imagen y las coordenadas relativas
de la línea de estado en la parte inferior indican la distancia desde la referencia al ratón.
Visualización en tiempo real sobre la imagen de fondo
El programa layout puede usarse para visualizar la posición de los monitores en tiempo
real. Las posiciones se adquieren vía DDE desde el programa XYZ. El programa XYZ debe
estar ejecutándose para poder utilizar esta característica.
Formación de monitores (Consejos de configuración)
El despliegue de los monitores se debe ajustar a la aplicación para la que se necesitan. Si
la aplicación requiere frecuencias de muestreo altas, la precisión y la exactitud tendrán que
reducirse. Cuanto mayor sea el número de monitores que recogen una etiqueta (o mayor
sea el número de líneas trazadas por el programa XYZ), más tiempo tardará el programa XYZ
en calcular la posición.
Para la mayoría de las aplicaciones 2D, sólo se necesitarán 3 monitores.
Para aplicaciones 2D de alta velocidad en tiempo real, la formación debería tender a
tener sólo 3 monitores en rango. Las aplicaciones 3D requerirán más monitores, y se
necesitará iterar los escaneos para evaluar la posición Z.
IMPORTANTE
Todos los archivos utilizados por el Hx11 han de estar en el mismo directorio, y se
tendrán que instalar 4 programas. El instalador install.bat le guiará a través de todo el
proceso de instalación. Todos los ficheros se instalan en el directorio:
\program files\Hx11
Precaución
Asegúrese que o el puerto serie 1 (com1) o el puerto serie 2 (com2) están disponibles
para el Hx11. Se debe encender simultáneamente tanto la red de monitores como el
controlador de red. Si se encienden los receptores y no existe ningún controlador que
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 121
recupere información procedente de ellos, es posible que los buffers de los receptores
desborden. En el caso de que esto suceda (lo cual es poco probable), reinicie los receptores.
Consejo útil
El tiempo de procesado que requiere el programa es debido a la ejecución del código y
no al acceso de los periféricos. Si se aumenta la velocidad del microprocesador, se aumenta
la velocidad de procesado de las coordenadas XYZ.
Si se interrumpe momentáneamente la alimentación, todo el sistema se reiniciará y se
tratará de continuar el flujo de datos en el punto donde se quedó. Si esto ocurre puede ser
necesario comenzar de nuevo toda la operación.
Hx11 Comienzo rápido
A. Asegúrese de que todos los programas y ficheros se encuentran en el mismo
directorio (Hx11), y que el controlador de red está conectado al ordenador y los
receptores.
B. Coloque los receptores situados en las 4 aristas de un cuadrado de área 2m x 2m.
Asegúrese de que los elementos sensores de los receptores están a una distancia
aproximadamente de 2 metros.
C. Coloque una etiqueta en algún lugar del cuadrado a 2-4 metros de distancia desde el
plano del receptor (techo).
D. Tomar la frecuencia de transmisión como la segunda o tercera más lenta
E. Ejecute el programa data y recopile los datos de posición durante unos minutos.
F. Cierre el programa data y ejecute el programa XYZ. (durante DDE ambos programas
deben ejecutarse a la vez).
Los siguientes archivos deben estar en el directorio Hx11 donde deben estar todos los
programas.
122 SOFTWARE PARA EL SISTEMA HX11
Use un editor de texto para abrir el fichero layout.hxm y asegúrese de que los números
de identificación de las etiquetas corresponden a sus receptores. Las coordenadas de un
receptor respecto al resto de receptores deben ser correctas.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 123
Software para el sistema Hx11
Programa data.exe
Este programa lee el flujo de datos directamente del controlador de red y almacena la
información en un fichero. Este fichero puede luego convertirse en datos de
posicionamiento, usando el programa XYZ en modo 1. Si el programa data.exe se está
ejecutando, entonces el programa XYZ.exe puede interceptar el flujo de información en
tiempo real, mientras la información del controlador de red se está almacenando en el
fichero monData.hxm.
A continuación se muestra la ventana de visualización de la información. Los primeros
cuatro dígitos de la cadena de datos son la representación hexadecimal de la ID de
monitor. Cada etiqueta se representa con un total de 10 dígitos hexadecimales. Los
primeros 4 contienen el número de ID de la etiqueta y los 6 restantes representan la
información temporal de la posición. Si se obtiene una misma etiqueta en ambos ciclos de
adquisición superior e inferior (ver la ventana del programa data.exe), entonces la tasa de
transmisión de etiquetas es demasiado alta. Si se utiliza el programa XYZ.exe para extraer
la posición 3D de un fichero monData.hxm creado violando esta regla, el XYZ.exe
probablemente fallará. A veces un monitor puede adquirir la misma etiqueta dos veces en
el mismo ciclo, en este caso, el programa XYZ.exe toma la segunda adquisición como un
eco del primero y se ignora.
REGLA DE OPERACIÓN CRÍTICA
Un monitor o monitores no deben obtener la misma etiqueta en dos ciclos
consecutivos de adquisición. Para encontrar el límite, empezar por la tasa de transmisión
más baja e ir incrementándola gradualmente.
Si el programa XYZ no puede calcular el valor de una posición, entonces devuelve cero
para la coordenada escaneada. Si se configuran las coordenadas de referencia a un valor
124 SOFTWARE PARA EL SISTEMA HX11
distinto de cero y se hace el valor (0,0,0) una posición imposible, pueden ignorarse los
fallos de cálculo en un trazado.
Si el carácter “?” sigue al monitor en lugar de “#”, entonces el monitor específico no
está respondiendo al sondeo del Controlador de Red. En este caso debemos asegurarnos
de que existe conexión y que el monitor está encendido. NOTA: El controlador de red
sondea exclusivamente los receptores especificados en el archivo layout.hxm.
Nótese que las reglas de operación especificadas anteriormente se aplican también al
programa XYZ.exe en todos los modos de operación.
Evaluación de datos y Errores
Si el programa XYZ.exe es incapaz de calcular las coordenada, alguna de las
coordenadas X, Y, Z será cero. Configurando el layout de manera que el valor cero es una
coordenada imposible se ayudará al programa a discriminar escaneos que no hayan
tenido éxito. El último número en la cadena de información, es decir, el resultado de la
búsqueda de posición del programa XYZ.exe, muestra cuántas líneas estaban disponibles
para construir la posición. Si este número es menor de tres, el resultado de las
coordenadas, cualquiera que sea, no debe considerarse válido. Nótese que las etiquetas
temporales pueden colisionar, la información de dos o más etiquetas puede colisionar y
producir una lectura errónea. Si una etiqueta no es obtenida por más de dos monitores
(líneas disponibles <3) y se adquiere sólo en un ciclo de adquisición durante un
determinado período de tiempo, dicha etiqueta debe desecharse.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 125
Versión 2 programa XYZ.exe. Descripción del programa.
El programa XYZ.exe necesita 4 ficheros para funcionar, que deben estar localizados
en el mismo directorio en el que se encuentra el programa XYZ.exe. Estos ficheros son:
MonData.hxm es creado por un programa llamado data.exe. Todos los
ficheros con extensión .hxm son ficheros de texto y pueden leerse y
modificarse usando el programa Notepad.exe.
Layout.hxm La primera columna es la coordenada X del monitor, la segunda
columna es la Y, y la tercera la coordenada Z. La cuarta columna es la ID de la
etiqueta.
Sspeed.hxm En el momento de iniciarse, XYZ busca un parámetro para la
velocidad del sonido en un fichero llamado sspeed.hxm. En el fichero de
muestra la velocidad del sonido tiene valor 340 (m/s). Si se cambia el valor de
este parámetro, el resultado del cálculo de las coordenadas (XYZ) puede verse
afectado.
Ejemplo de fichero Layout.hxm:
2040 1440 0 20048
2950 1000 0 20050
2180 450 0 20052
1000 1000 0 20054
Las coordenadas se introducen siempre en milímetros. El contenido del fichero
layout.hxm mostrado anteriormente se traduce en:
126 SOFTWARE PARA EL SISTEMA HX11
Monitor 20048 localización: (x,y,z) (2040,1440,0)
Monitor 20050 localización: (x,y,z) (2950,1000,0)
Monitor 20052 localización: (x,y,z) (2180, 450,0)
Monitor 20054 localización: (x,y,z) (1000,1000,0)
Sugerencia
Para hacer una prueba use el fichero de parámetros a continuación, colocando los
monitores XY formando una cruz de separación aproximadamente 2 metros en el eje XY.
Parameters.hxm
Los números de la siguiente configuración son arbitrarios, estas cifras se deben fijar
para adaptarse a la configuración.
5 "línea 1: Número total de monitores en la red"
1 "línea 2: retraso entre actualizaciones"
1 "línea 3: Puertos de comunicaciones 1, 2, 3, 4, 5, 6 y etc"
1 "línea 4: 1 = alta y 0 = baja velocidad de comunicación"
1 "línea 5: Modo 0 hasta 2"
256 "línea 6: Paso de escaneo"
1000.5 "línea 7: Tolerancia de escaneo"
10000 "línea 8: Distancia máxima entre monitores"
-200 "línea 9: Comienzo del rango de escaneo para X en mm"
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 127
+200 "línea 10: Fin del rango de escaneo para X en mm"
-200 "línea 11: Comienzo del rango de escaneo para Y en mm"
+200 "línea 12: Fin del rango de escaneo para Y en mm"
2000 "línea 13: Comienzo del rango de escaneo para Z en mm"
4000 "línea 14: Fin del rango de escaneo para Z en mm"
3 "línea 15: visualización 1=on 0=off"
4000 "línea 16: Escala total de ventana de visualización de X"
4000 "línea 17: Escala total de ventana de visualización de Y"
6000 "línea 18: Escala total de ventana de visualización de Y"
0 "línea 19: Offset de ventana de visualización de X"
0 "línea 20: Offset de ventana de visualización de Y"
0 "línea 21: Offset de ventana de visualización de Z"
Descripción de parámetros
Línea 1: Número total de monitores en la red
Este valor es crucial y debe actualizarse si se añade o se quita un monitor de la red. El
programa XYZ necesita este número.
Línea 2: Control de la velocidad de muestreo (toda la red)
Para sistemas estándar, el intervalo entre actualizaciones se calcula de la siguiente
forma:
128 SOFTWARE PARA EL SISTEMA HX11
Intervalo entre actualizaciones (Interval Between Updates)=0.131072s * (Valor de
control de la tasa de muestreo)
El valor de control de la tasa de muestreo debe ser un entero entre 1 y 255. Si se
necesitan tasas mayores o menores, contacten con Hexamite; el Hx11NC (controlador de
red) deberá modificarse o reemplazarse. Al expirar el contador asociado al intervalo, se
recupera la información de todos los monitores de la red.
Línea 3: Puerto de Comunicación
El valor de esta línea selecciona el puerto de comunicaciones serie utilizado, Com1,
Com2,.., ComN. Este parámetro es un valor entero que representa el valor de un puerto
serie libre (ComPort) en el ordenador.
Línea 4: 1 = alta y 0 = baja velocidad de comunicación
No aplica. El valor seleccionado no es relevante.
Línea 5: Modo de operación XYZ
El valor de esta línea puede ser 0, 1 ó 2. Con este valor se selecciona uno de los
siguientes modos.
I.1.1.1.1.1 Modo 0: (Modo de tiempo real)
En este modo, el programa toma la información directamente del flujo de datos del
controlador de red Hx11NC. Estos datos se convierten en coordenadas de tiempo XYZ, de
manera que sean accesibles vía DDE.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 129
Ver el ejemplo de programa en Visual Basic DDExample a continuación de la sección
Interfaz DDE. Tenga en cuenta que en tiempo real, los datos no se corresponden al tiempo
de etiquetado. Dado que se trabaja en tiempo real, el reloj interno del ordenador se
puede utilizar para almacenar el tiempo. En caso de existir un número elevado de
monitores trabajando con frecuencias de muestreo altas, el posible que el ordenador no
pueda almacenar la información correctamente. En este caso, el buffer de comunicación
se llenará y desbordará, lo que provocará el fallo del programa. Si se desea seguir
trabajando en este modo, será necesario reiniciar las operaciones, seleccionando una
frecuencia de muestreo menor y con un número menos de monitores y etiquetas. En caso
de que se necesite operaciones en tiempo real a alta velocidad, pueden dividirse las
operaciones en varios ordenadores. Estos ordenadores pueden ponerse en red para
trabajar a alta velocidad.
I.1.1.1.1.2 Modo 1: (Modo de clasificación)
La información contenida en el fichero llamado MonData.hxm se convierte en
etiquetas de posición (x,y,z) en una línea de tiempo y se almacena en un subdirectorio
[XYZ Data]. Si este subdirectorio no existe, el programa XYZ lo crea. La información de
posición procesada se nombra con la hora y la fecha en que la se adquirieron los datos.
Por ejemplo:
Jun 09 040609143505.XYZ es realmente la fecha 9 de Junio de 2004 y la hora es
14:35:05.
Si se modifica el formato de este nombre, el programa layout no será capaz de
mostrar la etiqueta y su posición en la imagen de fondo.
I.1.1.1.1.3 Modo 2: (Modo de tiempo real)
En este modo el programa XYZ toma su información de otro programa llamado
“data”. Este programa debe estar ejecutándose antes de ejecutar el programa XYZ en este
modo. De la misma manera que en el Modo 0 las coordenadas XYZ están disponibles a
través de DDE (usando el programa DDExample).
130 SOFTWARE PARA EL SISTEMA HX11
En este modo real, quedarse atrás no es un problema. El programa data aprovecha el
flujo de información del controlador Hx11NC y almacena los datos sin procesar en el
fichero. El programa XYZ puede monitorizar la información, convertirla en coordenadas
XYZ y hacer accesibles estas coordenadas vía DDE para aplicaciones en tiempo real.
Línea 6: Paso de escaneo
El ordenador tiene que escanear las posiciones x,y,z aproximadamente. Este número
representa el tamaño del paso de escaneo en mm. Si por ejemplo, la mayor distancia
entre dos monitores que detectan una etiqueta específica es 2000mm, entonces si
selecciona un paso de escaneo igual a 100mm, esto significa que la posición se
determinará a través de 20 escaneos. Sin embargo, en el caso de tener por ejemplo
3000mm en el eje X, 2000mm en el eje Y y 500mm en el eje Z, el número total de
escaneos será 30x20x5= 3000 pasos en total.
Una vez que se ha encontrado la posición aproximada, el ordenador comienza a iterar
(8 veces) para afinar la precisión del escaneo, reduciendo a la mitad el paso de escaneo
cada vez. A continuación se muestra un ejemplo donde inicialmente el paso de escaneo es
128.
Iteración 1. 128/2 o 64mm
Iteración 2. 64/2 o 32mm
Iteración 3. 32/2 o 16mm
Iteración 4. 16/2 o 8mm
Iteración 5. 8/2 o 4mm
Iteración 6. 4/2 o 2mm
Iteración 7. 2/2 o 1mm
Iteración 8. 1/2 o 1/2mm
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 131
Línea 7: Tolerancia de escaneo
El ordenador lleva a cabo la evaluación de mínimo error cuadrado para la
convergencia de las coordenadas. El mínimo resultante es ErrorX2 +ErrorY2 +ErrorZ2. Si el
mínimo es mayor que la tolerancia de escaneo éste cálculo de coordenada se ignora.
Línea 8: Distancia Máxima Entre Monitores
Este valor le dice al programa la distancia máxima permisible entre los monitores que
detectan una etiqueta dada. Por ejemplo, si se tiene una configuración donde la etiqueta
500 es detectada por los monitores que la rodean y por error, un monitor situado a una
distancia de 20 metros también la detecta, el programa XYZ intentará incluir este error de
detección en el cálculo de la posición de la etiqueta 500. Esto puede retrasar el cálculo del
punto de manera significativa y proporcionar resultados erróneos. No es probable que se
detecte la etiqueta 500 por error, pero puede suceder.
Línea 9: Comienzo del rango de escaneo para X en mm
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está
situado en el eje X a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo
del rango toma el valor -300, ello implica que el escaneo para la posición X de la etiqueta
100 comienza en 20100.
Línea 10: Fin del rango de escaneo para X en mm
Este valor determina dónde termina el rango de escaneo para la coordenada X de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada X
de la etiqueta 100 finaliza en 22600 (mm).
Línea 11: Comienzo del rango de escaneo para Y en mm
132 SOFTWARE PARA EL SISTEMA HX11
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está
situado en el eje Y a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo
del rango toma el valor -300, ello implica que el escaneo para la posición Y de la etiqueta
100 comienza en 20100.
Línea 12: Fin del rango de escaneo para Y en mm
Este valor determina dónde termina el rango de escaneo para la coordenada Y de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada Y
de la etiqueta 100 finaliza en 22600 (mm).
Línea 13: Comienzo del rango de escaneo para Z en mm
Si por ejemplo, dos monitores obtienen la etiqueta 100, cuando un monitor está
situado en el eje Z a una distancia 20400 mm y el otro 22400 mm, dado que el comienzo
del rango toma el valor -300, ello implica que el escaneo para la posición Z de la etiqueta
100 comienza en 20100.
Línea 14: Fin del rango de escaneo para Z en mm
Este valor determina dónde termina el rango de escaneo para la coordenada Z de la
etiqueta. Para el ejemplo, dado que este valor es (+200), el escaneo para la coordenada Z
de la etiqueta 100 finaliza en 22600 (mm).
Todos los ejes se tratan por igual. La configuración en el archivo de parámetros se
orienta hacia un ambiente de oficina donde la posición Z de los monitores es igual a 0. La
posición Z para las etiquetas sólo puede tomar un valor entre 2 y 4 metros desde el techo,
lo que reduce el tiempo de procesamiento.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 133
Línea 15: Visualización
Este valor habilita la visualización gráfica de la posición XYZ en cualquier modo. Por
favor, tenga en cuenta que esta característica ralentiza el procesamiento
considerablemente. El ordenador procesará menos etiquetas de posición por segundo si
se activa esta característica, por tanto, se corre el riesgo de que las operaciones en tiempo
real se queden atrás.
Línea 16 y 18: Escalado de la ventana de visualización
Los valores de las líneas 4 y 5 son la escala completa de la ventana de visualización en
milímetros.
Líneas 19 y 21: Offset de la ventana de visualización
Con el valor de estas líneas se desplazará la ventana de visualización a
izquierda/derecha o arriba/abajo.
Interfaz DDE
A continuación se muestra un sencillo programa de enlace DDE escrito en visual Basic
y llamado DDExample. Este programa lee los resultados del programa XYZ que se esté
ejecutando en cualquiera de sus 3 modos.
Los resultados de este ejemplo se almacena en un fichero llamado “myFile.XYZ”. La
calidad del escaneo indica el número de líneas equidistantes extraídas del programa data.
Si el número es inferior a 3, las coordenadas no son válidas y probablemente tomen todas
el valor cero.
134 SOFTWARE PARA EL SISTEMA HX11
Private Sub Form_Load(
Text1.LinkTopic = "XYZ|Hx11"
Text1.LinkItem = "text3"
Text1.LinkMode = 1 'link mode must be set last
Open "myFile.XYZ" For Output As #1
End Sub
Private Sub Form_Unload(Cancel As Integer)
Close #1
End
End Sub
Private Sub Text1_Change()
myTag = Val(Mid(Text1, 1, 4))
myX = Val(Mid(Text1, 6, 6))
myY = Val(Mid(Text1, 13, 6))
myZ = Val(Mid(Text1, 20, 6))
scanQuality = Val(Mid(Text1, 27, Len(Text1) - 1))
Print #1, myTag, myX, myY, myZ, scanQuality
End Sub
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 135
Programa Layout.exe
El programa Layout.exe requiere fichero Layout.gif para operar.
Ésta debe ser la imagen de fondo (o plano de la planta) donde se posicionan los
monitores y las etiquetas. El usuario debe proporcionar esta imagen (en formato .gif) y
ésta debe estar albergada en el mismo directorio que el programa Layout.exe.
El programa Layout.exe crea los siguientes ficheros:
Layout.scl:
Este fichero almacena la información de escalado. Para que la posición de los
monitores y etiquetas se muestre correctamente, la imagen en la ha de estar escalada.
Layout.hxm:
Este fichero contiene la disposición de los monitores (layout) y es utilizado por el
programa XYZ para calcular la posición de las etiquetas.
Movimiento de la Imagen de Fondo
Para mover la imagen se hace doble clic sobre ella y se mantiene pulsado el botón
izquierdo del ratón mientras se arrastra a la posición deseada.
Escalado
136 SOFTWARE PARA EL SISTEMA HX11
Antes de salvar los parámetros de escalado, las cajas de texto “Origin” y “XY scale”
deben estar colocadas en la esquina superior izquierda e inferior derecha
respectivamente.
La distancia XY desde el origen (Origin) hasta la escala XY (XY scale) puede
introducirse en unidades del Sistema Métrico o del Sistema Imperial (Reino Unido).
Los valores se introducen utilizando la tecla “Enter”.
Borrado de los monitores
Para borrar un monitor se hace sobre él doble clic y se presiona la tecla “Delete”.
Movimiento de Objetos libres
Para mover cualquier objeto libre se hace doble clic sobre él y se mantiene pulsado el
botón izquierdo del ratón mientras se arrastra a la posición deseada.
Tenga en cuenta que la esquina superior izquierda del objeto es el lugar geométrico
del objeto.
El Objeto de referencia
Este objeto puede colocarse en cualquier parte de la imagen y las coordenadas
relativas de la línea de estado en la parte inferior indican la distancia desde la referencia al
ratón.
Visualización en tiempo real sobre la imagen de fondo
El programa layout puede usarse para visualizar la posición de los monitores en
tiempo real. Las posiciones se adquieren via DDE desde el programa XYZ. El programa XYZ
debe estar ejecutándose para poder utilizar esta característica.
ANEXO I. SOFTWARE DE FABRICANTE PARA EL SISTEMA HX11 137
Formación de monitores (Consejos de configuración)
El despliegue de los monitores se debe ajustar a la aplicación para la que se necesitan.
Si la aplicación requiere frecuencias de muestreo altas, la precisión y la exactitud tendrán
que reducirse. Cuanto mayor sea el número de monitores que recogen una etiqueta (o
mayor sea el número de líneas trazadas por el programa XYZ), más tiempo tardará el
programa XYZ en calcular la posición.
Para la mayoría de las aplicaciones 2D, sólo se necesitarán 3 monitores.
Para aplicaciones 2D de alta velocidad en tiempo real, la formación debería tender a
tener sólo 3 monitores en rango. Las aplicaciones 3D requerirán más monitores, y se
necesitará iterar los escaneos para evaluar la posición Z.
IMPORTANTE
Todos los archivos utilizados por el Hx11 han de estar en el mismo directorio, y se
tendrán que instalar 4 programas. El instalador install.bat le guiará a través de todo el
proceso de instalación. Todos los ficheros se instalan en el directorio:
\program files\Hx11
Precaución
Asegúrese que o el puerto serie 1 (com1) o el puerto serie 2 (com2) están disponibles
para el Hx11. Se debe encender simultáneamente tanto la red de monitores como el
controlador de red. Si se encienden los receptores y no existe ningún controlador que
recupere información procedente de ellos, es posible que los buffers de los receptores
desborden. En el caso de que esto suceda (lo cual es poco probable), reinicie los
receptores.
Consejo útil
138 SOFTWARE PARA EL SISTEMA HX11
El tiempo de procesado que requiere el programa es debido a la ejecución del código
y no al acceso de los periféricos. Si se aumenta la velocidad del microprocesador, se
aumenta la velocidad de procesado de las coordenadas XYZ.
Si se interrumpe momentáneamente la alimentación, todo el sistema se reiniciará y
se tratará de continuar el flujo de datos en el punto donde se quedó. Si esto ocurre puede
ser necesario comenzar de nuevo toda la operación.
Hx11 Comienzo rápido
G. Asegúrese de que todos los programas y ficheros se encuentran en el mismo
directorio (Hx11), y que el controlador de red está conectado al ordenador y los
receptores.
H. Coloque los receptores situados en las 4 aristas de un cuadrado de área 2m x 2m.
Asegúrese de que los elementos sensores de los receptores están a una distancia
aproximadamente de 2 metros.
I. Coloque una etiqueta en algún lugar del cuadrado a 2-4 metros de distancia desde
el plano del receptor (techo).
J. Tomar la frecuencia de transmisión como la segunda o tercera más lenta
K. Ejecute el programa data y recopile los datos de posición durante unos minutos.
L. Cierre el programa data y ejecute el programa XYZ. (durante DDE ambos
programas deben ejecutarse a la vez).
Los siguientes archivos deben estar en el directorio Hx11 donde deben estar todos los
programas.
Use un editor de texto para abrir el fichero layout.hxm y asegúrese de que los
números de identificación de las etiquetas corresponden a sus receptores. Las
coordenadas de un receptor respecto al resto de receptores deben ser correctas.