Power Builder - Comunicación con el puerto serial

 
Vista:

Comunicación con el puerto serial

Publicado por Ita (1 intervención) el 23/02/2010 15:22:07
Buenas a todos.

Soy nueva usando Power Builder y me gustaría contar con su ayuda. Me encargaron
una aplicación para obtener los datos de un lector de código de barras de puerto
serial. Investigué y la única forma que encontré de comunicar con el puerto fue
a través del mscomm32.ocx. Ya lo descargué y lo registré, e incluso bajé una
aplicación de ejemplo; sin embargo, en esta última, cuando trato de usar el
puerto, me sale el siguiente mensaje de error:

http://i279.photobucket.com/albums/kk157/akane_kinomoto/Mensaje1.jpg

Que hace referencia a esta línea de código:

if ole_com.object.PortOpen then ole_com.object.PortOpen = false

Probé borrar el objeto que traía e insertar uno nuevo, pero al hacerlo, me sale
este otro mensaje:

http://i279.photobucket.com/albums/kk157/akane_kinomoto/Mensaje2.jpg

Ya he preguntado y probado varias cosas (inclusive registrar una nueva clave en
el regedit), pero me sigue saliendo lo mismo. Y me gustaría que me orientaran
sobre si existe algún otro modo de conectar con el puerto o qué podría hacer
para corregir esto, por favor.

Estoy trabajando en Power Builder 9 en Windows XP, por si sirve de algo, y el
ejemplo que descargué fue este:

http://powerbuilder.iespana.es/ejemplospb/EJ_puerto_serie.zip

De antemano, muchas gracias a todos por su atención y por su tiempo.

Correo: akane_blog@yahoo.com.mx
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antonio
Val: 351
Plata
Ha aumentado su posición en 4 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

RE:Comunicación con el puerto serial

Publicado por Antonio (1238 intervenciones) el 12/03/2010 06:16:04
Hola ita:

ya registraste el ocx por el msdos con el comando REGSVR32?

1.- LO DEBES HACER MANUALMENTE
2.- EN CASO CONTRARIO DEBES REGISTRARLO POR CODIGO CON PB

Saludos desde México
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comunicación con el puerto serial

Publicado por Ita (7 intervenciones) el 12/03/2010 15:16:21
Hola Antonio

Muchas gracias por responderme. Y en cuanto a lo que me sugieres, intenté las dos cosas, pero ninguna funcionó.

De todos modos, sólo quiero aclarar que ya me ayudaron en otro foro (pregunté en varios sitios), dándome una solución aparte del objeto mscomm32.

Gracias por tu atención.

Ita
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comunicación con el puerto serial

Publicado por Osmary Adrienne (1 intervención) el 26/05/2011 15:28:30
Buenas, tengo el mismo problema, por favor podrias linkearme al foro en donde te ayudaron con el tema?

Gracias-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comunicación con el puerto serial

Publicado por carlos (1 intervención) el 22/09/2012 00:26:17
me puedes dar la solución que encontraste...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Comunicación con el puerto serial

Publicado por caelos (3 intervenciones) el 11/03/2016 10:02:56
Me puedes pasar la solución que encontraste para leer el puerto seria con PB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Adolfo
Val: 237
Bronce
Ha disminuido 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Adolfo (135 intervenciones) el 12/03/2016 16:27:03
Adjunto un proyecto con el componente MsComm32.ocx y como registrarlo para ambiente de desarrollo(si solo utilizas RegSrv lo estas registrar para uso solamente).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Comunicación con el puerto serial

Publicado por carlos (3 intervenciones) el 18/04/2016 02:35:56
Muchas gracias Adolfo, ya lo agregue al proyecto en PB y lo implemente me funciono muy bien, solo cambios a nivel de parámetros. Pero me funciono muy bien, Muchas gracias nuevamente.

Saludos...!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comunicación con el puerto serial

Publicado por jhon (5 intervenciones) el 20/07/2016 02:56:49
hola Carlos, cuando le doy conectar me aparece el mensaje 'Conectar' en st_status_com, pero no me muestra el valor obtenido por el puerto serial
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comunicación con el puerto serial

Publicado por carlos (3 intervenciones) el 20/07/2016 16:42:07
1.- Debes validar que el dispositivo que este instalado al puerto COM, este transmitiendo ben los datos. Para esto debes trabajar con el Hiperterminal y que efectivamente se vean los datos como indica el procedimiento RS-232.


2.- Posteriormente debes registrar bien el archivo mscomm32, pendiente con el Windows con el que estas trabajando.

3.- Validar que En PB, validar que estas creando bien el control OLE.

4.- En la aplicación, en el evento clicked del botón cd_conectar, depurar que el objecto ole_com se le asignan bien los valores:

