Вы находитесь на странице: 1из 72

CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS

Curso de Engenharia Eltrica

PLNIO FERNANDO PORTES ANDRADE

MONITORAMENTO E GESTO DE EQUIPAMENTOS INDUSTRIAIS


CONECTADOS INTERNET ATRAVS DE PROTOCOLO MODBUS USANDO
RASPBERRY PI

Coronel Fabriciano
2016

PLNIO FERNANDO PORTES ANDRADE

MONITORAMENTO E GESTO DE EQUIPAMENTOS INDUSTRIAIS


CONECTADOS INTERNET ATRAVS DE PROTOCOLO MODBUS USANDO
RASPBERRY PI

Monografia apresentada ao Curso de


Graduao em Engenharia Eltrica do
Centro Universitrio do Leste de Minas
Gerais, como requisito parcial para
obteno do ttulo de Engenheiro
Eletricista.
Orientador: Prof. Msc. Silvano Fonseca
Paganoto

Coronel Fabriciano
2016

PLNIO FERNANDO PORTES ANDRADE

MONITORAMENTO E GESTO DE EQUIPAMENTOS INDUSTRIAIS


CONECTADOS INTERNET ATRAVS DE PROTOCOLO MODBUS USANDO
RASPBERRY PI

Monografia
submetida

banca
examinadora designada pelo Conselho do
Curso de Engenharia Eltrica do Centro
Universitrio do Leste Minas Gerais, como
parte dos requisitos necessrios
obteno do ttulo de Engenheiro
Eletricista.

Aprovada em: ___ de __________ de 2016. Por:

_______________________________________________
Prof. Msc. Silvano Fonseca Paganoto Unileste-MG
Orientador
_______________________________________________
Prof. Unileste-MG
Examinador
_______________________________________________
Prof. Dr. Roselito de Albuquerque Teixeira Unileste-MG
Coordenador do Curso de Engenharia Eltrica

Coronel Fabriciano
2016

AGRADECIMENTOS
A Deus pelo privilgio da vida, por me guardar at aqui e por permitir a realizao do
meu grande sonho da graduao. Sem Ele no estaria aqui. Ele tudo para mim.

A minha me, Mrcia Portes (em memria), por sempre acreditar nos meus sonhos.
Ao meu pai Hermes, que sempre faz de tudo para o meu sucesso e que, na
ausncia de minha me, se fez pai e me e abraou nossa famlia com muito amor.

A meu irmo, Patrick Andrade, que minha inspirao a cada dia e sempre est do
meu lado. A minha irm Priscila que com muito amor me apoia nas decises da vida.

A minha esposa, Olivia Rose, pelo apoio, carinho e serenidade. A meu filho Oliver
que trouxe alegria para minha vida num momento de grande tenso.

A minha tia, Cristiane Andrade, por me mostrar, na prtica, como a educao


importante para aqueles que querem ir alm.

Ao meu orientador, Silvano Fonseca Paganoto, pela orientao e compartilhamento


do seu conhecimento.

A toda a minha famlia e amigos por acreditarem em mim e me apoiarem na longa


jornada da graduao.

Meus sinceros agradecimentos.

E olhei eu para todas as obras que fizeram as


minhas mos, como tambm para o trabalho que eu, trabalhando, tinha feito, e eis
que tudo era vaidade e aflio de esprito, e que proveito nenhum havia debaixo do
sol.
Eclesiastes 2:11

RESUMO
A monitorao de dispositivos industriais visando extrao de informao para uma
melhor gesto seja de manuteno seja de produo das grandes indstrias uma
tarefa nem sempre trivial e que exige muitas das vezes um investimento pesado em
novas tecnologias no cho de fbrica e tambm nos nveis gerenciais das empresas
a fim de criar o link entre esses dois nveis da indstria que fisicamente to
distante. Neste trabalho ser desenvolvido uma plataforma visando a comunicao
entre dispositivos industriais com uma Raspberry Pi atravs do protocolo Modbus e
que, por sua vez, ir tratar os dados atravs de um software desenvolvido para este
fim e ento enviar esses dados a um servidor Web atravs da conexo desse
dispositivo intermedirio Internet. Uma interface Web ento usada para
monitorao e gesto atravs de relatrios e histrico de operao dos dispositivos
sem que haja necessidade de visita ao campo de operao daqueles dispositivos
industriais.
Palavras-chave: Automao. C++. Dispositivos Industriais. Gesto Industrial.
Internet. Protocolo Modbus. Qt SDK. Raspberry Pi. Web Interface.

ABSTRACT
The monitoring of industrial devices aimed at extracting information for better
maintenance by management and production teams of large industries is a not
always trivial task and requires often a heavy investment in new technologies in the
low level factory as well as in management levels of companies in order to create the
link between these two levels of industry that is physically far away. In this work will
be developed a platform aimed at communication between industrial devices with a
Raspberry Pi via Modbus protocol where the data will be processed through a
software developed for this purpose and then it will be sent to a Web server by
connecting this intermediate device to the Internet. A Web interface is then used for
monitoring and management through reports and devices status history without the
need to visit the field of operation of those industrial devices.
Keywords: Automation. C++. Industrial Devices. Internet. Industrial Management.
Modbus Protocol. Qt SDK. Raspberry Pi. Web Interface.

LISTA DE FIGURAS
Figura 1 Pirmede de Automao ................................................................. 19
Figura 2 Clientes e servidores Web .............................................................. 21
Figura 3 MIME Type associado ao contudo dos dados ............................... 22
Figura 4 URLs especificam protocolo, servidor e recurso ............................. 23
Figura 5 Sistema tradicional de conexo de dispositivos .............................. 24
Figura 6 Redes de comunicao industrial modernas ................................... 25
Figura 7 RS-485 topologia a 2 fios ................................................................ 26
Figura 8 Quadro do protocolo Modbus em comunicao serial .................... 26
Figura 9 Modelo de comunicao mestre/escravo ...................................... 28
Figura 10 Enderaamento individual x multicast ........................................... 28
Figura 11 Sequncia de bits no modo RTU................................................... 29
Figura 12 Quadro de mensagem para modo RTU ........................................ 29
Figura 13 Sequncia de bits no modo ASCII................................................. 30
Figura 14 Quadro de mensagem para modo ASCII ...................................... 31
Figura 15 Exemplo de uma estrutura de dados em JSON ............................ 34
Figura 16 Uma entidade e seus atributos ...................................................... 36
Figura 17 Relacionamento Pessoa e Documento de Identidade................... 37
Figura 18 Diagrama de caso de uso em UML ............................................... 39
Figura 19 Diagrama de atividades em UML .................................................. 40
Figura 20 Viso Geral do Sistema ................................................................. 42
Figura 21 Diagrama de aaso de uso da aplicao. ....................................... 42
Figura 22 Mdulo RS-485 conectado a Raspberry Pi 1 B+ ........................... 43
Figura 23 Inversor de frequncia TECO srie L510 ...................................... 45
Figura 24 - Conexo de comunicao TECO L510 .......................................... 46
Figura 25 Raspberry Pi 1 B+ ......................................................................... 50

Figura 26 Qt Creator - a IDE do Qt Framework ............................................. 51


Figura 27 - Compilao cruzada no Windows .................................................. 53
Figura 28 Diagrama de atividades DataLoger Monitor .................................. 55
Figura 29 Resposta para requisio de configurao em JSON ................... 57
Figura 30 Exemplo de valores de parmetros em JSON .............................. 58
Figura 31 Janela principal DataLogger Monitor ............................................. 59
Figura 32 Configurao de comunicao do DataLogger Monitor ................ 60
Figura 33 Diagrama ER DataLogger Web ..................................................... 64
Figura 34 Diagrama de atvidades Data Logger Web .................................... 66
Figura 35 Pgina Web com dados do inversor TECO L510 .......................... 67

LISTA DE TABELAS
Tabela 1 Cdigos de Funes do protocolo Modbus .................................... 32
Tabela 2 - Especificaes TECO L510-203-H3-N ............................................ 45
Tabela 3 - Grupos de parmetros TECO L510................................................. 46
Tabela 4 Parmetro x Nmero registrador TECO L510 ................................ 47
Tabela 5 Parmetros com leitura direta ........................................................ 48
Tabela 6 Parmetros com leitura indireta ...................................................... 48
Tabela 7 Parmetro com leitura indireta bit-a-bit........................................... 49
Tabela 8 Especificaes Raspberry Pi 1 B+ ................................................. 50

LISTA DE ABREVIATURAS E SIGLAS

ASCII

American Standard Code for Information Interchange

CLP

Controlador Lgico Programvel

DER

Diagrama Entidade Relacionamento

HTTP

Hyper Text Transfer Protocol

IDE

Ambiente Integrado de Desenvolvimento

IP

Internet Protocol

MER

Modelo Entidade Relacionamento

PDU

Protocol Data Unit

SGBD

Sistema Gerenciador de Banco de Dados

SO

Sistema Operacional

UML

Unified Modeling Language

SUMRIO

1.1
1.1.1
1.1.2
1.2
1.3

Objetivos.................................................................................................. 15
Objetivo principal .................................................................................... 15
Objetivos especficos ............................................................................. 15
Justificativa ............................................................................................. 16
Procedimentos metodolgicos .............................................................. 17

2 REVISO BIBLIOGRFICA .............................................................................. 18


2.1
Automao industrial ............................................................................. 18
2.2
A Internet ................................................................................................. 19
2.2.1
A Web ....................................................................................................... 20
2.3
O protocolo HTTP ................................................................................... 21
2.3.1
Recursos Web no servidor HTTP .......................................................... 21
2.3.1.1
MIME Type (Tipos de mdia) ................................................................... 22
2.3.1.2
URLs......................................................................................................... 23
2.4
A comunicao de dados na indstria.................................................. 23
2.4.1
O protocolo Modbus ............................................................................... 25
2.4.1.1
Modelo de comunicao ........................................................................ 27
2.4.1.2
Modo RTU de transmisso de dados .................................................... 29
2.4.1.3
Modo ASCII de transmisso de dados .................................................. 30
2.4.1.4
Cdigos de funes ................................................................................ 31
2.5
Servidor Web ........................................................................................... 32
2.5.1
Web service ............................................................................................. 33
2.5.2
JSON ........................................................................................................ 33
2.6
Banco de dados ...................................................................................... 35
2.6.1
Banco de dados relacional..................................................................... 35
2.6.1.1
Entidade e atributos................................................................................ 36
2.6.1.2
Relacionamentos .................................................................................... 36
2.6.1.2.1 Multiplicidade ............................................................................................ 37
2.6.1.2.2 Chave primria / Chave Estrangeira ......................................................... 37
2.7
UML .......................................................................................................... 38
2.7.1
Diagramas UML ....................................................................................... 38
2.7.1.1
Diagrama de caso de uso ....................................................................... 38
2.7.1.2
Diagrama de atividades .......................................................................... 39
3 DESENVOLVIMENTO DO TRABALHO ............................................................ 41
3.1
A rede de comunicao Modbus ........................................................... 43
3.2
Inversor TECO L510 ................................................................................ 44
3.2.1
Organizao dos Parmetros Modbus .................................................. 46
3.3
Raspberry Pi ............................................................................................ 49
3.4
Ambiente Integrado de Desenvolvimento (IDE) ................................... 51

3.5
3.5.1
3.5.2
3.5.3
3.6
3.6.1
3.6.2
3.6.3
3.7

Software Embarcado .............................................................................. 52


