You are on page 1of 10

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Balanas de Pesagem - Abordagem prtica para balanas ALFA


Data: Tuesday, March 25 @ 20:16:02 Tpico Victory Fernandes

A automao atinge hoje indstrias, laboratrios, restaurantes e frigorficos, que utilizam balanas de pesagem destinadas s mais diversas aplicaes, integradas aos mais diversos tipos de equipamentos. Tais balanas so aplicadas em inmeros processos produtivos, desde balanas de alta preciso at balanas de pesagem de carga que suportam dezenas de toneladas. Alguns dos principais problemas dos desenvolvedores so: - Como integrar as balanas de pesagem ao sistema gerencial automatizando o processo produtivo? - Como fazer isso de forma transparente sem precisar conhecer a fundo a comunicao de baixo nvel com o hardware? - Onde obter as informaes para comunicao, suporte e meios para efetuar testes de comunicao sem possuir o hardware necessrio no laboratrio de desenvolvimento? Tendo em vista estas e outras dificuldades, apresentamos este artigo descrevendo todo o processo de configurao, implementao e testes de comunicao com balanas de pesagem ALFA ( www.alfainstrumentos.com.br ), muito encontradas nos ambientes industriais integradas a diversas mquinas e equipamentos.. Abordaremos desde a configurao dos registradores internos da balana, passando pela comunicao inicial e testes com o HyperTerminal, aplicativo demo de comunicao em Delphi, simulador da balana para testes em laboratrio sem a necessidade do equipamento, at a anlise de baixo nvel do protocolo de comunicao utilizado pelo fabricante. Apesar do protocolo de comunicao do fabricante dispor de inmeras funcionalidades de comunicao e programao do equipamento, este artigo mantm seu foco principal na leitura de informaes acerca do peso dos objetos colocados sob a balana. Os resultados apresentados aqui foram obtidos em testes com balana ALFA Mod.3102 acoplada a uma mquina recuperadora de plstico da Carnevale numa empresa produtora do plo plsticos de Camaari-Ba. A Balana ALFA e o indicador Mod.3102 Esto disponveis portas de comunicao do tipo serial RS232, RS422 (selecionveis atravs de jumper interno) e Paralela padro Centronics, todas acessadas atravs de prensa-cabo com a fiao conectada diretamente na placa do equipamento. Optamos por trabalhar com a comunicao serial RS232, devido a sua simplicidade e facilidade de integrar com computadores e outros dispositivos que j trazem tal porta de comunicao integrada. O primeiro passo para leitura das informaes da balana a partir do sistema, fazer a correta configurao dos jumpers internos para o padro de comunicao escolhido e a ligao correta do cabo de dados. Para isso necessrio abrir os parafusos laterais do indicador, conforme mostrado na Figura 01 a seguir, de forma que teremos acesso placa do equipamento.

1 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Figura 01: Indicador digital ALFA Mod.3102. Remoo de parafusos laterais para acesso placa
Uma vez removida a tampa frontal, temos acesso placa do equipamento onde deve ser configurado o jumper para comunicao RS232, conforme ponto circulado em vermelho mostrado na Figura 02 a seguir. Alm disso, devemos conectar os fios do nosso cabo serial, conforme mostrado nas setas coloridas da Figura02, TxD (vermelho), RxD (verde) e GND (azul) respectivamente.

Figura 02: Placa do equipamento ALFA Mod.3102. Configurao e conexo RS232


O cabo serial de comunicao com o equipamento deve ser confeccionado e conectado ao equipamento, conforme mostrado na Figura 03 a seguir.

Figura 03: Cabo de comunicao seria RS232 conector DB9 e conexo na placa do equipamento.
A interface serial no possui nenhum sinal de controle, e permite apenas a ligao ponto a ponto. A cada 250 milisegundos, enviado um pacote de informaes a uma taxa de 9600 bauds, 8 bits de dados, 1 stop-bit e sem paridade, contendo, dentre outros parmetros, informaes do peso do objeto colocado sobre a balana. O formato do pacote da mensagem enviada , conforme apresentado na Figura 04 a seguir, onde os bits estaro indicando sua funo ativada quando apresentarem nvel lgico 1.

2 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Figura 04: Formato do pacote de dados enviado pelo equipamento.

Byte STX

STATUS 1

STATUS 2

PESO+TARA ETX BCC

