0% encontró este documento útil (0 votos)
1 vistas45 páginas

Función de Transferencia: © Festo Didactic GMBH & Co. KG 136

El documento describe la configuración y uso de diversos dispositivos y funciones del Robotino, incluyendo la correlación entre la tensión analógica y la distancia, así como el manejo de la cámara, conectores de E/S, y sistemas de navegación como la odometría y el sensor NorthStar. Se proporcionan detalles sobre la entrada y salida de señales, así como la supervisión de la alimentación y el uso de un joystick. Además, se incluyen instrucciones para la calibración y ajustes necesarios para el funcionamiento óptimo del Robotino.

Cargado por

Maria Edivânia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas45 páginas

Función de Transferencia: © Festo Didactic GMBH & Co. KG 136

El documento describe la configuración y uso de diversos dispositivos y funciones del Robotino, incluyendo la correlación entre la tensión analógica y la distancia, así como el manejo de la cámara, conectores de E/S, y sistemas de navegación como la odometría y el sensor NorthStar. Se proporcionan detalles sobre la entrada y salida de señales, así como la supervisión de la alimentación y el uso de un joystick. Además, se incluyen instrucciones para la calibración y ajustes necesarios para el funcionamiento óptimo del Robotino.

Cargado por

Maria Edivânia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Dispositivos

Con esta correlación es fácil configurar una función de transferencia 63 de forma que la tensión
analógica se corresponda con la distancia al objeto en cm. Tenga en cuenta que esta correlación es la
inversa de la mostrada arriba. Esto significa que debemos omitir distancias inferiores a 4 cm. Una
distancia inferior a 4 cm no puede distinguirse de una distancia superior a 4 cm, puesto que la tensión
analógica de la salida del sensor es la misma.

Además el convertidor analógico digital sólo mide voltajes de hasta 2,55 V.

La correlación entre la tensión analógica y la distancia también viene influida por el material del objeto a
detectar. Por todo ello, es una buena práctica establecer la correlación por medios propios en cada caso.

136 © Festo Didactic GmbH & Co. KG


Dispositivos

Los valores de la función de transferencia 63 se dan a continuación- Puede Copiar y Pegar estos valores
en su propia función de transferencia 63 .

0.3 40
0.39 35
0.41 30
0.5 25
0.75 18
0.8 16
0.95 14
1.05 12
1.3 10
1.4 9
1.55 8
1.8 7
2 6
2.35 5
2.55 4

[Link] Sistema de imágenes

Esta carpeta contiene bloques de función para utilizar la cámara del Robotino.

© Festo Didactic GmbH & Co. KG 137


Dispositivos

[Link].1 Cámara

La imagen en directo de la cámara del Robotino.

Entradas Tipo Predet Descripción


ermin
ado

Salidas
Imagen imag La imagen de la cámara del Robotino
en

Para ajustar la resolución de la imagen, puede utilizar el diálogo del dispositivo 128 .

[Link].1 Diálogo

Muestra la última imagen. Para ajustar la resolución de la imagen, véase diálogo del dispositivo 128 .

138 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link] Conector E/S

Aquí puede encontrar bloques de función para acceder al conector de E/S del Robotino.

[Link].1 Relé

Relés conmutadores 1 y 2

© Festo Didactic GmbH & Co. KG 139


Dispositivos

Entradas Tipo Predet Descripción


ermin
ado
Valor bool false Si es falsa (false) el relé está desactivado.

Las conexiones del relé 1 son REL1_NO, REL1_CO y REL1_NC.


Las conexiones del relé 2 son REL2_NO, REL2_CO y REL2_NC.

140 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link].2 Salida digital

Activa una salida digital

Entradas Tipo Predet Descripción


ermin
ado
Valor bool false Si es verdadera (true) la salida en el conector de E/S del Robotino es +10V.
De lo contrario, la salida es 0V

El conector para la salida digital x es DOx con x en [1;8].

© Festo Didactic GmbH & Co. KG 141


Dispositivos

[Link].3 Entrada analógica

Lee el valor de una entrada analógica.

Salidas Tipo Unida Descripción


d

142 © Festo Didactic GmbH & Co. KG


Dispositivos

Valor float Volt El voltaje medido. Margen [0;10].

El conector para la entrada analógica x es AINx con x en [1;8].