Compilador cruzado (Cross-compiler) .................................................. 52
Qt Framework .......................................................................................... 53
DataLogger Monitor ................................................................................ 54
A aplicao Web ..................................................................................... 61
O servidor Web ....................................................................................... 61
PHP e Laravel Framework ...................................................................... 62
DataLogger Web ..................................................................................... 63
Resultados obtidos ................................................................................. 68

CONCLUSO E RECOMENDAES ............................................................... 69

REFERNCIAS BIBLIOGRFICAS .................................................................. 70

14

INTRODUO
O uso de dispositivos tais como Inversores de Frequncia para controle de motores
eltricos e Controladores Lgico Programveis (CLP) para gerenciamento de
acionadores em geral numa indstria tem se tornado cada vez mais comum nos dias
atuais. Tais dispositivos so muitas das vezes conectados entre si por meio de redes
de comunicao industrial atravs de protocolos padronizados para transferncia de
dados.
Estas redes industriais, porm, se limitam ao cho-de-fbrica o que dificulta a
possibilidade de acesso aos dados desses dispositivos de automao para um
monitoramento ou mesmo a gesto de informaes importantes para a tomada de
decises por nveis superiores em uma indstria. A possibilidade de poder gerir a
manuteno e produo com base nas informaes coletadas de dispositivos na
linha de produo de uma indstria favorece na reduo do tempo que uma certa
informao no cho-de-fbrica leva at chegar ao nvel gerencial de uma indstria e
uma possvel ao seja tomada.
A facilidade de acesso a grande rede de computadores mesmo no cho-de-fbrica
nos tempos atuais muda essa perspectiva e surge como uma sada para esse
problema no sentido de se utilizar do acesso Internet para externar os dados para
a nuvem, trata-los e exibi-los para o monitoramento remoto.

15

1.1

Objetivos

1.1.1 Objetivo principal

O presente trabalho tem como objetivo a criao de um sistema de aquisio


de informaes de dispositivos industriais atravs de protocolo Modbus nativo
desses dispositivos, o tratamento dessas informaes, o envio dessas
informaes para um servidor online atravs de uma conexo Internet e o
uso dessas informaes atravs de uma interface Web para monitorao e
gesto dos dispositivos industriais.

1.1.2 Objetivos especficos

Estudar a estrutura de endereamento de protocolo de um dispositivo


industrial especfico com suporte ao protocolo Modbus para validao do
trabalho.

Solucionar o problema de falta de suporte da Raspberry Pi para o protocolo


Modbus RTU sob meio fsico RS-485;

Desenvolver um software tendo como plataforma alvo o SO (Sistema


Operacional) utilizado pela Raspberry Pi;

Desenvolver um Sistema Web para recebimento, tratamento, armazenamento


e exibio dos dados enviados pelo software mencionado acima;

Validar o trabalho com demonstrao do funcionamento do sistema


desenvolvido em uma rede Modbus contendo um Inversor de Frequncia
conectado Raspberry Pi;

Verificar o ganho com relao ao uso do novo sistema para monitorao e


gesto dos dispositivos industriais conectados Internet.

16

1.2

Justificativa

A facilidade e o baixo custo para se obter acesso a grande rede de computadores


chamada Internet fez crescer o nmero de dispositivos conectados a esta rede. O
uso da Internet para encurtar as distncias e facilitar a vida no mais um conceito
futurstico, mas sim uma realidade dos dias atuais. Nesse sentido, a conexo de
dispositivos industriais localizados no cho de fbrica rede mundial de
computadores segue essa tendncia.
Encurtar a distncia entre o cho de fbrica e a parte gerencial de uma indstria
atravs de um sistema de monitoramento e gesto de dispositivos industriais
conectados Internet sem que as atuais redes de comunicao industriais sejam de
sobremaneira alteradas uma sada para maior agilidade e preciso para tomada de
decises pela manuteno ou gesto de uma indstria que segue a tendncia
supramencionada.

17

1.3

Procedimentos metodolgicos

Para realizao deste trabalho uma reviso bibliogrfica a respeito de sistemas de


automao, protocolos de comunicao industriais, protocolo Modbus, Raspberry Pi,
Qt SDK, Web Service, entre outros ser realizada com o intuito de esclarecer os
conceitos de ferramentas que sero utilizados ao longo deste projeto.
Feito a reviso bibliogrfica a parte prtica do trabalho ser ento detalhada de
forma sequencial, ou seja, desde a aquisio dos dados pelo software a ser
desenvolvido at a exibio dos mesmos ao usurio do sistema. Assim, essa parte
do trabalho consiste em:

Desenvolvimento de um software para o SO rodando sobre Raspberry Pi;

Detalhamento do funcionamento do sistema desenvolvido quando da


aquisio dos dados de um dispositivo industrial;

Detalhar o processo de envio desses dados para um servidor online atravs


de conexo com Internet;

Desenvolvimento de um sistema Web para recebimento dos dados adquiridos


pelo software rodando sobre Raspberry Pi;

Detalhar como esses dados sero recebidos, tratados e armazenados no


servidor para posterior acesso pelo usurio do sistema Web.

Para a validao deste trabalho um inversor de frequncia com o recurso de


conexo a redes de dados atravs do protocolo Modbus sobre RS-485 ser
utilizado. O inversor de frequncia ser ento conectado a Raspberry Pi atravs
de barramento RS-485 que, por sua vez, ser conectado Internet atravs de
um mdulo Wi-Fi conectado a mesma. As Informaes sobre o status desse
dispositivo sero ento adquiridas pelo sistema proposto e exibido para o usurio
atravs de interface Web.

18

REVISO BIBLIOGRFICA

A compreenso das tecnologias e conceitos utilizados para a produo deste


trabalho s possvel atravs de um estudo aprofundado de diversas fontes de
conhecimento. Fontes de informao podem ser livros, artigos, outros trabalhos
acadmicos ou mesmo arquivos virtuais, muitas das vezes, disponibilizados na
Internet. Neste sentido, uma reviso da bibliografia utilizada para a produo deste
trabalho apresentada nessa seo.
2.1

Automao industrial

Nos dias atuais praticamente impossvel pensar em uma planta de uma indstria
sem pensar em automao dos processos de produo dessa indstria. O processo
de automao como define GROOVER (1987) uma tecnologia dada pela aplicao
de sistemas mecnicos, eletrnicos e computadorizados para operao e controle
da produo.
Nesse mesmo sentido, MORAES e CASTRUCCI (2012) definem que a automao,
nos dias atuais, se apresenta por qualquer sistema baseado em computadores que
favorea a segurana das pessoas, a qualidade dos produtos, a reduo dos custos
e da velocidade de produo de forma a aperfeioar o complexo objetivo das
indstrias e servios.
A automao dentro da indstria hoje dividida em 5 nveis como apresentado pela
Figura 1. Tais nveis se diferem no apenas pela localizao fsica dos elementos de
automao, mas principalmente pelo nvel hierrquico da empresa que ter acesso
as informaes de cada um desses nveis. Elevar as informaes dos nveis 1
maquinrio e dispositivos de atuao e 2 dispositivos de controle para o nvel 5
gerenciamento corporativo com o uso de um sistema conectado Internet a
principal tarefa a ser desenvolvida neste trabalho.

19

Figura 1 Pirmede de Automao

Fonte: MORAES e CASTRUCCI, 2012.

Na indstria a disponibilizao das informaes dos nveis 1 e 2 para a rea externa


da indstria feita com o uso de softwares de superviso modernos com mdulos
auxiliares de conexo com Internet. Tais mdulos disponibilizam ao usurio
aplicativos para smartphones e interface Web para monitorao da planta. No
entanto, alm de serem de custo elevado esses mdulos de comunicao
pressupem uma estrutura de supervisrio previamente implantada o que muitas
vezes no vivel pelo porte do processo.
O desenvolvimento de um sistema de baixo custo capaz de possibilitar a
monitorao remota de dispositivos conectados por uma rede de comunicao
industrial sem a necessidade de um sistema de superviso um salto no cenrio
atual da automao na indstria.
2.2

A Internet

A Internet surgiu no final dos anos 60 como uma iniciativa do Departamento de


Defesa Americano como uma rede de computadores mundial voltada ao uso militar

20

capaz de se manter conectada mesmo em caso de destruio parcial. (MORAIS,


LIMA e FRANCO, 2012).
Desenvolvida inicialmente pela ARPA (Advanced Research and Projects Agency)
em 1969, teve seu nome batizado de ARPANet. Aps a Guerra Fria o acesso a rede
foi liberado aos cientistas, universidades, at que a abertura do acesso a usurios
comuns aconteceu.
No Brasil, uma rede de comunicao entre computadores foi implantada em 1989
atravs do Projeto da Rede Nacional de Pesquisa. S em 1995 porm, se deu a
abertura ao setor privado da Internet para a explorao comercial da populao
Brasileira.
A Internet , por definio, uma rede mundial de computadores ou terminais ligados
entre si, que tem em comum um conjunto de protocolos e servios, de uma forma
que os usurios conectados possam usufruir de servios de informao e
comunicao de alcance mundial atravs de linhas telefnicas comuns, linhas de
comunicao privadas, satlites e outros servios de telecomunicaes. (MORAIS,
LIMA e FRANCO, 2012).
2.2.1 A Web
Formalmente WWW (World Wide Web) a Web surgiu em um projeto no CERN
(Conselho Europeu para Investigao Nuclear) por volta do ano de 1989 quando Tim
Berners-Lee, consultor de engenharia de software do CERN, construiu o sistema
prottipo que se tornou um modelo do que hoje a World Wide Web. (MORAIS,
LIMA e FRANCO, 2012).
A Web um servio da Internet. Muitas pessoas confundem a Web com a prpria
Internet. Todavia, a Web conceitualmente uma rede de computadores na Internet
que fornece informaes em forma de hipertexto usando a Internet como meio de
transmisso.
Neste sentido, MORAIS, LIMA e FRANCO, (2012) definem a Web como uma
imagem refletida do mundo em que vivemos. Navegar na Web como fazer uma
viagem pelo mundo sem sair de casa.

21

2.3

O protocolo HTTP

Os protocolos de redes so, segundo TANENBAUM e J. WETHERALL (2011),


conjuntos de regras para controle do formado dos dados que so trocados por
entidades pares; contidas em uma camada. Em outras palavras, os protocolos de
comunicao so padres de comunicao definidos por documentos conhecidos
como especificaes onde so padronizados como os dados sero transmitidos e
recebidos seguindo tais especificaes.
O protocolo o elemento principal em uma rede de comunicao e muita das
vezes responsvel pelo nome da prpria rede. Assim, quando uma rede de
comunicao referida como rede Modbus, na verdade, o que est sendo
referenciado uma rede de comunicao em que o protocolo de comunicao
utilizado o protocolo Modbus. (MORAES e CASTRUCCI, 2012).
O protocolo de rede mais utilizado na Internet o HTTP (Hyper Text Transfer
Protocol) pois este o protocolo usado para prover acesso a servios de pginas
Web. Web browsers, servidores e aplicaes relacionadas a Web conversam entre
si atravs do protocolo HTTP. HTTP a lngua comum da Internet moderna.
(GOURLEY, TOTTY e SAYER, 2002).
Todo contedo disponvel na Web disponibilizado por servidores Web,
frequentemente chamados servidores HTTP. Estes servidores fornecem dados
quando solicitados por clientes HTTP. Os clientes solicitam os dados e os servidores
respondem a requisio com respostas HTTP como mostra a Figura 2.
Figura 2 Clientes e servidores Web

Fonte: GOURLEY, TOTTY e SAYER, 2002.

2.3.1 Recursos Web no servidor HTTP


Servidores Web armazenam recursos da Web. Um recurso Web a fonte do
contedo Web. Um exemplo simplstico de um recurso Web um arquivo esttico no

