Você está na página 1de 211

VALTER LUS ARLINDO DE CAMARGO

DESENVOLVIMENTO E IMPLEMENTAO DE UMA


PLATAFORMA PARA MONITORAMENTO
ESTRUTURAL UTILIZANDO SENSORES
EXTENSOMTRICOS CONECTADOS EM REDE
Londrina
2008
VALTER LUS ARLINDO DE CAMARGO
DESENVOLVIMENTO E IMPLEMENTAO DE UMA
PLATAFORMA PARA MONITORAMENTO
ESTRUTURAL UTILIZANDO SENSORES
EXTENSOMTRICOS CONECTADOS EM REDE
Dissertao submetida ao Departamento de
Engenharia Eltrica da Universidade Es-
tadual de Londrina, como requisito parcial
para obteno do ttulo de Mestre em En-
genharia Eltrica.
Orientador: Prof. Dr. Fernando Cardoso
Castaldo
Londrina
2008
VALTER LUS ARLINDO DE CAMARGO
DESENVOLVIMENTO E IMPLEMENTAO DE UMA
PLATAFORMA PARA MONITORAMENTO
ESTRUTURAL UTILIZANDO SENSORES
EXTENSOMTRICOS CONECTADOS EM REDE
Esta dissertao foi julgada e aprovada para a obteno do Ttulo de Mestre em Engenharia
Eltrica, no Programa de mestrado da Universidade Estadual de Londrina,
Londrina, 10 de Maro de 2008.
BANCA EXAMINADORA
Prof. Dr. Fernando Cardoso Castaldo
Presidente
Prof. Dr. Aleksander Sade Paterno
Universidade do Estado de Santa Catarina
(UDESC)
Prof. Dr. Carlos Jos M. da Costa Branco
Universidade Estadual de Londrina (UEL)
Prof. Dr. Jos Alexandre de Frana
Universidade Estadual de Londrina (UEL)
Prof. Dr. Marcelo Carvalho Tosin
Universidade Estadual de Londrina (UEL)
Dedicatria
Para as minhas lhas Gabriela e Marcela.
Para a minha esposa Ftima
Agradecimentos
Ao meu orientador, Prof. Dr. Fernando Cardoso Castaldo, sou imensamente grato pela orienta-
o e pelas sugestes que enriqueceram o trabalho.
Aos professores Dr. Ernesto Fernando Ferreyra Ramrez, Dr. Lcio dos Reis Barbosa, Dr.
Marcelo Carvalho Tosin, Dr. Robinson Hoto, Dr. Tauk Abro e Dr. Walter Germanovix, pelo
privilgio de t-los como meus professores durante os crditos.
A professora Dra. Silvia Galvo de Souza Cervantes pelos valiosos conselhos e exemplo de
prossionalismo.
Aos meus colegas do mestrado: Alexandre Fenato, Cludio Lima Lopes Ferreira, Diogo Kaoru
Takayama, Leonardo Dagui e Rodger Vitria Pereira, pelo companheirismo e amizade.
Ao colega de prosso e amigo pessoal Prof. Ms. Claiton Moro Franchi pelos incentivos,
conselhos e apoio incondicional.
Aos Professores Dr. Carlos Henrique Zanelato Pantaleo, Dr. Dante Alves Medeiros Filho,
Dra. Maria Madalena Dias e Ms. Evandro Cherubini Rolin, pela conana depositada em mim
atravs da recomendao do meu nome para o programa de mestrado.
A minha famlia pelo apoio durante esta jornada.
A todos que de forma direta ou indireta colaboraram para a realizao deste trabalho.
Resumo
Este trabalho descreve o desenvolvimento de um sistema para medio de esforos e defor-
mao mecnica em estruturas civis utilizando extensmetros eltricos de resistncia (Strain-
Gauges), implementado por circuitos de condicionamento de sinais e com capacidade para co-
municao de dados em rede. A motivao deste trabalho reside no aspecto relacionado se-
gurana pblica com o monitoramento das condies estruturais em obras da construo civil.
Em sistemas convencionais, quando se deseja medir simultaneamente vrios pontos espalhados
espacialmente pela estrutura, utilizando um sistema de aquisio de dados centralizado, a a-
o deve percorrer um longo caminho, estando sujeita captao de radiao eletromagntica e
atenuao de sinal, o que pode comprometer a conabilidade da medida. O sistema a ser desen-
volvido deve atender a critrios tais como portabilidade, facilidade de calibrao e congurao,
meio de transmisso convel e de baixo custo, assegurando uma maior conabilidade do sinal
captado e reduo do custo da manuteno e de instalao. Para este propsito, ser empregada
uma combinao de microcontroladores de baixo custo, operao atravs de software exvel e
um sistema condicionador de sinal de alta ecincia, obtendo-se assim, uma alta taxa de coleta
de dados com capacidade de comunicao em rede. O sistema desenvolvido apresenta caracte-
rsticas multifuno, ou seja, no limitado leitura apenas de sinais de esforos e deformaes,
mas pode tambm ser utilizado, com as devidas adaptaes do sistema condicionador de sinal,
para medio de sinais de outra natureza, como por exemplo, temperatura e umidade. Aps uma
introduo aos princpios bsicos de medies utilizando extensmetros eltricos e de tcnicas
de condicionamento do sinal, o sistema de comunicao em rede apresentado, seguido de uma
discusso sobre o processo de aquisio de dados e calibrao. Finalmente, os resultados so
apresentados e discutidos.
PALAVRAS-CHAVE: Rede de Sensores; Extensmetros eltricos; Strain-gages; Monito-
ramento de estruturas; Instrumentao eletrnica; Sistema de Aquisio de Dados.
Abstract
This paper describes the development of a system for stress and mechanical deformation
measurement in civil structures using strain gauges, implemented using a signal conditioning
circuit and featured for network data communication. The motivation of this work is related
with the concern of public safety with the monitoring of conditions of civil structures buildings.
In conventional systems, when you wish to measure simultaneously several points spatially
spreaded by the structure, using a centralized data acquisition system, the wiring should go
a long way and therefore subject of capturing electromagnetic radiation and signal attenua-
tion, which can compromise the reliability of the measurement. The system being developed
must meet criteria such as portability, ease of calibration and conguration, means of trans-
mission reliable and low cost, ensuring greater reliability the signal received and reducing the
cost of maintenance and installation. For this purpose, will be employed a combination of low-
cost microcontrollers, operating through exible software and a signal conditioning system,
high-efciency, obtaining thus a high rate data collection with the ability of communication
in network. The system developed gives multifunction characteristics, or is not only limited
to reading stress and deformations, but can also be used, with appropriate adjustments to the
system of signal conditioner, for measurement signals of other kinds, such as temperature and
humidity. After an introduction to the basic principles of measurements using strain gauges and
techniques of signal conditioning, the network communication system is presented, followed
by a discussion of data acquisition system and its calibration process. Finally, the results are
presented and discussed.
KEYWORDS: Sensor Networks; Strain Gauges; Structural Health Monitoring; Electronic
Instrumentation; Data Acquisition.
Lista de Figuras
1 Sistema convencional de aquisio de dados extensomtricos . . . . . . . . . p. 4
2 Rede de sensores sem-os (wireless) integrada a uma estrutura . . . . . . . . p. 5
3 Arquitetura do sistema desenvolvido neste trabalho . . . . . . . . . . . . . . p. 6
4 Extensmetro Eltrico a o (wire gauges) . . . . . . . . . . . . . . . . . . . p. 18
5 Extensmetro eltrico laminar (foil gauges) . . . . . . . . . . . . . . . . . . p. 18
6 Extensmetro laminar tpico (foil gauges) . . . . . . . . . . . . . . . . . . . p. 19
7 Deformao de um corpo submetido uma fora externa . . . . . . . . . . . p. 19
8 Lei de Hooke - Tenso versus Deformao . . . . . . . . . . . . . . . . . . p. 21
9 Condutor de seo transversal circular . . . . . . . . . . . . . . . . . . . . . p. 22
10 Curva dos fatores de sensibilidade de diversos materiais . . . . . . . . . . . . p. 25
11 Diagrama de uma Ponte de Wheatstone bsica . . . . . . . . . . . . . . . . . p. 27
12 Congurao utilizando 4 extensmetros ativos (full bridge) . . . . . . . . . p. 29
13 Extensmetro ligado em um quarto de ponte . . . . . . . . . . . . . . . . . . p. 29
14 Ponte de Wheatstone contendo dois elementos ativos idnticos e ligados em
braos adjacentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31
15 Ponte de Wheatstone contendo dois elementos ativos idnticos em ramos
opostos e alimentada por uma fonte de tenso constante. . . . . . . . . . . . p. 32
16 Ponte de Wheatstone contendo dois elementos ativos idnticos e alimentada
por uma fonte de corrente constante. . . . . . . . . . . . . . . . . . . . . . . p. 33
17 Efeito da ao na medio . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
18 Arquitetura geral do sistema proposto . . . . . . . . . . . . . . . . . . . . . p. 37
19 Comunicao tipo mestre escravo (polling) . . . . . . . . . . . . . . . . . . p. 40
20 Arquitetura tradicional de comunicao utilizando drivers . . . . . . . . . . . p. 43
21 Comunicao utilizando tecnologia OPC . . . . . . . . . . . . . . . . . . . . p. 44
22 Mapeamento de Itens OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 45
23 Estrutura organizacional de um servidor OPC contendo uma hierarquia de
grupos e itens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 45
24 Arquitetura sistema de aquisio de dados . . . . . . . . . . . . . . . . . . . p. 47
25 Diagrama em blocos do terminal de rede desenvolvido . . . . . . . . . . . . p. 50
26 A tenso de referncia proporcional a Ve, o que elimina os erros devido a
variaes na alimentao (dessensibilizao da tenso da alimentao). . . . p. 54
27 Amplicador de Instrumentao utilizando 3 amplicadores operacionais . . p. 55
28 Diagrama eltrico (parcial) do circuito condicionador de sinal . . . . . . . . . p. 57
29 Vista frontal esquemtica do conector de parafusos utilizado para as conexes
dos extensmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58
30 Vista da implementao do conector de parafusos utilizado para as conexes
dos extensmetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58
31 Diagrama de ligao de 1/4 de ponte. . . . . . . . . . . . . . . . . . . . . . . p. 59
32 Diagrama para ligao dos extensmetros em 1/2 ponte . . . . . . . . . . . . p. 59
33 Diagrama para ligao dos extensmetros em ponte completa . . . . . . . . . p. 60
34 Medio da tenso de sada de uma ponte ligada diretamente a um conversor
AD (sem prvia amplicao do sinal). . . . . . . . . . . . . . . . . . . . . p. 60
35 Obteno de uma resoluo de 12 bits a partir de um conversor AD de 21 bits. p. 62
36 Localizao do trimpot de ajuste de zero da ponte . . . . . . . . . . . . . . . p. 63
37 Efeito termoeltrico formado pelas trilhas de cobre e os pinos do circuito
integrado, quando as junes esto submetidas a diferentes temperaturas. . . p. 65
38 Princpio de funcionamento das pontes com alimentao CA visando o can-
celamento do erro de offset. . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 66
39 Circuito de correo de desvios por combinao de software e hardware. . . . p. 66
40 Resposta de sada de um ltro digital de mdia mvel contendo 11 pontos em
reposta a um pulso retangular de entrada contaminado com rudo aleatrio
(SMITH, 2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 69
41 Encapsulamento do sensor de temperatura LM35 (TO-92) . . . . . . . . . . . p. 72
42 Esquema eltrico da parte referente programao do endereo do terminal . p. 73
43 Localizao da microchaves de endereamento na Placa de Circuito Impresso p. 74
44 Esquema de Troca de Mensagens entre Mestre e Escravo no protocolo MOD-
BUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76
45 Localizao do protocolo MODBUS em correspondncia ao modelo OSI/ISO. p. 77
46 Composio de um bilhete (mensagem) do protocolo MODBUS-ASCII . . . p. 79
47 Composio de um bilhete (mensagem) do protocolo MODBUS-RTU . . . . p. 80
48 Formato de transmisso serial de 1 byte do MODBUS-RTU com paridade . . p. 81
49 Formato de transmisso serial de 1 byte do MODBUS-RTU sem paridade . . p. 82
50 Exemplo comunicao MODBUS . . . . . . . . . . . . . . . . . . . . . . . p. 88
51 Exemplo de Comunicao MODBUS - Resposta . . . . . . . . . . . . . . . p. 88
52 Mquina de estados MODBUS-RTUTXe RXda estao escrava (MODBUS-
IRDA, 2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 89
53 Fotograa da primeira verso do terminal de rede implementado no micro-
controlador AT89S8252 para validao do protocolo MODBUS . . . . . . . p. 93
54 Tela ambiente de desenvolvimento MPLAB (MICROCHIP) . . . . . . . . . p. 94
55 Diagrama esquemtico do gravador JDM. . . . . . . . . . . . . . . . . . . . p. 94
56 Placa de Circuito Impresso do terminal de aquisio . . . . . . . . . . . . . . p. 95
57 Fotograa da segunda verso do terminal de rede implementado em PIC
16F876 para validao do sistema . . . . . . . . . . . . . . . . . . . . . . . p. 96
58 Pinagem dos conectores DB9 e DB25 na norma RS232 . . . . . . . . . . . . p. 101
59 Utilizao de repetidores (TRISTO, 2004). . . . . . . . . . . . . . . . . . . p. 104
60 Diagrama eltrico do conversor RS232/RS485 implementado . . . . . . . . . p. 110
61 Fotograa do Conversor RS232/RS485 Implementado . . . . . . . . . . . . p. 111
62 Criao de um novo canal de comunicao no KEPServerEx - etapa1 - For-
necimento do nome do canal . . . . . . . . . . . . . . . . . . . . . . . . . . p. 112
63 Criao de um novo canal de comunicao no KEPServerEx - Etapa 2 - Es-
colha do protocolo a ser utilizado . . . . . . . . . . . . . . . . . . . . . . . . p. 113
64 Criao de um novo canal de comunicao no KEPServerEx - Etapa 3 - Con-
gurao dos parmetros de comunicao serial . . . . . . . . . . . . . . . . p. 113
65 Criao de um novo n na rede no software KepwareServer Modbus. . . . . p. 114
66 Criao de um novo n na rede no software Kepware Server Modbus - etapa
1 - fornecer o nome do dispositivo. . . . . . . . . . . . . . . . . . . . . . . . p. 114
67 Criao de um novo n na rede no software Kepware Server Modbus - etapa
2 - fornecer o protocolo desejado. . . . . . . . . . . . . . . . . . . . . . . . p. 115
68 Criao de um novo n na rede no software Kepware Server Modbus - etapa3
- fornecer o endereo do novo terminal a ser criado. . . . . . . . . . . . . . . p. 115
69 Criao de um novo n na rede no software Kepware Server Modbus - etapa
4 - parmetros da comunicao. . . . . . . . . . . . . . . . . . . . . . . . . p. 116
70 Criao de um novo n na rede no software Kepware Server Modbus - etapa
5 - banco de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 116
71 Criao de um novo n na rede no software Kepware Server Modbus - etapa
6 - congurar os parmetros do protocolo Modbus. . . . . . . . . . . . . . . p. 117
72 Criao de um novo n na rede no software Kepware Server Modbus - etapa
7 - denio da quantidade de registradores existentes no dispositivo escravo. p. 117
73 Criao de um novo n na rede no software Kepware Server Modbus - etapa
nal - dispositivo criado com sucesso. . . . . . . . . . . . . . . . . . . . . . p. 118
74 Criao de uma nova tag no software Kepware Server Modbus . . . . . . . . p. 118
75 Seleo no Elipse Scada do servidor OPC a ser utilizado . . . . . . . . . . . p. 119
76 Assistente do Elipse Scada para importao de tags do servidor OPC . . . . . p. 120
77 Tela do assistente de importao de tags com a operao j concluda. . . . . p. 120
78 Tela inicial do sistema supervisrio (Elipse Scada) . . . . . . . . . . . . . . p. 126
79 Tela do supervisrio (Elipse Scada) para a habilitao dos terminais . . . . . p. 126
80 Tela inicial do sistema supervisrio (Elipse Scada) . . . . . . . . . . . . . . p. 127
81 Tela de visualizao dos dados do histrico (Elipse Scada) . . . . . . . . . . p. 128
82 Tela do Elipse Scada para congurao das "penas" do histrico. . . . . . . p. 128
83 Tela do Elipse Scada para congurao dos dados do histrico. . . . . . . . p. 129
84 Tela do Elipse Scada para congurao para recuperao de dados por con-
sulta entre datas e horas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 129
85 Tela do Elipse Scada para congurar a Impresso dos dados do histrico. . . p. 130
86 Congurao da Comunicao no software MBPOLL . . . . . . . . . . . . . p. 132
87 Congurao dos Comandos no MBPOLL . . . . . . . . . . . . . . . . . . . p. 133
88 Trfego de dados no software MBPOLL . . . . . . . . . . . . . . . . . . . . p. 133
89 Nenhum erro em 14812 transaes utilizando o software Modbus Poll . . . . p. 134
90 Nenhum erro em 12545 transaes utilizando o software Modbus Tester Ver-
so 0.3 (beta) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 134
91 Extensmetro eltrico ligado em congurao de 1/4 de ponte utilizado para
o experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 136
92 Extensmetro CFG-5-120-C1-11 utilizado . . . . . . . . . . . . . . . . . . . p. 136
93 Congurao dos parmetros de Comunicao do Servidor OPC MODBUS . p. 137
94 Congurao do Servidor OPC MODBUS . . . . . . . . . . . . . . . . . . . p. 137
95 Tela de coleta de dados logo aps o sistema ter sido ligado (regime transiente) p. 138
96 Tela de coleta de dados mostrando estabilidade com o passar do tempo (re-
gime permanente) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 139
97 Elemento utilizado como carga para o experimento . . . . . . . . . . . . . . p. 140
98 Teste de Repetibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 140
99 Curva de histerese para materiais elsticos . . . . . . . . . . . . . . . . . . . p. 141
100 Tela de Aquisio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 141
101 Grco mostrando a situao inicial do experimento . . . . . . . . . . . . . p. 142
102 Grco mostrando a evoluo da temperatura e da sensibilidade trmica do
extensmetro durante a fase do aquecimento e desaquecimento. . . . . . . . p. 143
103 Utilizao de um extensmetro inativo para eliminar os efeitos da temperatura p. 144
104 DIAGRAMA ESQUEMTICO COMPLETO DO N DE REDE . . . . . . p. 156
LISTA DE SIGLAS E ABREVIAES
API Application Program Interface
CLP Controlador Lgico Programvel
CMRR Commom Mode Rejection Ratio
CRC Cyclical Redundancy Checking
CTS Clear To Send
COM Component Object Model
DSSS Direct Sequence Spread Spectrum
DDE Dynamic Data Exchange
ERP Enterprise Resources Planning
FCC Federal Communications Commission
FHSS Frequency Hopping Spread Spectrum
GPRS General Packet Radio Service
GPS Global Positioning System
GSM Global System for Mobile communications
IEEE Institute of Electrical and Electronics Engineers
IHM Interface Homem-Mquina
ISM Industrial, Scientic and Medical
ISO International Standards Organization
LAN Local Area Network
MIPS Millions of Instructions Per Second
MEMS Micro Electrical Mechanical Systems
OLE Object Linking and Embedding
ODBC Open DataBase Connectivity
OPC OLE for Process Control
OSI Open System Interconnection
PLC Programmable Logic Controller
RTD Resistance Temperature Detector
RTS Request To Send
RTUs Remote Terminal Units
SCADA Supervisory Control and Acquisition Data System
SI Sistema Internacional de Unidades
SGDB Sistema Gerenciador do Banco de Dados
UART Universal Asynchronous Receiver-Transmitter
UTP Unshielded Twisted Pair
WAN Wide Area Network
Lista de Tabelas
1 Fatores de sensibilidade do extensmetro para alguns materiais . . . . . . . p. 26
2 Desempenho de sensores de temperatura . . . . . . . . . . . . . . . . . . . p. 71
3 Mapeamento das funes e memria do protocolo MODBUS . . . . . . . . . p. 82
4 Mapeamento de Memria do terminal de rede (3xxxxx = Input Registers) . . p. 83
5 Mapeamento de memria do terminal de rede (4xxxxx = Holding Registers) . p. 83
6 Distncias mximas de acordo com a velocidade utilizada . . . . . . . . . . . p. 104
7 Tempo de Estabilizao do sistema . . . . . . . . . . . . . . . . . . . . . . . p. 138
Sumrio
1 INTRODUO p. 1
1.1 MOTIVAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 3
1.2 CONTRIBUIES DESTE TRABALHO . . . . . . . . . . . . . . . . . . . p. 6
1.2.1 ASPECTOS SOCIAIS . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
1.2.2 ASPECTOS ECONMICOS . . . . . . . . . . . . . . . . . . . . . p. 7
1.2.3 ASPECTOS AMBIENTAIS . . . . . . . . . . . . . . . . . . . . . . p. 7
1.2.4 ASPECTOS CIENTFICOS . . . . . . . . . . . . . . . . . . . . . . p. 8
1.3 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
1.3.1 OBJETIVOS GERAIS . . . . . . . . . . . . . . . . . . . . . . . . . p. 8
1.3.2 OBJETIVOS ESPECFICOS . . . . . . . . . . . . . . . . . . . . . . p. 8
1.4 ORGANIZAO DA DISSERTAO . . . . . . . . . . . . . . . . . . . . p. 9
2 REVISO DA LITERATURA p. 11
2.1 MONITORAMENTO ESTRUTURAL . . . . . . . . . . . . . . . . . . . . . p. 11
2.2 UTILIZAODE SENSORES INTELIGENTES PARAMONITORAMENTO
ESTRUTURAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
2.3 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.4 CONCLUSES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
3 FUNDAMENTAO TERICA p. 17
3.1 EXTENSMETROS ELTRICOS DE RESISTNCIA . . . . . . . . . . . . p. 17
3.1.1 FATOR DE DEFORMAO () . . . . . . . . . . . . . . . . . . . . p. 19
3.1.2 TENSO MECNICA . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.1.2.1 RELAO ENTRE TENSO MECNICA E DEFOR-
MAO . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.1.3 RELAO ENTRE TENSO ELTRICA E DEFORMAO . . . p. 21
3.1.3.1 Medio da variao da resistncia dos extensmetros . . . p. 25
3.2 PONTE DE WHEATSTONE . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
3.2.1 CONFIGURAO BSICA DA PONTE . . . . . . . . . . . . . . p. 26
3.2.2 QUANTIDADE DE SENSORES . . . . . . . . . . . . . . . . . . . p. 28
3.2.2.1 Quatro elementos ativos . . . . . . . . . . . . . . . . . . . p. 28
3.2.2.2 Um elemento ativo . . . . . . . . . . . . . . . . . . . . . p. 29
3.2.2.3 Dois elementos ativos com respostas opostas . . . . . . . . p. 31
3.2.2.4 Dois elementos ativos idnticos . . . . . . . . . . . . . . . p. 32
3.2.2.5 Ordem de grandeza . . . . . . . . . . . . . . . . . . . . . p. 33
3.2.3 EFEITO DA RESISTNCIA DA FIAO . . . . . . . . . . . . . . p. 34
3.2.4 MEDIO DE TENSO MECNICA UTILIZANDO EXTENS-
METROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
3.2.5 RELAO ENTRE TENSO MECNICA E TENSO ELTRICA p. 35
4 PROJETO CONCEITUAL DO SISTEMA p. 37
4.1 TOPOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
4.2 DEFINIO DO SISTEMA DE AQUISIO DE DADOS . . . . . . . . . p. 38
4.3 DEFINIO DO PROTOCOLO DE COMUNICAO . . . . . . . . . . . p. 39
4.4 ESCOLHA DO MEIO DE TRANSMISSO . . . . . . . . . . . . . . . . . . p. 42
4.5 SERVIDOR DE COMUNICAES . . . . . . . . . . . . . . . . . . . . . . p. 42
4.5.1 TECNOLOGIA OPC . . . . . . . . . . . . . . . . . . . . . . . . . p. 42
4.5.2 MESTRE MODBUS E SERVIDOR OPC . . . . . . . . . . . . . . . p. 46
4.6 SOFTWARE DE AQUISIO E TRATAMENTO DOS DADOS . . . . . . . p. 47
4.7 PLANEJAMENTO PARA FUTURA INTEGRAO . . . . . . . . . . . . . p. 48
4.8 CAPACIDADE PARA EXPANSO FUTURA . . . . . . . . . . . . . . . . p. 49
5 PROJETO, MONTAGEM E TESTES DO TERMINAL DE AQUISIO p. 50
5.1 VISO GERAL DO TERMINAL DA REDE . . . . . . . . . . . . . . . . . p. 50
5.2 CARACTERSTICAS DESEJADAS . . . . . . . . . . . . . . . . . . . . . . p. 51
5.2.1 ALIMENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.2.2 COMUNICAO . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.2.3 MEMRIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.3 IMPLEMENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.3.1 ALIMENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.4 MICROCONTROLADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.5 QUESTES FUNDAMENTAIS SOBRE CIRCUITOS EM PONTE . . . . . p. 52
5.5.1 TENSO DE EXCITAO . . . . . . . . . . . . . . . . . . . . . . p. 53
5.5.2 TENSO DE REFERNCIA . . . . . . . . . . . . . . . . . . . . . p. 54
5.6 CIRCUITO CONDICIONADOR DE SINAL . . . . . . . . . . . . . . . . . p. 55
5.6.1 AMPLIFICAO . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55
5.7 LIGAO DOS EXTENSMETROS . . . . . . . . . . . . . . . . . . . . . p. 56
5.7.1 LIGAO EM 1/4 DE PONTE . . . . . . . . . . . . . . . . . . . . p. 58
5.7.2 LIGAO EM 1/2 DE PONTE . . . . . . . . . . . . . . . . . . . . p. 59
5.7.3 LIGAO EM PONTE COMPLETA . . . . . . . . . . . . . . . . . p. 59
Exemplo de clula de carga . . . . . . . . . . . . . . . . . . . . . . p. 60
5.8 CALIBRAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62
5.8.1 AJUSTE DE ZERO DO SISTEMA . . . . . . . . . . . . . . . . . . p. 62
5.8.2 AJUSTE DE ZERO DA PONTE . . . . . . . . . . . . . . . . . . . . p. 63
5.8.3 CANCELAMENTODE DESVIOS PROVOCADOS PELAINSTRU-
MENTAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.8.4 EFEITO TERMOELTRICO . . . . . . . . . . . . . . . . . . . . . p. 64
5.8.4.1 Desvio por deriva (offset Drift) do amplicador . . . . . . p. 64
5.8.5 EXCITAO POR TENSO ALTERNADA . . . . . . . . . . . . . p. 65
5.8.6 SOLUO ADOTADA PARA A CORREO DO OFFSET . . . . p. 66
5.8.7 SOLUO ADOTADA PARA CORREO DE DRIFTS . . . . . . p. 67
5.8.8 VALOR DE REFERNCIA DE CALIBRAO . . . . . . . . . . . p. 68
5.8.9 FILTRAGEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 68
5.8.9.1 Filtro analgico . . . . . . . . . . . . . . . . . . . . . . . p. 68
5.8.9.2 Filtro digital . . . . . . . . . . . . . . . . . . . . . . . . . p. 68
5.8.9.3 Listagem da rotina de mdia mvel . . . . . . . . . . . . . p. 69
5.9 MEDIO DA TEMPERATURA . . . . . . . . . . . . . . . . . . . . . . . p. 71
5.9.1 SENSOR DE TEMPERATURA . . . . . . . . . . . . . . . . . . . . p. 72
5.9.2 INTERFACE DE CONTROLE DE CALIBRAO E DE ENDERE-
AMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 73
5.9.2.1 Endereamento . . . . . . . . . . . . . . . . . . . . . . . p. 73
5.10 PROTOCOLO MODBUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75
5.10.1 DESCRIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75
5.10.2 Modelo de Comunicao . . . . . . . . . . . . . . . . . . . . . . . . p. 76
5.10.3 Transaes entre dispositivos . . . . . . . . . . . . . . . . . . . . . . p. 76
5.10.4 Modbus e o Modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . p. 77
5.10.4.1 Topologia Fsica . . . . . . . . . . . . . . . . . . . . . . p. 78
5.10.4.2 Modos de Transmisso . . . . . . . . . . . . . . . . . . . p. 78
5.10.4.3 Composio do bilhete MODBUS-ASCII . . . . . . . . . p. 78
5.10.4.4 RTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 79
5.10.4.5 Composio do bilhete MODBUS-RTU . . . . . . . . . . p. 80
5.10.4.6 Deteco de Erros . . . . . . . . . . . . . . . . . . . . . . p. 81
5.10.5 MAPEAMENTO DE MEMRIA . . . . . . . . . . . . . . . . . . . p. 82
5.10.5.1 Funo 0x01 - Read Coil Status . . . . . . . . . . . . . . . p. 83
5.10.5.2 Funo 0x02 - Read Input Status . . . . . . . . . . . . . . p. 84
5.10.5.3 Funo 0x03 - Read Holding Registers . . . . . . . . . . . p. 85
5.10.5.4 Funo 0x04 - Read Input Registers . . . . . . . . . . . . p. 86
5.10.5.5 Funo 0x05 - Force Single Coil . . . . . . . . . . . . . . p. 86
5.10.5.6 Funo 0x06 - Preset Single Register . . . . . . . . . . . . p. 87
5.10.5.7 Exemplo de Transao Modbus . . . . . . . . . . . . . . . p. 87
5.11 MQUINA DE ESTADOS MODBUS . . . . . . . . . . . . . . . . . . . . . p. 88
5.11.0.8 Listagemda rotina principal da mquina de estados Modbus-
RTU implementada . . . . . . . . . . . . . . . . . . . . . p. 89
5.11.1 ROTINA IMPLEMENTAO MQUINA DE ESTADOS TX . . . . p. 90
5.11.2 MQUINA DE ESTADOS RX . . . . . . . . . . . . . . . . . . . . p. 91
5.12 CONSTRUO DOS PROTTIPOS . . . . . . . . . . . . . . . . . . . . . p. 92
6 DESENVOLVIMENTO DO SISTEMA DE AQUISIO DE DADOS p. 97
6.1 INTERFACE DE COMUNICAO . . . . . . . . . . . . . . . . . . . . . . p. 98
6.1.1 TRANSMISSO SERIAL . . . . . . . . . . . . . . . . . . . . . . p. 98
6.1.2 DESCRIO DO BARRAMENTO RS232 . . . . . . . . . . . . . . p. 98
6.1.3 DESCRIO DOS SINAIS DO BARRAMENTO RS232 . . . . . . p. 100
6.1.4 LIMITAES DO RS232 . . . . . . . . . . . . . . . . . . . . . . . p. 101
6.1.5 DESCRIO DO BARRAMENTO RS485 . . . . . . . . . . . . . . p. 101
6.1.6 TIA/EIA-485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 102
6.1.7 LINHAS DE COMUNICAO BALANCEADAS . . . . . . . . . . p. 102
6.1.8 RESISTORES DE TERMINAO . . . . . . . . . . . . . . . . . . p. 103
6.1.9 LIMITES DE DISTNCIA E VELOCIDADE . . . . . . . . . . . . p. 103
6.1.10 NMERO MXIMO DE DISPOSITIVOS NA REDE RS485 . . . . p. 103
6.1.11 ATERRAMENTO / INTERLIGAO DO COMUM . . . . . . . . . p. 105
6.1.12 CABOS DE LIGAO . . . . . . . . . . . . . . . . . . . . . . . . p. 105
6.2 CONVERSOR RS232/RS485 . . . . . . . . . . . . . . . . . . . . . . . . . p. 106
6.2.1 CONVERSOR RS232/RS485 DESENVOLVIDO . . . . . . . . . . p. 107
6.3 SOFTWARE SERVIDOR DE COMUNICAES (MESTRE MODBUS) . . p. 112
6.4 CRIAO DE UM NOVO CANAL NO SOFTWARE KEPServerEX . . . . p. 112
6.5 CRIAO DE UM NOVO DISPOSITIVO NO SOFTWARE KEPServerEX . p. 113
6.6 CONEXO DO SUPERVISRIO COM O SERVIDOR MODBUS . . . . . p. 118
6.7 SISTEMAS DE SUPERVISO E CONTROLE . . . . . . . . . . . . . . . . p. 121
6.7.1 INTERFACEAMENTO DOS SISTEMAS SUPERVISRIOS . . . . p. 122
6.7.2 COMPUTADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 124
6.8 SOFTWARE DE AQUISIO DE DADOS . . . . . . . . . . . . . . . . . . p. 124
6.8.1 TELA PRINCIPAL . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 125
6.8.2 TELA HABILITAO TERMINAIS . . . . . . . . . . . . . . . . . p. 125
6.9 TELA DE AQUISIO DOS DADOS . . . . . . . . . . . . . . . . . . . . . p. 126
6.9.1 TELA DE HISTRICOS . . . . . . . . . . . . . . . . . . . . . . . p. 127
7 RESULTADOS E DISCUSSES p. 131
7.1 CARACTERSTICAS TCNICAS DO SISTEMA DESENVOLVIDO . . . . p. 131
7.2 VALIDAO DA QUALIDADE DA COMUNICAO . . . . . . . . . . . p. 132
7.2.1 TESTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 132
7.3 VALIDAO DA QUALIDADE DOS DADOS . . . . . . . . . . . . . . . . p. 135
7.3.1 PREPARAO DO EXPERIMENTO . . . . . . . . . . . . . . . . . p. 135
7.3.2 DESVIO COM O PASSAR DO TEMPO . . . . . . . . . . . . . . . p. 137
7.4 REPETIBILIDADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 139
7.4.1 HISTERESE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 140
7.4.2 DERIVA DEVIDO TEMPERATURA . . . . . . . . . . . . . . . . p. 141
8 CONCLUSES E SUGESTES PARA TRABALHOS FUTUROS p. 145
8.1 VIABILIDADE DO CONCEITO . . . . . . . . . . . . . . . . . . . . . . . . p. 145
8.2 LIMITAES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 146
8.3 SUGESTES PARA TRABALHOS FUTUROS . . . . . . . . . . . . . . . p. 147
8.4 CONSIDERAES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . p. 148
Referncias Bibliogrcas p. 149
1 INTRODUO
De acordo com Arms et al. (2004), o monitoramento das condies estruturais em obras da
construo civil, indstria metal-mecnica, transportes e demais setores da atividade humana,
podem trazer imensos benefcios sociedade, incluindo: menor ocorrncia de falhas em sis-
temas e estruturas, conservao de recursos naturais, aumento da produtividade em processos
de fabricao, melhora no tempo de resposta em caso de emergncias e aumento da segurana
pblica.
Podem ser citados como exemplos de potenciais aplicaes do sensoriamento inteligente, a
utilizao de sensores de esforos, deslocamentos ou corroso, integrados de forma permanente
em pontes ou viadutos de maneira a detectar possveis deterioraes ou falhas estruturais que
possam a vir causar acidentes. Outra aplicao seria na preveno contra desastres ambientais,
atravs de uma rede de sensores capaz de detectar corroso, deteriorao ou vazamento, insta-
lada em dutos transportadores de produtos qumicos cujo eventual vazamento seria danoso ao
meio ambiente e aos seres vivos, como por exemplo, o petrleo e seus derivados. Tambm no
monitoramento estrutural em veculos e equipamentos de misso crtica - onde falhas no po-
dem ser toleradas, como por exemplo, aeronaves - um item de fundamental importncia para
a segurana. Pode-se considerar ainda, o aumento da produtividade na indstria, a melhora na
segurana pblica, otimizao do desempenho operacional de mquinas e equipamentos, en-
m, uma ampla gama de possibilidades com alcance social e econmico que se torna realidade
graas ao advento de tecnologias cada vez mais presentes em nosso cotidiano.
Particularmente, o monitoramento eletrnico inteligente de estruturas civis tem motivado
diversos trabalhos na rea, principalmente naqueles pases sujeitos a maiores intempries da
natureza, tais como enchentes freqentes, terremotos, tornados e outros fortuitos. A extenso
dos danos causados na construo civil pode ser avaliada atravs de estratgias de Structural
Health Monitoring and Damage Detection (DOEBLIN et al., 1996) que consiste basicamente
no monitoramento contnuo das estruturas associadas s obras civis e monitoramento ambiental,
alm da implementao de planos ecazes de manuteno da infraestrutura civil. Estas aes
permitem ainda a reviso das tcnicas de projeto empregadas na construo civil no sentido de
2
adequ-las s condies ambientais vigentes.
Assim, a avaliao dos esforos e a freqncia de ocorrncia contribuem para a determina-
o da vida til e integridade estrutural sob as mais diversas condies de operao. Deforma-
es de elevada magnitude e com taxas freqentes de repetio podem levar fadiga e ruptura
do material. Ensaios de carregamento monitorados com sensores extensomtricos podem ser
utilizados para se estimar as cargas aplicadas na estrutura e as deformaes correspondentes.
Tambm possibilita a aquisio de dados para comprovao de modelos matemticos emprega-
dos em anlise estrutural, como por exemplo, distribui-se espacialmente em uma estrutura, uma
determinada quantidade de sensores extensomtricos para coleta da tenso mecnica em pontos
de interesse e realizam-se ensaios. Ao nal destes, os dados coletados podem ser utilizados para
validao do modelo terico atravs da confrontao dos valores obtidos com os esperados.
Assim, a partir da disponibilidade de tecnologias economicamente viveis, o monitora-
mento de condies estruturais das obras civis pode-se tornar uma prtica comum, apesar de
ainda no existir no Brasil uma cultura nesse sentido. Isto devido s nossas prprias condies
ambientais, relativamente estveis. Entretanto, imposies menores tais como deslocamento e
acomodao de solo, vendavais, enchentes e at tremores de terra podem inigir esforos adici-
onais signicativos nas estruturas civis. Tais informaes seriam teis em caso de diagnsticos
realizados por peritos em casos de falhas de projeto ou defeitos na construo. Por outro lado,
o fator de segurana normalmente adotado pela prtica da engenharia poderia ser reavaliado, o
que implicaria reduo de custos na indstria civil. Modelos matemticos estruturais poderiam
ser revisados com base nas condies ambientais de determinada localidade e composio do
solo. Os sensores poderiam ser alocados em pontos especcos da estrutura, atuando como
caixas-pretas naqueles locais onde visualmente no se percebem sinais de esforo ou deforma-
o. Medidas corretivas ou preventivas poderiam ento ser adotadas em caso de ocorrncia de
esforos no previstos no projeto, tais como aqueles ocasionados por intempries ou acomoda-
es de solo.
Para o nosso pas, a exemplo do que acontece em diversos outros, novas estratgias para
manuteno, inspeo e controle da infraestrutura civil poderiam ser desenvolvidas visando
prolongar a vida til destas. sabido que o regime de trabalho das estruturas atualmente
diferente de quando foram construdas. Por exemplo, graas ao grande aumento de veculos em
circulao nas ltimas dcadas, o trfego de veculos sobre as pontes aumentou consideravel-
mente, e por conseqncia, tambm os esforos sofridos pelas mesmas, requerendo uma maior
manuteno. Com o advento das tecnologias relacionadas ao monitoramento contnuo de es-
truturas, tcnicas de diagnstico das condies estruturais podem ser ecientemente aplicadas,
possibilitando a interveno quando necessrio e com economia de recursos.
3
Entretanto, o monitoramento contnuo apresenta alguns inconvenientes operacionais, tais
como cabeamento e conexes eltricas associadas, disponibilidade de energia para operao e
aquisio e transmisso de forma segura dos dados coletados (HEJLL, 2007). Outras contin-
gncias referem-se ao custo de instalao e manuteno, proporcional ao nmero de sensores
utilizados, necessrios a um adequado mapeamento da aplicao sob estudo. Redes de bra
tica, apesar de serem versteis, apresentam como desvantagem a complexidade das conexes
(LENG et al., 2005) enquanto que as solues wireless apresentam elevado custo por ponto de
sensoriamento (LYNCHet al., 2001). Oquesito conabilidade tambm umponto de discusso
entre os usurios desta tecnologia, pois o sistema transmissor/receptor necessrio para estabe-
lecer a comunicao entre supervisor e os diversos pontos de monitoramento estar sujeito a
interferncias eletromagnticas o que pode ocasionar um mau funcionamento e interpretao
errnea de dados. Por outro lado, o uso de equipamentos certicados disponveis no mercado
no so economicamente viveis para este tipo de aplicao.
1.1 MOTIVAO
No Brasil, os vrios grupos de pesquisa emestruturas que necessitam realizar ensaios exten-
somtricos em estruturas mecnicas e civis utilizam sistemas convencionais de aquisio (um
nico equipamento centralizado utilizado para e condicionamento dos sinais) baseados em
extensmetros eltricos de resistncia. Um diagrama de aplicao tpica mostrado na Figura
1. Tais sistemas apresentam como principal inconveniente a necessidade de cabeamento ponto
a ponto entre cada sensor e o sistema de aquisio, o que torna a implementao em campo
bastante difcil. Alm das diculdades operacionais, a ao que conduz o sinal eltrico pro-
veniente de cada extensmetro est sujeita a interferncias externas, tais como rudo eltrico,
captao de interferncias eletromagnticas, vibraes, umidade, variaes de temperatura, cor-
roso, entre outros. importante ressaltar que nestes sistemas, transmitir analogicamente um
sinal de alguns microvolts por alguns metros atravs de um cabo, alguns cuidados especiais
devem ser tomados, incluindo: a blindagem do cabo, a correta disposio do mesmo atravs
da estrutura e o adequado condicionamento do sinal (amplicao controlada, reduo dos n-
veis de rudo e ltragem). Aparentemente, baseado em depoimentos de alguns pesquisadores
e consultas a fornecedores de sistemas de aquisio de dados, estes grupos no dispem de
alternativas conveis e economicamente viveis para a realizao deste tipo de trabalho.
Atualmente h uma grande quantidade de pesquisas visando solucionar os problemas apon-
tados anteriormente. A maioria delas se concentra em solues sem-o (wireless). Basicamente
so utilizadas quatro tecnologias (alm das proprietrias): Bluetooth regulada pela norma IEC
4
Figura 1: Sistema convencional de aquisio de dados extensomtricos
802.14.1 (BLUETOOTH-ORG, 2007), Wi- norma IEC 802.11 B/G (WI-FI-ORG, 2007) , Zig-
bee norma IEC 802.14.4 (ZIGBEE-ORG, 2007) e GPRS baseado na tecnologia celular GSM.
No captulo REVISO DA LITERATURA sero apresentados os principais trabalhos recentes
utilizando estas tecnologias para monitoramento estrutural. Estas solues apresentam grandes
vantagens, entre as quais podemos citar: a aquisio e condicionamento local dos sinais, o que
torna as medidas mais exatas e livres de interferncias; facilidade de implementao dos ns,
uma vez que utilizamprotocolos padronizados. Talvez a maior vantagemde todas seja a reduo
do tempo de instalao devido a sua facilidade. No entanto, uma das grandes limitaes destes
sistemas a necessidade de utilizao de baterias, as quais exigem uma manuteno constante.
Outra limitao a distncia de alcance desses transmissores que variam de 10 metros a 100
metros em condies de visada direta, exceto para a tecnologia GPRS que possui uma potncia
de transmisso maior. Ainda falando da tecnologia GPRS, pode-se ver que a potncia maior
de transmisso uma desvantagem para aplicaes de monitoramento contnuo que utilizem
sistemas alimentados por baterias, j que o consumo de energia elevado. Outra desvantagem
dessa tecnologia que dependem do meio fsico de transmisso das concessionrias de teleco-
municaes, cuja disponibilidade ca sujeita existncia de infraestrutura (torres de antenas)
que atendam o local e alm disso, deve-se pagar uma taxa mensal pelo uso do canal.
Pelas razes apresentadas anteriormente pode-se concluir que as tecnologias wireless, no
atual estado da arte, ainda no so adequadas para o monitoramento das condies estruturais
5
Figura 2: Rede de sensores sem-os (wireless) integrada a uma estrutura
em grandes estruturas, como por exemplo, em pontes. Para estas, os sensores devem ser integra-
dos de forma permanente na estrutura, j que normalmente o monitoramento deve ser contnuo
e as condies de acesso aos pontos de medio nem sempre so favorveis. Um diagrama
ilustrativo de uma estrutura monitorada por sensores sem-os ilustrada na Figura 2.
Buscando-se prover solues alternativas para o problema, a presente proposta visa de-
senvolver um sistema de monitoramento e aquisio de dados aplicado ao monitoramento de
esforos (extensometria) em estruturas civis e mecnicas. O sistema baseado em uma rede
de sensores conectados atravs de uma linha simples de comunicao e energia e uma interface
grca para processamento e visualizao dos dados coletados. Um diagrama ilustrativo do
sistema desenvolvido mostrado na Figura 3.
Assim uma das grandes vantagens deste sistema a sua portabilidade e possibilidade de
expanso. Por utilizar um protocolo aberto, robusto e altamente difundido pode ser utilizado
com um grande nmero de outros equipamentos j existentes, tais como softwares de superviso
e controle - os quais so, inclusive, utilizados no decorrer deste trabalho.
Em um primeiro momento, o sistema desenvolvido atenderia grupos de pesquisa em es-
truturas, que necessitam monitorar esforos em seus objetos de estudos. Desta forma, a partir
deste projeto pretende-se contribuir para a gerao de conhecimento tcnico e cientco, fo-
6
Figura 3: Arquitetura do sistema desenvolvido neste trabalho
mentar uma cultura de monitoramento de condies estruturais na construo civil e indstria
metal-mecnica a exemplo do que j ocorre em outros pases. Assim, entende-se que este pro-
jeto pode resultar emuma importante contribuio no sentido de prover estes grupos de pesquisa
com ferramental de suporte realizao de suas atividades, bem como inserir no mercado pro-
dutos alternativos economicamente viveis com alto ndice de nacionalizao, o que diminui a
dependncia de componentes importados.
Durante o projeto foramprevistos e incorporados elementos comcaractersticas apropriadas
uma futura integrao, o que reduziria os custos de um sistema de monitoramento estrutural.
Assim, futuramente cada n da rede poderia ser implementado por um nico Circuito Integrado
(CI) com funes de medio, calibragem, processamento e comunicao. Pretende-se, por-
tanto, desenvolver uma tecnologia bsica de comunicao em rede para os sensores e projetar
alguns dos circuitos constituintes do sistema, especicamente os circuitos analgicos, visando
uma futura integrao. Isto, obviamente, ir requerer estudos adicionais objetivando assegurar
uma forte competitividade ao produto.
1.2 CONTRIBUIES DESTE TRABALHO
A realizao deste projeto, no seu todo ou parte, envolve os seguintes aspectos:
7
1.2.1 ASPECTOS SOCIAIS
Como citado anteriormente, o monitoramento permanente pode implicar aumento na segu-
rana pblica em relao s obras civis, desde que aes preventivas e corretivas sejam tomadas
imediatamente ao se detectarem anormalidades. Tambm as comunidades locais atendidas pelo
grupo de pesquisas em estruturas podem ser beneciadas atravs da prestao de servios de
realizao de ensaios para as empresas e prossionais da regio. Outra contribuio do projeto
o envolvimento de alunos de graduao e de mestrado assegurando a estes formao cientca
complementar e esprito empreendedor, com formao de mo-de-obra qualicada em projetos
que envolvem tecnologia de ponta, requisito bsico para que empresas de alta tecnologia se ins-
talem localmente e gerem empregos diversos para a comunidade. Outro benefcio importante
o aumento da interao universidade-empresa.
1.2.2 ASPECTOS ECONMICOS
A preveno de acidentes em estruturas civis e tomada antecipada de medidas corretivas
ou preventivas gera uma grande economia para a sociedade, pois propicia a ampliao da vida
til das estruturas existentes. Por outro lado, o dinheiro que seria aplicado na reconstruo de
tais obras pode ser aplicado em outros setores mais carentes. Outro possvel ganho vem da oti-
mizao de desempenho operacional de mquinas e equipamentos monitorados utilizados nos
processos produtivos, pois possveis falhas poderiam ser previstas antecipadamente e medidas
preventivas poderiam ser tomadas, evitando-se paradas na produo. Do lado da integrao
universidade-empresa, h uma gerao e transferncia de tecnologia ao setor produtivo com
um consequente incentivo ao projeto e desenvolvimento de circuitos eletrnicos no Brasil, o
que diminui a dependncia aos dispositivos importados, com resultados favorveis balana
comercial brasileira.
1.2.3 ASPECTOS AMBIENTAIS
A monitorao de estruturas pode prevenir desastres ambientais, tais como o derramamento
acidental de leo em rios e riachos, vazamento de produtos txicos para a atmosfera e tambm
ajudar na conservao de recursos naturais, atravs de substituio na construo civil de ele-
mentos no renovveis (ou de renovao demorada, como a madeira) por outros renovveis que
apresentem caractersticas mecnicas equivalentes.
8
1.2.4 ASPECTOS CIENTFICOS
A principal contribuio deste trabalho consiste no desenvolvimento de uma tecnologia
aplicada instrumentao eletrnica direcionada aos sistemas de aquisio e condicionamento
de sinais bem como o desenvolvimento e adaptao de protocolos de comunicao viveis
comercialmente. Os resultados destas pesquisas sero divulgados posteriormente para a co-
munidade cientca atravs de publicao dos resultados em peridicos e congressos. Outra
contribuio imediata a gerao de trabalhos de mestrado na rea da engenharia eltrica.
1.3 OBJETIVOS
Visando delimitar o escopo deste trabalho, os objetivos foram divididos em duas categorias,
a saber:
1.3.1 OBJETIVOS GERAIS
De acordo com a proposta inicialmente apresentada, o objetivo geral desta dissertao
estudar, projetar, implementar e validar uma plataforma de aquisio de dados multiponto dedi-
cado ao monitoramento de esforos mecnicos estruturais aplicado s obras da construo civil,
indstria metal-mecnica e demais setores, utilizando para tanto, equipamentos de aquisio
de dados de extensmetros eltricos conectados s estruturas mecnicas. Tais equipamentos
devem possuir capacidade de troca de dados com uma unidade mestre atravs de um protocolo
de comunicao digital convel, seguro e com taxa de resposta compatvel com os tempos
envolvidos neste tipo de aplicao. Tambm inclui o desenvolvimento do programa computa-
cional para parametrizao, captura, visualizao, armazenamento e gerenciamento dos dados
coletados.
1.3.2 OBJETIVOS ESPECFICOS
Para se atingir os objetivos gerais deste trabalho, foi necessrio estabelecer objetivos mais
detalhados, apresentados abaixo:
Projeto e construo de um prottipo da unidade de rede para coleta de dados e validao.
Projeto e construo de uma interface de comunicao entre o computador e a rede.
9
Desenvolvimento de um programa computacional para parametrizao, processamento e
visualizao de dados utilizando sistemas supervisrios.
Implementar e testar o software para monitoramento e parametrizao do terminais de
aquisio de dados distribudos em rede local;
Implementao, testes e qualicao de uma rede bsica de sensores.
Divulgao de uma cultura associada ao monitoramento estrutural como aspecto bsico
relacionado segurana pblica.
Com base nas tarefas listadas acima, foi projetado um conjunto de equipamentos e programas
computacionais com os quais foi possvel atingir o objetivo proposto inicialmente.
1.4 ORGANIZAO DA DISSERTAO
dada a seguir uma breve descrio do contedo desta dissertao.
No Captulo REVISO DA LITERATURA feito um levantamento do estado atual da arte
referente ao monitoramento estrutural e de redes de sensores. O objetivo fazer uma anlise
dos sistemas semelhantes existentes, procurando determinar as caractersticas que concedem
vantagens ou desvantagens, visando determinar as funcionalidades que deveriam ter o sistema
aqui desenvolvido, de maneira que incorpore o melhor de cada tecnologia e tente superar alguma
limitao destas, levando a um ganho de qualidade.
No Captulo FUNDAMENTAO TERICA apresentado a fundamentao terica do
trabalho, composta pelos estudos realizados sobre os princpios fsicos dos extensmetros el-
tricos, sistemas de aquisio e condicionamento de sinais tpicos para este tipo de aplicao e
detalhamento de seus elementos constituintes. Tambm dada uma viso geral de redes indus-
triais e uma breve descrio do protocolo Modbus.
No Captulo PROJETO CONCEITUAL DO SISTEMA so denidas as caractersticas b-
sicas para o sistema. So descritos os procedimentos e apresentadas as razes pela escolha da
metodologia utilizada para cada um dos componentes do sistema, envolvendo um detalhamento
do objeto desta dissertao.
No Captulo PROJETO DOS NS DE REDE desenvolvido o projeto em si dos ns do sis-
tema de aquisio. So detalhados tanto o projeto terico quanto a construo prtica. Tambm
mostrado como feita a calibrao do sistema.
10
No Captulo PROJETO DOS SOFTWARES DE AQUISIO so apresentados as descri-
es dos softwares desenvolvidos no computador mestre visando adquirir os dados dos termi-
nais de rede. Seu principal foco a modelagem e parametrizao do software de monitoramento
e a implementao do sistema supervisrio.
No Captulo RESULTADOS E DISCUSSES so apresentados e discutidos os resultados
obtidos dos experimentos realizados emlaboratrio e da utilizao dos softwares desenvolvidos.
E no ltimo, CONCLUSES E TRABALHOS FUTUROS so apresentadas algumas con-
sideraes nais com relao ao trabalho desenvolvido e algumas sugestes para aperfeioa-
mentos.
2 REVISO DA LITERATURA
Este captulo aborda uma viso geral dos trabalhos relacionados ao tema desenvolvido.
uma busca para conhecer o que existe atualmente sobre o assunto, procurando determinar
as principais vantagens das tecnologias existentes e tambm determinar suas desvantagens, de
forma a propor um sistema que incorpore os benefcios das tecnologias atuais e supere, em
algum grau, suas limitaes.
2.1 MONITORAMENTO ESTRUTURAL
Segundo Hejll (2007), o monitoramento das condies estruturais denido como sendo
um mtodo para monitoramento in loco e avaliao de desempenho de estruturas civis. Solu-
es tecnologicamente viveis para monitoramento contnuo e ecaz esto sendo estudadas em
diversos centros de pesquisa ao redor do mundo. A Universidade da Califrnia, campus Ber-
keley, desenvolveu uma plataforma de monitoramento baseada em uma arquitetura aberta de
hardware e software denominada Mote Smart Sensor (HILL et al., 2000; NAGAYAMA, 2004)
que consiste basicamente na implementao de um micro-sensor que utiliza um sistema de
comunicao via rdio, o que possibilita a sua aplicao em monitoramento embarcado. Inici-
ativas como esta so suportadas pela DARPA
1
, atravs de programas especcos, cujo objetivo
desenvolver um dispositivo sensor autnomo com dimenses de 1mm
3
para implementa-
o de redes de sensores para monitoramento de variveis fsicas, qumicas e biolgicas. Tais
iniciativas, entretanto, dependem do adequado suporte da indstria de semicondutores para a
implementao dos circuitos e dispositivos integrados, tais como os MEMS
2
.
Na Universidade de Keio no Japo (LUI e TOMIZUKA, 2003), pesquisadores desenvolve-
ram sensores de deformao e de tenso mecnica que no necessitam de alimentao contnua
e podem ser diretamente envolvidos em concreto, sendo a transmisso da informao feita atra-
vs de sinais de rdio. Outro trabalho na mesma linha de Williams et al. (1998) onde
1
DARPA = US Defense Advanced Research Projects Agency
2
MEMS = Micro Electrical Mechanical Systems
12
apresentado uma nova idia - bastante interessante - de que os sensores integrados estrutura
sejam auto-sucientes, ou seja, capazes de gerar a prpria energia de que necessitam. A prpria
vibrao da estrutura seria utilizada para gerar a energia necessria para os elementos.
Sensores adaptados a estruturas civis monitoram valores mximos de deformao elstica,
acelerao, deslocamento, vibrao, energia absorvida e deformao plstica acumulada, no
sentido de se avaliar as condies de estabilidade e danos causados s obras civis. Como re-
sultado destas pesquisas, uma gama de sensores aplicados na construo civil relatada na
literatura, alm do extensmetro padro. Em Lin et al. (2003), por exemplo, apresentado
uma rede de sensores distribuda para monitoramento das condies estruturais de uma ponte.
O princpio utilizado o da reectometria eltrica no domnio do tempo ETDR
3
. Esta tcnica
consiste na deteco do tempo de reexo de um pulso aplicado uma estrutura. Conforme
tempo de resposta e o formato do sinal reetido, pode-se inferir os esforos a que a estrutura
est submetida, detectar descontinuidades (por exemplo, rachaduras) e determinar precisamente
o ponto destas ocorrncias. Assim no s se detectaria a existncia do problema, mas tambm
sua localizao.
Em Symans e Kelly (1999) proposto um mtodo utilizando tcnica neuro-fuzzy para mini-
mizar os danos causados a estruturas em caso de terremotos. Sua proposta consiste na instalao
de amortecedores semi-ativos controlados por um sistema computacional que detecta a ocorrn-
cia do abalo ssmico, determina sua amplitude e atua ecazmente sobre os amortecedores. Sua
proposta visa diminuir os efeitos nocivos dos terremotos atravs do monitoramento contnuo
das estruturas.
Em Elgamal et al. (2005) apresentado um sistema de aquisio de dados utilizando um
computador, o qual responsvel pela coleta das informaes e pela deteco de possveis
problemas, atravs da programao de um limiar de anormalidade fornecido previamente. Em
caso de anormalidade enviado um alarme, atravs da internet, para os rgos responsveis
pela manuteno das estruturas (pontes, no caso especco daquele estudo) para que tomem
as providncias necessrias. Uma srie de sensores distribuda pela estrutura e a tarefa de
decidir a normalidade ou no da condio atual decidida por algoritmos implementados no
software residente do computador. Segundo os autores, nos Estados Unidos existe uma rede
de infraestruturas que atinge o montante aproximado de 1 trilho de dlares. Evidentemente
solues que detectem ou diminuam os danos causados por desastres naturais contribuem para
a vitalidade da economia daquele pas, considerando os altos valores envolvidos. Foi criado
um portal na internet (UCSD, 2007) onde so disponibilizados ferramentas para anlise das
condies de estruturas.
3
ETDR = Electrical Time Domain Reectometry
13
Schulz e Sundaresan (2006) apresentaram um relatrio de testes para determinao das con-
dies de fadiga dos diversos materiais utilizados em estruturas de turbinas elicas. Estas so
compostas por centenas de unidades que se movimentam constantemente e sujeitas a esforos
variados, conforme a fora, sentido e direo do vento. Portanto a monitorao permanente des-
tas estruturas aumenta em muito a segurana das instalaes e diminui os custos de manuteno,
j que esta pode ser feita imediatamente ao se detectar qualquer anormalidade, impedindo que
o problema se agrave e cause falha sistmica, caso em que os prejuzos seriam maiores tanto
pelo custo da substituio dos componentes danicados quanto pelos lucros cessantes durante
o perodo em que a turbina caria parada para manuteno.
Na tese de doutorado de Hejll (2007), so combinadas diversas tcnicas probabilsticas
com a utilizao de equipamentos de monitorao em tempo real. Uma ao sugerida quando
so comparados os dados atuais com as informaes estatsticas anteriores da estrutura sendo
monitorada.
Visando desenvolver um estudo comparativo entre o modelo terico e os resultados obtidos,
Gomes e Calil Jnior (2005) desenvolveram um sistema para aquisio de esforos em silos ho-
rizontais. Os dados experimentais foram utilizados para validao do modelo terico proposto
pelos autores.
Existem inmeros outros trabalhos relativos ao tema. Um trabalho que faz uma reviso
bibliogrca aprofundada destes pode ser encontrado em Sandoval (2004).
2.2 UTILIZAO DE SENSORES INTELIGENTES PARA
MONITORAMENTO ESTRUTURAL
Pereira et al. (2003) apresentam as caractersticas de vrias tecnologias sem o e suas
aplicaes. So discutidos os vrios aspectos de uma rede de sensores e suas aplicaes no
mundo real. Nesse trabalho, mostrado as denies existentes, as principais caractersticas de
uma rede de sensores, as mtricas de desempenho, a arquitetura, os modelos de comunicao e
envio de dados existentes, os protocolos, a segurana entre outros pontos relevantes.
So objetos de estudo do trabalho de Sandoval (2004) os chamados Sensores inteligentes
ou smart-sensors - composto por um microcontrolador e um transceptor sem o. Sua pes-
quisa se concentra na plataforma Mote desenvolvida pela Universidade da Califrnia, campus
Berkeley, que uma plataforma de desenvolvimento para aplicaes de monitoramento estru-
tural utilizando sensores inteligentes. composta por um ambiente de software e hardware
que seguem a losoa de cdigo aberto. Foram desenvolvidas, para efeito de validao e testes,
14
unidades de rede sensoras, chamadas de Tadeo, compostas por um acelermetro, um microfone,
um termistor e um foto-resistor.
Raghuvanshi (2006) desenvolveu uma unidade sensora inteligente comparvel plataforma
Mote, referenciada no pargrafo anterior. O protocolo de comunicao implementado foi o
Zigbee, com taxa de transmisso de 250 kbps. Na validao do produto foi utilizada uma
bateria de 580 AH para alimentar uma rede de sensores que funcionou por 254 dias.
Bu (2005) apresenta umnovo conceito de rede de controle chamada de Wireless ad-hoc con-
trol networks (WACNets). Tais sistemas consistem de um grande nmeros de ns contendo sen-
sores e/ou atuadores, inteligncia local e controle e componentes para processamento de dados
e comunicao. O tamanho, nmero, densidade, capacidade e dependncia do local de instala-
o destes ns so determinados pela aplicao especca em que so utilizados. Os protocolos
e algoritmos existentes nos ns possuem a capacidade de auto-organizao e intercooperao.
Naquele trabalho feita uma implementao utilizando sensores inteligentes compatveis com
a norma IEEE 1451 e uma rede sem o Bluetooth foi utilizada. Os ns desenvolvidos contm
controladores digitais locais e uma rede digital de comunicao que liga as unidades de rede a
um computador central, responsvel pelas tarefas de superviso e sincronismo do sistema.
Em Portugal, Morais et al. (2005) descrevem o desenvolvimento de um sistema autom-
tico de medio utilizado na realizao de ensaios de ancoragens. O equipamento de medio
utilizado baseado em sensores inteligentes (Smart-Sensor). A losoa do sistema descrito
apresenta algumas semelhanas com o proposto neste trabalho, ou seja, unidades de aquisio
descentralizada, condicionamento local dos sinais e posterior transmisso dos dados para uma
unidade de aquisio mestre, responsvel pelo processamento das informaes coletadas.
Chaves (2001) apresenta uma aplicao de coleta de amostras em associao com receptor
GPS para determinar a localizao espacial do sensor.
Em Xu et al. (2004) proposto uma rede de sensores sem o, batizada de Wisden, para
monitoramento estrutural. Neste trabalho so abordadas as vantagens da aquisio de dados de
forma descentralizada. O trabalho consiste em melhorar a qualidade do sinal transmitido por
transmissores de RF de baixa potncia utilizando tcnica de Wavelets.
Em Hill (2003) desenvolvido um sistema operacional, chamado de TinyOS, e trs pla-
taformas de hardware visando atender ao monitoramento estrutural atravs de uma rede de
comunicao sem os. Uma das plataformas desenvolvidas baseada no desenvolvimento de
um circuito integrado que contm os principais elementos do terminal de aquisio, ou seja, a
mquina de estados do protocolo de comunicaes e a interface de comunicao fsica.
15
Em Arms et al. (2004) descrita uma metodologia utilizada para desenvolver um sensor de
o modular capaz de ser reprogramado atravs de um telefone celular a distncia. Foi produzida
uma estao base com uma interface para um telefone celular. Isto permite o acesso remoto aos
sensores de qualquer lugar onde haja comunicao via celular disponvel, mesmo a quilmetros
de distncia. Os parmetros de operao, tais como: limiar de disparo, taxa de aquisio de
dados, durao da coleta de amostras e nmero de canais ativos podem ser todos reprogramados
remotamente. A estao base pode enviar comandos tipo broadcast tais como, sair do modo de
baixo consumo (sleep), inicie a coleta de dados, ou volte ao modo de baixo consumo.
Dysdenborg (2004) desenvolveu, na sua tese de doutorado, um sistema de comunicao
de sensores orientada conexo, interligados em um sistema sem o baseado na tecnologia
Bluetooth.
Em Brownjohn et al. (2004) apresentado um caso de aplicao real, onde um viaduto de
uma via expressa de Singapura foi instrumentado com sensores estticos. Nesta aplicao, os
dados so gerenciados atravs de uma rede sem o e internet.
Ilarionov et al. (2005) apresenta um sistema microcontrolado que faz a aquisio de tem-
peratura e presso utilizando microcontroladores PIC16F873 (MICROCHIP).
2.3 TRABALHOS RELACIONADOS
Embora exista uma profuso de trabalhos relativos rede de sensores, foram procurados ou-
tros semelhantes a este aqui desenvolvido, escritos nas lnguas inglesa, portuguesa e espanhola
e no foi encontrado nenhum trabalho acadmico que seja exatamente igual a este.
O trabalho com o tema mais similar encontrado foi o de Simunic et al. (2001) que descreve
a implementao de um novo sistema digital de aquisio de dados de extensmetros eltricos
utilizados no monitoramento da ponte Maslenica na Crocia em substituio a um sistema de
aquisio analgico anteriormente existente na mesma. A troca foi proposta devido s limita-
es do sistema analgico. O sistema de aquisio baseado em CLPs e a rede escolhida foi a
PROFIBUS DP. Escolha que segundo os autores ocorreu aps um minucioso estudo das opes
existentes. O monitoramento analgico convencional foi comparado ao novo monitoramento
digital e as vantagens da utilizao de sistemas de aquisio digital caram evidentes. Dentre
estas os autores destacam:
sistema de medio padronizado (equipamentos industriais )
grande nmero de canais de medida (mais de 100)
16
sistema aberto (possibilidade de expanso e desenvolvimento)
Sinais padronizados
Compatibilidade com sensores de sistemas convencionais
maiores distncias entre os sensores e a unidade de aquisio de dados.
reduo do cabeamento
aplicabilidade de testes em campo.
Na dissertao de mestrado de Mello (2007), sob o ttulo Um estudo da aplicao de redes de
sensores para monitorao da proteo catdica em dutos feita uma aplicao de rede sem
o para monitoramento do grau de corroso de dutos utilizados para transporte de petrleo ou
de seus derivados. Neste trabalho so avaliados e comparados os protocolos para transmisso
sem-o Zigbee e Directed Diffusion. O autor optou pela utilizao do ltimo. Um dos objetivos
desse trabalho foi o de construir um sistema de baixssimo consumo, j que a alimentao dos
mesmos seria a pilhas. Como era de se esperar, uma de suas limitaes a necessidade de
manuteno peridica para troca das pilhas e baixo alcance dos transmissores.
Na tese de doutorado de Penteado Neto (2005), apresentado um sistema de rede de sen-
sores extensomtricos visando detectar a ruptura de cabos ou isoladores da rede de distribuio
de energia eltrica. Em cada ponto monitorado colocado uma unidade de rede microcontro-
lada que condiciona os sinais e transmite os dados atravs de RF (Rdio Freqncia). Uma das
limitaes deste projeto a diculdade da transmisso utilizando estes mdulos de RF sujeitos
a grandes interferncias e rudos. Outra a necessidade de manuteno peridica para troca das
pilhas.
2.4 CONCLUSES
Nota-se pelos trabalhos citados neste captulo que h uma grande quantidade deles utili-
zando solues sem-os para a tarefa de monitoramento estrutural. O tema atual e existem
vrios grupos de pesquisas trabalhando para otimizar e viabilizar a utilizao de redes de senso-
res em larga escala. No entanto, algumas questes ainda no foram satisfatoriamente sanadas,
tais como a autonomia das baterias, conabilidade e qualidade do meio de transmisso, padro-
nizao dos protocolos de acesso e custos envolvidos - ainda signicativamente altos.
3 FUNDAMENTAO TERICA
Neste captulo so descritos os fundamentos tericos e os conceitos bsicos necessrios
para o desenvolvimento do tema objeto deste trabalho. Sua leitura til para a compreenso
dos procedimentos, tcnicas e mtodos utilizados.
3.1 EXTENSMETROS ELTRICOS DE RESISTNCIA
William Thomson, tambm conhecido como Lord Kelvin, foi o primeiro a relatar em 1856
que os condutores metlicos submetidos a esforos mecnicos mudam as caractersticas da sua
resistncia eltrica. Kelvin observou que a resistncia de um o varia deterministicamente
quando comprimido ou tracionado. Desta forma, se um condutor conectado a uma estrutura
mecnica de maneira que a mudana em comprimento da estrutura igual a mudana de com-
primento do condutor, ento a variao resistncia do o diretamente proporcional ao esforo
sofrido (ANDOLFATO et al., 2007).
Fundamentalmente, os extensmetros so projetados para converter deformaes lineares
em sinais eltricos. Na prtica, os extensmetros eltricos de resistncia so mais conhecidos
pelo seu nome em ingls, ou seja, strain gauges.
Existem vrios tipos de extensmetros. Um extensmetro tpico mostrados na Figura 4.
Os extensmetros laminares (foil gauges), como ilustrados nas Figuras 5 e 6, so os mais
utilizados para aplicaes rotineiras.
Constituem-se de lme metlico com uma geometria de dobras e montado sobre uma base
polimrica. Alguns podem ser montados sobre uma base cermica. Em geral, os extensmetros
a os so para aplicaes em altas temperaturas.
Os extensmetros laminares apresentamas seguintes caractersticas (MADGETECH, 2007):
Alta estabilidade.
18
Figura 4: Extensmetro Eltrico a o (wire gauges)
Figura 5: Extensmetro eltrico laminar (foil gauges)
Bom fator de proporcionalidade.
Preos razoveis.
Baixa tenso eltrica de sada
necessita de amplicao.
O processo de fabricao deste formato feito com processos de foto corroso (photoetching).
Como este processo verstil, uma grande quantidade de formatos est disponvel para as mais
variadas aplicaes. O extensmetro mais curto disponvel da ordem de 0,2 mm; e o mais
longo cerca de 100 mm. Os valores de resistncias padres so de 120 e 350 Ohms. Outros
valores para aplicaes especiais de 500, 1000, e 5000 Ohms so tambm disponveis.
Para a compreenso deste princpio ser feita a anlise que se segue.
19
Figura 6: Extensmetro laminar tpico (foil gauges)
3.1.1 FATOR DE DEFORMAO ()
Todos os corpos se deformam quando esto sob a ao de foras externas. Se um o
submetido a um esforo de trao, ele vai se tornar ligeiramente mais longo e sua rea de seo
transversal reduzida. Da mesma forma, se um o submetido a um esforo compressivo, sua
rea de seo transversal aumenta. A Figura 7 ilustra esse fenmeno.
Figura 7: Deformao de um corpo submetido uma fora externa
O comprimento inicial L atingir o valor L
F
aps a aplicao da fora. O fator de defor-
mao () calculado atravs da equao:
=
L
F
L
L
=
L
L
Verica-se que o fator de deformao () uma quantidade adimensional, no entanto,
comum expressar o fator de deformao como a razo de duas unidades de comprimento, por
exemplo, como m/m ou in/in. Como a tenso adimensional, no h necessidade de conver-
so de unidade.
A regio elstica dos materiais varia entre 0,05% a 0,2% ( = 0, 0005 a = 0, 002).
Como os valores tpicos para os fatores de deformao so pequenos e menores que 0, 002, so
normalmente expressos em unidades de micro-deformao (micro-strain) : Micro-deformao
= deformao x 10
6
.
Por exemplo, um fator de deformao de 0, 001 ser expresso por 1000 m/m ou 1mm/m.
Em geral, o menor valor encontrado na prtica situa-se na faixa de unidades de m/m.
20
3.1.2 TENSO MECNICA
Para uma distribuio uniforme das foras resistivas internas em um determinado corpo, a
tenso mecnica (stress) pode ser calculada dividindo-se a fora aplicada (F) pela unidade de
rea (A), matematicamente:
=
F
A
(3.1)
onde:
F = fora aplicada em Newtons (SI);
A = rea da seo transversal da barra em m
2
(SI)
= tenso mecnica em N/m
2
= Pa (Pascal) (SI)
3.1.2.1 RELAO ENTRE TENSO MECNICA E DEFORMAO
A relao entre a tenso aplicada e a deformao provocada obtida atravs da lei de
Hooke:
E =

A constante de proporcionalidade (E) entre a tenso e o fator de deformao chamado de


mdulo de elasticidade (tambm conhecido como mdulo de Young).
Assim, a lei de Hooke estabelece uma relao linear entre a tenso e a deformao, ou seja,
= E
Deve-se mencionar que esta lei vlida apenas para a regio elstica dos materiais, ou
seja, quela na qual a deformao do material no irreversvel. Acima do limite elstico,
denominada de deformao plstica, o material se deforma de maneira denitiva, onde a lei de
Hooke no mais se aplica. Se a tenso continuar aumentando, existir um certo valor em que
o material vai se quebrar ou cisalhar. A Figura 8 mostra um grco de tenso versus fator de
deformao tpico (ANDOLFATO, apud FURMAN, 2003).
Ento, desde que no se ultrapasse o limite de elasticidade do material, pode-se obter uma
relao direta entre uma tenso mecnica e a deformao do material.
21
Figura 8: Lei de Hooke - Tenso versus Deformao
3.1.3 RELAO ENTRE TENSO ELTRICA E DEFORMAO
Os valores da deformao, da tenso mecnica e da fora aplicada a um corpo de prova
esto intimamente relacionados. Existem vrias maneiras de se medir deformaes. Dentre
estas, ser utilizado no presente trabalho, os extensmetros de resistncia eltrica.
A equao da resistncia R de um o condutor dada por:
R =
L
A
(3.2)
onde
= resistividade do condutor - resistncia especca do metal (m)
L= comprimento do condutor (m)
A= rea da seo transversal do condutor (m
2
)
diferenciando a equao 3.2 resulta
dR =
R

d +
R
L
dL +
R
A
dA (3.3)
R

=
L
A
R
L
=

A
22
R
A
=
L
A
2
e dividindo todos os membros da equao 3.3 por R
dR
R
=
L
A
R
d +

A
R
dL +

L
A
2
R
dA
substituindo R por
L
A
, ca:
dR
R
=
L
A
L
A
d +

A
L
A
dL +

L
A
2
L
A
dA
dR
R
=
L
A
A
L
d +

A
A
L
dL
L
A
2
A
L
dA
e nalmente:
dR
R
=
d

+
dL
L

dA
A
(3.4)
Notar que esta equao relaciona variaes de resistncia eltrica do condutor com varia-
es de resistividade (o chamado termo piezoresistivo), com a deformao axial do condutor
(
a
= dL/L) e o termo
dA
A
representa a variao relativa na rea da seo transversal do con-
dutor devido a tenso exercida sobre o mesmo. Ser visto a seguir que dA/A e dL/L esto
relacionados. Assim, se a variao de resistividade do condutor pequena, pode-se pensar em
medir a deformao de um condutor metlico medindo-se a variao de sua resistncia eltrica.
Ser mostrado a seguir como a deformao axial e a variao da rea transversal se relaci-
onam.
Figura 9: Condutor de seo transversal circular
Para um condutor de seo transversal circular, como mostrado na Figura 9, a rea dada
por:
23
A =
D
2
4
dA =
D
2
dD
dA
A
=
D
2
dD
D
2
4
=
D
2
dD
4
D
2
= 2
dD
D
Para o caso de uma tenso axial, tem-se que

a
=
dL
L

t
=
dD
D
onde

a
= fator de deformao axial no condutor

t
= fator de deformao transversal no condutor
Arazo entre os fatores das deformaes transversal e axial o chamado mdulo de Poisson
(). importante ressaltar que o mdulo de Poisson, da mesma forma que a resistividade e que
o mdulo de elasticidade, uma propriedade do material. Por exemplo, para o ao varia de 0,25
a 0,3. Matematicamente, o coeciente de Poisson dado por:
=
fatordedeformacaotransversal
fatordedeformacaoaxial
=

t
=
dD
D
=
a
(3.5)
dA
A
= 2
dD
D
dA
A
= 2
a
(3.6)
Se considerarmos a elongao de um o, L L + L, pelo efeito de Poisson vai haver
tambm uma reduo da rea seccional, A A A. A partir da Equao 3.2 pode ser visto
24
que ambos os efeitos contribuem para o aumento da resistncia.
Substituindo as equaes 3.5 e 3.6 na equao 3.4, temos
dR
R
=
d

+
a
2
t
dR
R
=
d

+
a
2(
a
)
Desta forma, ento, relacionamos a variao de resistncia eltrica do condutor com a de-
formao axial:
dR
R
=
d

+
a
(1 + 2)
H ainda a considerar a variao relativa da resistividade e do mdulo de Poisson, mas estas
so inuncias secundrias se o material no estiver sendo submetido a carregamentos extremos
(por exemplo, oscilando em alta frequncia, o que pode resultar em aquecimento do elemento),
isto , estes termos devem ser constantes na faixa de carregamento do material.
Rearranjando, obtm-se:
dR
R
=
a
(
d

a
+ 1 + 2)
K =
d

a
+ 1 + 2
onde K o fator de sensibilidade do extensmetro, tambm conhecido pelo seu nome
original da lngua inglesa Gauge Factor (GF).
O primeiro termo direita do sinal de igualdade o termo piezoresistivo, o qual se espera
manter constante durante o carregamento do material. Assim sendo, chega-se a:
dR
R
=
a
K (3.7)
Esta expresso signica que a variao na resistncia diretamente proporcional ao fator
de deformao axial da amostra.
O fator de sensibilidade do extensmetro (K) depende das caractersticas de fabricao
deste tais como: materiais utilizados, formas construtivas e tamanho, dentre outras. Este fator
25
determinado pelo fabricante pela medida R/R para uma amostra extrada de cada lote de
produo e esta informao fornecida junto com o extensmetro. O valor de K aproxima-
damente constante para a maioria dos tipos de extensmetros e estudos experimentais mostram
que apresentam valores na faixa de 2 4. Alm disso a quantidade (1 +2) aproximadamente
igual 1,6 para a maior parte destes materiais, o que signica que o termo
d

a
contribui com
um valor entre 0,4 2,4 (AGILENT TECHNOLOGIES, 1999).
Tambm esto disponveis extensmetros de semicondutor. Estes apresentam uma alta sen-
sibilidade negativa (isto , a resistncia diminui com a tenso aplicada) da ordem de -50 -200,
mas por outro lado, so altamente no lineares.
Na Figura 10 pode-se observar que o fator de sensibilidade do extensmetro corresponde
taxa de inclinao da curva.
Figura 10: Curva dos fatores de sensibilidade de diversos materiais
Uma lista da ligas mais comuns empregadas na fabricao de extensmetros eltricos, jun-
tamente com a sua sensibilidade, mostrada na Tabela 1. Os extensmetros mais comumente
utilizados so os fabricados com liga de cobre-nquel, conhecidos como Constantan.
3.1.3.1 Medio da variao da resistncia dos extensmetros
A resoluo limite para a maioria dos extensmetros eltricos em torno de 1 m/m (1
). Com um extensmetro de resistncia tpica de 120 e um fator do extensmetro (gauge
factor) igual a 2, 0, implica que temos que ser capazes de detectar uma variao na resistncia
de R = 120 2, 0 10
6
= 0, 00024. Enquanto que alguns multmetros digitais de
preciso so capazes de medir tal ordem de resistncias, estes apresentam a desvantagem do
26
Tabela 1: Fatores de sensibilidade do extensmetro para alguns materiais
Baixa Deformao Alta Deformao Elongao mxima (%)
Cobre 2,6 2,2 0,5
Constantan 2,1 1,9 1,0
Nquel -12 2,7
Platina 6,1 2,4 0,4
Prata 2,9 2,4 0,8
40% Ouro/Paldio 0,9 1,9 0,8
Semicondutor -100 -600
Fonte: DATAFORTH (2007)
alto custo. Uma maneira bem mais simples e barata de se conseguir o mesmo resultado inserir
o extensmetro em um circuito que seja capaz de detectar pequenas variaes nas resistncias,
em vez de valores absolutos. Estes circuitos convertem a variao R em uma tenso eltrica
proporcional a esta variao. O circuito mais comumente utilizado para esta tarefa a uma
congurao chamada de Ponte de Wheatstone.
3.2 PONTE DE WHEATSTONE
A ponte de Wheatstone foi desenvolvida nos primrdios da eletrnica como uma maneira
de medir com preciso valores de resistores sem necessitar de uma tenso de referncia ultra
estvel ou um ohmmetro de alta impedncia. Embora as pontes resistivas sejam raramente
utilizados para seu propsito original, elas continuam sendo largamente empregadas nas apli-
caes de sensoriamento. Nesta seo sero discutidas algumas consideraes fundamentais na
utilizao dessa topologia.
3.2.1 CONFIGURAO BSICA DA PONTE
A Figura 11 mostra o diagrama de uma ponte de Wheatstone clssica, onde a tenso de
sada (V o) a diferena de tenso entre V o
+
e V o

.
Quando utilizada em um sensor, o valor de um ou mais resistores vai se alterar de acordo
coma intensidade da propriedade sendo medida. Estas mudanas na resistncia causamtambm
uma alterao no valor da tenso de sada. A Equao 3.8 mostra que a tenso de sada, V o,
uma funo da tenso de excitao e de todos os resistores componentes da ponte.
V
CB
= V o

=
R3
R3 + R4
V e
27
Figura 11: Diagrama de uma Ponte de Wheatstone bsica
V
DB
= V o
+
=
R2
R1 + R2
V e
V o = V o
+
V o

V o = V e

R2
R1 + R2

R3
R3 + R4

(3.8)
Embora a Equao 3.8 no seja muito elegante, ela pode ser simplicada para a maioria das
pontes comumente utilizadas. A sada da ponte so mais sensveis a alteraes na resistncia
quando V o
+
e V o

so iguais metade de V e. Esta condio facilmente atingida utilizando-


se quatro resistores iguais de valor R. Alteraes na resistncia causadas pela variao da
propriedade sendo medida so consideradas pelo termo R. Resistores com o termo R so
chamados de resistores "ativos". Nos quatro casos que se seguem, todos os resistores possuem
o mesmo valor nominal R. Um, dois ou quatro resistores estaro ativos (tero um termo R).
Na derivao destas equaes, R assumido ser positivo. Se a resistncia realmente diminui
ento o termo R utilizado. No casos especiais abaixo, a magnitude de R a mesma pra
todos os resistores ativos.
Como regra geral, pode-se vericar que: alteraes de iguais valores em braos adjacentes
cancelam-se mutuamente.
28
3.2.2 QUANTIDADE DE SENSORES
Os extensmetros podem ser dispostos em diferentes conguraes:
1
/4 de ponte,
1
/2 ponte
ou ponte completa. Para utilizao na congurao em
1
/4 de ponte, deve-se fornecer os outros 3
elementos resistivos da ponte de forma a complet-la. Temos ento as seguintes possibilidades
de uso:
4 extensmetros (ponte completa) - Todos os ramos da ponte so extensmetros. ne-
cessrio apenas fornecer a tenso de excitao e medir a sada da ponte.
1 extensmetro (
1
/4 ponte) - Somente um extensmetro fornecido. O circuito de instru-
mentao dever fornecer os resistores necessrios para completar a meia ponte e alm
disso, instalar um resistor adicional, do mesmo valor do extensmetro, no ramo adjacente
ao do extensmetro.
2 extensmetros (
1
/2 ponte) - Somente dois dos extensmetros so fornecidos. O circuito
de instrumentao deve fornecer os outros dois resistores necessrios para completar a
ponte.
3.2.2.1 Quatro elementos ativos
No primeiro caso, todos os quatro elementos da ponte so ativos. A Figura 12 ilustra este
caso. As resistncias de R2 e R4 aumentam com a intensidade da propriedade sendo medida,
enquanto que o valor das resistncias R1 e R3 diminuem. Este caso tpico das clulas de
carga que utilizam quatro extensmetros. A orientao fsica dos extensmetros determinam se
seus valores iro aumentar ou diminuir quando a fora for aplicada. A Equao 3.9 mostra que
esta congurao produz uma relao linear simples entre a tenso de sada (V o) e a alterao
na resistncia (R). Esta congurao tambm fornece o maior sinal de sada. Deve-se notar
que a sada no uma funo linear de R, mas sim da relao R/R. Isto uma diferena
sutil, porm importante, porque a mudana na resistncia na maioria dos elementos sensores
proporcional suas resistncias nominais.
Da Equao 3.8, fazendo que R2 = R4 = R + R e R1 = R3 = R R tem-se que:
V o = V e
R
R
(3.9)
29
Figura 12: Congurao utilizando 4 extensmetros ativos (full bridge)
3.2.2.2 Um elemento ativo
O segundo caso um simples elemento ativo. Esta congurao utilizada frequentemente
quando o custo ou a ao mais importante do que a amplitude do sinal. A Figura 13 ilustra
esta situao.
Figura 13: Extensmetro ligado em um quarto de ponte
Para a anlise que se segue, ser considerado que a tenso fornecida (V e) constante, que
a impedncia de entrada do voltmetro innita e que a ponte est perfeitamente balanceada no
incio (R = 0). Nestas condies, tem-se que a tenso de sada inicialmente nula (V
o
= 0).
A corrente que ui de A at B passando por D (ramo direito da ponte) dada por:
I
ADB
=
V e
2R + R
30
A diferena de potencial sobre o extensmetro de resistncia R + R :
V
AD
= (R + R)
V e
2R + R
A diferena de potencial entre os pontos A e C dada por:
V
AC
=
V e
2
Por conseqncia, a tenso de sada do sistema (V
o
) dada por:
V
o
= V
AD
V
AC
V
o
=
V e (R + R)
2R + R

V e
2
V
o
= V e
(2R + 2R 2R R)
4R + 2R
V
o
= V e
R
4R + 2R
(3.10)
Tipicamente a alterao na resistncia muito pequena comparada com o valor da resis-
tncia original (R 1%), de maneira que podemos aproximar 4R + 2R

= 4R. Assim,
obtm-se:
V
o
=
1
4
V e
R
R
(3.11)
Lembrando que
R
R
= K
a
, obtm-se, nalmente, a expresso para determinar o fator
de deformao axial:

a
= 4
V
o
V e

1
K
(3.12)
Observando-se a Equao 3.11 verica-se que a sada desta congurao tem apenas 1/4
da amplitude que teria se tivesse quatro elementos ativos. Outra considerao importante que
a Equao 3.11 foi obtida supondo pequenas variaes de resistncias. Caso no seja este o
caso, a sada no linear, causada pela existncia do termo R no denominador da Equao
31
3.10. No entanto, esta no linearidade pequena e determinstica e caso necessrio, pode ser
corrigida atravs de software.
3.2.2.3 Dois elementos ativos com respostas opostas
O terceiro caso, mostrado na Equao 3.13, tem dois elementos ativos. Por exemplo, na
Figura 14 ilustrada uma barra onde um elemento da ponte montado na regio de tenso
(R + R) e o outro em compresso (R R). Desta maneira, suas resistncias variam em
direes opostas (R e R). Ambos os resistores so colocados no mesmo lado da ponte
(R1 e R2, ou R3 e R4). Como esperado, a sensibilidade o dobro da congurao que utiliza
apenas um elemento ativo e metade daquela que utiliza quatro elementos ativos. A sada desta
congurao uma funo linear de R/R.
V o =
V e
2
R
R
(3.13)
Figura 14: Ponte de Wheatstone contendo dois elementos ativos idnticos e ligados em braos
adjacentes.
Tanto no segundo, quanto no terceiro caso apresentado acima, somente metade da ponte
ativa. A outra metade simplesmente fornece uma tenso de referncia que igual metade de
V e. Conseqentemente, no realmente necessrio que todos os quatro resistores da ponte te-
nham o mesmo valor nominal. importante somente que ambos os resistores do lado esquerdo
da ponte sejam iguais um ao outro e que ambos os resistores do lado direito da ponte tambm
sejam iguais um ao outro.
32
3.2.2.4 Dois elementos ativos idnticos
O quarto caso tambm utiliza dois elementos ativos, porm tm uma resposta parecida,
ou seja, ambos aumentam ou diminuem de valor simultaneamente. Este o caso quando se
utilizam dois extensmetros idnticos montados adjacentes um ao outro e com seus eixos em
paralelo. Para ser efetivo, estes resistores devem estar nas diagonais da ponte (R1 e R3, ou R2
e R4). A Figura 15 ilustra esta situao.
Figura 15: Ponte de Wheatstone contendo dois elementos ativos idnticos em ramos opostos e
alimentada por uma fonte de tenso constante.
A vantagem bvia desta congurao que o mesmo tipo de elemento sensor pode ser
utilizado em ambas as posies. A desvantagem o resultado no linear da sada causado pelo
termo R no denominador da equao 3.14. No entanto, esta no linearidade determinstica
e pode ser removida por software.
V o = V e

R
2R + R

(3.14)
A no linearidade tambm pode ser eliminada alimentando-se a ponte com uma fonte de
corrente constante em vez de uma fonte de tenso constante, conforme ilustrado na Figura 16.
Neste caso a tenso de sada dada por
V o =
Ie
2
R (3.15)
Onde Ie a corrente de excitao.
Deve se observar que V o na Equao 3.15 uma funo em termos de R, no da razo
33
Figura 16: Ponte de Wheatstone contendo dois elementos ativos idnticos e alimentada por uma
fonte de corrente constante.
R/R como nos casos anteriores.
O entendimento dos quatro casos especiais apresentados anteriormente til quando se
trabalha com elementos sensores individuais. Muitas vezes, no entanto, o sensor possui uma
ponte interna comuma congurao desconhecida. Nestas situaes no realmente importante
saber a congurao exata. O fabricante ir fornecer as informaes necessrias, tais como
sensibilidade, erro de linearidade, tenso em modo comum e demais informaes relevantes.
3.2.2.5 Ordem de grandeza
O exemplo dado a seguir tem a nalidade de ilustrar a ordem de grandeza das unidades
envolvidas.
Exemplo: Um extensmetro tem resistncia nominal de 120 e um fator K = 2,06. Est
instalado em congurao de
1
/4 de ponte. Os demais resistores so de 120. Qual ser a tenso
de sada da ponte com uma deformao de 1000 strain=1mm/m se a alimentao da mesma
de 5 Volts?
Inicialmente, se temos todos os resistores iguais na ponte, ento:
V
o
=
1
4
V e
R
R
Lembrando que tambm que
R
R
=
a
K
Assim,
V
o
=
1
4
V e
a
K
34
ento,
V
o
=
1
4
5(1000 10
6
) 2, 06 = 2, 575 mV
3.2.3 EFEITO DA RESISTNCIA DA FIAO
As equaes fornecidas anteriormente para conguraes de extensmetros em
1
/4,
1
/2 e
ponte completa assumem que a resistncia da ao desprezvel. Enquanto que ignorar estes
efeitos pode ser benco para se entender o princpio bsico de medio utilizando pontes de
Wheatstone, fazer isto na prtica pode ser uma grande fonte de erro.
Quando os extensmetros esto distantes do local da instrumentao, o efeito da resistncia
da ao adicionada ao circuito pode desbalancear a ponte. Por exemplo, para 30 m de o
de cobre de bitola 26 AWG (133, 86/km) ir produzir uma resistncia adicional de: R =
133,86
1000
30 2 = 8, 03, que muito maior do que a variao de resistncia esperada devido
a deformaes por esforo para um extensmetro de 120. Alm de adicionar um erro por
desvio intolervel, a resistncia da ao tambm dessensibiliza a sada da ponte. Alm disso,
variaes na temperatura dos os tambm podem ser signicativas.
Utilizando uma conexo a 6 os pode-se eliminar os efeitos da ao porque as resistncias
afetam igualmente dois braos adjacentes da ponte. Como pode ser observado na Figura 17,
alteraes na resistncia da ao no alteram a razo dos braos da ponte. Desse modo, so
canceladas quaisquer alteraes nas resistncias devido ao ou a variao temperatura.
Figura 17: Efeito da ao na medio
35
3.2.4 MEDIO DE TENSO MECNICA UTILIZANDO EXTENS-
METROS
Inicialmente deve-se selecionar o extensmetro dentre os ofertados por fabricantes. A va-
rivel bsica o fator do extensmetro, K, fornecido nos catlogos. Este fator a razo entre
a variao relativa da resistncia e a deformao axial. Depois de escolhido o mais adequado
para a aplicao, o extensmetro deve ser instalado (colado) no material a ser testado e ligado
ao circuito eletrnico (ponte de Wheatstone). O material dever ser submetido ao carregamento
e a variao relativa da resistncia ser medida e ento a deformao axial poder ser calculada.
Finalmente a tenso mecnica determinada utilizando se a lei de Hooke.
3.2.5 RELAOENTRETENSOMECNICAETENSOELTRICA
Lembrando que, para o caso de 4 elementos ativos, a equao da tenso da sada V o =
V e
R
R
, e que
dR
R

R
R
para pequenas variaes, temos que
R
R
=
a
K. Substituindo obtm-se:
V o = V e
a
K
Lembrando ainda que,
a
=

E
, obtm-se nalmente:
V o =
V eK
E
ou ainda =
E
V e

1
K
V o
Exemplo 1: Umextensmetro de fator K = 2 est montado emuma barra de ao retangular
que tem mdulo de elasticidade E = 200GPa. A barra tem 3cm de largura e 1cm de altura
e est sob a ao de uma fora de trao de 30kN. Determine a variao de resistncia do
extensmetro se sua resistncia sem carga for de 120.
Primeiro o clculo da tenso,
= F/A,
= 30kN/(3 10
2
m1 10
2
m)
= 1, 0 10
5
kN/m
2
= 100MPa
aps, o clculo da deformao com a equao de Hooke,

a
=

E
=
1,010
2
MPa
20010
3
MPa

a
= 5, 0 10
4
m/m = 500 strain = 0, 5mm/m
A variao relativa da resistncia (R/R) o produto do fator de deformao (
a
) pelo
36
fator do extensmetro (K), matematicamente:
R
R
=
a
K = 5, 0 10
4
2, 0
R
R
= 1, 0 10
3
/
R =0, 12
4 PROJETO CONCEITUAL DO
SISTEMA
Neste captulo so mostrados os materiais, procedimentos, tcnicas e mtodos utilizados
para o projeto a nvel global. Nos captulos posteriores so detalhadas cada unidade aqui apre-
sentada. Assim, o objetivo especco deste captulo apresentar uma viso geral do sistema,
incluindo:
1. OS REQUISITOS BSICOS
2. ESTRUTURA GLOBAL
3. DEFINIO DOS COMPONENTES INTEGRANTES
Oprojeto desenvolvido consiste, basicamente, emumsistema de aquisio de dados multi ponto
dedicado ao monitoramento estrutural, conforme pode ser visto na Figura 18.
Figura 18: Arquitetura geral do sistema proposto
38
4.1 TOPOLOGIA
A idia principal que todos os sinais eltricos gerados pelos extensmetros devido aos
esforos mecnicos presentes na estrutura sejam condicionados localmente atravs de circuitos
analgicos dedicados presentes nos terminais da rede (n de rede). O sinal condicionado en-
to digitalizado e transmitido para a unidade gerenciadora, atravs de protocolo especco com
vericao de redundncia, para se evitar erros de transmisso de dados. Uma das vantagens
da transmisso de sinais digitalizados com modulao diferencial que estes so muito menos
suscetves a rudos externos do que a transmisso de sinais analgicos da ordem de V por
dezenas de metros de ao, como acontece nos sistemas convencionais. Assim, os tnues si-
nais gerados pelos sensores no necessitaro uir atravs do cabeamento, no estando, portanto,
sujeitos a rudos externos.
Assim, cada unidade de rede contm a instrumentao eletrnica associada aquisio, tra-
tamento do sinal, calibrao do sistema de medida, converso analgico-digital e comunicao
com uma unidade mestre remota, responsvel pelo gerenciamento do sistema de aquisio de
dados. Toda a conexo entre os diversos ns da rede e o mestre feita atravs de um nico
cabo tipo lgico UTP (Unshielded Twisted Pair) padro utilizado em redes Ethernet, que trans-
porta dados e energia para os ns da rede. Portanto, os ns sero autnomos, ou seja, no
necessitaro de fonte de energia disponvel in loco (embora tambm possam ter). Como cada
unidade da rede recebe a energia a partir de um nico ponto central, no h necessidade de
manuteno peridica nos pontos de monitoramento instalados, os quais so freqentemente de
difcil acesso. Esta caracterstica torna o sistema de aquisio extremamente verstil para ns
de monitoramento permanente de estruturas.
A partir da unidade mestre, uma comunicao ser estabelecida com um computador pes-
soal para o processamento e tratamento grco dos sinais coletados a partir dos diversos pontos
monitorados.
4.2 DEFINIO DO SISTEMA DE AQUISIO DE DA-
DOS
Diferentemente das tecnologias wireless que operam em rede, onde cada n transmite si-
multaneamente as informaes, causando importante congestionamento no espectro eletromag-
ntico, alm de cada ponto necessitar de fonte individual de energia, o que gera custo extra de
manuteno, o sistema proposto opera sob outra losoa. Os pontos de monitoramento so
permanentemente conectados estrutura civil ou mecnica e se comunicam individualmente
39
com a unidade remota mestre em intervalos de tempo exclusivos (time frames), o que garante a
otimizao do consumo de energia.
Cada ponto de medida (n da rede) incluir uma interface para sensoriar um extensmetro
utilizado para monitoramento de esforos e instrumentao eletrnica associada aquisio,
tratamento do sinal, calibrao do sistema de medida, converso analgico-digital e comunica-
o com uma unidade mestre.
Embora os conversores analgico/digital do tipo delta-sigma popularizados recentemente
possam ser utilizados de maneira simples e com sucesso na presente aplicao, optou-se por
implementar o projeto utilizando amplicadores operacionais comuns. Duas das principais
razes para essa escolha so a facilidade de aquisio e seu baixo custo, fatores essenciais
para este projeto, j que um dos objetivos propostos o desenvolvimento de uma plataforma
de baixo custo. Um dos maiores esforos, portanto, consistiu em conseguir um desempenho
satisfatrio do sistema de condicionamento de sinais utilizando componentes que apresentam
rudos intrnsecos maiores do que os dos amplicadores de instrumentao comerciais, valor de
offset relativamente grande, deriva trmica considervel e baixa estabilidade com o passar do
tempo. Todos estes fatores, a princpio, parecemcontra-indicar a utilizao destes componentes.
No entanto, este desao foi aceito e demandou uma grande carga de trabalho de pesquisa terica
e experimental. A soluo encontrada para corrigir estas imperfeies, foi uma combinao de
estratgias de hardware e de software. Uma vez que o sistema dispe de um microcontrolador,
este foi utilizado para a tarefa de implementar os algoritmos de correo dos eventuais desvios.
Na seo que trata dos terminais de rede sero detalhados os procedimentos e os cdigos de
programao utilizados. Importante ressaltar que foramconstrudos prottipos para se validar as
tcnicas propostas e, como ser visto no Captulo RESULTADOS E DISCUSSES, encontrou-
se uma soluo satisfatria para o problema.
4.3 DEFINIO DO PROTOCOLO DE COMUNICAO
Um aspecto importante considerado neste projeto, refere-se ao meio fsico de transmisso
dos sinais digitais atravs de umbarramento de comunicao, como por exemplo, a mxima taxa
permissvel de transmisso de dados, o nmero admissvel de pontos de rede e o comprimento
efetivo de cabo que pode ser utilizado. Com a nalidade de tornar o sistema de aquisio
vivel economicamente, pretende-se utilizar cabos tipo UTP na conexo entre ns da rede e
unidade mestre. A adequao entre a informao a ser transmitida (sinais digitais) e o canal
de comunicao (par de os) essencial para o correto desempenho do sistema de aquisio
projetado. Estes resultados garantem a funcionalidade do sistema de aquisio. Os tempos de
40
resposta dos diversos circuitos operando na rede devem ser adequados para a capacidade de
transmisso da linha de comunicao de forma a assegurar que o mestre e os ns da rede se
comuniquem corretamente. Tambm foi uma preocupao, o consumo e a distribuio eciente
de energia.
O protocolo de comunicao utilizado constitudo por camadas lgicas que empregam
vericao de redundncia e controle de uxo (handshakings) entre unidades de rede e mes-
tre. Basicamente, o mestre se comunica com a rede e indica qual a unidade alvo que deve
transmitir os dados. Assim, a comunicao ser do tipo polling mestre-escravo. Esta forma de
comunicao ilustrada na Figura 19.
Figura 19: Comunicao tipo mestre escravo (polling)
Considerando que a linha de transmisso suporta uma taxa razovel de transmisso de sinais
digitais, uma leitura completa dos dados de uma rede composta por 31 pontos feita em cerca
de um segundo, valor que pode ser considerado adequado para monitoramento de estruturas
estticas. Obviamente, o estudo tcnico posterior deste sistema dever indicar quais as prprias
limitaes com relao ao nmero de pontos (carregamento) e velocidade de operao (taxa de
transmisso e trfego). Inmeras so as possibilidades, que inclusive poderiam ser selecionadas
via software.
Um dos principais esforos na realizao deste projeto foi a implementao de uma inter-
face de comunicao convel entre unidade mestre e unidades de rede, bem como a implemen-
tao de um protocolo de alto nvel, baseado na adequao de protocolos existentes, de forma
assegurar uma comunicao ecaz e imune a interferncias externas.
41
Existem muitos protocolos ecientes para tal tarefa, dentre eles podemos citar: Ethernet,
Fieldbus Foundation, Probus, Devicenet, Canopen, Modbus, etc. Cada um desses foi original-
mente desenvolvido por um determinado fabricante, que posteriormente abriu o protocolo em
resposta exigncia do mercado por conectividade.
Visando escolher o protocolo mais adequado para ser implementado neste projeto, foram
consultados (SNOWDON, 2002), onde os principais protocolos so comparados quando ao
meio fsico: CAN, RS-485, Ethernet, I2C 1-Wire. Tambm os protocolos de camada mais alta
so comparados: DeviceNet, CANOpen e CanKingdom.
Tambm (DOEBELIN, 2004), apresenta em seu livro um captulo que trata exclusivamente
de redes de comunicao utilizadas para aquisio de sinais, considerando tanto as analgicas
quanto as digitais. So apresentadas tambm as redes de campo bsicas.
Outros trabalhos tambm contriburam para o entendimento das caractersticas dos proto-
colos e anlises comparativas. Dentre os trabalhos, podemos citar: (TRISTO, 2004), (BOA-
RETTO, 2005) e (ROSSI,2005).
Depois de uma pesquisa das caractersticas dos principais protocolos existentes, optou-se
pela utilizao do protocolo MODBUS RTU, pelas seguintes razes:
Determinstico;
Permite monitorar at 247 pontos de rede;
Padronizado;
Protocolo aberto com fcil acesso documentao;
No necessrio o pagamento de Royalties;
Seguro e Convel;
Adequado para tratar os tempos de comunicao entre elementos envolvidos;
Largamente difundido e utilizado, principalmente em ambientes industriais;
Fcil implementao em microcontroladores de baixo custo.
Inclusive, poderia ter se desenvolvido um novo protocolo para tal operao. No entanto, a
grande vantagem de se utilizar um protocolo padro largamente difundido a existncia no
42
mercado de acessrios que permitem a sua integrao e expanso. No caso do protocolo MOD-
BUS, pode-se utiliz-lo juntamente com uma ampla gama de produtos disponveis comercial-
mente, tais como: softwares supervisrios, gateway Ethernet TCP/IP e inclusive wireless, j
que existem equipamentos que fazem a converso de MODBUS RTU (RS485) para redes sem
o.
4.4 ESCOLHA DO MEIO DE TRANSMISSO
Como j mencionado no captulo anterior, o protocolo MODBUS est na camada equi-
valente camada de aplicao (camada 7) do modelo OSI/ISO e no especica o meio de
transmisso. Para o protocolo MODBUS dois principais meios poderiam ser utilizados: serial
ou TCP/IP. Por facilidade de implementao e baixo custo do produto nal - objetivos funda-
mentais do projeto - foi escolhida a comunicao serial.
Note-se que, trabalhos posteriores podero incluir o meio de transmisso via TCP/IP mu-
dando apenas a pilha da camada fsica do protocolo ora implementado.
O padro RS485 normalmente utilizado, por ser muito robusto em relao imunidade
contra interferncias ( por ser baseado em modulao diferencial de sinais), boa velocidade
de transmisso (at 12 MB/s), bom alcance (1200 metros em 9600 BPS). Pelas caractersticas
apresentadas de desempenho - mais do que sucientes para esta aplicao - o meio fsico de
transmisso escolhido foi o RS-485.
4.5 SERVIDOR DE COMUNICAES
Para uma melhor compreenso do princpio de funcionamento do servidor de comunicaes
utilizado neste projeto, nas sees que se seguem sero apresentados detalhes da tecnologia
OPC, a qual utilizada para troca de dados com o sistema de aquisio.
4.5.1 TECNOLOGIA OPC
Um dos grandes problemas de se interfacear equipamentos e sistemas no cho de fbrica
reside em se compatibilizar os protocolos da camada de aplicao. Imagine a tarefa de in-
terfacear um sistema supervisrio com um CLP h alguns anos atrs. Vamos supor que este
supervisrio fosse o Elipse E3 e que o CLP fosse uma CPU da famlia 5 da Rockwell. O Elipse
E3 era fornecido em vrias verses. O CLP 5 pode se comunicar com diversas redes diferen-
43
tes, por exemplo, com uma rede com protocolo DH+ (proprietrio da Rockwell). O PC pode
utilizar cartes de comunicao Rockwell, Sutherland-Schultz ou outro. O nmero de combi-
naes muito grande. Na prtica, teria que se utilizar ou desenvolver um drive que atendesse
perfeitamente combinao: Sistema SCADA (existem dezenas)/sistema operacional (vrias
opes), carto de comunicao PC/CLP (vrias fontes e possibilidade de rede). Isto signi-
cava a existncia de centenas de drives de comunicao, que s atendiam a verses especcas
da combinao de fatores apresentada acima. Um arranjo tpico para esta soluo apresentado
na Figura 20.
Figura 20: Arquitetura tradicional de comunicao utilizando drivers
No caso da arquitetura tradicional, servidores ou equipamentos tm interfaces/drivers dife-
rentes para cada aplicao cliente. (Cada seta representa um software de driver ou interface).
Embora o protocolo de um equipamento ou servidor no possa mudar, as arquiteturas das apli-
caes clientes (fornecida por diversos vendedores) so diferentes. Isto leva a um aumento de
trabalho, custo e tempo. Se o protocolo do equipamento ou do servidor alterado ou atualizado,
ento a aplicao cliente tambm necessita ser modicada.
Fica evidente a diculdade encontrada na poca pelos prossionais do setor de automao:
conhecer e ter acesso a dezenas de produtos de fornecedores diferentes, todos incompatveis
entre si.
Pela necessidade urgente de padronizao, foi criado o padro OPC (OLE for Process Con-
trol) que baseado no modelo de comunicao entre aplicativos criado pela Microsoft e deno-
minado OLE (Object Linking and Embedding), que uma maneira eciente de se estabelecer
interfaces para aplicaes em substituio s chamadas de procedimento e as DLL usadas ini-
cialmente para encapsular uma aplicao. O projeto foi inicialmente liderado pela Microsoft
e, posteriormente, foi criada uma organizao independente chamada de OPC Foundation, res-
ponsvel pelo desenvolvimento de uma plataforma especca para componentes de automao
44
de processos. Na pgina (da internet) da fundao podem ser encontradas as especicaes do
protocolo OPC. Esta tecnologia hoje o padro de fato da indstria. O OPC elimina a situao
apontada anteriormente, pois um fabricante de CLP sempre fornecer com o seu equipamento
um servidor OPC. O fabricante de SCADA tambm fornecer o cliente OPC. O mesmo acon-
tece com um fornecedor de inversores, de rels inteligentes ou de qualquer outro dispositivo de
aquisio de dados ou atuador. A arquitetura de uma plataforma utilizando tecnologia OPC
mostrada na Figura 21.
Figura 21: Comunicao utilizando tecnologia OPC
O OPC otimiza a interface entre aplicaes cliente e servidor fornecendo um mecanismo
padro para comunicar dados de uma fonte de dados para qualquer aplicao cliente. Em outras
palavras, o OPC a ferramenta Plug and Play para IHM e Automao. Para tanto, faz uso de
um protocolo universalmente aceito e conhecido para envio de dados entre as fontes de dados
(Servidor) e as aplicaes (Clientes), eliminando o uso de drivers e conversores, geralmente
proprietrios, que criavam uma dependncia entre o usurio e o fornecedor daquele sistema
proprietrio muitas vezes custosa e ineciente.
As aplicaes precisam apenas saber como buscar dados de um servidor OPC, ignorando
a implementao do dispositivo e o servidor precisa fornecer dados em um formato nico:
servidor OPC. A estrutura organizacional de um servidor OPC tpico pode ser observada nas
Figuras 22 e 23.
O servidor OPC fornece dados de tempo real proveniente de sensores (temperatura, presso,
etc.), comandos de controle (abrir, fechar, ligar, desligar, etc.), status de comunicao, dados de
performance e estatstica do sistema, etc.
Cada transao pode ter de 1 a milhares de itens de dados, o que torna o protocolo muito
eciente. O OPC no resolve o problema de nomes globais. Deve-se saber exatamente em que
servidor uma dada varivel pode ser encontrada.
45
Figura 22: Mapeamento de Itens OPC
Figura 23: Estrutura organizacional de um servidor OPC contendo uma hierarquia de grupos e
itens
Entre suas funes principais ele permite aplicao cliente:
Gerenciar grupos: Criar, clonar e deletar grupos de itens, renomear, ativar, desativar gru-
pos.
Incluir e remover itens em um grupo.
Navegar pelas tags existentes (browser interface).
Ver os atributos ou campos associado a cada tag.
Denir a linguagem de comunicao (pas) a ser usada.
Associar mensagens signicativas a cdigos de erro
Obter o status de funcionamento do servidor
Ser avisada, caso o servidor saia do ar.
O grupo de dados constitui uma maneira conveniente da aplicao organizar os dados de que
necessita. O grupo pode ser ativado ou desativado como um todo. Cada tela sintica, receita,
46
relatrio e outros, pode usar um ou mais grupos. A interface de grupo permite aplicao
cliente:
Adicionar e remover itens dos grupos.
Denir a taxa de leitura do dado no grupo.
Ler e escrever valores para um ou mais itens do grupo.
Assinar dados do grupo por exceo.
Cada item um objeto OPC que proporciona uma conexo com uma entrada fsica de dados.
Cada item fornece ao cliente informao de: valor, time stamp, qualidade do dado e tipo de
dado.
As leituras de dados podem ser de trs tipos: leitura cclica onde uma unidade lida perio-
dicamente (polling), leitura assncrona (o cliente avisado quando a leitura se completa) e por
exceo (assinatura). As duas primeiras trabalham sobre listas (subconjuntos) de um grupo e o
servio de assinatura envia aos clientes qualquer item no grupo que mudar de valor. Cada grupo
de dados pode ter uma taxa de leitura especca.
4.5.2 MESTRE MODBUS E SERVIDOR OPC
Resumindo: a comunicao entre programas aplicativos de diferentes fabricantes cou
muito facilitada com o surgimento do padro OPC e portanto, ao se utilizar um produto que
segue este padro no mais necessrio conhecer como os dados so armazenados interna-
mente nos produtos de cada fabricante, s necessrio saber como acess-los.
Atualmente existem dezenas de fabricantes de servidores OPC, todos com qualidades equi-
parveis, j que devem ser certicados pelo rgo responsvel pela tecnologia (OPC Founda-
tion). Assim, o critrio de escolha recai na facilidade de acesso ao produto e custo de aquisio.
Para este projeto foi escolhido o servidor OPC KEPServerEx, fabricado pela KEPWARE, que
funciona como uma unidade mestre MODBUS, responsvel por controlar a transferncia das
informaes do sistema supervisrio para os terminais da rede e vice-versa.
A idia utilizar um servidor de comunicaes Modbus para comunicar-se com os elemen-
tos da rede de sensores e que este servidor de comunicaes tambm seja um servidor OPC,
possibilitando assim, trocar dados com outros aplicativos clientes OPC. Desta maneira, o trata-
mento dos dados pode ser feito, por exemplo, utilizando-se um dos produtos do pacote Ofce
da Microsoft, tais como: Excel, Word ou Access.
47
Tambm na rea de pesquisa das engenharias muito comum a utilizao de softwares de
simulao e captura de dados, tais como o Matlab/Simulink, LabView e DasyLab. Foi
pesquisado a possibilidade de se desenvolver aplicaes clientes OPC com estes para coletar e
tratar dos dados recebidos. Concluiu-se que todos estes podem ser utilizados, j que clientes
OPC podem ser construdos a partir deles.
4.6 SOFTWARE DE AQUISIO E TRATAMENTO DOS
DADOS
Na rea da engenharia de controle e automao industrial comum a utilizao de sistemas
supervisrios para realizar a tarefa de aquisio e tratamento de dados. Este tipo de software
possui capacidade grca para visualizao em tempo real dos dados capturados a partir dos
elementos sensores. Quase todos os sistemas supervisrios modernos dispem de recursos para
se comunicarem com servidores OPC. Portanto, qualquer um poderia ser utilizado, dependendo
apenas da disponibilidade.
Por facilidade de acesso do autor ao produto, optou-se neste trabalho pela utilizao do
software supervisrio Elipse Scada, que funcionar como um cliente OPC. A gura 24 ilustra a
arquitetura do sistema proposto.
Figura 24: Arquitetura sistema de aquisio de dados
O princpio de funcionamento para a leitura dos ns da rede o seguinte: O servidor Mod-
bus solicita periodicamente os valores de temperatura e de fator de deformao das unidades
escravas conectadas na rede (polling) e armazena estas informaes no banco de dados do ser-
vidor OPC. Quando o supervisrio necessitar de qualquer informao de uma unidade escrava,
48
por exemplo, a temperatura do terminal 17, o sistema supervisrio solicita esta informao para
o servidor OPC que vai devolver o valor da ltima leitura efetuada.
Quando o supervisrio desejar enviar uma determinada informao para uma unidade es-
crava, vai envi-la para o servidor OPC que se encarregar de enviar a solicitao ao mestre
Modbus. Este por sua vez, enviar a informao para a unidade escrava. Notar que a codi-
cao e decodicao do bilhete no formato Modbus feita automaticamente pelo servidor de
comunicaes. Assim, o supervisrio s precisa saber o nome da varivel que deseja acessar e
no detalhes de como a informao obtida.
4.7 PLANEJAMENTO PARA FUTURA INTEGRAO
Visando uma reduo do tamanho do n da rede e reduo dos custos para a produo
de um sistema de monitoramento estrutural como o proposto, pretende-se, em um momento
posterior, fazer que os ns de rede sejam implentados em um nico circuito integrado. Assim,
o front-end analgico ser objeto de investigao para futura integrao e assim contribuir para
a reduo do tamanho fsico do n da rede. Um dispositivo dummy strain-gauge ser utilizado
in loco para ns de calibrao e compensao trmica. Circuitos compensados termicamente
baseados em referncias de tenso do tipo band-gap (ALLEN et al., 1990), realizveis em
tecnologia CMOS convencional, sero utilizados para assegurar a estabilidade da operao do
sistema. Amplicadores diferenciais de ganho programvel com alta taxa de rejeio de modo
comum (CMRR) e a subseqente ltragem para restrio de banda e incremento da resoluo
compem a etapa nal da interface analgica. Esta dever ser integrada atravs do programa
MOSIS (MOSIS, s.d.) de fabricao de circuitos integrados, o qual esta universidade dispe de
acesso (UEL-04379, s.d.). Aps a captura e condicionamento dos sinais analgicos, os mesmos
so digitalizados, novamente condicionados para adequao dos nveis de tenso e transmitidos
atravs da linha. Ummicrocontrolador sincronizado coma unidade mestre comanda a seqncia
de envio dos dados capturados, bem como recebe ordens da unidade remota, como por exemplo,
para realizar a calibrao do sistema. Assim, assegura-se uma maior conabilidade na leitura
dos dados bem como a integridade da prpria transmisso da informao, pois a aquisio e
condicionamento do sinal so realizados localmente e a informao digitalizada antes de ser
transmitida.
A integrao total dos dispositivos constituintes do n de rede ser considerada, para ns
de estudos de viabilidade tcnica e comercial do produto. Neste caso, a digitalizao dos dados
dever ser realizada por um conversor AD a ser projetado e as funes do microcontrolador
realizadas atravs de mquinas de estado sncronas simplicadas. Obviamente, esta etapa nal
49
de integrao demandar estudos adicionais no previstos para o perodo vigente deste projeto,
o que sugere uma continuidade para o mesmo.
4.8 CAPACIDADE PARA EXPANSO FUTURA
Posteriormente, partindo-se do suporte de hardware disponvel e do protocolo desenvolvido,
outras variveis podero ser igualmente monitoradas, tais como umidade e corroso, bastando-
se adequar o sensor interface de rede. Outros dispositivos alm do extensmetro eltrico
de resistncia, como sensores de vibrao ou deslocamento tambm podero ser igualmente
conectados permitindo o monitoramento de outras variveis, desde que a taxa de aquisio no
exceda a capacidade de transmisso do protocolo.
5 PROJETO, MONTAGEM E TESTES
DO TERMINAL DE AQUISIO
Neste captulo so detalhadas as estruturas de hardware e software desenvolvidas para im-
plementar a formulao proposta no Captulo INTRODUO. So mostrados os aspectos cons-
trutivos da soluo proposta bem como suas caractersticas tcnicas.
5.1 VISO GERAL DO TERMINAL DA REDE
Na Figura 25 ilustrado o modelo do terminal de rede implementado. Sua estrutura com-
posta por um circuito de condicionamento de sinais, um sensor de temperatura, um conversor
analgico para digital, um microcontrolador e uma interface de comunicao. Tambm faz
parte de cada unidade, um sistema conversor de energia de Corrente Contnua (CC).
Figura 25: Diagrama em blocos do terminal de rede desenvolvido
51
5.2 CARACTERSTICAS DESEJADAS
5.2.1 ALIMENTAO
Todos os ns devem ser alimentados pelo mesmo cabo que faz a conexo de rede. As-
sim, o sistema recebe uma tenso de 12V e deve convert-la em 5V que sero utilizados pelo
microcontrolador e pelos elementos de condicionamento de sinais.
5.2.2 COMUNICAO
Conforme j discutido anteriormente no Captulo Projeto Conceitual, a comunicao uti-
lizar o barramento RS-485 multi-ponto padronizado. Sua topologia de conexo ser do tipo
barramento comum.
5.2.3 MEMRIA
Devem existir elementos sucientes de armazenamento para as variveis temporrias ou de
execuo, para implementao do ltro de mdia mvel e memria EEPROM para armazena-
mento dos valores de calibrao do sistema.
5.3 IMPLEMENTAO
5.3.1 ALIMENTAO
Para a alimentao do sistema, foi utilizada uma fonte de alimentao de microcomputador.
Sua escolha se deu pelos seguintes motivos:
Facilidade de Aquisio;
Baixo custo;
Boa capacidade de fornecimento de energia.
5.4 MICROCONTROLADOR
Todo o funcionamento do sistema comandado e supervisionado por um microcontrolador.
Ele responsvel pela implementao das rotinas do protocolo de comunicao, controle dos
52
circuitos de transmisso e de recepo de sinais, digitalizao (converso analgico/digital),
deteco de modo unvoco do endereo do terminal (programado atravs de micro-chaves),
armazenamento dos dados de calibrao em memria permanente do tipo EEPROM.
Entre diversas opes do mercado foi escolhido o microcontrolador PIC16F876 fabricado
pela MICROCHIP. Suas principais caractersticas so:
Desempenho de at 5 MIPS quando utilizados com cristal de freqncia de 20 MHz. Nos
microcontroladores PIC o sinal do clock internamente dividido por quatro. Assim, ao se
utilizar um cristal de 4 MHz, a freqncia do barramento interno ser de 1 MHz, ou seja,
cada ciclo de mquina dura 1s. Os microcontroladores PIC executam uma instruo a
cada 1s , exceto para as instrues de desvio que consomem dois ciclos de mquina.
Portanto, utilizando-se um cristal oscilador externo de 4 MHz obtm-se um desempenho
prximo de 1 MIPS, o que adequado para esta aplicao.
8 kWords de memria de programa
368 bytes de memria de dados tipo RAM (memria voltil).
192 bytes de memria de dados tipo EEPROM (memria no voltil)
Portas de entrada e sada - um total de 18 I/Os (entradas e sadas) separadas em 4 grupos
denominados de portas, codicadas de A,B,C e D.
1 temporizador/contador de 16 bits e 2 de 8 bits.
4 canais de conversores analgico-digitais de 10 bits
1 USART - ou Receptor/Transmissor Assncrono Universal. Este elemento constitui o
corao da comunicao serial a ser implementada. Internamente implementado em
hardware que utilizado tanto na comunicao da transmisso quanto na recepo. Sua
principal funo converter bytes em um uxo de bits correspondente e vice-versa, acres-
centando alguns pulsos de controle para permitir a deteco de incio e trmino de trans-
misso (modo assncrono) e tambm de erros, quando utilizando deteco de paridade.
5.5 QUESTES FUNDAMENTAIS SOBRECIRCUITOS EM
PONTE
Existem vrias consideraes a serem feitas quando se est lidando com pontes de baixo
sinal. As mais importantes questes sero discutidas a seguir.
53
5.5.1 TENSO DE EXCITAO
Os extensmetros eltricos requerem uma tenso de excitao para gerar uma tenso que
represente o esforo medido. Pode-se utilizar o mtodo de tenso constante, corrente constante
ou, ainda, por alimentao alternada.
Enquanto pouco utilizada atualmente, por muitos anos a excitao CA de pontes resisti-
vas foi um meio efetivo de se remover desvios de corrente contnua devido aos componentes
eletrnicos (MAXIM-DALLAS, 2004). Se o sinal fornecido ponte uma tenso alternada,
a tenso de sada da ponte tambm ser um sinal alternado. Este sinal pode ser acoplado ca-
pacitivamente, amplicado e ter seu nvel deslocado e a amplitude do sinal CA nal obtido
ser independente de qualquer tenso contnua de desvio devido aos componentes eletrnicos.
A amplitude dos sinais alternados podem ento ser medidos utilizando-se tcnicas especcas
para medio de tenses alternadas. No entanto, so extremamente sensveis a capacitncias
parasitas, o que torna esse mtodo inadequado quando os extensmetros estiverem instalados
longes do sistema condicionador de sinal, uma vez que as capacitncias provocadas pela ao
so signicativas. Outra questo que desfavorece seu uso a necessidade de manter o sinal de
excitao CA extremamente estvel em amplitude, sendo que a exatido das medidas est dire-
tamente relacionada com esta estabilidade. Para se conseguir isto, normalmente so necessrios
circuitos adicionais que tornam mais complexo o circuito condicionador. Estes circuitos so
responsveis por manter constante a amplitude do sinal mesmo em variaes signicativas de
temperatura (o que no trivial) e tambm com o passar do tempo. No entanto, alguns de seus
conceitos que a tornam atrativas, so aproveitados neste trabalho (de forma adaptada).
Para o presente projeto foi denida a utilizao de tenso constante para a excitao da
ponte. Lembrando que as deformaes nos extensmetros so detectadas como uma variao na
tenso de sada do circuito em ponte, percebe-se que a sensibilidade diretamente proporcional
tenso de excitao. Pode parecer primeira vista que se aplicarmos uma tenso grande o
suciente na ponte, poderia-se aumentar a sensibilidade das medidas. No entanto, a potncia
limite para estes elementos est em torno de 25 mW. Devido essa limitao so utilizadas
baixas tenses para alimentao da ponte (entre 5 V e 10 V ).
Para este projeto a alimentao da ponte de Wheatstone foi xada em 5V. Esse valor foi
escolhido por atender ao compromisso entre uma aceitvel relao sinal-rudo e uma corrente
mxima limitada, que no cause excesso de dissipao de potncia no extensmetro, o que
poderia causar o efeito indesejvel de aquec-lo.
Como conseqncia disto, o sinal de sada muito tnue e necessrio a utilizao ampli-
cadores para aumentar a amplitude deste, antes de convert-lo para o formato digital.
54
5.5.2 TENSO DE REFERNCIA
Uma questo com a ponte que a sada um sinal diferencial com um sinal em modo
comum igual metade da tenso de alimentao. Freqentemente o nvel deste sinal diferencial
deve ser deslocado e convertido para um sinal referenciado ao terra antes de ir para o conversor
AD.
A Equao 3.8 mostra que a sada da ponte diretamente proporcional tenso de alimenta-
o. Desta maneira, o circuito deve manter constante a tenso na mesma proporo da exatido
desejada, ou deve compensar as variaes na tenso de alimentao. A maneira mais simples
de compensar as alteraes na tenso de alimentao derivar a referncia do conversor AD
diretamente dos ramos de excitao da ponte. Na Figura 26 a tenso de referncia do conversor
AD vem do divisor de tenso colocado em paralelo com a ponte. Isto faz com que as variaes
na tenso de alimentao sejam rejeitadas porque a tenso de referncia do conversor AD vai se
alterar junto com a sensibilidade da ponte.
Figura 26: A tenso de referncia proporcional a Ve, o que elimina os erros devido a variaes
na alimentao (dessensibilizao da tenso da alimentao).
Uma abordagem alternativa poderia utilizar um canal adicional no conversor AD para medir
a tenso de excitao da ponte. Neste caso, as alteraes de tenso da ponte seriamcompensadas
por software.
A Equao 5.1 mostra a tenso de sada corrigida (V oc), como uma funo da tenso de
sada medida (V om), a tenso de excitao medida (V em), e a tenso de excitao quando foi
feita a calibrao (V eo).
V oc = V om
V eo
V em
(5.1)
55
5.6 CIRCUITO CONDICIONADOR DE SINAL
Na prtica, a medida de deformaes raramente envolvem quantidades maiores do que al-
guns mili-strains (1 10
3
). Por exemplo, suponha um corpo de prova submetido a um esforo
que gera uma deformao de 500 . Utilizando-se um extensmetro de fator de sensibilidade
igual a 2 vai exibir uma alterao na resistncia eltrica de apenas 2 500 10
6
= 1 10
3
=
0,1%. Para um extensmetro de 120 , isto signica uma alterao de apenas 0,12 .
Assim, o sistema condicionador de sinal deve ser capaz de medir variaes muito pequenas
nas resistncias. Desta forma, a seleo adequada e uso da ponte, condicionamento do sinal,
ao e componentes da aquisio de dados devem ser considerados para medidas conveis.
Vrios requisitos de condicionamento de sinais devem ser considerados, conforme descrito a
seguir.
5.6.1 AMPLIFICAO
Os extensmetros eltricos fornecem tipicamente baixos nveis de sinais, da ordem de mi-
crovolts. Desta forma, importante que o sinal seja primeiramente amplicado, antes de ser
digitalizado.
O circuito mostrado na Figura 27, funciona como um amplicador de instrumentao.
Figura 27: Amplicador de Instrumentao utilizando 3 amplicadores operacionais
Analidade desta congurao obter uma alta impedncia de entrada (idealmente innita)
e uma boa taxa de rejeio em modo comum (Commom Mode Rejection Ratio - CMRR). Deve-
se salientar ainda que a melhor taxa de rejeio obtida quando o valor de R2 for igual ao de
R3 (FRADEN, 2004).
Para amplicar o sinal proveniente da ponte foi utilizado um amplicador operacional de
baixo custo (LM324) na congurao de amplicador de instrumentao. Esta congurao
formada pelos amplicadores operacionais IC4A a IC4C e o ganho desta primeira etapa
56
controlado pelo resistor R1.
Observar que o amplicador operacional da etapa de sada funciona como um subtrator
utilizando o amplicador operacional IC4D, ou seja, faz a diferena entre os sinais amplicados
na etapa anterior. Circuitos subtratores permitem que se obtenha na sada uma tenso igual
diferena entre os sinais aplicados, multiplicada por um ganho (SEDRA e SMITH, 2004). A
sada de IC4D conectada diretamente porta analgica do microcontrolador.
De acordo com Webster (1999), se R
2
=R
3
; R
4
=R
5
e R
6
=R
7
, o ganho de tenso do ampli-
cador pode ser calculado por :
A
v
=

2
R
2
R
1
+ 1

R
6
R
5

(5.2)
onde A
v
o ganho de tenso do estgio.
Reportando se Figura 28 e considerando a Equao 5.2, tem-se que o ganho do estgio de
amplicao do circuito desenvolvido dado por:
A
v
=

2
100k
1k
+ 1

100k
100k

= 201
Este valor foi escolhido devido sensibilidade tpica das clulas de carga que de 2 mV/V .
Como o circuito alimentado por 5 Volts, isto signica que o valor mximo de variao do sinal
coletado na ponte ser de 10 mV . Quando isso ocorrer, o valor de fundo de escala ser de 2,01
Volts. Como o valor da tenso de referncia xada em 2,1 V , teremos como limite superior
de 4,12 Volts e inferior de 0,99 Volts - valores satisfatrios para esta aplicao.
5.7 LIGAO DOS EXTENSMETROS
Para a descrio das ligaes dos extensmetros nas diversas conguraes ser utilizado
como referncia o diagrama eltrico (parcial) mostrado na Figura 28. Observa-se que para
que seja possvel as trs conguraes referidas anteriormente (, e ponte completa) sero
utilizados 3 resistores internos para completar os outros "braos" da ponte de Wheatstone.
Para a utilizao da congurao em de ponte deve ser fornecido um resistor adicional
para simular o outro extensmetro adjacente. Para tanto utilizado um resistor de 121 (R18)
em paralelo com um outro de 12 k (resistncia equivalente de 119,79 ). O valor timo destes
foi determinado experimentalmente. Um dos lados dessa associao de resistores ligada ao
terra e o outro no pino 2 do conector de parafusos (veja as Figuras 29 e 28).
57
F
i
g
u
r
a
2
8
:
D
i
a
g
r
a
m
a
e
l

t
r
i
c
o
(
p
a
r
c
i
a
l
)
d
o
c
i
r
c
u
i
t
o
c
o
n
d
i
c
i
o
n
a
d
o
r
d
e
s
i
n
a
l
58
Figura 29: Vista frontal esquemtica do conector de parafusos utilizado para as conexes dos
extensmetros
Figura 30: Vista da implementao do conector de parafusos utilizado para as conexes dos
extensmetros
Para fornecer os outros dois braos da ponte so utilizados os resistores (R10 e R12) de
1k (lme metlico de 0,1% tolerncia). Estes devem ser utilizados para completar a ponte
quando for utilizado somente um extensmetro ( de ponte) ou dois extensmetros ( ponte).
Para a descrio das ligaes fsicas dos extensmetros nas diversas conguraes ser
utilizado como referncia o diagrama mostrado na Figura 29. Na Figura 30 pode-se observar o
mesmo conector na placa j implementada.
5.7.1 LIGAO EM 1/4 DE PONTE
Esta congurao pode ser observada na Figura 31.
59
Figura 31: Diagrama de ligao de 1/4 de ponte.
5.7.2 LIGAO EM 1/2 DE PONTE
Esta congurao pode ser observada na Figura 32.
Figura 32: Diagrama para ligao dos extensmetros em 1/2 ponte
5.7.3 LIGAO EM PONTE COMPLETA
Esta congurao pode ser observada na Figura 33.
60
Figura 33: Diagrama para ligao dos extensmetros em ponte completa
Exemplo de clula de carga
Um exemplo comum de uma ponte resistiva uma clula de carga com quatro elementos
ativos. Quatro extensmetros eltricos so organizados emuma congurao emponte e xados
a uma estrutura rgida que se deforma levemente quando uma fora aplicada. A sensibilidade
para uma clula de carga tpica de 2mV/V . A partir da equao 3.9 podemos ver que isto
equivalente a uma alterao da resistncia em toda faixa de atuao de apenas 0,2% (ou 2000
ppm). Demonstrao:
V o
V e
=
R
R
R
R
= 2mV/V = 0, 002 = 0, 2% = 2000 ppm.
Se a sada da clula deve ser medida com uma resoluo de 12 bits, ento alteraes na
resistncia de 0,5 ppm devem ser precisamente medidas (210
3
/2
12
= 4, 8810
7

= 0, 5ppm).
Figura 34: Medio da tenso de sada de uma ponte ligada diretamente a um conversor AD
(sem prvia amplicao do sinal).
Medir estas alteraes utilizando uma ponte (alimentada por 5V) ligada diretamente a um
61
conversor AD (conforme mostrado na Figura 34), sem amplicao prvia do sinal, requer que
este seja de pelo menos 21 bits de resoluo. Demonstrao:
Se a tenso da ponte de 5 V e a sensibilidade da clula de carga de 2mV/V , ento a
faixa de variao da tenso de sada de 10mV (5V 2mV/V ).
Se a resoluo desejada de 12 bits, ento a tenso mnima a ser detectada de:
10mV
2
12
= 2, 44V
Ento, ao se utilizar umconversor ADalimentado com5 Volts este dever ter esta resoluo.
Assim,
5V
x
= 2, 44V
onde x a faixa de valores do conversor. Ento esta deve ser:
x
5
2, 44 10
6
x 2.048.000
O prximo passo determinar a resoluo em termos de bits. Lembrando que x uma
potncia de um nmero binrio. Ento
2
b
2.048.000
onde b o nmero de bits.
log(2
b
) log(2.048.000)
b
log(2.048.000)
log(2)
b 20, 96
Esta situao ilustrada na Figura 35.
62
Figura 35: Obteno de uma resoluo de 12 bits a partir de um conversor AD de 21 bits.
Alm da necessidade de um conversor AD de alta resoluo, a tenso de referncia do
conversor AD precisa ser ultra estvel. Ela no pode-se alterar mais do que 0,5 ppm em toda
faixa da temperatura de operao.
Os resistores da clula de carga variam no apenas com a tenso mecnica aplicada es-
trutura. A expanso trmica da estrutura em que ela est acoplada e o coeciente de variao
trmica do extensmetro vo causar alteraes na resistncias. Estas alteraes indesejveis
podem ser to grandes, at mesmo maiores, do que as alteraes provocadas pelo esforo me-
cnico. No entanto, se as alteraes indesejadas ocorrerem igualmente em todos os ramos da
ponte de resistores seus efeitos podem ser desprezados porque as alteraes cancelam-se mutu-
amente. O valor de R pode dobrar que a tenso de sada permanecer a mesma, desde que R
tambm tenha dobrado seu valor.
O exemplo acima mostra como uma ponte pode tratar facilmente a medida de pequenas
variaes em resistncia. As sees seguintes cobrem os principais questes quando utilizando
circuitos em ponte.
5.8 CALIBRAO
Para a exatido dos valores necessria a calibrao dos ns da rede. Alguns destes proce-
dimentos so feitos de forma manual enquanto outros so feitos automaticamente via software.
A seguir so detalhados os principais procedimentos para calibrao.
5.8.1 AJUSTE DE ZERO DO SISTEMA
Dependendo do brao da ponte que foi desbalanceado, vai existir uma tenso resultante
que pode assumir valores positivos ou negativos. Por sua vez, o microcontrolador no atua
com sinais negativos, razo pela qual se faz necessria a instalao de um trimpot R15, que
63
promove na sada do IC4D um deslocamento no nvel de tenso do sinal (offset), de modo
a atender os requisitos de tenso do microcontrolador. Este trimpot ajustado para se obter
uma tenso de 2,100 V na sada do amplicador IC4D. Para se realizar este procedimento,
deve ser comutada uma micro-chave que vai habilitar a execuo de uma rotina de software,
cuja nalidade comandar a chave analgica para curto-circuitar a entrada do amplicador de
instrumentao e armazenar em memria o valor ajustado e tambm a temperatura em que
o sistema foi calibrado. Estes valores sero utilizados posteriormente para realizar a auto-
calibrao do sistema, removendo derivas devido temperatura ou com o passar do tempo.
5.8.2 AJUSTE DE ZERO DA PONTE
Os sistema deve ter uma posio de repouso (posio de referncia). Esta ser tomada
quando os extensmetros estiverem em condio normal (sem aplicao de carga). Neste caso
um potencimetro dever ser ajustado at que no haja sinal de sada da ponte, ou seja, dever
ser medido 2,100 Volts nesta posio. Para este ajuste, foi inserido no circuito o trimpot (R16)
que funciona adicionando ou removendo resistncia em um dos braos da ponte at obter a
condio balanceada.
Na verdade, o valor nulo citado no pargrafo anterior relativo ao valor de referncia de
2,100 Volts, ou seja, deve-se ajustar o trimpot at que se obtenha este valor. A Figura 36 mostra
a posio do trimpot R16.
Figura 36: Localizao do trimpot de ajuste de zero da ponte
64
5.8.3 CANCELAMENTODEDESVIOS PROVOCADOS PELAINSTRU-
MENTAO
De acordo com Kester (2003), alguma fonte de erro de offset inevitvel em um sistema.
Desvios (offset) provindos da ponte ou do condicionador de sinais desvia o sinal desejado do
seu nvel de referncia. Compensar estas variaes fcil durante a calibrao j que o sinal
permanece dentro da faixa de trabalho do sistema. Se o sinal diferencial da ponte est sendo
convertido para um outro sinal referenciado ao terra, o desvio da ponte e amplicadores pode
facilmente criar um sinal que teoricamente abaixo do terra. Quando isto ocorre ele cria um
ponto morto. A sada do conversor AD vai permanecer marcando zero at que a sada da ponte
se torne positiva o suciente para superar todos os desvios negativos do sistema. Para evitar
isto, um intencional desvio positivo deve ser previsto no circuito. Este desvio assegura que a
sada vai estar na sua regio de trabalho, mesmo se a ponte e os componentes associados tiverem
efeitos de desvios negativos. Um problema que surge com essa soluo a reduo da faixa
dinmica de trabalho. O ajuste dos desvios pode ser feito atravs de potencimetros mecnicos,
potencimetros digitais ou ainda atravs de software.
5.8.4 EFEITO TERMOELTRICO
O efeito termoeltrico pasasita vai existir quando diferentes tipos de materiais forem co-
nectados, como por exemplo, os pinos dos circuitos integrados e as trilhas de cobre da placa
de circuito impresso, e cujas temperaturas de ambas as junes estejam em valores diferentes.
O valor da tenso gerada pode ser de dezenas de microvolts para uma variao de apenas 1
C. O diagrama da Figura 37 mostra uma juno tpica com efeito termopar formado entre as
trilhas de cobre da placa de circuito impresso e os pinos de um circuito integrado amplicador.
A tenso gerada por efeito termoeltrico ca em torno de 35 V/C. Considerando os baixos
valores de tenso tratados pelos circuitos amplicadores, pode-se vericar que este efeito no
desprezvel.
5.8.4.1 Desvio por deriva (offset Drift) do amplicador
Desvio por deriva (offset drift) e rudos so os maiores problemas associados aos circuitos
utilizando pontes. Na clula de carga do exemplo acima, a sada em plena escala da ponte
2 mV/V e a resoluo desejada de 12 bits. Se a clula de carga alimentada com uma
fonte de 5 V , ento o valor de nal de escala ser de 10 mV e a exatido da medida deve
ser de 2,5 V ou melhor. Dizendo de outra forma, um desvio de apenas 2,5 V ir criar um
65
Figura 37: Efeito termoeltrico formado pelas trilhas de cobre e os pinos do circuito integrado,
quando as junes esto submetidas a diferentes temperaturas.
erro de 1 bit. Isto um grande desao para os amplicadores convencionais de alta qualidade.
O Amplicador OP07, por exemplo, tem um desvio mximo por temperatura de 1,3 V/C
e uma deriva mxima devido ao tempo de funcionamento de 1,5 V por ms. Para manter
estes valores extremamente baixos de desvios por temperatura ou por tempo de funcionamento,
algum tipo de ajuste necessrio. Isto pode ser feito via hardware, software, ou atravs de uma
combinao de ambos.
A tenso de offset e a corrente de polarizao so outra fonte de erro. Qualquer desbalan-
ceamento na corrente de polarizao vai produzir erro de offset. Somando-se a isso, a tenso
de offset e corrente de polarizao so uma funo da temperatura. Idealmente para a tarefa
de condicionamento de sinal de ponte de Wheatstone, devem ser utilizados amplicadores de
instrumentao de alto desempenho, baixo offset, baixa deriva trmica, baixa corrente de pola-
rizao e baixo rudo.
5.8.5 EXCITAO POR TENSO ALTERNADA
A excitao de uma ponte por tenso alternada pode remover ecazmente a tenso de offset
do circuito em srie com a ponte at o conversor analgico/digital. O conceito simples. A
tenso de sada da ponte medida em duas condies diferentes, conforme ilustrado na Figura
38. Na primeira medida obtm-se o valor V
A
, onde este valor da sada da ponte somado com
o erro de offset da rede E
OS
. A polaridade da tenso de excitao da ponte revertida e uma
segunda medida V
B
tomada. Subtraindo V
B
de V
A
leva a 2V
O
, e o termo E
OS
que representa
o erro de offset cancelado, conforme mostrado na Figura 38.
No entanto, a inverso da polaridade da tenso de excitao da ponte requer componentes
adicionais especialmente desenvolvidos para essa nalidade, que devem possuir baixas perdas
66
Figura 38: Princpio de funcionamento das pontes comalimentao CAvisando o cancelamento
do erro de offset.
de comutao e baixo rudo. O autor tentou esta soluo inicialmente e no conseguiu acesso a
estes componentes no mercado nacional.
5.8.6 SOLUO ADOTADA PARA A CORREO DO OFFSET
A soluo adotada foi a proposta por Kester (2003), que apresenta uma forma de corre-
o dos desvios utilizando uma chave de dois plos, dois contatos (DPDT) entre a ponte e o
conversor, conforme pode ser visto na Figura 39.
Figura 39: Circuito de correo de desvios por combinao de software e hardware.
Utilizando-se umcircuito multiplexador pode-se implementar umsistema de auto-calibrao
utilizando uma combinao de hardware e software.
Utilizando-se o mesmo conceito das pontes CA discutidas anteriormente, tem-se o seguinte
princpio de funcionamento: uma leitura do conversor AD feita quando a chave est na posio
(x = xo e y = y0) e subtrada de outra leitura feita quando est na posio (x = x1 e y = y1).
O resultado 2 V o Ganho.
67
Antes dos sinais irem para o amplicador, foi inserido um circuito multiplexador, cuja
nalidade funcionar como uma chave analgica.
Na rotina de software so feitas duas medies. A primeira capturando os sinais normais
(reporte-se Figura 28 para a descrio que segue). Isto feito colocando-se ambos os sinais
de controle A e B em nvel lgico baixo. Nesta condio, as sadas x e y recebero o sinal das
entradas xo e yo, respectivamente, que correspondem aos sinais normais.
Uma segunda medio feita, agora com A em nvel lgico alto e B em nvel lgico baixo,
as sadas x e y recebero os sinais yo e xo, respectivamente, que correspondem aos sinais
invertidos.
Observe que a tenso de entrada (v
in
) vai aparecer a cada medida em uma das entradas do
amplicador de instrumentao com a polaridade trocada. Assim na primeira leitura teremos:
V
1
= v
in
+ v
os
, enquanto que na segunda leitura teremos V
2
= v
in
+ v
os
. Se estas duas
amostras so subtradas, obtm se:
V o = V
1
V
2
V o = (v
in
+ v
os
) (v
in
+ v
os
) = 2v
in
(5.3)
Conforme pode ser observado na Equao 5.3, o valor obtido com esse procedimento
igual a 2v
in
. Se dividirmos este valor por dois, obtm-se o sinal original. O resultado um valor
livre da tenso de offset provocada por efeitos termoeltricos ou de outra natureza. Assim, os
problemas com desvios so simplesmente eliminados. Esta tcnica tambm melhora a relao
sinal rudo por um fator de

2. A gura 39 ilustra o princpio de funcionamento deste estgio.


Existe uma rotina de software que contnua e periodicamente amostra a entrada e se auto-
ajusta para manter uma diferena mnima entre os pinos de entrada. Como este ajuste cont-
nuo, desvios com o tempo ou com a temperatura torna-se uma funo do circuito de correo.
5.8.7 SOLUO ADOTADA PARA CORREO DE DRIFTS
Na Figura 28, o multiplexador IC5 funciona como uma chave analgica e utilizado para
desconectar a sada da ponte do amplicador ao mesmo tempo que curto-circuita as entradas
deste. Deixando o outro lado da ponte conectado entrada do amplicador, a tenso de entrada
em modo comum mantida, eliminado desta maneira qualquer erro que possa ser causado em
funo do erro por tenso em modo comum. Curto-circuitando-se as entradas do amplicador
permite que uma medida do desvio de tenso (offset) seja feita. Esta leitura ento subtrada
68
das leituras normais subseqentes para remover o desvio. No entanto, ele no remove o desvio
da ponte em si, mas apenas o dos componentes eletrnicos entre a ponte e o conversor AD.
A sada da ponte medida em um determinado estado, sem carga, por exemplo. Ento uma
carga aplicada clula e outra medida feita. A diferena entre estas duas medidas devido
apenas ao estmulo aplicado. Tomando-se a diferena entre as leituras remove-se no somente
os desvios internos devido aos componentes, mas tambm o desvio da prpria ponte.
5.8.8 VALOR DE REFERNCIA DE CALIBRAO
Valor de referncia de calibrao (shunt) uma maneira prtica de se certicar que o sistema
est operando corretamente. Quando a resistncia de calibrao habilitada, uma resistncia
adicionada ou removida de um dos braos da ponte. Isto tem o efeito equivalente a uma
deexo forada do extensmetro, j que ir alterar a sua resistncia. Conhecendo-se o valor da
resistncia introduzida, pode-se calcular a tenso de sada esperada. Atravs da leitura, pode-se
comparar o valor esperado e o real e vericar se esto em conformidade.
Embora os valores de calibrao possam ser armazenados em memria permanente do tipo
EEPROM, deve-se considerar que estes so muito sensveis as condies ambientais do mo-
mento da calibrao, e portanto, o reaproveitamento desse valores encontra limitaes de prati-
cidade.
5.8.9 FILTRAGEM
5.8.9.1 Filtro analgico
Com a nalidade de ltrar as freqncias altas, foram adicionados capacitores de 100 nF
em paralelo com os resistores de realimentao dos amplicadores operacionais IC4A e IC4B,
cuja a freqncia de corte dada por:
f
c
=
1
2RC
Com os valores dos componentes utilizados, esta de 15,9 Hertz.
5.8.9.2 Filtro digital
De acordo com Smith (2007) o ltro de mdia mvel o tipo mais comum implementado
em processadores digitais de sinais. Uma das principais razes sua facilidade de implemen-
tao e de uso. No entanto, apesar de sua simplicidade este tipo de ltro o mais indicado
69
para remoo de rudos aleatrios, devendo ser a tcnica de primeira escolha para ltragem no
domnio do tempo. Em termos de equao, pode ser escrito como:
y[i] =
1
N
N1

k=0
x(i k)
onde y[] o sinal de sada, x[] o sinal de entrada e N o nmero de pontos discretos da
janela.
Quanto maior a janela, maior ser a relao sinal/rudo, j que pode-se demonstrar que este
melhorado por um fator equivalente a

N. Por exemplo, se forem utilizados 25 pontos para


a janela do ltro, o rudo vai ser reduzido por um fator de 5.
A Figura 40 ilustra a resposta do ltro de mdia mvel com janela de 11 pontos, para o
processamento de um sinal de entrada contaminado com rudo aleatrio.
Figura 40: Resposta de sada de um ltro digital de mdia mvel contendo 11 pontos em reposta
a um pulso retangular de entrada contaminado com rudo aleatrio (SMITH, 2007).
Para o presente projeto, foi implementada uma rotina de ltro de mdia mvel conforme
pode ser visto na listagem que se segue. Para tanto foi utilizado um buffer circular de 32
posies. Embora tenham sido reservadas 32 posies, o tamanho da janela parametrizvel.
Por questes de velocidade de processamento, recomendvel que o tamanho da janela seja
uma potncia de dois, ou seja, 2, 4, 8, 16 ou 32. Isto porque os compiladores utilizam, de forma
muito eciente, a funo de deslocamento de bits para a direita (shift bit right) para fazer as
divises.
5.8.9.3 Listagem da rotina de mdia mvel
if (ucWindow_Size != gusRegHolding[NUMERO_PONTOS_JANELA_MEDIA_MOVEL])
{
ucWindow_Size = (UCHAR) gusRegHolding[NUMERO_PONTOS_JANELA_MEDIA_MOVEL];
ACC = num_amostras = pos_amostra_atual = 0;
70
}
if ( (ucWindow_Size < 1) || (ucWindow_Size > 32) )
{
gusRegHolding[NUMERO_PONTOS_JANELA_MEDIA_MOVEL] = ucWindow_Size = 8;
}
/
************************************************
/
if (LENDO_RECALIBRACAO)
{
acc_cal += ustemp;
LENDO_RECALIBRACAO=FALSE;
LENDO_TEMPERATURA=TRUE;
FIRST_READING=TRUE;
Le_ADC();
}
else if (LENDO_TEMPERATURA) // trata o canal temperature
{
acc_temp += ustemp;
LENDO_TEMPERATURA=FALSE;
}
else // trata o canal strain
{
if ( ucWindow_Size == 1) // no est utilizando filtro mdia mvel
{
gusRegInputRegister[REG_INPUT_STRAIN_VALUE] = ustemp;
}
else // est utilizando filtro mdia mvel
{
if (num_amostras < ucWindow_Size)
{
num_amostras++;
}
else
{
ACC -= gusRegInputRegister[pos_amostra_atual+OFFSET_SAMPLE];
// elimina amostra mais antiga
}
gusRegInputRegister[pos_amostra_atual+OFFSET_SAMPLE] = ustemp ;
// duas leituras, uma s amostra
ACC += ustemp; // soma a amostra atual
gusRegInputRegister[REG_INPUT_STRAIN_VALUE] = ACC/num_amostras;
if (SISTEMA_CALIBRADO && gusRegHolding[RECALIBRATION_ENABLED])
{
gusRegInputRegister[REG_INPUT_STRAIN_VALUE] += diferenca_offset;
}
if (++pos_amostra_atual == ucWindow_Size)
pos_amostra_atual = 0;
}
if (gusRegHolding[RECALIBRATION_ENABLED])
{
if (RECALIBRANDO)
{
LENDO_RECALIBRACAO=TRUE; // AGORA VAI LER A recalibrao
FIRST_READING=TRUE;
Le_ADC();
}
cont_aux_temp++;
if (cont_aux_temp == 250)
{
cont_aux_temp = 0;
acc_cal=0;
acc_temp=0;
RECALIBRANDO=TRUE;
}
else if (cont_aux_temp == 8) // 8 AMOSTRAS
{
if (SISTEMA_CALIBRADO)
{
offset_atual = (acc_cal >> 3);
diferenca_offset = (signed int16)
(gusRegHolding[VALOR_REFERENCIA_CALIBRACAO] - offset_atual);
gusRegInputRegister[REG_OFFSET_DIF] = diferenca_offset;
71
}
temperatura_atual= (acc_temp >> 3);
gusRegInputRegister[REG_INPUT_TEMPERATURE_VALUE] = temperatura_atual ;
RECALIBRANDO=FALSE;
}
}
else
cont_aux_temp = 0;
}
5.9 MEDIO DA TEMPERATURA
Como mostrado no Captulo FUNDAMENTAO TERICA, os extensmetros so bas-
tante sensveis a variaes de temperatura, especialmente quando ligados na congurao de
de ponte. Visando compensar estes efeitos (atravs de software), foi instalado um sensor de
temperatura ambiente na placa de circuito impresso do terminal de aquisio. A temperatura
ambiente comparada com a de calibrao e, em caso de desvio, um fator aplicado visando
compensar o efeito dessa variao.
Tabela 2: Desempenho de sensores de temperatura
Tipo do Sensor Linearidade Faixa Sensibilidade
Termistor pobre -80 a +150C tima
RTD boa -260 a +850C pobre
LM35 tima 0 a +100C boa
Fonte: (LEONG, 2001)
Para se medir temperatura, vrias opes podem ser consideradas. Um dos elementos mais
comuns utilizados so os termistores tipo NTC (negative temperature coefcient). Outro com-
ponente bastante utilizado o elemento RTD (Resistance Temperature Detector) que na ver-
dade um termistor PTC (Positive Temperature Coefcient). Por exemplo, o PT100 um termis-
tor de resistncia igual a 100 na temperatura de 0 C. Uma grande desvantagem da utilizao
de termistores a necessidade de circuitos adicionais, tais como fornecimento de uma fonte de
corrente constante insensveis a variaes de temperatura e amplicadores de instrumentao
de baixo rudo e tambm baixa deriva trmica para condicionamento do sinal. Isto logicamente
torna o sistema mais complexo e, portanto, mais dispendioso.
Outra opo a utilizao de circuitos integrados especialmente projetados para medio
de temperatura, como por exemplo, os tipos LM 335 e LM35 fabricados pela National Semi-
conductor e o tipo AD592 da Analog Devices.
A seleo foi feita baseada nos seguintes parmetros:
Linearidade
72
Faixa de operao
Sensibilidade
Facilidade de Implementao
Custo
Facilidade de Aquisio
Um comparativo de desempenho de algumas caractersticas destes pode ser visto na Tabela 2.
Por razes de custo, simplicidade de implementao, tima linearidade e faixa de operao
compatvel, optou-se pelo sensor LM35, o qual ser descrito brevemente a seguir.
5.9.1 SENSOR DE TEMPERATURA
O sensor de temperatura LM35 um dispositivo de 3 terminais que fornece uma tenso de
sada diretamente proporcional a temperatura. A tenso de sada de 10 mV/C, referenciado a
partir de 0 C. Por exemplo, se a temperatura for de 30 C a sada ser de 300 mV. A exatido do
dispositivo de 0,5 C para a faixa de 0 a 70 C. O LM35 pode ser alimentado com uma tenso
que pode variar entre 5 Volts e 30 Volts. Este componente pode ser encontrado em diversos
encapsulamentos, incluindo o tipo plstico TO-92 o qual foi utilizado neste projeto. A pinagem
do LM35 vista na gura 41.
Figura 41: Encapsulamento do sensor de temperatura LM35 (TO-92)
O microcontrolador PIC16F876 possui um conversor AD de 10 bits conectado a um mul-
tiplexador analgico interno que permite que cada pino da porta A seja utilizada como entrada
analgica (desde que congurado para tal). Para a faixa de valores de 0 a 5 Volts, o conversor de
10 bits fornece uma resoluo de 5 mV (5V/1023) que compatvel com a preciso do LM35
(0,5 C = 5 mV).
A funo para leitura da temperatura mostrado na listagem a seguir:
73
double getTemperature(int adcValue)
{
//10 bit adc
return (adcValue/1023)
*
5; // clculo da Temperatura
}
5.9.2 INTERFACE DE CONTROLE DE CALIBRAO E DE ENDE-
REAMENTO
5.9.2.1 Endereamento
O circuito do terminal possui tambm chaves para a seleo de endereo do mdulo para
identicao do mesmo pela unidade mestre. O endereamento feito atravs de SW1, que
um conjunto de microchaves (dip-switch) de 8 posies, permitindo enderear teoricamente
at 256 endereos diferentes. No caso especco do MODBUS so utilizados, no mximo, 247
destes endereos. A Figura 42 ilustra como foi implementado eletricamente, enquanto que a
Figura 43 mostra a sua localizao fsica na placa de circuito impresso.
Figura 42: Esquema eltrico da parte referente programao do endereo do terminal
74
Para interfacear a chave DIP com o microcontrolador foi utilizado um conversor parale-
lo/serial tipo 74HC165 (IC3). Sua utilizao se fez necessria devido a limitaes no nmero
de pinos do microcontrolador. A aquisio do contedo das chaves feita ao se inicializar o
sistema, via protocolo SPI. Este foi utilizado porque tambm pode ler e escrever em outros
componentes do sistema, tais como o conversor serial para paralelo 74HC195 (IC6) e tambm
para se comunicar com um conversor analgico/digital externo de maior resoluo, ou seja, o
sistema j est preparado para futuros aperfeioamentos, sendo que a incluso de um conversor
A/D de maior resoluo, externo ao microcontrolador, naturalmente, a primeira coisa a ser
feita em caso de continuidade do projeto. A implementao foi feita atravs do seguinte trecho
de cdigo:
var_input = spi_le_byte(); // l DIP SWITCH
gucThisStationAddress = (var_input & 31);
if (gucThisStationAddress == 0)
gucThisStationAddress = 31; //comea com 31
Como pode ser observado, nesta implementao o nmero de ns foi limitado em 31 uni-
dades. Isto devido ao circuito integrado utilizado para a comunicao RS485 que permite no
mximo 32 unidades. Caso seja necessrio implementar uma rede maior, deve-se trocar o CI de
comunicao. Existem hoje no mercado circuitos integrados que podem se comunicar com at
256 unidades simultaneamente.
Figura 43: Localizao da microchaves de endereamento na Placa de Circuito Impresso
Para o sistema implementado, a velocidade selecionada foi de 9600 BPS, 8 BITS e SEM
PARIDADE (Valor padro do Modbus-RTU).
75
Existe tambm um pino no transmissor que utilizado para a sua habilitao, o qual
controlado pelo microcontrolador, no momento emque se faz necessria a transmisso de dados.
Dessa forma, a transmisso no acontece de forma permanente, mas somente no momento
em que for acionada pelo microcontrolador, reduzindo consumo de energia a aumentando a
conabilidade. O trecho de cdigo a seguir ilustra como feito esse controle.
#def i ne HABILITA_TX di s abl e_i nt er r upt s ( INT_RDA) ; out put _hi gh ( PIN_B0 ) ;
#def i ne HABILITA_RX out put _l ow ( PIN_B0 ) ; enabl e_i nt er r upt s ( INT_RDA) ;
Observar que a macro criada possibilita o envio de HABILITA_TX quando se desejar trans-
mitir e HABILITA_RX quando se desejar voltar ao estado padro, que corresponde ao de car
monitorando o meio de transmisso.
5.10 PROTOCOLO MODBUS
Esta seo tem a nalidade de descrever:
1. O protocolo Modbus Padro.
2. Como um dispositivo solicita o acesso a outro dispositivo.
3. Como este responder.
4. Como os erros sero detectados e informados.
5. Os comandos necessrios a este projeto.
Maiores informaes podem ser obtidas em (MODBUS-IDA, 2007a), (MODBUS-IDA, 2007b)
e ( MODICON, 2007).
5.10.1 DESCRIO
O protocolo Modbus foi desenvolvido em 1979 pela Modicon Industrial Automation Sys-
tems, hoje Schneider Electric, para comunicar um dispositivo mestre com outros dispositivos
escravos (SEIXAS FILHO, 2006).
um protocolo de especicao aberta desde o princpio. Este talvez o protocolo de
mais larga utilizao em automao industrial, pela sua simplicidade e facilidade de implemen-
tao. Estas caractersticas zeram-no se tornar um padro amplamente utilizado, adotado por
vrios fornecedores, sendo aplicado aos mais diversos nveis de aplicaes, inclusive sistemas
de superviso.
76
Foi criada uma associao, Modbus-IDA, com ns no lucrativos agrupando usurios e for-
necedores de dispositivos de automao que visam a adoo do pacote de protocolos Modbus e
a evoluo da arquitetura de endereamento para sistemas de automao distribudos em vrios
segmentos de mercado.
Modbus-IDA fornece a infra estrutura para obter e compartilhar informao sobre os pro-
tocolos, suas aplicaes e a certicao de dispositivos visando simplicar a implementao
pelos usurios.
5.10.2 Modelo de Comunicao
O protocolo Modbus baseado em um modelo de comunicao mestre-escravo, onde um
nico dispositivo, o mestre, pode iniciar transaes. O demais dispositivos da rede (escravos)
respondem, suprindo os dados requisitados pelo mestre ou executando uma ao por ele co-
mandada. Os papis de mestre e escravo so xos, quando se utiliza comunicao serial, mas
em outros tipos de rede, um dispositivo pode assumir ambos os papis, embora no simultane-
amente.
5.10.3 Transaes entre dispositivos
As mensagens de consulta e de resposta tambm so chamadas de bilhetes. Na mensagem
de consulta, o cdigo de funo informa ao dispositivo escravo com o respectivo endereo, qual
a ao a ser executada. Os bytes de dados contm informaes como qual o registrador inicial
e a quantidade de registros a serem lidos. O campo de vericao de erro permite ao escravo
validar os dados recebidos. A Figura 44 ilustra uma transao tpica.
Figura 44: Esquema de Troca de Mensagens entre Mestre e Escravo no protocolo MODBUS
Na mensagem de resposta, o cdigo de funo repetido de volta para o mestre. Os bytes
de dados contm os dados coletados pelo escravo ou um cdigo informando um possvel erro
ocorrido. Se um erro ocorre, o cdigo de funo modicado para indicar que a resposta de
erro e os bytes de dados contm um cdigo que descrever o erro. A vericao de erro permite
77
ao mestre validar os dados recebidos.
Durante a comunicao em uma rede Modbus, o protocolo determina como o dispositivo
conhecer seu endereo, como reconhecer uma mensagem endereada para ele, como deter-
minar o tipo de ao a ser tomada e como extrair o dado ou outra informao qualquer contida
na mensagem. Se uma resposta necessria, como o dispositivo construir uma mensagem e a
enviar.
O mestre pode enderear mensagens para um escravo em particular ou enviar mensagens
para todos (broadcast). Os escravos retornam uma mensagem somente para as consultas ende-
readas especicamente a ele. As mensagens broadcast no geram respostas.
5.10.4 Modbus e o Modelo OSI
O protocolo de comunicao de uma rede um conjunto de regras e convenes de lingua-
gem que permite a conversao e troca de informao entre sistemas (TANEMBAUM, 1997).
Os protocolos, atualmente adotados em redes industriais, so baseados em documento desen-
volvido pela ISO (International Standards Organization). Esse documento, denominado OSI
(Open System Interconnection) um modelo de referncia para o desenvolvimento de protoco-
los de comunicao. A estrutura do modelo de redes OSI baseada em sete camadas. Softwares
desenvolvidos combase nesse modelo so ditos abertos, pois qualquer fabricante de equipamen-
tos pode us-los para desenvolvimento de produtos para serem empregados em rede.
O protocolo MODBUS pode ser enquadrado na camada 7 (Camada de Aplicao) do mo-
delo OSI. A Figura 45 mostra a localizao do protocolo Modbus em relao as camadas do
modelo OSI.
Figura 45: Localizao do protocolo MODBUS em correspondncia ao modelo OSI/ISO.
Algumas caractersticas do protocolo Modbus so xas, como o formato da mensagem,
funes disponveis e tratamento de erros de comunicao. Outras caractersticas so selecio-
78
nveis como o meio de transmisso, velocidade, timeout, bits de parada e paridade e o modo de
transmisso (RTU os ASCII). A seleo do modo de transmisso dene como os dados sero
codicados. Dene tambm uma estrutura de mensagens de comunicao usadas para transferir
dados discretos e analgicos entre dispositivos microprocessados com deteco e informao
sobre possveis erros ocorridos durante a transmisso.
5.10.4.1 Topologia Fsica
Referindo-se, ainda, Figura 45, pode-se observar que a camada 1 contm o meio fsico de
transmisso (cabos condutores, bra ptica ou atmosfera) e a interface de rede, que converte a
grandeza fsica em valor digital.
Observar que, para o caso do protocolo Modbus, sua camada fsica de transporte pode ser
as mais diversas, embora seja utilizada normalmente sobre conexes seriais padro RS-232/RS-
485. Tambm pode ser utilizado o TCP/IP sobre Ethernet, conhecido como MODBUS TCP/IP.
Por sua vez, as conexes seriais podem ser:
Ponto a Ponto com RS-232.
Barramento Mutiponto com RS-485.
5.10.4.2 Modos de Transmisso
Existem dois modos de transmisso:
1. ASCII (American Code for Information Interchange) e
2. RTU (Remote Terminal Unit).
Que so selecionados durante a congurao dos parmetros de comunicao. Nos protocolos
MODBUS Plus e TCP/IP as mensagens so colocadas em quadros (frames), no sendo neces-
sria a denio do modo de transmisso, usando sempre o modo RTU. O modo RTU tambm
chamado de Modbus-B ou Modbus Binrio e o modo preferencial sugerido pela norma.
5.10.4.3 Composio do bilhete MODBUS-ASCII
A composio de um bilhete MODBUS-ASCII mostrada na Figura 46.
79
Incio Endereo Funo Dados LRC Trmino
: 2 caracteres 2 caracteres N caracteres 2 Caracteres CR LF
Figura 46: Composio de um bilhete (mensagem) do protocolo MODBUS-ASCII
Cada byte da mensagem (bilhete) enviado como dois caracteres ASCII. Durante a trans-
misso, intervalos de at um segundo entre caracteres so permitidos, sem que a mensagem
seja truncada. Algumas implementaes fazem uso de tais intervalos de silncio como delimi-
tadores de m de mensagem, em substituio seqncia CR (Carriage Return) + LF (Line
Feed). Cada byte contm um caractere ASCII entre 0 e 9, A a F. Para a vericao de erros so
utilizados os bytes LRC (Longitudinal Redundancy Check)
Denio do incio e m da mensagem
ASCII: Inicia com o caractere : e termina com os caracteres CR seguido de LF .
10 bits por byte
1 start bit
7 bits de dados LSB enviado primeiro
1 bit de paridade (par/mpar)
1 stop bit 0 bit de paridade
2 stop bits
5.10.4.4 RTU
A mensagem deve ser transmitida de maneira contnua, j que pausas maiores que 3,5 ca-
racteres indicam o trmino da transmisso. Os bytes so transmitidos em dgitos hexadecimais.
Para a vericao de erros so utilizados os bytes do CRC (Cyclic Redundance Check)
Denio do incio e m da mensagem
Tempos de silncio de 3,5 caracteres.
11 bits por byte , sendo:
1 start bit
80
8 bits de dados LSb enviado primeiro
1 bit de paridade (par/mpar)
1 stop bit 0 bit de paridade
2 stop bits
Como a comunicao a ser utilizada neste trabalho em modo RTU, vamos nos concentrar
nesta forma de comunicao.
5.10.4.5 Composio do bilhete MODBUS-RTU
A composio de um bilhete MODBUS-RTU mostrada na Figura 47.
Incio Endereo Funo Dados CRC Trmino
Silncio > 3,5 caractere 8 bits 8 bits n 8 bits 16 bits Silncio > 3,5 caractere
Figura 47: Composio de um bilhete (mensagem) do protocolo MODBUS-RTU
onde:
Endereamento (1 byte)
0 : Usado para broadcast.
1 a 247 : Usados pelos escravos.
A faixa de endereos vlidos vai de 0 a 247 (0x00 a 0xF7 hexadecimal), sendo
que os dispositivos recebem endereos de um a 247. O endereo zero reservado
para broadcast, ou seja, mensagens com esse valor de endereo so reconhecidas
por todos os elementos da rede. Quando o mestre envia uma mensagem para os
escravos, este campo contm o endereo do escravo. Quando o escravo responde,
coloca seu prprio endereo neste campo.
Cdigo da Funo (1 byte)
Estabelece a ao a ser efetuada.
0 a 127 : Funes
128 a 255 : Informe de erro na transmisso.
81
Varia de 1 a 255 (0x01 a 0xFF), mas apenas a faixa de um a 127 (0x01 a 0x7F) uti-
lizada, j que o bit mais signicativo reservado para indicar respostas de exceo.
Normalmente, uma resposta inclui o cdigo de funo da requisio que lhe deu
origem. No entanto, em caso de falha, o bit mais signicativo do cdigo ativado
para indicar que o contedo do campo de dados no a resposta esperada, mas sim
um cdigo de diagnstico.
Bytes de Dados
Informao adicionais necessrias.
Endereos de memria
Tamanho e contedo do campo de dados variam com a funo e o papel da mensa-
gem, requisio ou resposta, podendo mesmo ser um campo vazio.
Quantidade de itens transmitidos
Quantidade de bytes do campo
Vericao de Erros (2 bytes) CRC.
5.10.4.6 Deteco de Erros
H dois mecanismos para deteco de erros no protocolo Modbus serial:
bits de paridade em cada caractere e o frame check sequence ao nal da mensagem.
A vericao de paridade opcional em ambos os modos de transmisso, ASCII e RTU.
Um bit extra adicionado a cada caractere de modo que ele contenha um nmero par
ou mpar de bits ativos, caso sejam adotadas paridade par ou mpar respectivamente. A
principal desvantagem desse mtodo sua incapacidade de detectar nmeros pares de
inverses de bit. Caso no seja utilizado, o bit de paridade substitudo por um stop
bit adicional. As Figuras 48 e 49 mostram os formatos dos bilhetes com paridade e sem
paridade, respectivamente. O modo RTU utiliza como vericador de erro um valor 16
bits, o CRC, utilizando como polinmio, P(x) = x
16
+x
15
+. . . +x
2
+ 1. O registro de
clculo do CRC deve ser inicializado com o valor 0xFFFF.
MODBUS RTU, 8 BITS, C/ PARIDADE, 1 STOP BIT
START 1 2 3 4 5 6 7 8 PAR STOP
Figura 48: Formato de transmisso serial de 1 byte do MODBUS-RTU com paridade
Observaes:
82
MODBUS RTU, 8 BITS, S/ PARIDADE, 2 STOP BIT
START 1 2 3 4 5 6 7 8 STOP STOP
Figura 49: Formato de transmisso serial de 1 byte do MODBUS-RTU sem paridade
A vericao de erro efetuada opcionalmente pela paridade de cada byte transmitido e
obrigatoriamente pelo mtodo CRC sobre toda a mensagem.
O modo ASCII permite intervalos de tempo de at um segundo entre os caracteres sem
provocar erros, mas sua mensagem tpica tem um tamanho duas vezes maior que a men-
sagem equivalente usando o modo RTU.
O modo RTU transmite a informao com um menor nmero de bits, mas a mensagem
deve ter todos os seus caracteres enviados em uma seqncia contnua.
O dispositivo mestre espera uma resposta por um determinado tempo antes de abortar
uma transao (timeout).
O tempo deve ser longo o suciente para permitir a resposta de qualquer escravo. Se
ocorre um erro de transmisso, o escravo no construir a resposta para o mestre. Ser
detectado um timeout e o mestre tomar as providncias programadas.
5.10.5 MAPEAMENTO DE MEMRIA
Todo dispositivo em uma rede Modbus deve ter a sua memria dividida em registradores de
16 bits numerados conforme o modelo apresentado na Tabela 3.
Tabela 3: Mapeamento das funes e memria do protocolo MODBUS
Endereo registrador Dispositivo Funo Leitura Funo Escrita
0xxxx Solenides Sadas Discretas 1 5 ou 15
1xxxx Entradas Digitais 2 -
3xxxx Entradas Analgicas 4 -
4xxxx Memria Registradores 3 6 ou 16
A diviso baseada na estrutura de memria do dispositivo:
Sadas discretas para os atuadores ON-OFF utilizam um bit. Cada registrador comporta
16 sadas.
Entradas discretas para os sensores ON-OFF utilizam um bit. Cada registrador comporta
16 entradas.
83
Entradas analgicas utilizam registradores de 16 bits para os valores obtidos por conver-
sores A/D a partir dos sinais dos sensores analgicos.
Registradores de Memria com 16 bits para os valores utilizados internamente no dispo-
sitivo.
Para o projeto aqui desenvolvido, as funes MODBUS correspondentes podem ser acessadas
pelos endereos mostrados nas Tabelas 4 e 5.
Tabela 4: Mapeamento de Memria do terminal de rede (3xxxxx = Input Registers)
Endereo Funo
300001 REG_INPUT_STRAIN_VALUE
300002 REG_INPUT_TEMPERATURE_VALUE
300003 REG_OFFSET_DIF
300004 reservado
300005 OFFSET_SAMPLE
300006...300038 AMOSTRA_MEDIA_MOVEL[32]
Tabela 5: Mapeamento de memria do terminal de rede (4xxxxx = Holding Registers)
Endereo Funo
400001 VALOR_REFERENCIA_CALIBRACAO
400002 VALOR_OFFSET_REFERENCIA_MAXIMO
400003 VALOR_TEMPERATURA_CALIBRACAO_SISTEMA
400004 VALOR_TEMPERATURA_CALIBRACAO_PONTE
400005 VALOR_TEMPERATURA_CALIBRACAO_SHUNT
400006 VALOR_SHUNT_CALIBRACAO
400007 NUMERO_PONTOS_JANELA_MEDIA_MOVEL
400008 REVERSE_READING_ENABLED
400009 RECALIBRATION_ENABLED
400010 VALOR EXTENSMETRO (120,350)
400011 FATOR DO EXTENSMETRO (GAGE-FACTOR)
400012 TIPO LIGAO (1/4, 2/4 ou 4/4)
A identicao dos comandos (funes) de leitura e escrita so diferentes de acordo com o
tipo de dado a ser lido ou escrito.
5.10.5.1 Funo 0x01 - Read Coil Status
Finalidade: Efetua a leitura do estado das sadas discretas.
Formato da Requisio:
84
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x01
Endereo inicial ...............2 bytes
Nmero de sadas.............2 bytes
CRC ..................................2 bytes
Formato da Resposta:
Endereo do dispositivo...1 byte
Cdigo de funo..............1 byte, 0x01
Tamanho da resposta .......1 byte,
n Resposta......................... n bytes
CRC .................................. 2 bytes
1 Em valores de 2 bytes, o byte mais signicativo por conveno representado primeiro.
2 Cada grupo de oito sadas representado por um byte, onde cada sada corresponde a
um bit individual (1 = ligada, 0 = desligada). Esses bits so ordenados de acordo com os
endereos das sadas, com o endereo inicial no bit menos signicativo. Caso haja mais
de oito sadas os mltiplos bytes de resposta so tambm ordenados por endereo, com
os bytes representando os menores endereos primeiro.
5.10.5.2 Funo 0x02 - Read Input Status
Finalidade: efetua a leitura do estado das entradas discretas.
Formato da Requisio:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x02
Endereo inicial ...............2 bytes
Nmero de entradas .........2 bytes
CRC .................................. 2 bytes
Formato da Resposta:
Endereo do dispositivo...1 byte
85
Cdigo de funo.............1 byte, 0x02
Tamanho da resposta .......1 byte,
n Resposta...........................n bytes
CRC ..................................2 bytes
Byte mais signicativo representado primeiro. 2 A representao semelhante quela das
sadas, ou seja, cada entrada corresponde a um bit, sendo esses bits agrupados de oito em
oito em bytes. Bits e bytes so ordenados por endereo, de forma crescente a partir do bit
menos signicativo do primeiro byte.
5.10.5.3 Funo 0x03 - Read Holding Registers
Finalidade: Efetua a leitura dos valores dos registradores de memria.
Formato da Requisio:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x03
Endereo inicial ...............2 bytes
Nmero de registradores..2 bytes
CRC ..................................2 bytes
Formato da Resposta:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x03
Tamanho da resposta .......1 byte,
n Resposta...........................n bytes
CRC ..................................2 bytes (Byte mais signicativo representado primeiro).
Os registradores so representados por ordem crescente de endereo. Cada registrador
armazena normalmente um valor de 16 bits, dois bytes, dos quais o mais signicativo vem
representado primeiro. Registradores de 32 bits ocupam dois endereos consecutivos,
com os 16 bits mais signicativos contidos no primeiro endereo.
86
5.10.5.4 Funo 0x04 - Read Input Registers
Finalidade: Efetua a leitura dos valores das entradas analgicas.
Formato da Requisio:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x04
Endereo inicial ...............2 bytes
Nmero de registradores..2 bytes
CRC .................................. 2 bytes
Formato da Resposta:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x04
Tamanho da resposta .......1 byte,
n Resposta...........................n bytes
CRC .................................. 2 bytes (Byte mais signicativo representado primeiro)
5.10.5.5 Funo 0x05 - Force Single Coil
Finalidade: Efetua a escrita de uma nica sada discreta.
Esse valor permanece constante enquanto no for alterado por uma nova operao de
escrita ou pela programao interna do dispositivo.
Formato da Requisio:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x05
Endereo ..........................2 bytes
Valor ................................2 bytes (Ligado = 0xff00, desligado = 0x0000)
FCS ..................................1 ou 2 bytes 1
Formato da Resposta:
Cpia da requisio.
87
5.10.5.6 Funo 0x06 - Preset Single Register
Finalidade: Efetua a escrita de um valor em um registrador de memria. Assim como
acontece para as sadas, o valor no registrador permanece constante enquanto no for
alterado por operaes de escrita ou pelo prprio dispositivo.
Formato da Requisio:
Endereo do dispositivo...1 byte
Cdigo de funo.............1 byte, 0x06
Endereo ..........................2 bytes
Valor ................................2 bytes
CRC ..................................2 bytes
Formato da Resposta:
Cpia da requisio. 1 Byte mais signicativo representado primeiro.
5.10.5.7 Exemplo de Transao Modbus
O Mestre solicita uma leitura dos registradores 40105 a 40107 do terminal da rede nmero
6.
O primeiro byte a ser enviado o endereo do dispositivo, neste exemplo igual a 6.
Observar que o endereo lgico dos registradores comea em 1, enquanto que o endereo
fsico comea em 0. Assim h uma diferena de 1 dgito entre o endereo lgico e o endereo
fsico do dispositivo. Por exemplo, o primeiro registrador o 40001, mas endereado como
40000. Portanto, no exemplo dado, o endereo inical desejado 40105, assim devemos
endere-lo como 104, que transformado em hexadecimal ser 0x0068. Note que os regis-
tradores utilizam 16 bits para codicar a informao. Estes 16 bits so enviados em dois bytes
separados (HIGH BYTE e LOW BYTE).
O prximo byte a quantidade de registros a serem lidos. Neste caso, 3.
E, por ltimo, so enviados os dois bytes de CRC na ordem inversa dos anteriores ou seja,
primeiro o LOW BYTE e, depois, o HIGH BYTE.
A composio deste bilhete pode ser observada na Figura 50.
O escravo repete o cdigo da funo indicando uma resposta normal, conforme mostrado
na Figura 51.
88
Solicitao
Nome do Campo Exemplo (HEX) ASCII RTU
Cabealho :
Endereo 06 0 6 0000 0110
Cdigo da Funo 03 0 3 0000 0011
Endereo Inicial (HI) 00 0 0 0000 0000
Endereo Inicial (LO) 68 6 8 0110 1000
Nm. Registros (HI) 00 0 0 0000 0000
Nm. Registros (LO) 03 0 3 0000 0011
Vericao de erro LRC (2) CRC(2)
Terminador CR LF
Total de Bytes 17 8
Figura 50: Exemplo comunicao MODBUS
Resposta
Nome do Campo Exemplo (HEX) ASCII RTU
Cabealho :
Endereo 06 0 6 0000 0110
Cdigo da Funo 03 0 3 0000 0011
Qtde. Bytes 03 0 3 0000 0011
Dado (HI) 02 0 2 0000 0010
Dado (LO) 2B 2 B 0010 1011
Dado (HI) 00 0 0 0000 0000
Dado (LO) 00 0 0 0000 0000
Dado (HI) 00 0 0 0000 0000
Dado (LO) 63 6 3 0110 0011
Vericao de erro LRC (2) CRC (2)
Terminador CR LF
Total de Bytes 23 11
Figura 51: Exemplo de Comunicao MODBUS - Resposta
5.11 MQUINA DE ESTADOS MODBUS
O diagrama de estados Modbus-RTU mostrado na Figura 52.
A transio do "estado inicial" para o estado de "repouso" precisa de um intervalo de siln-
cio do barramento de 3,5 vezes o tempo de cada caractere (t3,5). Isto assegura que, se o sistema
tornar-se ativo durante a transmisso de um quadro, este bilhete (provavelmente incompleto)
seja descartado.
No modo RTU, o estado da conexo declarado em"repouso" se no for detectada nenhuma
atividade de transmisso no barramento em um intervalo de tempo equivalente a 3,5 caracteres.
Quando a conexo est no estado de repouso, cada caractere de transmisso detectado ser
89
Figura 52: Mquina de estados MODBUS-RTUTXe RXda estao escrava (MODBUS-IRDA,
2007).
identicado como incio de um novo quadro. A conexo vai para o estado "recepo". O nal
do quadro identicado quando nenhum caractere for recebido tendo passado um intervalo de
tempo igual a t3,5.
Aps a deteco do nal do quadro, um procedimento de clculo e vericao do valor de
CRC (Cyclical Redundancy Checking) realizado. Depois disso, o campo de endereo veri-
cado para se determinar se o bilhete endereado para o dispositivo. Se for, ser processado,
caso contrrio, descartado. Tambm sero processados os do tipo broadcast, que so aqueles
destinados a todas as estaes.
5.11.0.8 Listagem da rotina principal da mquina de estados Modbus-RTU implemen-
tada
for(;;)
{
...
switch(estate_main)
{
case STATE_MAIN_IDLE:
if ( INICIANDO )
{
disable_interrupts(GLOBAL);
if (eMBRcvState == STATE_RX_IDLE)
{
INICIANDO=FALSE;
HABILITA_TX
printf("MODBUS RTU - VALTER L.A. CAMARGO\r\n");
HABILITA_RX
Start_ADC();//D INCIO AO PROCESSO DE LEITURA ADC
90
}
enable_interrupts(GLOBAL);
}
break;
case STATE_MAIN_FRAME_RECEIVED:
if (Processa_bilhete() == MB_ER_NONE) // SE RECEBEU UM BILHETE VLIDO
{
if (Monta_bilhete_resposta())
estate_main = STATE_MAIN_START_TX;
else
estate_main = STATE_MAIN_IDLE;
}
else
{
estate_main = STATE_MAIN_IDLE;
}
break;
case STATE_MAIN_START_TX:
Liga_LED(LED_TX);
delay_ms(4);
HABILITA_TX
enable_interrupts(INT_TBE); //ENABLE FLAG
while (!FRAME_TRANSMITTED); // fica aqui at terminar a transmisso do bilhete
delay_ms(2);
HABILITA_RX
Desliga_LED(LED_TX);
estate_main = STATE_MAIN_IDLE;
}
}
}
5.11.1 ROTINA IMPLEMENTAO MQUINA DE ESTADOS TX
Para a transmisso dos bilhetes foi utilizada uma interrupo. Quando se deseja inicar a
transmisso, no programa principal habilitado um bit sinalizador de condio (ag) que ir
forar o microcontrolador a gerar uma interrupo. A cada byte transmitido gerada uma nova
interrupo e ento o prximo caractere transmitido. Isto se repete at que o ltimo byte do
bilhete, quando ento a interrupo desabilitada. Na listagem a seguir mostrado como foi
feita a implementao da mquina de estados de transmisso do protocolo Modbus-RTU.
/
***************************
/
#int_TBE
void ISR_TBE(void)
/
***************************
/
{
while (!txsta.trmt); //aguarda at que a transmisso esteja completa (buffer empty)
switch(eMBSndState)
{
case STATE_TX_IDLE:
eMBSndState = STATE_TX_TRANSMITTING;
FRAME_TRANSMITTED = FALSE;
gucSndBufferPos=0;
case STATE_TX_TRANSMITTING:
if (gucSndBufferPos < gucSndBufferCount )
{
putc(gucRcvBuffer[gucSndBufferPos++]);
}
else
{
disable_interrupts(INT_TBE);
FRAME_TRANSMITTED = TRUE;
eMBSndState=STATE_TX_IDLE;
}
}
}
91
5.11.2 MQUINA DE ESTADOS RX
Da mesma forma que a mquina de estados TX, tambm foi utilizada uma interrupo para
a rotina de recebimento dos bilhetes. O buffer gucRcvBuffer utilizado para armazenar os
elementos do bilhete. A listagem a seguir ilustra esta rotina.
#int_RDA
/
*****************
/
void ISR_RDA(void)
/
****************
/
{
UCHAR caracter;
caracter = getc();
switch ( eMBRcvState )
{
case STATE_RX_INIT:
/
*
-------------------------------------------------------------
Se foi recebido um caracter quando estava inicializando,
ento deve se aguardar at que o quadro termine.
--------------------------------------------------------------
*
/
case STATE_RX_ERROR:
/
*
----------------------------------------------------------------
Se houve algum erro, deve-se esperar que todos os caracteres
do quadro defeituoso seja recebido.
-----------------------------------------------------------------
*
/
timeout = 1;
break;
case STATE_RX_IDLE:
/
*
----------------------------------------------------------
No estado repouso aguarda-se a chegada de um novo caracter.
Quando for for recebido o primeiro caracter,
grava-o na posio inicial do buffer,
habilita os temporizadores e
muda o estado para STATE_RX_RCV.
------------------------------------------------------------
*
/
expected = 8; //fnc 1 a 6 - numero de caracteres esperados para essas funes
timeout = 8; // 4 x 4192 ms = 16384 us
gucRcvBufferPos = 0;
FLAG_LED_RX_ON =TRUE; // FLAG PARA LIGAR O LED RX (EM MAIN.C)
eMBRcvState = STATE_RX_RCV;
case STATE_RX_RCV:
/
*
----------------------------------------------------------------------------
Se foi recebido mais caracteres do que o mximo nmero possvel de bytes
do quadro modbus, o quadro inteiro deve ser ignorado.
-----------------------------------------------------------------------------
*
/
if( gucRcvBufferPos > 7)
{ // j foi recebido o endereo de destino e o cdigo da funo
if ( (gucRcvBuffer[1] == 15) || (gucRcvBuffer[1] == 16) )
{
/
*
-------------------------------------------------------------
15 = write N coil; func 15 for 0x00000 area
16 = write N regs; func 16 for 4x00000 area
a contagem dos bytes
SS FF AA AA LL LL BC ?? CR CR
-------------------------------------------------------------
*
/
expected = 9 + gucRcvBuffer[6];
}
}
//
if( gucRcvBufferPos > expected )
{
eMBRcvState = STATE_RX_ERROR;
}
else
{
gucRcvBuffer[gucRcvBufferPos++] = caracter;
}
if (gucRcvBufferPos == expected )
timeout = 1; //old=gus3_5_timeout;
}// endswitch
/
*
------------------------------------------------------------------------
Reinicializa o temporizador a cada caracter recebido.
Quando houver demora maior do que 3,5 vezes o tempo de cada quadro,
o temporizador colocar a mquina de recepo no estado inicial
-------------------------------------------------------------------
*
/
Reset_timer(timeout);
}
92
5.12 CONSTRUO DOS PROTTIPOS
Foram desenvolvidas duas verses de unidades de rede. A primeira utilizando um micro-
controlador AT89S8252 da Atmel e uma segunda utilizando o microcontrolador PIC16F876 da
Microchip. Nos cdigos inseridos no anexo pode-se vericar que estes possuem regies exclu-
sivas para cada um dos processadores. A seleo de qual implementao est sendo utilizada
feita no arquivo de cabealho mb_slave.h.
O autor inicialmente dispunha de placas de circuito impresso sem a montagem dos com-
ponentes de um equipamento desenvolvido para outra nalidade. Para sua implementao o
autor j possua os microcontroladores utilizados nesta placa (AT89S8252), o gravador destes
(LP-10 Minipa) e tambm o ambiente de desenvolvimento de programao (KEIL-C). Para adi-
antar os trabalhos, antes de se decidir pela aquisio dos microcontroladores denitivos, a idia
era implementar o protocolo nestas placas para se ter uma noo do tamanho do cdigo nal.
A partir disso seria denido qual o microcontrolador seria utilizado na segunda verso, que j
incorporaria a interface analgica de condicionamento de sinal.
A primeira verso foi utilizada durante toda fase de desenvolvimento do protocolo e depois
de depurados os programas, o protocolo MODBUS-RTU funcionou como o esperado. Uma
fotograa do terminal utilizado na primeira verso pode ser vista na Figura 53.
A segunda fase, consistiu em adaptar o cdigo desenvolvido para a linha de microcontro-
ladores 8051 (da qual o microcontrolador AT89S8252 faz parte) para a linha de microcontrola-
dores PIC, o que demandou algum esforo, j que a forma de endereamento dos registradores
bem diferente na famlia 8051 do que na famlia PIC.
A seguir so descritos a metodologia e os componentes utilizados para a implementao da
segunda verso, que utiliza o microcontrolador PIC16F877.
Para a edio de diagramas eletro-eletrnicos e confeco do lay-out da placa de circuito
impressa, foi utilizado o software Eagle 4.13 na verso freeware. Foram projetadas e confecci-
onadas placas do equipamento proposto.
Existem vrias ferramentas de programao para a famlia de microcontroladores PIC, mui-
tas delas apoiadas em programas para PC, como o MPLAB, compatveis com o Windows, que
so ambientes para desenvolvimento de programas. Para o presente trabalho, o ambiente de
desenvolvimento utilizado foi o MPLAB, da prpria Microchip. A Figura 54 mostra uma tela
do ambiente de desenvolvimento MPLAB.
As rotinas de programao foram escritas em linguagem C e compiladas utilizando-se o
93
Figura 53: Fotograa da primeira verso do terminal de rede implementado no microcontrola-
dor AT89S8252 para validao do protocolo MODBUS
compilador CCS Verso 4.038.
Para gravao do programa na memria do PIC foi construdo um gravador, comandado
pela porta serial baseado no modelo JDM, largamente difundido pela internet por robistas. A
Figura 55 mostra o diagrama esquemtico do gravador JDM. O gravador foi construdo e fun-
cionou corretamente na tarefa de programao.
94
Figura 54: Tela ambiente de desenvolvimento MPLAB (MICROCHIP)
Figura 55: Diagrama esquemtico do gravador JDM.
A Figura 56 mostra o diagrama da placa de circuito impresso produzida.
Finalmente, a Figura 57 mostra uma fotograa do prottipo j implementado sicamente.
95
Figura 56: Placa de Circuito Impresso do terminal de aquisio
96
F
i
g
u
r
a
5
7
:
F
o
t
o
g
r
a

a
d
a
s
e
g
u
n
d
a
v
e
r
s

o
d
o
t
e
r
m
i
n
a
l
d
e
r
e
d
e
i
m
p
l
e
m
e
n
t
a
d
o
e
m
P
I
C
1
6
F
8
7
6
p
a
r
a
v
a
l
i
d
a

o
d
o
s
i
s
t
e
m
a
6 DESENVOLVIMENTO DO
SISTEMA DE AQUISIO DE
DADOS
O objetivo deste captulo mostrar a modelagem e a implementao do sistema de aquisi-
o centralizado, responsvel pela coleta dos dados e de seu tratamento. Como j mencionado
anteriormente, para a comunicao entre a rede de sensores e o microcomputador, fez-se uso
no presente trabalho do protocolo Modbus-RTU, utilizando como meio fsico de transmisso
um barramento serial que utiliza a interface RS485. Lembrando que os microcomputadores
normalmente possuem uma interface serial RS232 nativa e que esta deve ser convertida numa
outra do tipo RS485, atravs de um conversor de interface, para poder realizar a comunica-
o com a rede. Nas sees que se seguem sero apresentados os fundamentos de cada uma
dessas interfaces e, na seqncia, ser apresentada a soluo aqui desenvolvida para fazer esta
converso.
Este captulo tambm trata do software de aquisio, o qual foi desenvolvido utilizando um
sistema supervisrio - elemento bastante comum em ambientes industriais - principalmente pela
sua facilidade e forma gil de lidar com informaes de tempo real e de trat-las gracamente.
Tambm foi utilizado um gerenciador de protocolo que funciona como mestre MODBUS. Para
que o supervisrio acesse os dados do mestre MODBUS necessrio estabelecer um mtodo de
troca de informaes entre eles. Para essa tarefa, foi utilizada a tecnologia OPC. Desta maneira,
a comunicao entre o mestre MODBUS e o sistema supervisrio feita de forma bidireci-
onal, ou seja, os dados adquiridos do sistema conectado em rede so disponibilizados para o
sistema supervisrio, tratados pela aplicao em nveis mais elevados, e devolvidos ao sistema
via OPC. Uma breve descrio dos sistemas supervisrios e da tecnologia OPC apresentada
para demonstrar os benefcios advindos do uso de ambos. Por m, so apresentados os pas-
sos necessrios para a congurao dos dois softwares, visando o estabelecimento da troca de
dados entre estes.
98
6.1 INTERFACE DE COMUNICAO
6.1.1 TRANSMISSO SERIAL
Segundo Ferreira (2007), os padres RS232 e RS485, foram desenvolvidos pela Electronic
Industry Association (EIA) para permitir a comunicao entre os perifricos e o computador
independentemente do fabricante. Estes dois padres so destinados comunicao serial as-
sncrona. Isto signica que cada bit transmitido usando um bit de incio, sete ou oito bits de
dados, um bit de parada, e opcionalmente, um bit de paridade. O dado auto-sincronizado,
isto quer dizer que uma vez que o transmissor e o receptor concordam com taxa de transmisso
(baud rate), o tempo dos bits individuais baseado somente nos bit de incio (start bit) e de
parada (stop bit) .
Existem outros padres alternativos, tais como a comunicao sncrona e a comunicao
paralela. A comunicao sncrona requer uma linha de sincronismo entre o transmissor e o
receptor. A comunicao paralela tambm requer uma linha de sincronismo de sinais de con-
trole e muitas linhas de dados. Utilizando-se a comunicao sncrona ou a paralela podem ser
alcanadas maiores velocidades de transferncias de dados do que com a assncrona, mas so
requeridos mais os de comunicao .
Os padres RS232 e RS485 especicam as caractersticas do hardware do sistema de co-
municao tais como nveis de tenso eltrica, resistncias terminais, comprimento do o, entre
outros. A comunicao serial pode ser simplex (half-duplex) ou duplex (full-duplex). Na sim-
plex, em um determinado instante, somente a transmisso ou a recepo pode ser feita. No
modo duplex tanto a transmisso quanto a recepo so feitas ao mesmo tempo .
6.1.2 DESCRIO DO BARRAMENTO RS232
Este um dos tipos mais populares de padro de interface serial. Seu verdadeiro nome
EIA-TIA-232-E. Foi desenvolvida pela Electronic Industry Association e a Telecomunication
Industry Association (EIA-TIA) em 1962 e, popularmente conhecido como RS232 (o termo
RS vem de Recomended Standard). Alm disso, este padro j foi atualizado 5 vezes com o
objetivo de elevar o seu desempenho (FERREIRA, 2007).
O nome ocial da interface RS232 Interface Between Data Terminal Equipment (DTE)
and Data Circuit-Termination Equipment (DCE) Employing Serial Binary Data Interchange.
Este tipo de interface garante a compatibilidade entre o computador servidor e os sistemas
perifricos quanto a:
99
1. Tenso eltrica e nveis de sinais.
2. Congurao dos pinos dos conectores de interligao entre ambos os lados.
3. Mnima quantidade de informao de controle entre o servidor e os sistemas perifricos.
Com relao s tenses e nveis de sinais, estes so:
Nvel lgico alto : -3V a -15V (com carga) e -25V (sem carga, no mximo);
Nvel lgico baixo : +3V a +15V (com carga) e +25V (sem carga, no mximo);
O nvel lgico da regio entre -3V e +3VC indenido.
As especicaes eltricas incluem especicaes de nvel de tenso, taxa de troca de sinais
e impedncia da linha de comunicao. Como a interface RS232 foi denida em 1962, antes
da lgica TTL, no nenhuma surpresa que este padro no utilize +5 Volt e terra (gnd) como
nveis lgicos. Os 8 bits de dados transmitidos atravs da interface RS232 so acompanhados
por mais dois bits: Um de incio (start bit) e outro de parada (stop bit). Cada caractere comea
com um bit de incio (neste caso a a linha vai para o sinal lgico 1 exatamente por um perodo
de um bit. O bit menos signicativo enviado em seguida. Para se delimitar o nal da trans-
misso utilizado o bit de parada logo aps o ltimo bit do caractere que est sendo enviado.
Tambm, opcionalmente, a transmisso pode ser feita considerando a paridade (uma das for-
mas para vericao de erro, relacionada com a probabilidade de troca de bits indevidamente
durante a transmisso), neste caso o bit de paridade inserido na continuao do ltimo bit do
caractere transmitido e antes do bit de parada.
A interface RS232 tambm limita a taxa de subida mxima (slew rate) no drive de sada.
Esta limitao foi includa para ajudar a reduzir a possibilidade de acoplamento capacitivo
(cross-talk) entre sinais adjacentes. Se os tempos de subida e de descida so lentos, menor
a possibilidade de se ter cross-talk, mas isto implica num comprometimento da velocidade de
transmisso que pode ser alcanada. O mximo slew rate permitido 30V/s, o que limita a
taxa de transmisso de dados. A impedncia da interface entre o drive e o receptor est bem de-
nida. A carga vista pelo drive deve estar entre 3 k e 7 k. Tambm est muito bem denido
o comprimento do o de comunicao, parmetros estreitamente relacionado com a mxima
carga capacitiva, que da ordem de 2500 pF (FERREIRA, 2007).
100
6.1.3 DESCRIO DOS SINAIS DO BARRAMENTO RS232
Para a descrio a seguir sero utilizados os termos DTE (Data Terminal Equipment) que
signica o lado do servidor de comunicao, normalmente um computador e o DCE (Data
Circuit-Termination Equipment) que normalmente um equipamento dispositivo perifrico,
como por exemplo, um modem.
O padro RS232, possui as seguintes linhas de sinais:
a) Transmitted Data (TD): a linha por onde os dados so transmitidos do DTE e recebidos
pelo DCE.
b) Received Data (RD): a linha por onde os dados so transmitidos do DCE e recebidos
pelo DTE.
c) Request to Send (RTS): Quando o DTE est pronto para transmitir para o DCE o sinal
RTS levado para o nvel lgico um. Nos sistemas simplex ou duplex esta condio mantm
o DCE em modo de recepo e inabilita o modo de transmisso. A condio de zero lgico do
RTS mantm o DCE em modo de transmisso. Aps o sinal RTS ser ativado, o DCE deve ativar
seu sinal CTS antes do comeo da comunicao.
d) Clear to Send (CTS): CTS usado conjuntamente com RTS para oferecer o handshake
entre o DTE e DCE. Aps o DCE ter detectado a ativao da linha RTS, ele vai ativar a linha
CTS quando estiver pronto para a comunicao.
e) Data Set Ready (DSR): Este sinal ativado pelo DCE para indicar que est conectado
linha de telecomunicaes.
f) Data Carrier Detect (DCD): Este sinal ativado pelo DCE quando est recebendo o sinal
de um DCE remoto. Este sinal permanece ativado durante o tempo necessrio para a deteco
do carrier do sinal.
g) Data Terminal Ready (DTR): DTR indica o estado do DTE. Este sinal ativado quando
o DTE est pronto para transmitir ou receber dados. O sinal DTR deve ser ativado antes que o
DCE ative a linha DSR.
h) Ring Indicator (RI): Quando o sinal RI ativado indica que uma sinal de chamada (ring)
est sendo recebido pelo canal de comunicao.
A Figura 58 mostra um resumo do que foi comentado nos pargrafos anteriores.
101
Figura 58: Pinagem dos conectores DB9 e DB25 na norma RS232
6.1.4 LIMITAES DO RS232
De acordo com Ferreira (2007), o barramento RS232 apresenta algumas limitaes, tais
como:
a) A interface RS232 no usa nvel convencional de tenso eltrica (TTL/CMOS). Isto
implica na necessidade do uso de fontes de alimentao adicionais para atingir os nveis de
tenso da interface.
b) A mxima taxa de dados (velocidade de transmisso) de 115 kbps, a qual muito baixa
para as aplicaes atuais.
c) Mximo comprimento do o de comunicao: Este parmetro est ligado mxima
especicao da capacitncia de carga. Tipicamente a mxima distncia entre DTE e DCE no
podem ser superiores a 20 metros, mesmo para as velocidades mais baixas. Para velocidades
maiores esta distncia ca limitada a dois metros ou menos, dependendo do cabo utilizado e
das condies ambientais relativas interferncias eletromagnticas.
6.1.5 DESCRIO DO BARRAMENTO RS485
Segundo Tristo (2004), o padro RS-485 a tecnologia de transmisso mais freqente-
mente encontrada nas redes industriais. Sua aplicao est presente em todas as reas nas quais
uma alta taxa de transmisso aliada a uma instalao simples e barata so necessrias. Um par
tranado de cobre blindado o suciente neste caso.
A tecnologia de transmisso RS-485 muito fcil de manusear. O uso de par tranado no
requer nenhum conhecimento ou habilidade especial. Taxas de transmisso entre 9,6 kbps e 12
102
Mbps podem ser selecionadas, porm uma nica taxa de transmisso selecionada para todos
dispositivos no barramento, quando o sistema inicializado.
A norma RS485 dene um esquema de transmisso de dados, utilizando circuitos balance-
ados, que oferecem solues robustas para transmitir dados em longas distncias em ambientes
ruidosos. adotada como camada fsica para a comunicao dos dados de diversos protocolos,
como, por exemplo, PROFIBUS-DP, MODBUS, INTERBUS e muitos outros. Por isso, existe
uma grande disseminao do padro devido s vantagens que o mesmo apresenta em ambientes
industriais.
6.1.6 TIA/EIA-485
A norma TIA/EIA-485, conhecida popularmente como RS485, descreve uma interface de
comunicao operando em linhas diferenciais capaz de se comunicar com 32 unidades de
carga. Normalmente, um dispositivo transmissor/receptor corresponde a uma unidade de
carga, o que faz com que seja possvel que at 32 dispositivos possam se comunicar entre si.
Entretanto, existem dispositivos que consomem fraes de unidade de carga, o que aumenta o
mximo nmero de dispositivos a serem interligados. O meio fsico mais utilizado um par
tranado. Atravs deste nico par de os, cada dispositivo transmite e recebe dados. Cada
dispositivo aciona o seu transmissor apenas no instante que necessita transmitir, mantendo-o
desligado no resto do tempo de modo a permitir que outros dispositivos transmitam dados, o
que caracteriza esta rede como simplex.
6.1.7 LINHAS DE COMUNICAO BALANCEADAS
O padro RS485 se caracteriza pela utilizao de um meio de comunicao diferencial
(tambm conhecida como transmisso balanceada), utilizando um par de os tranados. Os
circuitos transmissores e receptores adotados nestas interfaces utilizam como informao a di-
ferena de potencial entre os condutores do par tranado. Os cdigos binrios so identicados
pela polaridade (+ ou -) da diferena de tenso entre os condutores do par, ou seja, quando a
tenso no condutor + for maior que no condutor -, caracterizado um nvel lgico 1;
quando, ao contrrio, a tenso no condutor - for maior que no condutor +, caracterizado
um nvel lgico 0. Uma margem de rudo de 200 mV denida para aumentar a tolerncia
a interferncias. Esta tcnica resulta no cancelamento de rudos induzidos no meio de transmis-
so, pois se o mesmo rudo induzido nos 2 condutores, a diferena de tenso entre eles no se
altera e a informao preservada. A interferncia eletromagntica emitida por um barramento
de comunicao diferencial tambm menor que a emitida por barramentos de comunicao
103
no-diferenciais.
6.1.8 RESISTORES DE TERMINAO
A teoria das linhas de transmisso recomenda a necessidade de terminao de linhas de
comunicao com um valor de impedncia correspondente impedncia caracterstica da linha.
A correta terminao atenua reexes que distorcem os dados transmitidos, aumentando os
limites de velocidade e/ou comprimento da rede.
A impedncia caracterstica de um par tranado de aproximadamente 120, sendo este
um valor adequado para o resistor de terminao a ser instalado.
Outro assunto relacionado terminao o que fazer com os condutores no usados em um
cabo de dados. Condutores no usados podero auto-ressonar e acoplar rudo aos condutores de
dados. Se eles forem deixados abertos, eles iro ressonar em todos os tipos de freqncias; se
forem aterrados em uma extremidade, iro ressonar em L/2 (L o comprimento do cabo); se
forem aterrados nas duas extremidades, iro ressonar em L/4. A melhor maneira de minimizar a
energia de um condutor no utilizado dissip-la em forma de calor. Para tanto, deve-se colocar
resistores de terminao em ambas as extremidades do condutor para o terra. Os resistores
devem possuir um valor igual impedncia caracterstica da linha, ou seja, em torno de 120
Ohms. Uma melhor alternativa utilizar cabos em que no sobrem condutores (NOVUS, 2007).
6.1.9 LIMITES DE DISTNCIA E VELOCIDADE
A norma RS485 especica um comprimento mximo de 1200 metros para os cabos. A
velocidade mxima de comunicao (em bits por segundo bps) depende de caractersticas dos
equipamentos instalados, da capacitncia dos cabos e dos resistores de terminao instalados.
Como regra geral, quanto mais longos os cabos, menor deve ser a velocidade de comunicao.
O comprimento mximo do cabo depende da velocidade de transmisso, conforme mostra
a Tabela 6.
6.1.10 NMERO MXIMO DE DISPOSITIVOS NA REDE RS485
Todos os dispositivos so ligados uma estrutura de tipo barramento linear. A RS485
no dene o nmero mximo de dispositivos interligados em uma rede, e sim uma srie de
parmetros que podem ser utilizados para o clculo deste limite. Alguns destes parmetros so
os seguintes:
104
Tabela 6: Distncias mximas de acordo com a velocidade utilizada
Velocidade (kbps) Distncia segmento (m)
9,6 1200
19,2 1200
93,75 1200
187,5 1000
500 400
1.500 200
12.000 100
Fonte: TRISTO (2004)
Limite inferior para a resistncia de carga resultante no barramento.
Valor de resistncia que cada dispositivo da rede representa no barramento, denominada
Carga Unitria (15k).
Valor mnimo de corrente que o driver (transmissor) de um dispositivo RS485 deve ser
capaz de fornecer.
A partir destes dados e considerando a necessidade de resistores de terminao nos dois extre-
mos do barramento (correspondentes a 60), pode ser calculado o limite de 32 dispositivos com
carga unitria para um barramento de comunicao RS485. Assim, um total mximo de 32 es-
taes podem ser conectadas a um nico segmento. Para assegurar uma operao livre de erros,
o barramento deve ter um terminador (elemento responsvel pelo casamento de impedncia do
barramento) no incio e m de cada segmento. No caso em que se necessite conectar de mais de
32 estaes ou no caso que a distncia total entre as estaes ultrapasse um determinado limite,
devem ser utilizados repetidores para se interconectar diferentes segmentos do barramento. A
Figura 59 ilustra como devem ser conectados os repetidores.
Figura 59: Utilizao de repetidores (TRISTO, 2004).
105
Atualmente so comercialmente disponveis equipamentos RS485 com carga inferior uni-
tria, sendo usuais os valores de 1/2, 1/4 e 1/8 da carga unitria. Para ampliar o nmero de
dispositivos de uma rede RS485 para 256, uma soluo possvel utilizar apenas dispositivos
com 1/8 da carga unitria.
Em aplicaes menores, onde o comprimento dos cabos da rede pequeno e/ou a velo-
cidade de comunicao baixa, pode ser possvel eliminar os resistores de terminao. Isto
permite aumentar a capacidade de dispositivos da rede de 32 para 282. A desvantagem bvia
que a operao convel, nesta condio, no pode ser garantida.
6.1.11 ATERRAMENTO / INTERLIGAO DO COMUM
De acordo com Novus (2007) este talvez o tpico menos compreendido e que causa maio-
res problemas na instalao de redes RS485. Linhas de transmisso diferenciais utilizam como
informao apenas a diferena de potencial existente entre os 2 condutores do par tranado,
independente da diferena de potencial que eles apresentam em relao ao referencial de ten-
so (comum ou terra). Isto permite que mltiplos sistemas se comuniquem mesmo que uma
referncia de potencial comum entre eles no seja estabelecida.
No entanto, os circuitos eletrnicos de transmisso e recepo podem ser danicados se o
par tranado apresentar um potencial excessivamente elevado em relao ao referencial (comum
ou terra). A norma TIA/EIA-485 especica que a mxima diferena de potencial entre os
equipamentos da rede deve estar entre 7V e +12V. Diferenas de potencial acima destes limites
so usuais quando mltiplos dispositivos isolados eletricamente entre si so interligados apenas
pelos pares diferenciais de comunicao.
A utilizao de aterramento nos dispositivos, apesar de ajudar, no soluciona o problema
em todas as situaes, pois em uma instalao industrial tpica a diferena de potencial entre
aterramentos de locais afastados pode ser de muitos volts, podendo chegar a centenas de volts
na ocorrncia de descargas atmosfricas. A melhor soluo para evitar a queima dos circuitos
de comunicao adotar um condutor adicional que interligue o comum (ou terra) de todos os
dispositivos da rede.
6.1.12 CABOS DE LIGAO
Os cabos de ligao representam a ligao fsica entre os transdutores e os sensores at
aos condicionadores de sinais e/ou equipamentos de aquisio de dados. Os cabos de ligao,
quando o condicionador de sinal e/ou o sistema de aquisio sicamente afastado do com-
106
putador, tambm fornecem a ligao fsica entre estes equipamentos e o computador. Nestas
situaes estes cabos so comumente designados como cabos de comunicao tal como acon-
tece na comunicao RS-232, RS-485, USB, etc.
Em muitos dos sistemas de aquisio de dados, os cabos de ligao e comunicao re-
presentam o maior componente de todo o sistema, podendo tornar o sistema sensvel a rudo
externo. Este componente passivo dos sistemas de aquisio muitas vezes negligenciado du-
rante o desenvolvimento dos sistemas, tornando-se uma importante fonte de erro e incerteza.
A utilizao de cabo blindado recomendada sempre que o custo mais elevado deste tipo
de cabo no for um problema. A utilizao de cabo blindado com a malha adequadamente
aterrada torna a rede mais imune a interferncias externas mesmo quando o cabo instalado
prximo a fontes de rudo eltrico, como inversores de freqncia, mquinas de solda, chaves
eletromagnticas e condutores de alimentao CA.
Para reduzir custos, pode ser utilizado cabo tranado sem malha de blindagem, mas este
deve ser instalado separado de condutores de alimentao CA e distante de fontes de rudo
eltrico.
Para a ligao dos barramentos de comunicao entre os dispositivos da rede, deve-se uti-
lizar cabo tipo par tranado, tendo o cuidado de interconectar os terminais Comum de todos
os dispositivos da rede. A bitola mnima recomendada para os condutores de comunicao 24
AWG (0, 2mm
2
).
A adoo de um condutor adicional para interligao do comum de todos os dispositivos da
rede altamente recomendada para se evitar a queima dos circuitos de comunicao de um ou
mais equipamentos da rede.
6.2 CONVERSOR RS232/RS485
Sendo a norma RS232 a implementao padro para comunicao serial nos PCs, tem-se
que fazer a converso dos sinais do padro RS232 para RS485 e vice-versa para que haja a co-
municao correta entre os equipamentos que trabalham em uma rede industrial RS485 e o PC.
Existem hoje no mercado vrios conversores para tal nalidade, que praticamente compatibili-
zam a comunicao serial entre os vrios padres. O padro serial RS232, sendo desenvolvido
para rede ponto-a-ponto, orientado a conexo, ou seja, deve haver um dispositivo no outro
lado da linha, pronto para receber e enviar os dados segundo este padro. nesse ponto que o
conversor de padro opera. Tratando-se de um conversor de RS485 para RS232, este deve ter a
capacidade da simulao de um dispositivo DCE de modo que responda s solicitaes do lado
107
RS232 para efetuar a conexo e a passagem dos dados para a RS485. Como a RS485 no
um padro orientado conexo, a qualquer hora, qualquer equipamento poder transmitir seus
dados na rede. neste ponto que entra a gura do mestre da rede para coordenar esse trfego
(CUNHA, 2000).
A comunicao serial do padro RS485 funciona de modo anlogo ao de uma porta serial
de microcomputador (RS-232). A diferena entre os dois a forma como o sinal transmitido:
de modo diferencial na RS-485 e como nvel lgico na RS-232. Como o modo diferencial no
utiliza o sinal de terra (GND) para produzir os nveis lgicos, diminuem-se o efeito de rudos
externos. Como vantagem, pode-se ter um comprimento maior de cabos.
Outra diferena est na capacidade da RS-485 compor barramentos, permitindo a interli-
gao de dispositivos em rede, enquanto que a RS-232 foi projetado para ligar somente dois
terminais no modo ponto a ponto. Protocolos do tipo RS-485 e RS-232 transmitem at 8 bits
de dados por quadro e tm o mesmo formato de quadro usado na porta serial via UART dos
microcomputadores. O sincronismo feito quando se detecta o incio do quadro, sem a neces-
sidade de se transmitir um sinal de clock para sincronizar a transmisso dos bits. Os protocolos
PROFIBUS e MODBUS utilizam-se da camada fsica RS-485 e acrescentam outras informa-
es em cada quadro a ser transmitido, tal como vericao de erro, e utilizam mecanismos
mais complexos para manter a integridade dos dados.
6.2.1 CONVERSOR RS232/RS485 DESENVOLVIDO
Primeiramente para o projeto deste conversor foi considerado uma questo de segurana.
sabido que a diferena de potencial entre os terminais da rede e a fonte do computador podem
causar srios problemas, podendo chegar at mesmo a danicar a porta serial. Um outro pro-
blema que pode surgir so os loops de corrente de terra, que provocam rudos indesejveis na
comunicao. Portanto, foi denido que um dos requisitos para a interface de comunicao
que esta deveria ser isolada galvanicamente. Para tanto, foram utilizados foto-acopladores nos
circuitos de transmisso e recepo.
Na fase de testes da primeira verso foram detectados alguns problemas. O primeiro deles
que o handshake RTS/CTS, sob o sistema operacional Windows, no obedece rigidamente aos
tempos especicados pela norma RS232. Assim, sob certas circunstncias - vrios programas
em execuo simultnea, por exemplo - pode no funcionar adequadamente.
Como no desejvel utilizar o protocolo RTS/CTS, pelos motivos apresentados anteri-
ormente, e considerando que o meio de transmisso simplex, ou seja, somente um dos lados
108
pode transmitir a cada instante, foi necessrio a incluso de um elemento gerenciador do sentido
de comunicao, ou seja, um elemento responsvel para determinar qual lado pode transmitir
em um determinado instante. Para essa tarefa foi utilizado um microcontrolador da Atmel,
AT89C1051 escolhido por seu baixo custo e alto desempenho.
Outra questo que surgiu, que era necessrio ento, prover uma tenso positiva de aproxi-
madamente 9 Volts para os circuitos de recepo foto-acoplados no lado do computador j que
esta no proviria da linha RTS. Para tanto, foi projetado um inversor utilizando o CI 40106 de
maneira a obter uma tenso positiva de aproximadamente +9 Volts a partir de uma negativa de
-9 Volts retirada das linhas TX e DSR da comunicao RS232. A freqncia de oscilao do
sistema inversor foi ajustada para aproximadamente 1,5 kHz.
Para a descrio que se segue, reporte-se ao diagrama eltrico da Figura 60. A lgica de
funcionamento do microcontrolador gerenciador de comunicaes a seguinte: A transmisso
simplex, ou seja, somente um dos lados pode transmitir em um dado instante. Para este caso,
signica que o barramento RS485 est transmitindo para a porta serial RS232 ou o contrrio.
No CI que faz a interface de comunicao (IC2 - MAX481) existem dois pinos para de-
terminar o sentido da transmisso. Estes esto ligados ao pino 19 do microcontrolador, o qual
responsvel por fazer o controle. O sentido de transmisso padro, ou seja, aquele que
selecionado ao se ligar o sistema, no sentido do barramento RS485 para a interface RS232.
Estando ambos os lados em repouso, quando o lado do computador (RS232) comea a
transmitir, o microcontrolador detecta o bit de incio do bilhete de transmisso e muda o sentido
de transmisso da RS232 para a RS485. A cada byte recebido da interface RS232 ligado um
temporizador de 4 milisegundos, o que signica que aps a transmisso do ltimo byte, depois
de decorrido mais 4 milisegundos, o microcontrolador volta a habilitar o sentido de transmisso
no sentido do barramento RS485 para RS232, onde ca aguardando pela resposta da unidade
escrava.
Para o projeto todos os diodos reticadores utilizados so do tipo schotky (cdigo BAT85),
os quais so recomendados para este tipo de aplicao, graas a seu baixo tempo de recuperao
reversa e baixa barreira de potencial (em torno de 200 mV).
Tambm foram inseridos quatro LEDs para indicao da velocidade de transmisso atual
e tambm da atividade de transmisso e recepo. Quando o microcontrolador detecta uma
borda de descida, indicando o incio de uma nova transmisso, disparado um programa que se
comporta como um mono-estvel que vai ligar o LED por 50 mili-segundos, tempo suciente
para a percepo visual do evento.
109
Os foto-acopladores so do tipo 4N35, escolhidos pela relativa alta velocidade de comu-
tao e alto fator de transferncia, em torno de 0,5 vezes o valor da corrente do LED. Isto
necessrio j que a corrente disponvel pela interface RS232 limitada e deve ser suciente
para o acionamento dos LEDs dos foto-acopladores.
O programa foi desenvolvido em linguagem C e compilado com o software KEIL Verso
7.2.
A gravao do microcontrolador foi feita utilizando-se um gravador universal LP-10 da
Minipa.
Aps a montagem da placa de circuito impresso denitiva (segunda verso - a primeira
precisou ser modicada pelos motivos apresentados anteriormente) o sistema foi testado em
velocidades de 4800 BPS, 9600 BPS e 19200 BPS, funcionando corretamente.
Na Figura 61 pode ser vista uma foto do conversor j construdo na sua verso nal.
110
Figura 60: Diagrama eltrico do conversor RS232/RS485 implementado
111
F
i
g
u
r
a
6
1
:
F
o
t
o
g
r
a

a
d
o
C
o
n
v
e
r
s
o
r
R
S
2
3
2
/
R
S
4
8
5
I
m
p
l
e
m
e
n
t
a
d
o
112
6.3 SOFTWARESERVIDORDECOMUNICAES (MES-
TRE MODBUS)
O sistema de superviso tem acesso s variveis da rede Modbus atravs de uma base de da-
dos OPC. Mais especicamente, no sistema em questo, o supervisrio tem acesso s variveis
dos elementos da rede por meio de um servidor de comunicaes mestre MODBUS-RTU, onde
estas variveis podem ser: entradas analgicas ou digitais, sadas analgicas ou ainda sadas
digitais.
No sistema em questo, associam-se tags a valores de registradores dos terminais de rede.
Assim, atravs do servidor de comunicao serial, os valores dos registradores so passados, em
tempo real, s respectivas tags e vice-versa. Tais tags podemser ainda processadas internamente
pela aplicao supervisria atravs da execuo de scripts.
Neste projeto ser utilizado como servidor OPC o produto KEPServerEx Verso 4.105 pro-
duzido pela KEPWARE Inc. e o cliente ser um sistema supervisrio Elipse Scada, Verso
2.29.
6.4 CRIAODEUMNOVOCANALNOSOFTWAREKEP-
ServerEX
Primeiramente, necessria a criao de um canal de comunicao serial no servidor. Para
tanto, deve-se acessar o menu principal e escolher a opo Edit New Channel aps
o que dever aparecer a tela mostrada na Figura 62. Para este projeto o nome escolhido foi
PORTASERIAL1.
Figura 62: Criao de um novo canal de comunicao no KEPServerEx - etapa1 - Fornecimento
do nome do canal
113
Ao se "clicar" no boto Avanar ser apresentada a tela mostrada na Figura 63, onde deve-se
escolher o protocolo a ser utilizado. Neste projeto o protocolo MODBUS SERIAL.
Figura 63: Criao de um novo canal de comunicao no KEPServerEx - Etapa 2 - Escolha do
protocolo a ser utilizado
Ao se "clicar" no boto Avanar ser apresentada a tela mostrada na Figura 64, onde devem
ser informados os parmetros de comunicao da porta serial. Para este projeto os valores so:
COM1, 9600 bps, 8 bits, Nenhuma Paridade, 1 Bit de Parada e linha RTS sempre ativada.
Figura 64: Criao de umnovo canal de comunicao no KEPServerEx - Etapa 3 - Congurao
dos parmetros de comunicao serial
6.5 CRIAO DE UM NOVO DISPOSITIVO NO SOFT-
WARE KEPServerEX
Os dispositivos existentes na rede de comunicao devem ser primeiramente congurados
no servidor de comunicao Modbus.
114
Inicialmente deve ser congurada a porta serial que ir ser utilizada para a comunicao.
Neste caso, foi utilizado a porta COM1 do computador. Para se incluir um novo dispositivo,
deve-se fazer um "clique" com o boto direito do mouse sobre o nome dado porta serial, neste
caso, PORTASERIAL1, quando ento deve aparecer um menu sensvel ao contexto, conforme
ilustrado na Figura 65. Ao ser selecionada a opo do menu New Device, aberta uma
seqncia de telas de auxlio de congurao. Este estilo de congurao tambm conhecido
pelo seu nome original em ingls: Wizards.
Figura 65: Criao de um novo n na rede no software KepwareServer Modbus.
A primeira tela tem a nalidade de congurar um nome para o novo dispositivo criado.
Neste caso, deseja-se congurar o terminal de nmero 1, cujo nome ser Terminal01. Este pro-
cedimento ilustrado na Figura 66. Aps fornecido o nome deve-se "clicar" no boto avanar
que chamar a prxima tela do tutor de congurao.
Figura 66: Criao de um novo n na rede no software Kepware Server Modbus - etapa 1 -
fornecer o nome do dispositivo.
Na tela posterior deve ser congurado o protocolo desejado, neste caso Modbus. Isto porque
este software tambmpode ser utilizado como servidor de comunicaes para outros protocolos.
A Figura 67 ilustra essa etapa.
115
Figura 67: Criao de um novo n na rede no software Kepware Server Modbus - etapa 2 -
fornecer o protocolo desejado.
Na seqncia, deve ser informado o endereo do dispositivo. Este pode ser fornecido no
formato decimal, octal ou hexadecimal. No caso do terminal nmero 1 o formato irrelevante
j que em qualquer formato seu valor ser o mesmo. Veja a Figura 68.
Figura 68: Criao de um novo n na rede no software Kepware Server Modbus - etapa3 -
fornecer o endereo do novo terminal a ser criado.
Na prxima tela chamada devem ser congurados os parmetros de comunicao. Reporte-
se Figura 69 para maiores detalhes. O primeiro parmetro (Connect timeout) diz respeito ao
tempo de espera de resposta do escravo antes de relatar uma falha. Neste caso, o valor denido
de 3 segundos. O segundo parmetro (Request timeout), o tempo (em milisegundos) em que
ser solicitado uma nova resposta da estao escrava. No presente caso, este tempo foi xado
em 1 segundo. O terceiro parmetro (Fail after) o nmero de vezes sucessivas que o programa
vai aguardar antes de considerar o dispositivo em falha.
Na seqncia, pedido para que se dena a ao requerida em relao criao do banco
116
Figura 69: Criao de um novo n na rede no software Kepware Server Modbus - etapa 4 -
parmetros da comunicao.
de dados das tags, se este deve continuar a coletar informaes do ponto onde parou ou se exclui
os registros anteriores e recomea novamente ao ser reiniciado o programa servidor. Isto pode
ser vericado na Figura 70.
Figura 70: Criao de um novo n na rede no software Kepware Server Modbus - etapa 5 -
banco de dados.
Na tela chamada na seqncia, devemser congurados os parmetros do protocolo Modbus.
O primeiro item (Use zero based addressing) diz se o endereamento dos dispositivos comea
em zero ou em um. Isto porque podem existir dispositivos que obedecem a uma ou outra forma
de numerao.
O segundo item (First word low in 32 bit data types) informa qual a ordem dos bytes de da-
dos, no caso de informaes de 32 bits. Lembrando que os registradores do padro Modbus so
de 16 bits, assim se for desejado obter valor de 32 bits, dois registradores devem ser utilizados.
Neste caso informa-se ao sistema qual a ordem do byte menos signicativo. Veja a Figura 71
para maiores detalhes.
117
Figura 71: Criao de um novo n na rede no software Kepware Server Modbus - etapa 6 -
congurar os parmetros do protocolo Modbus.
A ltima tela diz qual o nmero de registradores de cada tipo existentes na unidade escrava.
Para o caso das entradas e sadas digitais, o nmero de registradores a ser fornecido deve ser em
mltiplos de 8 bits. O mesmo vale para os registradores de 16 bits (comandos 3xxxx e 4xxxxx).
A Figura 72 mostra essa congurao.
Figura 72: Criao de um novo n na rede no software Kepware Server Modbus - etapa 7 -
denio da quantidade de registradores existentes no dispositivo escravo.
Ao nalizar o tutor de congurao (wizard) deve aparecer o novo terminal criado na lista
de dispositivos a serem monitorados pelo servidor de comunicaes, conforme pode ser visto
na Figura 73.
O prximo passo criar as tags desejadas para o n de rede criado. Isto consiste em se
mapear os registradores internos dos escravos, estabelecendo uma relao entre os endereos
fsicos de seus registradores e mnemnicos responsveis por identicar com mais facilidade a
sua natureza ou funo. Para criar ou alterar uma tag j existente, basta "clicar" sobre o texto
118
Figura 73: Criao de um novo n na rede no software Kepware Server Modbus - etapa nal -
dispositivo criado com sucesso.
que aparece no painel direita, quando ento ser chamada a tela mostrada na Figura 74. No
caso da aplicao aqui descrita, o endereo do registrador 300002 responsvel por armazenar
o fator de deformao atual do(s) extensmetro(s) conectado(s) unidade escrava em questo,
enquanto que o endereo 300001 contm a temperatura da unidade.
Figura 74: Criao de uma nova tag no software Kepware Server Modbus
6.6 CONEXO DO SUPERVISRIO COM O SERVIDOR
MODBUS
Na seo anterior foi mostrado como congurar o servidor de comunicao Modbus. Nesta,
sero mostrados os passos para estabelecer uma comunicao entre os softwares do servidor
119
Modbus e o do supervisrio. Como j mencionado anteriormente, o software supervisrio uti-
lizado nesta aplicao o Elipse Scada Verso 2.29. No Elipse Scada existe um mdulo res-
ponsvel pelo gerenciamento de todos os componentes do supervisrio, chamado de organizer.
A partir dele, deve-se selecionar o item OPCServers e localizar o servidor OPC, conforme
mostrado na Figura 75, para fazer a ligao das variveis do supervisrio (ELIPSE SCADA)
com as do servidor de comunicaes OPC (KEPWARE SERVER).
Figura 75: Seleo no Elipse Scada do servidor OPC a ser utilizado
Uma vez selecionado o servidor OPC a ser utilizado, o passo seguinte importar as tags
para o supervisrio. Isto feito atravs da tecnologia selecionar, arrastar e soltar (select, drag
and drop) do sistema operacional Windows. O assistente de importao pode ser visualizado
na Figura 76.
Na Figura 77 mostrada a situao nal com as tags j importadas do servidor OPC. A
partir desse ponto, pode-se realizar diversas operaes de leitura e/ou escrita destas variveis,
tais como associ-las objetos grcos de animao do supervisrio, armazenar em banco de
dados, gerar grco de tendncias e/ou histricos, entre outras.
120
Figura 76: Assistente do Elipse Scada para importao de tags do servidor OPC
Figura 77: Tela do assistente de importao de tags com a operao j concluda.
121
6.7 SISTEMAS DE SUPERVISO E CONTROLE
Os sistemas de superviso e controle, tambm conhecidos por sistemas supervisrios ou
pela sua abreviao da lngua inglesa SCADA (Supervisory Control And Data Acquisition sys-
tem), so aplicativos usados em grande escala pela indstria que permitem que sejam monito-
radas e rastreadas informaes do processo produtivo. Estes sistemas fornecem uma interface
para a tarefa de aquisio de dados em tempo real. Por meio dele, as informaes podem ser
visualizadas utilizando o recurso de quadros sinticos animados com indicaes instantneas
das variveis de processo (vazo, temperatura, presso, volume, etc.). Tambm possvel es-
tabelecer ponto de operao desejado do processo (set-point) ou controlar elementos distantes,
abrir ou fechar vlvulas ou chaves, monitorar alarmes e armazenar informaes de processo.
Os sistemas supervisrios podem gerenciar processos de qualquer tamanho ou natureza,
sendo comum existir algumas centenas (e at mesmo alguns milhares) de pontos de entrada e
sada. Desta forma, a escolha do software de superviso muito importante na estratgia de
automao de uma empresa (ZEILMANN, 2001 - apud GONALVES, 2004).
Suas unidades bsicas de dados so os "tags", nomes que associam um endereo ou re-
gistrador de um dispositivo ao sistema supervisrio. Os dados do processo so tratados como
tags, sejam eles vindos de um CLP, de um servidor de protocolos de comunicao (via OPC)
ou mesmo de um banco de dados.
De acordo com Costa (1995), os sistemas supervisrios dos mais diversos fabricantes, ofe-
recem em comum as seguintes funcionalidades:
Um ambiente grco para a edio das telas de monitorao (que permite a criao de
displays, botes, animaes, grcos com tendncias, etc.);
Grcos de Tendncias e de Histricos;
Relatrios;
Clculos envolvendo funes matemticas diversas;
Tratamento de alarmes;
Arquivo de dados e interao com outros bancos de dados;
Criao de estratgias de controle;
Manipulao de Receitas pr-denidas;
122
Mecanismos de suporte congurao das aplicaes;
Interface de comunicao com diversos tipos de redes, interfaces e protocolos;
Importao e exportao de dados para planilhas de clculo;
Editor de scripts (pequenos trechos de programas escritos em linguagem de programa-
o).
Normalmente, nas estaes remotas existem sensores conectados aos equipamentos a serem
monitorizados que convertem parmetros fsicos, tais como velocidade, nvel de coluna de l-
quido e temperatura, para sinais digitais. O processo de aquisio de dados inicia-se nas esta-
es remotas com a leitura dos valores atuais dos dispositivos a que esto associados. Um servi-
dor de protocolo de comunicaes responsvel por recolher estas informaes e envi-las para
um sistema supervisrio num nico computador, ou distribudos por uma rede de computadores
de modo a permitir o compartilhamento da informao proveniente dos sensores.
Pode-se citar como exemplo de sistemas supervisrios que seguem o padro OPC: Elipse
Scada, Elipse E3, Win-cc, I-Fix, Wonderware Intouch, Process View, Iconics e Cimplicity, entre
outros.
6.7.1 INTERFACEAMENTO DOS SISTEMAS SUPERVISRIOS
Os sistemas supervisrios precisam trocar dados com outras aplicaes. Para tal tarefa
podem ser utilizadas muitas tecnologias abertas, entre elas pode-se citar o ODBC (Open Da-
taBase Connectivity), API (Application Program Interface), DDE (Dynamic Data Exchange)
e OPC (OLE for Process Control). Atravs do uso destas tecnologias, o interfaceamento dos
sistemas SCADA com outras aplicaes torna-se possvel.
O ODBC uma interface de programao de aplicativos que so programados utilizando-se
a linguagem SQL (Structured Query Language). A conexo lgica de uma base de dados ao
sistema de superviso permite uma leitura e atualizao dos parmetros de uma rede ou de um
CLP, o controle de um processo ou a alterao de um relatrio. Esta conexo com a base de
dados feita atravs de uma interface normatizada ODBC.
O desenvolvimento de API, que um modo de implementar um software, que pode ser,
por exemplo, um gateway responsvel pelo gerenciamento da comunicao e que proporcione
servios de aplicao entre um servidor Web e um servidor SGDB (Sistema Gerenciador de
Banco de Dados). As APIS so pequenos trechos de programas (scripts) escritos em uma
linguagem de programao, como por exemplo, o Visual Basic.
123
Atravs dos DDE, os supervisrios podem exportar e importar variveis de outro software,
como por exemplo, um aplicativo do pacote Microsoft Ofce ou do Matlab, sendo que este
ltimo conta com pacotes de software especcos para o controle de processos.
O OPC uma tecnologia disponibilizada por alguma aplicao servidora de protocolo de
comunicaes, como por exemplo, um servidor mestre MODBUS, que neste caso funciona
como o servidor da aplicao. A interface OPC torna possvel a interoperabilidade entre apli-
caes de automao e controle, sistemas de dispositivos de campo e aplicaes situadas em
nveis mais altos na hierarquia de uma planta industrial.
124
6.7.2 COMPUTADOR
O computador utilizado pode inuenciar de modo preponderante a velocidade qual se
pretende adquirir os dados e como tal a preciso, processamento e armazenamento dos dados.
Existem diversos fatores na arquitetura do computador que afetam os parmetros referidos an-
teriormente, tais como o tipo de processador, as placas de expanso disponveis (ISA ou PCI),
tempo de acesso ao disco rgido, utilizao de Acesso Direto Memria (DMA), etc. Estes
se tornam extremamente relevantes quando se pretendem efetuar leituras com elevadas trans-
ferncia de dados, no sendo particularmente decisivos para a tarefa de medies de estruturas
estticas, como o caso deste projeto. Assim os requisitos de capacidade de processamento
do computador no crtico, podendo ser utilizado qualquer um que obedea as recomenda-
es mnimas do fabricante do sistema supervisrio e do gerenciador mestre Modbus, ou seja,
processador Pentium III, 1 GHz velocidade de barramento e 512 MB de memria RAM.
As aplicaes desenvolvidas so executadas no computador sobre o sistema operacional
Windows.
6.8 SOFTWARE DE AQUISIO DE DADOS
Com a nalidade de validar os ns de rede e tambm da factibilidade do conceito, foi
desenvolvido um sistema de aquisio de dados baseado em computadores pessoais que fornece
interao e comunicao com os ns.
O equipamento de aquisio de dados utiliza um software para coletar e visualizar os dados.
No PC instalado um software que monitora, em tempo real, os sinais provenientes da rede de
sensores.
Existem diversos tipos de softwares disponveis para efetuar aquisio de dados, desde os
especcos para determinadas aplicaes at plataformas de desenvolvimento de aplicaes de
alto nvel.
Em particular, as telas para o gerenciamento, monitoramento, controle, ensaios e simula-
es do prottipo, foram geradas atravs do software supervisrio Elipse SCADA, da empresa
Elipse Software Ltda. Escolheu-se este produto por ser um sistema SCADA com alguns recur-
sos de comunicao com outros programas e ainda porque o laboratrio de automao indus-
trial do CESUMAR, onde o autor trabalha, j possua licena de uso para este. Existem muitos
sistemas similares a este no mercado, mas a escolha foi baseada nos critrios anteriormente
mencionados.
125
Este tipo de ferramenta apresenta um conjunto de objetos grcos previamente denido,
permitindo desenvolver programas para adquirir os sinais recebidos pelo equipamento de aqui-
sio, transformando-os para as grandezas pretendidas. Tambm permite uma interao amig-
vel com o usurio e disponibiliza a este diversas possibilidades para tratar os dados provenientes
da rede de comunicao. Assim, possvel visualizar os dados na tela do monitor, armazen-los
em memria e acionar sinais de sada para aes de controle. O desenvolvimento de progra-
mas utilizando um sistema supervisrio orientada por telas (ou janelas) que funcionam sob
o formato da possibilidade de abertura destas conforme a necessidade. possvel criar vrias
formas de apresentao dos valores medidos, quer em termos de valor absoluto, quer em termos
de grcos ou tabelas. Sero descritos a seguir a utilidade e o funcionamento daquelas mais
importantes.
6.8.1 TELA PRINCIPAL
Na Figura 78 tem-se a tela principal da aplicao supervisria desenvolvida no Elipse
Scada. A partir desta possvel acessar outras com funcionalidades especcas.
A partir da tela principal, h um conjunto de botes que podem ser utilizados para chamar
as seguintes telas:
Congurao de Hardware.
Congurao do Canal
Carregar Congurao
Aquisio e Visualizao
Exportar Dados
Sair.
6.8.2 TELA HABILITAO TERMINAIS
Existe uma tela para habilitar os terminais que sero monitorados. Na Figura 79 mostrado
que esto sendo monitorados os valores dos terminais nmero 1, 8 e 17. Observe que a tela
permite o gerenciamento de 32 sensores. O sistema pode, ainda, ser estendido para um nmero
maior de sensores, limitados a 247 na rede MODBUS-RTU, tendo em vista que cada unidade
sensora ter seu endereo prprio e diferente das demais.
126
Figura 78: Tela inicial do sistema supervisrio (Elipse Scada)
Figura 79: Tela do supervisrio (Elipse Scada) para a habilitao dos terminais
6.9 TELA DE AQUISIO DOS DADOS
Nesta tela, o usurio consegue visualizar os valores da variveis, tais como o fator de defor-
mao e a temperatura dos sensores extensomtricos de um dos ns da rede, atravs de grcos
127
ou por meio de displays.
A tela de aquisio dos dados pode ser vista na Figura 80. Nesta, h um objeto do tipo
setpoint para digitar o valor do terminal que se deseja monitorar. Um grco de tendncia
mostra os valores do fator de deformao e da temperatura a cada instante de tempo, atravs
do qual pode-se acompanhar a realizao de ensaios. Dois botes, Iniciar e Finalizar, permitem
disparar e nalizar o ensaio em qualquer instante de tempo.
Figura 80: Tela inicial do sistema supervisrio (Elipse Scada)
Existe um objeto do tipo tabela para se visualizar os valores numricos das amostras sendo
coletadas a cada instante.
Tambm possvel mudar o tamanho da janela do ltro de mdia mvel do n da rede
atravs desta tela.
6.9.1 TELA DE HISTRICOS
Tambm ao se selecionar o boto "clique aqui para visualizar gracamente os dados do
histrico", abre-se a tela de visualizao dos grcos, denominada tela de Histricos. Por meio
desta tela possvel gerar arquivos de dados histricos para posterior anlise e carregar antigos
arquivos histricos.
Na primeira aba visualizado o histrico desejado, conforme pode ser visto na Figura 81.
128
Figura 81: Tela de visualizao dos dados do histrico (Elipse Scada)
Na terceira aba visualizado as opes relativas as "penas" de marcao no grco. A
palavra "penas" provavelmente seja inspirada nas canetas antigas. Aqui, signica o equivalente
a uma caneta marcadora que desliza sobre um papel deixando marcada sua trajetria, ou seja,
utilizada para compor grcos de evoluo de uma varivel ao longo do tempo. Isto pode ser
visualizado na Figura 82.
Figura 82: Tela do Elipse Scada para congurao das "penas" do histrico.
Na quarta aba (conguraes) so denidos a base de dados desejada e as informaes da
batelada que se deseja acessar. Na Figura 83 mostrada a tela para seleo do banco de dados
a ser utilizado para armazenar os dados coletados.
129
Figura 83: Tela do Elipse Scada para congurao dos dados do histrico.
Na quinta aba (consulta) podem ser congurados os critrios de consulta, por lote, por data,
etc. A Figura 84 ilustra essa situao.
Figura 84: Tela do Elipse Scada para congurao para recuperao de dados por consulta entre
datas e horas.
A sexta tela (Figura 85) congura a impressora e imprime os dados do histrico.
Diversas outras funes podem ser utilizadas. No entanto, por limitao de tamanho, s
foram mostradas as principais.
130
Figura 85: Tela do Elipse Scada para congurar a Impresso dos dados do histrico.
7 RESULTADOS E DISCUSSES
Neste captulo so descritos os resultados obtidos com base em observaes colhidas dos
prottipos desenvolvidos. Segue-se uma discusso dos mesmos procurando estabelecer uma
correlao dos resultados obtidos com os esperados inicialmente.
7.1 CARACTERSTICAS TCNICAS DO SISTEMA DE-
SENVOLVIDO
Protocolo: MODBUS-RTU.
Interface de comunicao: RS485 par diferencial.
Topologia: Barramento.
Distncia mxima dos ns: 1200 metros (contados a partir da unidade mestre).
Quantidade mxima de pontos: 32 (31 terminais mais a unidade mestre).
Velocidade: 9600 BPS;
Paridade: Nenhuma.
Nmero de Bits: 8.
Nmero de bits de parada: 1.
Nmero mximo de Aquisies de cada n: 10 por segundo.
Resoluo: 10 bits (2
10
=1024 divises).
Extensmetros eltricos de resistncia de 120 .
Congurao dos extensmetros em 1/4, 1/2 ou Ponte completa.
132
7.2 VALIDAO DA QUALIDADE DA COMUNICAO
Um dos maiores esforos deste trabalho foi no sentido de desenvolver um sistema de co-
municao robusto e convel para a aquisio dos dados distribudos remotamente. Para tanto
foi implementado no rmware de cada microcontrolador dos terminais de rede os comandos
bsicos do protocolo MODBUS-RTU. No captulo anterior, DESENVOLVIMENTO DO SIS-
TEMA DE AQUISIO DE DADOS, foi apresentado o conversor de interface RS232 para
RS485. A seguir so mostrados os resultados dos testes de comunicaes realizados.
7.2.1 TESTES
Os procedimentos de testes para validar a implementao, envolveram a anlise do compor-
tamento do prottipo utilizando softwares analisadores de protocolo de comunicao Modbus
de dois fabricantes diferentes, cuja nalidade especca a de realizar a anlise da qualidade
do bilhete e da qualidade da comunicao.
Para a realizao dos experimentos, foram instaladas trs unidades de rede, a primeira com
o nmero 1, foi instalada a 10 metros da unidade mestre. A segunda (nmero 8) foi instalada a
12 metros de distncia e a terceira (nmero 17) foi colocada a 15 metros.
A primeira fase de testes consistiu em vericar a conformidade dos comandos Modbus
implementados nas estaes escravas. Para tanto, foram congurados os parmetros de co-
municao utilizando o software Modbus Poll, conforme mostrado na Figura 86 e selecionada
como unidade de teste a estao nmero 8, conforme mostrado na Figura 87.
Figura 86: Congurao da Comunicao no software MBPOLL
133
Figura 87: Congurao dos Comandos no MBPOLL
Foram enviados manualmente uma srie de bilhetes para a estao nmero 8, conforme
mostrado na Figura 88. Todos os bilhetes foramtransmitidos comsucesso pelo servidor Modbus
e tambm foram obtidas com sucesso as respostas esperadas, o que indicou que os comandos
implementados nas estaes escravas estavam funcionando adequadamente.
Figura 88: Trfego de dados no software MBPOLL
Osegundo teste foi realizado agora no modo automtico, ou seja, o mesmo bilhete retrans-
mitido periodicamente em taxas de: 10, 5, 4, 2, 1 e 0,5 aquisies por segundo. Para essa tarefa
tambm foi utilizada o software Modbus Poll. Para cada uma das funes Modbus (1xxxxx,
2xxxxx, 3xxxxx e 4xxxxx) foram feitas no mnimo 10.000 transaes com resultados exce-
lentes. A Figura 89 mostra o resultado de uma bateria de testes, onde foram enviados 14.812
bilhetes para a estao nmero 8, a uma taxa de 4 bilhetes por segundo. Todos os bilhetes fo-
ram enviados com sucesso pela unidade mestre e a estao escrava nmero 8 tambm respondeu
com sucesso a todas as solicitaes recebidas. Em nenhum caso houve um erro sequer.
Aps os resultados animadores vericados anteriormente foi repetida a mesma seqncia
134
Figura 89: Nenhum erro em 14812 transaes utilizando o software Modbus Poll
de testes, agora utilizando outro software analisador de protocolo, o Modbus Tester Verso 0.3
(beta). Foram enviados 12.545 bilhetes para a estao nmero 8, a uma taxa de 10 bilhetes por
segundo. A Figura 90 mostra o software utilizado para a segunda seqncia de testes.
Figura 90: Nenhum erro em 12545 transaes utilizando o software Modbus Tester Verso 0.3
(beta)
Os resultados foram similares aos da experincia anterior. Tambm no foi detectado ne-
nhum erro.
Outros testes foram realizados, utilizando outras estaes e outros comandos, com resul-
tados semelhantes. Isto levou a concluir que os cdigos dos programas implementados no
rmware das estaes escravas esto em conformidade com o padro do protocolo Modbus
RTU e o meio fsico de comunicao utilizado (RS485) convel. Quanto a conabilidade
do meio fsico, isto s veio a conrmar o resultado positivo vericado em outras milhares de
aplicaes nas indstrias que o utilizam. Deve-se ressaltar que, pela prpria caracterstica do
protocolo, mesmo que houvesse alguma transmisso com erro, o protocolo automaticamente
descartaria o bilhete defeituoso.
135
7.3 VALIDAO DA QUALIDADE DOS DADOS
Nesta seo ser analisado a qualidade do sistema condicionador de sinais. Primeiramente
foram feitos os ajustes de calibrao necessrios. Inicialmente foi ajustado o patamar de tenso
de meia escala. Este valor foi xado em 2,100 Volts. O procedimento para calibrao foi
descrito previamente no captulo anterior. Em seguida foi feito o ajuste de zero da ponte.
Estando o n da rede calibrado, o prximo passo foi fazer a coleta dos dados a partir do sistema
supervisrio.
7.3.1 PREPARAO DO EXPERIMENTO
A especicao do extensmetro a ser aplicado no trivial. Uma escolha adequada requer
conhecimento de vrios aspectos relacionados ao objetivo de sua aplicao, ao processo de me-
dio e aos materiais aplicados. Existe uma ampla gama de modelos, disponibilizados pelo
mercado por diversos fabricantes. Para atender a nalidade do presente trabalho, foram utiliza-
dos extensmetros da marca Kyowa, do tipo KFG-5-120-C1-11, uniaxiais, cujas caractersticas
passam a ser descritas (PENTEADO NETO, 2005). A denominao KFG diz respeito srie
selecionada, e as letras iniciais so oriundas das palavras Kyowa Foil Gauges, relacionadas a
extensmetros de uso geral e que possuem uma forma plana. Os extensmetros da srie KFG
podem ser de trs tipos, denominados uni, bi ou triaxiais, em funo das direes nas quais se
pretende medir os esforos mecnicos. As sries variam, ainda, em funo do material sobre os
quais sero aplicados como, por exemplo: metais, concreto, materiais compsitos e papis. As
sries so divididas, tambm, pela nalidade para as quais os extensmetros so especicados
como, por exemplo, para a medio de trao; para o acompanhamento do desenvolvimento de
ssuras e respectiva velocidade de propagao, medio de tenso residual, etc. O cdigo 5,
diz respeito ao comprimento do extensmetro, que nesse caso de 5 milmetros. O cdigo 120,
diz respeito resistncia hmica que de 120. C1 o lay-out do extensmetro, dentre os
aproximadamente 40 modelos oferecidos pelo fabricante. O nmero 11 se refere ao coeciente
de expanso linear que, neste caso, de 11, 7 10
6
/C
Para a validao foram utilizados extensmetros modelo KFG-5-120-C1-11 (descrito no
pargrafo anterior), compensado termicamente para estruturas de ao, de resistncia nominal
de 120.2 0.2, Fator de Sensibilidade (Gauge-Factor) 2.11 1,0 % (@24 C). Fabricados
pela Kyowa. Estes extensmetros foram ligados em congurao de 1/4 de ponte para medio
de esforo devido ao momento etor aplicado a uma chapa de de ao plana de 150 mm de
comprimento por 50 mm de largura e 1 mm de espessura. O extensmetro foi xado na regio
136
central da placa, eqidistante das extremidades. A Figura 91 mostra o extensmetro xado no
elemento de teste.
Figura 91: Extensmetro eltrico ligado em congurao de 1/4 de ponte utilizado para o expe-
rimento
Como j mencionado, o extensmetro utilizado do tipo laminar (foil gauge) cuja repre-
sentao esquemtica pode ser vista na Figura 92.
Figura 92: Extensmetro CFG-5-120-C1-11 utilizado
Os softwares mencionados anteriormente so s analisadores de protocolo e foram utili-
zados para validar a implementao do protocolo nos terminais de rede. Para a aquisio dos
dados dos experimentos foi utilizado o servidor Modbus Kepware Server Verso 4.0. Como j
explicado anteriormente, este funciona como um mestre Modbus e tambm como um servidor
OPC. A congurao dos parmetros de comunicao pode ser vista na Figura 93.
137
Figura 93: Congurao dos parmetros de Comunicao do Servidor OPC MODBUS
Para o teste inicial, foram congurados trs ns de redes, com os nmeros 1, 8 e 17, res-
pectivamente. A congurao dos ns pode ser visualizada na Figura 94.
Figura 94: Congurao do Servidor OPC MODBUS
7.3.2 DESVIO COM O PASSAR DO TEMPO
O sistema foi iniciado vrias vezes, conforme mostrado na Tabela 7.
138
Tabela 7: Tempo de Estabilizao do sistema
nmero Tempo
1 2 min, 32 seg
2 2 min, 28 seg
3 2 min, 24 seg
4 2 min, 22 seg
5 2 min, 23 seg
6 2 min, 25 seg
7 2 min, 25 seg
8 2 min, 19 seg
9 2 min, 22 seg
10 2 min, 25 seg
Foram realizadas 10 seqncias de ligamento do sistema e aguardou-se at que casse
estvel quando ento este tempo foi medido. Em todas as experincias o sistema cou ligado
por 5 minutos quando ento era desligado. Aguardava-se outros 5 minutos para o resfriamento
do sistema e em seguida era ligado novamente. O tempo mximo para estabilizao foi de 2
minutos e 32 segundos. O tempo mdio cou em torno de 2 minutos e 24 segundos. A Figura
95 ilustra o instante inicial de uma das experincias quando o sistema ainda estava em regime
transiente.
Figura 95: Tela de coleta de dados logo aps o sistema ter sido ligado (regime transiente)
139
Depois de entrar em regime permanente, observou se que o sistema estvel com o passar
do tempo. Isto pode ser vericado atravs da Figura 96.
Figura 96: Tela de coleta de dados mostrando estabilidade com o passar do tempo (regime
permanente)
7.4 REPETIBILIDADE
O termo repetibilidade refere-se a capacidade de um instrumento fornecer a mesma leitura
de peso para um determinado objeto e de retornar a zero aps cada ciclo de pesagem. O teste
feito pesando-se repetidamente um mesmo objeto.
Para a aquisio de dados foi utilizado o software Elipse Scada V. 2.9. A seqncia de
procedimentos foi a seguinte: Inicialmente o sistema foi deixado em repouso at que o sistema
se estabilizasse.
Depois foi colocado e retirado alternadamente por 13 vezes um corpo de carga de 255
gramas (no caso foi utilizado como carga, a carcaa de um transformador). A Figura 97 mostra
o corpo de prova colocado no elemento de medio, enquanto que a Figura 98 mostra a tela
com o resultado das medies. Como resultado, quando aplicado a carga o resultado medido
foi de 341 unidades 1, o que equivale a uma repetibilidade de 1 bit de resoluo do conversor
AD (10 bits),valor que pode ser considerado excelente se levarmos em conta a limitao dos
componentes utilizados.
140
Figura 97: Elemento utilizado como carga para o experimento
Figura 98: Teste de Repetibilidade
7.4.1 HISTERESE
Histerese uma propriedade dos materiais elsticos, resultando em diferentes indicaes
de deformao para uma mesma fora aplicada, dependendo da direo da aplicao da fora,
ou seja, se o carregamento est aumentando ou diminuindo sobre o corpo. mais pronunciado
no ponto de meia escala. A Figura 99 mostra uma curva tpica.
141
Figura 99: Curva de histerese para materiais elsticos
Dois corpos de pesos diferentes foram adicionados um aps o outro sobre a chapa metlica
que contm um extensmetro eltrico de resistncia. Foi observado que ao se retirar o segundo
corpo a medida no retornou ao valor inicial antes da sua insero, mesmo aps um longo
perodo, conrmando que o sistema de medida utilizado possui uma certa histerese associada.
Isto pode ser observado na Figura 100.
Figura 100: Tela de Aquisio
7.4.2 DERIVA DEVIDO TEMPERATURA
A sensibilidade a deriva como uma variao em temperatura pode afetar a medida de
um sistema. Basicamente esse parmetro diz qual deve ser o comportamento esperado com a
variao da temperatura.
Idealmente, o valor do extensmetro deveria mudar somente devido a deformaes da su-
perfcie a que est xado. No entanto, tanto o material de que feito o extensmetro quanto
o corpo de prova em que ele est xado tambm respondem a variaes de temperatura. Os
fabricantes dos extensmetros tentam minimizar estes efeitos atravs da utilizao de materiais
142
que compensem a expanso trmica do material para o qual projetado. Enquanto que essa
compensao reduz a sensibilidade trmica, esta no totalmente eliminada.
O procedimento consistiu em colocar o conjunto do corpo de prova e o sistema de aquisio
connados em uma caixa fechada, simulando uma estufa, de maneira que a temperatura fosse
igual para ambos os elementos. Para tanto aguardou-se um tempo suciente para que o sistema
entrasse em equilbrio trmico, caracterizado atravs da estabilidade dos valores de ambos os
elementos: extensmetro e sensor de temperatura. Veja a Figura 101.
Figura 101: Grco mostrando a situao inicial do experimento
A relao entre nmero de pontos da escala e temperatura pode ser obtida da seguinte
forma:
O LM35 fornece uma tenso proporcional de 10 mV/C a partir de 0C. Assim, se sua sada
em um dado instante for de 200 mV, pode-se inferir que a temperatura de 20 C. Para aumentar
a resoluo, foi acrescentado um amplicador de ganho igual a 1 +
10.2
3.3
= 4.09. Assim, para
cada grau a partir de zero, tem-se uma tenso de 40.9 mV na sada do amplicador. Esta tenso
capturada pelo conversor AD. Como a resoluo de 10 bits (1024 pontos) e a alimentao
de 5 Volts, pode-se obter a relao entre o nmero de pontos e a temperatura, na seguinte
equao:
T = n 0.1194
onde T a temperatura em graus Celsius e n o nmero de pontos medido.
O procedimento seguinte foi ligar um soprador trmico com jato direcionado para o interior
do espao. A temperatura inicial era de 238 pontos

= 28.5 C, aps o aquecimento registrou-se


143
um pico de 325 pontos

= 38.8 C. Os resultados podem ser vistos na Figura 102. Como pode-se


observar, o sistema manteve-se relativamente estvel, apesar da grande variao de temperatura
a que o conjunto foi submetido, o que indica que o algoritmo implementado para correo
dos desvios trmicos conforme descrito no Captulo PROJETO, MONTAGEM E TESTES DO
TERMINAL DE AQUISIO, Sees 5.7 a 5.9, funcionou como esperado.
Figura 102: Grco mostrando a evoluo da temperatura e da sensibilidade trmica do ex-
tensmetro durante a fase do aquecimento e desaquecimento.
Foi observado durante a fase de testes que, devido a inrcia, histerese e capacidade trmica
dos materiais envolvidos, o sensor de temperatura detecta primeiro a variao do que o corpo
de prova. Observou-se que aps o desligamento do soprador trmico, o valor da temperatura
do sensor LM35 estabilizou muito mais rapidamente do que a do extensmetro, que ainda con-
tinuava a subir, demonstrando uma inrcia trmica maior do que a do sensor. Considerando
que os materiais so diferentes na sua composio, massa, volume e geometria e tambm esto
separados espacialmente, era esperado que os coecientes de transferncia de calor de ambos
fossem diferentes, como de fato se comprovou.
O prximo passo foi monitorar a curva de resposta do resfriamento de ambos por um tempo
de cinco minutos, que tambm mostrou diferena signicativa entre a temperatura medida pelo
sensor e a resposta do extensmetro, como j esperado.
Como concluso, pode-se armar que a compensao de extensmetros ligados em con-
gurao de de ponte s pode ser feita aps transcorrido um tempo suciente para que ambos,
sensor e corpo de prova, atinjam a mesma temperatura. No entanto, isto dependente do mate-
rial e das condies do local, sendo muito difcil a realizao deste procedimento. Recomenda-
se, portanto, que sempre que possvel, se utilize a congurao de ponte utilizando um ex-
tensmetro inativo (dummy gauge) para compensao. Esta tcnica passa a ser descrita a seguir.
Atravs da utilizao de dois extensmetros na ponte, o efeito da temperatura pode ser
144
praticamente eliminado. Por exemplo, na Figura 103 ilustrado uma congurao onde um
extensmetros ativo (R + R), e um segundo extensmetro inativo (conhecido como dummy
gauge) xado em uma pea do mesmo tipo de material que o extensmetro ativo. Assim,
qualquer alterao da temperatura vai afetar ambos os extensmetros da mesma maneira. Ento,
se a variao da temperatura for idntica para ambos, a razo entre suas resistncias no se altera
e por conseqncia, tambm a tenso de sada V o permanece inalterada.
Figura 103: Utilizao de um extensmetro inativo para eliminar os efeitos da temperatura
No entanto, como j prtica comum dos laboratrios de ensaios de esforos, deve se
utilizar preferencialmente, a congurao em ponte completa utilizando 4 extensmetros ativos,
onde os efeitos trmicos so auto-compensados.
8 CONCLUSES E SUGESTES
PARA TRABALHOS FUTUROS
Este trabalho descreve o projeto, desenvolvimento, implementao e validao de um sis-
tema conectado em rede para aquisio de dados de esforos em estruturas fsicas utilizando
como elementos sensores os extensmetros eltricos de resistncia (strain gauges).
O objetivo deste trabalho consistiu em se produzir uma interface de aquisio de dados
distribuda em rede, a implementao de um protocolo de comunicao entre estas unidades
remotas e um microcomputador, no qual desenvolveu-se um programa para a exibio dos re-
sultados coletados nas unidades de rede.
Neste captulo so elencados os pontos fortes e fracos identicados durante a produo
deste trabalho. Algumas concluses so fornecidas e so apontadas possveis futuras direes
para complement-lo.
8.1 VIABILIDADE DO CONCEITO
Foram construdos e testadas quatro unidades de rede no laboratrio experimental e em
bancada, com sucesso.
No que diz respeito rede de comunicao, tanto a recepo quanto a transmisso do sinal
se mostraram conveis e livres de erros. Os resultados foram motivadores para que se persista
conando nessa soluo.
O sistema supervisrio mostrou-se eciente e robusto na tarefa de coleta, armazenamento
e visualizao dos dados vindos da rede de sensores. Por meio de uma interface amigvel
foi possvel a realizaco de ensaios. A leitura de outras variveis, tal como a temperatura
tambm foi satisfatria. Os bons resultados apresentados pelo supervisrio demonstraram a
potencialidade deste sistema e encoraja o prosseguimento desta soluo para a implementao
de novas funcionalidades eventualmente necessrias.
146
A losoa empregada para a leitura dos valores dos extensmetros, o tratamento eletrnico
de sinal, tanto em nvel de hardware quanto em nvel de software, se mostrou consistente.
Em relao ao tempo de resposta do conjunto, este se mostrou adequado ao objetivo proposto
incialmente de monitorao de estruturas estticas.
ainda importante ressaltar que, com o desenvolvimento desse sistema, o projeto e a cons-
truo da plataforma de aquisio e seus elementos de apoio, como o aplicativo de software, foi
possvel agregar know-how nacional e local nesta rea de desenvolvimento.
Os resultados obtidos com a utilizao do prottipo em experimentos pilotos so enco-
rajadores, pois indicam que os conceitos apresentados aqui, tanto os sistemas de hardware e
software desenvolvidos, so viveis.
8.2 LIMITAES
O protocolo MODBUS-RTU foi o protocolo escolhido por apresentar diversas vantagens,
tais como: a interoperabilidade, o determinismo, a conabilidade dos dados, entre outras. O
propsito no foi resolver um problema isolado, e sim estender a soluo encontrada para ou-
tras aplicaes. A aplicao desenvolvida, da coleta de dados de sensores distribudos em rede,
forneceu subsdios importantes para o desenvolvimento proposto. Apesar de ter atingido os
objetivos propostos inicialmente, esta implementao merece aperfeioamentos em alguns as-
pectos.
O consumo de energia relativamente alto, principalmente pela utilizao de sensores ex-
tensomtricos de baixa resistencia hmica, que cam constantemente drenando energia. Para
reduzir o consumo de corrente pela ponte de Wheatstone, poderia-se considerar a utilizao de
extensmetros de maior resistncia, ou ainda, implementar circuitos de controle de alimentao,
que somente seria ligada no instante de se obterem as amostras. Tambm poderia-se conside-
rar o uso de circuitos integrados dedicados operao em ponte, mas com baixo consumo de
potncia.
Outra limitao est associada resoluo obtida de 10 bits. Embora satisfatria para apli-
caes que envolvam grandes variaes relativas do valor de carga, como foi o caso da aplicao
deste projeto, pode no ser adequada para outras, que necessitem detectar pequenas variaes.
147
8.3 SUGESTES PARA TRABALHOS FUTUROS
Os resultados obtidos com o prottipo mostram que o mesmo atende s expectativas inici-
almente denidas e possibilitam a abertura de oportunidades para a continuidade do trabalho
visando otimiz-lo ainda mais. Podemos sugerir, por exemplo:
Os sistemas comerciais prossionais utilizam normalmente resoluo de 12 bits. Este
ndice de desempenho pode ser facilmente atingido se forem utilizados conversores ana-
lgico/digital tipo delta-sigma de 21 ou 24 bits, relativamente fceis de se encontrar atu-
almente no mercado e mais baratos que de outras tecnologias.
Determinar a viabilidade de uso de uma fonte de energia alternativa, que atenda a de-
manda operacional do sistema, tal como, por exemplo, uso da energia solar.
O sistema desenvolvido incorpora algumas das vantagens dos sistemas sem-os, tal qual
a aquisio e condicionamento local dos sinais e facilidade de instalao. Embora origi-
nalmente o sistema proposto no tenha sido desenvolvido para ser wireless, tambm h
a possibilidade de vir a ser. O protocolo de comunicao utilizado para este projeto o
MODBUS-RTUque dene apenas a camada 7 (camada de aplicao) do modelo ISO/OSI
(MODBUS-IDA, 2007a) e portanto no especica a camada fsica de transmisso, que
pode ser serial cabeada, serial bra tica, Ethernet TCP/IP ou qualquer outra compatvel,
inclusive sem-os. Pode-se implementar ainda um sistema misto contendo elementos
cabeados e sem-os, pois existem no mercado equipamentos que fazem a converso de
protocolos (gateways), como por exemplo de MODBUS-RTU para ETHERNET sem o
(802.11b/g), MODBUS-RTU/ZIGBEE, MODBUS-RTU/BLUETOOTH e mais recente-
mente surgiram alguns fabricantes oferecendo conversores GPRS/MODBUS, que podem
permitir o acesso rede de sensores atravs de um aparelho celular. Assim se cada uni-
dade for acoplada a um desses conversores o sistema passa a ser tambm sem-o, neces-
sitando apenas a adio dos equipamentos de converso e de uma fonte de alimentao
externa. Neste caso, os eventos seriam hierarquizados, podendo ser comunicados por
e-mail, sms, utilizados para acionamento de processos de segurana e controle da conces-
sionria de pedgio (como por exemplo, em monitoramento de pontes), e armazenados
em banco eletrnico de dados.
Futuramente o front-end analgico do sistema de aquisio poderia ser implementado
por um nico chip com funes de medio, calibragem, processamento e comunicao.
Pode-se integrar os mdulos analgicos atravs do programa MOSIS (MOSIS, s.d.) de fa-
148
bricao de circuitos integrados, de forma a reduzir custos em caso de eventual produo
em escala do equipamento.
Nas unidades de rede poderiam ser includos outros recursos adicionais, tais como moni-
toramento de outras grandezas, tais como corroso, umidade, etc.
Aprimoramento de estruturas do software, como por exemplo:
aperfeioamento da interface usurio sistema,
melhoria das rotinas de armazenamento busca, e apresentao de dados na tela;
gerao de relatrios de forma que possam estar disponveis por acesso remoto, via
Pager, Internet e outros;
Estudar a possibilidade de medir os esforos estruturais pelo sistema piezoeltrico com
utilizao, por exemplo, de cristais de quartzo, como alternativa extensometria.
Incorporao de unidades de medidas de efeitos dinmicos das estruturas, como, por
exemplo, vibraes.
8.4 CONSIDERAES FINAIS
Como considerao nal, ca a sugesto de que o modelo desenvolvido possa, numa etapa
posterior, ser transferida para uma empresa do setor produtivo e a transformao da unidade
prottipo em produto. Com isto, haveria um envolvimento contnuo entre o meio acadmico
e o setor empresarial, possibilitando futuras cooperaes na continuidade deste projeto contri-
buindo para o desenvolvimento da tecnologia nacional.
149
Referncias Bibliogrcas
AGILENT TECHNOLOGIES, application Note 290-1Practical Strain Gage
Measurements, 1999.
ALLEN, P., E.; GEIGER, R.L.; STRADER, N.R., Design Techniques for Analog and Digital
Circuits. McGraw Hill. 1990.
ANDOLFATO, Rodrigo P.; CAMACHO, Jefferson S. e BRITO, Gilberto A. de, Extensometria
Bsica, Unesp Ilha Solteira, Ncleo de Ensino e Pesquisa da Alvenaria Estrutural, endereo:
http://www.nepae.feis.unesp.br/Apostilas/Extensometria basica.pdf, acessado em 30/08/2007.
ARMS, S.W., GALBREATH, J.H., NEWHARD, A.T., TOWNSEND, C.P., Remotely
Reprogrammable Sensors for Structural Health Monitoring, Structural Materials
Technology (SMT): NDE/NDT for Highways and Bridges, 16 September 2004, Buffalo,
NY, USA, 2004.
ARMS, S.W. e TOWNSEND, C.P., Wireless Strain Measurement Systems - Applications
& Solutions, NSF-ESF Joint Conference on Structural Health Monitoring, Strasbourg,
France, Oct 3-5, 2003.
BAGESTEIRO, L. B. Desenvolvimento de uma plataforma para anlise de foras
produzidas por pessoas. Dissertao (Mestrado em Engenharia Mecnica), UFRGS, Porto
Alegre,1996
BIELEN, P.; LOSSIE, M., VANDEPITTE, D., "A low cost wireless multi-channel
measurement system for strain gauges" PROCEEDINGS OF ISMA2002 - VOLUME II, 2002,
http://www.isma-isaac.be/publications/PMA_MOD_publications/ISMA2002/663_670.pdf
BLUETOOTH-ORG, Bluetooth Alliance, endereo http://www.bluetooth.org acessado em
novembro de 2007.
BOARETTO, Neury, TECNOLOGIA DE COMUNICAO EM SISTEMA SCADA
ENFOQUE EM COMUNICAO WIRELESS COM ESPALHAMENTO ESPECTRAL,
Dissertao (Mestrado em Engenharia de Produo), CEFET, PONTA GROSSA, 2005.
BROWNJOHN, John; TJIN, Swee-Chuan; TAN, Guan-Hong, TAN, Boon-Leong e
CHAKRABOORTY, Sushanta, A Structural Health Monitoring Paradigm for Civil
Infrastructure, 1st FIG International Symposium on Engineering Surveys for
Construction Works and Structural Engineering, Nottingham, United Kingdom, 28 June
1 July 2004.
BU, Shengrong, Wireless Ad-Hoc Control Networks, Dissertao de Mestrado em
Engenharia Eltrica, Escola de Engenharia Eltrica, Computao e Engenharia de
Telecomunicaes da Universidade de WOLLONGONG, CHINA, 2005.
150
CASTALDO, F.C., Investigao de Rudo e Sensibilidade em MAGFETs e Avaliao
de seu Emprego no Controle de Emisso Eletromagntica em Circuitos Integrados de
Potncia. Tese (Doutorado em Engenharia Eltrica), UNICAMP, 2005.
CLULA. Clulas de carga. Endereo: www.celuladecarga.com.br, acessado em, agosto de
2007.
CHAVES, Joo Carlos, Uso da Tecnologia GPS na Monitorao de Deformao: Sistemas,
Etapas e Experimentos. Tese (Doutorado em Engenharia Civil), USP - So Carlos, 2001.
COSTA, Antnio Casimiro Ferreira da, NavCim Uma Arquitectura Distribuda de Suporte
ao Controlo e Superviso em Tempo-real de Processos Industriais. Dissertao (Mestrado
em Engenharia Electrotcnica e de Computadores), Universidade Tcnica de Lisboa, Setembro
de 1995.
CUNHA, Judson Michel. Prottipo de rede industrial utilizando o padro serial RS485 e
protocolo modbus. 2000. 108 f. Trabalho de Concluso de Curso (Bacharelado em Cincias da
Computao) - Centro de Cincias Exatas e Naturais, Universidade Regional de Blumenau,
Blumenau. DATAFORTH, Dataforth Corporation - AN118, endereo: www.dataforth.com,
acessado em agosto de 2007.
DEMOLDER, S. e CARLSTER, A. V., The measuring of 1/f noise of thick and thin lm
resistors, Journal of Physics E: Scientic Instrumentation, Vo. 13, 1980.
DOEBELIN, Ernest O., Measurement Systems - Application and Design, 5 Ed.,
McGrawHill, 2004.
DOEBLIN, S. W.; FARRAR, C. R.; PRIME, M. B.; SHEVITZ, D. W., Damage Identication
and Health Monitoring of Structural and Mechanical Systems from Changes in Their
Vibration Characteristics: A Literature Review, Los Alamos National Laboratory, LA,
USA, 1996.
DYDENSBORG, Mads Bondo, Connection Oriented Sensor Networks, Tese (Doutorado em
Cincia da computao), Universidade de Copenhagen, Dinamarca, 2004.
ELGAMAL, Ahmed; CONTE, Joel P.; YAN, Linjun; FRASER, Michael, A Framework
for Monitoring Bridges and Civil Infrastructure, Department of Structural Engineering
University of California, San Diego La Jolla, CA, 2005.
FERREIRA, Elnatan Chagas, DEMIC DEPARTAMENTO DE
ELETRNICA E MICROELETRNICA. So Paulo, Disponvel
em:http://www.demic.fee.unicamp.br/~elnatan/ie321/ie321.htm. Acesso em: 05 out.
2007.
FRADEN, Jacob, Handbook of modern sensors: physics, designs, and applications, Editora
Springer, 3 Edio,589 p., 2004.
FURMAN, B.J., ME 120 Experimental Methods Force, Torque, Stress, and Strain
Measurement, 2003.
GIACOLETTO, L. J., Electronics Designers Handbook, second edition, McGraw-Hill Book
Company, New York, 1977.
151
GALBREATH, J. H., TOWSEND, C.P.; MUNDELL, S. W.; HAMEL, M. J.; ESSER,
B.; HUSTON, D.; ARMS, S. W., Civil Structure Strain Monitoring with Power-Efcient
High-Speed Wireless Sensor Networks, International Workshop for Structural Health
Monitoring, Stanford, CA, September, 20, 2003.
GOMES, Francisco Carlos; CALIL JNIOR, Carlito, Estudo terico e Experimental das
Aes em Silos Horizontais, Cadernos de Engenharia de Estruturas, USP - So Carlos, v.
7, n. 24, p. 35-63, 2005.
GONALVES, Luiz Fernando, Contribuies para o Estudo Terico e Experimental
de Sistema de Gerao Distribuda, Dissertao (mestrado em Engenharia Eltrica),
Universidade Federal do Rio Grande do Sul, Porto Alegre, maro de 2004.
HEJLL, Arvid, Civil Structural Health Monitoring - Strategies, Methods and Applications,
Tese (Doutorado em Engenharia Civil), Lule University of Technology, 2007.
HILL, Jason Lester, System Architecture for Wireless Sensor Networks, Tese (Doutorado
em Cincia da Computao), Universidade da Califrnia, Berkeley, 2003.
HILL, JASON; SZEWCZYK, ROBERT; WOO, ALEC; HOLLAR, SETH; CULLER,
DAVID; PISTER, KRISTOFER, System Architecture Directions for Networked
Sensors,Proceedings of the Ninth International Conference on Achitetural Support for
Programming Languagens and Operating Systems, pp. 93-104, Cambridge,MA, USA,
2000. endereo: http://www.tinyos.net/papers/tos.pdf., acessado em 30/08/2007.
ILARIONOV, Rajcho; SIMEONOV, Ivan; KILIFAREV, Hristo, Information system with
light display for visualization of temperature, pressure and time. International Conference on
Computer Systems and Technologies - CompSysTech 2005, 2005.
JDM PROGRAMMER, endereo: http://www.jdm.homepage.dk/newpics.htm, acessado em
15 de novembro de 2007.
KESTER, Walt, Analog Devices Inc., Practical Design Techniques for sensor signal
conditioning. Published by Analog Devices.
KIJEWSKI-CORREA, T., HAENGGI, M. e ANTSAKLIS, P., Multi-scale wireless sensor
networks for structural health monitoring, http://www.nd.edu/~pantsakl/publications/345-
ISHMII05.pdf, 2005.
LIN, Mark W.; THADURI, Jagan; GOPU, Vijaya, A Distributed Strain Sensor for Bridge
Monitoring, Department of Civil and Environmental Engineering, UTCA - University
Transportation Center for Alabama, 2003.
LEONG, Wai Yie, Smart Battery Monitoring System, Monograa (Bachelor of Engineering
(Honours)), Department of Information Technology and Electrical Engineering, University of
Queensland, USA, October, 2001.
LENG, J. S. Structural Health Monitoring of Smart Civil Structures Using Fibre Optic
Sensors, Electronic Publication www.NDT.net, Vol. 10, No. 5, Maio 2005.
LUI, S.C.; TOMIZUKA, M., Strategic Research for Sensors and Smart Structures
Technology First International Conference on Structural Health Monitoring and
Intelligent Infrastructure (SHMII-12003), Tokyo, Japan, November 1315, 2003.
152
LYNCH, J. P.; LAW, K. H.; KIREMIDYIAN, A. S.; KENNY, T. W.; CARRYER, E.;
PARTRIDGE, A., The Design of a Wireless Sensing Unit for Structural Health Monitoring.
Proceedings os the 3rd International Workshop on Structural Health Monitoring. Stanford, CA,
USA, September 12-14, 2001.
LYNCH, J. P.; KINCHO, H. L.; KIREMIDJIAN, A., A wireless modular monitoring system
for civil structures, Proceedings of the 20th International Modal Analysis Conference
(IMAC XX), Los Angeles, CA, USA, February 4-7, 2002.
MADGETECH, STRAIN GAGES Use with BRIDGE110 datalogger - Application Note,
endereo: http://www.madgetech.com/pdf_les/app_notes/bridge110_app _note.pdf, acessado
em agosto de 2007.
MALLADI, R.; AGRAWAL, D. P., Current and future applications of mobile and wireless
networks, Communications of the ACM, ACM Press, ISSN 0001- 0782,vol. 45, no. 10, pp
144-146, 2002.
MAXIM-DALLAS, APPLICATION NOTE 3426 Resistive Bridge Basics: Part One,
acessado em 30/08/2007 no emdereo eletrnico http://www.maxim-ic.com/an3426, 2004.
MAXIM-DALLAS, APPLICATION NOTE 3545 Resistive Bridge Basics: Part Two,
acessado em 30/08/2007 no emdereo eletrnico http://www.maxim-ic.com/an3545, 2004.
Measurements Group, Strain Gage Measurement System,
http://www.measurementsgroup.com/guide/ta/sgms/sgmsndex.htm, acessado em janeiro
de 2007.
MELLO, Alexandre Jos Tuoto Silveira, Um Estudo da Aplicao de Redes de Sensores
para Monitorao da Proteo Catdica em Dutos, Dissertao (Mestrado em Engenharia
Eltrica e Informtica Industrial), Universidade Tecnolgica Federal do Paran - Campus
Curitiba, ABRIL-2007.
MODBUS-IDA.ORG, MODBUS over Serial Line Specication and Implementation Guide
V1.01 - 2006, endereo: http://www.modbus.org/, acessado em agosto 2007.
MODBUS-IDA.ORG, MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1a
- 2006, endereo: http://www.modbus.org/, acessado em agosto 2007.
MODICON, MODBUS PROTOCOL, endereo: http://www.http://www.modicon.com/
techpubs/toc7.html, acessado em agosto, 2007
MORAIS, P. Gil; SANTOS, C. Almeida; CARVALHO, Mariana R., Sistema Automtico
de Medio para Ensaios de Ancoragens, Centro de Instrumentao Cientca (CIC)
Departamento de Geotecnia (DG) Laboratrio Nacional de Engenharia Civil, Lisboa, Portugal,
2005.
endereo: http://www.mosis.org.
NAGAYAMA, T.; RUIZ-SANDOVAL, M.; SPENCER JR., B. F.; MECHITOV, K. A.; AGHA,
G., Wireless Strain Sensor Development for Civil Infrastructure, 2004.
NAPOLINANO, Flvio, Projeto de uma clula de carga para aplicao em suspenses
veiculares, Dissertao (Mestrado em Engenharia Mecnica), UNICAMP, CAMPINAS - SP,
2000.
153
NAVES, E. L. M. Desenvolvimento de uma plataforma de fora para anlise da performance
biomecnica. Dissertao (Mestrado em Engenharia Eltrica), UFU, 2001.
NOVUS PRODUTOS ELETRNICOS LTDA, Conceitos bsicos de RS485 E RS422,
endereo: www.novus.com.br, acessado em novembro de 2007
PANHAN, Andr Marcelo, Sistema de Aquisio de Dados e Monitoramento Remoto para
Cmaras Frias e Sistemas de Refrigerao, Dissertao (Mestrado em Engenharia Eltrica),
Faculdade de Engenharia Eltrica e de Computao - UNICAMP, CAMPINAS, 2002.
PENTEADO NETO, Renato de Arruda, Sistemas para Deteco de Falta de Alta
Impedncia e de Rompimento de Condutores em Redes de Distribuio de Energia
Eltrica, Tese (Doutorado em Engenharia dos Materiais), Universidade Federal do Paran,
CURITIBA, 2005.
PEREIRA, Marluce R., AMORIM, Cludio L., CASTRO, Maria Clicia Stelling, Tutorial
sobre Redes de Sensores, Departamento de Informtica e Cincia da Computao Instituto de
Matemtica e Estatstica-CTC Universidade do Estado do Rio de Janeiro, Brasil, 2003.
RAGHUVANSHI, Manish, Implementation of Wireless Sensor Mote , Dissertao
de Mestrado em Tecnologia, DEPARTMENT OF NUCLEAR ENGINEERING AND
TECHNOLOGY INDIAN INSTITUTE OF TECHNOLOGY, KANPUR, INDIA, 2006.
ROSSI, Silvano Renato, Implementao de um N IEEE 1451, baseado em ferramentas
abertas e padronizadas, para aplicaes em ambientes de instrumentao distribuda,
Tese (Doutorado em Engenharia Eltrica), UNESP, Ilha Solteira, 2005.
RUBIO, MRIO GONGORA, Curso de Introduo Instrumentao em Engenharia -
Mdulo Bsico, Instituto de Pesquisas Tecnolgicas do Estado de So Paulo IPT Diviso de
engenharia Mecnica, So Paulo, 2000.
SANDOVAL, Manuel E. Ruiz, Smart Sensors for Civil Infrastructure Systems, Tese
(doutorado em Engenharia Civil e Cincias Geolgicas), Universidade de Notre Dame, Indiana,
EUA, 2004.
SATO, Flvio Hiochio, Automao do Sistema de Carregamento em Ensaios Estruturais,
Dissertao ( Mestrado em Engenharia Civil), UNESP - ILHA SOLTEIRA, 2002.
SEDRA e SMITH, Microeletrnica, 3 ed. , Prentice Hall, 2004.
SEIXAS FILHO, Constantino, Captulo 3 -Protocolos Orientados a caracter, UFMG
Departamento de Engenharia Eletrnica, 2006.
SCHULZ, M.J.; SUNDARESAN, M.J., Smart Sensor System for Structural Condition
Monitoring of Wind Turbines, National Renewable Energy Laboratory, May 30, 2002
April 30, 2006.
SEIXAS, C., Arquiteturas de sistemas de automao - Uma introduo. endereo:
http://www.cpdee.ufmg.br/~seixas/PaginaII/Download/IIDownload.htm. Acesso em:
16/03/2007
SERRANO, L. M. V.; ALCOBIA, C. J. O. P. J.; MATEUS, M. L. O. S.; SILVA, M. C. G.,
Sistemas de Aquisio, Processamento e Armazenamento de Dados, Universidade de
Coimbra, Portugal, 2003.
154
SIMUNIC, Zelimir; GASPARAC, Ivan; PAVLOVIC, Bozidar, Implementation Of Digital
Measurement System In Monitoring Of Structures. Construction Informatics Digital
Library , 2001, endereo: http://itc.scix.net/paper ecce-2001-33.content, acessado em agosto
de 2007.
SMITH, Steven W., The Scientist and Engineers Guide to Digital Signal Processing,
disponvel no endereo: http://www.dspguide.com, acessado em janeiro de 2007.
SNOWDON, David, Hardware and Software Infrastructure for the Optimisation of
Sunswift II, Monograa (Bacharelado em Engenharia), UNIVERSITY OF NEW SOUTH
WALES, SCHOOL OF ELECTRICAL ENGINEERING & TELECOMMUNICATIONS
SCHOOL OF COMPUTER SCIENCE & ENGINEERING, USA, 2002.
SPENCER, B. F., Opportunities and Challenges for Smart Sensing Technology, Proceedings
of the First International Conference on Structural Health Monitoring and Intelligent
Infrastructure, Tokyo, Japan, 2003.
SYMANS, Michael D. e KELLY, Steven W., Fuzzy Logic Control of Bridge Structures
Using Intelligent Semi-Active Seismic Isolation Systems, Earthquake Engineering and
Structural Dynamics, v. 28, 1999.
TANEMBAUM, A. S., Redes de Computadores. Editora Campus, Rio de Janeiro, 1997
THOM, V., Galerkin Finite Element Methods for Parabolic Problems, Springer-Verlag,
Berlin-Heidelber, 1997.
TRISTO, Ivanio Machado, IMPLEMENTAO DO PROTOCOLO PROFIBUS
PARA APLICAES INDUSTRIAIS BASEADAS EM MICROCONTROLADORES,
Monograa (Trabalho de Concluso de Curso de Cincia da Computao) da Universidade
Luterana do Brasil, cmpus Gravata, 2004.
UCSD, endereo http://healthmonitoring.ucsd.edu, acessado em agosto de 2007
Projetos de Circuitos Integrados na Universidade Estadual de Londrina: Implementao
Monoltica de Sensores de Corrente e Potncia Eltrica. Projeto de Pesquisa cadastro no.
04379.
XU, Ning; RANGWALE, Sumit; CHINTALAPUDI, Krishn Kant; GANESAN, Deepak;
BROAD, Alan; GOVINDAN, Ramesh; ESTRIN, Deborah, A Wireless Sensor Network For
Structural Monitoring, SenSys04, Baltimore, Maryland, USA. ACM, November 35, 2004.
WEBSTER, J.G., Measurement, Instrumentation and Sensors Handbook, CRC Press,
2617p, 1999.
WILLIAMS, C.B.; PAVIC, A.; CROUCH, R.S. e WOODS, R.C., Feasibility study
of vibration-electric generator for bridge vibration sensors. Proceedings of the 16th
International Modal Analysis Conference IMAC, pp. 1111 1117, 1998.
WI-FI-ORG, Wi-Fi Alliance, endereo: http://www.wi-.org acessado em novembro de 2007.
155
ZEILMANN, R. P. Uma estratgia Para Controle e Superviso de Processos Industriais
Via Internet. Dissertao (Mestrado em Engenharia Eltrica), Universidade Federal do Rio
Grande do Sul, Porto Alegre, 2002.
ZIGBEE-ORG, Zigbee Specication, endereo : http://www.zigbee.org acessado em agosto
de 2007.
156
ANEXO I - ESQUEMA ELTRICO COMPLETO
DO TERMINAL DE REDE
Figura 104: DIAGRAMA ESQUEMTICO COMPLETO DO N DE REDE
157
ANEXO II - LISTAGEM DOS PROGRAMAS DO
TERMINAL DE REDE
MB_SLAVE. H
/
*
ARQUIVO CABEALHO COM AS DEFINIES DAS VARIVEIS ,
ENDEREOS DE DISPOSITIVOS DE ENTRADA E SADA E
DEMAIS CONSTANTES UTILIZADAS POR TODOS OS PROGRAMAS DO SISTEMA
*
/
# i f n d e f _MB_SLAVE
# d e f i n e _MB_SLAVE TRUE
# d e f i n e _PIC
# d e f i n e WDT_EN TRUE / / WDT HABILITADO
# i f d e f _PIC
# i n c l u d e <16F876 . h>
# de vi c e =
*
=16
# de vi c e adc =10
# use f a s t _ i o (A)
# use f a s t _ i o ( B)
# use f a s t _ i o ( C)
#FUSES XT / / Cr y s t a l osc <= 4mhz
#FUSES PUT / / Power Up Ti mer
#FUSES NOPROTECT / / Code not p r o t e c t e d from r e a di ng
#FUSES BROWNOUT / / Res et when br ownout d e t e c t e d
#FUSES NOLVP / / No low v o l t a g e prgmi ng , B3( PIC16 ) or B5( PIC18 ) used f o r I / O
#FUSES NOCPD / / No EE p r o t e c t i o n
#FUSES NOWRT / / Program memory not wr i t e p r o t e c t e d
#FUSES NODEBUG / / No Debug mode f o r ICD
# i f WDT_EN
#FUSES WDT / / Watch Dog Ti mer ENABLED
# use de l a y ( c l oc k =4000000 ,RESTART_WDT)
# use r s 232 ( baud =9600 , xmi t =PIN_C6 , r cv=PIN_C7 , BRGH1OK, ERRORS)
# e l s e
#FUSES NOWDT / / Watch Dog Ti mer DISABLED
# use de l a y ( c l oc k =4000000)
# use r s 232 ( baud =9600 , xmi t =PIN_C6 , r cv=PIN_C7 , BRGH1OK, ERRORS)
# e n d i f
t y p e d e f i n t 1 BOOL; / / 0 ou 1
t y p e d e f uns i gned c ha r UCHAR; / / 0 255
t y p e d e f uns i gned i n t 1 6 USHORT;
t y p e d e f uns i gned i n t 3 2 ULONG;
# d e f i n e LED_TX 1 / / LED1 QA
# d e f i n e LED_RX 2 / / LED2 QB
# d e f i n e LED_LEFT 16 / / LED5 QE
# d e f i n e LED_CENTER 8 / / LED4 QD
# d e f i n e LED_RIGHT 4 / / LED3 QC
# e n d i f
# i f d e f _8051
s b i t LED_RX = P2 ^0; / / pi no 21>R7>Q1>R9>D3
s b i t LED_TX = P2 ^2; / / pi no 23
s b i t AF = P2 ^4;
# d e f i n e ENABLE_WDT WMCON | = 1;
# d e f i n e RESET_WDT WMCON | = 2;
# d e f i n e SET_TIME_WDT_128MS WMCON &= (2551286432); WMCON | = 128;
# e n d i f
# d e f i n e LIGADO 0
# d e f i n e DESLIGADO 1
# d e f i n e BITS_UCHAR 8U
# i f n d e f TRUE
# d e f i n e TRUE 1
# e n d i f
# i f n d e f FALSE
# d e f i n e FALSE 0
# e n d i f
# d e f i n e MB_REG_WRITE 0
# d e f i n e MB_REG_READ 1
# d e f i n e MB_ADDRESS_BROADCAST 0 /
*
ENDEREO PARA BROADCAST DO MODBUS.
*
/
# d e f i n e MB_ADDRESS_MIN 1 /
*
MENOR ENDEREO POSSVEL
*
/
# d e f i n e MB_ADDRESS_MAX 247 /
*
MAIOR ENDERECO POSSVEL
*
/
# d e f i n e MB_FUNC_NONE 0
# d e f i n e MB_FUNC_READ_COILS 1
# d e f i n e MB_FUNC_READ_DISCRETE_INPUTS 2
# d e f i n e MB_FUNC_READ_HOLDING_REGISTER 3
# d e f i n e MB_FUNC_READ_INPUT_REGISTER 4
158
# d e f i n e MB_FUNC_WRITE_SINGLE_COIL 5
# d e f i n e MB_FUNC_WRITE_SINGLE_REGISTER 6
# d e f i n e MB_FUNC_DIAG_READ_EXCEPTION 7
# d e f i n e MB_FUNC_DIAG_DIAGNOSTIC 8
# d e f i n e MB_FUNC_DIAG_GET_COM_EVENT_CNT 11
# d e f i n e MB_FUNC_DIAG_GET_COM_EVENT_LOG 12
# d e f i n e MB_FUNC_WRITE_MULTIPLE_COILS 15
# d e f i n e MB_FUNC_WRITE_MULTIPLE_REGISTERS 16
# d e f i n e MB_FUNC_OTHER_REPORT_SLAVEID 17
# d e f i n e MB_FUNC_READWRITE_MULTIPLE_REGISTERS 23
# d e f i n e MB_FUNC_READ_DEVICE_IDENTIFICATION 43
# d e f i n e MB_FUNC_ERROR 128
/ / Modbus Coi l s Bi t s , bi na r y val ues , f l a g s 00001
/ / Di g i t a l I n p u t s Bi nar y i n p u t s 10001
/ / Anal og I n p u t s Anal og i n p u t s 30001
/ / Modbus Re g i s t e r s Anal og val ues , v a r i a b l e s 40001
# d e f i n e MB_SER_PDU_ADDR_OFF 1 /
*
OFFSET DO ENDEREO DA ESTAO ESCRAVA NO QUADRO SERPDU
*
/
# d e f i n e MB_SER_PDU_PDU_OFF 1 /
*
OFFSET DO MODBUSPDU NO QUADRO SERPDU.
*
/
# d e f i n e MB_PDU_SIZE_MAX 64 /
*
TAMANHO MXIMO DA PDU.
*
/
# d e f i n e MB_PDU_SIZE_MIN 1 /
*
CDIGO DA FUNO
*
/
# d e f i n e MB_PDU_FUNC_OFF 0 /
*
OFFSET DO CDIGO DA FUNO NA PDU.
*
/
# d e f i n e MB_PDU_DATA_OFF 1 /
*
OFFSET PARA O DADO DE RESPOSTA NA PDU
*
/
/
*
READ
*
/
# d e f i n e MB_PDU_FUNC_READ_SIZE ( 4 )
# d e f i n e MB_PDU_FUNC_READ_REGCNT_MAX ( 0x007D )
# d e f i n e MB_PDU_FUNC_READ_DISCCNT_MAX ( 0x07D0 )
# d e f i n e MB_PDU_FUNC_WRITE_MUL_COILS_REGCNT_MAX ( 0x0078 )
# d e f i n e MB_PDU_FUNC_READ_RSP_BYTECNT_OFF ( MB_PDU_DATA_OFF )
# d e f i n e MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
# d e f i n e MB_PDU_FUNC_READ_REG_START_OFF ( MB_PDU_DATA_OFF )
# d e f i n e MB_PDU_FUNC_READ_REGCNT_OFF ( MB_PDU_DATA_OFF + 2 )
# d e f i n e MB_PDU_FUNC_READ_COILCNT_OFF ( MB_PDU_DATA_OFF + 2 )
# d e f i n e MB_PDU_FUNC_READ_DISCCNT_OFF ( MB_PDU_DATA_OFF + 2 )
/
*
WRITE
*
/
# d e f i n e MB_PDU_FUNC_WRITE_SIZE ( 4 )
# d e f i n e MB_PDU_FUNC_WRITE_ADDR_OFF ( MB_PDU_DATA_OFF )
# d e f i n e MB_PDU_FUNC_WRITE_VALUE_OFF ( MB_PDU_DATA_OFF + 2 )
/
*
WRITE MULT
*
/
/
*
READWRITE
*
/
# d e f i n e MB_PDU_FUNC_READWRITE_SIZE_MIN ( 9 )
# d e f i n e MB_PDU_FUNC_READWRITE_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
# d e f i n e MB_PDU_FUNC_READWRITE_WRITE_ADDR_OFF ( MB_PDU_DATA_OFF + 4)
# d e f i n e MB_PDU_FUNC_READWRITE_BYTECNT_OFF ( MB_PDU_DATA_OFF + 8)
# d e f i n e MB_PDU_FUNC_READWRITE_READ_REGCNT_OFF ( MB_PDU_DATA_OFF + 2)
# d e f i n e MB_PDU_FUNC_READWRITE_WRITE_REGCNT_OFF ( MB_PDU_DATA_OFF + 6)
# d e f i n e MB_PDU_FUNC_READWRITE_WRITE_VALUES_OFF ( MB_PDU_DATA_OFF + 9)
# d e f i n e MB_POS_START_PDU_RTU 1
# d e f i n e MB_POS_START_PDU_ASCII 3 / / : A( h ) A( l ) f nc
# i f n d e f MB_PORT_HAS_CLOSE
# d e f i n e MB_PORT_HAS_CLOSE 0
# e n d i f
# d e f i n e MB_FUNC_OTHER_REP_SLAVEID_BUF ( 32 )
# i f n d e f _MBERRORCODE
# d e f i n e _MBERRORCODE TRUE
t yp e de f enum
{
MB_ER_NONE, /
*
SEM ERRO
*
/
MB_ER_INV_REG_ADDRESS, /
*
ENDEREO IEGAL DE REGISTRADOR
*
/
MB_ER_INV_ARGUMENT, /
*
ARGUMENTO ILEGAL
*
/
MB_ER_INVALID_PROTOCOL, / / PROTOCOLO_INVALIDO
MB_ER_PORT_SERIAL, / / e r r o na p o r t a s e r i a l
MB_ER_PORT_TIMER, / / e r r o no t i me r
MB_ER_PORT_EVENT, / / ERRO EM EVENTOS
MB_ER_TOO_LATE, / / Recebeu o u t r a t r a n s mi s s o a n t e s de e n v i a r a r e s p o s t a a n t e r i o r
MB_ER_NO_RESOURCES, /
*
RECURSOS INSUFICIENTES
*
/
MB_ER_IO, /
*
ERRO DE ENTRADA OU SAIDA
*
/
MB_ER_ILLSTATE, /
*
A CAMADA DO PROTOCOLO EST EM UM ESTADO ILEGAL
*
/
MB_ER_TIMEDOUT, /
*
OCORREU UM ERRO POR ESGOTAMENTO DE TEMPO
*
/
MB_ER_CRC,
MB_ER_PDU_LENGTH
} MBErrorCode ;
# e n d i f
# i f n d e f _MBEXCEPTION
# d e f i n e _MBEXCEPTION TRUE
159
t yp e de f enum
{
MB_EX_NONE = 0x00 ,
MB_EX_ILLEGAL_FUNCTION = 0x01 ,
MB_EX_ILLEGAL_DATA_ADDRESS = 0x02 ,
MB_EX_ILLEGAL_DATA_VALUE = 0x03 ,
MB_EX_SLAVE_DEVICE_FAILURE = 0x04 ,
MB_EX_ACKNOWLEDGE = 0x05 ,
MB_EX_SLAVE_BUSY = 0x06 ,
MB_EX_MEMORY_PARITY_ERROR = 0x08 ,
MB_EX_GATEWAY_PATH_FAILED = 0x0A ,
MB_EX_GATEWAY_TGT_FAILED = 0x0B
} MBException ;
# e n d i f
# i f n d e f _MBMODE
# d e f i n e _MBMODE TRUE
t yp e d e f enum
{
MB_RTU, /
*
MODO RTU
*
/
MB_ASCII , /
*
MODO ASCII
*
/
MB_TCP /
*
MODO TCP
*
/
} MBMode;
# e n d i f
# i f n d e f _MBPARITY
# d e f i n e _MBPARITY TRUE
t y p e d e f enum
{
MB_PAR_NONE, /
*
SEM PARIDADE
*
/
MB_PAR_ODD, /
*
PARIDADE IMPAR
*
/
MB_PAR_EVEN /
*
PARIDADE PAR
*
/
} MBPari t y ;
# e n d i f
# i f n d e f _MBRCVSTATE
# d e f i n e _MBRCVSTATE TRUE
t y pe de f enum
{
STATE_RX_INIT=0 ,
STATE_RX_IDLE, /
*
O RECEPTOR EST NO ESTADO DE REPOUSO
*
/
STATE_RX_RCV, /
*
UM QUADRO EST SENDO RECEBIDO
*
/
STATE_RX_ERROR
} MBRcvState ;
# e n d i f
# i f n d e f _MSSNDSTATE
# d e f i n e _MSSNDSTATE TRUE
t y pe de f enum
{
STATE_TX_IDLE , /
*
O TRANSMISSOR EST NO ESTADO DE REPOUSO
*
/
STATE_TX_TRANSMITTING /
*
O TRANSMISSOR EST NO ESTADO TRANSMITINDO
*
/
} MBSndState ;
# e n d i f
# i f n d e f _STATE_MAIN
# d e f i n e _STATE_MAIN TRUE
t y pe de f enum {
STATE_MAIN_IDLE=0 ,
STATE_MAIN_FRAME_RECEIVED,
STATE_MAIN_START_TX,
STATE_MAIN_TRANSMITTING
} s t a t e _ ma i n ;
# e n d i f
/
*
v a r i v e i s e x t e r n a s
*
/
# i f d e f _PIC
s t a t i c MBErrorCode eMBErrorCode ;
s t a t i c MBException eMBExcept i on ;
s t a t i c MBMode eMBCurrentMode ;
s t a t i c s t a t e _ ma i n e s t a t e _ ma i n ;
s t a t i c MBSndState eMBSndSt at e ;
s t a t i c MBRcvState eMBRcvState ;
s t a t i c UCHAR v a r _ o u t p u t ;
s t a t i c UCHAR gucRcvAddr ess ; / / ADDRESS = ender eo r e c e bi d o
s t a t i c UCHAR gucRcvFunct i on ; / / FUNCTION = FUNO RECEBIDA
s t a t i c UCHAR guc Thi s St a t i onAddr e s s ; / / ender eo d e s t a e s t a o
s t a t i c UCHAR gucSndBuf f er Count ;
s t a t i c UCHAR gucSndBuf f er Pos ; / / pos i o de t r a n s mi s s o do c a r a c t e r a t u a l
s t a t i c UCHAR gucRcvBuf f er Pos ; / / pos i o de r e c e bi me nt o do c a r a c t e r a t u a l
160
s t a t i c UCHAR gucPUCFrameLength ;
s t a t i c UCHAR gucRcvBuf f er [ MB_PDU_SIZE_MAX] ; / / b u f f e r de r e c e p o ( tambm de TRANSMISSO)
s t a t i c BOOL FLAG_FRAME_RECEIVED;
/ / s t a t i c BOOL FRAME_RECEIVED;
s t a t i c BOOL FRAME_TRANSMITTED;
s t a t i c BOOL FLAG_STATE_RX_IDLE;
s t a t i c BOOL FLAG_LED_RX_ON;
s t a t i c BOOL LED_RX_ON;
s t a t i c BOOL FLAG_LED_RX_OFF;
s t a t i c BOOL LED_RX_OFF;
s t a t i c BOOL INICIANDO = TRUE;
s t a t i c BOOL CALIBRANDO_PONTE=FALSE;
s t a t i c BOOL CALIBRANDO_SISTEMA=FALSE;
s t a t i c BOOL CALIBRANDO_SHUNT=FALSE;
s t a t i c BOOL RECALIBRANDO=FALSE;
s t a t i c BOOL LENDO_TEMPERATURA=FALSE;
s t a t i c BOOL LENDO_RECALIBRACAO;
s t a t i c BOOL FIRST_READING;
s t a t i c BOOL SISTEMA_CALIBRADO;
/ / s t a t i c BOOL cRxEr r or Fl ag = FALSE;
s t a t i c UCHAR e xpe c t e d ;
s t a t i c UCHAR t i me out ;
s t a t i c USHORT o f f s e t _ a t u a l ;
# e n d i f
/
*
f un e s e x t e r n a s
*
/
voi d St ar t _TX ( voi d ) ; / / s e r i a l . c
voi d St ar t _RX ( voi d ) ; / / SERIAL . C
voi d I ni t _SERI AL (USHORT usBaudRat e , MBPari t y e P a r i t y ) ; / / s e r i a l . c
voi d Liga_LED(UCHAR mask ) ;
voi d Desl i ga_LED (UCHAR mask ) ;
voi d s p i _ e s c r e v e _ b y t e (UCHAR dado ) ;
voi d Le_ADC( voi d ) ;
# i f d e f _8051
voi d e n a b l e _ i n t e r r u p t s (UCHAR i n t e r r u p t i o n ) ; / / main . c
voi d d i s a b l e _ i n t e r r u p t s (UCHAR i n t e r r u p t i o n ) ; / / main . c
voi d s e t _ t i me r 2 (USHORT t i me out ) ; / / por t i me r 2 . c
# e n d i f
voi d Ini t _TIMER ( voi d ) ; / / p o r t t i me r 2 . c
voi d S t a r t _ t i me r (UCHAR t i me out ) ; / / p o r t t i me r 2 . c
voi d S t a r t _ t i me r 2 (UCHAR t i me out ) ;
voi d eMBRTUInit ( USHORT usBaudRat e , MBPari t y e P a r i t y ) ; / / mb_r t u . c
voi d eMBRTUStart ( voi d ) ;
MBErrorCode eMBRTUReceive ( voi d ) ;
MBErrorCode eMBRTUSend( voi d ) ;
# e n d i f
161
MB_SLAVE. C
/
*
Fi n a l i d a d e : pr ogr ama p r i n c i p a l
pa r me t r os : nenhum
r e t o r n o : nenhum
*
/
# i n c l u d e <mb_sl ave . h>
# i n c l u d e <mb_conf i g . h>
/ / al gumas f un e s podem s e r i mpl ement adas ou no
/ / o a r qui vo de c a be a l ho MB_CONFIG. H u t i l i z a d o pa r a c o n f i g u r a r
/ / as l i n h a s abai xo
# i f FUNC_READ_COILS_ENABLED
# i n c l u d e " Func _r e a d_c oi l s . c "
# e n d i f
# i f FUNC_READ_DISCRETE_INPUTS_ENABLED
# i n c l u d e " Fu n c _ r e a d _ d i s c r e t e _ i n p u t s . c "
# e n d i f
# i f FUNC_READ_HOLDING_REGISTER_ENABLED
# i n c l u d e " Fu n c _ r e a d _ h o l d i n g _ r e g i s t e r . c "
# e n d i f
# i f FUNC_READ_INPUT_REGISTER_ENABLED / / 0X04
# i n c l u d e " Fu n c _ r e a d _ i n p u t _ r e g i s t e r . c "
# e n d i f
# i f FUNC_WRITE_SINGLE_COIL_ENABLED
# i n c l u d e " Fu n c _ wr i t e _ s i n g l e _ c o i l . c "
# e n d i f
# i f FUNC_WRITE_SINGLE_REGISTER_ENABLED / / 0X06
# i n c l u d e " F u n c _ wr i t e _ s i n g l e _ r e g i s t e r . c "
# e n d i f
# i f FUNC_DIAG_READ_EXCEPTION_ENABLED
# i n c l u d e " Func _di a g_r e a d_e xc e pt i on . c "
# e n d i f
# i f FUNC_DIAG_DIAGNOSTIC_ENABLED
# i n c l u d e " Fun c _ d i a g _ d i a g n o s t i c . c "
# e n d i f
# i f FUNC_DIAG_GET_COM_EVENT_CNT_ENABLED
# i n c l u d e " Func_di ag_get _com_event _cnt . c "
# e n d i f
# i f FUNC_DIAG_GET_COM_EVENT_LOG_ENABLED
# i n c l u d e " Func_di ag_get _com_event _l og . c "
# e n d i f
# i f FUNC_WRITE_MULTIPLE_COILS_ENABLED
# i n c l u d e " Fu n c _ wr i t e _ mu l t i p l e _ c o i l s . c "
# e n d i f
# i f FUNC_WRITE_MULTIPLE_REGISTERS_ENABLED
# i n c l u d e " F u n c _ wr i t e _ mu l t i p l e _ r e g i s t e r s . c "
# e n d i f
# i f FUNC_OTHER_REPORT_SLAVEID_ENABLED
# i n c l u d e " Fu n c _ o t h e r _ r e p o r t _ s l a v e i d . c "
# e n d i f
# i f FUNC_READWRITE_MULTIPLE_REGISTERS_ENABLED
# i n c l u d e " F u n c _ r e a d wr i t e _ mu l t i p l e _ r e g i s t e r s . c "
# e n d i f
# i f FUNC_READ_DEVICE_IDENTIFICATION_ENABLED
# i n c l u d e " F u n c _ r e a d _ d e v i c e _ i d e n t i f i c a t i o n . c "
# e n d i f
# i n c l u d e " mb_r t u . c "
# i f d e f _PIC
# i n c l u d e " por t t i me r 2_PI C . c "
# i n c l u d e " p o r t s e r i a l _ P I C . c "
# i n c l u d e " s p i . c "
# i n c l u d e " portADC . c "
# e n d i f
# i f d e f _8051
# i n c l u d e " por t t i me r 2_8051 . c "
# i n c l u d e " p o r t s e r i a l _ 8 0 5 1 . c "
USHORT gus 3_5_t i meout ;
MBErrorCode eMBErrorCode ;
MBException eMBExcept i on ;
MBMode eMBCurrentMode ;
MBPari t y eMBPar i t y ;
s t a t e _ ma i n e s t a t e _ ma i n ;
MBSndState eMBSndSt at e ;
MBRcvState eMBRcvState ;
UCHAR gucRcvAddr ess ; / / ADDRESS = ender eo r e c e bi d o
UCHAR gucRcvFunct i on ; / / FUNCTION = FUNO RECEBIDA
UCHAR guc Thi s St a t i onAddr e s s ; / / ender eo d e s t a e s t a o
i d a t a UCHAR gucRcvBuf f er [ MB_PDU_SIZE_MAX] ; / / b u f f e r de r e c e p o
i d a t a UCHAR
*
pucPUCFrame ;
UCHAR gucPUCFrameLength ;
UCHAR gucSndBuf f er Count ;
UCHAR gucSndBuf f er Pos ; / / pos i o de t r a n s mi s s o do c a r a c t e r a t u a l
UCHAR gucRcvBuf f er Pos ; / / pos i o de r e c e bi me nt o do c a r a c t e r a t u a l
BOOL FRAME_RECEIVED=FALSE;
BOOL FRAME_TRANSMITTED=FALSE;
# e n d i f
/
**********************************
/
BOOL Execut a_Comando ( voi d )
/
**********************************
/
{
s wi t c h ( gucRcvFunct i on )
{
# i f FUNC_READ_COILS_ENABLED
c a s e MB_FUNC_READ_COILS: / / 1
Func _r e a d_c oi l s ( ) ;
br eak ;
# e n d i f
# i f FUNC_READ_DISCRETE_INPUTS_ENABLED
c a s e MB_FUNC_READ_DISCRETE_INPUTS : / / 2
162
Fu n c _ r e a d _ d i s c r e t e _ i n p u t s ( ) ;
br eak ;
# e n d i f
# i f FUNC_READ_HOLDING_REGISTER_ENABLED
c a s e MB_FUNC_READ_HOLDING_REGISTER : / / 3
Fu n c _ r e a d _ h o l d i n g _ r e g i s t e r ( ) ;
br eak ;
# e n d i f
# i f FUNC_READ_INPUT_REGISTER_ENABLED
c a s e MB_FUNC_READ_INPUT_REGISTER : / / 4
Fu n c _ r e a d _ i n p u t _ r e g i s t e r ( ) ;
br eak ;
# e n d i f
# i f FUNC_WRITE_SINGLE_COIL_ENABLED
c a s e MB_FUNC_WRITE_SINGLE_COIL : / / 5
Fu n c _ wr i t e _ s i n g l e _ c o i l ( ) ;
br eak ;
# e n d i f
# i f FUNC_WRITE_SINGLE_REGISTER_ENABLED
c a s e MB_FUNC_WRITE_SINGLE_REGISTER : / / 6
F u n c _ wr i t e _ s i n g l e _ r e g i s t e r ( ) ;
br eak ;
# e n d i f
# i f FUNC_DIAG_READ_EXCEPTION_ENABLED
c a s e MB_FUNC_DIAG_READ_EXCEPTION : / / 7
Func _di a g_r e a d_e xc e pt i on ( ) ;
br eak ;
# e n d i f
# i f FUNC_DIAG_DIAGNOSTIC_ENABLED
c a s e MB_FUNC_DIAG_DIAGNOSTIC : / / 8
Fu nc _ d i a g _ d i a gn o s t i c ( ) ;
br eak ;
# e n d i f
# i f FUNC_DIAG_GET_COM_EVENT_CNT_ENABLED
c a s e MB_FUNC_DIAG_GET_COM_EVENT_CNT : / / 11
Func_di ag_get _com_event _cnt ( ) ;
br eak ;
# e n d i f
# i f FUNC_DIAG_GET_COM_EVENT_LOG_ENABLED
c a s e MB_FUNC_DIAG_GET_COM_EVENT_LOG: / / 12
Func_di ag_get _com_event _l og ( ) ;
br eak ;
# e n d i f
# i f FUNC_WRITE_MULTIPLE_COILS_ENABLED
c a s e MB_FUNC_WRITE_MULTIPLE_COILS : / / 15
Fu n c _ wr i t e _ mu l t i p l e _ c o i l s ( ) ;
br eak ;
# e n d i f
# i f FUNC_WRITE_MULTIPLE_REGISTERS_ENABLED
c a s e MB_FUNC_WRITE_MULTIPLE_REGISTERS : / / 16
F u n c _ wr i t e _ mu l t i p l e _ r e g i s t e r s ( ) ;
br eak ;
# e n d i f
# i f FUNC_OTHER_REPORT_SLAVEID_ENABLED
c a s e MB_FUNC_OTHER_REPORT_SLAVEID : / / 17
Fu n c _ o t h e r _ r e p o r t _ s l a v e i d ( ) ;
br eak ;
# e n d i f
# i f FUNC_READWRITE_MULTIPLE_REGISTERS_ENABLED
c a s e MB_FUNC_READWRITE_MULTIPLE_REGISTERS : / / 23
F u n c _ r e a d wr i t e _ mu l t i p l e _ r e g i s t e r s ( ) ;
br eak ;
# e n d i f
# i f FUNC_READ_DEVICE_IDENTIFICATION_ENABLED
c a s e MB_FUNC_READ_DEVICE_IDENTIFICATION:
F u n c _ r e a d _ d e v i c e _ i d e n t i f i c a t i o n ( ) ; / / 43 sub codi go 14
br eak ;
# e n d i f
d e f a u l t :
eMBExcept i on=MB_EX_ILLEGAL_FUNCTION;
}
r e t u r n ( eMBExcept i on==MB_EX_NONE) ;
}
/
*********************************
/
MBErrorCode De c odi f i c a _f r a me ( voi d )
/
********************************
/
{
# i f MB_ASCII_ENABLED
i f ( gucRcvBuf f er [ 0 ] == : ) / / MODBUS_ASCII
{
eMBCurrentMode = MB_ASCII ;
r e t u r n eMBASCIIReceive ( ) ;
}
e l s e / / MODBUS_RTU
# e n d i f
{
# i f MB_RTU_ENABLED
eMBCurrentMode = MB_RTU;
r e t u r n eMBRTUReceive ( ) ;
/
*
e s t a f uno r e t o r n a :
*
pucRcvAddr ess = o ender eo de d e s t i n o
gus RcvFunct i on = o cdi go da f uno r e c e b i d a
*
pus Lengt h = t amanho t o t a l do PDU a s e r pr oces s ado , ou s e j a ,
t amanho do pdu byt e t o t a l de byt e s byt e CRC
*
/
# e n d i f
}
}
/
**************************************
/
163
BOOL Execut a_Comando_Br oadcas t i ng ( voi d )
/
**************************************
/
{
/ / # d e f i n e PIN_ENABLE_ADDRESS_CHANGING PIN_AX
/ / i f ( CMD_SET_SLAVE_ID)
/ / {
/ / i f ( PIN_ENABLE_ADDRESS_CHANGING)
/ / e St a t u s = eMBSet Sl aveID ( 0x34 , TRUE, gucMBSlaveID , 3 ) ;
/ / }
r e t u r n TRUE;
}
/
*********************************
/
MBErrorCode P r o c e s s a _ b i l h e t e ( voi d )
/
*********************************
/
{
eMBErrorCode = MB_ER_NONE;
eMBExcept i on = MB_EX_NONE;
i f ( De c odi f i c a _f r a me ( ) == MB_ER_NONE) / / s e b i l h e t e v l i d o
{
i f ( gucRcvAddr ess == MB_ADDRESS_BROADCAST )
{
Execut a_Comando_Br oadcas t i ng ( ) ;
}
i f ( gucRcvAddr ess == guc Thi s St a t i onAddr e s s )
/ / s e o b i l h e t e pr a e s t a e s t a o p r o c e s s a . Caso c o n t r r i o , i gnor a !
{
Execut a_Comando ( ) ;
}
}
r e t u r n eMBErrorCode ;
}
/
***************************************
/
UCHAR Mo n t a _ b i l h e t e _ r e s p o s t a ( voi d )
/
**************************************
/
{
UCHAR e St a t u s ;
i f (
( gucRcvAddr ess == MB_ADDRESS_BROADCAST ) / / SE BROADCASTING
| |
( gucRcvAddr ess ! = guc Thi s St a t i onAddr e s s ) / / OU NO PR ESTA ESTAO
)
{
r e t u r n FALSE;
}
# i f MB_ASCII_ENABLED
i f ( eMBCurrentMode == MB_ASCII )
{
e St a t u s = eMBASCIISend ( ) ;
}
e l s e / / MB_RTU
# e n d i f
{
# i f MB_RTU_ENABLED
e St a t u s = eMBRTUSend ( ) ;
/
*
e s t a f uno r e t o r n a :
*
pucRcvAddr ess = o ender eo de d e s t i n o
gus RcvFunct i on = o cdi go da f uno r e c e b i d a
*
pus Lengt h = t amanho t o t a l do PDU a s e r pr oces s ado , ou s e j a ,
t amanho do pdu byt e t o t a l de byt e s byt e CRC
*
/
# e n d i f
}
r e t u r n ( e St a t u s == MB_ER_NONE) ;
}
/
*************************
/
MBErrorCode eMBSt ar t ( voi d )
/
*************************
/
{
# i f MB_RTU_ENABLED
i f ( eMBCurrentMode == MB_RTU)
eMBRTUStart ( ) ;
# e n d i f
# i f MB_ASCII_ENABLED
i f ( eMBCurrentMode == MB_ASCII )
eMBASCIISt art ( ) ;
# e n d i f
r e t u r n MB_ER_NONE;
}
/
**************************************
/
MBErrorCode eMBI ni t (
MBMode eMode ,
UCHAR ucSl aveAddr es s ,
USHORT usBaudRat e ,
MBPari t y e P a r i t y
)
/
**************************************
/
{
MBErrorCode e St a t u s = MB_ER_NONE;
/
*
check p r e c o n d i t i o n s
*
/
i f ( ( ucSl aveAddr es s == MB_ADDRESS_BROADCAST ) | |
( ucSl aveAddr es s < MB_ADDRESS_MIN ) | | ( ucSl aveAddr es s > MB_ADDRESS_MAX ) )
{
e St a t u s = MB_ER_INV_ARGUMENT;
}
guc Thi s St a t i onAddr e s s = ucSl aveAddr es s ;
s wi t c h ( eMode )
{
164
# i f MB_RTU_ENABLED
c a s e MB_RTU:
eMBRTUInit ( usBaudRat e , e P a r i t y ) ;
br eak ;
# e n d i f
# i f MB_ASCII_ENABLED
c a s e MB_ASCII :
eMBASCIIIni t ( usBaudRat e , e P a r i t y ) ;
br eak ;
# e n d i f
d e f a u l t :
e St a t u s = MB_ER_INVALID_PROTOCOL; / / PROTOCOLO_INVALIDO;
}
i f ( e St a t u s == MB_ER_NONE )
{
eMBCurrentMode = eMode ;
}
r e t u r n e St a t u s ;
}
/
******************
/
voi d I n i t _ s y s ( voi d )
/
******************
/
{
/
*
Fi n a l i d a d e : i n i c i a l i z a o das v a r i v e i s do s i s t e ma
pa r me t r os : nenhum
r e t o r n o : nenhum
*
/
# i f d e f _PIC
Ini t _ADC ( ) ; / / INICIALIZA PORTA
s e t _ t r i s _ b ( 0 b01111100 ) ;
/ / 0111 1100 = 0x7C B0B1=SADAS; B2B6=ENTRADAS; B7=SADA;
out put _hi gh ( PIN_B7 ) ;
out put _hi gh ( PIN_B1 ) ;
out put _hi gh ( PIN_B0 ) ;
s e t _ t r i s _ c ( 0 b11010000 ) ;
/ / 1101 0000 = 0xD0 C0C3=SADAS; C4( SDI ) =ENTRADA; C5 (SDO) =SADA; C6 , C7 =TX/ RX (ENTRADAS)
out put _hi gh ( PIN_C5 ) ;
out put _hi gh ( PIN_C3 ) ;
out put _hi gh ( PIN_C2 ) ;
out put _hi gh ( PIN_C1 ) ;
out put _hi gh ( PIN_C0 ) ;
s e t u p _ s p i ( FALSE ) ;
s e t up_t i me r _0 ( RTCC_INTERNAL) ;
# i f WDT_EN
s et up_wdt ( WDT_144MS) ;
# e n d i f
/ / s e t up_t i me r _0 ( RTCC_INTERNAL) ; / / o t i me r 0 u t i l i z a d o pe l o WDT
s e t up_t i me r _1 ( T1_DISABLED) ;
s e t up_t i me r _2 ( T2_DISABLED, 0 , 1 ) ;
# e n d i f
# i f d e f _8051
/
***
REGISTRO IE = I n t e r r u p t Enabl e
7 6 5 4 3 2 1 0
EA X X ES ET1 EX1 ET0 EX0
1 0 0 0 0 0 0 0
***
/
IE =0;
/
***
REGISTRO I P = I n t e r r u p t P r i o r i t y
7 6 5 4 3 2 1 0
X X X PS PT1 PX1 PT0 PX0
0 0 0 0 0 0 1 0
****
/
I P =0;
/
***
REGISTRO TMOD = Ti mer Mode
7 6 5 4 3 2 1 0
GATE1 C/ ~T1 M11 M01 GATE0 C/ ~T0 M10 M00
0 0 1 0 0 0 0 1
32 1
t i me r 0 MODO 1 M1. 0=0 E M0. 0=1 16 BITS C/ RECARGA P / SOFTWARE
t i me r 1 MODO 2 M1. 1=1 E M0. 1=0 8 BITS C/ RECARGA AUTOMATICA
***
/
/ / # d e f i n e T0_CT_ 0x04 /
*
Ti mer 0 Count er / Ti mer Se l e c t : 0=Count er , 1=Ti mer
*
/
TMOD=33;
/
***
REGISTRO TCON = Ti mer Cont r ol
7 6 5 4 3 2 1 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
0 0 0 0 0 0 0 0
***
/
TCON=0;
/ / EN_LIGHT = RS = 1; / / TO and T1 PINS
SET_TIME_WDT_128MS;
ENABLE_WDT;
# e n d i f
}
# i f d e f _8051
/
************************
/
voi d del ay_ms (UCHAR tempo )
/
************************
/
{
uns i gned i n t i ;
f o r ( i =0; i <5000; i ++) ;
}
/
*********************
/
165
voi d r e s t a r t _ wd t ( voi d )
/
*********************
/
{
RESET_WDT;
}
# e n d i f
/
********************************************
/
voi d Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ s i s t e ma ( voi d )
/
********************************************
/
{
/
*
Fi n a l i d a d e : s a l v a r os pa r me t r os de c a l i b r a o do s i s t e ma
*
/
/ / s a l v a t e mp e r a t u r a em que f o i c a l i b r a d o
gusRegHol di ng [VALOR_TEMPERATURA_CALIBRACAO_SISTEMA] =
gus Re gI nput Re gi s t e r [ REG_INPUT_TEMPERATURE_VALUE] ;
gusRegHol di ng [ VALOR_REFERENCIA_CALIBRACAO] = o f f s e t _ a t u a l ;
SISTEMA_CALIBRADO=TRUE;
}
/
******************************************
/
voi d Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ p o n t e ( voi d )
/
******************************************
/
{
/
*
Fi n a l i d a d e : s a l v a r a t e mp e r a t u r a em que o s i s t e ma f o i c a l i b r a d o
*
/
gusRegHol di ng [VALOR_TEMPERATURA_CALIBRACAO_PONTE] =
gus Re gI nput Re gi s t e r [ REG_INPUT_TEMPERATURE_VALUE] ;
}
/
******************************************
/
voi d Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ s h u n t ( voi d )
/
******************************************
/
{
/
*
Fi n a l i d a d e : s a l v a o v a l o r e a t e mp e r a t u r a em que f o i c a l i b r a d o
*
/
gusRegHol di ng [VALOR_TEMPERATURA_CALIBRACAO_SHUNT] =
gus Re gI nput Re gi s t e r [ REG_INPUT_TEMPERATURE_VALUE] ;
gusRegHol di ng [VALOR_SHUNT_CALIBRACAO] =
gus Re gI nput Re gi s t e r [ REG_INPUT_STRAIN_VALUE ] ;
}
/
************************************
/
voi d Pr oc e s s a _c ha ve s (UCHAR v a r _ i n p u t )
/
************************************
/
/
*
Fi n a l i d a d e : d e t e c t a r qua l chave f o i s e l e c i o n a d a e
t omar as d e c i s e s c o r r e s p o n d e n t e s
00 = oper ao nor mal
01 = c a l i b r a o do s i s t e ma
e q u i v a l e a f a z e r com que as duas e n t r a d a s f i quem c ur t oc i r c u i t a d a s
o que f e i t o com o s i n a l 02
02 = c a l i b r a o da pont e
o o b j e t i v o z e r a r a t e ns o da pont e
03 = ( chave 1 + chave 2)
= r e s i s t o r s hunt
= t omar o v a l o r de c a l i b r a o
*
/
{
BOOL DIP1 , DIP2 , DIP3 , DESLIGA_LEDS;
USHORT v a l o r _ a t u a l , val or _r ef _mi ni mo , val or _r ef _maxi mo ;
DIP1 = ( v a r _ i n p u t & 1 2 8 ) ? 1 : 0 ;
DIP2 = ( v a r _ i n p u t & 6 4 ) ? 1 : 0 ;
DIP3 = ( v a r _ i n p u t & 3 2 ) ? 1 : 0 ;
DESLIGA_LEDS=FALSE;
i f ( CALIBRANDO_SISTEMA & ! DIP1 ) / / ESTAVA SOMENTE COM A CHAVE 1 ATIVADA
{
/ / v e r i f i c a s e d e s l i g o u a chave 1
Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ s i s t e ma ( ) ;
DESLIGA_LEDS=TRUE;
}
i f (CALIBRANDO_PONTE & ! DIP2 ) / / ESTAVA SOMENTE COM A CHAVE 2 ATIVADA
{
/ / v e r i f i c a s e d e s l i g o u a chave 2
Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ p o n t e ( ) ;
DESLIGA_LEDS=TRUE;
}
i f (CALIBRANDO_SHUNT & ! DIP3 ) / / ESTAVA SOMENTE COM A CHAVE 3 ATIVADA
{
/ / v e r i f i c a s e d e s l i g o u a chave 3
Sa l v a _ p a r a me t r o _ c a l i b r a c a o _ s h u n t ( ) ;
DESLIGA_LEDS=TRUE;
}
CALIBRANDO_SISTEMA =( DIP1 & ! DIP2 & ! DIP3 ) ; / / S PODE ESTAR LIGADA A CHAVE 1
CALIBRANDO_PONTE =( ! DIP1 & DIP2 & ! DIP3 ) ; / / S PODE ESTAR LIGADA A CHAVE 2
CALIBRANDO_SHUNT =( ! DIP1 & ! DIP2 & DIP3 ) ; / / s CHAVES 3 LIGADAS
i f ( CALIBRANDO_SISTEMA | CALIBRANDO_PONTE)
{
va l or _r e f _mi ni mo =
gusRegHol di ng [ VALOR_REFERENCIA_CALIBRACAO]gusRegHol di ng [ VALOR_OFFSET_REFERENCIA_MAXIMO] ;
val or _r ef _maxi mo=
gusRegHol di ng [ VALOR_REFERENCIA_CALIBRACAO] + gusRegHol di ng [ VALOR_OFFSET_REFERENCIA_MAXIMO] ;
v a l o r _ a t u a l = gus Re gI nput Re gi s t e r [ REG_INPUT_STRAIN_VALUE ] ;
i f ( v a l o r _ a t u a l < va l or _r e f _mi ni mo )
166
{
Liga_LED( LED_LEFT ) ;
Desl i ga_LED ( LED_CENTER) ;
Desl i ga_LED ( LED_RIGHT ) ;
}
e l s e i f ( v a l o r _ a t u a l > val or _r ef _maxi mo )
{
Desl i ga_LED ( LED_LEFT ) ;
Desl i ga_LED ( LED_CENTER) ;
Liga_LED( LED_RIGHT ) ;
}
e l s e
{
Desl i ga_LED ( LED_LEFT ) ;
Liga_LED( LED_CENTER) ;
Desl i ga_LED ( LED_RIGHT ) ;
}
}
i f ( DESLIGA_LEDS)
{
Desl i ga_LED ( LED_LEFT ) ;
Desl i ga_LED ( LED_CENTER) ;
Desl i ga_LED ( LED_RIGHT ) ;
}
}
/
*************
/
voi d main ( voi d )
/
*************
/
{
/
*
pr ogr ama p r i n c i p a l
*
/
USHORT u s b a u d r a t e ;
UCHAR va r _i nput , o l d _ v a r _ i n p u t =0;
BOOL CHANGED=0;
del ay_ms ( 1 0 ) ; / / aguar da e s t a b i l i z a o
I n i t _ s y s ( ) ; / / i n i c i a l i z a o s i s t e ma
v a r _ o u t p u t = 255; / / t odos os l e d s apagados
s p i _ e s c r e v e _ b y t e ( v a r _ o u t p u t ) ; / / e nvi a pa r a a s a d a
v a r _ i n p u t = s p i _ l e _ b y t e ( ) ; / / l DIP SWITCH
guc Thi s St a t i onAddr e s s = ( v a r _ i n p u t & 3 1 ) ;
i f ( guc Thi s St a t i onAddr e s s == 0)
guc Thi s St a t i onAddr e s s = 31; / / comea com 31
u s b a u d r a t e =9600; / / v e l o c i d a d e padr o MODBUS RTU
eMBI ni t (MB_RTU, guc Thi s St a t i onAddr e s s , us ba udr a t e , MB_PAR_NONE) ;
eMBSt ar t ( ) ;
f o r ( ; ; )
{
# i f WDT_EN
r e s t a r t _ wd t ( ) ; / / LIMPA O WDT
# e n d i f
i f ( ! INICIANDO)
v a r _ i n p u t = s p i _ l e _ b y t e ( ) ;
i f ( o l d _ v a r _ i n p u t ! = v a r _ i n p u t )
{
o l d _ v a r _ i n p u t = v a r _ i n p u t ;
CHANGED=TRUE;
}
e l s e
CHANGED = FALSE;
i f (CHANGED | CALIBRANDO_PONTE | CALIBRANDO_SISTEMA | CALIBRANDO_SHUNT)
Pr oc e s s a _c ha ve s ( v a r _ i n p u t ) ;
/
*

*
/
/
*
TRATA AS VARIVEIS QUE PODEM SER CONFLITADAS NAS INTERRUPES
*
/
/
*

*
/
d i s a b l e _ i n t e r r u p t s (GLOBAL) ;
/
*

*
/
/
*
VARIVEIS UTILIZADAS EM ISR_INT1
*************
FLAG_STATE_RX_IDLE=TRUE; ( eMBRcvState )
FLAG_FRAME_RECEIVED = TRUE;
FLAG_LED_RX_OFF=TRUE;
*************
*
/
i f ( FLAG_STATE_RX_IDLE)
{
FLAG_STATE_RX_IDLE=FALSE;
eMBRcvState = STATE_RX_IDLE;
}
i f ( FLAG_FRAME_RECEIVED)
{
FLAG_FRAME_RECEIVED=FALSE;
e s t a t e _ ma i n =STATE_MAIN_FRAME_RECEIVED;
}
i f ( FLAG_LED_RX_ON)
{
FLAG_LED_RX_ON=FALSE;
LED_RX_ON=TRUE;
}
i f ( FLAG_LED_RX_OFF)
{
FLAG_LED_RX_OFF=FALSE;
167
LED_RX_OFF=TRUE;
}
/
*

*
/
e n a b l e _ i n t e r r u p t s (GLOBAL) ;
/
*

*
/
i f (LED_RX_ON)
{
LED_RX_ON=FALSE;
Liga_LED( LED_RX) ;
}
i f ( LED_RX_OFF)
{
LED_RX_OFF=FALSE;
Desl i ga_LED ( LED_RX) ;
}
s wi t c h ( e s t a t e _ ma i n )
{
c a s e STATE_MAIN_IDLE:
i f ( INICIANDO )
{
d i s a b l e _ i n t e r r u p t s (GLOBAL) ;
i f ( eMBRcvState == STATE_RX_IDLE)
{
INICIANDO=FALSE;
HABILITA_TX
p r i n t f ( "MODBUS RTU VALTER L. A. CAMARGO\ r \ n " ) ;
HABILITA_RX
St art _ADC ( ) ; / / D INCIO AO PROCESSO DE LEITURA ADC
}
e n a b l e _ i n t e r r u p t s (GLOBAL) ;
}
br eak ;
c a s e STATE_MAIN_FRAME_RECEIVED:
i f ( P r o c e s s a _ b i l h e t e ( ) == MB_ER_NONE) / / SE RECEBEU UM BILHETE VLIDO
{
i f ( Mo n t a _ b i l h e t e _ r e s p o s t a ( ) )
e s t a t e _ ma i n = STATE_MAIN_START_TX;
e l s e
e s t a t e _ ma i n = STATE_MAIN_IDLE;
}
e l s e
{
e s t a t e _ ma i n = STATE_MAIN_IDLE;
}
br eak ;
c a s e STATE_MAIN_START_TX:
Liga_LED( LED_TX) ;
del ay_ms ( 4 ) ;
HABILITA_TX
e n a b l e _ i n t e r r u p t s ( INT_TBE ) ; / / HABILITA FLAG
whi l e ( ! FRAME_TRANSMITTED) ;
/ / f i c a a qui a t t e r mi n a r a t r a n s mi s s o do b i l h e t e
del ay_ms ( 2 ) ;
HABILITA_RX
Desl i ga_LED ( LED_TX) ;
e s t a t e _ ma i n = STATE_MAIN_IDLE;
}
}
}
168
PORTADC. C
# i f n d e f _ADC
# d e f i n e _ADC
# d e f i n e CHANNEL_TEMP 0
# d e f i n e CHANNEL_STRAIN 1
/
**********
f unci onament o g e r a l do mdulo ADC
INICIALIZADO ( St art _ADC de nt r o de main , de poi s de e n v i a r a mensagem i n i c i a l )
HABILITANDO O TIMER2 PARA INTERROMPER A CADA 10 MS
ISR_TIMER2 ( )
s e t a o c a na l
e l i g a o t i me r 0 pa r a a gua r da r e s t a b i l i z a o ( 20 us )
ISR_TIMER0 ( )
i n i c i a a l e i t u r a do ADC
ISR_ADC
c o l e t a o v a l o r l i d o
*******
/
/
**********************
/
voi d Ini t _ADC ( voi d )
/
**********************
/
{
/
*
FINALIDADE: I n i c i a l i z a r o ADC
*
/
s e t _ t r i s _ a ( 0 b11111111 ) ;
s e t u p _ a d c _ p o r t s ( AN0_AN1_AN4_VREF_VREF ) ;
s e t up_a dc (ADC_CLOCK_INTERNAL) ;
}
/
***********************
/
voi d St art _ADC ( )
/
************************
/
{
/
*
a l e i t u r a do adc comandada pe l o t i me r 2 que i n t e r r o mp i d o a cada 10 ms
*
/
s e t up_t i me r _2 ( T2_DIV_BY_4 , 2 5 0 , 1 0 ) ; / / 10000 c y c l e s
c l e a r _ i n t e r r u p t ( INT_TIMER2 ) ;
e n a b l e _ i n t e r r u p t s ( INT_TIMER2 ) ;
}
/
******************
/
voi d Le_ADC( voi d )
/
******************
/
{
i f ( CALIBRANDO_SISTEMA | LENDO_RECALIBRACAO)
{
out put _hi gh ( PIN_C0 ) ;
out put _l ow ( PIN_C1 ) ;
}
e l s e
{
out put _l ow ( PIN_C0 ) ;
i f ( gusRegHol di ng [ REVERSE_READING_ENABLED] )
{
i f ( FIRST_READING)
{
out put _l ow ( PIN_C1 ) ;
}
e l s e
{
out put _hi gh ( PIN_C1 ) ;
}
}
e l s e
out put _l ow ( PIN_C1 ) ;
}
i f (LENDO_TEMPERATURA)
s e t _a dc _c ha nne l (CHANNEL_TEMP) ;
e l s e
s e t _a dc _c ha nne l ( CHANNEL_STRAIN) ;
/
*
PRECISO AGUARDAR PELO MENOS 20US a t que o s i n a l s e e s t a b i l i z e ,
a n t e s de f a z e r a l e i t u r a .
*
/
de l a y_us ( 2 0 ) ;
c l e a r _ i n t e r r u p t ( INT_AD) ;
e n a b l e _ i n t e r r u p t s ( INT_AD) ;
r ead_adc (ADC_START_ONLY) ; / / SOMENTE i n i c i a a c onve r s o
}
/
****************
/
#i nt _AD
voi d AD_i sr ( voi d )
/
***************
/
{
s t a t i c UCHAR
num_amost r as =0 ,
pos _a mo s t r a _a t ua l =0 ,
cont _aux_t emp =0 ,
ucWi ndow_si ze ;
s t a t i c s i gne d i n t 1 6
d i f e r e n c a _ o f f s e t ;
s t a t i c USHORT
ACC=0 ,
a c c _c a l =0 ,
acc_t emp =0 ,
t e mp e r a t u r a _ a t u a l ,
o f f s e t _ a t u a l ,
val 1 ,
ust emp ;
c l e a r _ i n t e r r u p t ( INT_AD) ;
i f ( FIRST_READING)
{
169
va l 1 =r ead_adc (ADC_READ_ONLY) ;
FIRST_READING=FALSE;
Le_ADC ( ) ;
r e t u r n ;
}
ust emp=r ead_adc (ADC_READ_ONLY) + va l 1 ;
ust emp = ( ust emp >> 1 ) ; / / d i v i d e por doi s duas l e i t u r a s uma ni c a amos t r a
/
**********************************
/
i f ( ucWi ndow_Si ze ! = gusRegHol di ng [NUMERO_PONTOS_JANELA_MEDIA_MOVEL] )
{
ucWi ndow_Si ze = (UCHAR) gusRegHol di ng [NUMERO_PONTOS_JANELA_MEDIA_MOVEL] ;
ACC = num_amost r as = pos _a mos t r a _a t ua l = 0;
}
i f ( ( ucWi ndow_Si ze < 1) | | ( ucWi ndow_Si ze > 32) )
{
gusRegHol di ng [NUMERO_PONTOS_JANELA_MEDIA_MOVEL] = ucWi ndow_Si ze = 8;
}
/
************************************************
/
i f (LENDO_RECALIBRACAO)
{
a c c _c a l += ust emp ;
LENDO_RECALIBRACAO=FALSE;
LENDO_TEMPERATURA=TRUE;
FIRST_READING=TRUE;
Le_ADC ( ) ;
}
e l s e i f (LENDO_TEMPERATURA) / / t r a t a o c a na l t e mpe r a t ur e
{
acc_t emp += ust emp ;
LENDO_TEMPERATURA=FALSE;
}
e l s e / / t r a t a o c a na l s t r a i n
{
i f ( ucWi ndow_Si ze == 1) / / no e s t u t i l i z a n d o f i l t r o mdi a mvel
{
gus Re gI nput Re gi s t e r [ REG_INPUT_STRAIN_VALUE] = ust emp ;
}
e l s e / / e s t u t i l i z a n d o f i l t r o mdi a mvel
{
i f ( num_amost r as < ucWi ndow_Si ze )
{
num_amost r as ++;
}
e l s e
{
ACC = gus Re gI nput Re gi s t e r [ po s _ a mos t r a _ a t ua l +OFFSET_SAMPLE] ;
/ / e l i mi na amos t r a mai s a n t i g a
}
gus Re gI nput Re gi s t e r [ pos _a mo s t r a _a t ua l +OFFSET_SAMPLE] = ust emp ;
/ / duas l e i t u r a s , uma s amos t r a
ACC += ust emp ; / / soma a amos t r a a t u a l
gus Re gI nput Re gi s t e r [ REG_INPUT_STRAIN_VALUE] = ACC/ num_amost r as ;
i f ( SISTEMA_CALIBRADO && gusRegHol di ng [ RECALIBRATION_ENABLED] )
{
gus Re gI nput Re gi s t e r [ REG_INPUT_STRAIN_VALUE] += d i f e r e n c a _ o f f s e t ;
}
i f (++ pos _a mos t r a _a t ua l == ucWi ndow_Si ze )
pos _a mos t r a _a t ua l = 0;
}
i f ( gusRegHol di ng [ RECALIBRATION_ENABLED] )
{
i f (RECALIBRANDO)
{
LENDO_RECALIBRACAO=TRUE; / / AGORA VAI LER A r e c a l i b r a o
FIRST_READING=TRUE;
Le_ADC ( ) ;
}
cont _aux_t emp ++;
i f ( cont _aux_t emp == 250)
{
cont _aux_t emp = 0;
a c c _c a l =0;
acc_t emp =0;
RECALIBRANDO=TRUE;
}
e l s e i f ( cont _aux_t emp == 8) / / 8 AMOSTRAS
{
i f ( SISTEMA_CALIBRADO)
{
o f f s e t _ a t u a l = ( a c c _ c a l >> 3 ) ;
d i f e r e n c a _ o f f s e t = ( s i gne d i n t 1 6 )
( gusRegHol di ng [ VALOR_REFERENCIA_CALIBRACAO] o f f s e t _ a t u a l ) ;
gus Re gI nput Re gi s t e r [ REG_OFFSET_DIF] = d i f e r e n c a _ o f f s e t ;
}
t e mp e r a t u r a _ a t u a l = ( acc_t emp >> 3 ) ;
gus Re gI nput Re gi s t e r [ REG_INPUT_TEMPERATURE_VALUE] = t e mp e r a t u r a _ a t u a l ;
RECALIBRANDO=FALSE;
}
}
e l s e
cont _aux_t emp = 0;
}
/
*
em algum out r o l u g a r dever t e r s i do e mi t i do o comando :
Le_ADC( )
modos :
ADC_START_AND_READ ( t h i s i s t he d e f a u l t )
170
ADC_START_ONLY ( s t a r t s t he c onve r s i on and r e t u r n s )
ADC_READ_ONLY ( r e a ds l a s t c onve r s i on r e s u l t )
*
/
}
# e n d i f
171
MB_RTU. H
# i f n d e f _MB_RTU_H
# d e f i n e _MB_RTU_H TRUE
/
*
De f i ne s
*
/
# d e f i n e MB_SER_PDU_SIZE_MIN 4 /
*
TAMANHO MNIMO DO QUADRO Modbus RTU
*
/
# d e f i n e MB_SER_PDU_SIZE_MAX 256 /
*
!TAMANHO MXIMO DO QUADRO Modbus RTU
*
/
# d e f i n e MB_SER_PDU_SIZE_CRC 2 /
*
TAMANHO DO CAMPO CRC
*
/
# d e f i n e MB_RTU_POS_ADDRESS 0
# d e f i n e MB_RTU_POS_FUNCTION 1
# d e f i n e MB_RTU_POS_REG_START 2
# d e f i n e MB_RTU_POS_REG_COUNT 3
# d e f i n e MB_RTU_POS_CRC 4
/ / OS v e t o r e s a s e g u i r fazem o l ookup t a b l e pa r a o c l c u l o do CRC
c ons t UCHAR aucCRCHi [ ] = {
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x00 , 0xC1 , 0x81 , 0x40 , 0x01 , 0xC0 , 0x80 , 0x41 ,
0x01 , 0xC0 , 0x80 , 0x41 , 0x00 , 0xC1 , 0x81 , 0x40
} ;
/
*
CRC16 Tabl e Low byt e
*
/
c ons t UCHAR aucCRCLo [ ] = {
0x00 , 0xC0 , 0xC1 , 0x01 , 0xC3 , 0x03 , 0x02 , 0xC2 ,
0xC6 , 0x06 , 0x07 , 0xC7 , 0x05 , 0xC5 , 0xC4 , 0x04 ,
0xCC, 0x0C , 0x0D , 0xCD, 0x0F , 0xCF , 0xCE , 0x0E ,
0x0A , 0xCA, 0xCB, 0x0B , 0xC9 , 0x09 , 0x08 , 0xC8 ,
0xD8 , 0x18 , 0x19 , 0xD9 , 0x1B , 0xDB, 0xDA, 0x1A ,
0x1E , 0xDE, 0xDF , 0x1F , 0xDD, 0x1D , 0x1C , 0xDC,
0x14 , 0xD4 , 0xD5 , 0x15 , 0xD7 , 0x17 , 0x16 , 0xD6 ,
0xD2 , 0x12 , 0x13 , 0xD3 , 0x11 , 0xD1 , 0xD0 , 0x10 ,
0xF0 , 0x30 , 0x31 , 0xF1 , 0x33 , 0xF3 , 0xF2 , 0x32 ,
0x36 , 0xF6 , 0xF7 , 0x37 , 0xF5 , 0x35 , 0x34 , 0xF4 ,
0x3C , 0xFC , 0xFD, 0x3D , 0xFF , 0x3F , 0x3E , 0xFE ,
0xFA, 0x3A , 0x3B , 0xFB , 0x39 , 0xF9 , 0xF8 , 0x38 ,
0x28 , 0xE8 , 0xE9 , 0x29 , 0xEB, 0x2B , 0x2A , 0xEA,
0xEE , 0x2E , 0x2F , 0xEF , 0x2D , 0xED, 0xEC, 0x2C ,
0xE4 , 0x24 , 0x25 , 0xE5 , 0x27 , 0xE7 , 0xE6 , 0x26 ,
0x22 , 0xE2 , 0xE3 , 0x23 , 0xE1 , 0x21 , 0x20 , 0xE0 ,
0xA0 , 0x60 , 0x61 , 0xA1 , 0x63 , 0xA3 , 0xA2 , 0x62 ,
0x66 , 0xA6 , 0xA7 , 0x67 , 0xA5 , 0x65 , 0x64 , 0xA4 ,
0x6C , 0xAC, 0xAD, 0x6D , 0xAF , 0x6F , 0x6E , 0xAE,
0xAA, 0x6A , 0x6B , 0xAB, 0x69 , 0xA9 , 0xA8 , 0x68 ,
0x78 , 0xB8 , 0xB9 , 0x79 , 0xBB, 0x7B , 0x7A , 0xBA,
0xBE , 0x7E , 0x7F , 0xBF , 0x7D , 0xBD, 0xBC, 0x7C ,
0xB4 , 0x74 , 0x75 , 0xB5 , 0x77 , 0xB7 , 0xB6 , 0x76 ,
0x72 , 0xB2 , 0xB3 , 0x73 , 0xB1 , 0x71 , 0x70 , 0xB0 ,
0x50 , 0x90 , 0x91 , 0x51 , 0x93 , 0x53 , 0x52 , 0x92 ,
0x96 , 0x56 , 0x57 , 0x97 , 0x55 , 0x95 , 0x94 , 0x54 ,
0x9C , 0x5C , 0x5D , 0x9D , 0x5F , 0x9F , 0x9E , 0x5E ,
0x5A , 0x9A , 0x9B , 0x5B , 0x99 , 0x59 , 0x58 , 0x98 ,
0x88 , 0x48 , 0x49 , 0x89 , 0x4B , 0x8B , 0x8A , 0x4A ,
0x4E , 0x8E , 0x8F , 0x4F , 0x8D , 0x4D , 0x4C , 0x8C ,
0x44 , 0x84 , 0x85 , 0x45 , 0x87 , 0x47 , 0x46 , 0x86 ,
0x82 , 0x42 , 0x43 , 0x83 , 0x41 , 0x81 , 0x80 , 0x40
} ;
# e n d i f
172
MB_RTU. C
# i n c l u d e <mb_sl ave . h>
# i n c l u d e <mb_r t u . h>
/
************************************************
/
USHORT usMBCRC16( c ha r
*
pucFrame , USHORT usLen )
/
************************************************
/
{
UCHAR ucCRCHi = 0xFF ;
UCHAR ucCRCLo = 0xFF ;
UCHAR i I nde x =0;
USHORT u s r e t ;
whi l e ( usLen )
{
i I nde x = ucCRCLo ^
*
pucFrame ++;
ucCRCLo = ucCRCHi ^ aucCRCHi [ i I nde x ] ;
ucCRCHi = aucCRCLo [ i I nde x ] ;
}
u s r e t = ( ucCRCHi << 8 ) ;
u s r e t += ucCRCLo ;
/ / r e t u r n ( ucCRCHi << 8 | ucCRCLo ) ; / / d e s t a manei r a no f unc i ona = por qu ? ? ? ? ? ? ?
r e t u r n ( u s r e t ) ;
}
/
*************************************************************
/
voi d eMBRTUInit ( USHORT usBaudRat e , MBPari t y e P a r i t y )
/
*************************************************************
/
{
I ni t _SERI AL ( usBaudRat e , e P a r i t y ) ;
Ini t _TIMER ( ) ;
}
/
**********************
/
voi d eMBRTUStart ( voi d )
/
**********************
/
{
e s t a t e _ ma i n = STATE_MAIN_IDLE;
eMBSndSt at e = STATE_TX_IDLE;
eMBRcvState = STATE_RX_INIT;
/
*
INICIALMENTE O RECEPTOR EST NO ESTADO STATE_RX_INIT .
l i g as e o t e mpor i z a dor e aguar das e a t que t r a n s c o r r a
o t empo de 3. 5 c a r a c t e r e s . Caso no ha j a r e c e bi me nt o de nenhum c a r a c t e r
de nt r o de s s e tempo , mudas e o e s t a do pa r a STATE_RX_IDLE.
I s t o g a r a n t e que as camadas do p r o t o c o l o s i r o e s t a r a t i v a s
s e o bar r ament o e s t i v e r l i v r e .
*
/
S t a r t _ t i me r ( 1 ) ;
}
/
******************************
/
MBErrorCode eMBRTUReceive ( voi d )
/
******************************
/
{
/ / CHECH LENGTH
i f ( gucRcvBuf f er Pos < MB_SER_PDU_SIZE_MIN)
{
eMBErrorCode = MB_ER_PDU_LENGTH;
}
e l s e
{
gucRcvAddr ess = gucRcvBuf f er [ 0 ] ; / / ender eo
gucRcvFunct i on = gucRcvBuf f er [ 1 ] ; / / f uno
gucPUCFrameLength = gucRcvBuf f er Pos 3;
}
/
*
Ve r i f i c a o do CRC
*
/
i f ( usMBCRC16( gucRcvBuf f er , gucRcvBuf f er Pos ) )
{
eMBErrorCode = MB_ER_CRC;
}
r e t u r n ( eMBErrorCode ) ;
}
/
******************************************************
/
MBErrorCode eMBRTUSend( voi d )
/
******************************************************
/
{
USHORT usCRC16 ;
/
*
v e r i f i c a s e o r e c e p t o r e s t no e s t a do de r epous o ( IDLE_STATE ) .
Caso no e s t e j a , s i g n i f i c a que o pr oces s ament o do b i l h e t e
e s t sendo mui t o l e n t o e o mes t r e j e s t envi ando out r o b i l h e t e
mesmo sem t e r pr oc e s s a do o a n t e r i o r .
e nt o deves e a b o r t a r o envi o do b i l h e t e de r e s p o s t a a t u a l
*
/
i f ( eMBRcvState ! = STATE_RX_IDLE )
{
/
*
O pr i me i r o byt e a s e r t r a n s mi t i d o a n t e s do ModbusPDU
o ender eo do e s c r a vo
que j e s t ar mazenado em gucRcvBuf f er [ 0 ]
*
/
i f ( eMBExcept i on ! = MB_EX_NONE )
{
/
*
Ocor r eu uma exceo . Deve s e r c o n s t r u d o um quadr o de e r r o
*
/
gucRcvBuf f er [ 1 ] | = MB_FUNC_ERROR; / / comea em 1
gucRcvBuf f er [ 2 ] = eMBExcept i on ;
gucPUCFrameLength =2;
}
usCRC16 = usMBCRC16( gucRcvBuf f er , gucPUCFrameLength + 1 ) ;
/ / +1 por que i n i c i a com o nmero do t e r mi n a l
gucRcvBuf f er [ gucPUCFrameLength + 1] =make8 ( usCRC16 , 0 ) ;
/ / r eg . va l ue LSB
gucRcvBuf f er [ gucPUCFrameLength + 2] =make8 ( usCRC16 , 1 ) ;
173
/ / r eg . va l ue MSB
gucSndBuf f er Count = gucPUCFrameLength + 3;
/ / 2 byt e s c r c + 1 byt e ender eo
}
e l s e
{
eMBErrorCode = MB_ER_TOO_LATE;
}
/ /
r e t u r n ( eMBErrorCode ) ;
}
174
PORTSERIAL_PIC. C
# i f n d e f _PORT_SERIAL
# d e f i n e _PORT_SERIAL TRUE
# i n c l u d e " mb_sl ave . h"
# d e f i n e HABILITA_TX d i s a b l e _ i n t e r r u p t s ( INT_RDA) ; out put _hi gh ( PIN_B0 ) ;
# d e f i n e HABILITA_RX out put _l ow ( PIN_B0 ) ; e n a b l e _ i n t e r r u p t s ( INT_RDA) ;
#int_RDA
/
*****************
/
voi d ISR_RDA( voi d )
/
****************
/
{
UCHAR c a r a c t e r ;
c a r a c t e r = ge t c ( ) ;
s wi t c h ( eMBRcvState )
{
c a s e STATE_RX_INIT:
/
*

Se f o i r e c e b i d o um c a r a c t e r quando e s t a v a i n i c i a l i z a n d o ,
e nt o deve s e a gua r da r a t que o quadr o t e r mi ne .

*
/
c a s e STATE_RX_ERROR:
/
*

Se houve algum er r o , deves e e s p e r a r que t odos os c a r a c t e r e s


do quadr o d e f e i t u o s o s e j a r e c e b i d o .

*
/
t i me out = 1;
br eak ;
c a s e STATE_RX_IDLE:
/
*

No e s t a do r epous o aguar das e a chegada de um novo c a r a c t e r .


Quando f o r f o r r e c e b i do o pr i me i r o c a r a c t e r ,
gr avao na pos i o i n i c i a l do buf f e r ,
h a b i l i t a os t e mpor i z a dor e s e
muda o e s t a do pa r a STATE_RX_RCV.

*
/
e xpe c t e d = 8; / / f nc 1 a 6 numero de c a r a c t e r e s e s pe r a dos pa r a e s s a s f un e s
t i me out = 8; / / 4 x 4192 ms = 16384 us
gucRcvBuf f er Pos = 0;
FLAG_LED_RX_ON =TRUE; / / FLAG PARA LIGAR O LED RX (EM MAIN. C)
eMBRcvState = STATE_RX_RCV;
c a s e STATE_RX_RCV:
/
*

Se f o i r e c e b i d o mai s c a r a c t e r e s do que o mximo nmero p o s s v e l de byt e s


do quadr o modbus , o quadr o i n t e i r o deve s e r i gnor a do .

*
/
i f ( gucRcvBuf f er Pos > 7)
{ / / j f o i r e c e b i do o ender eo de d e s t i n o e o cdi go da f uno
i f ( ( gucRcvBuf f er [ 1 ] == 15) | | ( gucRcvBuf f er [ 1 ] == 16) )
{
/
*

15 = wr i t e N c o i l ;
16 = wr i t e N r e gs ;
a cont agem dos byt e s : SS FF AA AA LL LL BC ?? CR CR

*
/
e xpe c t e d = 9 + gucRcvBuf f er [ 6 ] ;
}
}
i f ( gucRcvBuf f er Pos > e xpe c t e d )
{
eMBRcvState = STATE_RX_ERROR;
}
e l s e
{
gucRcvBuf f er [ gucRcvBuf f er Pos ++] = c a r a c t e r ;
}
i f ( gucRcvBuf f er Pos == e xpe c t e d )
t i me out = 1; / / ol d=gus 3_5_t i meout ;
} / / e nds wi t c h
/
*

Re i n i c i a l i z a o t e mpor i z a dor a cada c a r a c t e r r e c e b i d o .


Quando houver demora mai or do que 3 , 5 vezes o tempo de cada quadr o ,
o t e mpor i z a dor c o l o c a r a mqui na de r e c e p o no e s t a do i n i c i a l

*
/
Re s e t _t i me r ( t i me out ) ;
}
/
***************************
/
#i nt _TBE
voi d ISR_TBE( voi d )
/
***************************
/
{
/ / whi l e ( ! t x s t a . t r mt ) ; / / aguar da a t que a t r a n s mi s s o e s t e j a compl et a ( b u f f e r empty )
s wi t c h ( eMBSndSt at e )
{
c a s e STATE_TX_IDLE:
eMBSndSt at e = STATE_TX_TRANSMITTING;
FRAME_TRANSMITTED = FALSE;
gucSndBuf f er Pos =0;
c a s e STATE_TX_TRANSMITTING:
i f ( gucSndBuf f er Pos < gucSndBuf f er Count )
{
put c ( gucRcvBuf f er [ gucSndBuf f er Pos ++] ) ;
}
e l s e
{
d i s a b l e _ i n t e r r u p t s ( INT_TBE ) ;
175
FRAME_TRANSMITTED = TRUE;
eMBSndSt at e=STATE_TX_IDLE;
}
}
}
# e n d i f
176
PORTTIMER2_PIC. C
# i f n d e f _PORT_TIMER
# d e f i n e _PORT_TIMER TRUE
# i n c l u d e " mb_sl ave . h"
/
****************
/
voi d Ini t _TIMER ( )
/
****************
/
{
s e t up_t i me r _1 ( T1_INTERNAL | T1_DIV_BY_1 ) ;
e n a b l e _ i n t e r r u p t s (GLOBAL) ;
}
/
***************************************
/
voi d S t a r t _ t i me r (UCHAR t i me out )
/
***************************************
/
{
/
*
t i me out :
1 = 4096 c y c l e s
2 = 8192 c y c l e s
4 = 16384 c y c l e s
*
/
USHORT tempo ;
s wi t c h ( t i me out )
{
c a s e 1:
tempo = 0xF000 ; / / 65535 4095;
br eak ;
c a s e 2:
tempo = 0xE000 ; / / 65535 8191;
br eak ;
c a s e 4:
tempo = 0xC000 ; / / 65535 16383;
br eak ;
c a s e 8: / / 8 TIMES
tempo = 0x8000 ; / / 65535 32767;
br eak ;
d e f a u l t : / / 12 TIMES
tempo = 0x3000 ; / / 53247 us ;
}
s e t _ t i me r 1 ( tempo ) ;
c l e a r _ i n t e r r u p t ( INT_TIMER1 ) ;
e n a b l e _ i n t e r r u p t s ( INT_TIMER1 ) ;
}
/
***************************************
/
voi d Re s e t _t i me r (UCHAR t i me out )
/
***************************************
/
{
/
*
t i me out :
1 = 4096 c y c l e s
2 = 8192 c y c l e s
4 = 16384 c y c l e s
*
/
USHORT t empo ;
s wi t c h ( t i me out )
{
c a s e 1:
tempo = 0xF000 ; / / 65535 4095;
br eak ;
c a s e 2:
tempo = 0xE000 ; / / 65535 8191;
br eak ;
c a s e 4:
tempo = 0xC000 ; / / 65535 16383;
br eak ;
c a s e 8: / / 8 TIMES
tempo = 0x8000 ; / / 65535 32767;
br eak ;
d e f a u l t : / / 12 TIMES
tempo = 0x3000 ; / / 53247 us ;
}
s e t _ t i me r 1 ( tempo ) ;
c l e a r _ i n t e r r u p t ( INT_TIMER1 ) ;
e n a b l e _ i n t e r r u p t s ( INT_TIMER1 ) ;
}
/
****************
/
#int_TIMER1
voi d ISR_TIMER1 ( voi d )
/
****************
/
/
*
ge r a da uma i n t e r r u p o t oda vez que o tempo e x p i r a .
*
/
{
s wi t c h ( eMBRcvState )
{
c a s e STATE_RX_INIT: /
*
a f a s e de i n i c i a l i z a o e s t t e r mi na da ?
*
/
c a s e STATE_RX_ERROR:
c a s e STATE_RX_IDLE:
br eak ;
c a s e STATE_RX_RCV: / / f i n a l i z a
/
*
Um quadr o f o i r e c e b i do e o t empo t 35 e xpi r ou .
Muda o f l a g i ndi c a ndo que um novo quadr o f o i r e c e bi d o
*
/
FLAG_FRAME_RECEIVED = TRUE;
br eak ;
}
FLAG_STATE_RX_IDLE=TRUE;
FLAG_LED_RX_OFF=TRUE;
d i s a b l e _ i n t e r r u p t s ( INT_TIMER1 ) ; / / O t e mpor i z a dor s e aut od e s a t i v a . Tem que s e r chamado e x p l i c i t a me n t e de o u t r a r o t i n a
}
/
****************
/
#int_TIMER2
177
voi d ISR_TIMER2 ( voi d )
/
****************
/
{
/
*
r o t i n a u t i l i z a d a pa r a i n d i c a r que t er mi nou a p r i me i r a l e i t u r a do ADC
*
/
FIRST_READING=TRUE;
Le_ADC ( ) ;
}
# e n d i f
178
FUNC_READ_COILS. C
# i f FUNC_READ_COILS_ENABLED
# i f d e f _FUNC_READ_COILS
r e t u r n
# e n d i f
# d e f i n e _FUNC_READ_COILS TRUE
# d e f i n e REG_COILS_START 0 / / READ_COILS_OUTPUTS
# d e f i n e REG_COILS_SIZE 64
# d e f i n e REG_COILS_COILCNT_MAX ( 0x07D0 )
# i f d e f _8051
i d a t a UCHAR gucRegCoi l [ REG_COILS_SIZE / 8 ] ;
# e n d i f
# i f d e f _PIC
UCHAR gucRegCoi l [ REG_COILS_SIZE / 8 ] ;
# e n d i f
/
******************************************************************************
/
UCHAR xMBUt i l Get Bi t s (UCHAR
*
p o i n t e r , UCHAR ucByt eOf f s et , UCHAR u c Bi t Of f s e t )
/
******************************************************************************
/
{
UCHAR ucMask ;
p o i n t e r += uc Byt e Of f s e t ;
i f ( u c Bi t Of f s e t == 8) / / r e t o r n a r o byt e i n t e i r o
r e t u r n
*
p o i n t e r ;
e l s e
{
ucMask =0;
whi l e ( uc Bi t Of f s e t )
{
ucMask = ( ucMask << 1) + 1;
}
r e t u r n (
*
p o i n t e r & ucMask ) ;
}
}
/
**************************************************************************
/
voi d xMBUt i l Set Bi t s (UCHAR
*
p o i n t e r , UCHAR ucByt eOf f s et , UCHAR u c Bi t Of f s e t )
/
**************************************************************************
/
{
UCHAR ucMask ;
p o i n t e r += uc Byt e Of f s e t ;
ucMask =1;
whi l e ( uc Bi t Of f s e t )
{
ucMask = ( ucMask << 1 ) ;
}
*
p o i n t e r | = ucMask ;
}
/
***************************************************************************************
/
voi d eMBRegCoilsCB( UCHAR eMode , USHORT us RcvRegSt ar t , USHORT usRcvCoi l Count )
/
***************************************************************************************
/
{
UCHAR uc Bi t Of f s e t , cont _aux ;
UCHAR uc Byt e Of f s e t ;
/
*
VERIFICA SE H REGISTRADORES MAPEADOS NESTE BLOCO.
*
/
i f (
( us RcvRegSt ar t >= REG_COILS_START )
&&
( ( us RcvRegSt ar t + usRcvCoi l Count ) <= ( REG_COILS_START + REG_COILS_SIZE) )
)
{
uc Byt e Of f s e t = (UCHAR) ( us RcvRegSt ar t REG_COILS_START ) ;
s wi t c h ( eMode )
{
/
*
L OS VALORES CORRENTES E PASSA DE VOLTA PARA A CAMADA DO PROTOCOLO
*
/
c a s e MB_REG_READ:
cont _aux =3;
whi l e ( usRcvCoi l Count )
{
u c Bi t Of f s e t = ( UCHAR ) ( ( usRcvCoi l Count > 8) ? 8 : usRcvCoi l Count ) ;
gucRcvBuf f er [ cont _aux ++] =
xMBUt i l Get Bi t s ( gucRegCoi l , ucByt e Of f s e t , u c Bi t Of f s e t ) ;
uc Byt e Of f s e t ++;
usRcvCoi l Count = u c Bi t Of f s e t ;
}
br eak ;
/
*
ATUALIZA OS VALORES ATUAIS DOS REGISTRADORES
*
/
c a s e MB_REG_WRITE:
whi l e ( usRcvCoi l Count )
{
u c Bi t Of f s e t = ( UCHAR ) ( ( usRcvCoi l Count > 8) ? 8 : usRcvCoi l Count ) ;
xMBUt i l Set Bi t s ( gucRegCoi l , ucByt e Of f s e t , u c Bi t Of f s e t ) ;
uc Byt e Of f s e t ++;
usRcvCoi l Count = u c Bi t Of f s e t ;
}
br eak ;
} / / ENDSWITCH
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
/
****************************************************************
/
voi d Func _r e a d_c oi l s ( voi d )
179
/
****************************************************************
/
/
*
MB_FUNC_READ_COILS = FUNO 1
ESTA FUNO UTILIZADA PARA LER DE 1 A 2000 ENDEREOS CONTGUOS DE BOBINAS DE ESTADO.
AS BOBINAS NA MENSAGEM DE RESPOSTA SO EMPACOTADAS NA FORMA DE UMA BOBINA PARA CADA BIT DE DADOS.
SE A QUANTIDADE RETORNADA NO FOR UM MLTIPLO DE OITO,
OS BITS RESTANTES SO COMPLETADOS COM ZEROS (EM DIREO AO BIT MAIS SIGNIFICATIVO ) .
O CAMPO DE CONTADOR DE BYTES ESPECIFICA A QUANTIDADE DE BYTES COMPLETOS.
PDURX
Func t i on code 1 Byt e 0x01
S t a r t i n g Addr ess 2 Byt es 0x0000 t o 0xFFFF
Qua nt i t y of c o i l s 2 Byt es 1 t o 2000 ( 0 x7D0 )
PDUResponse
Func t i on code 1 Byt e 0x01
Byt e count 1 Byt e N
*
Coi l St a t u s n Byt e n = N or N+1
*
N = Quant i dade de s a i d a s / 8 , s e o r e s t o d i f e r e n t e de z e r o e nt o N = N+1
Er r or
Func t i on code 1 Byt e Func t i on code + 0x80
Exc e pt i on code 1 Byt e 01 or 02 or 03 or 04
*
/
{
USHORT us RcvRegSt ar t ;
USHORT usRcvCoi l Count ;
UCHAR ucNByt es ;
i f ( gucPUCFrameLength == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
{
us RcvRegSt ar t = ( gucRcvBuf f er [ 2 ] << 8 ) ;
us RcvRegSt ar t += gucRcvBuf f er [ 3 ] ;
usRcvCoi l Count = ( gucRcvBuf f er [ 4 ] << 8 ) ;
usRcvCoi l Count += gucRcvBuf f er [ 5 ] ;
/
*
Ve r i f i c a s e o nmero de r e g i s t r a d o r e s a ser em l i d o s v l i d o .
Caso no s e j a , r e t o r n a uma exceo de i l l e g a l da t a val ue pa r a a camada Modbus
*
/
i f (
( usRcvCoi l Count > 0 )
&&
( usRcvCoi l Count <= REG_COILS_COILCNT_MAX )
)
{
/
*
Te s t a s e a qua nt i da de de bobi na s m l t i p l o de o i t o .
Caso no s e j a , o l t i mo byt e pr e e nc hi do com z e r os nos byt e s mai s s i g n i f i c a t i v o s
*
/
ucNByt es = (UCHAR ) ( usRcvCoi l Count +7) / 8;
/
*
O pr i me i r o byt e s da r e s p o s t a cont m o cdi go da f uno ,
*
Vamos r e u t i l i z a r e s t e va l or , uma vez que c o n t i n u a v l i d o .
*
/
/ / O segundo byt e cont m a qua nt i da de de r e g i s t r a d o r e s .
gucRcvBuf f er [ 2 ] = ucNByt es ;
eMBRegCoilsCB( MB_REG_READ, us RcvRegSt ar t , usRcvCoi l Count ) ;
gucPUCFrameLength = ucNByt es + 2;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
e l s e
{
/
*
No pode s e r uma r e q u i s i o v l i d a pa r a l e i t u r a de r e g i s t r a d o r de bobi nas ,
j que o compr i ment o i n c o r r e t o .
*
/
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
# e n d i f
180
READ_DISCRETE_INPUTS . C
# i f FUNC_READ_DISCRETE_INPUTS_ENABLED
# i f d e f _FUNC_READ_DISCRETE_INPUTS
r e t u r n
# e n d i f
# d e f i n e _FUNC_READ_DISCRETE_INPUTS TRUE
# d e f i n e REG_INPUT_DISCRETE_START 0 / / READ_DISCRETE_INPUTS
# d e f i n e REG_INPUT_DISCRETE_SIZE 64
# i f d e f _8051
i d a t a UCHAR guc Re gI nput Di s c r e t e [ REG_INPUT_DISCRETE_SIZE / 8 ] ;
# e n d i f
# i f d e f _PIC
UCHAR guc Re gI nput Di s c r e t e [ REG_INPUT_DISCRETE_SIZE / 8 ] ;
# e n d i f
/
**********************************************************************************************
/
voi d eMBRegDiscreteCB ( UCHAR eMode , USHORT us RcvRegSt ar t , USHORT us RcvDi s cr et eCount )
/
**********************************************************************************************
/
{
UCHAR uc Bi t Of f s e t , cont _aux ;
UCHAR uc Byt e Of f s e t ;
/
*
Ve r i f i c a s e e xi s t e m r e g i s t r a d o r e s mapeados n e s t e bl oco
*
/
i f (
( us RcvRegSt ar t >= REG_INPUT_DISCRETE_START )
&&
( us RcvRegSt ar t + us RcvDi s cr et eCount <= REG_INPUT_DISCRETE_START + REG_INPUT_DISCRETE_SIZE )
)
{
uc Byt e Of f s e t = ( UCHAR ) ( us RcvRegSt ar t REG_INPUT_DISCRETE_START ) ;
s wi t c h ( eMode )
{
/
*
l os v a l o r e s c o r r e n t e s e r e t o r n a pa r a a camada c o r r e s p o n d e n t e do p r o t o c o l o
*
/
c a s e MB_REG_READ:
cont _aux =3;
whi l e ( us RcvDi s cr et eCount )
{
u c Bi t Of f s e t = (UCHAR) ( ( us RcvDi s cr et eCount > 8) ? 8 : us RcvDi s cr et eCount ) ;
gucRcvBuf f er [ cont _aux ++]= xMBUt i l Get Bi t s ( guc Re gI nput Di s c r e t e , uc Byt eOf f s et , u c Bi t Of f s e t ) ;
uc Byt e Of f s e t ++;
us RcvDi s cr et eCount = u c Bi t Of f s e t ;
}
br eak ;
/
*
At u a l i z a os v a l o r e s a t u a i s dos r e g i s t r a d o r e s
*
/
c a s e MB_REG_WRITE:
whi l e ( us RcvDi s cr et eCount )
{
u c Bi t Of f s e t = (UCHAR) ( ( us RcvDi s cr et eCount > 8) ? 8 : us RcvDi s cr et eCount ) ;
xMBUt i l Set Bi t s ( guc Re gI nput Di s c r e t e , uc Byt e Of f s e t , u c Bi t Of f s e t ) ;
uc Byt e Of f s e t ++;
us RcvDi s cr et eCount = u c Bi t Of f s e t ;
}
br eak ;
} / / ENDSWITCH
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
/
***********************************
/
voi d Fu n c _ r e a d _ d i s c r e t e _ i n p u t s ( voi d )
/
***********************************
/
/
*
02 ( 0 x02 ) Read Di s c r e t e I n p u t s
Es t a f uno u t i l i z a d a pr a l e r de 1 a 2000 r e g i s t r a d o r e s c o n t g u o s de e n t r a d a s d i s c r e t a s no d i s p o s i t i v o r emot o .
O b i l h e t e de r e q u i s i o e s p e c i f i c a o ender eo i n i c i a l e o nmero de e n t r a d a s .
O ender eo das e n t r a d a s comeam em z e r o .
Des t a forma , as e n t r a d a s de 1 a 16 s o e nde r e a da s como 015.
As e n t r a d a s d i s c r e t a s na mensagem de r e s p o s t a s o empacot adas como uma e n t r a d a pa r a cada b i t do campo de dados .
O Es t ado i n d i c a do como 1= ON; 0= OFF.
O b i t menos s i g n i f i c a t i v o do pr i me i r o byt e de dados cont m o ender eo s o l i c i t a d o pe l o me s t r e .
Se a qua nt i da de de e n t r a d a s r e t o r n a d a no um m l t i p l o de oi t o ,
os b i t s r e s t a n t e s do l t i mo byt e de dados s e r o compl et ados com z e r os ( nos b i t s mai s s i g n i f i c a t i v o s ) .
Bi l h e t e de r e q u i s i o
Func t i on code 1 Byt e 0x02
S t a r t i n g Addr ess 2 Byt es 0x0000 t o 0xFFFF
Qua nt i t y of I n p u t s 2 Byt es 1 t o 2000 ( 0 x7D0 )
Bi l h e t e de r e s p o s t a
Func t i on code 1 Byt e 0x02
Byt e count 1 Byt e N
*
I nput St a t u s N
*
x 1 Byt e
*
N = Quant i dade de e n t r a d a s / 8 , s e o r e s t o f o r d i f e r e n t e de z e r o e nt o N = N+1
Bi l h e t e de e r r o
Cdi go do e r r o 1 Byt e 0x82
Cdi go de exceo 1 Byt e 01 or 02 or 03 or 04
*
/
{
USHORT us RcvRegSt ar t ;
USHORT us RcvDi s cr et eCount ;
UCHAR ucNByt es ;
i f ( gucPUCFrameLength == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
{
us RcvRegSt ar t = ( gucRcvBuf f er [ 2 ] << 8 ) ;
us RcvRegSt ar t | = gucRcvBuf f er [ 3 ] ;
us RcvDi s cr et eCount = ( gucRcvBuf f er [ 4 ] << 8 ) ;
181
us RcvDi s cr et eCount | = gucRcvBuf f er [ 5 ] ;
/
*
v e r i f i c a s e o nmero de r e g i s t r a d o r e s a ser em l i d o s v l i d o .
Caso no s e j a , r e t o r n a uma exceo do t i p o i l l e g a l da t a val ue .
*
/
i f ( ( us RcvDi s cr et eCount > 0 ) &&
( us RcvDi s cr et eCount <= MB_PDU_FUNC_READ_DISCCNT_MAX ) )
{
/
*
Te s t a s e a qua nt i da de de bobi na s um m l t i p l o de o i t o .
Caso no s e j a , os b i t s no u t i l i z a d o s do l t i mo byt e s o pr e e nc hi dos com z e r o .
*
/
ucNByt es = (UCHAR ) ( us RcvDi s cr et eCount +7) / 8;
/
*
O pr i me i r o byt e do b i l h e t e de r e s p o s t a deve c o n t e r o cdi go da f uno ,
vamos r e u t i l i z a r e s t a v a l o r uma vez que e s t e c on t i n u a o mesmo
*
/
/ / O segundo cont m a qua nt i da de de r e g i s t r a d o r e s .
gucRcvBuf f er [ 2 ] = ucNByt es ;
eMBRegDiscreteCB ( MB_REG_READ, us RcvRegSt ar t , us RcvDi s cr et eCount ) ;
gucPUCFrameLength = ucNByt es + 2;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
e l s e
{
/
*
No pode s e r uma r e q u i s i o l e g a l por que o compr i ment o i n c o r r e t o .
*
/
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
# e n d i f
182
FUNC_READ_HOLDING_REGISTER. C
# i f FUNC_READ_HOLDING_REGISTER_ENABLED
# i f d e f _FUNC_READ_HOLDING_REGISTER
r e t u r n
# e n d i f
# d e f i n e _FUNC_READ_HOLDING_REGISTER TRUE
# d e f i n e REG_HOLDING_START 0
# d e f i n e REG_HOLDING_NREGS 16
# d e f i n e VALOR_REFERENCIA_CALIBRACAO 0
# d e f i n e VALOR_OFFSET_REFERENCIA_MAXIMO 1
# d e f i n e VALOR_TEMPERATURA_CALIBRACAO_SISTEMA 2
# d e f i n e VALOR_TEMPERATURA_CALIBRACAO_PONTE 3
# d e f i n e VALOR_TEMPERATURA_CALIBRACAO_SHUNT 4
# d e f i n e VALOR_SHUNT_CALIBRACAO 5
# d e f i n e NUMERO_PONTOS_JANELA_MEDIA_MOVEL 6
# d e f i n e REVERSE_READING_ENABLED 7
# d e f i n e RECALIBRATION_ENABLED 8
# i f d e f _8051
i d a t a USHORT gusRegHol di ng [REG_HOLDING_NREGS] ;
# e n d i f
# i f d e f _PIC
USHORT gusRegHol di ng [REG_HOLDING_NREGS] ;
# e n d i f
/
***********************************************************************************
/
voi d eMBRegHoldingCB(
USHORT usAddr ess ,
USHORT usNRegs ,
UCHAR eMode
)
/
***********************************************************************************
/
{
USHORT i RegI ndex ;
UCHAR cont _aux ;
i f (
( us Addr es s >= REG_HOLDING_START )
&&
( ( us Addr es s + usNRegs ) <= ( REG_HOLDING_START + REG_HOLDING_NREGS) )
)
{
i RegI ndex = us Addr es s REG_HOLDING_START ;
cont _aux =3;
whi l e ( usNRegs )
{
gucRcvBuf f er [ cont _aux ++] = ( UCHAR ) ( gusRegHol di ng [ i RegI ndex ] >> 8 ) ;
gucRcvBuf f er [ cont _aux ++] = ( UCHAR ) ( gusRegHol di ng [ i RegI ndex ] & 0x00FF ) ;
i RegI ndex ++;
usNRegs;
}
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
/
*
Sl ave Addr ess 01
Func t i on 03
S t a r t i n g Addr ess High 00
S t a r t i n g Addr ess Low 00
Number of Po i n t s High 00
Number of Po i n t s Low 02
Er r or Check Low C4
Er r or Check High 0B
Sl ave Addr ess 01
Func t i on 03
Byt e Count 04
Dat a , High Word , High Byt e 3F
Dat a , High Word , Low Byt e 80
Dat a , Low Word , High Byt e 00
Dat a , Low Word , Low Byt e 00
Er r or Check Low F7
Er r or Check High CF
*
/
/
************************************
/
voi d Fu n c _ r e a d _ h o l d i n g _ r e g i s t e r ( voi d ) / / 0 x03
/
************************************
/
{
USHORT us RcvRegSt ar t ;
USHORT usRcvRegCount ;
i f ( gucPUCFrameLength == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
{
us RcvRegSt ar t = ( gucRcvBuf f er [ 2 ] << 8 ) ;
us RcvRegSt ar t | = gucRcvBuf f er [ 3 ] ;
usRcvRegCount = ( gucRcvBuf f er [ 4 ] << 8 ) ;
usRcvRegCount | = gucRcvBuf f er [ 5 ] ;
/
*
v e r i f i c a s e o nmero de r e g i s t r a d o r e s a ser em l i d o s v l i d o .
Caso no s e j a , r e t o r n a uma exceo do t i p o i l l e g a l da t a val ue .
*
/
i f (
( usRcvRegCount > 0 )
&&
( usRcvRegCount <= MB_PDU_FUNC_READ_REGCNT_MAX )
)
{
/
*
r e u t i l i z a o cdi go da f uno no b i l h e t e de r e s p o s t a ,
uma vez que e s t e a i nda c o nt i n u a v l i d o e o mesmo
*
/
/
*
O segundo byt e da r e s p o s t a cont m o nmero de byt e s .
*
/
gucRcvBuf f er [ 2 ] = ( UCHAR ) ( usRcvRegCount
*
2 ) ;
183
/
*
f a z uma chamada a f uno abai xo pa r a c ompl e t a r o b u f f e r com zer os , cas o n e c e s s r i o .
*
/
eMBRegHoldingCB( us RcvRegSt ar t , usRcvRegCount , MB_REG_READ ) ;
gucPUCFrameLength = 2 + usRcvRegCount
*
2;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
e l s e
{
/
*
No pode s e r uma r e q u i s i o v l i d a por que o compr i ment o i n c o r r e t o .
*
/
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
# e n d i f
184
FUNC_READ_INPUT_REGISTER. C
# i f FUNC_READ_INPUT_REGISTER_ENABLED
# i f n d e f _FUNC_READ_INPUT_REGISTER
# d e f i n e _FUNC_READ_INPUT_REGISTER TRUE
# d e f i n e REG_INPUT_REG_START 0
# d e f i n e REG_INPUT_REG_NREGS 42
/ / d e f i n i o das p os i e s
# d e f i n e REG_INPUT_STRAIN_VALUE 0
# d e f i n e REG_INPUT_TEMPERATURE_VALUE 1
# d e f i n e REG_OFFSET_DIF 2
# d e f i n e OFFSET_SAMPLE 5 / / i n c i o de onde s e r o ar mazenadas as a mos t r a s
# i f d e f _8051
i d a t a USHORT gus Re gI nput Re gi s t e r [ REG_INPUT_REG_NREGS ] ;
# e n d i f
# i f d e f _PIC
USHORT gus Re gI nput Re gi s t e r [ REG_INPUT_REG_NREGS ] ;
# e n d i f
/
**********************************************************************************
/
voi d eMBRegInputCB( USHORT usAddr ess , USHORT usNRegs )
/
**********************************************************************************
/
{
UCHAR cont _aux ;
USHORT i RegI ndex ;
i f (
( us Addr es s >= REG_INPUT_REG_START )
&&
( us Addr es s + usNRegs <= REG_INPUT_REG_START + REG_INPUT_REG_NREGS )
)
{
i RegI ndex = ( USHORT ) ( us Addr es s REG_INPUT_REG_START ) ;
cont _aux =3;
whi l e ( usNRegs )
{
gucRcvBuf f er [ cont _aux ++] = ( UCHAR ) ( gus Re gI nput Re gi s t e r [ i RegI ndex ] >> 8 ) ;
gucRcvBuf f er [ cont _aux ++] = ( UCHAR ) ( gus Re gI nput Re gi s t e r [ i RegI ndex ] & 0xFF ) ;
i RegI ndex ++;
usNRegs;
}
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
/
******************************************
/
voi d Fu n c _ r e a d _ i n p u t _ r e g i s t e r ( voi d ) / / 0X04
/
******************************************
/
{
USHORT us RcvRegSt ar t ;
USHORT usRcvRegCount ;
i f ( gucPUCFrameLength == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
{
us RcvRegSt ar t = ( gucRcvBuf f er [ 2 ] << 8 ) ;
us RcvRegSt ar t | = gucRcvBuf f er [ 3 ] ;
usRcvRegCount = ( gucRcvBuf f er [ 4 ] << 8 ) ;
usRcvRegCount | = gucRcvBuf f er [ 5 ] ;
/
*
v e r i f i c a s e o nmero de r e g i s t r a d o r e s a ser em l i d o s v l i d o .
cas o no s e j a , r e t o r n a uma exceo do t i p o i l l e g a l da t a val ue .
*
/
i f (
( usRcvRegCount )
&&
( usRcvRegCount < MB_PDU_FUNC_READ_REGCNT_MAX )
)
{
gucRcvBuf f er [ 2 ] = ( UCHAR ) ( usRcvRegCount
*
2 ) ;
eMBRegInputCB( us RcvRegSt ar t , usRcvRegCount ) ;
gucPUCFrameLength = 2 + usRcvRegCount
*
2;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
# e n d i f
# e n d i f
185
FUNC_WRITE_SINGLE_COIL. C
# i f FUNC_WRITE_SINGLE_COIL_ENABLED
# i n c l u d e " f u n c _ u t i l s . c "
/
*
Recepo
Func t i on code 1 Byt e 0x05
Out put Addr ess 2 Byt es 0x0000 t o 0xFFFF
Out put Val ue 2 Byt es 0x0000 or 0xFF00
Exemplo de um b i l h e t e For ce Si ngl e Coi l
Sl ave Addr ess 247 ( F7 )
Func t i on Code 5 ( 05)
Coi l Addr ess High Or der 0 ( 00)
Coi l Addr ess Low Or der 9 ( 09)
For ce Dat a High Or der 255 ( FF)
For ce Dat a Low Or der 0 ( 00)
Er r or Check (LRC or CRC)
Res pos t a
Func t i on code 1 Byt e 0x05
Out put Addr ess 2 Byt es 0x0000 t o 0xFFFF
Out put Val ue 2 Byt es 0x0000 or 0xFF00
Er r o
Er r or code 1 Byt e 0x85
Exc e pt i on code 1 Byt e 01 or 02 or 03 or 04
*
/
/
********************************
/
voi d Fu n c _ wr i t e _ s i n g l e _ c o i l ( voi d ) / / 0x05
/
********************************
/
{
USHORT usRegAddr ess ;
UCHAR uc Byt e Of f s e t ;
UCHAR
*
p o i n t e r ;
usRegAddr ess = ( gucRcvBuf f er [ 2 ] << 8 ) ;
usRegAddr ess | = gucRcvBuf f er [ 3 ] ;
i f (
( usRegAddr ess >= REG_COILS_START )
&&
( usRegAddr ess <= REG_COILS_START + REG_COILS_SIZE )
)
{
uc Byt e Of f s e t = (UCHAR) ( usRegAddr ess REG_COILS_START ) ;
i f (
( gucRcvBuf f er [ 5 ] == 0x00 )
&&
(
( gucRcvBuf f er [ 4 ] == 0xFF )
| |
( gucRcvBuf f er [ 4 ] == 0x00 )
)
)
{
p o i n t e r = gucRegCoi l + uc Byt e Of f s e t ;
i f ( gucRcvBuf f er [ 4 ] == 0xFF )
*
p o i n t e r = 1;
e l s e
*
p o i n t e r = 0;
gucPUCFrameLength = 5 ;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
e l s e
{
/
*
No pode s e r uma r e q u i s i o c o r r e t a , uma vez que o compr i ment o i n c o r r e t o .
*
/
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
# e n d i f
186
FUNC_WRITE_SINGLE_REGISTER. C
# i f FUNC_WRITE_SINGLE_REGISTER_ENABLED
/
*
( 0 x06 ) Wr i t e Si ngl e Re g i s t e r
Es t a f uno u t i l i z a d a pa r a e s c r e v e r um ni co r e g i s t r a d o r de memria i n t e r n a no d i s p o s i t i v o r emot o .
O b i l h e t e e s p e c i f i c a o ender eo em que deve s e r e s c r i t o .
Os r e g i s t r a d o r e s devem s e r e nde r e a dos comeando em z e r o .
Dessa manei r a o r e g i s t r a d o r 1 ender eado como 0 .
A r e s p o s t a nor mal uma c pi a do b i l h e t e de r e q u i s i o ,
r e t o r n a d a aps o cont edo do r e g i s t r a d o r t e r s i do e s c r i t o .
Re qui s i o
Func t i on code 1 Byt e 0x06
Re g i s t e r Addr ess 2 Byt es 0x0000 t o 0xFFFF
Re g i s t e r Val ue 2 Byt es 0x0000 or 0xFFFF
Res pos t a
Func t i on code 1 Byt e 0x06
Re g i s t e r Addr ess 2 Byt es 0x0000 t o 0xFFFF
Re g i s t e r Val ue 2 Byt es 0x0000 or 0xFFFF
Er r o
Er r or code 1 Byt e 0x86
Exc e pt i on code 1 Byt e 01 or 02 or 03 or 04
*
/
/
************************************
/
voi d F u n c _ wr i t e _ s i n g l e _ r e g i s t e r ( voi d ) / / 0x06
/
************************************
/
{
USHORT usRcvRegAddr ess ;
USHORT usRcvRegVal ue ;
USHORT us Byt e Of f s e t ;
i f ( gucPUCFrameLength == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
{
usRcvRegAddr ess = ( gucRcvBuf f er [ 2 ] << 8 ) ;
usRcvRegAddr ess | = gucRcvBuf f er [ 3 ] ;
usRcvRegVal ue = ( gucRcvBuf f er [ 4 ] << 8 ) ;
usRcvRegVal ue | = gucRcvBuf f er [ 5 ] ;
us Byt e Of f s e t = usRcvRegAddr ess REG_HOLDING_START;
i f (
( usRcvRegAddr ess >= REG_HOLDING_START )
&&
( usRcvRegAddr ess <= REG_HOLDING_START + REG_HOLDING_NREGS )
)
{
gusRegHol di ng [ us Byt e Of f s e t ] = usRcvRegVal ue ;
gucPUCFrameLength = 5 ;
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_ADDRESS;
}
}
e l s e
{
eMBExcept i on = MB_EX_ILLEGAL_DATA_VALUE;
}
}
# e n d i f
187
SPI . C
# i f n d e f _SPI
# d e f i n e _SPI TRUE
# i f n d e f s pi _s c k
/ / De f i n i e s dos pi nos de comuni cao
# d e f i n e s pi _s c k pi n_c3 / / pi no de c l oc k
# d e f i n e s p i _ s d i pi n_c4
# d e f i n e s pi _s do pi n_c5
# d e f i n e LOAD out put _l ow ( PIN_B1 ) ; de l a y_us ( 1 ) ; out put _hi gh ( PIN_B1 ) ;
# d e f i n e LATCH out put _l ow ( PIN_C2 ) ; de l a y_us ( 1 ) ; out put _hi gh ( PIN_C2 ) ;
/ / LH l a t c h o u t p u t s
# e n d i f
/
************************************
/
voi d s p i _ e s c r e v e _ b i t ( bool ean bi t _wr )
/
************************************
/
/ / e s c r e ve um b i t na i n t e r f a c e SPI
{
out put _l ow ( s pi _s c k ) ; / / d e s a t i v a a l i n h a de c l oc k
o u t p u t _ b i t ( s pi _s do , bi t _wr ) ; / / c ol oc a o dado na s a d a
out put _hi gh ( s pi _s c k ) ; / / a t i v a a l i n h a de c l oc k
}
/
*********************************
/
voi d s p i _ e s c r e v e _ b y t e (UCHAR dado )
/
*********************************
/
/ / e s c r e ve um byt e na i n t e r f a c e SPI
{
UCHAR c ont a = 8;
/ / e nvi a p r i me i r o o MSB
whi l e ( c ont a )
{
s p i _ e s c r e v e _ b i t ( ( s h i f t _ l e f t (&dado , 1 , 0 ) ) ) ;
cont a ;
}
LATCH
}
/
***********************
/
bool ean s p i _ l e _ b i t ( voi d )
/
***********************
/
/ / l e um b i t na i n t e r f a c e SPI
{
out put _l ow ( s pi _s c k ) ;
out put _hi gh ( s pi _s c k ) ;
r e t u r n i n p u t ( s p i _ s d i ) ;
}
/
***********************
/
UCHAR s p i _ l e _ b y t e ( voi d )
/
***********************
/
/ / l um byt e na i n t e r f a c e SPI
{
UCHAR c ont a = 7 , dado = 0;
LOAD
s h i f t _ l e f t (&dado , 1 , i n p u t ( s p i _ s d i ) ) ; / / o b i t Qh j e s t d i s p o n v e l
whi l e ( c ont a )
{
s h i f t _ l e f t (&dado , 1 , s p i _ l e _ b i t ( ) ) ;
cont a ;
}
r e t u r n dado ;
}
/
***********************
/
voi d Liga_LED(UCHAR mask )
/
***********************
/
{
/ / l e d l i g a d o em low ( 0 )
v a r _ o u t p u t &= ~mask ;
s p i _ e s c r e v e _ b y t e ( v a r _ o u t p u t ) ;
}
/
***************************
/
voi d Desl i ga_LED (UCHAR mask )
/
***************************
/
{
/ / l e d d e s l i g a d o em hi gh ( 1 )
v a r _ o u t p u t | = mask ;
s p i _ e s c r e v e _ b y t e ( v a r _ o u t p u t ) ;
}
/ / d e f i n i e s de comandos SPI pa r a memria
/ / # d e f i n e s pi _r ead_cmd 0x03
/ / # d e f i n e s pi _wr i t e_cmd 0x02
/ / # d e f i n e spi _wr en_cmd 0x06
/ / # d e f i n e spi _wr di _cmd 0x04
/ / # d e f i n e s pi _r ds r _c md 0x05
/ / # d e f i n e s pi _wr s r _cmd 0x01
/ / voi d s pi _e s c r e ve _e e pr om ( l ong i n t ender eco , byt e dado )
/ / / / e s c r e v e um dado em uma de t e r mi na da pos i o da memria SPI
/ / {
/ / out put _l ow ( s p i _ c s ) ; / / s e l e c i o n a a memria
/ / s p i _ e s c r e v e _ b y t e ( s pi _wr i t e_cmd ) ; / / e nvi a comando de e s c r i t a
/ / s p i _ e s c r e v e _ b y t e ( ender eco > >8); / / e nvi a ender eo MSB
/ / s p i _ e s c r e v e _ b y t e ( ender eco ) ; / / e nvi a ender eo LSB
/ / s p i _ e s c r e v e _ b y t e ( dado ) ; / / e nvi a dado
/ / out put _hi gh ( s p i _ c s ) ; / / d e s a t i v a l i n h a CS e i n i c i a a e s c r i t a
/ / / / l embr es e de a gua r da r 5ms a n t e s de r e a l i z a r o u t r a e s c r i t a ou l e i t u r a
/ / }
/ /
/ / byt e s pi _l e _e e pr om ( l ong i n t ender eco )
/ / / / l um dado de uma de t e r mi na da pos i o da memria SPI
/ / {
188
/ / byt e dado ;
/ / out put _l ow ( s p i _ c s ) ;
/ / s p i _ e s c r e v e _ b y t e ( s pi _r ead_cmd ) ; / / e nvi a comando de l e i t u r a
/ / s p i _ e s c r e v e _ b y t e ( ender eco >> 8 ) ; / / e nvi a ender eo MSB
/ / s p i _ e s c r e v e _ b y t e ( ender eco ) ; / / e nvi a ender eo LSB
/ / dado = s p i _ l e _ b y t e ( ) ; / / l o dado
/ / out put _hi gh ( s p i _ c s ) ; / / d e s a t i v a l i n h a CS e t e r mi na l e i t u r a
/ / }
/ /
/ / voi d s p i _ a t i v a _ e s c r i t a _ e e p r o m ( voi d )
/ / / / h a b i l i t a a e s c r i t a na memria
/ / {
/ / out put _l ow ( s p i _ c s ) ;
/ / s p i _ e s c r e v e _ b y t e ( spi _wr en_cmd ) ;
/ / out put _hi gh ( s p i _ c s ) ;
/ / }
/ /
/ / voi d s p i _ d e s a t i v a _ e s c r i t a _ e e p r o m ( voi d )
/ / / / d e s a b i l i t a a e s c r i t a na memria SPI
/ / {
/ / out put _l ow ( s p i _ c s ) ;
/ / s p i _ e s c r e v e _ b y t e ( spi _wr di _cmd ) ;
/ / out put _hi gh ( s p i _ c s ) ;
/ / }
/ /
/ / byt e s p i _ l e _ s t a t u s _ e e p r o m ( voi d )
/ / / / l e o r e g i s t r a d o r de e s t a do da memria
/ / {
/ / byt e dado ;
/ / out put _l ow ( s p i _ c s ) ;
/ / s p i _ e s c r e v e _ b y t e ( s pi _r ds r _c md ) ;
/ / dado = s p i _ l e _ b y t e ( ) ;
/ / out put _hi gh ( s p i _ c s ) ;
/ / }
/ /
/ / voi d s p i _ e s c r e v e _ s t a t u s _ e e p r o m ( byt e dado )
/ / / / e s c r e v e o dado no r e g i s t r a d o r de e s t a do da memria SPI
/ / {
/ / out put _l ow ( s p i _ c s ) ;
/ / s p i _ e s c r e v e _ b y t e ( s pi _wr s r _cmd ) ;
/ / s p i _ e s c r e v e _ b y t e ( dado ) ;
/ / out put _hi gh ( s p i _ c s ) ;
/ / }
# e n d i f
189
MB_CONFIG. H
# i f n d e f _CONFIG
# d e f i n e _CONFIG
# i f d e f ENABLED
# undef ENABLED
# e n d i f
# d e f i n e ENABLED 1
# d e f i n e DISABLED 0
/
*
De f i ne s
*
/
/
*
qua i s t i p o s de p r o t o c o l o s e s t o a t i v a d o s
*
/
# d e f i n e MB_RTU_ENABLED ENABLED
/
*
Se o p r o t o c o l o RTU e s t h a b i l i t a d o
*
/
# d e f i n e MB_ASCII_ENABLED DISABLED
/
*
Se o p r o t o c o l o ASCII e s t h a b i l i t a d o
*
/
# d e f i n e MB_TCP_ENABLED DISABLED
/
*
o v a l o r do t empo l i mi t e pa r a o p r o t o c o l o Modbus ASCII .
*
*
Es t e tempo no f i x o pa r a o Modbus ASCII e d e s t e modo , uma opo a s e r c o n f i g u r a d a
*
Deve s e r i nf or mado o t empo mximo a s e r aguar dado pe l o t e r mi n a l .
*
/
# d e f i n e MB_ASCII_TIMEOUT_SEC 1
# d e f i n e MB_FUNC_HANDLERS_MAX 16
# d e f i n e PIN_ENABLE_RX_EXISTS FALSE
# d e f i n e FUNC_READ_COILS_ENABLED ENABLED / / f cn 01
# d e f i n e FUNC_READ_DISCRETE_INPUTS_ENABLED ENABLED / / f cn 02
# d e f i n e FUNC_READ_HOLDING_REGISTER_ENABLED ENABLED / / f cn 03
# d e f i n e FUNC_READ_INPUT_REGISTER_ENABLED ENABLED / / f cn 04
# d e f i n e FUNC_WRITE_SINGLE_COIL_ENABLED ENABLED / / f cn 05
# d e f i n e FUNC_WRITE_SINGLE_REGISTER_ENABLED ENABLED / / f cn 06
# d e f i n e FUNC_DIAG_READ_EXCEPTION_ENABLED DISABLED / / f cn 07
# d e f i n e FUNC_DIAG_DIAGNOSTIC_ENABLED DISABLED
# d e f i n e FUNC_DIAG_GET_COM_EVENT_CNT_ENABLED DISABLED
# d e f i n e FUNC_DIAG_GET_COM_EVENT_LOG_ENABLED DISABLED
# d e f i n e FUNC_WRITE_MULTIPLE_COILS_ENABLED DISABLED / / f cn 15
# d e f i n e FUNC_WRITE_MULTIPLE_REGISTERS_ENABLED DISABLED / / f cn 16
# d e f i n e FUNC_OTHER_REPORT_SLAVEID_ENABLED DISABLED
# d e f i n e FUNC_READWRITE_MULTIPLE_REGISTERS_ENABLED DISABLED
# d e f i n e FUNC_READ_DEVICE_IDENTIFICATION_ENABLED DISABLED
# e n d i f

Você também pode gostar