© Festo Didactic GmbH & Co. KG 143


Dispositivos

[Link].4 Entrada digital

Lee el valor de una entrada digital.

Salidas Tipo Descripción


Valor bool El valor del conector de E/S del Robotino. Los voltajes inferiores a 5,75 V son
considerados como falsos (false). Los valores superiores a 8.6V son considerados
como verdaderos (true). Si el voltaje en el conector se halla entre 5,75V y 8,6V el
valor permanece inalterable.

El conector para la entrada digital x es DIx con x en [1;8].

144 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link] Navegación

Esta carpeta contiene bloques de función para la localización del Robotino.

[Link].1 Odometría

Para esta función se necesita una tarjeta de memoria Compact-Flash de 1GB para
Robotino (V1.7 o superior).
(No funciona con tarjetas de memoria de 256MB ni versiones <=1.6)

© Festo Didactic GmbH & Co. KG 145


Dispositivos

La odometría es la utilización de datos procedentes del movimiento de los actuadores para estimar los
cambios de posición en el tiempo. Véase [Link]

La rotación de las ruedas se mide con la mayor resolución posible en el tiempo. A cada paso de tiempo,
se calcula la distancia recorrida por el vehículo a partir de la velocidad de rotación de las ruedas. Estas
distancias muy pequeñas obtenidas de los pasos, se integran a lo largo del tiempo. Con ello se obtiene la
posición actual relativa a la posición de partida. Con este método se obtienen unos buenos resultados
locales. En largas distancias o bajo condiciones adversas (deslizamiento de las ruedas debido a polvo en
el suelo, deriva producida por un sentido preferente del piso), este método produce errores muy
apreciables. Teniendo esto en cuenta, la odometría siempre se combina con otros métodos para
compensar los errores citados.

Entradas Tipo Unida Prede Descripción


d termi
nado
x float mm 0 La nueva posición x La odometría se reinicia a la nueva posición si
"Set" es verdadero (true).
y float mm 0 La nueva posición y La odometría se reinicia a la nueva posición si
"Set" es verdadero (true).
phi float Grado 0 La nueva orientación La odometría se reinicia a la nueva posición si
s "Set" es verdadero (true).
Set bool false Si es verdadera (true), la odometría se establece a los valores de las
entradas x, y y phi. Para reiniciar la odometría a (0,0,0) sólo es necesario
poner esta entrada en verdadero (true) durante un paso. No es
necesario que estén conectadas las demás entradas, puesto que los
valores predeterminados son 0.

Salidas
x float mm La posición x actual de la odometría en las coordenadas globales.
y float mm La posición y actual de la odometría en las coordenadas globales.
phi float Grado La orientación actual de la odometría en las coordenadas globales.
s

[Link].2 North Star

North Star ® es un sensor que determina la posición absoluta del Robotino® con la ayuda de proyectores.

146 © Festo Didactic GmbH & Co. KG


Dispositivos

Entradas Tipo Unida Prede Descripción


d termi
nado
Número de int 1 El número de la sala en la que se halla actualmente Robotino.
sala Las salas se numeran empezando por 1.
Calibración float mm 1 Distancia entre el detector y el techo. Si la distancia al techo es de 3 m,
techo la distancia entre el detector y el techo es de aproximadamente 2800
mm.
x float mm 0 posición x del origen, establecido por la entrada "Set".
y float mm 0 posición y del origen, establecido por la entrada "Set".
phi float Grado 0 Orientación del origen, establecido por la entrada "Set".
s
Set bool false Si es verdadera (true), se utiliza la pose actual (x,y,phi) como origen.

Salidas
x float mm La posición x actual en las coordenadas globales.
y float mm La posición y actual en las coordenadas globales.
phi float Grado La orientación actual en las coordenadas globales.
s
Proyectore int Número de proyectores visibles.
s

El detector NorthStar puede fijarse al Robotino de diferentes formas. Según la configuración, el archivo: /
etc/robotino/[Link] del robotino debe ser adaptado con un editor de texto. El valor de la
orientación debe establecerse según la figura inferior.

<NorthStar>
<!--The orientation of the northstar sensor. See [Link]-->

© Festo Didactic GmbH & Co. KG 147


Dispositivos

<Orientation value="1" />


</NorthStar>

148 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link].2 Diálogo