Definio Incio do pacote de comunicao (02 h); bit 7 = 1 bit 6 - Alarme de sobrecarga bit 5 - Alarme de saturao bit 4 - Deteco de movimento de peso bit 3 - Peso negativo (relativo a P4 at P0) bit 2, 1 e 0 - Posio do ponto decimal em binrio bit 7 = 1 bit 6 = TR3 bit 5 = TR2 bit 4 = TR1 bit 3 = Set-point 3 bit 2 = Set-point 2 bit 1 = Set-point 1 Bit 0 = (livre); P4 at P0: Peso apresentado no visor do indicador (em ASCII); T4 at T0: Peso relativo tara (em ASCII); Final do pacote de comunicao (03 h); Checksum dos dados enviados. Clculo de OU EXCLUSIVO de STX A ETX inclusive;

Os campos relativos aos set-points dizem respeito a 3 sadas em coletor aberto, opto-isoladas, com capacidade de 300 miliamperes / 30 volts entre VI+ e VI- (alimentao externa). Estas sadas so controladas por valores de set-points anteriormente programados, podendo ser usadas para controles de dispositivos diversos do equipamento, como abertura e fechamento de vlvulas bem como ter seus valores lidos pelo computador. Os campos TR1, TR2 e TR3 dizem respeito ao tipo de acionamento das travas. A opo 0 (zero) configura a sada como acionamento sem trava, ou seja, ativa a sada quando o peso lquido passa pelo ponto programado e desativa quando o peso for menor que o programado, descontado a histerese. Para maiores informaes sobre set-points e travas deve-se consultar o manual do fabricante. Uma vez configurado o equipamento, feitas as devidas conexes, e conhecendo o formato de dados dos pacotes transmitidos, passamos agora para a comunicao com o computador e tratamento das informaes lidas.

Comunicao via HyperTerminal Aps configurao dos parmetros da balana, preciso verificar se a mesma est comunicando corretamente com o software padro de comunicao do Windows, o HyperTerminal. Para tanto, abra o HyperTerminal no Windows, seguindo em Iniciar> Programas> Acessrios> Comunicao> HyperTerminal, e crie uma nova conexo configurada como segue: Porta Serial: Selecione a porta serial onde o equipamento estiver conectado Bits por segundo: 9600 Bits de Dados: 8 Paridade: Nenhum Bits de Parada: 1 Controle de Fluxo: Nenhum Utilize sempre o HyperTerminal como o primeiro teste para garantir a efetividade da comunicao pois o mesmo um programa oficial da Microsoft que acompanha o Windows e, somente se os dados estiverem chegando corretamente, passamos para a prxima etapa: integrar a comunicao ao nosso aplicativo. Uma vez concluda a conexo, aps o pressionamento do boto de transmisso das informaes no indicador digital da balana, o HyperTerminal efetua a leitura da string na porta serial e o resultado final ser semelhante ao mostrado na Figura 05:

3 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Figura 05: Comunicao com a balana via HyperTerminal e string lida da porta serial.
A string lida no HyperTerminal aparece segundo a interpretao em ASCII dos bytes enviados pela balana, de acordo com o protocolo de comunicao. Portanto, no se espante se os dados aparecerem truncados ou cheios de smbolos ilegveis; esse realmente o resultado esperado, e a traduo e interpretao desta string ilegvel para um formato amigvel justamente o trabalho das funes que voc ter que implementar para tratar o protocolo. Outra forma de poupar todo o tempo de implementao destas funes usar a ALFA_Unit, que ser apresentada nos tpicos seguintes e j implementa tal tratamento. A leitura das informaes da balana por parte do HyperTerminal garante que o hardware, as configuraes de drivers e o software esto corretos, e que podemos prosseguir com os testes do aplicativo demo. Caso contrrio, se faz necessrio a verificao dos itens que estejam apresentando problemas antes de prosseguir. Alguns dos problemas mais comuns encontrados at essa etapa so: - A configurao dos parmetros na balana est incorreta. - A configurao dos parmetros no HyperTerminal est incorreta. - A placa de comunicao serial da balana est com problemas. - A porta serial do computador est com problemas fsicos ou de configurao de driver no sistema operacional. - A configurao sugerida dos parmetros do HyperTerminal a default e no apresentou problemas nos modelos testados. Caso todos os itens anteriores aparentem estar operando corretamente e ,mesmo assim, a comunicao no funcione corretamente, entre em contato com o fabricante para maiores informaes. Aplicativo Demo O aplicativo demo um programa que faz a leitura da string enviada pela balana e os entrega sob a forma de variveis do Delphi, ao programador. Esta leitura e traduo so implementadas utilizando as funes da ALFA_Unit. Esta unit implementa internamente o tratamento completo das informaes do protocolo padro de comunicao das balanas ALFA (conforme documento Protocolo de Comunicao Serial Alfa Instrumentos verso 2.0), o que torna o processo como um todo muito mais simples.

4 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Figura 06: Demo de comunicao com balana de pesagem ALFA utilizando a ALFA_Unit
O demo j vem previamente configurado para os parmetros descritos na Comunicao via HyperTerminal. Sendo assim, basta clicar no boto Conectar para que ele passe a receber, assim como o HyperTerminal, a string enviada via porta serial pela balana no campo Texto Recebido. A principal diferena no entanto, que o demo apresenta separadamente no campo Texto Tratado, as informaes enviadas pela balana de uma forma legvel e de fcil interpretao. Caso deseje recompilar o programa demo para alterar seus valores ou implementar outras funcionalidades, necessrio copiar o arquivo ALFA_Unit.dcu para o diretrio Lib de instalao do Delphi, no caso do Delphi 6 por exemplo, C:\Arquivos de programas\Borland\Delphi6\Lib Agora vamos prosseguir, e saber como a comunicao, leitura e traduo da string lida implementada pelo demo. Comunicao do Demo com a porta serial A comunicao com a porta serial para a leitura da string enviada pela balana pode ser feita utilizando qualquer componente disponvel para este fim. Existem diversos componentes gratuitos para porta serial, disponveis para download na Internet, e voc pode utilizar aquele que achar melhor, ou at mesmo desenvolver seu prprio componente de comunicao. No demo, utilizamos o componente gratuito TcommPortDriver para efetuar a comunicao, por j estarmos familiarizados com o mesmo. O TCommPortDriver um componente gratuito para Delphi que rene todo o cdigo de baixo nvel necessrio para o controle de portas seriais. Suas propriedades e mtodos de conexo e transmisso de dados possibilitam utilizar as portas seriais facilmente. Para instalar o componente TCommPortDriver, descompacte o arquivo CommPortDriver.zip, que acompanha o demo em questo, na pasta desejada. No Delphi, abra o arquivo ComDrv32.dpk na pasta de instalao do componente e clique no boto Compile e depois em Install, para concluir a instalao. Depois de configurados os parmetros de comunicao descritos na Comunicao via HyperTerminal, o demo implementa o evento OnReceiveData do componente TCommPortDriver para fazer as chamadas das funes de traduo da ALFA_Unit, toda vez que o componente receber dados pela porta serial, como mostrado a seguir:

5 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

ALFA_Unit Tratamento do protocolo de comunicao da balana No evento de OnReceiveData, descrito no cdigo anterior, aps fazer a leitura, a string lida da porta serial armazenada na varivel Buffer. So feitas ento 4(quatro) chamadas s funes de tratamento do protocolo presentes na ALFA_Unit. So elas: procedure Trata_Buffer(Buffer: String; var STATUS1, STATUS2, Peso, Tara, CK_SUM: String); procedure Trata_STATUS1(STATUS1: string; var display : string; var peso_negativo, sensor_movimento, saturacao, sobrecarga: boolean); procedure Trata_STATUS2(STATUS2: string; var TR1, TR2, TR3, SP1, SP2, SP3: boolean); Como veremos no tpico Protocolo de Comunicao ALFA, a string lida se divide em 4 bytes de dados principais que contm as informaes enviadas pela balana: STATUS1, STATUS2, Peso+Tara e CheckSum. Ento, a primeira chamada feita funo Trata_Buffer passa a string lida como parmetro, e serve para quebrar a string

6 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

