Jump to content
Fivewin Brasil

Balança L-PCR Magna - Resolvido


betovsp

Recommended Posts

  • 2 weeks later...

João, não consegui fazer a comunicação.

Mais alguém pode me ajudar, com a configuração do cabo, funções, etc...., pois preciso fazer a comunicação com essa balança com urgência.

Pode ser também da balança Welmy BCW 6/15/30 se tiver, pois o cliente tem essas duas balanças e não funcionou com nenhuma.

Obrigado.

Link to comment
Share on other sites

Você tem exemplos em alguma linguagem desta balança Welmy BCW 6/15/30 e da outra? Tem .DLL? Já entrou em contato com o suporte?

Verificou se os cabos estãos funcionando? Testou pelo testador do Windows(esqueci o nome->kkkkkkk)???

Tem algum programa deles, para teste da balança?

Veja isto. abs.

Link to comment
Share on other sites

E sobre a hbcomm, ouvi falar que esta incorporada no fivewin/xharbour, mas qual lib que agrego ao sistema.

Não Beto, a HBCOMM.LIB, pertence ao xHarbour, e ela vem junto com o compilador xHarbour ex.: C:\XHB1306\LIB.

Ela fácil de usar, não tem muito segredo não.

Já o FIVE, tem leitor de codigos de barras ou portas .COM, veja:

 Pasta de C:\FWH1306\samples
08/07/2013  18:46             1.532 testcom2.prg
08/07/2013  18:46               983 testcom3.prg
08/07/2013  18:46             1.750 testcomm.prg

Dúvidas, vá perguntando, ou mostre como vc. está fazendo, de repentemente o acidente no seu módulo, desde que eu t conheço, vc. é 333 1/2 bsta. kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, brincadeira friend.

abs.

Link to comment
Share on other sites

Usando a HBCOMM.LIB - inicio do seu modulo



// Para Leitor de C¢digos de Barras Diretamente da HBCOMM.LIB.
#Define ONESTOPBIT 0
#Define ONE5STOPBITS 1
#Define TWOSTOPBITS 2

// O mesmo se aplica ao nParity( 4 parametro da init_port)
#Define NOPARITY 0
#Define ODDPARITY 1
#Define MARKPARITY 2
#Define EVENPARITY 3

// Para Leitor de C¢digos de Barras Diretamente da HBCOMM.LIB.
STATIC cPorta // := "COM1" - Porta de Onde vem os Bits da Memoria.
STATIC nBaudios := 9600 //-> nBaudios - Velocidade do Bit - Numerico.
STATIC nBits := 8 //-> Tratamento de Bits - Digito Binario.
STATIC cParidad := "n" //-> <1,2,3> Paridade do Bit - Analogia - Numerico.
STATIC nStops := 0 //-> 0 Protocolo de Parada e Espera do Bit.
STATIC cBuffer := 8000 //-> Controle do Buffer Default Antigo era 1024
STATIC nComm //-> Controle de Abertura da Porta Serial




STATIC xDllB // Abertura da DLL da BALANCA PESADORA TOLEDO

xDllB := LoadLibrary( "P05.DLL" )


saida:

FreeLibrary( xDllb )
XDLLB:=NIL



// area da sua dialog de vendas




// Ler a Porta Serial e Fazer a Abertura da Mesma, Usando HBCOMM.LIB

DEFINE TIMER oTimerVendas INTERVAL 500 ;
ACTION Ler_Porta( oLbx, oDbfpedf, oDbfestoque, oDbfNumNf, ;
oDbfVendedor )

ACTIVATE TIMER oTimerVendas

//-Leitura da Porta Serial, Desde HBCOMM.LIB em [x]Harbour-------------------//

STATIC FUNCTION LER_PORTA( oLbx, oDbfpedf, oDbfestoque, oDbfNumNf, ;
oDbfVendedor )

LOCAL nBytes := 15
LOCAL cCodigo := SPACE(15), xresto

PUBLIC cCod, xCod, XTPV

DEFAULT cCod := SPACE(15)
DEFAULT xCod := SPACE(15)

IF EMPTY(nComm)
//-> Chama a Funcao de Ativar a Porta Serial.
Ativar_Porta()
//-> Chama a Funcao de Ativar a Porta Serial.
ENDIF

nBytes := InbufSize(nComm) // Pega Dados do Buffer.

nBitReceb += nBytes

IF nBytes > 0

cCodigo = SPACE(nBytes)

//->nBytesRead - Ler os Bytes do Handle da Porta. o Conteudo do Codigo.
InChr( nComm, nBytes, @cCodigo ) //-> Leitura dos Dados do Buffer.