Punto A Intensidad del primer punto de luz emitido por el proyector.


Punto B Intensidad del segundo punto de luz emitido por el proyector.
Sala actual El número de sala detectado por el sensor NorthStar.
Número de proyectores Número de proyectores visibles.
Número de secuencia El número de secuencia es incrementado en una unidad cada vez que el
sensor NorthStar proporciona nuevas lecturas.

© Festo Didactic GmbH & Co. KG 149


Dispositivos

[Link].2 Ejemplo

El panel de control se utiliza para mover el Robotino.

NorthStar detectará el proyector que pertenece a la sala número 4. El nuevo proyector NorthStar debe
establecerse para la sala 1.

150 © Festo Didactic GmbH & Co. KG


Dispositivos

A través de la constante booleana (true/false) el sistema de coordenadas de NorthStar y la odometría


pueden transformarse de forma que "pose NorthStar actual" == "pose odometría actual" ==
(100,100,90).

Restando los componentes de NorthStar y odometría, puede verse el error que se produce entre
odometría y NorthStar.

[Link] Ampliación E/S

Esta carpeta contiene bloques de función para otros interfaces de hardware del Robotino.

[Link].1 Entrada del transmisor giratorio

Este bloque de función lee valores del transmisor giratorio (encoder) del Robotino.
La entrada del transmisor giratorio interpreta las señales de un encoder digital (Canales A-B, código de
Gray).
Se tienen en cuenta los flancos ascendente y descendente. Esto produce una resolución efectiva de 4
cuadrantes.

Ejemplo: El encoder de los motores de accionamiento del Robotino tiene una resolución de 500 pulsos.
De forma efectiva, se cuentan 2000 pulsos.

© Festo Didactic GmbH & Co. KG 151


Dispositivos

Entradas Tipo Unid Prede Descripción


ad termi
nado
Restablece bool 0 Si es verdadera (true) la posición actual se restablece a 0.
r posición

Salidas
Velocidad int pulso El voltaje medido.
actual s/s
Posición int pulso La suma de todos los pulsos medidos desde la puesta en marcha de
actual s Robotino o desde que "Restablecer posición" = true.

[Link].2 Salida de potencia

Este bloque de función asigna valores de consigna a la salida de potencia del Robotino (anteriormente
Motor 4). La salida de potencia sólo puede utilizarse si el subprograma no utiliza la pinza.

La salida es materializada por un puente H, que puede suministrar hasta 5A de corriente continua.
El puente H es controlado por una señal PWM de alta frecuencia y un bit para la dirección.
El signo del valor de consigna dado por la entrada corresponde al bit de dirección.
El valor absoluto del valor de consigna influye la señal PWM.
Un valor de consigna de 0 no genera ninguna señal PWM, es decir, el puente H no suministra corriente
alguna.
Un valor de consigna de 50 produce una relación high-low (alto-bajo) de la señal PWM del 50%.
Un valor de consigna de 100 genera una señal permanente alta, es decir, el puente H suministra la
máxima corriente.

Entradas Tipo Unid Prede Descripción


ad termi
nado
Valor de int 0 Establece el bit de dirección y la señal PWM. Margen -100 a 1000. Los
consigna valores inferiores a -100 son interpretados como -100. Los valores
superiores a 100 son interpretados como 100.

Salidas
Intensidad float A Intensidad (corriente) que fluye por el puente H.

152 © Festo Didactic GmbH & Co. KG


Dispositivos

La intensidad suministrada por la salida de potencia está limitada de forma predeterminada.


Para cambiar o inhabilitar esta limitación, debe editarse el archivo: /etc/robotino/[Link] en el
Robotino.
Los nuevos valores se asignan al cabo de 2 segundos.

[Link].3 Pinza

Utilice este módulo con una Pinza Robotino de Festo. La Pinza sólo puede utilizarse si el subprograma
actual no contiene ninguna salida de potencia 152 .

Entradas Tipo Predet Descripción


ermin
ado
Abrir bool false Si es verdadera (true) la pinza está abierta.

Salidas
Abierta bool Verdadera (true) si la pinza ha alcanzado su posición abierta.
Cerrada bool Verdadera (true) si la pinza ha alcanzado su posición cerrada.

La Pinza debe conectarse el puerto X15 en la PCB detrás de la batería:


