Ir para conteúdo
Fórum Script Brasil
  • 0

Capturar Peso, Preço Kilo e Preço total Toledo Prix III


Paulo Henrique de Assis

Pergunta

Boa tarde!

Por gentileza, gostaria em saber se é possível Capturar Peso, Preço Kilo e Preço total Toledo Prix III?

Queria saber se a Toledo tem alguma função na Dll eu que consiga enviar o preço em kilo e o preço total do menu aplicativo para a balança?? Ou até mesmo capturar esses valores da balança para o meu aplicativo?

Pelo que eu vi dá para trabalhar com ela via dll, conforme tem no aplicativo de exemplo, que são :

function AbrePorta(const Porta,BaudRate,DataBits,Paridade:Integer):Integer;stdcall;external 'P05.DLL';

function FechaPorta:Integer;stdcall;external 'P05.DLL';

function FechaPortaP05:Integer;stdcall;external 'P05.DLL';

function PegaPeso(const OpcaoEscrita:integer;Peso,Local:Pchar):Integer;stdcall;external 'P05.DLL';

function PegaPesoP05B(const OpcaoEscrita,PedeTara:integer;Peso,Local:Pchar):Integer;stdcall;external 'P05.DLL';

Pois tem um teste no roteiro do PAF-ECF que diz assim:

REQUISITO XXXVIII-A

TESTES

(Observação: Este teste somente deverá ser realizado no caso de programa que funcione

com balança interligada ou integrada ao ECF, devendo constar esta condição no laudo. Para

a realização dos testes o desenvolvedor deverá disponibilizar balança computadorizada,

vedado o uso de simulador)

TESTE 93A: Controle, por meio do PAF-ECF, da interligação ou integração da balança ao

ECF.

Passo 1: Solicitar que a empresa instale o PAF-ECF com a balança integrada ou interligada

ao ECF.

Passo 2: Simule o fornecimento de alimentação a peso, colocando um objeto na balança.

Passo 3: Capture os dados gerados pela balança (peso, valor unitário e valor total) e vincule .

Por isso preciso capturar esses outros valores alem do peso!

Atenciosamente,

Paulo

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

perguntas sobre a balança

http://www.igara.com.br/faq_toledo_p03.htm

simulador de balança toledo

http://www.igara.com.br/produto.php?cod_produto=48

P05.dll para comunicação com a balança

http://www.fivewin.com.br/exibedicas.asp?id=679

exemplo de componente de comunicação

unit UTToledo; 

interface 

uses 
  Dialogs, SysUtils, Classes, Controls; 

  function AbrePorta(const Porta, BaudRate, DataBits, Paridade: Integer): Integer; StdCall; External 'P05.DLL'; 
  function PegaPeso(const OpcaoEscrita: Integer; Peso, Local: Pchar): Integer; StdCall; external 'P05.DLL'; 
  function FechaPorta: Integer; StdCall; External 'P05.dll'; 

type 
  TPorta = (prCOM1, prCOM2, prCOM3, prCOM4, prCOM5, prCOM6, prCOM7, prCOM8, prCOM9); 
  TBaudRate = (br2400, br4800, br9600); 
  TDataBits = (db7Bits, db8Bits); 
  TParidade = (pdNenhuma, pdImpar, pdPar, pdEspaco); 

  TToledo = class(TComponent) 
  protected 
    function GetWeight: Real; 

  private 
    FPorta: TPorta; 
    FBaudRate: TBaudRate; 
    FDataBits: TDataBits; 
    FParidade: TParidade; 
    procedure SetPorta(const Value: TPorta); 
    procedure SetBaudRate(const Value: TBaudRate); 
    procedure SetDataBits(const Value: TDataBits); 
    procedure SetParidade(const Value: TParidade); 
  public 
    function PegarPeso: Real; 
    function AbrirPorta: Integer;    
  published 
    property Porta: TPorta read FPorta write SetPorta; 
    property DataBits: TDataBits read FDataBits write SetDataBits; 
    property Paridade: TParidade read FParidade write SetParidade; 
    property BaudRate: TBaudRate read FBaudRate write SetBaudRate; 
  end; 

procedure Register; 

implementation 

procedure Register; 
begin 
  RegisterComponents('Anderson', [TToledo]); 
end; 

{ TToledo } 

function TToledo.AbrirPorta: Integer; 
var 
  iPorta: Byte; 
  iBaudRate: Byte; 
  iDataBits: Byte; 
  iParidade: Byte; 
begin 
  case Porta of 
    prCOM1 : iPorta := 1; 
    prCOM2 : iPorta := 2; 
    prCOM3 : iPorta := 3; 
    prCOM4 : iPorta := 4; 
    prCOM5 : iPorta := 5; 
    prCOM6 : iPorta := 6; 
    prCOM7 : iPorta := 7; 
    prCOM8 : iPorta := 8; 
    prCOM9 : iPorta := 9; 
  else 
    iPorta := 1; 
  end; 

  case BaudRate of 
    br2400 : iBaudRate := 0; 
    br4800 : iBaudRate := 1; 
    br9600 : iBaudRate := 2; 
  else 
    iBaudRate := 2;  
  end; 

  case DataBits of 
    db7Bits : iDataBits := 0; 
    db8Bits : iDataBits := 1; 
  else 
    iDataBits := 0; 
  end; 

  case Paridade of 
    pdNenhuma : iParidade := 0; 
    pdImpar   : iParidade := 1; 
    pdPar     : iParidade := 2; 
    pdEspaco  : iParidade := 3; 
  else 
    iParidade := 3; 
  end; 

  Result := AbrePorta(iPorta, iBaudRate, iDataBits, iParidade ) 
end; 

function TToledo.GetWeight: Real; 
begin 
  Result := StrToFloatDef(InputBox('Peso na balança', 'Informe o peso','0'),0); 
end; 

function TToledo.PegarPeso: Real; 
var 
  Retorno: Integer; 
  Peso: array[0..5]of char; 
begin 
  repeat 
    Retorno := AbrirPorta; 
    Result := 0; 
    if Retorno <> 1 then 
      MessageDlg('Erro na abertura da porta COM da Balança!',mtError,[mbOk],0) 
    else 
      begin 
        Retorno := PegaPeso( 1, Peso, '' ); 
        if Retorno = 1 then 
          begin 
            Result  := StrToFloatDef(StrPas(Peso),0); 
            Result  := Result/1000; 
//            Break; 
          end; 
        FechaPorta(); 
      end; 

    if (Result <= 0) or (Retorno <> 1) then 
      begin 
        if MessageDlg('*** ERRO NA LEITURA DO PESO DA BALANÇA *** '                  + #13 + #13 + 
            'O Sistema não conseguiu ler o peso da Balança.'                 + #13 + 
            'Você pode retirar o peso e colocar novamente para nova tenta-'  + #13 + 
            'tiva de leitura do peso da balança. Caso não consiga ler o peso'+ #13 + 
            'da balança, você poder  digitar o peso do produto.'             + #13 + #13 + #13 + 
            '[SIM] -> Para digitar o peso do produto'                        + #13 + 
            '[NÃO] -> Para nova tentativa de ler o peso na balança', 
            MtWarning,[mbYes,mbNo],0) = MrYes then 
          begin 
            Result := GetWeight(); 
            Break; 
          end;//-- if MessageDlg('*** ERRO ... 
      end//-- if (Result <= 0) or (Retorno <> 1) then 
    else 
      begin 
        Break; 
      end; 
  until False 

end; 

procedure TToledo.SetBaudRate(const Value: TBaudRate); 
begin 
  FBaudRate := Value; 
end; 

procedure TToledo.SetDataBits(const Value: TDataBits); 
begin 
  FDataBits := Value; 
end; 

procedure TToledo.SetParidade(const Value: TParidade); 
begin 
  FParidade := Value; 
end; 

procedure TToledo.SetPorta(const Value: TPorta); 
begin 
  FPorta := Value; 
end; 

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
perguntas sobre a balança

http://www.igara.com.br/faq_toledo_p03.htm

simulador de balança toledo

http://www.igara.com.br/produto.php?cod_produto=48

P05.dll para comunicação com a balança

http://www.fivewin.com.br/exibedicas.asp?id=679

exemplo de componente de comunicação

unit UTToledo; 

interface 

uses 
  Dialogs, SysUtils, Classes, Controls; 

  function AbrePorta(const Porta, BaudRate, DataBits, Paridade: Integer): Integer; StdCall; External 'P05.DLL'; 
  function PegaPeso(const OpcaoEscrita: Integer; Peso, Local: Pchar): Integer; StdCall; external 'P05.DLL'; 
  function FechaPorta: Integer; StdCall; External 'P05.dll'; 

type 
  TPorta = (prCOM1, prCOM2, prCOM3, prCOM4, prCOM5, prCOM6, prCOM7, prCOM8, prCOM9); 
  TBaudRate = (br2400, br4800, br9600); 
  TDataBits = (db7Bits, db8Bits); 
  TParidade = (pdNenhuma, pdImpar, pdPar, pdEspaco); 

  TToledo = class(TComponent) 
  protected 
    function GetWeight: Real; 

  private 
    FPorta: TPorta; 
    FBaudRate: TBaudRate; 
    FDataBits: TDataBits; 
    FParidade: TParidade; 
    procedure SetPorta(const Value: TPorta); 
    procedure SetBaudRate(const Value: TBaudRate); 
    procedure SetDataBits(const Value: TDataBits); 
    procedure SetParidade(const Value: TParidade); 
  public 
    function PegarPeso: Real; 
    function AbrirPorta: Integer;    
  published 
    property Porta: TPorta read FPorta write SetPorta; 
    property DataBits: TDataBits read FDataBits write SetDataBits; 
    property Paridade: TParidade read FParidade write SetParidade; 
    property BaudRate: TBaudRate read FBaudRate write SetBaudRate; 
  end; 

procedure Register; 

implementation 

procedure Register; 
begin 
  RegisterComponents('Anderson', [TToledo]); 
end; 

{ TToledo } 

