Você está na página 1de 146

Rio de Janeiro, Dezembro de 2008

- ii -

Telemetria aplicada a mquinas automticas de vendas

GILMAR HILL LIMA JNIOR


LEDILSON DE OLIVEIRA BARBOSA FILHO
PAULO ROBERTO FLORIANO

Este trabalho reflete a opinio dos


autores e no necessariamente a da
UniverCidade. Autorizamos a difuso
deste trabalho

____________________________________________

Gilmar Hill Lima Jnior

_____________________________________
Ledilson de Oliveira Barbosa Filho

_____________________________________
Paulo Roberto Floriano

Rio de Janeiro / RJ Brasil


Dezembro de 2008

- iii -

Telemetria aplicada a mquinas automticas de vendas

GILMAR HILL LIMA JNIOR


LEDILSON DE OLIVEIRA BARBOSA FILHO
PAULO ROBERTO FLORIANO

Aprovada, em 09 de dezembro de 2008, pela


Banca Examinadora formada pelos seguintes membros:

Banca Examinadora:

_______________________________________________________________
Prof. Denir Valencio de Campos, M.Sc. (PEB/COPPE/UFRJ)

_______________________________________________________________
Prof. Felipe Aurlio Caetano de Bastos, D.Sc. (PEE/COPPE/UFRJ)

_______________________________________________________________
Prof. Fernando Antnio Tupinamb Barbosa, M. Sc. (PUC/RJ)

Rio de Janeiro / RJ Brasil


Dezembro de 2008

- iv -

EPGRAFE:

A vida s pode ser compreendida, olhando-se para


trs; mas s pode ser vivida, olhando-se para frente.
Soren Kierkergaard

-v-

DEDICATRIA
Dedicamos este projeto a todos aqueles que nos apoiaram e nos ajudaram
desde o incio do nosso percurso. Primeiramente a Deus, por ter nos dado foras e
sabedoria no decorrer de nossa jornada. A nossas famlias, que sempre estiveram ao nosso
lado, servindo de alicerces para nos sustentar e no nos fazer desanimar em tempo algum.
UniverCidade, como entidade educacional, por acreditar na capacidade de seus alunos,
fazendo-nos caminhar para a concluso do curso com xito. Aos nossos colegas e amigos,
pelo apoio e confiana depositados em ns para que atingssemos nossos objetivos. Aos
professores, em especial, ao nosso orientador Denir Valncio, pois sempre caminharam
lado a lado conosco, guiando-nos durante todos os perodos, enchendo-nos de
conhecimentos. Obrigado a todos.

- vi -

AGRADECIMENTOS
A Deus por nos ter iluminado durante todos estes anos e nos dado sade,
perseverana,
Tranqilidade e equilbrio durante toda esta caminhada.

Ao professor e orientador deste projeto, Denir Venncio, pela confiana e


dedicao em nos orientar pelos melhores caminhos para a concluso deste projeto.

Aos nossos Pais e familiares que nunca mediram esforos para nos ajudar,
incentivar e contribuir com esta conquista to expressiva para o nosso saber.
Aos nossos amigos de graduao, que nos ajudaram durante essa longa
caminhada.

- vii -

Resumo
O presente trabalho apresenta o desenvolvimento de um sistema telemtrico
para controle contbil e logstico do estoque distncia de uma mquina automtica de
vendas utilizando tecnologia GPRS. O principal estudo deste projeto est focado no
microcontrolador PIC e suas caractersticas, assim como o desenvolvimento total do
prottipo que resultou tambm em abranger as tecnologia GSM e GPRS e a pilha de
protocolos TCP/IP.
Desenvolveu-se tambm um detalhamento do funcionamento do hardware e
do software do prottipo assim como os resultados obtidos e as possveis alteraes para
projetos futuros.

Palavras-chave: Sistema telemtrico, microcontrolador PIC, GSM, GPRS, protocolos


TCP/IP
- viii -

Sumrio
EPGRAFE: ......................................................................................................................... v
DEDICATRIA ................................................................................................................. vi
AGRADECIMENTOS ...................................................................................................... vii
Captulo 1 Introduo ....................................................................................................... 14
1.1

Telemetria................................................................................................................. 14

1.2 Objetivo ........................................................................................................................ 15


Captulo 2 Materiais e mtodos........................................................................................ 17
2.1

Microcontroladores ................................................................................................. 17

2.1.1 Formato de instrues no microcontrolador PIC.................................................. 19


2.1.2 Mapa de registradores ............................................................................................. 20
2.2 Protocolo TCP/IP......................................................................................................... 21
2.2.1 Comparao entre o modelo OSI e TCP/IP ........................................................... 24
2.2.2 O modelo de pilha de quatro camadas do TCP/IP ................................................ 26
2.3 As camadas................................................................................................................... 27
2.3.1 Camada de enlace ..................................................................................................... 27
2.3.2 Camada de rede ........................................................................................................ 27
2.3.3 Camada de transporte.............................................................................................. 27
2.3.4 Camada de aplicao................................................................................................ 28
2.4. GSM e GPRS............................................................................................................... 28
2.4.1 Rede GSM ................................................................................................................. 28
2.4.2 REDE GPRS ............................................................................................................. 29
Captulo 3 Telemetria aplicada a mquinas automticas de vendas ............................ 33
3.1 Soluo proposta.......................................................................................................... 33
3.2 Topologia do sistema ................................................................................................... 34
3.3 Caracterstica do hardware ........................................................................................ 35
3.3.1 Circuito multiplexador............................................................................................. 36
3.3.2 Circuito de controle e transmisso de dados.......................................................... 37
3.3.2.1 Microcontrolador PIC 16F876A .......................................................................... 39
3.3.3 Regulador de tenso e comunicao serial ............................................................. 40
3.3.4 Mdulo SIM 340Z e circuito de transmisso GPRS.............................................. 42
3.3.5 Comandos AT utilizados .......................................................................................... 42
- ix -

3.4 Caractersticas do software ........................................................................................ 44


3.4.1 Servidor CVA............................................................................................................ 45
3.4.2 Programao do microcontrolador PIC................................................................. 48
Captulo 4 Concluso ........................................................................................................ 50
Anexo I................................................................................................................................ 51
Anexo II ............................................................................................................................ 128
Referncias Bibliogrficas .............................................................................................. 146

-x-

Lista de Figuras
Figura 2. 1. Arquitetura de Von Neumman .................................................................... 19
Figura 2. 2. Arquitetura do microcontrolador PIC........................................................ 19
Figura 2. 3. Pipeline no microcontrolador PIC .............................................................. 20
Figura 2. 4. Mapa de registradores .................................................................................. 21
Figura 2. 5. Comparao entre os modelos TCP e OSI ................................................. 24
Figura 3. 1. Topologia do sistema..................................................................................... 35
Figura 3. 2. Circuito Multiplexador................................................................................. 36
Figura 3. 3. Diagrama de blocos do circuito multiplexador .......................................... 37
Figura 3. 4. Kit de desenvolvimento acadmico de fabricao CERNE....................... 38
Figura 3. 5. Diagrama do PIC 16F876A .......................................................................... 40
Figura 3. 6. Diagrama 1 de comunicao serial .............................................................. 41
Figura 3. 7. Diagrama 2 de comunicao serial .............................................................. 41
Figura 3. 8. Diagrama do regulador de tenso................................................................ 41
Figura 3. 9. Diagrama dos terminais do mdulo Sim 340Z e GPRS............................. 43
Figura 3. 10. Diagrama do Led de controle..................................................................... 44
Figura 3. 11. Diagrama do mdulo Sim card .................................................................. 44
Figura 3. 12. Tela inicial do servidor CVA ..................................................................... 45
Figura 3. 13. Parque de mquinas ................................................................................... 45
Figura 3. 14. Tela de controle de uma mquina no servidor ......................................... 46
Figura 3. 15. Tela de controle de venda e recarga de produtos..................................... 46
Figura 3. 16. Estrutura do protocolo de transmisso..................................................... 47
Figura 3. 17. Estrutura do protocolo de recarga ............................................................ 48

- xi -

Lista de Tabelas
Tabela 2. 1. Camadas de aplicao TCP/IP .................................................................... 26
Tabela 2. 2. Componentes de interface ............................................................................ 27
Tabela 3. 1. Caractersticas do PIC ................................................................................. 39
Tabela 3. 2. Componentes de interface 2 ......................................................................... 47
Tabela 3. 2. Componentes de interface 3 ......................................................................... 48

- xii -

Lista de siglas e abreviaes


BSD

Berkeley Standard Distribution (Distribuio Padro Berkeley)

CDMA

Code Division Multiple Access (Acesso Mltiplo por Diviso


de Cdigo)

CI
CMOS

Circuito Integrado
Complementary Metal-Oxide-Semiconductor (Semi condutor
de metal-xido complementar)

CPU

Central Process Unit (Unidade Central de Proces samento)

CSD

Circuit Switched Data (Dados Comutados do Circuito)

CVA

Controle de Vendas Automticas

FDMA

Frequency Division Multiple Access (Mltiplo Acesso por


Divisor de Freqncia)

GPRS

General Packet Radio Service (Pacote Geral de Servio de Rdio)

GSM

Global System for Mobile Communications (Sistema Global


para Comunicao Mvel)
In/OUT (Entrada/Sada)

I/O
IP
OSI

Internet Protocol (Protocolo de Internet)


Open Systems Interconnection (Interconexo de Sistemas
Abertos)

PIC
RAM
RISC

Controlador Integrado de Perifricos


Random Acess Memory (Memria de Acesso Aleatrio)
Reduced Instruction Set Computer (Computador com um
Conjunto Reduzido de Instrues)

SMS

Short Message Service (Servio de Mensagem Curta)

TCP

Transmission Control Protocol (Protocolo de Controle de


Transmisso)

TDMA

Time Division Multiple Access (Mltiplo Acesso por Diviso


de Tempo)
Transistor Transistor Logic (Lgica Transistor Transistor)

TTL

- xiii -

Captulo 1 Introduo
Apesar do mercado brasileiro ainda estar muito retrado no que diz respeito
a sistemas de telemetria, ocasionando alguns retardos na sua expanso devido s
dificuldades de uma soluo que possa atender inmeros setores causando com isso custos
ainda elevados para algumas aplicaes, a necessidade cada vez maior de se explorar os
avanos tecnolgicos do sistema de telecomunicaes no Brasil e no mundo, voltados para
transmisso remota de dados no podem ser ignorados, pois est se tornando gradualmente
um recurso fundamental para vrios setores. A grande gama de mquinas que so
desenvolvidas a cada dia utilizando algum tipo de microcontrolador com a tarefa de
monitorar e controlar sistemas cresce progressivamente. Agregado a estas, est o gasto
com visitas para superviso, controle manual e custos com visitas preventivas, com isso, se
verifica a necessidade de uma comunicao instantnea com estas mquinas tornando,
desta atitude, um fator estratgico para a sobrevivncia em mercados cada vez mais
competitivos.

1.1 Telemetria
Telemetria uma tecnologia que permite medio e comunicao
distncia de reas remotas com uma central de captao de informaes, e uma palavra
grega onde tele = remoto e metron = medida. Definimos ento telemetria como a
transferncia e utilizao de dados provindos de mltiplas mquinas remotas distribudas
em uma rea geogrfica de forma pr-determinada. Uma sute operacional que envolve
telemetria composta de recursos humanos e fsicos capaz de realizar a transferncia e
utilizao de dados provindos de equipamentos remotos para o monitoramento, medio e
controle dos mesmos [1][2].

- xiv -

O sistema de telemetria composto por mquinas inteligentes e sensores,


que monitoram, controlam e medem algum tipo de atividade, localmente, pela interface de
aplicao, entre os sensores e a rede de comunicao pela base de comunicao
(Backbone), que transmite informaes dos sensores atravs da interface da aplicao, para
um computador central de comando. Por ltimo, o centro de controle e comando recebe os
dados transmitidos pelos sensores. A informao processada, podendo ser disseminada
para diferentes locaes atravs da internet [1][2].
A eficincia da soluo de telemetria aumenta ainda mais dependendo do
tipo de informao enviada entre as mquinas. A deteco das razes do mau
funcionamento de uma determinada mquina, por exemplo, permite que sejam enviados os
profissionais mais adequados para solucionar os problemas. Alm disso, sistemas de
telemetria auxiliam na reduo de taxas de seguro referentes ao mau funcionamento das
mquinas e a perda de produo [1][2].
No mercado mundial, o sistema telemtrico tem evoludo de forma muito
rpida devido ao grande progresso do sistema de telecomunicaes, fazendo com isso, que
mais e mais segmentos optem por algum tipo de controle telemtrico. Esta soluo
utilizada, principalmente, no controle de energia eltrica. Faz-se superviso de consumo
sem leitura presente, nos sistemas de gs onde no s h leitura do consumo como a
medio de temperatura e presso dos reservatrios, no acompanhamento de carros de
Frmula 1, avaliando possveis problemas e monitorando o desempenho atravs de
sensores, e mais recentemente nas medies de consumo e vazamento individual de gua
em prdios comerciais e residncias. O responsvel principal por este progresso , sem
dvida, a evoluo dos sistemas de telecomunicaes sem fio, no caso mais especfico, a
tecnologia GPRS (General Packet Radio Service ou Servio Geral de Pacote de radio),
com um custo bastante atraente. Aps colhermos vrias informaes a respeito desses
processos verificamos a viabilidade tcnica e comercial deste projeto [1][2].

1.2 Objetivo
Este trabalho tem o objetivo de desenvolver um projeto baseado em
conceitos e aplicaes telemtricas com respaldo nos conhecimentos da engenharia de
telecomunicaes, visando criar uma soluo inovadora no controle de mquinas
automticas de venda.

15

A partir da iniciamos uma pesquisa para verificao das ferramentas


tcnicas e fsicas a serem aplicadas para montagem de um prottipo, objetivando
supervisionar atravs de um sistema de telemetria uma mquina de vendas automticas.
Ser utilizado o sistema de comunicao sem fio via GPRS (General Packet Radio Service
ou Servio Geral de Pacote de radio), gerando reduo de custos operacionais, melhor
logstica e controle de produtos com rapidez e confiabilidade. Ser utilizado um
microcontrolador PIC (Controlador integrado de perifricos) 16F873A fabricado pela
Microchip responsvel por controlar e tratar os dados, assim como um servidor
denominado CVA (controle de vendas automticas) que receber os dados oriundos do
referido microcontrolador analisando e armazenando no seu banco de dados.
No

captulo

abordado

um

referencial

terico

sobre

os

microcontroladores. Descrevem-se a sua arquitetura bsica, principais diferenas de outros


microcontroladores, e as principais caractersticas do microcontrolador PIC, principal
tecnologia utilizada neste projeto, assim como o seu formato de instrues, mapa de
registradores e arquitetura. feita tambm uma apresentao da pilha de protocolos
TCP/IP, que utilizada para troca de informaes do sistema remoto, sendo feito o
detalhamento de suas caractersticas, comparao o modelo OSI e um detalhamento das
quatro camadas do TCP/IP e seus protocolos. Em seguida descreve-se a tecnologia
utilizada, no caso ser a GPRS que atua na arquitetura da rede GSM sendo descritas suas
principais caractersticas.
No capitulo 3 feita a justificativa para elaborao do referido projeto
atravs de um detalhamento da soluo proposta e da topologia do sistema. Assim sendo,
torna-se necessrio abordar as caractersticas do hardware com os referidos diagramas
eltricos, assim como do software utilizado e as configuraes nele executadas, tanto do
servidor do CVA como no PIC.
E finalmente no capitulo 4, a concluso e sugesto para futuras
aplicaes.