1
2
3
4
5
6
7
8
ole_com.object.CommPort	= ddlb_puertos.puerto()
ole_com.object.Settings		= sle_settings.text
ole_com.object.Handshaking   = li_control_flujo
ole_com.object.NullDiscard 	= True
ole_com.object.RThreshold 	= gs_RThreshold
ole_com.object.InputLen 	        = ole_com.object.RThreshold
ole_com.object.RTSEnable 	= True
ole_com.object.PortOpen 	        = True

NOTA:
.- Cuando se asigna el valos a RThreshold, se levanta OnComm, esta es la longitud total de la cadena de datos incluyendo CF + LF
.- Con esta longitud de caracteres se puede jugar, es decir, dependiendo del dispositivo que conectado, la longitud varia, por lo que yo me fijo en el valor que se muestra en el hyperterminal y voy ajustándolo hasta que obtengo el valor deseado.
.- como puedes ver yo parametrice los valores de: Handshaking y gs_RThreshold


5.- Por ultimo hacer seguimiento al valor leído y chequear que se esta colocando en el objecto donde se quiere mostrar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comunicación con el puerto serial

Publicado por JHON (5 intervenciones) el 20/07/2016 06:52:13
hola Adolfo, cuando le doy conectar me aparece el mensaje 'Conectar' en st_status_com, pero no me muestra el valor obtenido por el puerto serial en el control en el listbox . Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Adolfo
Val: 237
Bronce
Ha disminuido 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Adolfo (135 intervenciones) el 21/07/2016 15:22:20
Hola Jhon:
Primero que nada debes de estar absolutamente seguro de que tu dispositivo este transmitiendo datos y segundo debes conocer los parametros de comunicación, el proyecto que subí esta a: 9600 paridad ninguna, 8 bits de datos y 1 bit de parada. No todos los dispositivos trasmiten a 9600,n,8,1 ni tampoco lo estan haciendo siempre hay algunos que les debes de mandar un comando para que transmita: como las basculas de escritorio. El proyecto que subí esta ajustado para que el evento onComm del objecto ole_com se dispare cada que se reciba 1 byte, OJO yo se que mi dispositivo envía un CR+LF cada que envía un registo de datos por eso entonces proceso el dato cada vez que recibo el caracter numero 10 que corresponde al LF.

Como ves lo mas importante es que te documentes sobre el dispositivo que deseas leer de otra forma será imposible que tengas lectura.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 24 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por carlos (1 intervención) el 18/01/2018 14:57:49
Adolfo,
Tengo una balanza, que me indica el manual, que debo enviar un comando p/ recibir el dato.
Como debo indicar eso en el codigo PB?
Gracias desde ya!

Adjunto el manual de la balanza, con sus indicaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha aumentado su posición en 106 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Yamil Bracho (1 intervención) el 18/01/2018 15:01:41
Tendrias que usar algun OCX o DLL para esto, como por ejemplo mscomm32.ocx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Adolfo
Val: 237
Bronce
Ha disminuido 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Adolfo (135 intervenciones) el 21/01/2019 15:06:00
Para enviar un comando o cadena por el puerto serial COM debe teclear lo siguiente:

1
ole_com.Object.OutPut = "cadena o comando" + "~r~n"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comunicación con el puerto serial

Publicado por JUAN RAMITOS (41 intervenciones) el 19/01/2019 05:23:49
Estimado Adolfo, muchas gracias por tu aporte, es de gran utilidad, me preguntaba si tienes lo mismo pero en version 11.50.
De antemano muchas gracias por la atencion prestada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Adolfo
Val: 237
Bronce
Ha disminuido 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Adolfo (135 intervenciones) el 21/01/2019 15:09:09
No tengo PB 11.5
Descargar PB 12.6 y copia el codigo, para que lo uses en 11.5 (el PB 12.6 no trae activador o medicina):

https://mega.nz/#!8yw0lIzA!vib1D1tCQqkHvS_tLVQwn_0IxRetN_CmEuy1NK79W6I
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 16 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por Javier (2 intervenciones) el 21/06/2019 22:59:56
Buenas tardes, alguien tiene algún código para poder capturar el peso de una balanza electronica a traves del puerto serie rs232, en windows 10, que creo que usa putty y no hyperterminal, como el ejemplo de mas arriba. Desde ya muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 93 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Comunicación con el puerto serial

Publicado por moises orellana (1 intervención) el 07/12/2019 00:56:50
para controlar una balanza en el sistema operativo windows que quieras debes registras el objeto mscomm32.ocx o mscomm64.ocx
en powerbuilder creas un objeto ole y llamas al mscomm32 o 64 , de esta forma puedes controlar y capturar el peso de la balanza, ojo que existen balanzas que transmiten sus datos secuenciales o invertidos ejemplo 1kl.-
puede que una balanza normal te entregue 1.000 y una con formato invertido como las chinas te enviara 000.1 deberas capturar e invertir el string.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar