Página 1 de 1
Problema na comunicação com a COM1
Enviado: 27 Ago 2008 11:52
por Clipper
Prezados Colegas
Está acontecendo o seguinte problema quando tento comunicar com uma balança pela porta serial, o windows me retorna o erro da figura abaixo, se clico em Ignorar aí o sistema passa a funcionar normalmente fazendo toda a comunicação sem problemas, se eu finalizar o programa e abrir novamente acontece o mesmo, ou seja, sempre na primeira pesagem preciso clicar em Ignorar. Algum de vocês sabe o motivo e ou como contornar/corrigir este problema ?
Essa outra mensagem abaixo aparece em um outro computador, esse eu não testei se funciona após eu clicar em ignorar, eu não tinha nenhuma balança para testar, o interessante é que no outro micro se não tiver a balança conectada o erro continua sendo o da figura 1.
Até logo.
Marcelo
Re: Problema na comunicação com a COM1
Enviado: 27 Ago 2008 12:06
por sygecom
Olá Marcelo,
Post parte do codigo que vc usa para se comunicar com a porta serial. Se esta usando CA-TOOLS, ou IOLIB ou outra lib para comunicação serial.
Tentou ir colocando um alert("aqui") para ver em que parte do seu codigo que esta acontecendo esse erro ?
Re: Problema na comunicação com a COM1
Enviado: 27 Ago 2008 12:39
por Clipper
Prezado Leonardo
Estou usando as funções da Clipper Tools.
A fução que faz a comunicação é essa :
Código: Selecionar todos
function chamabal()
com_close(1)
com_open(1, 1024, 1024)
com_init(1, 9600, "n", 8, 1)
com_hard(.f.)
conta=0
cappeso=.f.
peso=0
do while conta<50
cinput := com_read(1)
if empty(cinput)
inkey(.1)
conta++
else
if substr(cinput,1,1)=chr(2)
peso=val(substr(cinput,2,6))
cappeso=.t.
exit
endif
inkey(.1)
conta++
endif
enddo
com_close(1)
itqtd=peso
if cappeso=.t.
return(.t.)
else
msg("falha na captura do peso !",1,2)
return(.f.)
endif
return(.t.)
O erro acontece exatamente na linha -> com_init(1, 9600, "n", 8, 1)
Até logo.
Marcelo
Re: Problema na comunicação com a COM1
Enviado: 27 Ago 2008 14:16
por sygecom
Marcelo eu sempre usei assim e nunca tive problemas:
COM_OPEN(1, 1, 1)
COM_INIT(1, 1200, "N", 8, 1)
Sendo que a porta no Windows eu configurava tmb. para 1200, no seu caso mude para 9600 tanto no codigo como no Windows.
Re: Problema na comunicação com a COM1
Enviado: 27 Ago 2008 15:04
por Clipper
Pois é...
Aí é que está o problema, a balança está configurada para 9600,n,8,1, a porta COM1 no Windows está para 9600,n,8,1 e no meu sistema também para 9600,n,8,1.
O que eu acho estranho é que só acontece o erro na primeira comunicação, depois tudo funciona perfeitamente enquanto não for fechado o sistema.
:^|
Até logo.
Marcelo
Re: Problema na comunicação com a COM1
Enviado: 27 Ago 2008 18:40
por alaminojunior
Não é muito a minha praia, mas notei que você está tentando fechar a porta e depois abrir, prevendo talvez que ela já esteja aberta. Quem sabe fechando a porta no momento em que encerrar a rotina. E também, será que o comando para fechar a porta está funcionando ?
Desculpe se falei besteira.
Re: Problema na comunicação com a COM1
Enviado: 29 Ago 2008 09:23
por ANDRIL
Pode ser que este aviso seja por que já exista um dispositivo conectado a COM1 e ao escolher IGNORAR o seu programa passa a controlar a porta.
Já tentou mudar a sua rotina para COM2 e ver se dá o mesmo erro?
Outra coisa que notei é, se abro o sistema e faço o uso da porta COM1 mesmo no final da rotina fechando a porta, se abrir outro sistema em paralelo e tentar fazer a leitura, me da um aviso semelhante ao seu. Será que este dispositivo não pode ser usado "compartilhado" ?
Ate+
Re: Problema na comunicação com a COM1
Enviado: 01 Set 2008 18:20
por sygecom
Olá Marcelo,
Tentou usar a IOLIB para ver se acontece o mesmo problema ?
No SITE do vagucs tem a LIB com exemplo:
http://www.vagucs.com.br/dwclipper/iolib.zip
Re: Problema na comunicação com a COM1
Enviado: 01 Set 2008 19:09
por Clipper
Prezados Colegas
Funcinou direitinho no meu cliente.
Era frescura aqui do meu micro.
Valeu !
Até logo.
Marcelo