nessas 4(trs) partes principais, retornando as mesmas em 5 variveis, STATUS1, STATUS2, Peso, Tara, CK_SUM respectivamente. Como tambm veremos a seguir no tpico Protocolo de Comunicao ALFA, as partes denominadas STATUS1 e STATUS2 devem ento ser subdivididas, para que se possa retirar delas as outras informaes que elas contm. Para isso so feitas as chamadas s funes Trata_STATUS1 e Trata_STATUS2 passando como parmetros as partes respectivas, e recebendo como retorno as variveis relativas aos dados contidos dentro de cada uma dessas partes. Pronto! Est feita, de forma simples e muito rpida, a comunicao e interpretao dos valores transmitidos pela balana ALFA, atravs da chamada de apenas 3(trs) funes de tratamento, sem que fosse necessrio conhecer o tratamento de baixo nvel do protocolo em questo. Logo podemos ressaltar como vantagens na utilizao a ALFA_Unit: - Tratamento completo do protocolo ALFA com abstrao total da camada de baixo nvel. - Velocidade na implementao da comunicao com a balana. - Facilidade na obteno das informaes transmitidas. - Demo de comunicao com a balana. - Fontes em Delphi totalmente comentados. - FAQ de implementao e uso. A ALFA possui no mercado uma infinidade de modelos de balanas, e muitas pessoas se questionam sobre a compatibilidade da ALFA_Unit com esse ou aquele modelo. importante lembrar que a compatibilidade da ALFA_Unit no funo, necessariamente do modelo, e sim do formato do pacote de dados transmitido durante a comunicao e utilizado pelo modelo da balana que o desenvolvedor tiver em mos. Sendo assim, consulte o manual da sua balana e verifique o formato de dados. Caso seja o mesmo apresentado aqui o produto ser 100% compatvel! Simulador de Balanas ALFA Agora que j vimos como fazer a comunicao utilizando a balana, apresentamos uma soluo para uma das maiores dificuldades encontradas por implementadores nesta rea: a necessidade de ter uma balana disponvel no laboratrio de desenvolvimento para fazer testes. O simulador, mostrado na Figura 07, possibilita realizar os testes de implementao do seu software para comunicao com balanas ALFA, sem que, para isso, seja necessrio ter a balana, bastando que este esteja sendo executado em um outro computador conectado pela porta serial.

Figura 07: Simulador de Balanas ALFA Envio de informaes


Na aba Configurao, podem-se configurar todas as opes de valores transmitidos e, aps clicar em Conectar, o simulador, alm de transmitir as informaes pela porta serial, exibe no campo String Tratada todos os parmetros enviados e seus valores atribudos, tais como Peso, Tara e etc. Isso facilita as atividades de batimento entre informaes enviadas e recebidas pelo implementador, que tem todas as informaes exibidas em tela, ao contrrio da prpria balana que somente informa o peso no display.

7 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Figura 08: Simulador de balanas TOLEDO Configuraes do simulador


importante ressaltar que algumas funcionalidades como modo de transmisso contnua e sensor de movimento, no esto implementadas nesta verso. Desta forma o simulador no envia dados continuamente com intervalos de 250 milisegundos entre cada envio, como feito pela balana, sendo necessrio efetuar o clique no boto de enviar para que as informaes sejam enviadas. O cabo de comunicao para uso do simulador deve ser confeccionado conforme a Figura 09 a seguir retirada do site http://www.rogercom.com/PortaSerial/PortaSerial.htm (FONTE)

Figura 09: Cabo serial para uso com o Simulador de Balanas ALFA conexo PC-PC
Protocolo de Comunicao ALFA Agora que j vimos como fazer a implementao da comunicao com a balana, vamos aprofundar um pouco mais o nosso estudo, e entender a forma como as informaes so enviadas ao computador. A balana transmite as informaes para o computador obedecendo a um protocolo de comunicao do fabricante definido no documento Protocolo de Comunicao Serial Alfa Instrumentos verso 2.0. Este protocolo define as posies das variveis na seqncia binria transmitida, bem como os valores assumidos pelas mesmas. O formato bsico da seqncia binria transmitida que ser recebida pelo computador mostrado abaixo: STX,STATUS1,STATUS2,P4,P3,P2,P1,P0,T4,T3,T2,T1,T0,ETX,BCC