IF ASC(RIGHT(CCODIGO,1))#13

XRESTO:=cCodigo

CCODIGO = SPACE(15)

//->nBytesRead - Ler os Bytes do Handle da Porta. o Conteudo do Codigo.
InChr( nComm, nBytes, @cCodigo ) //-> Leitura dos Dados do Buffer.

CCODIGO:=ALLTRIM(XRESTO)+ALLTRIM(CCODIGO)

ENDIF

CCODIGO := ALLTRIM(CCODIGO)

IF LEN(CCODIGO)>13

CCODIGO:=LEFT(CCODIGO,13)

ENDIF

IF ASC(RIGHT(CCODIGO,1))=13

CCODIGO:=LEFT(CCODIGO,LEN(CCODIGO)-1)

ENDIF

//-------------------------------------------------

//-> Tratamento do C¢digo de Barras.
If LEN( ALLTRIM( cCodigo ) ) > 0

//-> Area dos Leitores Seal

xCod := SubStr( cCodigo, 1, 15 ) // Original do Edvaldo NÆo Mexi

// Os Leitores Metrologic, Al‚m do C¢digo de Barras, Geram
// Dois <Enter-CRLF> Ap¢s o C¢digo de Barras. Retir -los Assim:
// Lˆ C¢digos de Barras Com 15 Digitos -> Metrogic MS700i

// Para Leitores At&T Tipo o da Sapataria
If Left( cCodigo, 1 ) = "A" // Leitor At&T
xCod := Substr( cCodigo, 2, 13 )
Endif

cCod := ALLTRIM( xCod )

while right(cCod,1)#"0".and.right(cCod,1)#"1".and.right(cCod,1)#"2".and.;
right(cCod,1)#"3".and.right(cCod,1)#"4".and.right(cCod,1)#"5".and.;
right(cCod,1)#"6".and.right(cCod,1)#"7".and.right(cCod,1)#"8".and.right(cCod,1)#"9".and.len(cCod)>0

sysrefresh()
cCod:=alltrim(left(cCod,len(cCod)-1))

enddo

cCod:=left(cCod+space(15),15)

VER_PRODUTOS( cCod, Aget, oLbx, oDbfPedf, oDbfEstoque, ;
oDbfNumNf, oDbfClientes, ;
oDbfVendedor, oDbfAreceber, ;
oDbfRetirada, lAppend )

ENDIF

ELSEIF nBytes > 15

MsgInfo( "Leitura Não Realizada!!!", "Erro na Porta Serial" )

Fechar_Porta()
Ler_Porta( oLbx, oDbfpedf, oDbfestoque, oDbfVendedor )

ENDIF

//-> Limpeza da Vari vel e do Buffer do Leitor Serial
nBitReceb := 0
nBytes := OutBufClr(nComm) // Limpa o Buffer de Sa¡da do Leitor Serial.
cCod := SPACE(15)
cCodigo := SPACE(15)

RETURN NIL

//-> Funcao Para Fechar a Porta Definitivamente.-----------------------------//

FUNCTION Fechar_Porta()

//->Fechar a Porta Serial, na Saida do Modulo.
Fechar_Leitura()

RETURN NIL

//-> Funcao Para Ativar a Porta Serial do Micro Computador.------------------//

STATIC FUNCTION Ativar_Porta() //-> Continha Erros... J Era!

LOCAL nError
LOCAL nHandle

PUBLIC BUFFER := SPACE(4000)

//-> Vai Iniciar a Porta, Se Houver ConexÆo Remota Correta.
IF (nComm:=Init_Port(cPorta,nBaudios,nBits,cParidad,nStops,cBuffer)) == -1

IF !ISWORKING(nComm)
MsgStop( "Porta do Leitor Desconectada! ", ;
"Erro Ao Tentar Abrir a Porta Serial " )
RETURN( .T. )
ENDIF

ENDIF

RETURN( .T. )

//-> Funcao Para Encerrar a Leitura da Porta Definitivamente. Saida Geral.---//

STATIC FUNCTION Fechar_Leitura()

//-> Comando Para Desativar a Porta Serial Definitivamente

RETURN UNINT_PORT(nComm)

//-> Fechar o Leitor de Códigos de Barras Temporariamente
FUNCTION FECHA_LEITOR()

PUBLIC XULS

//-> Fecho a Porta Temporariamente Para Alterar Um Produto
If Val( xUls ) > 0
//-> Desativa o Timer do Leitor de C¢digos de Barras
oTimerVendas:Deactivate()
//-> Funcao Para Fechar a Porta Serial
Fechar_Porta()
Endif

RETURN( .T. )

