Comunicação Serial com Delphi 2010

Cabo Serial

Esta dica é para quem tem interesse em desenvolver aplicações para automação industrial que exigem comunicação pela porta Serial para controlar ou interagir com equipamentos.

O Delphi é um ambiente de desenvolvimento no mais simples estilo arrastar e soltar orientado a eventos. É uma ótima linguagem pra quem está começando e muito utilizada no desenvolvimento de aplicações comerciais no Brasil. Uma de suas principais vantagens é a possibilidade de expandir suas características e funcionalidades através de componentes de terceiros. Muitos dos quais são fornecidos gratuitamente e com código fonte, como é o caso do TComPort desenvolvido por Dejan Crnila. Seus arquivos podem ser baixados aqui: http://sourceforge.net/projects/comport/

Compatível com as versões 7, 2007, 2009 e 2010 do Delphi, o TComPort possibilita o desenvolvedor a criar aplicações que necessitam comunicar-se através da porta Serial de maneira rápida de simples. Depois de instalado, sua utilização se resume em praticamente duas partes. O método ComPort1.WriteStr e o evento ComPort1RxChar.

Enviando Dados:

Para enviar dados pela porta Serial, basta passar uma String com o conteúdo desejado para o método WriteStr conforme o exemplo abaixo disparado durante um clique em um botão:


procedure TfrmTeste.Button1Click(Sender: TObject);

begin

if ComPort1.Connected = True then // Verifica se a porta esta conectada

begin

ComPort1.WriteStr(Edit1.Text); // Enviando dados pela Serial

Edit1.Text := '';

end;

end;

Recebendo Dados:

Para receber dados pela porta Serial, basta utilizar o evento OnRxChar que é acionado automaticamente toda vez que alguma informação chega à porta Serial. Veja um exemplo abaixo:


procedure TfrmTeste.ComPort1RxChar(Sender: TObject; Count: Integer);

var

Buffer : AnsiString;

Contador: Integer;

begin

// Define o valor do Time Out

Sleep(500);

// Confere o número total de bytes dentro do pacote enviado

Contador := ComPort1.InputCount;

// Lê o pacote enviado e armazena no Buffer

ComPort1.ReadStr(Buffer, Contador);

// Alimenta um campo Memo com os dados recebidos

Memo1.Lines.Add((Buffer);

end;

Uma observação importante é o uso da função Sleep no começo do evento. Como a comunicação Serial é muito mais lenta que o processamento do computador, é importante ajustar o valor do Sleep para que de tempo de todos os dados enviados sejam recebidos pelo computador. A função Sleep faz o computador aguardar o tempo estipulado em milissegundos antes de continuar na próxima linha.

Viu como é simples enviar e receber dados pela porta Serial utilizando o Delphi? Agora com está base você pode evoluir com o código de acordo com as necessidades da sua aplicação.

Últimos 5 artigos de Fernando Fonte

Seja Social, Compartilhe!

Sobre Fernando Fonte

De Campinas-SP, bacharel em Ciência da Computação. Atua como Analista Programador em uma empresa de tecnologia, desenvolvendo softwares para comunicação e controle dos equipamentos produzidos e de organização dos processos internos. Possui conhecimento em sistemas operacionais Windows, programação Delphi e Visual Basic 6 e Banco de Dados SQL Server. Atualmente estuda Java, .NET, Flex Builder e Android. Tem interesse em Jogos, Celulares, Smartphones, Notebooks e tudo que for relacionado a tecnologia. Fundador deste site, convidou amigos para lhe ajudar com este projeto.