el 03-02-2009 04:44 AM
Buenos dias.
Estoy intentando conectarme a un datalogger para obtener unos datos que necesito y tratarlos a traves de labview. En mi caso estoy empleado labview 8.2 y uso las librerias de modbus que estan disponibles en la web.
El caso es que consigo conectarme al datalogger y bajarme los datos pero el formato en el que me baja los datos los altera y no puedo tratarlos correctamente. Segun la función que empleo de modbus, los datos estan en formato "Unsigned word" y yo los necesito en formato "Swapped float 32 bits (SGL con la funcion swap byte)". Por esto, cuando por ejemplo el valor obtenido es 0.0201, yo tengo el valor 1.0178E+9.
He intentado variar la función de la librería del modbus pero no me deja y siempre descarga los datos en el formato Unsigned. ¿Hay alguna forma de que los datos los pida y los reciba directamente en SGL en lugar de unsigned?.
Agradezco cualquier ayuda.
Un saludo y gracias.
¡Resuelto! Ir a solución.
el 03-02-2009 05:03 AM
Hola, el número entero sin signo de 32 bits 1.0178E+9 se guarda en memoria como 0x3CAA 6540. Este mismo valor representa al número 0.0201 si se emplea un dato de tipo SGL.
Para convertir de un tipo a otro se puede utilizar la función Type Cast.
el 03-02-2009 05:46 AM
Muchas gracias Jrafa.
Ahora ya funciona a la perfección. Efectivamente con la funcion Type Cast convierte el formato de uno a otro sin problemas.
Un saludo
el 04-21-2009 02:23 PM
HOLA MARTIN.
NECESITO UN GRAN FAVOR, ES QUE ESTOY INTENTANDO CONECTARME A UN PLC TWIDO DE TELEMECANIQUE POR MEDIO DE MODBUS / TCP, PERO NO LO HE LOGRADO. ESTOY UTILIZANDO LAS LIBRERIOAS DE MODBUS DE NI SOBRE LABVIEW 8.6.
AGRADEZCO ME PUEDA COLABORAR.
NITO
el 04-22-2009 01:18 AM
Hola Nito.
Para comunicarte con el PLC a través de labview debes hacer lo siguiente:
1- Introducir en la función "TCP open connection" la dirección IP del dispositivo con el que estás intentando conectarte y el puerto que utiliza para la conexión (yo uso el 502)
2- El dato de salida de esta función, lo introduces en el "MB ethernet master query" en la primera ranura de conexión de datos (arriba).
3- Ahora debes haces un cluster con los datos de conexión del dispositivo. Debes meter en el cluster 5 datos:
1-lo que quieres hacer (leer datos numéricos, leer datos booleanos, escribir datos numéricos, escribir datos booleanos,....esto lo tienes en la ayuda de labview)
2-dirección desde la que quieres que empiece a contar labview para obtener los datos
3-número de registros que quieres obtener del PLC.
4-una tabla de enteros para guardar los datos en dicha tabla
5-una tabla de booleanos para guardar los datos booleanos en esta tabla.
En principio ya esta, creo que no me olvido de nada. Espero haberte sido de ayuda.
Un saludo
el 04-22-2009 09:10 PM
Muchas Gracias Martín, voy a ponerlo en practica y te cuento como me fué...
Gracias
el 04-27-2009 01:54 PM
Hola !
Me gustaría compartiro con ustedes un ejemplo de Modbus Ethernet, en el cual leo los registros 400001 a 400005 y escribo en los registros 400010 a 400014, pueden modificar los registros en que se están trabajando.
http://decibel.ni.com/content/docs/DOC-4571
Saludos !!
el 05-01-2010 03:23 PM
hola buenas tengo que hacer una conexion tcp/ip con modbus usando labview, ya tengo las librerias q se pueden descargar por la red y haciendo uso de estos bloques pude conectar en funcion master and slave pero quisiera saber como puedo modificar la data que le entra a modbus para asi hacer uso de varios datos q formarian la trama de modbus. ambos temas son nuevos para mi tanto modbus como el uso de labview. por favor ayudenme!!!
el 05-03-2010 04:05 AM
Hola Pregunticas.
En principio creo Modbus solo trabaja con dos tipos de registros: numeros y booleanos. No te entiendo cuando dices que quieres modificar el dato que entra en Modbus. Yo no lo he intentado pero me supongo que no te aceptará letras si te refieres a eso (repito que yo no lo he intentado pero si alguien lo ha logrado que lo diga porque puede ser interesante).
Si te refieres a la forma de meter datos (numeros mas largos o de algún otro tipo), creo que no tendrás problema. Eso si, tendrás que tener en cuenta que formato de dato introduces en tu programa y el orden en el que lo introduces para que despues tu aplicacion pueda procesar bien los datos.
No se si te ha sido de ayuda, si puedes explicar mejor que quieres.....
el 12-13-2013 06:32 AM
gracias la solucion me ahorro mucho tiempo !