16

Captulo 2 Materiais e mtodos


2.1 Microcontroladores
O conceito de controlador tem permanecido inalterado atravs do tempo,
porm, sua implementao fsica tem variado freqentemente. H algumas dcadas, os
controladores eram construdos apenas com componentes discretos, montados em uma
placa de circuito impresso. Era composto por uma unidade de processamento lgico e
diversos componentes de periferia como chips de memria, portas de entrada/sada, e
relgios de tempo real [3]-[4][5].
Atualmente, estes chips integram em seus ncleos perifricos que permitem
o desenvolvimento de software mais flexvel para sistemas embarcados, este fato ocorre
devido aos avanos tecnolgicos. Com isso, todos os elementos do controlador puderam
ser includos em um nico chip e este recebe o nome de microcontrolador, o que
proporcionou o surgimento dos conhecidos, sistemas em um nico chip (SoC - System on
Chip), sendo considerado em alguns casos, um mini computador, devido capacidade de
processamento

de

tomadas

de

deciso,

que

so

conseguidas

com

estes

microcontroladores. Atravs da programao dos microcontroladores podemos controlar


suas sadas, tendo como referncia as entradas ou um programa interno [3]-[4][5].
O intuito de, cada vez mais, utilizarem-se produtos com microcontroladores
embarcados se d, efetivamente, devido reduo de custo e espao, associado
confiabilidade e reduo de consumo. Estes produtos vo desde jogos eletrnicos,
passando por eletrodomsticos, produtos de udio e vdeo, computadores e tambm na
indstria automobilstica [3]-[4][5].
O que diferencia os diversos tipos de microcontroladores so as quantidades
de memria interna (programa e dados), velocidade de processamento, quantidade de pinos

17

de entrada/sada (I/O), alimentao, perifricos, arquitetura e set de instrues. Pode ser


encontrado no mercado microcontroladores com 4, 8, 16 e 32 bits apesar dos de 16 e 32
bits serem superiores aos de 8 bits que dominam o mercado devido a atenderem maioria
das aplicaes dispensando, com isso, investimentos mais altos [3]-[4]-[5].
No mercado pode-se se encontrar vrios tipos de micontroladores, como o
da famlia 8051 fabricados pela Intel com 40 pinos, 8 bits, memria RAM de 256 bits,
conversor A/D e protocolos seriais. Temos o Texas TMS370Cx5x com 64 pinos, 40 pinos
bidirecionais, 9 de entrada, memria RAM de 256 e com conversor A/D e o
microcontrolador PIC escolhido por ns para ser utilizado neste projeto [3]-[4]-[5].
Os microcontroladores PIC so circuitos integrados que pertencem
categoria dos microcontroladores, ou seja, componentes integrados que em um nico
dispositivo contm todos os circuitos necessrios para realizar um completo sistema digital
programvel [3]-[4]-[5].
O PIC pode ser visto externamente como um circuito integrado TTL ou
CMOS normal, mas internamente dispe de todos os dispositivos tpicos de um sistema
microprocessado, ou seja, uma CPU, que interpreta as instrues de programa; uma
memria PROM, que memoriza de maneia permanente as instrues do programa; uma
memria RAM, utilizada para memorizar as variveis utilizadas pelo programa; uma srie
de LINHAS de I/O para controlar dispositivos externos ou receber pulsos de sensores,
chaves, etc [3]-[4]-[5].
A presena de todos estes dispositivos como gerador de clock, bus e
contador, em um espao extremamente pequeno, d ao projetista ampla gama de trabalho e
enorme vantagem em usar um sistema microprocessado, onde em pouco tempo e com
poucos componentes externos, pode-se fazer o que seria oneroso fazer com circuitos
tradicionais [3]-[4]-[5].
O alto desempenho da famlia de microcontroladores PIC pode ser atribudo
s seguintes caractersticas de arquitetura RISC:
Mapa de Registradores verstil, todas as instrues com palavras simples e
longas, arquitetura em pipeline, instrues de apenas um ciclo de mquina e conjunto
ortogonal (simtrico) [3]-[4]-[5].
A arquitetura Von-Neumman tradicional utiliza o mesmo barramento para
fazer a busca a instrues na memria de programa e para acessar (escrever ou ler) a
memria de dados [3]-[4]-[5].

18

Figura 2. 1. Arquitetura de Von Neumman.

A arquitetura do microcontrolador utiliza dois barramentos de endereos


distintos para acessar instrues e dados [4].

Figura 2. 2. Arquitetura do microcontrolador PIC.

2.1.1 Formato de instrues no microcontrolador PIC


A entrada de clock (pino OSC1/CLKIN) internamente dividida por quatro
para gerar quatro clocks em quadratura sem sobreposio, nomeados Q1, Q2, Q3, e Q4.
Internamente, o Contador de Programa (PC) incrementado em Q1 e a instruo retirada
da memria de programa e colocada no registrador de instrues em Q4. Ela
decodificada e executada no ciclo seguinte de Q1 at Q4 [6].
Um ciclo de instrues consiste de quatro ciclos Q (Q1, Q2, Q3, Q4). A
busca e execuo da instruo so feitas em linha, de tal forma que a busca leva um ciclo
de instruo e a execuo leva outro ciclo. Contudo, devido caracterstica de pipeline,
cada instruo executada efetivamente em um ciclo, pois simultaneamente ocorrem a
execuo de uma instruo e a busca a instruo seguinte. Se uma instruo causa a
alterao do Contador de programa ento dois ciclos so necessrios para completar a
instruo [6].

19

Figura 2. 3. Pipeline no microcontrolador PIC.

A arquitetura em pipeline sobrepe busca e execuo, tornando a


execuo de instrues possvel de se realizar em um nico ciclo de mquina. Qualquer
instruo de desvio (tais como GOTO, CALL, ou escrever no PC) leva dois ciclos de
mquina [3]-[4]-[6].
A arquitetura com barramentos separados para instrues e dados permite
larguras diferentes, com isso, o barramento de instrues otimizado para uma palavra de
comprimento nica. O nmero de bits do barramento de instrues depende de quantas
instrues so implementadas e do nmero de registradores disponveis em cada famlia de
microcontroladores [3]-[4]-[6].

2.1.2 Mapa de registradores


Todas as instrues aritmticas e booleanas so feitas atravs do registrador
de trabalho W. O destino da operao pode ser o prprio registrador W ou um dos
registradores disponveis no microcontrolador, dependendo unicamente da instruo
executada [3]-[4].

20

Figura 2. 4. Mapa de registradores.

2.2 Protocolo TCP/IP


Redes de computadores so interconectadas por sistemas de comunicao
baseado no envio de sinais eletromagnticos. Atravs do principio bsico de comunicao
observou-se que, para haver comunicao entre entidades, necessrio que tanto o
transmissor quanto o receptor entendam a mensagem transmitida, e saibam o momento
exato para transmitir, sendo necessrio, para isso, a criao de regras que delimitem e
estabeleam funes para cada parte da comunicao. Este conjunto de regras dividido
para controlar cada parte da comunicao denominada de camada. A juno das camadas
denominada protocolo, ou seja, o protocolo o conjunto de camadas de regras com
funes especficas que interagem entre elas tornando assim a comunicao entre duas
entidades possvel [7]-[8]-[9].
O TCP/IP vem conquistando a aceitao universal na comunidade cientfica,
alm de ser um recurso padronizado em quase todas as verses de sistemas operacionais
comercializados no planeta [7]-[8]-[9].
O TCP/IP foi projetado para operar em padres estabelecidos, como a
Ethernet, por exemplo. Ao longo do tempo, o TCP/IP conseguiu estabelecer a interface
com a maioria das tecnologias de camadas de link de dados e fsica [7]-[8]-[9].
A camada Internet equivale camada de rede da OSI. Os protocolos dessa
camada so responsveis pela movimentao de dados entre os dispositivos das redes [7][8]-[9].

21

A camada de host a host pode ser comparada camada de transporte da


OSI. Os protocolos host a host permitem a comunicao por entre os hosts da inter rede
(quando esses protocolos foram projetados, no existiam PCs nem estaes de trabalho e
todos os computadores de rede eram hosts). Como conseqncia disso, os dispositivos em
redes TCP/IP so normalmente chamados de hosts. O conceito de uma relao
cliente/servidor no existia e todos os hosts de comunicao eram tidos como peers.). A
camada de processo/aplicao abrange funes das camadas de sesso, apresentao e
aplicao da OSI. Os protocolos dessa camada fornecem servios de rede [7]-[8]-[9].
O Modelo de Referncia OSI til como ferramenta conceitual para a
compreenso das camadas dos protocolos. Apesar de os protocolos terem sido projetados
estritamente de acordo com o Modelo de Referncia OSI, o conjunto de protocolos da OSI
no se tornou popular. A principal idia que se tem do Modelo de Referncia como um
framework conceitual em que podemos compreender o processo de comunicao da rede e
comparar vrios tipos de protocolos [7]-[8]-[9].
Os protocolos so implementaes reais, no cdigo do programa e no
hardware, das normas conceituais definidas no Modelo de Referncia. As tarefas descritas
no Modelo de Referncia podem ser executadas de vrias maneiras, dependendo dos
objetivos dos projetistas da rede. Alm disso, vrios conjuntos de protocolos so
compartilhados. Alguns protocolos e conjuntos de protocolos j existiam antes do Modelo
de Referncia OSI ter sido divulgado e podem ser vagamente comparados ao modelo de
sete camadas [7]-[8]-[9].
Os protocolos so as plantas da rede. So descries, altamente detalhadas,
de todas as funes em uma determinada camada de comunicao. Entretanto, o protocolo
no pode funcionar at que seja expresso em hardware e software [7]-[8]-[9].
O Modelo de Referncia OSI foi usado como estratgia para o
desenvolvimento de sistemas abertos e alguns fornecedores projetaram novamente os
conjuntos de protocolos existentes para torn-los mais compatveis com o modelo OSI.
Outros argumentam que j possuem um conjunto de protocolos altamente funcional que,
na verdade, so realmente abertos, se for levado em considerao que eles esto
disponveis para qualquer pessoa do setor. Conseqentemente, o impacto do modelo OSI
limitou-se aos produtos de alguns fabricantes [7]-[8]-[9].

22

O conjunto de protocolos da Internet (chamado tambm de conjunto de


protocolos TCP/IP) foi desenvolvido, visando oferecer um forte servio nas inter-redes
amplas, que incorporam vrios tipos de computadores [7]-[8]-[9].
O TCP um protocolo de rede que corresponde camada de transporte da
OSI. Ele fornece transporte full duplex baseado em conexo. Quando o overhead de um
transporte baseado em conexo no requerido, o User Datagram Protocol (UDP) pode
ser substitudo pelo TCP no nvel de transporte (host a host) [7]-[8]-[9].
Tambm oferece fragmentao e remontagem de mensagens e suporta
mensagens de qualquer tamanho vindas dos protocolos da camada superior. O TCP
fragmenta os fluxos de mensagens em segmentos que podem ser manuseados pelo IP.
Quando utilizado com o IP, o TCP fornece servio baseado em conexo e executa a
sincronizao de segmentos, colocando os nmeros de seqncia no nvel de byte [7]-[8][9].
Alm da fragmentao de mensagens, o TCP pode manter vrias
conversaes com os protocolos da camada superior e aperfeioar o uso da banda passante
da rede combinando vrias mensagens em um mesmo segmento. Cada conexo de circuito
virtual recebe um identificador chamado porta, que identifica os datagramas associados
conexo em questo [7]-[8]-[9].
O IP um protocolo sem conexo que fornece servio de datagrama e cujos
pacotes so mais comumente conhecidos como datagramas IP. Protocolo de comutao de
pacotes que realiza endereamento e seleo de rota. Um cabealho do IP includo nos
pacotes, que so transmitidos como frames pelos protocolos de nvel inferior. Este
protocolo roteia pacotes pelas interredes, utilizando as tabelas de roteamento dinmicas
que so consultadas a cada salto. O roteamento pode ser determinado por meio da consulta
de informaes dos dispositivos lgico e fsico da rede, como fornecido pelo Address
Resolution Protocol (ARP) O IP desmonta e remonta o pacote, quando requerido pelas
limitaes de tamanho de pacote, definidas para as camadas de link de dados e fsica, que
esto sendo implementadas e tambm realiza a verificao de erros nos dados do cabealho
usando um checksum, embora os dados das camadas superiores no suportem essa
verificao [7]-[8]-[9].

23

2.2.1 Comparao entre o modelo OSI e TCP/IP


Os modelos de referncia OSI e TCP/IP tm muito em comum. Ambos so
baseados no conceito de pilha de protocolos independentes e a funcionalidade das camadas
muito semelhante. Por exemplo, em ambos os modelos, camadas de transporte e as
demais acima dela fornecem um servio de transporte independente de rede fim a fim,
processando pedidos de comunicao, formando o provedor de transporte. Tambm as
camadas acima da de transporte so voltadas para o processamento de pedidos de
comunicao [7]-[8]-[9].
Trs conceitos so centrais no modelo OSI: Interfaces, protocolos e
servios.

Figura 2. 5. Comparao entre os modelos TCP e OSI.

O modelo OSI faz uma explcita distino entre estes conceitos bsicos. As
camadas inferiores fornecem alguns servios para as superiores. Na definio de servio,
especifica-se o que cada camada faz, no diz como as camadas acima acessam e como ela
trabalha. H uma interface de camada que diz aos processos acima como acess-lo,
especificando os parmetros e os retornos esperados, mas no fala sobre o funcionamento
interno da camada. Os protocolos pares usados na camada, so assuntos prprios da

24

camada. Ela pode usar quaisquer protocolos, desde que fornea o servio requerido.
Tambm pode mud-los sem afetar o software nas camadas mais altas [7]-[8]-[9].
Estas idias so muito prximas s modernas idias de programao
orientada a objeto. Cada objeto (camada) tem um conjunto de mtodos que podem ser
acessados por processos externos ao objeto. A semntica destes mtodos define o conjunto
de servios oferecidos pelo objeto. Os parmetros dos mtodos e os resultados da interface
do objeto. O cdigo interno do objeto seu protocolo e no visvel fora deste.
O modelo TCP/IP originalmente no faz esta clara distino entre servio, interface e
protocolo, embora muitos tenham tentado mud-lo para torn-lo mais parecido com OSI.
Por exemplo, os nicos servios reais oferecidos pela camada de internet so enviar e
receber pacote IP. Por esta razo, os protocolos OSI so mais bem escondidos do que no
TCP/IP e tm maior adaptabilidade para mudanas de tecnologia. Esta adaptabilidade um
dos propsitos principais de se ter protocolos por camadas no modelo inicial [7]-[8]-[9].
O modelo de referncia OSI foi criado antes da inveno dos protocolos.
Desta forma ele no foi feito sobre um conjunto particular de protocolos, o que o torna
bem geral. Isto significa que o modelo no foi formado sobre um conjunto particular de
protocolos, o que o faz ser bem geral. Em contraponto, os projetistas no tinham muita
experincia e no poderiam ter uma boa idia quanto funcionalidade das camadas. Por
exemplo, originalmente a camada de enlace lidava somente com redes ponto a ponto e
quando ento surgiram as redes, teve de ser adicionada uma nova subcamada. Quando as
pessoas passaram a construir redes usando o modelo OSI e protocolos existentes,
descobriram que eles no atendiam as especificaes de servio requeridas e tiveram de
adicionar subcamadas para superar as diferenas. Finalmente, o comit originalmente
esperou que cada pas tivesse uma rede, gerenciada pelo governo e usando os protocolos
OSI, logo a idia de interconectividade. Resumidamente, as coisas no aconteceram assim
[7]-[8]-[9].
Com o TCP/IP aconteceu o contrrio: os protocolos vieram primeiro, e o
modelo foi apenas uma descrio dos protocolos existentes. Por isso no houve problema
com protocolos tendo que se adaptarem ao modelo, eles se encaixam perfeitamente. O
problema que nem toda pilha de protocolo se encaixa no modelo. Conseqentemente, no
podia ser utilizado para descrever redes que no fossem TCP/IP. Falando mais especificamente, h uma diferena bvia entre os dois modelos que o nmero de camadas: OSI
tem sete e o TCP/IP tem quatro. Ambas tm camada de rede, de transporte e aplicao,