22

servidor Web como um arquivo de texto, msica ou vdeo. Porm, recursos Web no
precisam ser estticos. Estes recursos no estticos podem ser interpretadores de
cdigo que podem gerar contedo dinmico baseado na informao contida na
requisio HTTP. (GOURLEY, TOTTY e SAYER, 2002).
2.3.1.1 MIME Type (Tipos de mdia)
Na Internet existem milhares de diferentes tipos de dados, o protocolo HTTP
identifica cada objeto sendo transportado atravs da Web com um rtulo de formato
de arquivo chamado MIME Type. MIME (Multipurpose Internet Mail Extensions) foi
inicialmente formulado para resolver problemas relacionados a troca de mensagens
entre diferentes sistemas de email.
Os servidores Web anexam a informao do MIME Type a todo objeto de dados
HTTP. Quando um Web browser recebe um objeto do servidor Web, este analisa O
MIME Type desse objeto para saber como lidar com esse objeto como mostra a
Figura 3. (GOURLEY, TOTTY e SAYER, 2002).
Figura 3 MIME Type associado ao contudo dos dados

Fonte: GOURLEY, TOTTY e SAYER, 2002.

Um MIME Type um rtulo textual representado como um tipo primrio de objeto e


uma subclasse especfica separado por um barra. Alguns exemplos comum de
MIME Type so:

Pgina HTML: text/html;

Texto no formatado: text/plain;

Imagem JPEG: image/jpeg;

Informao em formado JSON: application/json.

23

2.3.1.2 URLs
Uma URL (uniform resource locator) a forma mais comum de um identificador de
recursos. URLs descrevem uma localizao especfica de um recurso num servidor
especfico. A Figura 4 exibe como uma URL especifica ao protocolo HTTP para
acessar um objeto na Web. (GOURLEY, TOTTY e SAYER, 2002).
Figura 4 URLs especificam protocolo, servidor e recurso

Fonte: GOURLEY, TOTTY e SAYER, 2002.

A maioria das URLs seguem um formato padro de trs partes principais:

A primeira parte chamada de esquema e descreve o protocolo usado para