cable marrón (+) a la izquierda, cable azul (-) a la derecha.

[Link] Sensores internos

[Link].1 Supervisión de la alimentación

El módulo de supervisión de la alimentación del Robotino.

Entradas Tipo Unid Prede Descripción


ad termi
nado

Salidas

© Festo Didactic GmbH & Co. KG 153


Dispositivos

Consumo float A La intensidad actual consumida por las baterías del Robotino.
de
potencia
Batería float Volt Tensión de la batería.

[Link].2 Desconexión

Desconexión y apagado del Robotino.

Entradas Tipo Predet Descripción


ermin
ado
Desconexió bool false Si es verdadera (true), Robotino se desconecta y se apaga.
n

6.4 Joystick
El dispositivo "Joystick" permite el acceso a una palanca de mando conectada localmente.

6.4.1 Diálogo

1 Lista de joysticks El cuadro combinado contiene una entrada para cada joystick disponible
disponibles en el ordenador. La lista se actualiza cada vez que se añade o se retira un
joystick del ordenador. Al seleccionar un joystick, sus botones y ejes están
disponibles a través de los correspondientes bloques de función.
2 Número de ejes El número de ejes del joystick seleccionado.

154 © Festo Didactic GmbH & Co. KG


Dispositivos

3 Número de botones El número de botones del joystick seleccionado.

6.4.2 Boques de función


Bloques de función para leer estados de ejes y botones.

[Link] Botón

Leer el estado de un botón del joystick.

Salidas Tipo Descripción


Valor bool Verdadero (true) si el botón se halla presionado, de lo contrario, falso (false).

[Link] Eje

Leer la posición del eje de un joystick.

Salidas Tipo Descripción


Valor int Margen -1000 a 1000.

© Festo Didactic GmbH & Co. KG 155


Dispositivos

6.5 Cámara local


El dispositivo "Cámara local" permite el acceso a una cámara que esté conectada al ordenador ([Link]. una
webcam).

6.5.1 Diálogo

1 Lista de cámaras Aquí se muestran todas las cámaras conectadas al sistema. La lista se
disponibles actualiza cuando se conecta o se retira una nueva cámara del ordenador.
2 Escaneo Actualiza la lista de cámaras disponibles.
3 Conectar/Desconectar Establece/Cierra la conexión con la cámara seleccionada.
4 Resolución/Profundidad Aquí puede ajustar la resolución y la profundidad de color. Se muestran
de color todas las resoluciones soportadas por la cámara.
5 Ventana de mensajes Muestra los diferentes mensajes en forma de texto.

Tras seleccionar una cámara, se establece la conexión. Entonces es posible ajustar la resolución.

156 © Festo Didactic GmbH & Co. KG


Dispositivos

6.5.2 Boques de función


Los bloques de función permiten utilizar el dispositivo "Cámara local" en un subprograma.

[Link] Cámara

Imagen en directo de la cámara local.

Entradas Tipo Predet Descripción


ermin
ado

Salidas
Imagen imag Imagen en directo
en

La profundidad de color y la resolución pueden seleccionarse en el diálogo del dispositivo 156 .

© Festo Didactic GmbH & Co. KG 157


Dispositivos

[Link].1 Diálogo

El diálogo de la cámara muestra la imagen actual Para ajustar la resolución de la imagen, véase diálogo
del dispositivo 156 .

6.6 Cliente OPC


OPC es un interface estandarizado entre diferentes aplicaciones de software y controladores de
diferentes módulos de hardware ([Link]. PLCs).
A un mismo Servidor OPC pueden conectarse varios Clientes OPC.
Un Servidor OPC (especial) a menudo es ofrecido por los fabricantes de PLC más conocidos.

En la muestra que sigue, Festo EasyPort se conectará al Robotino View a través del Servidor Festo EzOPC
gratuito.

El Servidor EzOPC asigna las entradas/salidas de hasta 4 EasyPorts utilizando los denominados "Grupos
(Groups)" y "Etiquetas (Tags)":

El Dispositivo 1 mostrado como grupo "EasyPort1"


Por lo tanto, la salida 1 aparece como etiqueta "EasyPort1.OutputPort1"

Seguir los pasos siguientes:

1. Instalar el EzOPC-Server.
2. Ejecutar el EzOPC Server y elegir "Process Simulation…" y "PLC via EasyPort".
3. Poner en marcha Robotino View.
4. Añadir el dispositivo "OPC Client"
5. En el menú de diálogo del dispositivo, seleccionar Ajustes predeterminados "Festo EzOPC EasyPort".
Los valores predeterminados para el EasyPort serán cargados.

158 © Festo Didactic GmbH & Co. KG


Dispositivos

6. Si es necesario, seleccionar "[Link].1".


7. Iniciar la conexión.
8. Usar los bloques de función OPC Client para acceder a los datos OPC de las entradas/salidas del
EasyPort.

Sugerencia: Si desea utilizar un PLC de otro fabricante, necesitará el OPC Server y el OPC Client de este
fabricante. Utilice un OPC Client para ver qué etiquetas están disponibles en el OPC Server de su PLC.

Puede hallarse información adicional y descargas en: [Link]

6.6.1 Diálogo

1 Seleccionar OPC Server La lista muestra los Servidores OPC disponibles localmente.

© Festo Didactic GmbH & Co. KG 159


Dispositivos

2 Conectar Establece una conexión con el OPC Server seleccionado.


3 Escaneo Actualiza la lista de servidores OPC
4 Asignación Esta tabla define la asignación de los bloques de función a los "Tags"
OPC.

Fila Bloque de función


DO_Po Salida digital 1
rt_1
DO_Po Salida digital 2
rt_2
DO_Po Salida digital 3
rt_3
DO_Po Salida digital 4
rt_4
DI_Por Entrada digital 1
t_1
DI_Por Entrada digital 2
t_2
DI_Por Entrada digital 3
t_3
DI_Por Entrada digital 4
t_4
AO_Po Salida analógica 1
rt_1
AO_Po Salida analógica 2
rt_2
AO_Po Salida analógica 3
rt_3
AO_Po Salida analógica 4
rt_4
AI_Por Entrada analógica 1
t_1
AI_Por Entrada analógica 2
t_2
AI_Por Entrada analógica 3
t_3
AI_Por Entrada analógica 4
t_4

El menú de contexto proporciona la siguiente funcionalidad:

160 © Festo Didactic GmbH & Co. KG


Dispositivos

Ajustes predefinidos Carga una asignación adecuada para VirtualPLC


Festo EzOPC VirtualPLC
Ajustes predefinidos Carga una asignación adecuada para EasyPort
Festo EzOPC EasyPort
Load Carga una asignación desde un archivo
Save Guarda la asignación actual en un archivo.
Help Muestra esta página de ayuda.

6.6.2 Boques de función


Los bloques de función permiten utilizar el dispositivo "OPC Client" en un subprograma.

[Link] Entradas

[Link].1 Entrada analógica

Lectura del "Tag" asignado a AI_Port_x con x en [1;4]

Salidas Tipo Descripción


Valor int Margen 0 a 65535

© Festo Didactic GmbH & Co. KG 161


Dispositivos

[Link].2 Entrada digital

Lee valores de bit del "Tag" asignado a DI_Port_x con x en [1;4]

Salidas Tipo Descripción


Bit 0 bool True si el bit 0 está activo
...
Bit 7 bool True si el bit 7 está activo

[Link] Salidas

[Link].1 Salida analógica

Escribir un valor en el "Tag" asignado a AO_Port_x con x en [1;4]

Entradas Tipo Descripción


Valor int Margen 0 a 65535

162 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link].2 Salida digital

Activa bits del "Tag" asignado a DO_Port_x con x en [1;4]

Entradas Tipo Descripción


Bit 0 bool Si es verdadero (true) el valor enviado al OPC server es aumentado por 2^0 = 1.
...
Bit 7 bool Si es verdadero (true) el valor enviado al OPC server es aumentado por 2^7 = 128.

6.7 Intercambio de datos


Los dispositivos de esta categoría se utilizan para intercambiar datos entre diferentes instancias de
Robotino View en una red.

6.7.1 Servidor
El servidor de intercambio de datos puede ser utilizado por un número cualquiera de clientes para
intercambiar datos a través de un número cualquiera de canales de comunicación. Los canales de
comunicación se crean en el lado del servidor. Los canales de comunicación creados son difundidos a
todos los clientes. Los clientes pueden elegir los canales con los que van a intercambiar datos con el
servidor.

Servidor y clientes tienen los mismos derechos durante el intercambio de datos. Cuando un cliente
escribe datos en un canal de comunicación, los datos se transfieren al servidor y de allí a todos los demás
clientes. Si más de un participante está escribiendo en el mismo canal. es impredecible saber qué dato
contendrá finalmente el canal de comunicación.

Después de añadir el dispositivo servidor de intercambio de datos en la librería de bloques de función,


pueden añadirse los canales de comunicación por medio del menú de contexto de los servidores.

© Festo Didactic GmbH & Co. KG 163


Dispositivos

Aparece un diálogo para introducir el nombre y el tipo del nuevo canal.

El nombre del canal debe ser único y debe contener sólo caracteres ASCII, excluyendo el carácter "/".
Presionando "Aceptar" se crea el canal. En la librería de bloques de función aparecen dos nuevos
bloques con el nombre "nombre del canal Escritor" y "nombre del canal Lector". Estos bloques de
función se utilizan para escribir o para leer datos de un canal de comunicación.

164 © Festo Didactic GmbH & Co. KG


Dispositivos

© Festo Didactic GmbH & Co. KG 165


Dispositivos

[Link] Diálogo

El diálogo del servidor de intercambio de datos se abre haciendo doble clic en el símbolo del dispositivo
en la librería de bloques de función.

El puerto del servidor es el puerto TCP por el que escucha el servidor para conexiones de entrada.
El intervalo de envío es el intervalo de tiempo que debe transcurrir tras una transmisión hasta que se
permita la siguiente transmisión.

Con "Iniciar servidor" el servidor empieza a escuchar. A partir de entonces, los clientes pueden
conectarse con el servidor.

6.7.2 Cliente
El cliente de intercambio de datos se conecta a un servidor de intercambio de datos 163 . Tras ello, pueden
intercambiarse datos con el servidor utilizando los canales de comunicación del servidor.

Una vez que el cliente se ha conectado correctamente con el servidor de intercambio de datos 163 se
dispone de una lista de canales de comunicación.

166 © Festo Didactic GmbH & Co. KG


Dispositivos

En el lado del servidor se han creado los canales de comunicación a,b del tipo I32 (entero (integer) de 32
bit) y c,d del tipo FLOAT32 (número real de coma flotante de 32 bit). Ahora pueden añadirse los canales al
cliente en la librería de bloques de función.

© Festo Didactic GmbH & Co. KG 167


Dispositivos

Como en el servidor de intercambio de datos 163 la librería de bloques de función muestra dos bloques de
función tras añadir un canal al cliente. A través del menú de contexto del cliente, pueden añadirse
canales uno por uno o todos a la vez. Utilizando la entrada "Conectar" del menú de contexto puede
establecerse la conexión con el servidor sin utilizar el diálogo del cliente.

168 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link] Diálogo

La dirección del servidor es la dirección IP del servidor con el cual desea conectarse el cliente. Si sólo se
da la dirección IP, la conexión se establece utilizando el puerto predeterminado del servidor 9080. Si el
servidor está escuchando por un puerto diferente, puede especificarse el número del puerto en la
dirección IP, separándolo por ":".

Si el servidor está escuchando en el host local por el puerto 8000, la dirección del servidor para el cliente
deberá ser [Link]:8000.

Si está activa la opción "Reconexión automática" los clientes tratan de establecer una nueva conexión si
se pierde la conexión actual.
El intervalo de envío es el intervalo de tiempo que debe transcurrir tras una transmisión hasta que se
permita la siguiente transmisión.

© Festo Didactic GmbH & Co. KG 169


Dispositivos

6.7.3 Boques de función


Los bloques de función se utilizan para intercambiar datos con los dispositivos.

[Link] Lector

El Lector lee datos de un canal de comunicación.

Salidas Tipo Descripción


Valor int, float, float El valor del canal de comunicación.
array, laser range
data

[Link] Escritor

El Escritor escribe datos en un canal de comunicación.

Entradas Tipo Predeterm Descripción


inado
Valor int, float, float array, 0 El valor es enviado al servidor y de allí es difundido a
laser range data todos los clientes.

6.8 Intercambio de datos UDP


Con el dispositivo de intercambio de datos UDP, pueden intercambiarse datos entre Robotino View y
aplicaciones externas a través de UDP.

6.8.1 Protocolo
Especificación de la estructura de los datos

Byte Función

170 © Festo Didactic GmbH & Co. KG


Dispositivos

0 Message ID
1-2 Número de bytes de todo el mensaje N. El tipo es UINT16 172
3 Checksum (a inicializar con 0 cuando se genera el paquete, véase Suma de prueba 171 )
N-1 Último byte del mensaje

[Link] Suma de prueba

Si la longitud del mensaje es inferior a 100 bytes, la suma s0 se calculará a partir de los bytes de todo el
paquete. Si el mensaje contiene 100 o más bytes, s0 se calculará a partir del primero y los últimos 50
bytes del mensaje.

En ambos casos el byte de suma de prueba (checksum) debe inicializarse con 0. La suma de prueba se
calcula para

checksum = 0xff - s0

unsigned char checksum( const unsigned char* payload, unsigned int payloadLength ) const
{
unsigned char s0 = 0;

if( payloadLength < 100 )


{
for( int i = 0; i < payloadLength; ++i )
{
s0 += payload[i];
}
}
else
{
for( int i = 0; i < 50; ++i )
{
s0 += payload[i];
}
for( int i = payloadLength-1; i >= payloadLength - 50; --i )
{
s0 += payload[i];
}
}

return ( 0xFF - s0 );
}

Para verificar si el paquete ha sido transmitido correctamente, los bytes de todo el mensaje serán
acumulados al byte de suma s1 si la longitud del mensaje es inferior a 100 bytes. Si contiene 100 bytes o
más, s1 se calcula a partir del primero y los últimos 50 bytes del mensaje.

El paquete es correcto si

s1 = 0xFF

© Festo Didactic GmbH & Co. KG 171


Dispositivos

[Link] Tipos de datos

Tip Ancho Descripción


o en
bytes
UIN 2 Byte0: low
T16 Byte1: high
En un pequeño sistema endian, un valor de datos UINT16 puede copiarse directamente en el
payload.
Ejemplo:
//encoding
uint16 value = 9873;
char payload[2];
uint16* p = reinterpret_cast<uint16*>( payload );
*p = value;

//decoding
value = *( reinterpret_cast<const uint16*>( payload ) );
INT 4 Byte0: low
32 Byte3: high
En un pequeño sistema endian, un valor de datos INT32 puede copiarse directamente en el
payload.
Ejemplo:
//encoding
int32 value = -3459873;
char payload[4];
int32* p = reinterpret_cast<int32*>( payload );
*p = value;

//decoding
value = *( reinterpret_cast<const int32*>( payload ) );
UIN 4 Byte0: low
T32 Byte3: high
En un pequeño sistema endian, un valor de datos UINT32 puede copiarse directamente en el
payload.
Ejemplo:
//encoding
uint32 value = 3459873;
char payload[4];
uint32* p = reinterpret_cast<uint32*>( payload );
*p = value;

//decoding
value = *( reinterpret_cast<const uint32*>( payload ) );

172 © Festo Didactic GmbH & Co. KG


Dispositivos

[Link] Mensaje 0

Byte Función
0 0
1 36
2 0
3 Suma de prueba 171
4-7 INT0 del tipo INT32 172
8-11 INT1 del tipo INT32 172
12-15 INT2 del tipo INT32 172
16-19 INT3 del tipo INT32 172
20-23 INT4 del tipo INT32 172
24-27 INT5 del tipo INT32 172
28-31 INT6 del tipo INT32 172
32-35 INT7 del tipo INT32 172

[Link] Mensaje 1

Byte Función
0 1
1 36
2 0
3 Suma de prueba 171
4-7 INT0 del tipo INT32 172
8-11 INT1 del tipo INT32 172
12-15 INT2 del tipo INT32 172
16-19 INT3 del tipo INT32 172
20-23 INT4 del tipo INT32 172
24-27 INT5 del tipo INT32 172
28-31 INT6 del tipo INT32 172
32-35 INT7 del tipo INT32 172

© Festo Didactic GmbH & Co. KG 173


Dispositivos

6.8.2 Diálogo

El diálogo del dispositivo de intercambio de datos UDP se abre haciendo doble clic en el dispositivo en la
librería de bloques de función.

En la ventana de diálogo pueden configurarse los datagramas de envío y recepción UDP:

