Séries TC-100 e TC-100i

TED série IP rede via cabo _ TC-100

– INDICE:
1 – Configurando o Terminal TED série TC (passo a passo);
2 – Testando o funcionamento e conexão ao PC;
3 – Recursos de Integração à sistemas ( softwares ) de aplicação;
4 – Funcionalidades, teclado, conexões traseiras e pinagens;
5 – Protocolo e comandos de operação / programação;

1 – Configuração
Configuração de IP:
Primeiramente você deve configurar o endereço IP do microterminal colocando um valor que esteja dentro da faixa de IPs de sua rede local. Para gravar o IP do TED através de seu teclado, ligue o microterminal mantendo a tecla “1” pressionada. Na sequência, no visor do TED será exibida a mensagem: “DIGITE O IP:”. Você deve, então, digitar o novo endereço IP a ser gravado no terminal, separando os grupos de três digitos ( octetos ) por pontos, por exemplo:
a – Para IP fixo: Na necessidade de fixar em seu TED o IP 192.168.0.51, digite o seguinte: 192.168.000.051 e pressionar
b – Para IP automático: Com o servidor DHCP do seu roteador habilitado, para ajustar seu TED para receber automaticamente, um IP válido dentro da faixa de IPs configurados em sua rede digite: 000.000.000.000 e pressione
Pronto, basta agora desligar o TED, aguardar 5 segundos, ligar novamente, aguardar 5 segundos e ele automaticamente entrará em rede com o Host ( PC ).

2 – Teste de funcionamento e comunicação :
Os Terminais TED são “FERRAMENTAS” nas Aplicações e Sistemas ( softwares ) dos Parceiros de Integração ( softwarehouses ) da Colleter. A configuração correta à cada software, deve ser verificada com o Parceiro desenvolvedor na ocasião da instalação. Porém antes, é possível verificar o bom funcionamento e instalação junto ao PC ( host ) “fora” do ambiente do software do Parceiro. Para isso utilize o software TESTA-TED. Com ele poderá cerificar se o TED está operando normalmente e comunicando com o PC ( host ).
Para baixar o TESTA-TED >> https://www.colleter.com.br/downloads/

3 – Recursos de Integração à sistemas ( softwares ) de aplicação _
– DLLs _ Integração dos Terminais TED / PAT, para incorporação no software de aplicação _ bibliotecas de vínculo dinâmico com funções prontas de alto nível para a comunicação e funções dos Terminais, às diversas linguagens Windows, com programas de explos. e fontes.
As DLL´s integram-se aos protocólos dos Terminais fixos TED e portáteis PAT, oferecendo maior facilidade de programação e maior grau de funcionalidades e opções de desenvolvimento.
– PROTOCOLO de Comandos: para Desenvolvedores experientes que desejam realizar sua própria base comandos e tarefas, mais abaixo segue descrição completa dos comandos no protocolo UDP

4 – Funcionalidades
Teclado modelos 16

obs.: o teclado é padrão para os vários modelos de TED. Nos modelos TC apenas as teclas numéricas e funções são utilizadas. Estas 3 teclas de função (F1, F2 e F3) podem ser configuradas via software. Além das teclas de função, de backspace // delete, e serve para deletar teclas digitadas, com a finalidade de corrigir erros de digitação antes da transmissão. A tecla Enter tem a função de transmitir os dados digitados para o computador.

Ligação do cabo de rede:
Conecte seu microterminal a um Hub ou Switch de rede ethernet utilizando um cabo padrão de rede (azul . Cat5) ou então com um cabo cross over. O conector de rede RJ45 deve estar crimpado com todas as vias e deve ser encaixado onde está marcado Ethernet ( conector RJ-45 ), no painel traseiro do equipamento.

Ligação do leitor de código de barras externo:
Você pode ligar um leitor de código de barras externo modelo PS2, ou teclado qualquer padrão PS2 no microterminal Colleter. Para isso, encaixe o leitor ou teclado no conector do painel traseiro, onde está escrito PS2.
obs.: em casos especiais a conexão do leitor poderá ser pelo conector DB-09 _ consulte

Ligação de uma impressora de cupom serial ou Balança ou outro dispositivo serial
É possível ligar uma impressora serial ao conector DB9 traseiro do TED Colleter. Para fazer isto, conecte a impressora ao terminal usando o mesmo cabo que você utiliza para ligar a impressora serial no computador. O conector DB9 serial do painel traseiro do TED tem pinagem compatível com a porta serial do PC.

DB9 Macho (painel traseiro)
1———————————————GND (ground)
2———————————————RX2 (entrada para balanças)
3———————————————TX1 (saída para impressora)
5———————————————CTS (entrada sinal protocolo **)
9———————————————Vcc (5Vdc)

Configurações default da porta serial:
Baud Rate = 9600
Bits de dados = 8
Paridade = nenhuma
Stop bits = 1

5 – Protocolo / Comandos

– Características da comunicação
– Conexão cliente / servidor: o Terminal TED é o cliente UDP e o Host ( PC ) é o servidor UDP;
– Busca automática de IP: recurso para “ganhar” automaticamente endereço de Ip do roteador da rede – veja abaixo em
“CONSIDERAÇÕES SOBRE BUSCA DE IP”
– Os modelos básicos da série TC-100 / TC-200 transmitem os dado digitados para o Host ( PC ) na Porta 8 em UDP. Realizam 3
(três) tentativas de transmissão, caso não receba um pacote de retorno do Host.
Existem modelos especiais que aceitam configuração prévia pelo usuário, para transmissão a outros endereços de Porta, além da
Porta 8;
– Digitação e Transmissão de Dados: Para o TED enviar um dado para o computador é necessário digitar o dado + tecla Enter;
– Leitura ( interface ) cód.barras: exatamente o mesmo efeito que a digitação anterior + tecla Enter;
– Modo de apresentação: na medida em que o dado vai sendo digitado vai sendo apresentado no display ( visor ). Durante a
digitação, se o dado for maior do que a linha do display, o cursor pula para a linha de baixo. Em repetidas vezes, os dados mais
antigos vão sendo rolados para cima e os novos vão aparecendo sempre na última linha de baixo – veja abaixo em “CONSIDERAÇÕES
SOBRE ROLAGEM DE DISPLAY”;
– Correção de erro de digitação: pressionando a tecla o cursor volta e apaga toda a última linha digitada, desde o digito
atual até o primeiro digito teclado, antes do último Enter .

ATENÇÃO: Na lista de comandos abaixo estão resumidos os conteúdos dos pacotes a serem enviados para o TED executar cada comando. Todos estes comandos devem obedecer o protocolo de repetição 3 vezes, usando os bytes de confirmação de transmissão e confirmação de recepção.

a- : Transmissão TED ao Host _ 01 XX YY ZZ DADO OD _ onde :
comando 01 = TED transmite dados ao Host
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão.
exemplo: TED transmitindo para o Host e sem resposta de retorno do Host (explo: micro desligado) então o TED vai tentar
transmitir três vezes enviando o seguinte:
01 00 0A 04 31 32 33 0D
01 01 0A 04 31 32 33 0D
01 02 0A 04 31 32 33 0D
O o segundo byte vai incrementando a cada tentativa 00, 01 e 02. Quando este byte chegar a FF ele deve voltar a ser 01.
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado;
0D = finalizador

– Formato de resposta do Host: 80 XX YY 00 _ onde:
80 = comando de confirmação de recebimento (dados em Hexadecimal);
EXERCITANDO:
# – TED tenta transmitir mas, por algum problema de transmissão (colisão na rede , ruído ou outro motivo) a primeira tentativa não chegue ao Host. Mas na segunda tentativa chegue normalmente. Vai acontecer então o seguinte tráfego de dados:
01 00 0A 04 31 32 33 0D
01 01 0A 04 31 32 33 0D
resposta do Host : 80 01 0A 00
Neste exemplo, o Host perdeu o primeiro pacote por algum problema de ruído. Mas quando o TED transmitiu o segundo pacote o Host respondeu . Nesta resposta 01 é o retorno do mesmo flag de transmissão. Ao receber este pacote, o TED pára de transmitir porque percebe que o Host já pegou o dado corretamente pois o flag 01 “bateu” com o mesmo flag 01 da transmissão.
## – Agora suponha que, por algum motivo a resposta do Host (confirmação de recebimento) não chegue ao TED (por ruído, colisão ou outra coisa). O TED vai interpretar que o Host ainda não recebeu o dado e vai transmitir novamente. O Host, ao pegar o dado repetido, vai desprezá-lo porque já pegou este dado. Isto porque o terceiro byte (0A= confirmação de transmissão) coincide com o terceiro byte recebido no comando anterior recebido pelo Host. Se fosse realmente uma nova transmissão o TED teria incrementado este byte para 0B. ou seja: o terceiro byte é um número que vai incrementando, não a cada tentativa de transmissão do mesmo dado, mas a cada dado novo que o TED tenta transmitir.
Este protocolo de confirmação de envio e confirmação de recebimento acontece nos dois sentidos: do TED para o micro e do micro para o TED e em todos os comandos implementados.

b- : Transmissão Host ao TED _

b.1 – Envia mensagem ao display do TED _ 01 XX YY ZZ DADOS_ onde :
comando 01 = envia mensagem para o display TED;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado;
DADOS = string a ser enviada ao display do TED;
Exemplo: 01 00 04 03 41 42 43 coloca ABC no display do TED.

b.2 – Toca beep inicialização _ 02 XX YY ZZ _ onde :
comando 05 = TED toca beep inicialização;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado – neste comando sempre 00
Exemplo: 02 00 02 00 toca bip de inicialização

b.3 – Apaga display _ 03 XX YY ZZ _ onde :
comando 03 = TED apaga display;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado – neste comando sempre 00
Exemplo: 00 03 00 apaga o display do TED.

b.4 – Toca N beeps _ 05 XX YY ZZ N _ onde :
comando 05 = TED toca N beeps;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado – neste comando sempre 01;
Exemplo: 05 00 02 01 04 ted toca 4 bips

b.5 – Envia mensagem para porta serial auxiliar COM1 ( impressora p.explo. ) do TED _ 06 XX YY ZZ DADOS _ onde :
comando 06 = envia dados para saida auxiliar COM1;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = número de bytes do dado digitado;
DADOS = texto / mensagem a ser impressa via COM1
Exemplo: 06 00 04 03 41 42 43 imprime ABC na porta serial auxiliar

b.6 – Le dados da porta serial auxiliar COM2 ( balança p.explo. ) _ 07 XX YY 00 _ onde :
comando 07 = le dados da COM2;
XX = “contador de tentativas” – flag que vai incrementando até FF em cada tentativa de transmissão
YY = “contador de comandos” – confirmação de transmissão, para checagem da resposta do Host;
ZZ = neste caso sempre 00;
Exemplo: 07 00 02 00 lê porta serial auxiliar COM2 para balanças ( pino RX2 conector DB-09 ).

Parâmetros da comunicação serial : default 9600,n,8,1

Tipo de balança ( protocolo balança ):
1- Balanças sem protocolo _ existem balanças que enviam o peso imediatamente após sua realização : neste caso o procedimento descrito acima é suficiente para o tratamento dos dados lidos do peso. O TED armazena esses dados de peso num buffer e quando o Host solicita via o comando 07 ( acima ), os dados são enviados.
2 – Balanças com protocolo _ existem balanças que aguardam e chegada de um comando ENQ ( 0x05 ) para somente após enviar os dados de peso : neste caso utilizando o pino 3 da COM1 ( saída para impressora ) o TED pode enviar o comando ENQ ( 0x05 ) no formato descrito em b.5 (envia mensagem para porta serial auxiliar COM1) :
Explo1 – Se quiser enviar 0x05 para a balança. Precisa enviar para o TED via UDP: 0x06, 0x00, 0x00, 0x01, 0x05
Explo2 – Se quiser enviar 0xC3, 0x0D para a balança, enviar para o TED via UDP: 0x06, 0x00, 0x00, 0x02, 0xC3, 0x0D
e assim por diante.
Quando o TED recebe o comando 0x07 do Host, os últimos dados recebidos da balança após o comando ENQ ( 0x05) são enviado para o Host no formato: 0x01, 0x00, 0x01, NB, D0, D1, D2,…,DN. Como descrito em b.6

CONSIDERAÇÕES SOBRE BUSCA DE IP : Para que o TED (cliente) se conecte ao micro (servidor) ele precisa descobrir primeiro o IP do micro. Ele faz isto automaticamente da seguinte forma: ao ser ligado, o TED começa a enviar um pacote broadcast de 2 em 2 segundos na porta 55555 em UDP. O micro que está rodando o software+DLL recebe este pacote (o broadcast chega em todos os dispositivos da rede). Então o micro analisa o pacote e descobre o IP de origem (ou seja o IP do TED). Em seguida o micro envia um pacote para o TED contendo o seguinte dado na porta 08 em UDP: 00 00 09 ‘Conectado]’ (os bytes estão em hexadecimal).
Desta forma, o TED ‘descobre’ o IP do micro ao receber este pacote e se conecta à ele. Daí para frente o TED usará a porta 8 em UDP para se comunicar com o micro.

CONSIDERAÇÕES SOBRE ROLAMENTO DO DISPLAY AO RECEBER MENSAGENS : Quando uma primeira mensagem é enviada para o display do TED1000 (comando 01), a mensagem inicial COLLETER TED1000 se apaga e a mensagem aparece na primeira coluna da última linha (obs: a mensagem recebida do micro nunca pode ser apagada pelo backspace. O backspace só consegue apagar dados digitados no teclado). A partir deste momento, se o usuário digitar alguma coisa no teclado (123, por exemplo) os dados começam a aparecer na mesma linha da mensagem recebida, (à direita do último caractere recebido).Aí sim, o backspace é capaz de apagar os dígitos teclados (3, 2, 1). Se o usuário enviar uma nova mensagem para o display (em vez de digitar, se ele eviar uma segunda mensagem com o comando 01), a nova mensagem fará o display rolar para cima , aparecendo então na primeira coluna da segunda linha. Se for enviada uma mensagem vazia (sem dados) para o display pelo comando 01, o cursor deve cair na primeira coluna da próxima linha, rolando os dados anteriores do display para cima.
Mensagens maiores ou iguais a 16 caracteres:
Se for enviada para o display uma mensagem de exatamente 16 caracteres, o cursor irá parar exatamente na primeira coluna da segunda linha pois será feita a rolagem de 1 linha para cima (a mensagem acaba ficando na primeira linha !). Neste caso, se o usuário digitar algo no teclado, irá aparecer na segunda linha – primeira coluna. Esta regra vale para qualquer caso de mais de 16 caracteres. Por exemplo: enviando uma mensagem de 17 caracteres, o display rola para cima, ficando a mensagem na primeira linha e mais um único caracter (final da mensagem) na segunda linha. A partir daí, se o usuário digitar algo no teclado, aparecerá na segunda coluna da segunda linha (abaixo da mensagem recebida).
CONSIDERAÇÕES SOBRE A TECLA DE CORREÇÃO BACKSPACE : O TED possui no teclado a tecla usada como backspace.
Durante a digitação , se houver algum erro, pode-se pressiona-la para apagar o que foi digitado. Uma vez pressionada a linha inteira que foi digitada é apagada , sendo necessária a digitação do código correto novamente.
Dica para testes: toda esta comunicação pode ser facilmente verificada com o auxílio de um TED para testes, com o programa de testes da Colleter e com o programa analisador de protocolo “Wireshark”
Importante: pode acontecer de alguém desligar o TED (ou o micro) em algum momento e religá-lo de novo. Por isto é importante que o TED fique sempre enviando este pacote broadcast de 2 em 2 segundos pois, se a conexão for quebrada, ela volta a conectar automaticamente.