25

mas as outras so diferentes. Outra diferena est ligada ao tipo conexo da comunicao:
comunicao sem conexo (CSC) versus comunicao orientada conexo (COC). Na
camada de rede, OSI suporta ambos e o modelo TCP/IP tem somente um modo. Na
camada de transporte, OSI possui somente COC, onde ele influencia (porque o servio de
transporte visvel aos usurios), enquanto que TCP/IP suporta ambos os modos na
camada de transporte, dando uma escolha aos usurios. Esta escolha especialmente
importante

para

protocolos

simples

de

pergunta

resposta

[7]-[8]-[9].

2.2.2 O modelo de pilha de quatro camadas do TCP/IP


O TCP/IP foi desenhado segundo uma arquitetura de pilha, onde diversas
camadas de software interagem somente com as camadas acima e abaixo. H diversas
semelhanas com o modelo conceitual OSI da ISO, mas o TCP/IP anterior
formalizao deste modelo e, portanto, possui algumas diferenas [10].
O nome TCP/IP vem dos nomes dos protocolos mais utilizados desta pilha,
o IP (Internet Protocol) e o TCP (Transmission Control Protocol). Mas a pilha TCP/IP
possui ainda muitos outros protocolos, dos quais veremos apenas os mais importantes,
vrios deles necessrios para que o TCP e o IP desempenhem corretamente as suas
funes. Visto superficialmente, o TCP/IP possui quatro camadas, desde as aplicaes de
rede at o meio fsico que carrega os sinais eltricos at o seu destino [8]-[9]:

Tabela 2. 1. Camadas de aplicao TCP/IP.


4. Aplicao (Servio)

FTP, TELNET, LPD, HTTP, SMTP/POP3, NFS, etc.

3. Transporte

TCP, UDP

2. Rede

IP

1. Enlace

Ethernet, PPP, SLIP

Alm das camadas propriamente ditas, temos uma srie de componentes,


que realizam a interface entre as camadas [8]-[9]:

26

Tabela 2. 2. Componentes de interface.


Aplicao / Transporte

DNS, Sockets

Rede / Enlace

ARP, DHCP

2.3 As camadas
2.3.1 Camada de enlace
Os protocolos de enlace tm a funo de fazer com que informaes sejam
transmitidas de um computador para outro em uma mesma mdia de acesso compartilhado
(tambm chamada de rede local) ou em uma ligao ponto-a-ponto (ex: modem). A
preocupao destes protocolos permitir o uso do meio fsico que conecta os
computadores na rede e fazer com que os bytes enviados por um computador cheguem a
um outro computador diretamente desde que haja uma conexo direta entre eles [8]-[9].

2.3.2 Camada de rede


O protocolo de rede, o Internet Protocol (IP), responsvel por fazer com
que as informaes enviadas por um computador cheguem a outros computadores mesmo
que eles estejam em redes fisicamente distintas, ou seja, no existe conexo direta entre
eles. Como o prprio nome (Internet) diz, o IP realiza a conexo entre redes. E ele quem
traz a capacidade da rede TCP/IP se "reconfigurar" quando uma parte da rede est fora do
ar, procurando um caminho (rota) alternativo para a comunicao [8]-[9].

2.3.3 Camada de transporte


Os protocolos de transporte mudam o objetivo, que era conectar dois
equipamentos, para conectar dois programas. Voc pode ter em um mesmo computador
vrios programas trabalhando com a rede simultaneamente, por exemplo, um browser Web
e um leitor de e-mail. Da mesma forma, um mesmo computador pode estar rodando ao
mesmo tempo um servidor Web e um servidor POP3. Os protocolos de transporte (UDP e
TCP) atribuem a cada programa um nmero de porta, que anexado a cada pacote de

27

modo que o TCP/IP saiba para qual programa entregar cada mensagem recebida pela rede
[8]-[9].

2.3.4 Camada de aplicao


Finalmente os protocolos de aplicao so especficos para cada programa
que faz uso da rede. Desta forma existe um protocolo para a conversao entre um servidor
web e um browser web (HTTP), um protocolo para a conversao entre um cliente Telnet
(Protocolo de Terminal Virtual) e um servidor (Daemon) e assim por diante. Cada
aplicao de rede tem o seu prprio protocolo de comunicao, que utiliza os protocolos
das camadas mais baixas para poder atingir o seu destino [8]-[9].

2.4. GSM e GPRS


2.4.1 Rede GSM
Global System for Mobile Communications ou Sistema Global para
Comunicaes Mveis uma tecnologia mvel e o padro mais popular para celulares do
mundo. Telefones GSM so usados por mais de um bilho de pessoas em mais de 200
pases. A onipresena do sistema GSM faz com que o roaming internacional seja muito
comum atravs de "acordos de roaming" entre operadoras de celular. O GSM diferencia-se
muito de seus predecessores sendo que o sinal e os canais de voz so digitais, o que
significa que o GSM visto como um sistema de celular de segunda gerao (2G) [11][12].
O GSM possui uma srie de caractersticas que o distinguem dentro do
universo das comunicaes mveis. Nascido nos anos 80 e fruto de uma cooperao sem
precedentes dentro da Europa, o sistema partilha elementos comuns com outras tecnologias
utilizadas em telemveis, como a transmisso ser feita de forma digital e a utilizar clulas
(como funciona um telemvel). Do ponto de vista do consumidor, a vantagem-chave do
GSM so os servios novos com baixos custos. Por exemplo, a troca de mensagens de
texto foi originalmente desenvolvida para o GSM. A vantagem para as operadoras tem sido
o baixo custo de infra-estrutura causada por competio aberta. A principal desvantagem
que o sistema GSM baseado na rede TDMA, que considerada menos avanada que a

28

concorrente CDMA. A performance dos celulares muito similar, mas apesar disso o
sistema GSM tem mantido compatibilidades com os telefones GSM originais. A verso de
1999 do padro introduziu ndices relativamente altos de transmisso de dados, e
normalmente referida como 3G. O sistema GSM 900 utiliza dois conjuntos de freqncias
na banda dos 900 MHz, o primeiro nos 890-915MHz, utilizado para as transmisses do
terminal e o segundo nos 935-960MHZ, para as transmisses da rede [11]-[12].
O mtodo utilizado pelo GSM para gerir as freqncias uma combinao
de duas tecnologias: o TDMA (Time Division Multiple Access ou Acesso Mltiplo por
Diviso de Tempo) e o FDMA (Frequency Division Multiple Access ou Acesso Mltiplo
por Diviso de Freqncia). O FDMA divide os 25 MHz disponveis de freqncia em 124
canais com uma largura de 200 kHz e uma capacidade de transmisso de dados na ordem
dos 270 Kbps. Uma ou mais destas freqncias atribuda a cada estao base e dividida
novamente, em termos de tempo, utilizando o TDMA, em oito espaos de tempo
(timeslots). O terminal utiliza um timeslot para recepo e outro para emisso. Eles
encontram-se separados temporalmente para que o telemvel no se encontre ao receber e
transmitir ao mesmo tempo. Esta diviso de tempo tambm chamada de full rate. As
redes tambm podem dividir as freqncias em 16 espaos no processo designado de half
rate, mas a qualidade da transmisso inferior [11]-[12].
A voz codificada de uma forma complexa, de forma que erros na
transmisso possam ser detectados e corrigidos. Em seguida, enviado nos timeslots, cada
um com uma durao de 577 milisegundos e uma capacidade de 116 bits codificados. Cada
terminal possui uma agilidade de freqncia, podendo deslocar-se entre os timeslots
utilizados para envio, recepo e controle dentro de um frame completo. Ao mesmo tempo,
um telemvel verifica outros canais para determinar se o sinal mais forte e mudar a
transmisso para os mesmos, caso a resposta seja afirmativa [11]-[12].

2.4.2 REDE GPRS


O GPRS (General Packet Radio Service ou Servio Geral de Pacote de
Rdio) um novo servio de valor agregado no baseado em voz que permite o envio e
recepo de informaes atravs de uma rede telefnica mvel [11]-[12].
Ele suplementa as tecnologias atuais de CSD (Circuit Switched Data ou
Circuito de troca de dados) e SMS (Short Message Service ou Servio de mensagens

29

curtas). GPRS no relacionado ao GPS (o Sistema de posicionamento global), um


acrnimo semelhante que frequentemente utilizado em contextos mveis [11]-[12].
GPRS tem vrias caractersticas especficas que podem ser resumidas em:
Velocidade - Taxas de transferncia tericas de at 171,2 kbps (kilobits por segundo) so
possveis com GPRS usando todos os oito timeslots ao mesmo tempo. Isso uma taxa de
transferncia prxima de trs vezes mais rpida do que as possveis nas redes de
telecomunicaes fixas e dez vezes mais que os atuais servios de CSD nas redes GSM.
Disponibilidade imediata - GPRS facilita conexes instantneas, pois a informao pode
ser enviada ou recebida imediatamente conforme a necessidade do usurio. No h
necessidade de conexes dial-up atravs de modems. Algumas vezes, diz-se que os
usurios de GPRS esto sempre conectados. Disponibilidade imediata uma das
vantagens de GPRS (e SMS) quando comparado com CSD. Alta disponibilidade imediata
uma caracterstica muito importante para aplicaes crticas como autorizao remota de
lanamento em cartes de crdito, quando inaceitvel que o cliente seja mantido em
estado de espera por mais de 30 segundos alm do necessrio. Novas e melhores aplicaes GPRS facilitam aplicaes no disponveis atravs das redes GSM, dadas as
limitaes na taxa de transferncia dos CSDs (9,6 kbps) e o tamanho da mensagem no
SMS (160 caracteres). Essas aplicaes, descritas posteriormente, vo desde navegao na
Web at transferncia de arquivos para automao de residncias - a habilidade de acessar
e controlar remotamente os equipamentos e recursos disponveis em uma casa. Para usar
GPRS, os usurios precisam especificamente de um telefone mvel ou terminal que
suporte GPRS, uma assinatura em uma rede de telefonia mvel que suporte GPRS, ter o
uso de GPRS habilitado. O acesso automtico ao GPRS pode ser permitido por algumas
operadoras. Outras podero requerer uma opo especfica de adeso, conhecimento de
como enviar e receber informaes atravs do GPRS usando seu aparelho telefnico,
incluindo configuraes de hardware e software, o que cria a necessidade de um servio de
atendimento ao cliente, um destino para enviar ou um local de onde receber informaes
atravs do GPRS. Com SMS esse destino ou origem era freqentemente outro telefone
mvel. Com GPRS mais provvel que se parea com um endereo Internet, j que GPRS
foi projetado para tornar o acesso Internet totalmente disponvel aos usurios mveis
desde o incio. Desde a disponibilidade do servio, os usurios do GPRS podem acessar
qualquer pgina da Web ou outras aplicaes Internet - fornecendo uma massa crtica
inicial de uso [11]-[12].

30

Tendo visto as caractersticas principais do GPRS do ponto de vista do


usurio, vejamos quais so essas caractersticas do ponto de vista de uma operadora da
rede. Com o GPRS, a informao dividida em pacotes relacionados entre si antes de
ser transmitida e remontada no destinatrio. A comutao de pacotes semelhante a um
jogo de quebra-cabea, no qual a informao que o quebra-cabea representa,
dividida em pequenas peas pelo fabricante e colocada em um saco plstico. Durante o
transporte do quebra-cabea entre a fbrica e o comprador, as peas so misturadas.
Quando o comprador do jogo retira as peas da embalagem ele as remonta, formando a
imagem original. Todas as peas so relacionadas entre si e se encaixam, mas a forma
como so transportadas e remontadas varia [11]-[12].
A Internet um outro exemplo de rede de dados baseada em comutao de
pacotes, o mais famoso de muitos tipos de rede [11]-[12].
Usar a comutao de pacotes no GPRS significa que os recursos de rdio
sero utilizados apenas quando os usurios estiverem enviando ou recebendo dados.
Ao invs de dedicar um canal para um usurio por um determinado perodo de tempo, o
recurso

pode

ser

compartilhado

concorrentemente

entre

vrios

usurios.

Esse uso eficiente de recursos significa que um grande nmero de usurios GPRS pode
potencialmente compartilhar a mesma largura de banda e serem servidos de uma nica
clula [11]-[12].
O nmero atual de usurios suportados depende da aplicao em uso e de
quanta informao est sendo transferida. Dada eficincia do GPRS, h menor necessidade
de investir em recursos que sero somente utilizados em horrios de pico. Portanto, o
GPRS permite que as operadoras maximizem o uso de seus recursos de rede de uma forma
dinmica e flexvel [11]-[12].
O GPRS pode melhorar a capacidade de uma rede GSM, pois,
simultaneamente aloca recursos de rdio pouco abundantes de forma mais eficiente por
suportar conectividade virtual, migra trfego anteriormente enviado atravs de CSDs para
GPRS e reduz o uso de canais de sinalizao atravs da migrao de trfego que
anteriormente era enviado via SMS para GPRS, ao invs de usar a conectividade GPRS /
SMS suportada pelo padro GPRS [11]-[12].
O GPRS permite uma funcionalidade completa no que se refere Internet
Mvel por disponibilizar interoperabilidade entre a Internet existente e as novas redes
GPRS. Qualquer servio atualmente utilizado na Internet como FTP, navegao na Web,

31

chat, email, estar tambm disponvel atravs da rede mvel com o GPRS. Na verdade,
muitas operadoras esto considerando a oportunidade de usar GPRS como forma de ajudar
a se tornarem Provedores de Servio Internet (ISP) [11]-[12].
A World Wide Web est se tornando a primeira escolha das pessoas que
desejam acessar a Internet para entretenimento e coleta de informaes, a intranet para
acessar informaes da companhia e conexo com colegas de trabalho e a extranet para
acessar clientes e fornecedores. Tudo isso deriva da World Wide Web com o intuito de
conectar comunidades com interesses diversos. H uma tendncia em se armazenar
informaes localmente por meio de pacotes de software especficos e acessar essas
informaes remotamente, via Internet [11]-[12].

32

Captulo 3 Telemetria aplicada a mquinas automticas


de vendas
Aps analisarmos diversos tipos de mquinas automticas de vendas
(inclusive com visitas a distribuidoras deste produto) e entender um pouco mais sobre a
logstica de controle e abastecimento de tais mquinas, identificamos que tal controle
feito de forma manual, onde no existe nenhuma espcie de automao no que diz respeito
ao controle de produtos individuais de cada mquina. Com o crescente nmero de
mquinas automticas no mercado mundial (em especial no mercado brasileiro) e a
evoluo crescente da tecnologia de sistemas sem fio, verificamos a possibilidade de
aplicar esta tecnologia para desenvolvimento de uma soluo que atenda, de forma eficaz,
este mercado, com praticidade e objetividade, com o intuito de otimizar a logstica de
abastecimento e controle destes equipamentos.

3.1 Soluo proposta


A soluo ser registrar dados provenientes de uma maquina automtica de
vendas atravs de sensores nelas presentes, registrando um a um a sada de cada produto
que ser monitorado atravs de um circuito multiplexador embarcado em cada referida
maquina conforme diagrama da Figura 3.1. Esta interface ser interligada atravs de
conectores e controlada por um microprocessador PIC 16F876A, conforme Figura 3.4, que
ser responsvel pelo armazenamento e processamento de todos os eventos provenientes
da mquina automtica. Ser ainda utilizado um modem de comunicao GPRS que est
acoplado a placa de desenvolvimento do fabricante Cerne adquirida por ns para efetuar a
transmisso dos dados empacotados via TCP/IP, o conjunto modem e o PIC 16F876A esto
acoplados em uma nica placa que juntamente com a placa de interface ficara embarcada

33

na mquina de vendas. Estas duas solues sero interligadas atravs de conectores tipo
encaixe montados na placa de interface e na placa cerne na sada do microcontrolador.
Aps executada esta tarefa, finalmente estes dados sero recebidos via internet para um
servidor desenvolvido com a linguagem de programao Visual Basic 6.0 que interagindo
com um banco de dados, tratar e organizar todos os eventos para posterior emisso de
relatrios de controle de fluxo.
Para realizao do nosso projeto optamos por adquirir um kit de
desenvolvimento de fabricao da Cerne modelo SIM 340Z. Tal opo deve-se
principalmente pelas conexes do mdulo GPRS com o SIM Card e o microcontrolador
PIC que so de difcil execuo fora de um laboratrio devidamente equipado. Porm, tal
kit vem com diversas funcionalidades que no esto sendo utilizadas nesse projeto
conforme veremos a seguir e devem ser desconsideradas.

3.2 Topologia do sistema


Nosso projeto composto basicamente por duas etapas distintas, consistindo
a primeira no sistema de captao e transmisso dos dados coletados na mquina de vendas
atravs de sensores diretamente instalados em cada mecanismo de liberao de produtos.
Para essa etapa temos o nosso sistema de telemetria, que composto pelos sensores de
vendas de produtos, microcontrolador que recebe e trata os dados para transmisso e por
final um modem GPRS que recebe os dados j tratados do microcontrolador atravs de
uma porta serial. O Modem GPRS responsvel por fazer a conexo com a rede celular,
fazer a autenticao com o provedor de acesso rede, fazer o empilhamento TCP/IP dos
dados a serem transmitidos e por fim transmitir os dados via internet ao servidor que no
nosso projeto denominamos como CVA-Controle de Vendas Automticas.
A segunda etapa de nosso projeto consiste no recebimento dos dados de
cada mquina automtica de vendas atravs da internet, estes dados so encaminhados para
o servidor CVA, que recebe, trata e armazena os dados em um banco de dados que poder
ser acessado por qualquer usurio que tenha um software cliente instalado em seu
computador.
Com isso temos a capacidade de, em qualquer lugar do planeta e a qualquer
hora do dia, saber exatamente a quantidade de cada produto de cada mquina automtica

34

de vendas desejada, podendo assim, no s controlar as vendas, mas tambm fazer


estatsticas de melhores pontos de vendas, horrios de picos de vendas e muitas outras
aplicaes desejadas.

Figura 3. 1. Topologia do sistema.

3.3 Caracterstica do hardware


Nosso projeto composto por software e hardware, onde o hardware
responsvel pela coleta dos dados e controle dos sensores de vendas de produtos. Esse
hardware dividido em uma interface que atua diretamente com os sensores de vendas de
produtos e um circuito de controle e transmisso dos dados coletados.
O circuito que faz a interface com a mquina de vendas um circuito que
realiza a leitura dos sensores e, como temos diversos sensores em cada mquina, optamos
por multiplexar os sinais recebidos devido a essa caracterstica, onde denominamos tal
circuito de circuito multiplexador.
Para que o circuito multiplexador funcione necessitamos de uma soluo
que receba e controle os sinais enviados pelos, para isso temos um circuito com o
microcontrolador PIC que interage diretamente com tal circuito. O microcontrolador PIC
responsvel no s por controlar o circuito multiplexador, mas tambm por armazenar e
tratar os dados recebidos pelo mesmo. Uma vez tratado os dados os mesmos so enviados
atravs de uma porta serial a um modem GPRS que se encarregar de fazer a conexo com

35

a rede celular, autenticar-se no provedor de acesso, fazer o empilhamento TCP/IP dos


dados a serem transmitidos e por fim transmitir os dados via internet.

3.3.1 Circuito multiplexador

Figura 3. 2. Circuito multiplexador.

Conforme mostrado na Figura 3. 2 o circuito multiplexador um arranjo de


multiplexadores (74LS151), combinados de uma forma que o software do PIC possa ler
atravs de um Loop todas as suas entradas, que representam os produtos ou o sensor de
recarga. Os sensores de recarga so implementados para que no momento da finalizao do
abastecimento da maquina pelo operador seja reiniciado o contador do CVA.
O circuito integrado 74LS541 (buffer octal), tem a funo de proteger a
porta do microcontrolador PIC e, ao mesmo tempo, fornecer os nveis de corrente eltrica
suficientes para ativar os multiplexadores (74LS151).
O software do microcontrolador PIC l uma por uma as sadas de cada
multiplexador, que esto ligadas ao buffer octal de sada nos pinos 15, 16, 17 e 18
enviando para a porta B (pinos 24, 25, 26 e 27) do PIC um nibble (4 bits) de cada vez,

36

montando uma palavra de 32 bits, referente s 32 entradas (a soma de todos os


multiplexadores).
Os pinos 21, 22, 23 do microcontrolador PIC so interligados aos pinos 2, 3
e 4 do buffer octal de entrada e so utilizados para selecionar cada entrada dos
multiplexadores.
Na Figura 3.3 apresentado um diagrama de blocos referente ao circuito
multiplexador.

Figura 3. 3. Diagrama de blocos do circuito multiplexador.

3.3.2 Circuito de controle e transmisso de dados


Para o controle e transmisso de dados optamos por adquirir um kit de
desenvolvimento acadmico de fabricao Cerne modelo SIM 340Z. Tal opo deve-se
principalmente pelas conexes do mdulo GPRS com o SIM Card e o microcontrolador
PIC, que so de difcil execuo fora de um laboratrio devidamente equipado. Porm, tal
kit vem com diversas funcionalidades que no esto sendo utilizadas nesse projeto
conforme veremos a seguir e devem ser desconsideradas [14].

37

O Kit composto por:

Microcontrolador do Pic 16F876A

Regulador de tenso

Comunicao serial

Quatro botes e Quatro leds

Display de LCD

Conversor A/D

Mdulo GPRS

Mdulo SIM 340Z

Teclado matricial

Dois rels

Figura 3. 4. Kit de desenvolvimento acadmico de fabricao Cerne.


Para o nosso projeto utilizaremos apenas:

Microcontrolador do Pic 16F876A

Regulador de tenso

Comunicao serial

Quatro leds

38

Mdulo GPRS

Mdulo SIM 340Z

Os demais itens que compem o kit de desenvolvimento acadmico, no


sero utilizados e devero ser desconsiderados para o funcionamento do circuito.

3.3.2.1 Microcontrolador PIC 16F876A


Utilizamos o microcontrolador PIC 16F876A, sendo utilizada apenas a porta
B do microcrontrolador, visto que o PIC 16F876A possui trs portas A, B e C.
Precisaremos de 72 Bytes para armazenar os dados a serem transmitidos, o
que bem menor que os 8 Kbytes que o PIC disponibiliza de memria Flash.
A tabela 3.1 mostra as caractersticas mais importantes do microcontrolador
PIC 16F876A.
Tabela 3. 1. Caractersticas do PIC.
Caractersticas Chave
Freqncia de Operao
Resets (e Delays)
Memria de Programao Flash
(14-bit words)
Memria de dados (bytes)
Memria de dados EEPROM
(bytes)
Interrupes
Portas I/O
Timers
Captura/Comparao/Mdulos
PWM
Comunicaes Seriais
Mdulo Analgico para Digital
10-bit
Comparadores Analgicos
Instrues

Pacotes

PIC16F876A
DC 20 MHz
POR, BOR (PWRT,
OST)
8K
368
256
14
Ports A, B, C
3
2
MSSP, USART
5 canais de
entrada
2
35 Instrues
28-pin PDIP
28-pin SOIC
28-pin SSOP
28-pin QFN

39

Na figura 3.5 apresenta-se o diagrama do microcontrolador PIC 16F786A.


Todas as portas do PIC permanecero ligadas no prottipo, porm, de uso efetivo na
programao especfica realizada, somente as portas RB0 at RB7 e as portas RC6 e RC7
sero utilizadas.
As portas RB0 RB7 referem-se ao reconhecimento da mquina qual
provir a informao de venda de produto e o produto vendido, atravs de um cabealho
gerado pelas informaes. Dois buffers varrero essas portas, sendo um deles,
responsvel por receber os bits de endereamento da mquina, utilizando as portas RB0,
RB1 e RB2 e as portas RB3, RB4, RB5 e RB6 do outro buffer receber a informao do
produto vendido ou a recarga efetuada. As portas RB esto ligadas ao PIC, recebendo e
gravando as informaes provenientes do circuito multiplexador. As portas RC6 e RC7
dedicam-se transmisso e recepo de dados propriamente dito.
O cdigo de programao do PIC encontra-se no Anexo 2.

Figura 3. 5. Diagrama do PIC16F876A.

3.3.3 Regulador de tenso e comunicao serial


Utilizaremos o regulador de tenso para alimentar eletricamente o circuito
de controle e transmisso de dados. A Figura 3. 8 descreve o diagrama eltrico do mesmo.
A comunicao serial atravs do circuito integrado MAX232 ser utilizada
apenas para gravao do software do microcontrolador PIC. As Figuras 3.6 e 3. 7 mostram
o digrama eltrico do mesmo [14].
40

Figura 3. 6. Diagrama 1 da comunicao serial.

Figura 3. 7. Diagrama 2 da comunicao serial.

Figura 3. 8. Diagrama do regulador de tenso.

41

3.3.4 Mdulo SIM 340Z e circuito de transmisso GPRS


O mdulo da transmisso GPRS responsvel pela transmisso dos dados
via internet para o servidor denominado CVA. O mdulo GPRS trabalha conectado ao
mdulo SIM 340Z que onde se insere o SIM Card do operador de telecomunicaes a ser
utilizado. O mdulo GPRS funciona como um modem e responsvel por estabelecer a
conexo com rede celular, fazer a autenticao com o provedor da rede de acesso,
realizando o empilhamento TCP/IP dos dados a serem transmitidos e por fim transmitir os
dados via internet ao servidor denominado CVA.
O modem GPRS recebe via porta serial os dados do microcontrolador PIC
por meio de comandos AT.

3.3.5 Comandos AT utilizados


Abaixo, so apresentados os principais comandos AT utilizados no projeto.
AT+CSTT=<APN>,<USER ID>,<PASSWORD>  Esse comando faz a
autenticao do modem no provedor de acesso rede [14].
Ex.: AT+CSTT="TIM.BR","TIM","TIM"  Como exemplo, utilizamos o
provedor TIM, onde o domnio para autenticao TIM.BR, a identificao do
usurio TIM e a senha do usurio TIM [14].
AT+CDNSCFG=<pri_dns>,[<sec_dns>]  Comando de configurao de um
servidor DNS, que responsvel por resolver nomes na internet. A opo de
configurar um endereo de servidor DNS secundrio e opcional [14].
Ex.: AT+CDNSCFG="208.67.222.222  Configuramos apenas o servido DNS
primrio com um servidor DNS vlido na internet [14].
AT+CDNSGIP=<domain_name>  Esse comando testa se o servidor DNS est
respondendo corretamente. Inserindo um domnio qualquer vlido na internet ele
retornar o endereo IP correspondente ao domnio [14].

42

Ex.: AT+CDNSGIP= univercidade.edu  No teste, utilizamos o domnio


univercidade.edu e se servidor DNS estiver funcionando corretamente ele retornar
o endereo IP correspondente ao domnio [14].
Obs. O domnio univercidade.edu apenas um exemplo. O comando funciona com
qualquer domnio vlido na internet [14].
AT+CIFSR  Esse comando extremamente importante para o nosso projeto,
pois ele retorna o endereo IP adquirido pelo modem GPRS. Somente conhecendo
esse IP ser possvel a comunicao entre o servidor e a mquina automtica de
vendas [14].
AT+CIPSTART = (TCP, UDP),(IP ADDRESS,DOMAIN NAME),
PORT  Esse comando abre um socket de comunicao com o servidor, onde
podemos configurar uma conexo TCP ou UDT, Podemos usar um IP ou um
domnio para identificar o servidor na internet e por fim configuramos a porta de
comunicao que ser utilizada [14].
Ex.: AT+CIPSTART= TCP","189.106.31.70",100  No exemplo abrimos um
socket de comunicao com uma conexo TCP com o servidor que tem endereo IP
189.106.31.70 e ser utilizada a porta de 100 de comunicao [14].
AT+CIPSEND  Esse comando abre uma caixa de texto onde todos os
caracteres inseridos nele sero enviados ao servidor [14].
AT+CIPCLOSE  Esse comando encerra o socket de comunicao com o servidor
[14].

Figura 3. 9. Diagrama dos terminais do mdulo GPRS e Sim340Z.


43

Figura 3. 10. Diagrama dos Leds de controle.

Figura 3. 11. Diagrama do mdulo sim card.

3.4 Caractersticas do software


Nosso projeto baseia-se em um hardware e dois softwares. O primeiro
software executado dentro do microcontrolador PIC e o segundo executado no servidor
denominado CVA.
O software que executado no servidor CVA tem a funo de receber os
dados coletados por cada mquina automtica de vendas, tratar devidamente esses dados e
armazenar em um banco de dados para que possam ser acessados a qualquer momento
pelos usurios do sistema. Esse software foi desenvolvido com a linguagem de
programao Visual Basic 6.0 utilizando a ferramenta winsocks para a comunicao com
as mquinas de vendas.

44

O software a ser executado no microcontrolador PIC foi desenvolvido em


linguagem de programao C, utilizando o compilador CCS e o responsvel por receber,
controlar e transmitir os dados de cada mquina de venda.

3.4.1 Servidor CVA


Desenvolvemos um prottipo do servidor CVA que, como dito
anteriormente, tem a funo de receber os dados coletados por cada mquina automtica de
vendas, tratar devidamente esses dados e armazenar em um banco de dados. A figura 3.12
mostra a tela inicial do nosso prottipo.

Figura 3. 12. Tela inicial do servidor CVA.


Esta tela nos d a informao de string recebida at o momento da
transmisso, com a data e a hora, a string enviada, seja ela de venda ou de recarga e se a
informao recebida foi gravada no PIC. Aps isso, se o usurio desejar acompanhar o
status de cada mquina, clicando em Ver parque de mquinas, ser direcionado para a tela
da figura 3.13.

Figura 3. 13. Parque de mquinas.

45

Como podemos observar, o nosso prottipo do Servidor CVA est


monitorando duas mquinas onde, uma vez clicando sobre o cone da mquina desejada, se
abrir uma nova tela conforme mostrado na Figura 3.14.

Figura 3. 14. Tela de controle de uma mquina no servidor.


O servidor foi programado para realizar o controle de at dezesseis produtos
por cada mquina. Temos o controle sempre atualizado de quantos produtos ainda restam
para serem vendidos. O campo quantidade inicial dever sempre ser configurado com a
capacidade mxima possvel de produtos.
Selecionando a opo Inventrio referente a cada produto, o usurio ser
remetido para a tela da Figura 3.15, que apresenta as informaes de venda e recarga
referentes quele produto.

Figura 3. 15. Tela de controle de venda e recarga de produtos.

46

Para que o servidor se comunique corretamente com as mquinas,


necessrio que eles "falem a mesma linguagem", ou seja, que cada equipamento entenda e
interprete os comandos de controle corretamente, baseado num conjunto de regras bem
definidas.
O protocolo que gerencia a comunicao entre as mquinas de vendas e o
servidor CVA baseado em strings de comandos.

Abaixo, a estrutura de nosso protocolo:

Figura 3. 16. Estrutura do protocolo de transmisso.


Tabela 3. 2. Componentes de interface 2.
Tipo

Caractere

Funo

Cabealho

1, 2, 3 e 39

Mquina
Produtos 1 ao
16
\r e \n

4, 5 e 6

Identifica strings vlidas, sendo desconsiderado


qualquer string diferente de formato.
Identifica a mquina automtica de vendas.

7 ao 38
40 e 41

Contabiliza os produtos vendidos.


Cdigo de retorno de carro e nova linha.

Como observa-se, temos em nosso protocolo de transmisso as seguintes


informaes: um cabealho, o cdigo que identifica a mquina de vendas, as informaes
referente cada produto e o os cdigos de retorno de carro e nova linha.
Como o prottipo do servidor fica escutando todo o tempo a porta de
comunicao 100, vimos necessidade em criar um cabealho para identificar as strings
vlidas. O servidor dar como vlidas somente strings recebidas que contenham nas
posies 1, 2, 3 e 39 os caracteres C, V e A, resultando num identificador "CVA:".
Qualquer outra string que no for identificada assim ser desprezada pelo servidor.
Aps o cabealho temos o cdigo da mquina de vendas que, para o
funcionamento do prottipo, definimos como trs caracteres, o que nos possibilita
controlar um universo de at 1000 mquinas automticas de vendas.

47

Aps a identificao da mquina de venda temos as informaes referentes


aos produtos vendidos por cada mquina. Essa informao consiste em um simples
somador de produtos vendidos e, sempre que a mquina for reabastecida, o contador
retornar ao seu estado inicial. Consideramos dois caracteres para cada produto, o que nos
d um universo de 99 unidades por produto. Consideramos tambm um universo de 16
produtos por mquina.
Da mesma forma, assim como o protocolo de transmisso coordena as
informaes da venda dos produtos, foi desenvolvido um outro protocolo para gerenciar as
recargas efetuadas, enviando primeiramente a informao referente recarga para, na
prxima transmisso, efetivamente, realiz-la, evitando, com isso, perda de histrico de
produtos vendidos antes da realizao da recarga. Denominado como protocolo de recarga,
ser apresentado na figura 3.14 sua estrutura de endereamento.

Figura 3. 17. Estrutura do protocolo de recarga.

Tabela 3. 3. Componentes de interface 3.

O cdigo fonte completo do prottipo do servidor encontra-se no anexo 1.

3.4.2 Programao do microcontrolador PIC


Para que o nosso hardware funcione corretamente necessitamos de um
software que controle todo o sistema. Tal software executado dentro do microcontrolador
PIC.

48

O software do microcontrolador foi desenvolvido na linguagem de


programao C e foi utilizado o compilador CCS para gerar o cdigo hexadecimal a ser
gravado no PIC.
O que o software faz alternar continuamente o endereamento de cada
multiplexador fazendo com que as sadas dos multiplexadores mostrem de modo contnuo
o status de cada sensor, e sempre que houver uma mudana nesse status, o software
considera que houve uma venda do produto correspondente armazenando a informao na
memria flash do PIC para, posteriormente, transmiti-la.
Uma vez armazenado as informaes dos sensores de venda, o software
responsvel tambm por formatar as informaes de acordo com o protocolo de
transmisso mostrado no item 3.4.1 e enviar tal informao via porta serial para o modem
GPRS atravs de comandos AT vistos no item 3.3.5.

49

Captulo 4 Concluso
Com o prottipo desenvolvido, podemos observar que a transmisso de
dados conforme descrito no projeto foi realizada com sucesso, porm algumas
circunstncias devem ser consideradas como, por exemplo, a cobertura do servio
oferecido pelas operadas de telefonia mvel.
Nosso prottipo foi desenvolvido para controlar cinco mquinas
automticas de vendas com at oito produtos por mquina, porm nosso protocolo est
preparado para controlar uma quantidade mxima de 1000 mquinas automticas com
capacidade de 32 produtos por mquina. Para uma possvel comercializao do projeto
dever ser desenvolvido um novo software.
Devemos ressaltar que o projeto dever ser adequado realidade de cada
modelo de mquina de venda, pois cada mquina tem suas caractersticas especficas,
como por exemplo, a quantidade e tipo de produtos vendidos.
Para futuro aprimoramento do projeto, sugerimos o desenvolvimento de
uma interface WEB para os usurios, pois assim eliminaria a necessidade de um software
cliente, uma vez que bastaria apenas um browser para visualizao do sistema.

50

Anexo I
Cdigo fonte do programa Servidor CVA
Cdigo da Form - main.frm

VERSION 5.00
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.ocx"
Begin VB.Form Main
Caption
ClientHeight

= "CVA Server - Contre de Vendas Automticas V.0.1"


= 3555

ClientLeft

= 120

ClientTop

= 420

ClientWidth

= 11940

LinkTopic

= "Form1"

ScaleHeight

= 3555

ScaleWidth

= 11940

51

StartUpPosition = 3 'Windows Default


Begin VB.CommandButton Command2
Caption

= "Sair"

Height

= 375

Left

= 3000

TabIndex

= 10

Top

= 2880

Width

= 1215

End
Begin VB.CommandButton Command1
Caption

= "Ver parque de mquinas"

Height

= 375

Left

= 600

TabIndex

= 9

Top

= 2880

Width

= 2175

End
Begin VB.PictureBox Picture7
BorderStyle

= 0 'None

Height
Left

= 975
= 480

Picture

= "main.frx":0000

ScaleHeight

= 975

ScaleWidth

= 3735

TabIndex
Top
Width

= 8
= 120
= 3735

End
Begin MSWinsockLib.Winsock wskServidor
Left

= 7560

Top

= 120

_ExtentX

= 741

_ExtentY

= 741

52

_Version

= 393216

End
Begin VB.PictureBox Picture6
BorderStyle

= 0 'None

Height
Left

= 855
= 9240

Picture

= "main.frx":1280

ScaleHeight

= 855

ScaleWidth

= 2415

TabIndex

= 5

Top

= 120

Width

= 2415

End
Begin VB.Label Label11
Caption

= "Gravado:"

Height

= 255

Left

= 7560

TabIndex

= 7

Top

= 2040

Width

= 855

End
Begin VB.Label Label10
Height
Left

= 255
= 8400

TabIndex

= 6

Top

= 2040

Width

= 1335

End
Begin VB.Label txtReceber
BorderStyle

= 1 'Fixed Single

Caption

= "Aguardando Comunicao"

Height

= 375

Left

= 600

53

TabIndex
Top
Width

= 4
= 2040
= 6615

End
Begin VB.Label Label5
Caption

= "--:--"

Height

= 255

Left
TabIndex
Top
Width

= 4200
= 3
= 1680
= 735

End
Begin VB.Label Label4
Caption

= "--/--/----"

Height

= 255

Left
TabIndex
Top
Width

= 2880
= 2
= 1680
= 975

End
Begin VB.Label Label2
Caption

= "as"

Height

= 255

Left
TabIndex
Top
Width

= 3840
= 1
= 1680
= 255

End
Begin VB.Label Label1
Caption

= "ltima String Recebida em:"

Height

= 255

Left
TabIndex

= 600
= 0

54

Top
Width

= 1680
= 2295

End
End
Attribute VB_Name = "Main"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim conexao As New ADODB.Connection 'cria a variavel de conexao
Dim tabela As New ADODB.Recordset 'cria a variavel da tabela
Dim sql As String 'cria a string SQL

Private Sub Command1_Click()


parque.Show
End Sub

Private Sub Command2_Click()