Con "Puerto del servidor" se configura el número de puerto UDP en el cual escucha datagramas el
servidor y desde el cual se envían.
Con "Iniciar servidor" el servidor empieza a escuchar. Una vez se ha puesto en marcha el servidor, los
paquetes de datos UDP se reciben, se interpretan y se envían.

El "intervalo" es el intervalo de tiempo que debe transcurrir tras una transmisión hasta que se permita la
siguiente transmisión.
Para cada mensaje (mensaje 0 ó mensaje 1) el envío puede activarse (on) o desactivarse (off)
individualmente.

174 © Festo Didactic GmbH & Co. KG


Dispositivos

Las direcciones IP y puertos de los receptores de datos pueden introducirse en la tabla "Receptores"
(Listeners). Si no se especifica un puerto, se utilizará el 9180 de forma predeterminada.

6.8.3 Boques de función


Los bloques de función se utilizan para intercambiar datos con los dispositivos.

[Link] Mensaje 0

Los bloques de función en la categoría Mensaje 0 permiten el envío y la recepción de datos.

[Link].1 Entrada

Las entradas del mensaje 0 proporcionan los valores recibidos.

[Link].1 Lector

El lector lee datos y emite los datos recibidos. Hay un lector para cada uno de los INT0 a INT7.

Salidas Tipo Descripción


Valor int El valor recibido

[Link].2 Salida

Las salidas se utilizan para enviar valores.

[Link].2 Escritor

© Festo Didactic GmbH & Co. KG 175


Dispositivos

El escritor toma los datos a enviar y los pasa al dispositivo para enviarlos a los receptores a través de
UDP. Hay un escritor para cada uno de los INT0 a INT7.

Entradas Tipo Descripción


Valor int El valor a enviar

[Link] Mensaje 1

Mensaje 1 es idéntico al Mensaje 0 175 .

6.8.4 Ejemplo

7 Programación
Para compilar bloques de función y dispositivos de Robotino® View 2 es necesario el API.

176 © Festo Didactic GmbH & Co. KG


Programación

7.1 Mis bloques de función


Puede hallar los siguientes ejemplos en

%ProgramFiles%\Festo\RobotinoView2\units\robview\MyFunctionsBlocks

o respectivamente

%ProgramFiles(x86)%\Festo\RobotinoView2\units\robview\MyFunctionsBlocks

en sistemas de 64 bits. La variable de entorno %ProgramFiles% almacena la ruta a la aplicación


instalada. Normalmente esta es "C:\Program Files".

Antes de abrir el Visual Studio Solution [Link] debería ejecutar el script

RUN THIS FIRST THEN START [Link]

desde la carpeta de tutorial actual. El script genera ajustes específicos del usuario, que no pueden ser
almacenados en el archivo sln y permite la depuración de bloques de función.

Para que funcione la depuración, Robotino View 2 debe especificarse como ejecutable con el directorio
de trabajo correcto en los ajustes de proyecto como se muestra a continuación. Estos ajustes serán
establecidos automáticamente si ha ejecutado antes "RUN THIS FIRST THEN START [Link]" como se ha
descrito arriba.

© Festo Didactic GmbH & Co. KG 177


Programación

7.1.1 Tutorial 1
Carpeta: [Link]

Este tutorial explica cómo crear un bloque de función con un conector de entrada y uno de salida. El
código correspondiente puede hallarse en [Link] en la funcion step().

178 © Festo Didactic GmbH & Co. KG


Programación

El valor de entrada "in" es multiplicado por 2 y luego escrito en la salida. Haga aquí lo que desee. Para
ver lo que sucede en su código. inicie el depurador presionando la tecla F5. El bloque de función es
compilado y enlazado y se inicia Robotino View 2. Ignore el mensaje de diálogo acerca de que Robotino
View 2 no contiene información de depuración. Como sea que usted no desea depurar Robotino View 2,
sino sólo su bloque de función, este mensaje es irrelevante.

Cree un subprograma en Robotino View 2 conteniendo el bloque de función Tutorial 1 de Mis bloques de
función. Ejecute la simulación del subprograma.

Coloque un punto de interrupción en su método step().

© Festo Didactic GmbH & Co. KG 179


Programación

180 © Festo Didactic GmbH & Co. KG

También podría gustarte