Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3164 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Estou desenvolvendo um programa para comunicação com balança rodoviária Saturno, via porta serial, estou tentando usar o componente ACBrBA, mas este componente não tem a marca Saturno no modelo  em propriedade, tentei usar outros modelos e não deu certo. Estou utilizando o Delphi 2010. Tem algum outro componente que posso usar? 

  • 3 meses depois ...
  • 3 meses depois ...
  • 5 semanas depois ...
Postado (editado)
Desculpe a demora em retornar
Este é o codigo que le a balança saturno  e mais abaixo coloquei a modificação para quem quiser ler a balança toledo.
estou usando o tcomport e alguns componentes jedi
 
 
 
 
unit formLerBalancaOP;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, inifiles, StdCtrls, Mask, Buttons,
  ExtCtrls, ScktComp, JvExMask, JvToolEdit, JvBaseEdits, ACBrBase, ACBrBAL,
  CPort;
 
type
  TformLerBalanca = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    EditValor: TJvCalcEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ComPort: TComPort;
    Panel3: TPanel;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitSalvarClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure ComPortRxChar(Sender: TObject; Count: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    a, b, valor, s: string;
 
    confirmar_peso, alterna: Boolean;
  end;
 
var
  formLerBalanca: TformLerBalanca;
  Ini: TIniFile;
  Port, BautRate, DataBits, StopBits, Parity, FlowControl, Modelo: variant;
 
implementation
 
{$R *.dfm}
 
procedure TformLerBalanca.FormShow(Sender: TObject);
begin
 
  Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\maitech.ini');
 
  Port := Ini.ReadString('balanca', 'Port', '');
  BautRate := Ini.ReadString('balanca', 'BautRate', '');
  DataBits := Ini.ReadString('balanca', 'DataBits', '');
  StopBits := Ini.ReadString('balanca', 'StopBits', '');
  Parity := Ini.ReadString('balanca', 'Parity', '');
  FlowControl := Ini.ReadString('balanca', 'FlowControl', '');
  Modelo := Ini.ReadString('balanca', 'Modelo', '');
 
  Self.Caption := 'Leitura Via cabo Serial Porta ' + Port;
 
  { configura a balanca }
  ComPort.Port := Port;
  ComPort.BaudRate := StrToBaudRate(BautRate);
  ComPort.DataBits := StrToDataBits(DataBits);
  ComPort.StopBits := StrToStopBits(StopBits);
  ComPort.Parity.Bits := StrToParity(Parity);
  ComPort.FlowControl.FlowControl := StrToFlowControl(FlowControl);
  // Modelo:=Ini.ReadString('balanca','Modelo','');
 
  { final da balanca }
 
  try
    ComPort.Open;
  except
    on e: exception do
    begin
      ShowMessage('Erro ao inicializar a balança ' + e.Message);
    end;
  end;
 
end;
 
procedure TformLerBalanca.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 
  ComPort.Connected := false;
  ComPort.Close;
 
end;
 
procedure TformLerBalanca.FormCreate(Sender: TObject);
var
  r: TRect;
  osv: TOSVersionInfo;
begin
  scaled := true;
 
  osv.dwOSVersionInfoSize := sizeof(osv);
  GetVersionEx(osv);
  if osv.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
  begin
    SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
    Left := ((r.right - r.Left) - (Width)) div 2;
    Top := ((r.bottom - r.Top) - (55 + Height)) div 2;
  end
  else
  begin
    Left := (GetSystemMetrics(SM_CXSCREEN) - (Width)) div 2;
    Top := (GetSystemMetrics(SM_CYSCREEN) - (55 + Height)) div 2;
  end;
 
end;
 
procedure TformLerBalanca.BitSalvarClick(Sender: TObject);
begin
  confirmar_peso := true;
  Close;
end;
 
procedure TformLerBalanca.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  try
    ComPort.ReadStr(Str, Count);
    EditValor.Text := Copy(Str, 1, 7);
 
  except
    on e: exception do
    begin
      Panel3.Caption := '...tentando estabilizar';
    end;
  end;
end;
 
procedure TformLerBalanca.BitBtn2Click(Sender: TObject);
begin
  confirmar_peso := false;
  Close;
end;
 
end.
 
 
 
 
 
// Balança Toledo //
 
procedure TformLerBalanca.ComPort1RxChar(Sender: TObject; Count: Integer);
var
str:string;
begin
 
 
        ComPort1.ReadStr(Str, Count);
        total:=total+str;
          if length(total)=18  then
              begin
                  editvalor.text:=copy(total,5,6);
                  total:='';
                  str:='';
              end;
 
 
end;
 
 
Arquivo INI
 
 
[balanca]
Port=COM1
BautRate=4800
DataBits=5
StopBits=1
Parity=Even
FlowControl=None
Modelo=Saturno
Editado por Rafael Maires Rangel

Rafael Maires

[email protected]

 

  • 1 ano depois...
Postado

Bom dia,

Eu desenvolvi uma comunicação com a balança rodoviária da Saturno.

Se for de interesse da comunidade, seria bacana adicionar mais este modelo ao repositório.

Segue em anexo a unit ACBrBALSaturno.pas e a alteração na ACBrBAL.pas.

Se houver a necessidade de alguma modificação fiquem a vontade para me passar ou realizá-las.

O manual com o protocolo se encontra neste link.

Atenciosamente.

Comunicação Serial - Saturno.pdf

ACBrBALSaturno.pas

ACBrBAL.pas

  • Curtir 3

Saudações,

Wislei de Brito Fernandes

  • 3 semanas depois ...
Postado
Em 04/03/2016 at 11:20, Wislei de Brito Fernandes disse:

Bom dia,

Eu desenvolvi uma comunicação com a balança rodoviária da Saturno.

Se for de interesse da comunidade, seria bacana adicionar mais este modelo ao repositório.

Segue em anexo a unit ACBrBALSaturno.pas e a alteração na ACBrBAL.pas.

Se houver a necessidade de alguma modificação fiquem a vontade para me passar ou realizá-las.

O manual com o protocolo se encontra neste link.

Atenciosamente.

Comunicação Serial - Saturno.pdf

ACBrBALSaturno.pas

ACBrBAL.pas

Sr. Wislei,

parabéns pela implementação, usei este código com uma cliente aqui  funcionou perfeitamente.

obrigado pela contribuição. espero que este código seja em breve incorporado ao trunk vai ser de grande valia.

 

 

  • Curtir 1
  • 2 semanas depois ...
Postado
Em 21/03/2016 at 08:59, Paulo Henrique de Castro disse:

Sr. Wislei,

parabéns pela implementação, usei este código com uma cliente aqui  funcionou perfeitamente.

obrigado pela contribuição. espero que este código seja em breve incorporado ao trunk vai ser de grande valia.

 

 

Boa tarde Paulo Henrique,

Fico feliz em saber que o código ajudou você!

Estou aguardando uma posição dos moderadores para qualquer ajuste, caso necessário, pois temos muitos clientes com balança rodoviária da Saturno.

Atenciosamente.

Saudações,

Wislei de Brito Fernandes

  • Este tópico foi criado há 3164 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.