el 02-02-2015 11:33 AM
Buenos dias tengo una duda estoy utilizando la libreria modbus de Ni version 8.6 y puedo leer mediante modbus registros y convertirlos de 16 bits a 32 bits, mi duda es esta quiero poder escribir de 32 bits a 16 bits ya que al hacerlo se recorre unos digistos, espero su apoyo muchas gracias
el 02-03-2015 09:37 AM
Hola itashi;
Podrías poner un ejemplo del código que tienes?
Sí sólo quieres hacer una conversión de 32 a 16 bits; puedes usar un I16 que te convertirá la entrada que quieras a un entero de 16 bits.
Si lo que tienes es una cadena de caracteres, deberás usar las funciones dentro de la paleta de String para recortarla
Saludos y éxito
el 02-03-2015 10:09 AM
Estoy utilizando la libreria modbus y quiero poder convertir 32 bit float a 16 bit el detalle es que si lo hago de este modo se pierden .025 no es tan exacto como cuando lo leo
el 02-03-2015 10:21 AM
Itashi;
En efecto, cuando conviertes de FXP, DBL, SGL o cualuqier tipo de dato decimal a un Integer o Unsigned; por definición, estos tipos de dato son enteros.
Si no quieres perder 3 decimales, lo mejor sería multiplicar el número por 1000 antes de convertirlo, tomando en cuenta que el decimal estaría corrido tres posiciones.
Exito
el 02-03-2015 10:42 AM
lo que pasa es esto en labview quiero convertir de 32 a dos registros de 16 ya que por la libreria modbus solo puedo hacerlo asi, pero en la maquina donde me estan mandando los datos lo leen como flotante de 32 bits pero hay una variacion
el 02-03-2015 10:57 AM
Itashi;
No entiendo muy bien que es lo que buscas hacer;
Si lo único que requieres es "cortar" la info de 32 bits y ponerla en 2 registros de 16,,
00000000 11111111 00000000 11111111 = 32 bits
convertirlo a
00000000 11111111 =16 bits
00000000 11111111 = 16 bits
Convierte tu dato a string y de ahí haces un "split string" en la posición 16
Exito
el 02-09-2015 11:13 AM
Aqui les paso mi proyecto para que lo vean y estoy ocupando el modsim para generar variables