If MsgBox("Tem certeza que deseja desligar o servidor?", vbYesNo + vbQuestion, "Sair
?") = vbYes Then
End
End If
End Sub

Private Sub Form_Load()


wskServidor.LocalPort = 100 'Definimos a porta local como a porta 100
wskServidor.Listen 'Invocamos o mtodo Listen. O servidor estar 'escutando' esta porta
conexao.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path &
"\servidor.mdb" 'cria a conexao com o banco de dados via ADO
End Sub

Private Sub wskServidor_ConnectionRequest(ByVal requestID As Long) 'Este evento


serve para que possamos saber o que fazer se uma conexo for requisitada

55

If wskServidor.State <> sckClosed Then wskServidor.Close 'Verificamos se o estado do


controle esta fechado Se no estiver fechado , fechamos antes de aceitar uma nova conexo
wskServidor.Accept requestID 'Aceitamos a requisio com o parmetro RequestId
End Sub

Private Sub wskServidor_DataArrival(ByVal bytesTotal As Long) 'Este evento serve para


dizer o que o controle deve fazer quando os dados chegarem.
Dim strdados As String
wskServidor.GetData strdados
txtReceber.Caption = strdados
If Mid(strdados, 1, 3) = "cva" Then
prod = txtReceber.Caption
Data = Date
hora = Time
Label4.Caption = Data
Label5.Caption = hora
maq = Mid(prod, 4, 3)
p1 = Mid(prod, 7, 2)
p2 = Mid(prod, 9, 2)
p3 = Mid(prod, 11, 2)
p4 = Mid(prod, 13, 2)
p5 = Mid(prod, 15, 2)
p6 = Mid(prod, 17, 2)
p7 = Mid(prod, 19, 2)
p8 = Mid(prod, 21, 2)
p9 = Mid(prod, 23, 2)
p10 = Mid(prod, 25, 2)
p11 = Mid(prod, 27, 2)
p12 = Mid(prod, 29, 2)
p13 = Mid(prod, 31, 2)
p14 = Mid(prod, 33, 2)
p15 = Mid(prod, 35, 2)
p16 = Mid(prod, 37, 2)

56

sql = "INSERT INTO servidor


(data,hora,maq,p01,r01,p02,r02,p03,r03,p04,r04,p05,r05,p06,r06,p07,r07,p08,r08,p09,r09,
p10,r10,p11,r11,p12,r12,p13,r13,p14,r14,p15,r15,p16,r16) VALUES ('" & Data & "','" &
hora & "','" & maq & "','" & p1 & "','-','" & p2 & "','-','" & p3 & "','-','" & p4 & "','-','" & p5
& "','-','" & p6 & "','-','" & p7 & "','-','" & p8 & "','-','" & p9 & "','-','" & p10 & "','-','" & p11
& "','-','" & p12 & "','-','" & p13 & "','-','" & 14 & "','-','" & p15 & "','-','" & p16 & "','-')"
'String para inserir a os itens na tabela
If tabela.State = 1 Then tabela.Close 'verifica se a tabela esta sendo usada, se estiver ela
fecha
conexao.Execute sql 'executa o comando SQL, usando a conexao
Label10.Caption = "Sim"
Else
If Mid(strdados, 1, 3) = "rec" Then
prod = txtReceber.Caption
Data = Date
hora = Time
Label4.Caption = Data
Label5.Caption = hora
maq = Mid(prod, 4, 3)
px = Mid(prod, 7, 3)
rx = Mid(prod, 10, 3)
qpx = Mid(prod, 13, 2)
qrx = Mid(prod, 15, 2)
sql = "INSERT INTO servidor (data,hora,maq," & px & "," & rx & ") VALUES ('" &
Data & "','" & hora & "','" & maq & "','" & qpx & "','" & qrx & "')" 'String para inserir a os
itens na tabela
If tabela.State = 1 Then tabela.Close 'verifica se a tabela esta sendo usada, se estiver ela
fecha
conexao.Execute sql 'executa o comando SQL, usando a conexao
Label10.Caption = "Sim"
Else
Label10.Caption = "No"
End If

57

End If
End Sub

Cdigo Parque.frm

VERSION 5.00
Begin VB.Form parque
Caption

= "CVA Sserver - Parque de Mquinas"

ClientHeight

= 8175

ClientLeft

= 225

ClientTop

= 525

ClientWidth

= 11760

LinkTopic

= "Form1"

ScaleHeight

= 8175

ScaleWidth

= 11760

StartUpPosition = 3 'Windows Default


Begin VB.PictureBox Picture1
BorderStyle

= 0 'None

Height
Left

= 855
= 11160

Picture

= "parque.frx":0000

ScaleHeight

= 855

ScaleWidth

= 2295

TabIndex

= 5

Top

= 240

Width

= 2295

End
Begin VB.PictureBox Picture2
BorderStyle
Height
Left

= 0 'None
= 975

= 240

Picture
ScaleHeight

= "parque.frx":0F05
= 975

58

ScaleWidth

= 3615

TabIndex
Top
Width

= 4
= 240
= 3615

End
Begin VB.Frame Frame1
Caption

= "Parque de Mquinas"

Height

= 6495

Left

= 120

TabIndex
Top
Width

= 0
= 1560
= 13455

Begin VB.CommandButton Command1


Caption

= "Sair"

Height

= 375

Left

= 11640

TabIndex

= 2

Top

= 5880

Width

= 1215

End
Begin VB.PictureBox icmaq
Height

= 1455

Index

= 0

Left

= 360

Picture

= "parque.frx":2185

ScaleHeight

= 1395

ScaleWidth

= 1875

TabIndex

= 1

Tag

= "0"

Top

= 840

Visible

= 0 'False

Width

= 1935

End

59

Begin VB.Label txtmaq


Caption

= "Mquina 01"

Height

= 255

Index

= 0

Left

= 720

TabIndex

= 3

Top

= 2400

Visible

= 0 'False

Width

= 1095

End
End
Begin VB.Label Label1
Caption

= "Parque de Mquinas"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 495
= 5640
= 6
= 600
= 3735

End
End
Attribute VB_Name = "parque"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True

60

Attribute VB_Exposed = False


Dim conexao As New ADODB.Connection 'cria a variavel de conexao
Dim tabela As New ADODB.Recordset 'cria a variavel da tabela
Dim sql As String 'cria a string SQL
Private Sub Command1_Click()
Unload parque
End Sub
Private Sub Form_Load()
If conexao.State = 1 Then conexao.Close
conexao.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path &
"\servidor.mdb" 'cria a conexao com o banco de dados via ADO
sql = "Select * from servidor order by maq"
If tabela.State = 1 Then tabela.Close
tabela.Open sql, conexo

n = tabela("maq")
lout = 1
teste = 0
lft1 = 400
lft2 = 1000
lft3 = 400
lft4 = 1000
Do Until tabela.EOF = True
If Not teste = tabela("maq") Then
If lout < 7 Then
n = tabela("maq")
Load icmaq(n)
icmaq(n).Visible = True
icmaq(n).Top = 800
icmaq(n).Left = lft1
lft1 = lft1 + 2135
Load txtmaq(n)
txtmaq(n).Visible = True

61

txtmaq(n).Top = 2300
txtmaq(n).Left = lft2
txtmaq(n).Caption = "Mquina " & n
lft2 = lft2 + 2135
teste = tabela("maq")
lout = lout + 1
Else
n = tabela("maq")
Load icmaq(n)
icmaq(n).Visible = True
icmaq(n).Top = 3000
icmaq(n).Left = lft3
lft3 = lft3 + 2135
Load txtmaq(n)
txtmaq(n).Visible = True
txtmaq(n).Top = 4500
txtmaq(n).Left = lft4
txtmaq(n).Caption = "Mquina " & n
lft4 = lft4 + 2135
teste = tabela("maq")
lout = lout + 1
End If
End If
tabela.MoveNext
Loop
End Sub
Private Sub icmaq_Click(Index As Integer)
Unload Maquina
tmaq = Index
tmaq = Format(tmaq, "000")
Maquina.Show
End Sub

62

Cdigo Mquin.frm

VERSION 5.00
Begin VB.Form Maquina
BorderStyle
Caption

= 1 'Fixed Single
= "Maquina 01"

ClientHeight

= 9720

ClientLeft

= 45

ClientTop

= 345

ClientWidth

= 12600

LinkTopic

= "Form1"

MaxButton

= 0 'False

MinButton

= 0 'False

ScaleHeight

= 9720

ScaleWidth

= 12600

StartUpPosition = 3 'Windows Default


Begin VB.Frame produto5
Caption

= "Produto 9"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 0

Left
TabIndex
Top
Width

= 600
= 70
= 5280
= 2655

63

Begin VB.TextBox Text27


BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 74

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.TextBox Text26
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 73
= 720
= 975

End
Begin VB.TextBox Text25
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 72
= 1080
= 975

End
Begin VB.CommandButton Command2
Caption

= "Inventrio"

Height

= 255

Left
TabIndex

= 120
= 71

64

Top
Width

= 1440
= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 8

Left
TabIndex
Top
Width

= 120
= 77
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 8

Left
TabIndex
Top
Width

= 120
= 76
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 8

Left
TabIndex
Top
Width

= 120
= 75
= 360
= 1455

End
End
Begin VB.Frame produto5
Caption

= "Produto 5"

65

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 3

Left

= 600

TabIndex
Top

= 37
= 3480

Width

= 2655

Begin VB.CommandButton Command7


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 66
= 1440
= 975

End
Begin VB.TextBox Text15
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 52
= 1080
= 975

End
Begin VB.TextBox Text14

66

BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 51
= 720
= 975

End
Begin VB.TextBox Text13
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 50

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 4

Left
TabIndex
Top
Width

= 120
= 40
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 4

Left
TabIndex

= 120
= 39

67

Top

= 720

Width

= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 4

Left

= 120

TabIndex

= 38

Top

= 1080

Width

= 1455

End
End
Begin VB.Timer Timer1
Interval

= 200

Left

= 11280

Top

= 1200

End
Begin VB.PictureBox Picture2
BorderStyle

= 0 'None

Height
Left

= 975
= 0

Picture

= "Mquina.frx":0000

ScaleHeight

= 975

ScaleWidth

= 3615

TabIndex
Top
Width

= 33
= 120
= 3615

End
Begin VB.CommandButton Command1
Caption

= "Fechar"

Height

= 375

Left

= 10680

68

TabIndex

= 32

Top

= 9240

Width

= 1575

End
Begin VB.PictureBox Picture1
BorderStyle

= 0 'None

Height
Left

= 855
= 9960

Picture

= "Mquina.frx":1280

ScaleHeight

= 855

ScaleWidth

= 2295

TabIndex

= 31

Top

= 240

Width

= 2295

End
Begin VB.Frame produto8
Caption

= "Produto 8"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 6

Left
TabIndex
Top
Width

= 9240
= 27
= 3480
= 2655

Begin VB.CommandButton Command10

69

Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 69
= 1440
= 975

End
Begin VB.TextBox Text24
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 61
= 1080
= 975

End
Begin VB.TextBox Text23
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 60
= 720
= 975

End
Begin VB.TextBox Text22
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 59

Text

= "100"

Top

= 360

70

Width

= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 7

Left
TabIndex
Top
Width

= 120
= 30
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 7

Left
TabIndex
Top
Width

= 120
= 29
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 7

Left
TabIndex
Top
Width

= 120
= 28
= 360
= 1455

End
End
Begin VB.Frame produto7
Caption

= "Produto 7"

BeginProperty Font

71

Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 5

Left

= 6360

TabIndex
Top

= 23
= 3480

Width

= 2655

Begin VB.CommandButton Command9


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 68
= 1440
= 975

End
Begin VB.TextBox Text21
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 58
= 1080
= 975

End
Begin VB.TextBox Text20
BackColor

= &H8000000F&

72

Height
Left
Locked
TabIndex
Top
Width

= 285
= 1560
= -1 'True
= 57
= 720
= 975

End
Begin VB.TextBox Text19
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 56

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 6

Left
TabIndex
Top
Width

= 120
= 26
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 6

Left
TabIndex
Top

= 120
= 25
= 720

73

Width

= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 6

Left

= 120

TabIndex

= 24

Top

= 360

Width

= 1455

End
End
Begin VB.Frame produto6
Caption

= "Produto 6"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 4

Left
TabIndex
Top
Width

= 3480
= 19
= 3480
= 2655

Begin VB.CommandButton Command8


Caption

= "Inventrio"

Height

= 255

Left

= 120

74

TabIndex
Top
Width

= 67
= 1440
= 975

End
Begin VB.TextBox Text18
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 55
= 1080
= 975

End
Begin VB.TextBox Text17
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 54
= 720
= 975

End
Begin VB.TextBox Text16
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 53

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label8

75

Caption

= "Total do Produto:"

Height

= 255

Index

= 5

Left
TabIndex
Top
Width

= 120
= 22
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 5

Left
TabIndex
Top
Width

= 120
= 21
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 5

Left
TabIndex
Top
Width

= 120
= 20
= 360
= 1455

End
End
Begin VB.Frame produto4
Caption

= "Produto 4"

BeginProperty Font
Name
Size
Charset

= "@Arial Unicode MS"


= 8.25
= 0

76

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 2

Left

= 9240

TabIndex
Top

= 15
= 1680

Width

= 2655

Begin VB.CommandButton Command6


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 65
= 1440
= 975

End
Begin VB.TextBox Text12
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 49
= 1080
= 975

End
Begin VB.TextBox Text11
BackColor
Height
Left
Locked

= &H8000000F&
= 285
= 1560
= -1 'True

77

TabIndex
Top
Width

= 48
= 720
= 975

End
Begin VB.TextBox Text10
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 47

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 3

Left
TabIndex
Top
Width

= 120
= 18
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 3

Left
TabIndex
Top
Width

= 120
= 17
= 720
= 1335

End
Begin VB.Label Label4

78

Caption

= "Quantidade inicial:"

Height

= 375

Index

= 3

Left

= 120

TabIndex

= 16

Top

= 360

Width

= 1455

End
End
Begin VB.Frame produto3
Caption

= "Produto 3"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 0

Left
TabIndex
Top
Width

= 6360
= 11
= 1680
= 2655

Begin VB.CommandButton Command5


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 64
= 1440
= 975

79

End
Begin VB.TextBox Text9
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 46
= 1080
= 975

End
Begin VB.TextBox Text8
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 45
= 720
= 975

End
Begin VB.TextBox Text7
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 44

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 2

80

Left
TabIndex
Top
Width

= 120
= 14
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 2

Left
TabIndex
Top
Width

= 120
= 13
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 2

Left
TabIndex
Top
Width

= 120
= 12
= 360
= 1455

End
End
Begin VB.Frame produto2
Caption

= "Produto 2"

BeginProperty Font
Name
Size

= "@Arial Unicode MS"


= 8.25

Charset

= 0

Weight

= 700

Underline
Italic

= 0 'False
= 0 'False

81

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 1

Left

= 3480

TabIndex
Top

= 7
= 1680

Width

= 2655

Begin VB.CommandButton Command3


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 62
= 1440
= 975

End
Begin VB.TextBox Text6
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 43
= 1080
= 975

End
Begin VB.TextBox Text5
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 42
= 720
= 975

82

End
Begin VB.TextBox Text4
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 41

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 1

Left
TabIndex
Top
Width

= 120
= 10
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 1

Left
TabIndex
Top
Width

= 120
= 9
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 1

83

Left

= 120

TabIndex

= 8

Top

= 1080

Width

= 1455

End
End
Begin VB.Frame Frame1
Caption

= "Produtos"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 9.75

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 7815
= 360

TabIndex
Top
Width

= 0
= 1320
= 11895

Begin VB.Frame Frame7


Caption

= "Produto 16"

BeginProperty Font
Name
Size

= "@Arial Unicode MS"


= 8.25

Charset

= 0

Weight

= 700

Underline
Italic

= 0 'False
= 0 'False

Strikethrough = 0 'False
EndProperty

84

Height
Left

= 1815
= 8880

TabIndex
Top

= 107
= 5760

Width

= 2655

Begin VB.CommandButton Command19


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 149
= 1440
= 975

End
Begin VB.TextBox Text54
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 125
= 1080
= 975

End
Begin VB.TextBox Text53
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 124
= 720
= 975

End
Begin VB.TextBox Text52
BackColor

= &H80000004&

85

Height
Left
Locked
TabIndex

= 285
= 1560
= -1 'True
= 123

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 17

Left
TabIndex
Top
Width

= 120
= 143
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 17

Left
TabIndex
Top
Width

= 120
= 142
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 17

Left
TabIndex
Top

= 120
= 141
= 1080

86

Width

= 1455

End
End
Begin VB.Frame Frame6
Caption

= "Produto 15"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 1815
= 6000

TabIndex
Top

= 106
= 5760

Width

= 2655

Begin VB.CommandButton Command18


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 148
= 1440
= 975

End
Begin VB.TextBox Text51
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 1560
= -1 'True
= 122

87

Top
Width

= 1080
= 975

End
Begin VB.TextBox Text50
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 121
= 720
= 975

End
Begin VB.TextBox Text49
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 1560
= -1 'True
= 120

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 16

Left
TabIndex
Top
Width

= 120
= 140
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

88

Height

= 255

Index

= 16

Left

= 120

TabIndex

= 139

Top

= 720

Width

= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 16

Left

= 120

TabIndex

= 138

Top

= 1080

Width

= 1455

End
End
Begin VB.Frame Frame5
Caption

= "Produto 14"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 1815
= 3120
= 105
= 5760
= 2655

89

Begin VB.CommandButton Command17


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 147
= 1440
= 975

End
Begin VB.TextBox Text48
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 119
= 1080
= 975

End
Begin VB.TextBox Text47
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 118
= 720
= 975

End
Begin VB.TextBox Text46
BackColor
Height
Left
Locked
TabIndex
Text

= &H80000004&
= 285
= 1560
= -1 'True
= 117
= "100"

90

Top
Width

= 360
= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 15

Left
TabIndex
Top
Width

= 120
= 137
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 15

Left
TabIndex
Top
Width

= 120
= 136
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 15

Left
TabIndex
Top
Width

= 120
= 135
= 1080
= 1455

End
End
Begin VB.Frame Frame4
Caption

= "Produto 13"

91

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 1815
= 240

TabIndex
Top

= 104
= 5760

Width

= 2655

Begin VB.CommandButton Command16


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 146
= 1440
= 975

End
Begin VB.TextBox Text45
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 116
= 1080
= 975

End
Begin VB.TextBox Text44
BackColor

= &H80000004&

92

Height
Left
Locked
TabIndex
Top
Width

= 285
= 1560
= -1 'True
= 115
= 720
= 975

End
Begin VB.TextBox Text43
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 1560
= -1 'True
= 114

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 14

Left
TabIndex
Top
Width

= 120
= 134
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 14

Left
TabIndex
Top

= 120
= 133
= 720

93

Width

= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 14

Left

= 120

TabIndex

= 132

Top

= 1080

Width

= 1455

End
End
Begin VB.Frame Frame3
Caption

= "Produto 12"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 1815
= 8880
= 103
= 3960
= 2655

Begin VB.CommandButton Command15


Caption

= "Inventrio"

Height

= 255

Left
TabIndex

= 120
= 145

94

Top
Width

= 1440
= 975

End
Begin VB.TextBox Text42
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 113
= 1080
= 975

End
Begin VB.TextBox Text41
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 112
= 720
= 975

End
Begin VB.TextBox Text40
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 1560
= -1 'True
= 111

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

95

Height

= 375

Index

= 13

Left
TabIndex
Top
Width

= 120
= 131
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 13

Left
TabIndex
Top
Width

= 120
= 130
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 13

Left
TabIndex
Top
Width

= 120
= 129
= 1080
= 1455

End
End
Begin VB.Frame Frame2
Caption

= "Produto 11"

BeginProperty Font
Name
Size

= "@Arial Unicode MS"


= 8.25

Charset

= 0

Weight

= 700

96

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 1815
= 6000

TabIndex
Top

= 102
= 3960

Width

= 2655

Begin VB.CommandButton Command14


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 144
= 1440
= 975

End
Begin VB.TextBox Text39
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H80000004&
= 285
= 1560
= -1 'True
= 110
= 1080
= 975

End
Begin VB.TextBox Text38
BackColor
Height
Left
Locked
TabIndex
Top

= &H80000004&
= 285
= 1560
= -1 'True
= 109
= 720

97

Width

= 975

End
Begin VB.TextBox Text37
BackColor

= &H80000004&

ForeColor

= &H80000007&

Height
Left
Locked
TabIndex

= 285
= 1560
= -1 'True
= 108

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 12

Left
TabIndex
Top
Width

= 120
= 128
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 12

Left
TabIndex
Top
Width

= 120
= 127
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

98

Height

= 255

Index

= 12

Left

= 120

TabIndex

= 126

Top

= 1080

Width

= 1455

End
End
Begin VB.Frame produto5
Caption

= "Produto 5"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 1

Left

= 3120

TabIndex
Top
Width

= 78
= 3960
= 2655

Begin VB.Frame produto5


Caption

= "Produto 5"

BeginProperty Font
Name
Size

= "@Arial Unicode MS"


= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

99

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 2

Left

= 0

TabIndex
Top
Width

= 86
= 0
= 2655

Begin VB.Frame produto5


Caption

= "Produto 10"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 4

Left
TabIndex
Top
Width

= 0
= 94
= 0
= 2655

Begin VB.CommandButton Command13


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 98
= 1440
= 975

100

End
Begin VB.TextBox Text36
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 97
= 1080
= 975

End
Begin VB.TextBox Text35
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 96
= 720
= 975

End
Begin VB.TextBox Text34
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 95

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 11

101

Left
TabIndex
Top
Width

= 120
= 101
= 360
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 11

Left
TabIndex
Top
Width

= 120
= 100
= 720
= 1335

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 11

Left
TabIndex
Top
Width

= 120
= 99
= 1080
= 1455

End
End
Begin VB.TextBox Text33
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 90

Text

= "100"

Top

= 360

Width

= 975

102

End
Begin VB.TextBox Text32
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 89
= 720
= 975

End
Begin VB.TextBox Text31
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 88
= 1080
= 975

End
Begin VB.CommandButton Command12
Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 87
= 1440
= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 10

Left
TabIndex

= 120
= 93

103

Top
Width

= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 10

Left
TabIndex
Top
Width

= 120
= 92
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 10

Left
TabIndex
Top
Width

= 120
= 91
= 360
= 1455

End
End
Begin VB.TextBox Text30
BackColor
Height
Left
Locked
TabIndex

= &H8000000F&
= 285
= 1560
= -1 'True
= 82

Text

= "100"

Top

= 360

Width

= 975

End
Begin VB.TextBox Text29

104

BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 81
= 720
= 975

End
Begin VB.TextBox Text28
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 80
= 1080
= 975

End
Begin VB.CommandButton Command11
Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 79
= 1440
= 975

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 9

Left
TabIndex
Top
Width

= 120
= 85
= 1080
= 1455

105

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 9

Left

= 120

TabIndex

= 84

Top

= 720

Width

= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 9

Left

= 120

TabIndex

= 83

Top

= 360

Width

= 1455

End
End
Begin VB.Frame Produto1
Caption

= "Produto 1"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 8.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 1815

Index

= 0

106

Left

= 240

TabIndex
Top

= 3
= 360

Width

= 2655

Begin VB.CommandButton Command4


Caption

= "Inventrio"

Height

= 255

Left
TabIndex
Top
Width

= 120
= 63
= 1440
= 975

End
Begin VB.TextBox Text3
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 36
= 1080
= 855

End
Begin VB.TextBox Text2
BackColor
Height
Left
Locked
TabIndex
Top
Width

= &H8000000F&
= 285
= 1560
= -1 'True
= 35
= 720
= 855

End
Begin VB.TextBox Text1
BackColor
Height

= &H8000000F&
= 285

107

Left
Locked
TabIndex

= 1560
= -1 'True
= 34

Text

= "100"

Top

= 360

Width

= 855

End
Begin VB.Label Label8
Caption

= "Total do Produto:"

Height

= 255

Index

= 0

Left
TabIndex
Top
Width

= 120
= 6
= 1080
= 1455

End
Begin VB.Label Label6
Caption

= "tens Vendidos:"

Height

= 255

Index

= 0

Left
TabIndex
Top
Width

= 120
= 5
= 720
= 1335

End
Begin VB.Label Label4
Caption

= "Quantidade inicial:"

Height

= 375

Index

= 0

Left
TabIndex
Top
Width

= 120
= 4
= 360
= 1455

108

End
End
End
Begin VB.Label Label2
Caption

= "01"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 375
= 6840

TabIndex

= 2

Top

= 600

Width

= 855

End
Begin VB.Label Label1
Caption

= "Mquina:"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline
Italic

= 0 'False
= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 375
= 5400

109

TabIndex
Top

= 1
= 600

Width

= 1335

End
End
Attribute VB_Name = "Maquina"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim conexao As New ADODB.Connection 'cria a variavel de conexao
Dim tabela As New ADODB.Recordset 'cria a variavel da tabela
Dim sql As String 'cria a string SQL

Private Sub Command1_Click()


Unload Maquina
End Sub

Private Sub Command10_Click()


Unload Invent
tprod = 8
Invent.Show
End Sub

Private Sub Command13_Click()


Unload Invent
tprod = 10
Invent.Show
End Sub

Private Sub Command14_Click()


Unload Invent
tprod = 11

110

Invent.Show
End Sub

Private Sub Command15_Click()


Unload Invent
tprod = 12
Invent.Show
End Sub

Private Sub Command16_Click()


Unload Invent
tprod = 13
Invent.Show
End Sub

Private Sub Command17_Click()


Unload Invent
tprod = 14
Invent.Show
End Sub

Private Sub Command18_Click()


Unload Invent
tprod = 15
Invent.Show
End Sub

Private Sub Command19_Click()


Unload Invent
tprod = 16
Invent.Show
End Sub

111

Private Sub Command2_Click()


Unload Invent
tprod = 9
Invent.Show
End Sub

Private Sub Command3_Click()


Unload Invent
tprod = 2
Invent.Show
End Sub

Private Sub Command4_Click()


Unload Invent
tprod = 1
Invent.Show
End Sub

Private Sub Command5_Click()


Unload Invent
tprod = 3
Invent.Show
End Sub

Private Sub Command6_Click()


Unload Invent
tprod = 4
Invent.Show
End Sub

Private Sub Command7_Click()


Unload Invent
tprod = 5

112

Invent.Show
End Sub

Private Sub Command8_Click()


Unload Invent
tprod = 6
Invent.Show
End Sub

Private Sub Command9_Click()


Unload Invent
tprod = 7
Invent.Show
End Sub

Private Sub Form_Load()


If conexao.State = 1 Then conexao.Close 'verifica se a conexo esta sendo usada, se estiver
ela fecha
Label2.Caption = tmaq
Caption = " CVA Server - Mquina " & tmaq
End Sub
Private Sub Timer1_Timer()
conexao.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path &
"\servidor.mdb" 'cria a conexao com o banco de dados via ADO
sql = "Select * from servidor where maq = '" & tmaq & "' Order By data, hora"
'SELECIONA TODOS OS DADOS DA TABELA E TIVEREM O CODIGO X
If tabela.State = 1 Then tabela.Close

'VERIFICA SE A TABELA ESTA

ABERTA, SE ESTIVER ELE FECHA


tabela.Open sql, conexao

'ABRE A TABELA USANDO A STRING

SQL, E A CONEXAO
If tabela.EOF = True Then
Text2.Text = "Banco Vazio"
Text5.Text = "Banco Vazio"

113

Text8.Text = "Banco Vazio"


Text11.Text = "Banco Vazio"
Text14.Text = "Banco Vazio"
Text17.Text = "Banco Vazio"
Text20.Text = "Banco Vazio"
Text23.Text = "Banco Vazio"
Else
Do Until tabela.EOF = True
If tabela("r01") = "-" And tabela("r02") = "-" And tabela("r03") = "-" And
tabela("r04") = "-" And tabela("r05") = "-" And tabela("r06") = "-" And tabela("r07") = "-"
And tabela("r08") = "-" And tabela("r09") = "-" And tabela("r10") = "-" And tabela("r11")
= "-" And tabela("r12") = "-" And tabela("r13") = "-" And tabela("r14") = "-" And
tabela("r15") = "-" And tabela("r16") = "-" Then
Text2.Text = tabela("p01")
Text3.Text = Text1.Text - Text2.Text
Text5.Text = tabela("p02")
Text6.Text = Text4.Text - Text5.Text
Text8.Text = tabela("p03")
Text9.Text = Text7.Text - Text8.Text
Text11.Text = tabela("p04")
Text12.Text = Text10.Text - Text11.Text
Text14.Text = tabela("p05")
Text15.Text = Text13.Text - Text14.Text
Text17.Text = tabela("p06")
Text18.Text = Text16.Text - Text17.Text
Text20.Text = tabela("p07")
Text21.Text = Text19.Text - Text20.Text
Text23.Text = tabela("p08")
Text24.Text = Text22.Text - Text23.Text
Text26.Text = tabela("p09")
Text25.Text = Text27.Text - Text26.Text
Text35.Text = tabela("p10")
Text36.Text = Text34.Text - Text35.Text

114

Text38.Text = tabela("p11")
Text39.Text = Text37.Text - Text38.Text
Text41.Text = tabela("p12")
Text42.Text = Text40.Text - Text41.Text
Text44.Text = tabela("p13")
Text45.Text = Text43.Text - Text44.Text
Text47.Text = tabela("p14")
Text48.Text = Text46.Text - Text47.Text
Text50.Text = tabela("p15")
Text51.Text = Text49.Text - Text50.Text
Text53.Text = tabela("p16")
Text54.Text = Text52.Text - Text53.Text
End If
tabela.MoveNext
Loop
End If
tabela.Close
conexao.Close
End Sub

Cdigo Invent.frm

VERSION 5.00
Begin VB.Form Invent
Caption
ClientHeight

= "Inventrio"
= 3990

ClientLeft

= 120

ClientTop

= 420

ClientWidth

= 12135

LinkTopic

= "Form1"

ScaleHeight

= 3990

ScaleWidth

= 12135

StartUpPosition = 3 'Windows Default

115

Begin VB.TextBox Text4


BackColor

= &H80000004&

BorderStyle

= 0 'None

BeginProperty Font
Name

= "MS Sans Serif"

Size

= 12

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 420
= 7800

Locked

= -1 'True

TabIndex

= 13

Text

= "--:--:--"

Top

= 2400

Width

= 1095

End
Begin VB.TextBox Text3
BackColor

= &H80000004&

BorderStyle

= 0 'None

BeginProperty Font
Name
Size

= "MS Sans Serif"


= 12

Charset

= 0

Weight

= 700

Underline
Italic

= 0 'False
= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 375

116

Left
Locked
TabIndex

= 6000
= -1 'True
= 12

Text

= "--/--/---"

Top

= 2400

Width

= 1455

End
Begin VB.CommandButton Command1
Caption

= "Fechar"

Height

= 375

Left
TabIndex
Top
Width

= 10080
= 11
= 3360
= 1575

End
Begin VB.TextBox Text2
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 4560
= -1 'True
= 10

Text

= "Sem Registro"

Top

= 2880

Width

= 1215

End
Begin VB.TextBox Text1
BackColor
Height
Left
Locked
TabIndex

= &H80000004&
= 285
= 9120
= -1 'True
= 8

Text

= "Sem Registro"

Top

= 2400

117

Width

= 1215

End
Begin VB.PictureBox Picture1
BorderStyle

= 0 'None

Height
Left

= 855
= 9600

Picture

= "Invent.frx":0000

ScaleHeight

= 855

ScaleWidth

= 2295

TabIndex

= 1

Top

= 120

Width

= 2295

End
Begin VB.PictureBox Picture2
BorderStyle

= 0 'None

Height
Left

= 975
= 240

Picture

= "Invent.frx":0F05

ScaleHeight

= 975

ScaleWidth

= 3615

TabIndex
Top
Width

= 0
= 120
= 3615

End
Begin VB.Label Label5
Caption

= "Quantidade de recargas efetuadas:"

BeginProperty Font
Name
Size

= "MS Sans Serif"


= 12

Charset

= 0

Weight

= 700

Underline
Italic

= 0 'False
= 0 'False

118

Strikethrough = 0 'False
EndProperty
Height

= 375

Index

= 1

Left

= 120

TabIndex

= 9

Top

= 2880

Width

= 4335

End
Begin VB.Label Label6
Caption

= "as"

BeginProperty Font
Name

= "MS Sans Serif"

Size

= 12

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 375

Index

= 1

Left
TabIndex
Top
Width

= 7440
= 7
= 2400
= 375

End
Begin VB.Label Label5
Caption

= "Quantidade total de produtos vendidos at o dia"

BeginProperty Font
Name
Size
Charset

= "MS Sans Serif"


= 12
= 0

119

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height

= 375

Index

= 0

Left

= 120

TabIndex

= 6

Top

= 2400

Width

= 5895

End
Begin VB.Label Label4
Caption

= "Produto:"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 375
= 120
= 5
= 1680
= 1335

End
Begin VB.Label Label3
Caption

= "01"

BeginProperty Font
Name

= "@Arial Unicode MS"

120

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left

= 375
= 1560

TabIndex

= 4

Top

= 1680

Width

= 855

End
Begin VB.Label Label1
Caption

= "Mquina:"

BeginProperty Font
Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 375
= 120
= 3
= 1320
= 1335

End
Begin VB.Label Label2
Caption

= "01"

BeginProperty Font

121

Name

= "@Arial Unicode MS"

Size

= 14.25

Charset

= 0

Weight

= 700

Underline

= 0 'False

Italic

= 0 'False

Strikethrough = 0 'False
EndProperty
Height
Left
TabIndex
Top
Width

= 375
= 1560
= 2
= 1320
= 855

End
End
Attribute VB_Name = "Invent"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim conexao As New ADODB.Connection 'cria a variavel de conexao
Dim tabela As New ADODB.Recordset 'cria a variavel da tabela
Dim sql As String 'cria a string SQL

Private Sub Command1_Click()


Unload Invent
End Sub

Private Sub Form_Load()


Caption = " CVA Server - Inventrio do produto " & tprod & " - Mquina " & tmaq
Label2.Caption = tmaq
Label3.Caption = tprod

122

If conexao.State = 1 Then conexao.Close 'verifica se a conexo esta sendo usada, se estiver


ela fecha
conexao.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" & App.Path &
"\servidor.mdb" 'cria a conexao com o banco de dados via ADO
sql = "Select * from servidor where maq = '" & tmaq & "' Order By data, hora"
'SELECIONA TODOS OS DADOS DA TABELA E TIVEREM O CODIGO X
If tabela.State = 1 Then tabela.Close

'VERIFICA SE A TABELA ESTA

ABERTA, SE ESTIVER ELE FECHA


tabela.Open sql, conexao

'ABRE A TABELA USANDO A STRING

SQL, E A CONEXAO
x=0
Do Until tabela.EOF = True

If tprod = 1 Then
If tabela("r01") <> "-" Then
x = x + tabela("p01")
Text1.Text = x
Text2.Text = tabela("r01")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 2 Then
If tabela("r02") <> "-" Then
x = x + tabela("p02")
Text1.Text = x
Text2.Text = tabela("r02")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 3 Then
If tabela("r03") <> "-" Then

123

x = x + tabela("p03")
Text1.Text = x
Text2.Text = tabela("r03")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 4 Then
If tabela("r04") <> "-" Then
x = x + tabela("p04")
Text1.Text = x
Text2.Text = tabela("r04")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 5 Then
If tabela("r05") <> "-" Then
x = x + tabela("p05")
Text1.Text = x
Text2.Text = tabela("r05")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 6 Then
If tabela("r06") <> "-" Then
x = x + tabela("p06")
Text1.Text = x
Text2.Text = tabela("r06")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If

124

End If
If tprod = 7 Then
If tabela("r07") <> "-" Then
x = x + tabela("p07")
Text1.Text = x
Text2.Text = tabela("r07")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 8 Then
If tabela("r08") <> "-" Then
x = x + tabela("p08")
Text1.Text = x
Text2.Text = tabela("r08")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 9 Then
If tabela("r09") <> "-" Then
x = x + tabela("p09")
Text1.Text = x
Text2.Text = tabela("r09")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 10 Then
If tabela("r10") <> "-" Then
x = x + tabela("p10")
Text1.Text = x
Text2.Text = tabela("r10")

125

Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 11 Then
If tabela("r11") <> "-" Then
x = x + tabela("p11")
Text1.Text = x
Text2.Text = tabela("r11")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 12 Then
If tabela("r12") <> "-" Then
x = x + tabela("p12")
Text1.Text = x
Text2.Text = tabela("r12")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 13 Then
If tabela("r13") <> "-" Then
x = x + tabela("p13")
Text1.Text = x
Text2.Text = tabela("r13")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 14 Then
If tabela("r14") <> "-" Then

126

x = x + tabela("p14")
Text1.Text = x
Text2.Text = tabela("r14")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 15 Then
If tabela("r15") <> "-" Then
x = x + tabela("p15")
Text1.Text = x
Text2.Text = tabela("r15")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
If tprod = 16 Then
If tabela("r16") <> "-" Then
x = x + tabela("p16")
Text1.Text = x
Text2.Text = tabela("r16")
Text3.Text = tabela("data")
Text4.Text = tabela("hora")
End If
End If
tabela.MoveNext
Loop
tabela.Close
conexao.Close
End Sub

127

Anexo II
Programao PIC - GPRS
#include <16F876A.h>
#include <string.h>
#use delay(clock=20000000)
#use rs232(baud=115200,xmit=pin_c6, rcv=pin_c7)
#fuses hs,nolvp,nowdt,noput
#byte TXREG = 0x19
#byte RXREG = 0x1A
#bit TRMT

= 0x98.1

int mux1,mux2,mux3,mux4;
int p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16;
int r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16;
int maq=001,seg=0;
int z=0,inc=0;

void envia_byte(char dadot)


{
TXREG=dadot;
while(!TRMT);
}

conectar()
{
puts("AT+CSTT=\"TIM.BR\",\"TIM\",\"TIM\" ");
delay_ms(2000);
puts("AT+CDNSCFG=\"208.67.222.222\" ");
delay_ms(2000);
puts("AT+CDNSGIP=\"univercidade.edu\"");
delay_ms(6000);
128

puts("AT+CIFSR");
delay_ms(4000);
puts("AT+CIPSTART=\"TCP\",\"189.66.242.123\",\"100\" ");
delay_ms(5000);
}

enviar()
{
output_high(pin_c2);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("cva%03u%02u%02u%02u%02u%02u%02u%02u%02u%02u%02u%02u%02u%02
u%02u%02u%02u\r\n",maq,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16);
envia_byte(10);
envia_byte(26);
output_low(pin_c2);
}

zerar()
{
if (p1==255)
{
p1=0;
write_eeprom (1, p1);
}
if (p2==255)
{
p2=0;
write_eeprom (3, p2);
}
if (p3==255)
{

129

p3=0;
write_eeprom (5, p3);
}
if (p4==255)
{
p4=0;
write_eeprom (7, p4);
}
if (p5==255)
{
p5=0;
write_eeprom (9, p5);
}
if (p6==255)
{
p6=0;
write_eeprom (11, p6);
}
if (p7==255)
{
p7=0;
write_eeprom (13, p7);
}
if (p8==255)
{
p8=0;
write_eeprom (15, p8);
}
if (p9==255)
{
p9=0;
write_eeprom (17, p9);
}

130

if (p10==255)
{
p10=0;
write_eeprom (19, p10);
}
if (p11==255)
{
p11=0;
write_eeprom (21, p11);
}
if (p12==255)
{
p12=0;
write_eeprom (23, p12);
}
if (p13==255)
{
p13=0;
write_eeprom (25, p13);
}
if (p14==255)
{
p14=0;
write_eeprom (27, p14);
}
if (p15==255)
{
p15=0;
write_eeprom (29, p15);
}
if (p16==255)
{
p16=0;

131

write_eeprom (31, p16);


}
}

ende_mux(int x)
{
output_b(x);
delay_ms(20);
z++;
if (z==50)
{
z=0;
seg++;
if (seg==60)
{
zerar();
enviar();
seg=0;
}
}
}

tmux1(int p)
{
if (p==0)
{
if (p1==255) p1=1; else
p1 = read_eeprom(1) + 1;
write_eeprom (1, p1);
output_high(pin_c0);
}
if (p==1)
{

132

if (r1==255) r1=1; else


r1 = read_eeprom(2) + 1;
write_eeprom (2, r1);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up01r01%02u%02u,\r\n",maq,p1,r1);
envia_byte(10);
envia_byte(26);
p1=0;
write_eeprom (1, p1);
}
if (p==2)
{
if (p2==255) p2=1; else
p2 = read_eeprom(3) + 1;
write_eeprom (3, p2);
output_high(pin_c0);
}
if (p==3)
{
if (r2==255) r2=1; else
r2 = read_eeprom(4) + 1;
write_eeprom (4, r2);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up02r02%02u%02u,\r\n",maq,p2,r2);
envia_byte(10);
envia_byte(26);
p2=0;
write_eeprom (3, p2);
}

133

if (p==4)
{
if (p3==255) p3=1; else
p3 = read_eeprom(5) + 1;
write_eeprom (5, p3);
output_high(pin_c0);
}
if (p==5)
{
if (r3==255) r3=1; else
r3 = read_eeprom(6) + 1;
write_eeprom (6, r3);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up03r03%02u%02u,\r\n",maq,p3,r3);
envia_byte(10);
envia_byte(26);
p3=0;
write_eeprom (5, p3);
}
if (p==6)
{
if (p4==255) p4=1; else
p4 = read_eeprom(7) + 1;
write_eeprom (7, p4);
output_high(pin_c0);
}
if (p==7)
{
if (r4==255) r4=1; else
r4 = read_eeprom(8) + 1;
write_eeprom (8, r4);

134

conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up04r04%02u%02u,\r\n",maq,p4,r4);
envia_byte(10);
envia_byte(26);
p4=0;
write_eeprom (7, p4);
}
}
tmux2(int p)
{
if (p==0)
{
if (p5==255) p5=1; else
p5 = read_eeprom(9) + 1;
write_eeprom (9, p5);
output_high(pin_c0);
}
if (p==1)
{
if (r5==255) r5=1; else
r5 = read_eeprom(10) + 1;
write_eeprom (10, r5);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up05r05%02u%02u,\r\n",maq,p5,r5);
envia_byte(10);
envia_byte(26);
p5=0;
write_eeprom (9, p5);
}

135

if (p==2)
{
if (p6==255) p6=1; else
p6 = read_eeprom(11) + 1;
write_eeprom (11, p6);
output_high(pin_c0);
}
if (p==3)
{
if (r6==255) r6=1; else
r6 = read_eeprom(12) + 1;
write_eeprom (12, r6);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up06r06%02u%02u,\r\n",maq,p6,r6);
envia_byte(10);
envia_byte(26);
p6=0;
write_eeprom (11, p6);
}
if (p==4)
{
if (p7==255) p7=1; else
p7 = read_eeprom(13) + 1;
write_eeprom (13, p7);
output_high(pin_c0);
}
if (p==5)
{
if (r7==255) r7=1; else
r7 = read_eeprom(14) + 1;
write_eeprom (14, r7);

136

conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up07r07%02u%02u,\r\n",maq,p7,r7);
envia_byte(10);
envia_byte(26);
p7=0;
write_eeprom (13, p7);
}
if (p==6)
{
if (p8==255) p8=1; else
p8 = read_eeprom(15) + 1;
write_eeprom (15, p8);
output_high(pin_c0);
}
if (p==7)
{
if (r8==255) r8=1; else
r8 = read_eeprom(16) + 1;
write_eeprom (16, r8);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up08r08%02u%02u,\r\n",maq,p8,r8);
envia_byte(10);
envia_byte(26);
p8=0;
write_eeprom (15, p8);
}
}
tmux3(int p)
{

137

if (p==0)
{
if (p9==255) p9=1; else
p9 = read_eeprom(17) + 1;
write_eeprom (17, p9);
output_high(pin_c0);
}
if (p==1)
{
if (r9==255) r9=1; else
r9 = read_eeprom(18) + 1;
write_eeprom (18, r9);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up09r09%02u%02u,\r\n",maq,p9,r9);
envia_byte(10);
envia_byte(26);
p9=0;
write_eeprom (17, p9);
}
if (p==2)
{
if (p10==255) p10=1; else
p10 = read_eeprom(19) + 1;
write_eeprom (19, p10);
output_high(pin_c0);
}
if (p==3)
{
if (r10==255) r10=1; else
r10 = read_eeprom(20) + 1;
write_eeprom (20, r10);

138

conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up10r10%02u%02u,\r\n",maq,p10,r10);
envia_byte(10);
envia_byte(26);
p10=0;
write_eeprom (19, p10);
}
if (p==4)
{
if (p11==255) p11=1; else
p11 = read_eeprom(21) + 1;
write_eeprom (21, p11);
output_high(pin_c0);
}
if (p==5)
{
if (r11==255) r11=1; else
r11 = read_eeprom(22) + 1;
write_eeprom (22, r11);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up11r11%02u%02u,\r\n",maq,p11,r11);
envia_byte(10);
envia_byte(26);
p11=0;
write_eeprom (21, p11);
}
if (p==6)
{
if (p12==255) p12=1; else

139

p12 = read_eeprom(23) + 1;
write_eeprom (23, p12);
output_high(pin_c0);
}
if (p==7)
{
if (r12==255) r12=1; else
r12 = read_eeprom(24) + 1;
write_eeprom (24, r12);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up12r12%02u%02u,\r\n",maq,p12,r12);
envia_byte(10);
envia_byte(26);
p12=0;
write_eeprom (23, p12);
}
}
tmux4(int p)
{
if (p==0)
{
if (p13==255) p13=1; else
p13 = read_eeprom(25) + 1;
write_eeprom (25, p13);
output_high(pin_c0);
}
if (p==1)
{
if (r13==255) r13=1; else
r13 = read_eeprom(26) + 1;
write_eeprom (26, r13);

140

conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up13r13%02u%02u,\r\n",maq,p13,r13);
envia_byte(10);
envia_byte(26);
p13=0;
write_eeprom (25, p13);
}
if (p==2)
{
if (p14==255) p14=1; else
p14 = read_eeprom(27) + 1;
write_eeprom (27, p14);
output_high(pin_c0);
}
if (p==3)
{
if (r14==255) r14=1; else
r14 = read_eeprom(28) + 1;
write_eeprom (28, r14);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up14r14%02u%02u,\r\n",maq,p14,r14);
envia_byte(10);
envia_byte(26);
p14=0;
write_eeprom (27, p14);
}
if (p==4)
{
if (p15==255) p15=1; else

141

p15 = read_eeprom(29) + 1;
write_eeprom (29, p15);
output_high(pin_c0);
}
if (p==5)
{
if (r15==255) r15=1; else
r15 = read_eeprom(30) + 1;
write_eeprom (30, r15);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);
printf("rec%03up15r15%02u%02u,\r\n",maq,p15,r15);
envia_byte(10);
envia_byte(26);
p15=0;
write_eeprom (29, p15);
}
if (p==6)
{
if (p16==255) p16=1; else
p16 = read_eeprom(31) + 1;
write_eeprom (31, p16);
output_high(pin_c0);
}
if (p==7)
{
if (r16==255) r16=1; else
r16 = read_eeprom(32) + 1;
write_eeprom (32, r16);
conectar();
puts("AT+CIPSEND");
delay_ms(1000);

142

printf("rec%03up16r16%02u%02u,\r\n",maq,p16,r16);
envia_byte(10);
envia_byte(26);
p16=0;
write_eeprom (31, p16);
}
}

void main()
{
p1=read_eeprom(1);
r1=read_eeprom(2);
p2=read_eeprom(3);
r2=read_eeprom(4);
p3=read_eeprom(5);
r3=read_eeprom(6);
p4=read_eeprom(7);
r4=read_eeprom(8);
p5=read_eeprom(9);
r5=read_eeprom(10);
p6=read_eeprom(11);
r6=read_eeprom(12);
p7=read_eeprom(13);
r7=read_eeprom(14);
p8=read_eeprom(15);
r8=read_eeprom(16);
p9=read_eeprom(17);
r9=read_eeprom(18);
p10=read_eeprom(19);
r10=read_eeprom(20);
p11=read_eeprom(21);
r11=read_eeprom(22);
p12=read_eeprom(23);

143

r12=read_eeprom(24);
p13=read_eeprom(25);
r13=read_eeprom(26);
p14=read_eeprom(27);
r14=read_eeprom(28);
p15=read_eeprom(29);
r15=read_eeprom(30);
p16=read_eeprom(31);
r16=read_eeprom(32);

enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);

delay_ms(15000);

while (true)
{
int y=0;
output_b(0);
while (y<8)
{
ende_mux(y);
mux1=input(pin_b3);
mux2=input(pin_b4);
mux3=input(pin_b5);
mux4=input(pin_b7);
if (mux1==1) tmux1(y);
if (mux2==1) tmux2(y);
if (mux3==1) tmux3(y);
if (mux4==1) tmux4(y);
output_low(pin_c0);
y++;
}

144

}
}

#int_rda
void isr_serial(void)
{
char teste;
teste = getchar();
}

145

Referncias Bibliogrficas
[1] Fernandes, Osmar., Telemetria e Sensoriamento Remoto. III Edio, Copel, 1992.

[2] ZeniteTecnologia (2008) Telemetria, In: Telemetria: Apresentao. Disponvel em:


http://zenitetecnologia.com.br/blog_zenio/?p=18. Acesso em: 14 abr. 2008.

[3] Aldabo,Ricardo., Sistemas de Redes para Controles e Automao. I Edio, Book


Express, 2002.

[4] Pereira, Fbio., Microcontroladores Pic Tcnicas Avanadas. V Edio, rica, 2002.

[5] PUCRS (2008) Diferena entre Microcontrolador e Microprocessador, In: Faculdade


de

Engenharia

FENGPUC,

Rio

Grande

do

Sul.

Disponvel

em:

http://www.ee.pucrs.br/~dbarros/d2005_1/Microproc/Grupo_1/diferencas.htm. Acesso em:


25 abr. 2008.

[6] Jos, David., Desbravando o Pic. XII Edio, rica, 2008.

[7] Sckimger, Rob., et. al, TCP/IP a Bblia. I Edio, Elsevier, 2008.

[8] Douglas, E., Redes de Computadores e Internet. IV Edio, Bookman, 2007.

[9] Torres, Gabriel., Rede de Computadores. I Edio, Axcel Books, 2001.

[10] Kurose, James, et. Al., Redes de Computadores e a Internet. III Edio, Pearson,
2007.
[11] Krishnamurthy, Balachander, et. al., Redes para Web. I Edio, Campus, 2001.

[12] Carvalho, Alan (2006) O Que GPRS, In: Wirelles Br, Joo Pessoa. Disponvel em:
http://www.wirelessbrasil.org/wirelessbr/colaboradores/alancarvalho/gprs.html.

Acesso

em: 25 abr. 2008.

146

[13] Humberto, Jos., Redes GSM, GPRS, EDGE e UMTS. I Edio, Editora rica, 2005.

[14] CERNE GSM (2004), Kit CERNE GSM SIM340Z

[15] Amorim, Rogrio

de., Treinamento Avanado em XML. III Edio, Digerati Books,

2005

147

Você também pode gostar