8 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Na seqncia binria mostrada, os bits, ou grupo de bits indicam configuraes ou estados da balana. Vamos agora analisar cada parte da seqncia e o seu significado na comunicao. STX Start of Text Assume o valor 02 em hexadecimal e apenas um byte de sincronia da comunicao, indicando o incio de uma nova mensagem STATUS1 Os bits 2, 1, 0 indicam a posio do ponto decimal em binrio e podem assumir os valores: 0 : Append(' Display = 1'); 1 : Append(' Display = 0.1'); 2 : Append(' Display = 0.01'); 000 = x 1 011 = x 0.1 010 = x 0.01 O bit 3 indica peso negativo e pode assumir os valores: 0 = Peso Positivo 1 = Peso Negativo O bit 4 indica deteo de movimento de peso e pode assumir os valores: 0 = No h deteco de movimento de peso 1 = H deteco de movimento de peso O bit 5 indica alarme de saturao e pode assumir os valores: 0 = No h alarme de saturao 1 = H alarme de saturao O bit 6 indica alarme de sobrecarga e pode assumir os valores: 0 = No h alarme de sobrecarga 1 = H alarme de sobrecarga O bit 7 assume sempre valor 1 e deve ser desconsiderado STATUS2 O bit 0 livre e deve ser desconsiderado. Os bits 3, 2, 1 indicam o estado do set-point e podem assumir os valores: 0 = Set-point desativado 1 = Set-point ativado Os bits 3, 2, 1 indicam o estado das travas e podem assumir os valores onde em TRx, a letra x indica a trava respectiva: 0 = Trava ao atingir o set-point TRx desligada 1 = Trava ao atingir o set-point TRx ligada O bit 7 assume sempre valor 1 e deve ser desconsiderado Px Peso Lquido ou Bruto. Os bits de P4 a P0 informam o exato peso apresentado no display do equipamento, onde em Px, a letra x indica a posio do bit no nibble. Tx Tara. Os bits de T4 a T0 informam a tara configurada na balana, onde em Tx, a letra x indica a posio do bit no nibble. . ETX End of Text Assume o valor 03 em hexadecimal e apenas um byte de sincronia da comunicao indicando o fim de uma mensagem. BCC CheckSum O checksum dos dados transmitidos enviado pela balana, e com ele podemos garantir a consistncia dos dados recebidos. O byte de checksum formado pelo complemento de 2 da soma de todos os bytes recebidos, exceto o prprio BCC, conforme mostrado na Figura 04.

9 de 10

11/04/2013 16:14

:: Active Delphi

http://www.activedelphi.com.br/print.php?sid=658

Percebe-se ento que a string lida se divide em: - 1 Byte de sincronia STX que pode ser usado para subdividir a string recebida, caso o envio ou recebimento seja concatenado. - 4 partes principais que contm as informaes enviadas pela balana, STATUS1, STATUS2, Peso, Tara que devem ser tratadas separadamente para a obteno das informaes transmitidas. - 1 Byte de CheckSum, que pode ser usado para identificar erros na string lida atravs da comparao dos valores. O que a ALFA_Unit? A ALFA_Unit um produto criado com base na experincia da TKS Software ( www.igara.com.br ) no desenvolvimento de aplicativos, para integrao com equipamentos de hardware de terceiros, seguindo a linha de produtos j consagrados como, por exemplo, de integrao com balanas de pesagem TOLEDO. O produto constitui uma soluo que visa facilitar e agilizar o processo de integrao com balanas ALFA, com base na documentao fornecida pelo fabricante, possibilitando que o desenvolvedor abstraia quase que completamente a camada de comunicao com o equipamento, uma vez que, ao adquirir o produto, o mesmo fornecido com cdigo fonte e todas as funcionalidades prontas para serem utilizadas e importadas para o aplicativo final desejado. Maiores informaes sobre a ALFA_Unit em: http://www.igara.com.br/produto.php?cod_produto=110 Maiores informaes sobre o simulador de balanas ALFA em: http://www.igara.com.br/produto.php?cod_produto=111 Consideraes Finais Esperamos com este artigo exemplificar o processo, esclarecer dvidas e abrir novas possibilidades aos leitores, facilitando a implementao de sistemas para operao em conjunto com os diversos modelos de balana ALFA, bem como facilitando a implementao para modelos de outros fabricantes, uma vez que o paradigma apresentado , em muito, semelhante aos demais utilizados no mercado. Victory Fernandes Engenheiro Mestrando em Redes de Computadores, Professor do Departamento de Engenharia da UNIFACS Universidade Salvador, e desenvolvedor scio da TKS Software - Solues de Automao e Softwares Dedicados. Pode ser contatado em victory@igara.com.br , ou atravs dos sites www.igara.com.br www.igara.com.br/victory Murilo Plnio Engenheiro Mestrando em Mecatrnica, Tcnico em Informtica e desenvolvedor da TKS Software - Solues de Automao e Softwares Dedicados. Pode ser contactado em muriloplinio@yahoo.com

Digitado por :: Active Delphi http://www.activedelphi.com.br/ A URL para esta notcia : http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=658

10 de 10

11/04/2013 16:14