//-> Reabrir o Leitor de Códigos de Barras Temporariamente
FUNCTION ABRE_LEITOR()

PUBLIC XULS

//-> Reabro a Porta do Leitor Novamente, Depois de Alterar.
If Val( xUls ) > 0
//-> Ativa o Timer do Leitor de C¢digos de Barras
oTimerVendas:Activate()
//-> Funcao Para Fechar a Porta Serial
Ativar_Porta()
Endif

RETURN( .T. )



// final do seu modulo:




* DECLARACAO DLL BALANCA PESADORA TOLEDO

DLL32 FUNCTION AbrePorta( Porta AS LONG, BaudRate AS LONG, DataBits AS LONG, Paridade AS LONG ) AS LONG PASCAL lib xDllb

DLL32 FUNCTION PegaPeso( OpcaoEscrita AS LONG, Peso AS STRING, Diretorio AS STRING ) AS LONG PASCAL lib xDllb

DLL32 FUNCTION FechaPorta() AS LONG PASCAL lib xDllb

Link to comment
Share on other sites

Pega peso da balanca TOLEDO.


FUNCTION Lepeso()

Local retorno, Peso := Space(5), xVel

Public xUbp, XLOPC

Retorno:= AbrePorta( val(xUbp), Iif(xLopc="9600",2,0), 0, 2 )
* Retorno:= AbrePorta( val(xUbp), Iif(xLopc="9600",2,Iif(xLopc="2400",0,1)), 0, 2 )

if Retorno # 1

MsgInfo( OemtoAnsi( "Erro na abertura da porta COM da Balan‡a!" ), ;
OemtoAnsi( "BalcÆo - Erro na Porta da Balan‡a Pesadora" ) )

endif

Retorno:= PegaPeso( 0, @Peso, "" )

xQtd:= val(peso)

xQtd:=Round(xQtd/1000,3)

If xQtd <= 0


If MsgNoYes( oemtoansi("ATEN€ÇO: *** ERRO NA LEITURA DO PESO DA BALAN€A *** ")+ CRLF +;
+ CRLF +;
oemtoansi("O Sistema NÆo Conseguiu Ler o Peso da Balan‡a.")+ CRLF+ ;
oemtoansi("Vocˆ Pode Retirar o Peso e Colocar Novamente para Nova Tenta-")+ CRLF +;
oemtoansi("tiva de Leitura do Peso da Balan‡a. Caso NÆo Consiga Ler o Peso")+ CRLF +;
OemToAnsi("da Balan‡a, vocˆ Poder Digitar o Peso do Produto.") + CRLF +;
+ CRLF +;
+ CRLF +;
oemtoansi("[SIM] -> Para Digitar o Peso do Produto")+ CRLF + ;
oemtoansi("[NÇO] -> Para Nova Tentativa de Ler o Peso na Balan‡a"), ;
"Informação Para o Usuário... " ) = .T.

xQtd:=DigitaPeso()


Else

Peso := Space(5)
Retorno:= PegaPeso( 0, @Peso, "c:\" )
xQtd:= val(peso)

If val(xlopc)=1

xQtd:=Round(xQtd/1000,3)

Endif

If xQtd <= 0

mSgInfo(oemtoansi("Erro na Leitura do Peso da Balan‡a !"),oemtoansi("BalcÆo - Leitura de Peso da Balan‡a"))

Endif

Endif


Endif

Retorno:=FechaPorta()

Return( xQtd )


Link to comment
Share on other sites

E sobre a hbcomm, ouvi falar que esta incorporada no fivewin/xharbour, mas qual lib que agrego ao sistema.

Não Beto, a HBCOMM.LIB, pertence ao xHarbour, e ela vem junto com o compilador xHarbour ex.: C:\XHB1306\LIB.

Ela fácil de usar, não tem muito segredo não.

Já o FIVE, tem leitor de codigos de barras ou portas .COM, veja:

 Pasta de C:\FWH1306\samples
08/07/2013  18:46             1.532 testcom2.prg
08/07/2013  18:46               983 testcom3.prg
08/07/2013  18:46             1.750 testcomm.prg

Dúvidas, vá perguntando, ou mostre como vc. está fazendo, de repentemente o acidente no seu módulo, desde que eu t conheço, vc. é 333 1/2 bsta. kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, brincadeira friend.

abs.

kkkkkkkkkkkkkkkkkkkkkk, esse 333 1/2 bsta foi jóia, nem eu sabia.. kkkkkk

agora, esses ex do fivewin, ja vi, estou tentando utilizar o hbcomm, mas no meu xharb nao tem não......

e a configuração do cabo kapi, pode me passar??

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...