Página 1 de 1
Serial com xharbour
Enviado: 25 Jul 2011 12:34
por Rogerio Amorim
Saudações a todos...
Recebi um desafio de criar um programa que comunique-se com um equipamento que faz exames laboratoriais.
O software terá que enviar e receber dados deste equipamento.
O problema é que nunca fiz algo do tipo e não sei nem por onde começar.
Eu peguei o manual do equipamento ao qual contém as informações de comunicação serial com o mesmo
São uns códigos em hexadecimal que não sei como usar.
O sistema esta em xharbour, e gostaria da ajuda de vocês para me indicar o "caminho das pedras".
Em minhas pesquisas vi que o pessoal costuma usar a hbcomm para leitura em balanças, seria este o caminho ?
Serial com xharbour
Enviado: 25 Jul 2011 13:04
por Maligno
Seja bem-vindo ao fórum.
Se a comunicação é serial, o melhor caminho, pelo que já pude perceber pelos comentários dos demais colegas, o melhor caminho parece ser a biblioteca que você citou.
A comunicação serial envolve poucos detalhes. Pode-se até fazer pelas funções de baixo nível da API do Windows. O que vai merecer mais atenção é conhecer o protocolo através do qual o equipamento se comunica. Você precisa aprender a "língua" do equipamento. Mas se você já tem o manual, tanto melhor. Tem que estudá-lo. Minha dica é: pegue os exemplos de códigos que envolve a HBCOMM que puder encontrar e leia a documentação da biblioteca. Aprendendo isso, o resto vai na carreira. No final das contas, você verá que nem tinha tanto com o que se preocupar. Esse tipo de trabalho costuma ser simples.
Serial com xharbour
Enviado: 25 Jul 2011 17:42
por fladimir
Colega é o q o Maligno postou, vou postar aki um exemplo do código q uso pra capturar via Serial peso de balanças, vc pode usar a mesma lógica, após estudar o manual do equipamento q vc quer comunicar, para fazer sua rotina....
Código: Selecionar todos
*****************************************************************
* Fun‡Æo Ler peso balan‡a....
*****************************************************************
Function LerBalanca(nPeso,lBalanc)
Public cPesoLido := 0
If lBalanc==.f.
Return .f.
Endif
// Colooquei para carregar valores nas variaveis
cBalPorta := "COM1" //cScan_Porta
nBalVelocidade := 9600 //nScan_Veloc
nBalBits := 8 //nScan_Bists
nBalParidade := 0 //nScan_Parid
nBalStopBits := 1 //nScan_BStop
If nPeso > 0
Return .t.
Endif
If Empty(cBalPorta)
Return .t.
Endif
cPort := cBalPorta
nBaudrate := nBalVelocidade
nDatabits := nBalBits
nParity := nBalParidade
nStopbits := nBalStopBits
nBuffersize := 1000
nHandle:= Init_Port( cPort, nBaudrate, nDatabits, nParity, nStopbits, nBuffersize )
If nHandle <= 0
alert("Erro ao iniciar a porta de comunicacao !")
Return .f.
Endif
If IsWorking( nHandle )== .F.
Alert("Favor configurar a porta serial !")
Return .f.
Endif
OutBufClr( nHandle )
//-- Enviar comando para iniciar a transmissao de dados para balanca MP
cBytesToWrite := Chr(5)
nCount := 1
OutChr( nHandle, cBytesToWrite, nCount )
//-- Aguarda um tempinho
Millisec(100)
cBuff := Space(10)
nChar := InBufSize( nHandle )
nLidos:= InChr( nHandle,nChar,@cBuff )
If nLidos > 0
cPesoLido := Val(Substr(cBuff,2,7))
cPesoLido := cPesoLido //
mQuant := cPesoLido
UnInt_Port( nHandle )
cod:=str(mQuant) // pra testar se retorna com o peso
Return .t.
Endif
UnInt_Port( nHandle )
Return .f.
É issoa ai...
Sds.
Sucesso!!!
Serial com xharbour
Enviado: 26 Jul 2011 16:55
por Rogerio Amorim
Obrigado Maligno e Fladimir
Só mais uma dúvida Maligno, quando você diz "PROTOCOLO" você está dizendo sobre o padrão de comunicação que o equipamento usa e que está explicito no manual é isto ?
Outra coisa, eu estou pesquisando sobre a hbcomm já tenho algumas coisas e tal, existe algum lugar onde eu possa baixar um manual oficial ?
Fladimir você usa a hbcomm, funciona bem ?
Serial com xharbour
Enviado: 26 Jul 2011 17:56
por fladimir
Uso funciona bem sim, conforme exposto no código q postei não tem segredo, vc tem saber os parametros q trabalha o equipamento q vc vai comunicar como velocidade, bits de parada etc, q regem uma comunicação serial e configurar conforme o equipamento.
Sds.
Sucesso!!!
Serial com xharbour
Enviado: 04 Nov 2012 13:26
por ANDRIL
Nao consigo fazer a leitura da COM atraves dessa HBCOMM.LIB. Já li e re-li, de longo tempo, já testei varios exemplos, agora tentei este codigo postado pelo colega, porem nada.
Tenho um modem na COM3 consigo obter informações sobre ele atraves da consulta ao modem no gerenciador de dispositivos do Windows, consigo acessar a porta atraves do HiperTerminal, enfim, menos com a lib. Estou usando a versao do xHarbour 1.0.0 Simplex. Já tentei mexer nos parametros da porta mesmo assim nao funciona.
Alguém tem outra alternativa a essa lib ou que saiba faze-la funcionar.
Abraços.
Serial com xharbour
Enviado: 04 Nov 2012 22:59
por ANDRIL
ANDRIL escreveu:Nao consigo fazer a leitura da COM atraves dessa HBCOMM.LIB
Opa, voltando aqui para dizer que consegui, agora! O problema estava ocorrendo por causa da versao do windows vista. Agora vou começar a estudar o protocolo que tenho que seguir.
Ate+
Serial com xharbour
Enviado: 26 Dez 2012 20:20
por sygecom
Vale a pena também dar uma olhada nas funções do Fivewin free, na seção Download tem exemplo, procurando por comunicação com balanças.