function TToledo.AbrirPorta: Integer; 
var 
  iPorta: Byte; 
  iBaudRate: Byte; 
  iDataBits: Byte; 
  iParidade: Byte; 
begin 
  case Porta of 
    prCOM1 : iPorta := 1; 
    prCOM2 : iPorta := 2; 
    prCOM3 : iPorta := 3; 
    prCOM4 : iPorta := 4; 
    prCOM5 : iPorta := 5; 
    prCOM6 : iPorta := 6; 
    prCOM7 : iPorta := 7; 
    prCOM8 : iPorta := 8; 
    prCOM9 : iPorta := 9; 
  else 
    iPorta := 1; 
  end; 

  case BaudRate of 
    br2400 : iBaudRate := 0; 
    br4800 : iBaudRate := 1; 
    br9600 : iBaudRate := 2; 
  else 
    iBaudRate := 2;  
  end; 

  case DataBits of 
    db7Bits : iDataBits := 0; 
    db8Bits : iDataBits := 1; 
  else 
    iDataBits := 0; 
  end; 

  case Paridade of 
    pdNenhuma : iParidade := 0; 
    pdImpar   : iParidade := 1; 
    pdPar     : iParidade := 2; 
    pdEspaco  : iParidade := 3; 
  else 
    iParidade := 3; 
  end; 

  Result := AbrePorta(iPorta, iBaudRate, iDataBits, iParidade ) 
end; 

function TToledo.GetWeight: Real; 
begin 
  Result := StrToFloatDef(InputBox('Peso na balança', 'Informe o peso','0'),0); 
end; 

function TToledo.PegarPeso: Real; 
var 
  Retorno: Integer; 
  Peso: array[0..5]of char; 
begin 
  repeat 
    Retorno := AbrirPorta; 
    Result := 0; 
    if Retorno <> 1 then 
      MessageDlg('Erro na abertura da porta COM da Balança!',mtError,[mbOk],0) 
    else 
      begin 
        Retorno := PegaPeso( 1, Peso, '' ); 
        if Retorno = 1 then 
          begin 
            Result  := StrToFloatDef(StrPas(Peso),0); 
            Result  := Result/1000; 
//            Break; 
          end; 
        FechaPorta(); 
      end; 

    if (Result <= 0) or (Retorno <> 1) then 
      begin 
        if MessageDlg('*** ERRO NA LEITURA DO PESO DA BALANÇA *** '                  + #13 + #13 + 
            'O Sistema não conseguiu ler o peso da Balança.'                 + #13 + 
            'Você pode retirar o peso e colocar novamente para nova tenta-'  + #13 + 
            'tiva de leitura do peso da balança. Caso não consiga ler o peso'+ #13 + 
            'da balança, você poder  digitar o peso do produto.'             + #13 + #13 + #13 + 
            '[SIM] -> Para digitar o peso do produto'                        + #13 + 
            '[NÃO] -> Para nova tentativa de ler o peso na balança', 
            MtWarning,[mbYes,mbNo],0) = MrYes then 
          begin 
            Result := GetWeight(); 
            Break; 
          end;//-- if MessageDlg('*** ERRO ... 
      end//-- if (Result <= 0) or (Retorno <> 1) then 
    else 
      begin 
        Break; 
      end; 
  until False 

end; 

procedure TToledo.SetBaudRate(const Value: TBaudRate); 
begin 
  FBaudRate := Value; 
end; 

procedure TToledo.SetDataBits(const Value: TDataBits); 
begin 
  FDataBits := Value; 
end; 

procedure TToledo.SetParidade(const Value: TParidade); 
begin 
  FParidade := Value; 
end; 

procedure TToledo.SetPorta(const Value: TPorta); 
begin 
  FPorta := Value; 
end; 

end.

abraço

Boa tarde!

Pelo que eu entendi só irei capturar o peso da balança, correto? e paga gerar o preço em kilo que é informado na própria balança, tem como?

Link para o comentário
Compartilhar em outros sites

  • 0
Citar
Pelo que eu entendi só irei capturar o peso da balança, correto? e para pegar o preço em kilo que é informado na própria balança, tem como?

Função para tratamento do buffer geral enviado pela balança

procedure Trata_Buffer(Buffer: String; var SWA, SWB, SWC, Peso, Tara: String);

se o preço for a Tara, então voce pode fazer uma conversão de tipo

valor := strtofloat(Tara)

 

veja o que encontra na área de downloads

obs: link corrigido

http://www.igara.com.br/downloads/

 

abraço

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas disse:
Citar
Pelo que eu entendi só irei capturar o peso da balança, correto? e para pegar o preço em kilo que é informado na própria balança, tem como?

Função para tratamento do buffer geral enviado pela balança

procedure Trata_Buffer(Buffer: String; var SWA, SWB, SWC, Peso, Tara: String);

se o preço for a Tara, então voce pode fazer uma conversão de tipo

valor := strtofloat(Tara)

veja o que encontra na área de downloads

http://www.igara.com.br/downloads/

 

abraço

 

Bom dia!

Por acaso você tem como disponibilizar essa procedure completa?

Se possível, mande para o meu email pha_net@yahoo.com.br

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...