Manual TED1000 modelo TC100 c/ comunicação Ethernet Prezado cliente, Parabéns por adquirir um Terminal modelo TC-100 / TC-200 padrão Ethernet TCP/IP Colleter. Este manual irá ajudá-lo a compreender mais as características técnicas do equipamento bem como detalhar sua configuração inicial e programação. O Manual está dividido em 3 seções, conforme indicado abaixo: Seção 1 Características funcionais do produto Seção 2 Configurações iniciais. Seção 3 Instruções de programação. Os microterminais da linha TED Colleter são bastante versáteis em suas características básicas e opcionais. Mesmo tendo uma ampla gama de características customizáveis, todos os microterminais Colleter podem ser programados de forma compatível, sendo portanto muito simples para o desenvolvedor migrar de uma versão para outra. Em sua versão TCP-IP, a configuração do terminal é extremamente simples. Como veremos adiante, ela não requer instalação de drivers auxiliares e não tem telas complexas a serem configuradas. O terminal pode ser usado com dhcp e IP dinâmico ou então com IP fixo. De ambas as formas, o terminal consegue localizar o IP do microcomputador servidor automaticamente, o que já elimina a necessidade de uma configuração adicional específica para isto. A sintaxe das funções de programação é também muito simples e intuitiva, não sendo necessário para o programador montar strings com bytes de dados complexos para se comunicar com o equipamento. Vamos agora entrar na descrição do produto. Agradecemos sua escolha por nossos produtos e esperamos poder fornecer todo o suporte necessário no apoio desta parceira de desenvolvimento.
Seção 1 Características técnicas e funcionais: - Inicialmente, vamos descrever as características do produto e as suas funcionalidades: 1.a Características técnicas: _ PESO _ 700 gr. _ TECLADO - Tipo chave padrão PC 16 teclas numéricas mais funções Funções Relegendáveis - caracter impresso mais capa para nova identificação. _ DISPLAY _ Tipo LCD (cristal líquido) verde ou azul 2 linhas por 16 caracteres c/ back light ( opcional ) 4 linhas por 16 caracteres c/ back light 8 linhas por 20 caracteres c/ back light ( opcional ) _ CÓDIGO DE BARRAS / CARTÃO MAGNÉTICO Duas interfaces para código de barras com decodificação interna: Interface wedge ( via teclado )_ para leitor externo qualquer; caneta, laser, CCD, etc. Interface para slot-reader incorporado ao gabinete Decodificação dos principais padrões de código de barras: Cód. 39, Cód. 39 Full ASCII, UPC, EAN, UPC / EAN com comps., JAN, Codabar, 2 de 5 Intercalado, 2 de 5 Industrial, Cód. 128 Uma interface para slot-reader de cartão magnético incorporado ao gabinete - trilha 2 _ INTERFACES DE COMUNICAÇÃO - Interface TCP / IP para rede Ethernet ou wireless Wi-Fi; - Interface para balança / sistema de pesagem - Interface serial RS 232C para propósito geral; - Interface PS-2 para leitor cód. barras ou teclado externo - Interface com operador / sinalização _ Sinal auditivo tipo "beep 2
1.b Características funcionais: Cada microterminal poderá: - consultar dados do sistema; - enviar dados colhidos em campo ao sistema, através da leitura de código de barras e por digitação; - imprimir listas, cupons e outros documentos em impressoras locais; - efetuar leitura de matrículas e crachás localmente; - coletar e contar sinais de máquinas e eventos; - acionar sinalizadores e contatos; - escrever dados em displays seriais externos; - efetuar leitura de balança ( OPCIONAL ). Características e facilidades de de programação : - Bibliotecas com funções prontas para gerenciar: Parâmetros de comunicação Parâmetros de comportamento Recepção de dados coletados (teclado e leitor) Envio de mensagens ao display Envio de texto a impressora do terminal Envio de sinalização sonora (beep) e led s Captura de dados de balança digital Linguagens: Visual Basic, Delphi, Visual C, C#, VB.NET, Foxpro e demais de mercado Painel traseiro do equipamento: 3
. Seção 2 Configurações iniciais Configuração de IP: Primeiramente você deve configurar o enderço IP do microterminal colocando um valor que esteja dentro da faixa de IPs de sua rede local. Para gravar o IP do TED1000 através do teclado, ligue o microterminal mantendo a tecla 1 pressionada. Fazendo isto, vai aparecer no display uma mensagem do tipo : Digite o IP: Você deve então digitar o novo endereço IP a ser gravado no terminal, separando os grupos por pontos e sempre digitando 3 dígitos. Por exemplo, para gravar o IP 192.168.0.51 você deverá digitar o seguinte: 192.168.000.051 e pressionar <E>. Se tiver um servidor DHCP e desejar usar um IP dinâmico, digite 000.000.000.000 no lugar do IP. Feita a gravação do IP, você já pode testar a comunicação do microterminal em sua rede com o programa de testes da Colleter. Para fazer isto, execute o programa Tstetcol.exe, forneça o IP do TED no campo de texto e clique em Abre endereço IP. Depois, se você digitar um número qualquer e pressionar <E> no microterminal, o dado digitado vai aparecer no formulário do programa e será retornada a mensagem Recebido-Canal0 no display do TED. Seção 3 Programação: Para enviar e receber mensagens para o TED1000, você pode utilizar a DLL sockdelp.dll (para Delphi) ou sockvbcl.dll (para VB).Os comandos e funções são fáceis e intuitivos de serem usados. - Abrindo um canal para um endereço IP função abreip A primeiro função que precisa ser chamada é a função abreip : Abreip ( x ) - abre comunicação com um endereço IP e associa a ele um número de canal x -string - Endereço IP em formato string (ex: 192.168.0.51 ) Retorno: inteiro (sempre 1) Declaração : function abreip ( porta :shortstring):integer; Exemplo de uso da função: x = abreip ( 192.168.0.51 ); 4
Para cada chamada abreip será associado um número de canal (uma espécie de índice) para o IP. Assim, o primeiro IP aberto passará a funcionar como canal 0, o segundo será canal 1, o terceiro canal 2 e assim por diante. OBS: no caso do uso de IP Dinâmico, esta função é chamada automaticamente pela DLL. - Enviando uma mensagem para o display do TED1000 função ENVTMSG Cada IP que foi aberto com o abrepip é associado a um número de canal. O primeiro aberto é o canal 0. o segundo é o canal 1 e assim por diante. Para enviar uma mensagem para um TED1000, o TED deve ser selecionado pelo número do seu canal na função ENVTMSG ENVTMSG ( conj, can, STRING ) - envia mensagem para o display do TED1000 Conj - inteiro - (sempre 0 usado apenas para manter compatibilidade com versões anteriores) Canal -inteiro - endereço associado ao IP destinatário da mensagem. STRING - variável string - dado a ser enviado para o display do TED1000 Declaração: function envtmsg ( cnj,can :integer ; da : shortstring ):integer; Utilização : X:=envtmsg ( 0,0,'Teste de envio'); RETORNO (X=número inteiro) Se X=1, o comando foi bem sucedido Se X=0, houve algum problema de comunicação de socket. - Recebendo uma mensagem digitada ou leitura de código de barras. GETCNT ( ptstring, ptcan, conj ) - lê mensagem vinda de todos os TEDs. Esta função deve ser colocada dentro de um TIMER, com intervalo de 1 milisegundo. Conj - inteiro - (Colocar sempre conjunto=0 ) ptcan -ponteiro para um inteiro - canal de onde veio a mensagem ptstring -ponteiro para variável string - mensagem vinda do TED1000. A função GETCNT retorna um valor 0 se não veio dado de nenhum TED e retorna 1 se existe algum dado vindo de algum canal (TED1000) Na variável ptcan será injetado pela DLL o número do canal que forneceu o dado (endereço) e na ptstring será injetado o dado vindo do TED1000, independentemente de ser uma digitação ou uma leitura de código de barras. 5
Declaração : function getcnt ( var dado:shortstring ; var canal:integer ; conj : integer ): integer; Utilização: ( o GETCNT deve ser colocado dentro de um timer com intervalo de 1 milisegundo ) procedure TForm1.Timer1Timer(Sender: TObject); begin conjunto:=0; canal:=100; // valor arbitrário (será modificado e retornado pela função) if (getcnt ( dado,canal,conjunto ))=1 then begin Form1.edit1.text:='Recebi: '+dado + ' do canal:' + inttostr(canal); envtmsg (conjunto,canal,'dado recebido'); envbeep (conjunto,canal,1); end; end; RETORNO (X=número inteiro) Se getcnt retornou 1, existe algum dado vindo de algum TED. A variável 'CANAL' receberá o valor do canal que enviou o dado. A string recebida será armazenada em 'dado' Se getcnt retornou 0, não existe dado nenhum, vindo de nenhum TED. - Fazendo o TED associado ao canal n tocar bips x= ENVBEEP ( conj, can, N ) - faz o TED1000 associado ao canal 'CAN' tocar N beeps Conj - inteiro - sempre zero Canal -inteiro - canal associado ao TED1000 com a função abreporta N -inteiro - número de beeps para o TED executar ( variando de 1 a 9 ) Declaração : function envbeep ( cnj,can,n :integer ):integer; Utilização : X:=envbeep ( 0,3,5); { Ted associado ao canal 3 tocará 5 beeps simples } 6
- Apagando o display do TED1000 ENVCLDISP ( conj, can ) apaga o display do TED associado ao canal CAN Conj - inteiro - Sempre zero Canal -inteiro - canal que receberá o comando Declaração : function envcldisp ( cnj,can:integer ):integer; Utilização : X:=envcldisp ( 0,3 ); Apaga o display do Ted associado ao canal 3 (3o IP aberto com abreip) - FLUXOGRAMA EXEMPLO DE CONTROLE PARA VÁRIOS MICROTERMINAIS Obs : Note que só é necessária uma instrução _GETCNT, mesmo para vários terminais e vários dados de entrada. Sugerimos que os contadores 1 e 2 do exemplo acima sejam elementos de uma matriz ( ou vetor ), indicando o status atual de cada terminal no sistema do usuário. 7