acessar o recurso (http:://);

A segunda parte fornece o endereo do servidor na Internet (www.joeshardware.com);

Os nomes restantes especificam o recurso no Web service (/specials/sawblade.gif).

2.4

A comunicao de dados na indstria

As redes de comunicao industriais so hoje essenciais para o perfeito


funcionamento dos elementos de automao industriais modernos. O modelo antigo
de conexo entre dispositivos de automao previa a conexo no prprio dispositivo
de controle central onde cada dispositivo era conectado ao dispositivo de controle
principal sem a existncia de uma rede comum para a conexo serial dos
dispositivos como mostra a Figura 5. Tal configurao de conexo entre dispositivos
acabava por gerar um grande nmero de cabos, o que tem como consequncia um
alto custo, e uma dificuldade muito grande quando da manuteno dos sistemas de
automao.

24

Figura 5 Sistema tradicional de conexo de dispositivos

Fonte: NOGUEIRA, 2009.

Com o intuito de reduzir o nmero de cabos, facilitar a identificao de falhas dos


dispositivos e modernizar a forma com o que os elementos de automao trocam
informaes entre si surgiram as redes de comunicao industrial que substituem o
modelo tradicional de ligao dos dispositivos de automao ao dispositivo principal
de controle atravs de cabo prprio para cada dispositivo conectado por uma rede
principal que funciona como um barramento onde todos os elementos se conectam
entre si. A Figura 6 apresenta como fica a conexo entre dispositivos nessa nova
abordagem de comunicao industrial.

25

Figura 6 Redes de comunicao industrial modernas

Fonte: NOGUEIRA, 2009.

2.4.1 O protocolo Modbus


O protocolo Modbus foi desenvolvido pela Modicon Inc. no ano de 1971 e se tornou
um padro de mercado em 1980 (BORGES, 2007). Segundo INTEA (2002) o
protocolo Modbus o protocolo de rede industrial verdadeiramente aberto mais
vastamente usado no ambiente de produo industrial. Modbus utiliza de
comunicao tipo mestre-escravo em que apenas o mestre inicia a comunicao e
os escravos no podem comunicar entre eles, mas somente trocar dados com o
mestre.
O meio fsico de transmisso de dados no definido pela especificao do
protocolo Modbus, porm o meio de comunicao mais utilizado para trfico de
dados usando esse protocolo dado pela especificao eltrica EIA/TIA-485 (RS-

26

485) a dois fios que tem como princpio do funcionamento a diferena de potencial
entre os dois cabos como mostrado pela Figura 7. Apesar de a especificao do
protocolo possibilitar at 247 ns de endereamento para a mesma rede de dados o
meio fsico EIA/TIA-485 (RS-485) suporta at 32 ns para uma mesma rede de at
1200 metros (MODBUS.ORG, 2006).
Figura 7 RS-485 topologia a 2 fios

Fonte: MODBUS.ORG, 2006.

Numa rede Modbus cada n escravo deve ter um endereo nico que usado pelo
mestre para enderear as mensagens para o n que se deseja obter ou enviar
informaes. O protocolo Modbus define uma Unidade de Dados do Protocolo (PDU
do ingls: Protocol Data Unit) que independente das camadas de comunicao
inferiores. Porm, o mapeamento do protocolo Modbus em uma rede especfica
introduz alguns campos adicionais a PDU como mostra a Figura 8.
Figura 8 Quadro do protocolo Modbus em comunicao serial

Fonte: MODBUS.ORG, 2006.

O campo Address field preenchido pelo mestre com o valor igual a 0 para uma
comunicao Broadcast ou com um valor de 1 a 247, de acordo com o endereo do

27

escravo que o mestre deseja se comunicar. Da mesma forma esse campo


preenchido pelo escravo quando a mensagem uma resposta do escravo a uma
requisio feita pelo mestre.
O campo Function code define o cdigo da funo que o mestre pretende realizar
como leitura de dados ou escrita de dados. Uma ateno maior ao campo Function
code dado na seo 2.4.1.4 Cdigos de funes. O campo Data preenchido com
os dados de parmetros ou informaes para a funo especificada no campo
Function code. Data pode conter parmetros de requisio ou de resposta.
O campo CRC ou LRC contm o resultado do clculo de checagem de erro que
pode feita por dois mtodos distintos de acordo com o modo de transmisso de
dados RTU ou ASCII.
Existem dois modos de transmisso de dados no protocolo Modbus, quais sejam:
modo RTU e modo ASCII. Os dois modos de transmisso definem os bits contidos
nos campos da mensagem sendo transmitidos em uma linha serial. Cada modo
define uma forma especfica de como a informao codificada em campos de
mensagens e como a mesma decodificada. O modo de transmisso deve ser o
mesmo para todos os dispositivos interconectados a mesma linha de comunicao
serial sendo que o modo de transmisso RTU deve ser obrigatoriamente
implementando em dispositivos que utilizam o protocolo Modbus e o modo American
Standard Code for Information Interchange (ASCII) de implementao opcional
(MODBUS.ORG, 2006).
2.4.1.1 Modelo de comunicao
O modelo de comunicao do protocolo Modbus conhecido como mestre/escravo
como apresentado pela Figura 9. Nesse modelo de comunicao um dispositivo
principal (mestre) faz a requisio para os demais dispositivos (escravos) e este
ltimo retorna com os dados solicitados pelo mestre ou realizando uma ao
solicitada. impossvel a comunicao entre dispositivos escravos sem a presena
de um dispositivo mestre na rede. Portanto, o mestre e um requisito bsico para uma
rede Modbus.

28

Figura 9 Modelo de comunicao mestre/escravo

Fonte: NASCIMENTO e LUCENA, 2003.

O endereamento dos dispositivos escravos pelo mestre pode ser feito de duas
maneiras distintas: endereamento individual e endereamento multicast. No
endereamento individual, um nico dispositivo escravo endereado pelo mestre,
este dispositivo escravo ento recebe a mensagem e retorna para o mestre. No
endereamento multicast todos os dispositivos recebem a mensagem enviada pelo
mestre. Porm, nenhuma resposta gerada pelos dispositivos escravos. A Figura 10
apresenta as formas de endereamento utilizada pelo protocolo Modbus.
Figura 10 Enderaamento individual x multicast

Fonte: NASCIMENTO e LUCENA, 2003.

29

2.4.1.2 Modo RTU de transmisso de dados


Neste modo de transmisso cada byte 8-bit contm dois caracteres hexadecimais 4bit e a menor parcela de dados transmitida contm 11 bits no meio fsico sendo: 1 bit
de incio (start bit), 8 bits de dados (bit menos significativo primeiro), 1 bit de
paridade, 1 bit de parada (stop bit). A implementao da paridade par obrigatria
de acordo com a especificao do protocolo Modbus podendo a paridade impar ou
nenhuma paridade ser opcionalmente implementada. A sequncia dos bits para este
mostrada na Figura 11.
Figura 11 Sequncia de bits no modo RTU

1 byte
Inicio

Paridade

Parada

Fonte: MODBUS.ORG adaptado, 2006.

Para o modo RTU de transmisso o tamanho mximo do quadro de uma mensagem


de 256 bytes sendo que a checagem de erro do quadro de mensagem do tipo
checagem de reduntncia cclica (CRC do ingls: Cyclical Redundancy Checking)
como mostrado pela Figura 12.
Figura 12 Quadro de mensagem para modo RTU

Fonte: MODBUS.ORG, 2006

No modo de transmisso RTU no existem bytes que indicam o incio ou o fim de


uma mensagem. Para que o escravo identifique o incio de uma mensagem no
pode haver nenhuma palavra de dados por um intervalo de 3.5 x o tamanho da
palavra de dados, esta tcnica conhecida como silent. (NASCIMENTO e LUCENA,
2003)
Da mesma forma a transmisso deve ser feita de forma continua at o fim da
mensagem pois se um intervalo maior que 1.5 x o tamanho da palavra de dados

30

ocorrer o escravo endereado descarta todos os dados recebidos para essa


mensagem e inicia o modo silent novamente.
2.4.1.3 Modo ASCII de transmisso de dados
Neste modo de transmisso cada byte 8-bit contm dois caracteres ASCII (7-bit
cada) e a menor parcela de dados transmitida contm 10 bits no meio fsico sendo: 1
bit de incio (start bit), 7 bits de dados (bit menos significativo primeiro), 1 bit de
paridade, 1 bit de parada (stop bit).
Este modo de transmisso utilizado quando o link de comunicao ou o dispositivo
no permite uma boa performance trabalhando no modo RTU e menos eficiente do
que o modo RTU j que cada byte necessita de 2 caracteres ASCII. A sequncia dos
bits para este mostrada na Figura 13.
Figura 13 Sequncia de bits no modo ASCII

1 byte
Inicio

Paridade

Parada

Fonte: MODBUS.ORG adaptado, 2006.

Da mesma forma que ocorre para o modo de transmisso RTU a implementao da


paridade par para o modo de transmisso ASCII obrigatria de acordo com a
especificao do protocolo Modbus, podendo a paridade impar ou nenhuma
paridade ser opcionalmente implementada
Para o modo ASCII de transmisso o tamanho mximo do quadro de uma
mensagem de 2x252 caracteres ASCII sendo a mensagem delimitada no inicio
pelo caractere : (ASCII 3A16) e no fim pelo par de caracteres CR (Carriage Return
ASCII 0D16) e LF (Line Feed ASCII 0A16). Os caracteres permitidos para os demais
campos so 0-9 e A-F (3016 - 3916 e 4116 - 4616) todos codificados em ASCII.
A checagem de erro do quadro de mensagem do tipo Checagem de Reduntncia
Longitudinal (LRC do ingls: Longitudinal Redundancy Checking) como mostrado
pela Figura 14.

31

Figura 14 Quadro de mensagem para modo ASCII

Fonte: MODBUS.ORG, 2006.

2.4.1.4 Cdigos de funes


Um importante campo do quadro de mensagem do protocolo Modbus o Function
Code, pois este campo determina o tipo de mensagem que est sendo transmitido.
Como pode ser visto pela Figura 12, este campo possui 1 byte para o quadro de
mensagem no modo de transmisso RTU enquanto que pela Figura 14 este campo
possui 2 caracteres no modo de transmisso ASCII.
Os valores desse campo variam entre 0 e 255. Porm, valores usais esto entre 0 e
127, j que o bit mais significativo muitas vezes usado como um identificador de
erro relacionado a funo solicitada pela mensagem. Se o escravo enfrentou
problemas para execuo de uma determinada funo contida em uma mensagem
este responde ao mestre com uma mensagem contendo o mesmo valor Function
Code com o bit mais significativo alterado para 1 (nvel alto).
A Tabela 1 exibe os cdigos de funes usado no campo Function Code de acordo
com a especificao do protocolo Modbus. Para cada dispositivo que se comunica
atravs do protocolo Modbus a implementao desses cdigos de funes feita
seguindo a especificao dada pela Tabela 1.
Uma melhor abordagem sobre os cdigos de funes utilizados no desenvolvimento
deste trabalho ser apresentada na seo 3.6.3 DataLogger Web. Na mesma seo
sero apresentados os cdigos de funes utilizados pelo dispositivo usado para a
validao deste trabalho, qual seja, um inversor de frequncia com suporte a rede
de comunicao Modbus.

32

Tabela 1 Cdigos de Funes do protocolo Modbus

Cdigos de Funes
Cdigo
HEX
Entradas Fsicas
L Entradas Discretas
Discretas
Acesso a
bit

Acesso a
Dados

Bits Internos
Ou
Bobinas Fsicas
Registradores
de Entrada
Fsica

Acesso a
16 bits

Registradores
Internos Ou
Registradores
de Sada Fsica

Diagnsticos

L Bobinas
Escreve Bobina nica
Escreve Mltiplas Bobinas
L Registrador de Entrada
L Registrador de Reteno
Escreve Registrador nico
Escreve Mltiplos Registradores
L/Escreve Mltiplos
Registradores
Escreve Registrador com
Mscara
L fila FIFO de Registradores
L Status de Exceo
Diagnstico
Obtm Contador de Eventos
Obtm Log de Eventos
L Informaes do Dispositivo
L Modelo do Dispositivo

02
01
05
15

02
01
05
0F

04
03
06
16

04
03
06
10

23

17

22
24
07
08
11
12
17

16
18
07
08
0B
0C
11

43

2B

Fonte: MODBUS.ORG adaptado, 2012.

2.5

Servidor Web

Servidores Web so programas servidores que rodam sobre uma determinada


plataforma com a funo principal de receber requisies HTTP feitas por aplicativos
clientes denominados browsers.
Os browsers requisitam informaes atravs de um endereo especfico de uma
mquina em que o servidor Web est instalado; o servidor Web recebe essa
requisio, processa e responde com as informaes solicitadas. Essas respostas,
que so respostas utilizando o protocolo HTTP, so pginas Web contento
informaes estticas (texto, imagem, etc.) e tambm contedo dinmico baseado
na requisio do usurio. (GOURLEY, TOTTY e SAYER, 2002).

33

O browser ou navegador interage com o servidor Web atravs do protocolo HTTP e


exibem pginas Web geradas pelo servidor Web na linguagem HTML (HyperText
Markup Language) que podem ser estticas ou geradas dinamicamente por scripts
rodando no servidor Web. (MORAIS, LIMA e FRANCO, 2012)
2.5.1 Web service
Um Web service, segundo CHAPPELL e JEWELL (2002), uma pea da lgica de
negcios, localizada em algum lugar na Internet, que acessada atravs de
protocolos de Internet padronizados como HTTP e SMTP. A partir dessa definio,
Web service tem por funo principal fornecer um servio na Web e, portanto, uma
aplicao Web utilizada com esse propsito.
Um Web service, por padro, no possui interface grfica; consiste porm, de uma
aplicao Web que, ao receber uma requisio, retorna ao aplicativo cliente dados
dinmicos relacionados requisio. Nos Web services o trfego de dados entre o
aplicativo cliente e a aplicao Web acontece atravs de estruturas de dados
baseadas em XML ou JSON.
Uma aplicao disponibiliza um servio atravs de um Web service de forma a
facilitar o uso de seus recursos atravs de outras aplicaes que queiram fazer uso
de seus servios. (CHAPPELL e JEWELL, 2002)
A Google Inc., por exemplo, possui diversos Web services disponveis para que
programadores terceiros possam acessar seus servios atravs de aplicaes
desenvolvidas por esses programadores. Assim, quando um programador
desenvolve uma aplicao que necessita de dados de latitude e longitude de uma
localidade, baseado apenas no endereo dessa localidade, ele pode fazer uso do
Web service da Google atravs de uma URL disponibilizada para este fim. Ao fazer
a requisio ao Webservice Google com os parmetros corretos (endereo da
localidade, chave de acesso, etc.) o Web service no retorna uma pgina Web mas
dados formatados em XML ou JSON com os valores da Longitude e Latitude
solicitados.
2.5.2 JSON
JavaScript Object Notation (JSON) segundo CROCKFORD (2006) um formato
de troca de dados baseado em texto usado na serializao de estruturas de dados.

34

Quando se deseja criar aplicaes que iram se comunicar com computadores


remotos um formado de dados e um protocolo de rede devem ser selecionados. O
formato de dados JSON aberto, independente de plataforma e de fcil leitura por
um humano, o que facilita na anlise dos dados sendo transmitidos.
JSON pode representar quatro tipos primitivos de tipos sendo eles strings, nmeros,
booleano e null. JSON representa o tipo estruturado objeto e tambm arrays. Strings
so uma sequncia de caracteres Unicode enquanto objetos so um conjunto no
ordenado de pares de nome e valor, onde nome uma string e valor pode ser
qualquer um dos 4 tipos primitivos, arrays ou outros objetos. (CROCKFORD, 2006)
A Figura 15 apresenta um recorte de uma estrutura de dados formatada em JSON.
Objetos so delimitados por chaves ({ }), enquanto arrays so delimitados por
colchetes ([ ]). Objetos possuem pares nome: valor separados de , ao passo que
arrays possuem Objetos separados por ,.

Figura 15 Exemplo de uma estrutura de dados em JSON

Fonte: msdn.microsoft.com, 2016.

Na estrutura de dados apresentada pela Figura 15 existe um objeto principal com as


propriedades Nome, Disponivel e Telefones. Nome possui como valor uma string
(Joao Pedro), Disponivel tem um booleano como valor, enquanto Telefones possui
um array com dois objetos como valor. Cada um dos objetos do array de valor para

35

a propriedade Telefones possui os propriedades Local e Numero, ambos com strings


como valor.
2.6

Banco de dados

A necessidade de compartilhamento de informaes utilizadas por diversas partes


de um mesmo sistema bem como a exigncia de que estes dados estejam
centralizados o princpio bsico da utilizao de bancos de Dados. Neste sentido,
HEUSER (1998) define banco de dados como conjunto de dados integrados que tem
por objetivo atender a uma comunidade de usurios.
Todo banco de dados utiliza um sistema gerenciador de banco de dados (SGBD).
Um software que incorpora as funes de definio, recuperao e alterao de
dados em um banco de dados. Esse software responsvel pela gerncia do banco
de dados e os acessos feitos a este banco de dados por uma aplicao que utiliza
dados do banco de dados. (NARAMORE e GERNER, 2005).
Dentre os modelos de banco de dados, ganha destaque o modelo relacional que
hoje largamente usado em aplicaes Web de pequeno e mdio portes.
2.6.1 Banco de dados relacional
O conceito de banco de dados relacional foi idealizado primeiramente por E. F. Codd
da IBM, em 1970. Banco de dados relacional uma coleo de dados organizados em
tabelas que podem ser usadas para criar, recuperar, deletar e atualizar estes dados
de vrias formas diferentes sem ter que reorganizar as tabelas propriamente ditas
(NARAMORE e GERNER, 2005).
A modelagem de dados mais difundida no mercado a modelagem de EntidadeRelacionamento em que toda estrutura de dados tratada como entidades que se
relacionam entre si. (MULLER, 2002).
A modelagem Entidade-Relacionamento pode ser dividida em duas partes. A
primeira delas composta por Entidades e seus atributos. A segunda, por
relacionamentos entre essas entidades e seus atributos.

36

2.6.1.1 Entidade e atributos


Na definio de um banco de dados relacional o termo entidade um objeto de
dados, os termos coleo de objetos e tabela tambm so usados para descrever
uma entidade. Atributos so propriedades de um objeto. (MULLER, 2002).
A entidade Pessoa, por exemplo, consiste em objetos que tm, todos eles,
propriedades como IDPessoa, Nome, Sexo. Portanto, IDPessoa, Nome e Sexo so
atributos da entidade Pessoa. A Figura 16 exibe a representao de uma entidade e
seus atributos em um Diagrama de Entidade Relacionamento (DER) de acordo com
o padro IDEF1X desenvolvido por Bruce em 1992.
Figura 16 Uma entidade e seus atributos

Fonte: MULLER adaptado, 2002.

2.6.1.2 Relacionamentos
Relacionamentos so modelos da associao entre objetos de um ou m ais tipos
diferentes de entidades. Segundo MULLER (2002), relacionamentos mostram como
cada entidade se conecta a outras entidades e correspondem a mapeamentos entre
atributos de diferentes entidades.
No DER o relacionamento entre dois entidades representado uma linha que liga
essas entidades. As terminaes dessa linha fazem a notao de como da
multiplicidade do relacionamento.
Um relacionamento muitas das vezes impe restrio de integridade ao modelo
Entidade-Relacionamento. Essas restries de integridades so um relacionamento
lgico entre entidades que impe alguma restrio a essas entidades. (MULLER,
2002).

37

No contexto de diagramas ER existem trs restries bsicas: Multiplicidade, o


relacionamento em si e chave primria.
2.6.1.2.1 Multiplicidade
Multiplicidade o nmero de objetos que podem participar em um papel de um
relacionamento. De uma forma geral, existem trs papeis:

Um para Um (1:1): onde um objeto de uma entidade se relaciona unicamente


com um objeto de outra entidade.

Um para Muitos (1:n): onde um objeto de uma entidade pode se relacionar


com n objetos de outra entidade.

Muitos para Muitos (n:n): onde n objetos de uma entidade podem se


relacionar com n objetos de outra entidade.

2.6.1.2.2 Chave primria / Chave Estrangeira


Uma chave um conjunto de atributos que identifica um objeto. Segundo MULLER
(2002) chave primria de uma entidade uma chave que identifica de forma nica a
entidade que possui os atributos.
Uma chave estrangeira uma chave que identifica um objeto em outra entidade; ela
age como um indicador de dados para o outro tipo de entidade, relacionando as
duas entidades. (MULLER, 2002).
A Figura 17 exibe um DER com o relacionamento entre as entidades Pessoa e
DocIndentidade. Uma pessoa pode ter um ou mais documentos de identidade como
mostrado pela notao na extremidade da linha que conecta as duas entidades.
Figura 17 Relacionamento Pessoa e Documento de Identidade

Fonte: do autor, 2016

38

Os atributos IDPessoa e IDIdentidade so as chaves primrias de cada entidade. A


entidade DocIndentidade possui ainda uma chave estrangeira associada ao atributo
Pessoa_IDPessoa que cria a restrio entre as duas entidades.
2.7

UML

Modelos so simplificaes da realidade e a modelagem de um software


importante para delimitar o problema que est sendo estudando, restringindo o foco
a um aspecto por vez. Dessa forma possvel compreender melhor o sistema que
est sendo desenvolvido. (BOOCH, RUMBAUGH e IVAR, 2000).
Unified Model Language (UML) uma linguagem-padro para a elaborao da
estrutura de projetos de software e adequada para modelagem de sistemas
abrangendo todas as vises necessrias ao desenvolvimento e implantao desses
sistemas.
A UML apenas uma linguagem para modelagem de sistema e no est associada
a nenhum processo de desenvolvimento. Assim, UML pode ser usado para
descrever o funcionamento de um sistema independentemente de como esse
sistema desenvolvido. (BOOCH, RUMBAUGH e IVAR, 2000).
2.7.1 Diagramas UML
Os diagramas UML so meios utilizados para a visualizao da modelagem na
linguagem UML. Nesse sentido BOOCH, RUMBAUGH e IVAR (2000) definem um
digrama como: uma apresentao grfica de um conjunto de elementos, geralmente
representados

como

um

grfico

conectado

de

vrtices

(itens)

arcos

(relacionamentos).
Diagramas devem ser usados para visualizar o sistema sob diferentes perspectivas.
A UML divide os diagramas em diagramas estticos e diagramas dinmicos. Entre
os diagramas dinmicos dois so mais utilizados: Diagrama de Caso de Uso e
Diagrama de Atividades.
2.7.1.1 Diagrama de caso de uso
O diagrama de caso de uso um dos cinco diagramas disponveis na UML para
modelagem de aspectos dinmicos de sistemas. Os mesmos tem um papel central
para a modelagem do comportamento de um sistema.

39

BOOCH, RUMBAUGH e IVAR (2000) definem diagrama de Caso de Uso como um


diagrama que mostra um conjunto de casos de uso e atores e seus relacionamentos.
Os atores so representados como figuras esquematizadas, o casos de uso so
representados por circunferncias contendo a descrio do caso de uso e o
relacionamento feito atravs de linhas que ligam atores a casos de uso e casos de
usos a outros casos de uso. A Figura 18 exibe um exemplo simples de diagrama de
caso de uso.
Figura 18 Diagrama de caso de uso em UML

Realiza a transao
com o carto
Processa a conta do
cliente

Cliente
jurdico

Instituio de
venda a varejo

Cliente
Cliente
individual

Reconcilia as
transaes
Gerencia a conta do
cliente

Instituio
financeira
patrocinadora

Fonte: BOOCH, RUMBAUGH e IVAR adaptado, 2000.

2.7.1.2 Diagrama de atividades


O diagrama de atividades um dos cindo diagramas de disponveis na UML para
modelagem de aspectos dinmicos de sistemas. O diagrama de atividades
essencialmente um grfico de fluxo, mostrando o fluxo de controle de uma atividade
para a outra. (BOOCH, RUMBAUGH e IVAR, 2000).
Esses diagramas so conhecidos por muitos programadores como fluxogramas,
pois sua estrutura semelhantes a fluxogramas. Porm, estes apresentam duas
estruturas bsicas de controle: sequncia e condio. (MULLER, 2002).
Um diagrama de atividade possui um ponto de estado inicial e outro de estado final.
Toda a sequncia est contida entre estes dois pontos. As atividades so

40

representadas por retngulos abaulados, setas indicam o fluxo das atividades,


losangos apresentam ramificaes condicionais.
Alm dos elementos descritos anteriormente, existem ainda barras de bifurcao e
unio que, respectivamente, dividem o fluxo entre atividades paralelas e retomam o
fluxo das atividades. A Figura 19 exibe um diagrama de atividade utilizando o padro
UML onde todas as estruturas citadas podem ser observadas.
Figura 19 Diagrama de atividades em UML

Fonte: BOOCH, RUMBAUGH e IVAR, 2000.

41

DESENVOLVIMENTO DO TRABALHO

O desenvolvimento deste trabalho est dividido em quatro partes principais a saber:

Criao de uma rede de comunicao industrial baseada no protocolo


Modbus e meio fsico EIA/TIA-485 (RS-485).

Desenvolvimento de um software embarcado rodando sobre a protoboard


Raspberry Pi 1 B+;

Desenvolvimento de um Web Service para tratamento dos dados enviados


pelo software embarcado;

Desenvolvimento da Interface Web para exibio dos dados coletados atravs


do software rodando sobre a protoboard Raspberry Pi 1 B+.

A Figura 20 exibe o sistema a ser desenvolvido neste trabalho e a relao das


entidades do projeto citados acima. DataLogger Monitor nome dado para a
aplicao embarcada por se tratar basicamente de uma aplicao de registro (log)
de dados (data) obtidos dos dispositivos conectados rede de comunicao Modbus
RS-485.
DataLogger Web Server faz referncia ao Web service escrito na linguagem de
programao PHP/Laravel Framework que rodando sobre o servidor Web enquanto
DataLogger Web Client se refere a interface Web disponvel ao usurio onde as
informaes sero apresentadas.
Para desenvolvimento deste trabalho uma nica mquina fsica utilizada com a
funo de servidor Web e servidor de banco de dados.

42

Figura 20 Viso Geral do Sistema


Usurio
Link Internet
Configura conexes de rede

Internet

Mdulo Wi-Fi USB

Raspberry Pi
1 B+
rodando
DataLogger
Monitor

Web Server (Apache +


PHP)

Configura dispositivos na rede /


Acessa os dados via browser

Rodando sobre Apache

Web Page
(DataLogger Web
Client)

Web Service
(DataLogger Web Server)
Instalado no Servidor Fsico

Instalado no Servidor Fsico

Servidor Fsico

Banco de Dados (My SQL)

Fonte: do autor, 2016

A Figura 21 exibe o diagrama de caso de uso para o sistema desenvolvido neste


trabalho. possvel notar a presena de apenas um usurio do sistema que interage
tanto com o sistema embarcado DataLogger Monitor quanto com o sistema Web
DataLogger Web.
Figura 21 Diagrama de caso de uso da aplicao.

Configura definies
da Rede Modbus

Acessa os dados
sendo monitorados

Usurio do sistema
Configura parmetros
de comunicao
Modbus e web service

Fonte: do autor, 2016

43

O diagrama de caso de uso importante para mostrar de forma clara a interao do


usurio do sistema com todas as entidades que compe o sistema.
3.1

A rede de comunicao Modbus

Para desenvolvimento deste trabalho uma rede de comunicao baseada no


protocolo Modbus criada com o esquema de ligao apresentada pela Figura 7 e
um Inversor de Frequncia equipado com um mdulo de comunicao Modbus
conectado a esta rede para que o funcionamento efetivo do software embarcado e
seu relacionamento com as demais partes do sistema desenvolvido neste trabalho
seja validado.
Apesar de possuir um hardware robusto a Raspberry Pi 1 B+ no possui interface de
comunicao RS-485 em seu prprio hardware, levando assim a necessidade da
aquisio de um mdulo de comunicao RS-485 parte. A Figura 22 exibe o
mdulo MAX485 da empresa LC Electronics conectado ao hardware da Raspberry
Pi B+ atravs dos pinos de GPIO disponibilizados para propsitos diversos.
Figura 22 Mdulo RS-485 conectado a Raspberry Pi 1 B+

Fonte: homegear.eu, 2016.

44

O mdulo MAX485 da LC Electronics um mdulo de baixo custo e pode ser


conectado a maioria dos microcontroladores presentes no mercado. Por ter uma
interface de comunicao serial baseado em lgica TTL, este mdulo tem
compatibilidade com microcontroladores que possuem o recurso de comunicao
serial.
O esquema de ligao apresentado pela Figura 22 no mostra os resistores de
terminao presentes na Figura 7. Porm, os mesmos devem estar presentes na
ligao fsica para que a comunicao ocorra corretamente.
Como exemplificado pela Figura 22 a comunicao entre o mdulo RS-485 e o
hardware da Raspberry Pi 1 B+ acontece atravs dos pinos GPIO 14 (TXD) e GPIO
15 (RXD). Tais pinos so disponibilizados pelo SO atravs de uma interface de
comunicao serial.
3.2

Inversor TECO L510

TECO Electric & Machinery uma empresa que desenvolve produtos eletrnicos
com foco na rea industrial sediada em Taipei City, Taiwan. Para desenvolvimento
deste trabalho utilizado o inversor de frequncia de baixa potncia da srie L510,
uma vez que este possui um mdulo de comunicao RS-485 incorporado (built-in),
com suporte ao protocolo ModBus. A Figura 23 exibe o modelo L510-203-H1-N
usado para o desenvolvimento deste trabalho.

45

Figura 23 Inversor de frequncia TECO srie L510

Fonte: tecowestinghouse.com, 2016.

O inversor de frequncia apresentado na Figura 23 conectado rede ModBus a


qual o software DataLogger Monitor ir se comunicar. Este inversor de frequncia
possui as caractersticas apresentadas pela Tabela 2.
Tabela 2 - Especificaes TECO L510-203-H3-N

Marca/modelo
Tipo de Entrada
Tenso de Entrada
Potncia
Comunicao
Cdigos de Funes
ModBus Suportados

TECO L510-203-H1-N
Trifsica
220
3 HP
RS-485 ModBus RTU
03H - L Registrador de Reteno
06H - Escreve Registrador nico
08H - Diagnstico (Loop-test)
10H - Escreve Mltiplos Registradores

Fonte: do autor, 2016.

Pela Figura 23 possvel notar o slot para conexo do cabo de comunicao no


canto inferior direito do inversor de frequncia L510. A conexo feita atravs de um
conector RJ-45 macho, conforme o esquema apresentado pela Figura 24. O resistor

46

de terminao omitido pois presumido a existncia dos mesmos na terminao


do barramento de comunicao principal.
Figura 24 - Conexo de comunicao TECO L510

Fonte: TECO-WESTINGHOUSE, 2015.

3.2.1 Organizao dos Parmetros Modbus


Os inversores de frequncia, de uma forma geral, categorizam seus parmetros em
grupos. Por isso importante ter a mesma representao no MER (Modelo Entidade
Relacionamento) representado pelo DER da Figura 33. A tabela parameters possui
um campo group para armazenar o grupo do parmetro e o campo param para
armazenar o nmero do parmetro. A Erro! Fonte de referncia no
encontrada.Tabela 3 exibe os grupos de parmetros para o inversor TECO L510.
Tabela 3 - Grupos de parmetros TECO L510

Grupo do
parmetro
00
01
02
03

Descrio do Grupo
Parmetros bsicos
Parmetros de controle V/F
Parmetros do Motor
Parmetros de I/O digital externa

47

04
05
06
07
08
09
10
11
12
13

Parmetros de I/O analgica externa


Parmetros de multivelocidade
Parmetros de operao automtica de programa
Parmetros de partida/parada
Parmetros de proteo
Parmetros de comunicao
Parmetros de PID
Parmetros de controle de performance
Parmetros de monitoramento
Parmetros de manuteno

Fonte: TECO-WESTINGHOUSE MOTOR COMPANY adaptado, 2016.

Para o inversor TECO L510, cada parmetro possui sua identificao composto por
dois nmeros que representam o grupo do parmetro e dois nmeros que
representam o parmetro naquele grupo. Os dois valores so separados por um -.
TECO L510, como a grande gama de dispositivos que implementam o protocolo
ModBus, possui uma relao direta entre seus parmetros e o nmero do registrador
associado a cada um desses parmetros. A Tabela 4 exibe a relao entre os
parmetros e os registradores Modbus para o inversor TECO L510.
Tabela 4 Parmetro x Nmero registrador TECO L510

01-00

10-00

000AH
000BH

00-10
00-11

0100H

00-00
00-01

Nmero do Registrador (16


bits)
0000H
0001H

0A00H

Parmetro

Fonte: do autor, 2016.

Todos os parmetros so do tipo 03 (Holding Registers). Porm, existem 3 tipos de


dados que esses registradores podem conter: Valore direto de um determinado
parmetro, cdigo de valores, cdigo de valores bit-a-bit.
Um registrador contm o valor de um determinado parmetro quando seus dados
esto associados ao valor real de um parmetro mesmo que esse valor necessite

48

ser manipulado. Ou seja, quando l-se o valor de uma corrente, tenso,


temperatura, entre outros, diretamente no seu contedo como listado pela Tabela 5.
Tabela 5 Parmetros com leitura direta

Register No.
2523H
2524H
2525H
2526H
2527H

Content
Frequency command (100/1Hz)
Output frequency (100/1Hz)
Output voltage command (10/1V)
DC voltage command (1/1V)
Output current (10/1A)

Fonte: TECO-WESTINGHOUSE MOTOR COMPANY adaptado, 2015.

Um Registrador contm cdigo de valores quando o seu contedo est associado a


determinados valores. Ou seja, seu valor no lido diretamente em seu contedo
mas sim analisado e associado ao seu significado. A Tabela 6 exibe exemplos de
registradores com leitura indireta.
Tabela 6 Parmetros com leitura indireta

Register No.

2521H

Content
00
01
02
03
04

Value
Inverter OK
Inverter over heat (OH)
Over current at stop (OC)
Under voltage (LV)
Over voltage (OV)

Fonte: TECO-WESTINGHOUSE MOTOR COMPANY adaptado, 2015.

A Tabela 6 exibe como um cdigo no contedo do registrador 2521H associado a


valores. Essa associao feita com o uso de um banco de dados relacional como
descrito na seo 3.6.3 DataLogger Web.
Um registrador contm cdigo de valores bit-a-bit quando o contedo desse
registrador decomposto bit-a-bit e cada um desses bits possui um valor associado
ao seu valor 0 e outro valor associado ao seu valor 1. A Tabela 7 exibe essa
situao.

49

Tabela 7 Parmetro com leitura indireta bit-a-bit

Register
No.

2520H

Bit

Description

Operation state

Direction state

Inverter operation prepare


state

Abnormal

Data Settings error

BitValue
0
1
0
1
0
1
0
1
0
1
..

Value
Stop
Run
Forward
Reverse
Ready
Unready
Normal
Abnormal
No error
Error

Fonte: TECO-WESTINGHOUSE MOTOR COMPANY adaptado, 2015.

A Tabela 7 exibe como cada bit do registrador 2520 est associado a um parmetro
que por sua vez tem seus valores lgicos 1 e 0 associados a valores finais de leitura.
Todas as associaes entre os valores contidos no registrador e seu significado real
esto presentes na modelagem de dados relacional descrito na seo 3.6.3
DataLogger Web.
3.3

Raspberry Pi

A Raspberry Pi uma protoboard lanada em fevereiro de 2012 pela Raspberry Pi


Foundation com o propsito de ser o computador de baixa potncia mais barato do
mundo. Atualmente a Raspberry Pi um computador de baixo custo do tamanho de
um carto de credito que se conecta a um monitor atravs de conexo HDMI com
sada de alta definio, possibilitando a conexo de perifricos diversos atravs de
portas USB e de pinos GPIO.
Apesar de possuir um tamanho reduzido a Raspberry Pi um dispositivo poderoso
que possibilita a utilizao de Sistemas Operacionais rodando sobre seu robusto
hardware. Para o desenvolvimento deste trabalho a Raspberry Pi 1 modelo B+
utilizada. As especificaes desta placa esto apresentadas na Tabela 8 enquanto a
Figura 25 apresenta o modelo utilizado neste trabalho.

50

Tabela 8 Especificaes Raspberry Pi 1 B+

ESPECIFICAO
CPU
GPU
ALIMENTAO
TAMANHO
OVERCLOCK
PORTA HDMI
PESO
MEMRIA RAM
PORTA USB
ARMAZENAMENTO
PORTA ETHERNET
SADA DE VDEO
SADA DE ADIO
ENTRADA DE VDEO
SADA DE DISPLAY
PINOS GPIO

RASPBERRY PI 1 B+
700 MHz ARM1176JZF-S Core 32 Bits
Broadcom VideoCore IV @ 250 MHz
5V - 2A
~ 85 mm - 56 mm
Sim
1
~ 45 Gramas
512 MB
4
Carto MicroSD
1
HDMI e TRRS 3.5 mm
HDMI e TRRS 3.5 mm
CONECTOR CSI
CONECTOR DSI
40

Fonte: do autor, 2016.


Figura 25 Raspberry Pi 1 B+

Fonte: raspeberrypi.org, 2016.

O objetivo dos criadores da Raspberry Pi, segundo UPTON e HALFACREE (2012),


tornar o conhecimento sobre informtica, programao e computao acessvel a

51

todos, ou seja, fazer dela um instrumento de educao. Hoje, devido ao seu baixo
custo, diversas instituio de ensino esto usando a Raspberry Pi em seus
laboratrios, isto porque, o aprendizado no mais prejudicado por conta de
precaues para preservar o equipamento, o que poderia ser um impedimento caso
fosse adotado um computador convencional.
3.4

Ambiente Integrado de Desenvolvimento (IDE)

Um IDE um software utilizado para desenvolvimento de aplicaes que possui


recursos diversos que facilitam a programao de um sistema. Recursos como auto
completar, depurao de cdigo, configurao da plataforma alvo de compilao e
documentao so alguns dos que so fornecidos por um IDE.
A Figura 26 exibe uma janela de uma IDE (Qt Creator). Recursos de arrastar e
soltar, criao de formulrio e layout podem ser notados. Esses recursos esto
presentes na grande maioria de IDE e so responsveis por tornar o conceito de um
IDE extremamente admirvel por desenvolvedores.
Figura 26 Qt Creator - a IDE do Qt Framework

Fonte: qt.io, 2016.

52

O desenvolvimento com o auxlio de uma IDE torna o trabalho de criao de um


sistema muito mais rpido e dinmico. Assim, neste trabalho o Qt Creator utilizado
como a IDE para desenvolvimento do cdigo da aplicao embarcada DataLogger
Monitor ao passo que a IDE Eclipse usada para o desenvolvimento da aplicao
Web DataLogger Web.
3.5

Software Embarcado

A Raspberry Pi suporta diversos Sistemas Operacionais rodando sobre seu


hardware sendo Raspbian (uma verso Debian para Raspberry Pi), Ubuntu e
Windows 10 for Internet of Things os principais desses sistemas.
Para desenvolvimento deste trabalho utilizado o SO Raspbian rodando sobre o
computador single-board Raspberry Pi 1 B+. O software embarcado desenvolvido
neste trabalho roda sobre o SO Raspbian e desenvolvido em C++ com o uso da
IDE Qt Creator e do Qt Framework.
O

desenvolvimento

do

DataLogger

Monitor

se

utiliza

tanto

de

recursos

disponibilizados pelo SO quanto de bibliotecas de programao disponibilizadas pelo


Qt Framework. Em outras palavras, as questes relacionadas ao baixo nvel da
mquina tais como gerenciamento de memria e acesso a perifricos realizada
aqui pelo prprio SO Raspbian e o acesso a esses perifricos ocorre por meio de
bibliotecas nativas do Qt Framework.
3.5.1 Compilador cruzado (Cross-compiler)
Sempre que se desenvolve cdigo para um sistema embarcado h pelo menos duas
opes para a compilao do cdigo. A primeira a compilao direta, ou seja, o
cdigo compilado diretamente na plataforma em que ser executado aps a
compilao. A segunda, diz respeito a compilao cruzada que faz uso de um
compilador cruzado (cross-compiler). No segundo caso o cdigo compilado numa
plataforma diferente daquela em que o programa compilado ser executado.
O Qt Framework possui suporte para desenvolvimento de aplicaes embarcadas e
sua IDE (Ambiente Integrado de Desenvolvimento) est preparada para integrao a
um compilador cruzado. A Figura 27 mostra o processo de compilao cruzada
utilizando o SO Windows como plataforma hospedeira (onde se desenvolve a
aplicao).

53

Figura 27 - Compilao cruzada no Windows

Fonte: visualgdb.com, 2016.

No desenvolvimento deste trabalho a criao de um compilador cruzado se faz


necessria pois o hardware da Raspberry Pi limitado para o desenvolvimento de
aplicaes em sua prpria plataforma. A compilao cruzada possibilita utilizar um
computador pessoal sem limitao de processamento e memria para a criao da
aplicao. Uma vez compilada pelo compilador cruzado a aplicao pode ser
copiada para o carto de memria da Raspberry Pi e executada sobre esta
plataforma.
3.5.2 Qt Framework
Qt um Framework de desenvolvimento de aplicao baseado na linguagem C++
multi plataforma que se utilizada da filosofia codifique uma vez e compile onde
quiser para prover bibliotecas de programao em C++ onde o programador
codifica uma nica vez e compila o cdigo para diversas plataformas. Hoje o Qt
compatvel com os principais Sistemas Operacionais do mercado incluindo todas as
verses Windows para desktop mantidas pela Microsoft, Windows CE, Windows RT,

54

Linux, Android, OS X, iOS e Linux Embarcados onde a Raspberry Pi se encontra


na lista de dispositivos compatveis com o Qt.
Desenvolvido inicialmente por Haavard Nord e Eirik Chambe-Eng a partir de 1990,
sendo a primeira verso pblica oficial lanada em 1995 pela Quasar Technologies
empresa fundada pelos dois programadores. A Quasar Technologies ento se
tornou Toll Tech e por fim Tolltech (BLANCHETTE e SUMMERFIELD, 2008).
Em meados de 2008 a Tolltech foi adquirida pela Nokia que passou a manter o
cdigo do Qt Framework. Posteriormente, a Nokia fundou a subsidiria Qt Project
que passou a ter responsabilidade sobre o desenvolvimento do Qt Framework. A
Digia Inc. adquiriu o pessoal e recursos relacionados a Qt Project da Nokia e enfim
fundou sua prpria subsidiria Qt Company que hoje engloba todos os produtos
relacionados ao Qt Framework.
O Qt Framework disponibilizado em duas edies principais: Comercial e Open
Source. O contedo do Qt Framework para as duas edies basicamente o
mesmo, o que muda so questes relacionadas a licenciamento e suporte. Para uso
corporativo no desenvolvimento de aplicaes que sero vendidas uma licena
Comercial se faz necessria. Para uso prprio e/ou desenvolvimento de aplicaes
que no sero comercializadas a edio Open Source pode ser usada sem qualquer
custo.
3.5.3 DataLogger Monitor
DataLogger Monitor o software rodando sobre o SO Raspbian na plataforma
Raspberry Pi. Este software foi desenvolvido na linguagem de programao C++
utilizando o Qt Framework sobre plataforma Windows e posteriormente compilado
para a plataforma alvo Raspberry Pi. O digrama de atividades da aplicao
DataLogger Monitor exibido pela Figura 28.

55

Figura 28 Diagrama de atividades DataLoger Monitor

No

Cria log para falha

Sim

Requisita
configurao ao Web
Service
Web Service responde?

Terceira vez sem resposta?

Sim

Recebe configurao,
analisa e define
estrutrutura da rede
Modbus

No

Sim

Requisita parmetro
na rede ModBus
Parmetro recebido com sucesso?

Cria log de falha

Sim

Limite de tentativas
excedido?

Sim

No

Todos os parmetros foram lidos?

Sim

Envia valores ao Web


Service

Cria log de falha

No

Dados enviados
Com sucesso?

Nova
Configurao
Presente?

Sim
No

Fonte: do autor, 2016.

56

O diagrama baseado na especificao UML e detalha as atividades realizadas


pela aplicao desde o incio, quando a aplicao requisita ao Web service
informaes referentes aos dispositivos conectados rede Modbus, at o final do
processo, quando os valores dos parmetros lidos na rede Modbus so enviados ao
Web service.
Observando o digrama da Figura 28 possvel verificar que todo o processo se
inicia com a requisio de informaes da rede Modbus a qual a single-board
Raspberry Pi est conectada. O Web service ento, responde com as configuraes
previamente definidas pelo usurio via interface Web.
Quando iniciada, a aplicao faz uma requisio GET para o endereo da
Webservice passando como parmetro o valor do nmero de srie nico da singleboard Raspberry Pi. O nmero de srie da Raspberry Pi nico e usado para
identificar dados relacionados a uma Raspberry Pi especfica.
Os dados de configurao da single-board Raspberry Pi requisitado atravs da
URL http:://dataloggerWeb.com/getconfig/numero_de_serie. O nmero de srie
definido baseado no nmero de srie do carto de memria usado pela Raspberry
Pi. Assim, garantido que dados armazenados no banco de dados do Web service
estejam associados a uma Raspberry Pi especfica.
Uma vez definida a configurao, DataLogger Monitor passa a conhecer todos os
parmetros relacionados a comunicao Modbus e aos dispositivos conectados
rede. A configurao retransmitida sempre que a aplicao reiniciada ou algum
parmetro de configurao alterado na interface DataLogger Web.
Toda a troca de informao entre a aplicao DataLogger Monitor e o Web service
DataLogger Web se d por dados estruturados em JSON. A resposta com a
configurao da aplicao contm entre outros elementos as informaes dos
dispositivos na rede, incluindo endereos de cada dispositivo na rede, seus
parmetros e os intervalos de leitura dos parmetros baseados em prioridades
definidas na interface DataLogger Web.
Um exemplo de resposta para a requisio de configurao da single-board
Raspberry Pi exibida pela Figura 29.

57

Figura 29 Resposta para requisio de configurao em JSON

Fonte: do autor, 2016.

Ao receber a configurao exibida pela Figura 29, a aplicao DataLogger Monitor


analisa essa configurao e define todos os parmetros necessrios para a
comunicao com a rede Modbus.
A configurao apresentada pela Figura 29 define um dispositivo conectado rede
de nome TECO L510 e endereo de rede Modbus 1 com os parmetros Motor
rotation e Main run source selection. Os endereos de registradores Modbus para os
parmetros definidos so 0001H e 0002H respectivamente. Alm do mais, definido
a prioridade de cada parmetro pela chave priority_id e as definies das prioridades
como o intervalo em milissegundos definido pela chave interval_in_ms.
A requisio dos parmetros dos dispositivos conectados rede Modus feita de
acordo com a prioridade de cada um desses dispositivo. Uma vez que todos os

58

parmetros de mesma prioridade foram lidos, DataLogger Monitor envia os mesmos


atravs de uma requisio feita ao Web service DataLogger Web.
Os dados lidos so enviados para o Web service atravs de uma requisio a URL
http:://dataloggerWeb.com/import/numero_de_serie.

Dessa

maneira

os

dados

recebidos pela Web service so corretamente guardados no banco de dados.


A Figura 30 exibe um exemplo de dados em formato JSON de alguns parmetros
valores lidos pela aplicao DataLogger Monitor. Esses dados so enviados ao Web
service atravs de uma requisio POST.
Figura 30 Exemplo de valores de parmetros em JSON

Fonte: do autor, 2016

Pela Figura 23 possvel notar que as nicas informaes enviadas ao Web service
so o nmero identificador do parmetro, seu valor e a data e hora em que este foi
lido. Essas informaes associadas a URL de requisio que contm o nmero de
srie da Raspberry Pi, so suficientes para que o Web service saiba como lidar com
os dados recebidos.
A janela principal da aplicao DataLogger Monitor apresentada pela Figura 31.
Informaes de status da aplicao podem ser visualizados na tela principal da
aplicao.

59

Figura 31 Janela principal DataLogger Monitor

Fonte: do autor, 2016.

As informaes contidas na janela principal da aplicao apresentada pela Figura 31


esto divididas em cinco grupos da seguinte maneira:

Modbus

Network

Configuration:

exibe

parmetros

de

configurao

relacionados com a comunicao Modbus realizada atravs do dilogo de


configurao da aplicao;

Web Service Configuration: exibe parmetros de configurao relacionados a


comunicao com o Web service DataLogger Web realizada atravs do
dilogo de configurao da aplicao;

Modbus Network Status: exibe informaes, em tempo real, do parmetro


sendo acessado atravs da rede de comunicao Modbus;

Web Service Network Status: exibe informaes em tempo real, relacionados


a troca de informaes com o Web service DataLogger Web;

Events Log: exibe o log de eventos da aplicao de forma a facilitar a


identificao de alguma falha de comunicao.

Alm das informaes contidas nos cinco grupos discutidos anteriormente,


DataLogger Web exibe dois cones circulares no canto inferior direito da janela
principal que indica o status da comunicao da aplicao tanto com a rede Modbus
quanto com a rede de comunicao com o Web service DataLogger Web. Os cones

60

aparecem verdes em caso de sucesso na comunicao, amarelos durante


requisies ou respostas ou vermelhos em caso de falha na comunicao.
Devido a limitao de hardware e tambm visando uma boa performance da
aplicao DataLogger Monitor o nmero de registros de logs estar restrito a 1000
registros.
A aplicao DataLogger Monitor possui um dilogo de configurao dos parmetros
de conexo com a rede ModBus e com o Webservice DataLogger Web. A Figura 32
exibe o dilogo de configurao. Os parmetros da comunicao com a rede
ModBus tais como porta de comunicao, bit de paridade, taxa de transmisso e bit
de parada, nmero tentativas de comunicao Modbus e timeout para a conexo
Modbus so configurados nesse dilogo de configurao. O endereo do
Webservice, porta e timeout so tambm configurados por esse dilogo.
Figura 32 Configurao de comunicao do DataLogger Monitor

Fonte: do autor, 2016.

Todas as configuraes definidas atravs do dilogo de configurao so


armazenadas em arquivos de configurao e recuperadas sempre que a aplicao
iniciada. Dessa maneira, no se faz necessrio configurar a aplicao toda vez que

61

esta iniciada. Informaes sobre posio e estado das janelas, incluindo a janela
principal, so salvos tambm.
3.6

A aplicao Web

DataLogger Web a designao dada a aplicao que executada no servidor


Web. A aplicao tem o papel de prover interface com DataLogger Monitor atravs
de um Web service e tambm possui uma interface Web para que o usurio possa
acessar os dados que foram recebidos da aplicao embarcada.
A aplicao DataLogger Web desenvolvida na linguagem de programao de
script PHP sobre o Laravel Framework. Laravel Framework hoje um dos mais
conhecidos e utilizados frameworks de desenvolvimento Web.
Para a interface Web utilizado o template SB Admin 2 com as devidas alteraes
para integrao na filosofia do Laravel Framework. SB Admin 2 mantido por Start
Bootstrap (2016).
3.6.1 O servidor Web
Um servidor Web um software capaz de receber requisies de pginas web, tratar
essas requisies e responder com contedo dinmico gerado a partir da requisio
do usurio.
Apache Server hoje o programa servidor para Web mais utilizado no mundo devido
ao fato de ser bastante flexvel, eficiente e Open Source. extremamente flexvel,
oferecendo a capacidade de um nico servidor suportar diversos Websites como
hosts virtuais e agir como um proxy da Web.
Neste trabalho, o Apache usado como o servidor Web em que a aplicao
DataLogger Web executada. Assim, toda vez que uma requisio HTTP feita por
DataLogger Monitor e uma resposta a essa requisio dada pela aplicao
DataLogger Web, o servidor Apache est trabalhando para receber tal requisio e
enviar a resposta baseada na solicitao.
O Apache trabalha juntamente com o interpretador da linguagem de script PHP e o
banco de dados MySQL para que seja possvel gerar pginas dinmicas com dados
armazenados anteriormente.

62

3.6.2 PHP e Laravel Framework


Desenvolvida inicialmente por Rasmus Lerdorf em 1994, a linguagem de
programao PHP era composta por um conjunto de scripts escritos em C que
tinham como principal funo a criao de pginas dinmicas que Rasmus utilizava
para monitorar os acessos ao seu currculo na Internet.
Em 1995 o cdigo-fonte do PHP foi liberado por Rasmus o que atraiu interesses de
diversos programadores que iniciaram a contribuio para o aperfeioamento da
linguagem. Durante aquele perodo de tempo a linguagem foi conhecida pelo nome
FI, uma abreviao para interpretador de formulrios em ingls. Juntaram-se a
Rasmus os estudantes Andi Gutmans e Zeev Suraski que utilizavam a linguagem
para o desenvolvimento de um trabalho acadmico. Em 1998 PHP j estava
presente em 10% dos domnios da Internet e a PHP passou a significar Hypertext
Preprocessor (DALLOGLIO, 2015).
Atualmente, PHP a linguagem de programao em script para desenvolvimento de
sistemas Web mais utilizada nos servidores Web existentes. A linguagem passou
por uma reestruturao na sua verso 5 lanada em 2004 para ter uma abordagem
completamente voltada a orientao objetos.
Com uma abordagem de Orientao a Objetos vrios frameworks foram
desenvolvidos em PHP, dentre esses frameworks se destacam o Laravel
Framework, Zend Framework, e Symfony. Laravel hoje o framework PHP mais
utilizado na Web e utilizado neste trabalho para o desenvolvimento da lgica do
servidor Web.
Baseado no conceito de programao MVC (Model, View, Controller) - onde a lgica
de dados, visualizao e controle da aplicao so separadas em camadas - o
Laravel Framework possui diversos mecanismos e funes que favorecem o
programador no tratamento de banco de dados, lgica de controle da aplicao e
tambm na gerao de pginas Web dinmicas como respostas a requisies do
usurio ao servidor Web.
Neste trabalho o PHP trabalha juntamente com o servidor Apache atravs do
Laravel Framework para tratamento das requisies feitas pelos clientes ao servidor
Web. Uma vez que o servidor recebe uma requisio para uma pgina dinmica que

63

contem script PHP, tal servidor usa o interpretador PHP para interpretar e gerar uma
pgina dinmica que retornado ao usurio.
3.6.3 DataLogger Web
O desenvolvimento de uma aplicao que utiliza dados que devem ser mantidos
mesmo quando do fim de execuo desta deve sempre comear por uma definio
da estrutura da aplicao em termos de sua base de dados. Numa aplicao que se
utiliza banco de dados relacional importante criar os diagramas de relacionamento
entre as diversas entidades da aplicao.
DataLogger Web necessita de um banco de dados para o controle dos dados
trocados entre a prpria aplicao e a aplicao embarcada DataLogger Monitor. Da
mesma forma, essa base de dados deve ser capaz de gerenciar os dados relativos a
configurao da aplicao DataLogger Monitor que ir requisitar tal configurao
quando do incio de sua execuo como mostrado na Figura 28.
A Figura 33 exibe o DER (Diagrama Entidade Relacionamento) no padro UML para
a aplicao DataLogger Web. O DER foi criado utilizando a ferramenta MySQL
Workbench. O benefcio do uso de uma ferramenta para criao do DER est no
fato desta ferramenta produzir o cdigo SQL necessrio para a criao do esquema
de banco de dados.
O DER apresentado pela Figura 33 exibe o relacionamento entre as entidades do
banco de dados exibindo uma linha tracejada entre cada entidade e um indicativo de
como a relao se d. O notao * na extremidade das linhas que ligam cada
entidade indica uma relao de muitos ou para muitos.

64

Figura 33 Diagrama ER DataLogger Web

Fonte: do autor, 2016.

O Diagrama ER da Figura 33 modelado considerando a seguinte lgica de MER:

A tabela monitor_boards a tabela principal e armazena informaes sobre


cada uma das single-boards Raspberry Pi conectadas a aplicao
DataLogger Web;

A tabela devices armazena informaes sobre cada um dos dispositivos


conectados a uma single-board especfica;

65

A tabela board_server_talks armazena informaes relacionadas a troca de


informaes entre a aplicao DataLogger Monitor e a aplicao DataLogger
Web;

A tabela logs armazena eventos relacionados a uma single-board


especfica;

A tabela parameters armazena informaes dos parmetros que cada


dispositivo em devices possui.

A tabela parameters_cont_value associa o contedo de um registrador com


seu valor a ser exibido em tela para registradores com valores indiretos;

A tabela parameters_in_bit decompe os 16 bits de um registrador em bits


para parmetros que valores indiretos bit a bit;

A tabela parameters_responded armazena os registros dos parmetros e


seus valores para uma determinada comunicao entre DataLogger Monitor e
DataLogger Web previamente armazenada em board_server_talks;

Neste MER cada tabela possui um campo created_at e updated_at que so


preenchidos com a data e hora atuais quando um registro , respectivamente, criado
e atualizado.
O campo device_address da tabela devices armazena o endereo do dispositivo
na rede ModBus. O campo active da mesma tabela usado pela aplicao para
saber este dispositivo est sendo monitorado ou no. O campo active da tabela
parameters indica se um determinado parmetro associado a um dispositivo deve
ser requisitado ou no ou no.
A tabela parametes associa os parmetros do inversor de frequncia a seus
respectivos endereos de registradores Modbus. Informaes com relao a
manipulao dos valores como offset e multiplicao por um fator so armazenados
nessa tabela.
A tabela parameters_in_bit possui a descrio a ser exibida pela aplicao caso o
valor do bit seja 1 ou 0. Essas descries so armazenadas nas colunas desc_true
e desc_false para valores lgicos 1 e 0, respectivamente.

66

A Figura 34 exibe um diagrama de atividades para a aplicao DataLogger Web. Por


se tratar de uma aplicao Web, o diagrama tem incio sempre que uma requisio
Web feita ao servidor Web.
Figura 34 Diagrama de atvidades Data Logger Web

Responde com
configurao

Exibe pgina Web


com dados salvos

Recebe Requisio
Solicitao de Configurao (GET)

Sim

Solicitao de dados salvos (GET)

Requisio com dados lidos (POST)

Recebe dados lidos,


trata e salva no
banco de dados
Configurao alterada pela interface Web

Sim

No

Fonte: do autor, 2016.

A partir do diagrama de atividades apresentado pela Figura 34 possvel notar as


decises tomadas pela aplicao Data Logger Web de acordo com o tipo de
requisio feito pela aplicao Data Logger Monitor ou o usurio.

67

A Figura 35 exibe uma das pginas Web usadas para monitorao dos dados lidos a
partir de uma single-board Raspberry Pi onde o nico dispositivo conectado rede
Modbus o inversor de frequncia TECO L510 exibido na Figura 23.
Figura 35 Pgina Web com dados do inversor TECO L510

Fonte: do autor, 2016.

A Figura 35 exibe os valores lidos para alguns parmetros do inversor de frequncia


TECO L510. A Figura 36 exibe a pgina de status do dispositivo TECO L510.
Atravs desta pgina possvel fazer o monitoramento constante das principais
variveis do inversor de frequncia TECO L510.
Figura 36 Pgina de Status DataLogger Web

Fonte: do autor, 2016.

Na realizao deste trabalho apenas as pginas exibidas pelas Figura 35 e Figura


36 foram inicialmente criada. Porm, outras pginas contendo informaes grficas
relacionadas aos valores dos parmetros podem ser criadas para atender as

68

necessidades do usurio do sistema. Os valores exibidos no correspondem a


valores reais pois um simulador de um dispositivo Modbus foi usado para criao de
dados.
3.7

Resultados obtidos

O desenvolvimento de uma ferramenta de baixo custo para possibilitar o


monitoramento remoto de dispositivos industriais o objetivo alcanado neste
trabalho.
O fato de apenas uma single-board poder se conectar a at 32 dispositivos
diferentes e fazer o monitoramento destes dispositivos abre o leque de
possibilidades de uso da ferramenta desenvolvida neste trabalho.
Ter uma interface Web para configurao do sistema e monitoramento dos
dispositivos exclui por completo a necessidade da presena de um empregado no
campo para verificao de dispositivos. O uso da interface Web favorece ainda a
possibilidade e uso de dispositivos mveis para uso do sistema.
Apesar de a ferramenta desenvolvida neste trabalho ser voltada para o uso
industrial, a ideia explorada aqui pode ser estendida para tecnologias de uso
domstico ou empresarial. O acesso a dados remoto pode poupar tempo e trabalho
na hora de se tomar decises baseado nestes dados.

69

CONCLUSO E RECOMENDAES

Conclui-se com esse trabalho a real possibilidade do uso de dispositivos de baixo


custo e, sobretudo, softwares open-source para o desenvolvimento de uma
ferramenta eficaz no monitoramento de dispositivos industriais conectados s redes
de comunicao baseadas no protocolo Modbus.
O sistema desenvolvida neste trabalho pode ser usada por equipe de engenharia de
desenvolvimento de produtos eletrnicos industriais como uma ferramenta de
anlise e monitorao de informaes relacionados ao novo produto.
Conhecer como um novo dispositivo eletrnico se comporta antes de seu
lanamento no mercado muito importante e a ferramenta desenvolvida neste
trabalho pode ser muito til para essa finalidade.
Os objetivos definidos para a realizao deste trabalho foram todos alcanados.
Como recomendaes para trabalhos futuros relacionados ao presente trabalho
pode ser citado:

A extenso do suporte ao protocolo Modbus TCP bem como outros


protocolos de redes industriais;

A implementao de uma conexo como servidor baseado no protocolo


HTTPS de modo a proteger os dados sendo transmitidos na rede de eventual
interceptao;

Melhorias na interface Web tornado a mesma mais eficiente na anlise de


dados coletados;

Desenvolvimento de uma aplicao para dispositivos mveis que se


comunicam com o Web service.

70

REFERNCIAS BIBLIOGRFICAS

ADAMI JR, V. PARAMETRIZAO, MONITORAMENTO E SUPERVISO DE


EQUIPAMENTOS

INDUSTRIAIS

EM

REDE

MODBUS

UTILIZANDO

COMPUTADORES DE MO. UDESC. Joinville, p. 1-168. 2006. (20 CCT/UDESC).


BLANCHETTE, J.; SUMMERFIELD, M. C++ GUI Programming with Qt 4. 2. ed.
Indianapolis: Trolltech Press, 2008.
BOOCH, G.; RUMBAUGH, J.; IVAR, J. UML, guia do usurio. Rio de Janeiro:
Editora Campus, 2000.
BORGES, F. Redes de comunicao industrial. Schneider Electric. [S.l.]. 2007.
CHAPPELL, D.; JEWELL, T. Java Web Services. [S.l.]: O'Reilly, 2002.
CROCKFORD, D. The application/json Media Type for JavaScript Object
Notation (JSON). Fremont: ietf.org, 2006.
DALLOGLIO, P. PHP Programando com Orientao a Objetos. 3. ed. So Paulo:
Novatec Editora Ltda., 2015.
FORD, A. Apache 2, Guia de bolso. Rio de Janeiro: Alta Books, 2009.
GOURLEY, D.; TOTTY, B.; SAYER, M. HTTP: The Definitive Guide. Sebastopol:
O'Reilly & Associates, 2002.
GROOVER, M. P. Automation, Production Systems, and Computer-Integrated
Manufacturing. Englewood Cliffs: Prentice-Hall, Inc., 1987.
HEUSER, C. A. Projeto de Banco de Dados. 4. ed. Porto Alegre: Editora Sagra, v.
4, 1998.
HILL, R. Raspberry Pi for Beginners. 2. ed. Richmond Hill: Imagine Publishing,
2014.
INTEA. Introduction to MODBUS. Intea Web Page, 2002. Disponivel em:
<http://www.intea.hr/downloads/introduction_to_modbus.pdf>.
Novembro 2015.

Acesso

em:

17

71

MCMANUS, S.; MIKE, C. Raspberry Pi for Dummies. Hoboken: John wiley & Sons,
Inc., 2013.
MODBUS.ORG. MODBUS over Serial Line Specification and Implementation
Guide V1.02. Modbus Organization. Hopkinton. 2006.
MODBUS.ORG.

MODBUS

APPLICATION

PROTOCOL

SPECIFICATION.

Hopkinton: Modbus Organization, 2012.


MORAES, C. C. D.; CASTRUCCI, P. D. L. Engenharia de Automao Industrial.
2. ed. Rio de Janeiro: LTC, 2012.
MORAIS, C.; LIMA, J.; FRANCO, S. Conceitos sobre Internet e Web. Porto Alegre:
UFRGS, 2012.
MULLER, R. J. Projeto de Banco de Dados: Usando UML para modelagem de
dados. So Paulo: Berkley Brasil, 2002.
NARAMORE, E.; GERNER, J. Beginning PHP5, Apache, and MySQL Web
Development. Indianapolis: Wiley Publishing, Inc., 2005.
NASCIMENTO, J. M. A. D.; LUCENA, P. B. D. PROTOCOLO MODBUS. UFRN.
Natal, p. 1-4. 2003.
NOGUEIRA, T. A. Redes de comunicao para sistemas de automao
industrial. Universidade Federal de Ouro Preto. Ouro Preto. 2009.
RASPBERRYPI.ORG. Raspberry Pi Foundation Web Site, 2016. Disponivel em:
<https://www.raspberrypi.org>. Acesso em: 26 Outubro 2016.
SEIXAS FILHO, C. PIMS - Process Management Information - Uma Introduo.
UFMG. Belo Horizonte. 2003.
START BOOTSTRAP. SB Admin 2. Start Bootstrap, 2016. Disponivel em:
<http://startbootstrap.com/>. Acesso em: 26 maio 2016.
TANENBAUM, A. S.; J. WETHERALL, D. Redes de Computadores. 5. ed. So
Paulo: Pearson Education - Br, 2011.

72

TECO-WESTINGHOUSE MOTOR COMPANY. Inverter L510 Communication Addendum. TECO-Westinghouse Motor Company. Round Rock. 2015.
TECO-WESTINGHOUSE MOTOR COMPANY. Microprocessor Controlled IGBT
Drive Inverter Motor Speed Regulator Operating Manual. TECO-Westinghouse
Motor Company. Round Rock. 2015.
UPTON, E.; HALFACREE, G. Raspberry Pi User Guide. Hoboken: John Wiley &
Sons, Inc., 2012.

Вам также может понравиться