Leer datos de una bascula con WinEvent

Consultas sobre templates. Análisis de templates.
Responder
Avatar de Usuario
FaustinoGarcia
Novato
Mensajes: 17
Registrado: Mar Feb 22, 2011 2:04 pm
Ubicación: Tucumán - Argentina
Contactar:

Leer datos de una bascula con WinEvent

Mensaje por FaustinoGarcia » Mié May 18, 2011 11:43 am

Hola

Tengo la necesidad de leer una bascula con una window desde una app;
compre el WinEvent pero "nunca" lo use y "nunca" hice este tipo de
trabajo. La bascula está conectada con una RS232 a la PC.

Necesito "una receta", por así decirlo, para usar/configurar el WinEvent para tomar datos desde un puerto COM es más "no se ni por donde empezar" ni donde leer en el manual de Capesoft; el WinEvent sirve para varias tareas y mi falta total de experiencia en este tema me complica más las cosas.

En fin... me pueden tirar una punta para empezar?? se que cada bascula tiene su forma de enviar los datos lo que "necesito" 1ro. es configurar el WinEvent para que lea el puerto COM (sea como sea lo enviado por la bascula). Me pueden ayudar???

Estoy "desnudo", a los gritos, con dos palillos en las manos, remando en el dulce de lecho y sentado en una cascara de nuez... :shock: :o :(

Desde ya Gracias!!
Faustino Garcia
Tucumán - ARG


Avatar de Usuario
gsanchez
Novato
Mensajes: 23
Registrado: Dom May 08, 2011 6:17 pm
Ubicación: Cabo San Lucas, México
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por gsanchez » Jue May 19, 2011 3:38 am

Código: Seleccionar todo

! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)
 
! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad
Espero que te sirva este ejemplo

Saludos
Si la vida te da la espalda, agarrale una nalga

Avatar de Usuario
FaustinoGarcia
Novato
Mensajes: 17
Registrado: Mar Feb 22, 2011 2:04 pm
Ubicación: Tucumán - Argentina
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por FaustinoGarcia » Jue May 19, 2011 12:19 pm

Gracias!!! :)

Por supuesto que sirve, tengo una consulta más:
Este codigo puede ir en una ROUTINE o FUNCION que sea convocada desde un botón (Ejm: Leer Bascula) o donde debo poner este embeb??

Saludos
Faustino Garcia
Tucumán - ARG

Avatar de Usuario
gsanchez
Novato
Mensajes: 23
Registrado: Dom May 08, 2011 6:17 pm
Ubicación: Cabo San Lucas, México
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por gsanchez » Jue May 19, 2011 2:17 pm

yo lo tengo en el embed de un botón; si el cliente necesita pesar la mercancia oprime el boton "pesar" y se ejecuta la rutina antes mencionada y despues manipulo la variable LOC:Cantidad como me convenga

Saludos
Si la vida te da la espalda, agarrale una nalga

Avatar de Usuario
FaustinoGarcia
Novato
Mensajes: 17
Registrado: Mar Feb 22, 2011 2:04 pm
Ubicación: Tucumán - Argentina
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por FaustinoGarcia » Jue May 19, 2011 2:55 pm

Muchisimas GRACIAS!!

La G es de Gustavo??

Avatar de Usuario
gsanchez
Novato
Mensajes: 23
Registrado: Dom May 08, 2011 6:17 pm
Ubicación: Cabo San Lucas, México
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por gsanchez » Jue May 19, 2011 3:44 pm

Gerardo :)
Si la vida te da la espalda, agarrale una nalga

handradev
Mensajes: 2
Registrado: Jue Mar 03, 2011 5:22 pm
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por handradev » Dom May 26, 2013 3:20 am

gsanchez escribió:

Código: Seleccionar todo

! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)
 
! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad
Espero que te sirva este ejemplo

Saludos

handradev
Mensajes: 2
Registrado: Jue Mar 03, 2011 5:22 pm
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por handradev » Dom May 26, 2013 3:26 am

Con este codigo, ya no necesito el WinEvent?

Avatar de Usuario
Mauricio
Desarrollador de Clarion
Mensajes: 1125
Registrado: Dom Feb 06, 2011 9:34 am
Ubicación: España
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por Mauricio » Lun May 27, 2013 4:20 am

Si, necesitás el WinEvent.
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog

juancarlosguillen
Mensajes: 1
Registrado: Mar Sep 23, 2014 11:40 pm
Contactar:

Re: Leer datos de una bascula con WinEvent

Mensaje por juancarlosguillen » Vie Nov 11, 2016 5:07 pm

handradev escribió:
gsanchez escribió:

Código: Seleccionar todo

! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)
 
! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad
Espero que te sirva este ejemplo

Saludos


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados