balanca Toledo Prix 3

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

balanca Toledo Prix 3

Mensagem por paiva »

Boa noite

tentando usar a p05.dll +++ nao le nem a pau rs

vou fazer um loop com as opções abaixo para ver se le

NAO tenho certeza de como tratar o retorno da balança

se trato como VAL( da pau OU estou fazendo errado ou o retorno e´um campo numerico.

o RETORNO da abertura da porta e de ler o peso TEM que ser 1 ? caso queira testar se abriu ou leu ok ?

desde ja agradeço

PAiva

Código: Selecionar todos

function lepeso()

//PUBLIC XPORTA:="3", XVELOC:= "4800" //,2400 xDllB
//xDllB := LoadLibrary( "P05.DLL" )
//1-bal_Porta   : 1=com 1 2=com2 3=com 3
//2-bal_Baudrate: 0=2400 1=4800 2=9600
//3-bal_Databits: 0=7 1=8
//4-bal_Paridade: 0=nenhum 1=impar 2=par 3=espaço
*IF cEmpresa = 15
*    RETORNO:= ABREPORTA( 3, 1, 0, 2 )   //4800
*ELSE
*    RETORNO:= ABREPORTA( 3, 0, 0, 2 )
*ENDIF

       arq_toledo    =  "3000"
       chama_balanca()
       arq_toledo    =  "3001"
       chama_balanca()
       arq_toledo    =  "3002"
       chama_balanca()
       arq_toledo    =  "3003"
       chama_balanca()

       arq_toledo    =  "3010"
       chama_balanca()
       arq_toledo    =  "3011"
       chama_balanca()
       arq_toledo    =  "3012"
       chama_balanca()
       arq_toledo    =  "3013"
       chama_balanca()


       arq_toledo    =  "3100"
       chama_balanca()
       arq_toledo    =  "3101"
       chama_balanca()
       arq_toledo    =  "3102"
       chama_balanca()
       arq_toledo    =  "3103"
       chama_balanca()

       arq_toledo    =  "3110"
       chama_balanca()
       arq_toledo    =  "3111"
       chama_balanca()
       arq_toledo    =  "3112"
       chama_balanca()
       arq_toledo    =  "3113"
       chama_balanca()

       arq_toledo    =  "3200"
       chama_balanca()
       arq_toledo    =  "3201"
       chama_balanca()
       arq_toledo    =  "3202"
       chama_balanca()
       arq_toledo    =  "3203"
       chama_balanca()

       arq_toledo    =  "3210"
       chama_balanca()
       arq_toledo    =  "3211"
       chama_balanca()
       arq_toledo    =  "3212"
       chama_balanca()
       arq_toledo    =  "3213"
       chama_balanca()

       msgstop("FFFFFFFFFFF")
       return

function chama_balanca()


       bal_Porta     = val(substr(arq_toledo,1,1))
       bal_Baudrate  = val(substr(arq_toledo,2,1))
       bal_Databits  = val(substr(arq_toledo,3,1))
       bal_Paridade  = val(substr(arq_toledo,4,1))

peso = 0
RETORNO:= ABREPORTA( bal_Porta, bal_Baudrate, bal_Databits, bal_Paridade )   &&  vem do \dbdc\toledoPrix3.txt
IF RETORNO # 1
   return
else
   MsgInfo( "ABRIU Porta  COM da Balanca! "+arq_toledo )
ENDIF
RETORNO:= PEGAPESO( 0, @PESO, "" )
XQTD := PESO

if  peso <> 0
    msgstop(arq_toledo + " xqtd "+tran(xqtd , [@E 999.999]))
endif
RETORNO := FECHA_PORTA()


RETURN( XQTD )



* 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 Fecha_Porta() AS LONG PASCAL  lib xDllb
Editado pela última vez por Itamar M. Lins Jr. em 23 Ago 2023 11:54, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

balanca Toledo Prix 3

Mensagem por Itamar M. Lins Jr. »

Olá!
Eu uso acesso direto a COM1, COM2, COM3...

Código: Selecionar todos

***************************
Function PegaPeso(oDlgMain)
***************************
*
*
LOCAL cString := chr(5) //"ATE0" + Chr( 13 ) + "ATI3" + Chr( 13 )
LOCAL nTimeOut := 3000 // 3000 miliseconds = 3 sec.
LOCAL nResult
LOCAL nPort := Val(SubStr(pBalanca,4,1))
LOCAL cPortName := pBalanca
LOCAL nPeso:=0

rodape(oDlgMain,3,'Lendo Peso: ' )

Do While .t.

   hb_comSetDevice( nPort, cPortName )

   If !hb_comOpen( nPort )
      Hwg_msgStop("Falha abrindo a porta: "+Str(nPort) )
      exit
   EndIf
   hb_comGetDevice( nPort )
   IF !hb_comInit( nPort, 9600, "N", 8, 1 )
      Hwg_msgStop("Falha inicializando a porta: "+Str(nPort)+" 9600:N:8:1" )
      exit
   Else
      nResult := hb_comSend( nPort, cString, len( cString ), nTimeOut )
      IF nResult != len( cString )
         Hwg_msgStop("SEND Falhou." )
         exit
      EndIf
      Inkey(1)
      cString  := Space(32)
      nTimeOut := 500
      nResult  := hb_comRecv( nPort, @cString, len( cString ), nTimeOut )
      IF nResult == -1
         hwg_msgstop("RECV... Falha pegando peso")
         exit
      ENDIF
   EndIf
   EXIT
EndDo

nPeso := Val(SubStr(cString,2,5)) / 1000

hb_comClose( nPort )

Return nPeso
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

balanca Toledo Prix 3

Mensagem por paiva »

Itamar boa tarde
uso o xhb tenho que linkar alguma coisa ?
deu erro em todos comandos COM rs

Paiva
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

balanca Toledo Prix 3

Mensagem por Itamar M. Lins Jr. »

Olá!
Vc não especificou, esses são comandos do Harbour.
https://github.com/FiveTechSoft/xHarbou ... /hbcomhb.c
Aqui na fivetech o pessoal pegou do Harbour.
Pega e compila ai no seu projeto e testa pra ver se roda.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder