Protótipo de Software e Hardware para Aquisição de Dados.



Documentos relacionados
Copyright 2013 VW Soluções

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Programação em BASIC para o PIC Mostrando Mensagens no Display LCD Vitor Amadeu Souza

Controladores Lógicos Programáveis CLP (parte-3)

TUTORIAL DE PROGRAMAÇÃO. Configuração do cartão de entrada / saída analógica CP1W-MAD11.

LENDO SINAIS. O computador poderá tomar uma ou várias decisões ao mesmo tempo, conforme o dado lido através de sensores específicos.

Quadro de consulta (solicitação do mestre)

ULA Sinais de Controle enviados pela UC

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Comunicação Serial com o AVR ATMEGA8

Tutorial de Utilização do CellControl SMS I/O em rede DXNET com CLP Dexter µdx série 200

Programação de Robótica: Modo Circuitos Programados - Avançado -

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

SCD 912. Dispositivo de comunicação e armazenamento. Apresentação. Dados Técnicos. Conexões

Geral: Manual de Utilização do Software de Teste Gradual Windows

5 Entrada e Saída de Dados:

Manual Técnico Interface Modbus

Leitor MaxProx-Lista-PC

Desenvolvimento de Módulo Wireless para Acionamento de Cargas via Porta Paralela

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

EA075 Conversão A/D e D/A

Tutorial de Utilização do CellControl SMS 200 em rede DXNET com CLP Dexter µdx série 200

Módulo FGM721. Controlador P7C - HI Tecnologia

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

Conversor Analógico /Digital

Multimedidores Inteligentes MGE G3 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

1. CAPÍTULO COMPUTADORES

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

ADC0804 (CONVERSOR A/D)

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

3. Arquitetura Básica do Computador

TS Display Gráfico Serial

Boletim Técnico R&D 02/08 Simulador do software A1 Automation Tools 27 de fevereiro de 2008

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

Capítulo 12. Projeto 5 Controle de Motores de Passo Circuito e Funcionamento

Arquitetura de Computadores. Tipos de Instruções

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Universidade Federal da Fronteira Sul Campus Chapecó Sistema Operacional

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Como instalar uma impressora?

Instalando a placa de rede

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Capítulo 4 Conversores AD e DA

Manual do instalador Box Output DC Rev Figura 01 Apresentação do Box Output DC.

Simulador do Processador Neander T&D-Bench Simulator Manual do Usuário. por Júlio César Maccali. revisado por Prof. Christian Zambenedetti

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Funções de Posicionamento para Controle de Eixos

WDM_1256.SYS DRIVER DA CAD12/56 PARA WINDOWS 98

Como Gerar documento em PDF com várias Imagens

AUTOMAҪÃO INDUSTRIAL E LINHAS DE PRODUҪÃO FLEXÍVEIS

GUIA RÁPIDO DE INSTALÇÃO

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

O USO DE UM SENSOR DE LUZ LINEAR COMO RECURSO DIDÁTICO PARA DEMONSTRAR PRINCÍPIOS DE DIFRAÇÃO E ESPECTROSCOPIA

Sistemas Operacionais

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

O protocolo I2C. Fig. 1 Diagrama em blocos e pinos do circuito integrado PT2313.

Copyright 2011 VW Soluções

Introdução aos Computadores

Princípios de funcionamento dos computadores

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Parallel to Serial Shifting IN

Somador e subtrator de 8 bits

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Introdução a Informática. Prof.: Roberto Franciscatto

Tecnologia da Informação. Prof Odilon Zappe Jr

Um Driver NDIS Para Interceptação de Datagramas IP

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 4 Avaliação/validação da implementação do SMD 113

Uso de interrupções de BIOS/DOS

Multimedidores Inteligentes IDM96 Modo de uso do software IBIS_BE_cnf. ABB Automação. Hartmann & Braun

b 1 Copyright In9 Mídia Soluções Digitais Inc. All rights reserved.

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

SIMULADO Windows 7 Parte V

Tutorial de Eletrônica Aplicações com 555 v

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

PAINEL ELETRÔNICO DE MENSAGENS MANUAL DE OPERAÇÃO E INSTALAÇÃO CARROS URBANOS E G7 MARCOPOLO

Usando o Arena em Simulação

Memórias Prof. Galvez Gonçalves

Sistemas Computacionais II Professor Frederico Sauer

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Impressão de Código de Barras Uma abordagem prática ZEBRA ZPL2

A seguir serão detalhados os atuadores da estação com a finalidade de facilitar a visualização e ilustrar os circuitos contidos em anexo.

Manual Equipamento ST10 Flasher Rev. 1

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE: SÃO CAETANO DO SUL - SP - CEP

Arquitetura de Rede de Computadores

Manual de funcionamento Esteira transportadora

PROJETO INFORMÁTICA NA ESCOLA

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

Capture Pro Software. Guia de referência. A-61640_pt-br

Sistemas Operacionais

Aperfeiçoamento Técnico com respeito ao Profissional.

Placa Acessório Modem Impacta

MANUAL AGENDADOR DE TAREFAS LOGIX

Transcrição:

Protótipo de Software e Hardware para Aquisição de Dados. Luís Augusto Spranger Universidade Regional de Blumenau FURB bibao@yahoo.com Novembro / 2002 RESUMO Este artigo descreve a construção de um protótipo para aquisição de dados em IBM-PCs usando a porta paralela, um conversor analógico / digital e um software desenvolvido em Delphi para MS- Windows. PALAVRAS-CHAVE: Aquisição de dados, Conversor A/D, Porta Paralela. 1. Introdução Nos temos mais recentes com a popularização de componentes eletrônicos e do uso de tecnologias, tornou-se muito simples criar sistemas de aquisição de dados para computadores pessoais a um custo muito reduzido e com uma confiabilidade muito boa. O objetivo deste artigo é descrever a construção de um protótipo desde o hardware onde os dados são coletados ate a parte de software que faz o controle sobre o hardware e faz a interpretação dos valores lidos, optou-se em elaborar um software bastante flexível para poder ser usado em diversas aplicações diferentes, usando bibliotecas do sistema operacional MS- Windows( DLLs) e um hardware com custo bastante reduzido.

2 2. Uma visão geral do sistema O sistema pode ser dividido em blocos, como pode ser visto abaixo: Fonte de Alimentação Programa de Aquisição de Dados 1 5 2 3 4 6 7 8 Sensor Amplificador Operacional Conversor A/D DLL Aquisição DLL Sensor DLL Visualização Hardware Software Figura 1: Blocos do sistema de aquisição de dados O Hardware é composto pelos blocos: 1 Fonte de alimentação, é responsável pela alimentação dos blocos do hardware, fornece todas as tensões necessárias para o funcionamento; 2 Sensor ou um transdutor, este fornece uma medida elétrica de grandeza que desejamos medir, por exemplo temperatura, luminosidade, pressão, ph entre outras; 3 O Amplificador Operacional é o responsável por adequar a medida feita pelo sensor para uma faixa de tensão que varia de 0 a 5 Volts; 4 Conversor A/D, transforma a tensão elétrica de 0 a 5 Volts que vem do amplificador operacional em um valor binário formado por 8 bits onde 0 Volts é representado pelo número 0 e 5 Volts é representado pelo número 255, ou seja faz a discretização do valor, pois o computador não consegue ler diretamente um sinal analógico. O Software é composto pelos blocos: 5 O Programa de aquisição de dados, é o responsável por gerenciar os valores entre as DLLs (bibliotecas do sistema) e fazer o gerenciamento de tempo das leituras; 6 DLL de aquisição, é responsável por fazer a comunicação com o hardware, neste caso um conversor A/D ligado a porta paralela do computador;

3 7 DLL de sensor, é a biblioteca responsável por fazer as transformações matemáticas sobre os valores lidos pela DLL de aquisição, também informa o nome das unidades de medida das grandezas medidas nos sensores; 8 DLL de visualização, é a biblioteca que faz a representação gráfica dos valores calculados pela DLL de sensor e mostra para o usuário. 3. Hardware 3.1 Conversor A/D (Analógico/Digital) Existem diversos tipos de conversores A/D, de acordo com a técnica utilizada para realizar medidas discretas de voltagem ou corrente de um sinal. As duas técnicas mais comuns são a de aproximações sucessivas e a das comparações sucessivas, ou gerador de rampa. 3.1.1 Circuito Integrado usado para fazer a conversão (ADC0832) Neste projeto foi usado um CI (circuito integrado) que já se encarrega de fazer esta conversão automaticamente por aproximação sucessiva, é o ADC0832 da National Semiconductors, possui 2 canais de entrada que variam de 0 a 5 Volts com uma resolução de 8 bits e uma interface serial de comunicação, tudo isso em 8 pinos. Figura 2: Pinagem externa do circuito integrado conversor A/D Temos os pinos: 1 Chip select, quando este pino está com nível lógico alto o CI se encontra desativado, quando este mesmo pino passa para o estado lógico baixo o CI é ativado, neste mesmo momento é feita a conversão do valor nas entradas CH0 e CH1;

4 2 CH0, canal 0 de leitura pode variar entre 0 Volts e Vref (tensão que é aplicada no pino 8); 3 CH1, canal 1 de leitura pode variar entre 0 Volts e Vref (tensão que é aplicada no pino 8); 4 GND (Ground), terra (pino negativo) do CI; 5 DI, Data In, pino usado para receber sinal do dispositivo que vai controlar o CI (Host), neste caso o computador, usado junto com os pinos 6 (DO) e 7 (CLK) é usado para fazer a configuração de qual canal será lido (ver mais adiante em Software); 6 DO, Data Out, pino que disponibiliza o valor lido de forma serial é sincronizado pelo pino 7 (CLK); 7 CLK, Clock, pino usado pelo Host (computador) para sincronizar as leitura e escritas para configuração do CI. 8 Vcc e Vref, tensão de alimentação do CI, também serve de referência para o circuito de conversão como sendo o valor máximo, pode variar entre 4,5 e 6,3 Volts, neste protótipo o valor definido foi de 5 Volts. 3.1.2 Porta Paralela do Computador (IBM-PC) Os computadores padrão IBM-PC possuem pelo menos uma ou mais portas paralelas, estas portas seguem um padrão, usam conectores DB-25, ou seja possuem 25 pinos, cada porta possui 3 bytes (8 bits) de referencia: um byte DATA, usado para escrever até 8 bits (nas portas mais modernas também chamadas de EPP, também é possível fazer a leitura destes bits); um byte CONTROL, deste byte mesmo ele possuindo 8 bits são usados apenas 4 bits estes podem ser tanto para leitura como escrita (no entanto no sistema operacional MS- Windows 95 e 98 o acesso a esses 4 bits é um pouco mais complicado pois o sistema operacional controla esses bits, tornando eles assim mais difíceis de usar em aplicações); um byte STATUS, deste byte são usados 5 bits de entrada, onde o ultimo bit é invertido por hardware.

5 Veja abaixo um breve resumo dos bytes e dos pinos na porta paralela: Descrição Byte Bits Endereço 8 pinos de saída DATA D0 até D7 Endereço Base (378H veja tabela 2) S3, S4, S5, S6, 5 pinos de entrada STATUS veja figura 3) S7 Endereço Base + 1 (379H veja tabela (1 bit invertido 2) 4 pinos de saída CONTROL C0, C1, C2, C3 (3 bits invertidos veja figura 3) Tabela 1: Os três bytes da porta paralela Endereço Base + 2 (37AH veja tabela 2) Endereço Observações 3BCh - 3BFh Usado na portas paralelas que acompanham as placas de vídeo (geralmente placas CGA). 378h - 37Fh Endereço para LPT 1 278h - 27Fh Endereço para LPT 2 Tabela 2: Descrição de endereços mais comuns Pino no conector Nome do Inversão no Pino no D25 Nome do Sinal Direção Centronics Byte Hardware 1 1 NStrobe In/Out Control Sim 2 2 Data 0 Out Data 3 3 Data 1 Out Data 4 4 Data 2 Out Data 5 5 Data 3 Out Data 6 6 Data 4 Out Data 7 7 Data 5 Out Data 8 8 Data 6 Out Data 9 9 Data 7 Out Data 10 10 nack In Status 11 11 Busy In Status Sim 12 12 Paper-Out In Status 13 13 Select In Status 14 14 nauto-linefeed In/Out Control Sim 15 32 nerror / nfault In Status 16 31 Ninitialize In/Out Control 17 36 NSelect-Printer In/Out Control Sim 18-25 19-30 Ground Gnd Tabela 3: Descrição de Pinos

6 Figura 3: Pinagem da porta paralela 3.1.3 Circuito elétrico do bloco Conversor A/D Abaixo o circuito elétrico do conversor A/D: Figura 4: Circuito elétrico do conversor A/D No circuito elétrico temos o CI ADC0832 (IC1) nele de um lado as entradas analógicas e de alimentação e do outro as entradas/saídas de dados que são D0, D1, D2 e S3 ligadas a porta paralela.

7 Este circuito pode ser facilmente montado em uma placa de circuito impresso: Figura 5: Sugestão do desenho do circuito impresso para o bloco do conversor A/D 4. Software Todo o software foi feito em Delphi, desde o programa principal até as DLLs. Nos próximos tópicos uma descrição detalhada de cada parte do programa. 4.1 Programa de aquisição de dados (DataReader) Basicamente este programa tem como função gerenciar as DLLs do sistema, fazer a comunicação de dados entre elas e servir te temporizador para as medidas. Todas as DLLs do sistema devem estar no diretório plug-in, quando o programa é executado ele vai neste diretório e faz uma busca por arquivos: os arquivos que começarem por a_ e que tenham a extensão.dll serão incluídos na lista de plug-ins (bibliotecas, DLLs) de Aquisição; os arquivos que começarem por s_ e que tenham a extensão.dll serão incluídos na lista de plug-ins de Sensor;

8 os arquivos que começarem por v_ e que tenham a extensão.dll serão incluídos na lista de plug-ins de Visualização. Abaixo uma copia da janela do programa: Figura 6: Copia da janela principal do programa Na parte superior da janela temos quatro seções do programa: Plug-in Aquisição, existe uma lista com as DLLs disponíveis para fazer a comunicação com o hardware, deve-se escolher o plug-in compatível com o hardware neste caso o plug-in que é compatível com a placa ADC0832; Plug-in Sensor, DLL responsável pelo tratamento e conversão do valor lido no hardware para valores reais de grandezas físicas; Plug-in Visualização, todas as DLL disponíveis para visualizar os dados já recalculados pelo plug-in Sensor (nesta lista entram no máximo 50 DLL, todas elas estão carregadas na memória, mas apenas as que forem selecionadas, receberão os dados da leitura); Leitura, seção de controle do intervalo entre as leituras, o tempo mínimo e máximo é determinado pelo plug-in de aquisição e depende das limitações de hardware, também possui os comandos Play (inicia a leitura em intervalos definidos pelo usuário) e Stop (para a leitura).

9 4.2 DLL de aquisição Funções e procedures que este tipo de DLL deve conter: Start = procedure( pluginpath : ShortString ) - chamada para inicializar a DLL, serve para alocar espaço na memória e zerar variáveis. O parâmetro pluginpath serve para indicar o nome do diretório onde se encontra a DLL, isso é útil para gravar arquivos de inicialização (.INI); Terminate = procedure chamada quando ante de descarregar a DLL da memória, deve gravar as ultima configurações em arquivos (.INI) e desalocar variáveis e recursos de hardware (se necessário); Read = procedure chamada quando deve ser feita uma leitura dos valores do hardware; GetReadMin = function : integer retorna um valor inteiro indicando a velocidade mínima em ms que o hardware é capaz de fazer a leitura; GetReadMax = function : integer retorna um valor inteiro indicando a velocidade máxima em ms que o hardware é capaz de fazer a leitura; GetValueMin = function : integer retorna um valor inteiro indicando o valor mínimo que o hardware pode retornar de uma leitura (tipicamente 0); GetValueMax = function : integer retorna um valor inteiro indicando o valor máximo que o hardware pode retornar de uma leitura (tipicamente 255 para 8 bits de resolução no hardware); GetChannels = function : integer retorna um valor inteiro indicando o número de canais disponíveis no hardware (por exemplo 2 no conversor com o CI ADC0832); GetValue = function(c : integer) : integer retorna um valor inteiro indicando o valor lido no hardware no canal c (c é o número do canal, a contagem de canais sempre começa em 0); GetInfo = function : ShortString retorna uma string com uma breve descrição do que a DLL faz e com o que é compatível; ShowConfig = procedure procedure chamada quando o botão de configuração é clicado, serve para fazer configurações gerais da DLL (portas de leitura, etc.).

10 4.2.1 a_adc0832.dll DLL responsável pela comunicação com a placa do conversor A/D com CI ADC0832 visto no tópico 3. Para fazer a comunicação de baixo nivel com o hardware foi criada a seguinte classe: function Tio.ReadPort(PortValue : word): word; var Data: word; Begin asm mov dx, PortValue in ax, dx mov Data, ax end; Result := byte(data); end; procedure Tio.WritePort(PortValue, DataValue: word); begin DataValue := DataVAlue*256+DataValue; Asm mov ax, datavalue; mov dx,portvalue out dx,ax end; end; A classe Tio acessa o hardware através da função ReadPort (faz a leitura do endereço com a instrução IN) e a procedure WritePort (escreve no endereço com a instrução OUT). Para fazer a comunicação com o integrado foi usado o Timing Diagram disponível no datasheet do CI:

11 Figura 7: Timing diagram do CI conversor A/D (ADC0832) Os bits SGL/DIF e ODD/SING que são enviados a DI servem para fazer a escolha de qual canal iremos ler (0 ou 1), estes bits obedecem a ordem abaixo: Tabela 4: Configuração dos bits para fazer a leitura do canal 0 ou do canal 1 Seguindo o esquema elétrico (tópico 3) da placa do conversor A/D temos que Clock = D0; Data In = D1; Chip Select = D2 e Data Out = S3 então se faz a seguinte seqüência de leitura para obter o valor: CS = 0; DI = 1; CLK = 0; Ativa o conversor (CS baixo) clock inicia baixo e DI alto para fazer o start bit: wio.writeport( wporta, $2 ); // Valor 2 = 00000010

12 CS = 0; DI = 1; CLK = 1; Conversor ativo, clock alto (pulso 1) e DI alto (ainda no start bit): wio.writeport( wporta, $3 ); // Valor 3 = 00000011 CS = 0; DI = 1; CLK = 0 e 1; Mais um pulso de clock mantendo o DI alto (com isso o bit SGL/DIF foi enviado alto seguindo a tabela 4): wio.writeport( wporta, $2 ); // Valor 2 = 00000010 wio.writeport( wporta, $3 ); // Valor 3 = 00000011 CS = 0; DI =?; CLK = 0 e 1; Mais um pulso de clock, nesse momento se a leitura for do canal 0 então o bit ODD/SING deve ser baixo (DI = 0) senão ODD/SING deve ser alto abaixo a leitura do canal 0: wio.writeport( wporta, $2 ); // canal 0 wio.writeport( wporta, $3 ); // canal 0 CS = 0; DI = 0; CLK = 0 e 1; Mais um pulso de clock, nesse momento (pulso 4 no Timing Diagram) o multiplexado esta fazendo o chaveamento do canal escolhido: wio.writeport( wporta, $0 ); // Valor 0 = 00000000 wio.writeport( wporta, $1 ); // Valor 1 = 00000001 CS = 0; DI = 0; CLK = 0 e 1; Nos próximos 8 pulsos de clock será disponibilizado 1 bit do valor convertido, com isso o valor será montado em 8 passos na variável v. v := 0; for i:=0 to 7 do begin wio.writeport( wporta, $0 ); // clock baixo para ler S3 v := v or (((wio.readport( wporta + 1 ) and $08 ) shl 4 ) shr i ); // monta S3 empurrando o bit 3 todo para esquerda

13 depois um numero i de vezs para direita i corresponde ao numero do bit que esta sendo lido neste instante. wio.writeport( wporta, $1 ); // gera 1 pulso de clock end; O Timing Diagram indica mais uma seqüência de leitura, esta porem não será feita pois o CI envia toda a seqüência dos 8 bits novamente mais em ordem inversa isso é usado para fins de prevenção de erros de leitura, mas estes 8 bits são descartados a partir deste momento podemos desabilitadar o CI novamente. A leitura dos canais é feita em duas etapas diferente, primeiro é lido o canal 0 depois o canal 1 sempre seguindo a seqüência mostrada acima. 4.2.2 a_random.dll Esta DLL tem como objetivo gerar números randômicos para testes de outras DLLs, não faz nenhuma leitura de hardware, o valor dos números podem ser configurados através da janela de configuração. 4.3 DLL de sensor Funções e procedures que este tipo de DLL deve conter: Start = procedure( pluginpath : ShortString ) - chamada para inicializar a DLL, serve para alocar espaço na memória e zerar variáveis. O parâmetro pluginpath serve para indicar o nome do diretório onde se encontra a DLL, isso é útil para gravar arquivos de inicialização (.INI); Terminate = procedure chamada quando ante de descarregar a DLL da memória, deve gravar as ultima configurações em arquivos (.INI) e desalocar variáveis e recursos de hardware (se necessário); Calculate = function( c: integer; v : integer ) : real faz o calculo e retorna um valor real (c é o número do canal, sempre começando em 0 e v é o valor lido no hardware);

14 GetUnitName = function( c: integer ) : ShortString retorna o nome da unidade relacionada com a grandeza física que depende do sensor ligado no respectivo canal (c é o canal começando em 0, por exemplo para temperatura no canal 0 retorna ºC ); GetInfo = function : ShortString retorna uma string com uma breve descrição do que a DLL faz e com o que é compatível; ShowConfig = procedure procedure chamada quando o botão de configuração é clicado, serve para fazer configurações gerais da DLL (portas de leitura, etc.). 4.2.1 s_direto.dll Esta DLL não faz calculo nenhum sobre o valor lido, apenas retorna o valor que foi lido no hardware através da DLL de aquisição, usada para fazer testes e montar as tabelas de relação. 4.2.2 s_sensores_ntc_ldr.dll Converte os valores lidos por um sensor de temperatura e um sensor de luz em pelo conversor A/D em valores de grandeza. 4.4 DLL de visualização Funções e procedures que este tipo de DLL deve conter: Start = procedure( pluginpath : ShortString ) - chamada para inicializar a DLL, serve para alocar espaço na memória, zerar variáveis e criar janelas na memória. O parâmetro pluginpath serve para indicar o nome do diretório onde se encontra a DLL, isso é útil para gravar arquivos de inicialização (.INI);

15 Terminate = procedure chamada quando ante de descarregar a DLL da memória, deve gravar as ultima configurações em arquivos (.INI) e desalocar variáveis, recursos de hardware e destruir janelas (se necessário); SetUnitName = procedure(c : integer; u : ShortString) seta o nome das unidade de acordo com o canal (c é o canal começando em 0 e u é o nome da variável); SetReadSpeed = procedure (rs : integer) seta a velocidade de leitura em ms; SetValueMin = procedure (c : integer; v : real) seta o valor mínimo que será exibido de acordo com o canal (c é o canal começando em 0); SetValueMax = procedure (c : integer; v : real) seta o valor máximo possível que será exibido de acordo com o canal (c é o canal começando em 0); SetChannels = procedure (c : integer) seta o número de canais disponíveis na DLL de aquisição (c é o numero de canais começando em 1); SetValue = procedure (c : Integer; v : real) seta o valor quando ele é lido na DLL de aquisição e transformada pela DLL de sensor (c é o canal começando em 0 e v é o valor que vem da DLL de sensor); Show = procedure deve conter instruções para mostrar (não construir) a janela de visualização; Hide = procedure deve conter instruções para esconder (não destruir) a janela de visualização; GetInfo = function : ShortString retorna uma string com uma breve descrição do que a DLL faz e com o que é compatível; ShowConfig = procedure procedure chamada quando o botão de configuração é clicado, serve para fazer configurações gerais da DLL (portas de leitura, etc.).

16 5. Referências Bibliográficas Beyond Logic Legacy PC Ports. Setembro, 2002 http://www.beyondlogic.org National Semiconductors ADC0831 Datasheet. Julho, 2002 http://www.nationalsemiconductors.com