5
Documentação das DLLS de comunicação com Microterminais Para que um programa Windows® instalado em um microcomputador PC consiga enviar comandos e receber dados dos MICROTEMINAIS, se faz necessário o uso de algumas técnicas e de alguns arquivos especiais chamados "DLLs". Dependendo de como foi feita a conexão entre microterminal e PC existirá uma "DLL" mais indicada, segue abaixo uma relação de quais deverão ser usadas em cada caso. a) Microterminal RS485 conectado ao PC via interface paralela: "Ger_485.dll" e "Lpt.dll" b) Microterminal RS485 conectados ao PC via interface USB: "USB_485.dll" c) Microterminal TCP-IP conectados ao PC via placa de rede: "TCPTerm.dll" e "ConfigTCPTerm.ini" Os 5 arquivos citados deverão estar na mesma pasta do executável que irá controlar os microterminais, este manual apresenta resumidamente todas as funções disponíveis nas "DLLs" Ger_485.dll, USB_485.dll e TCPTerm.dll. A) FUNÇÃO DE CONFIGURAÇÃO E INICIALIZAÇÃO DA INTERFACE PARALELA. Esta função somente surtirá efeito na "Ger_485.dll". ConfigLpt(Endereco, Timeout) Inicializa e configura a INTERFACE PARALELA e informa para a DLL qual é o endereço da porta paralela que o computador PC estará usando para se comunicar com a INTERFACE PARALELA. Parâmetros: Endereço ( em hexadecimal: LPT1 = 0378; LPT2 = 0278; LPT3 =03BC ) nTimeOut ( em decimal deverá ser de 0 a 254 ) Retorno: Integer = 1 se a INTERFACE PARALELA foi inicializada com sucesso Integer = 0 se a INTERFACE PARALELA falhou na inicialização B) FUNÇÕES ESPECÍFICAS PARA O DISPLAY Dll_PosCur(Terminal, Lin, Col) Posiciona o cursor do Microterminal na posição indicada por Lin, Col. Onde Lin pode variar de 0 até 1 e Col pode variar de 0 até 39. Dll_Clear(Terminal) Apaga o Display: Dll_Echo(Terminal, Dado) Escreve um caracter no Display:

Manual Da DLL

Embed Size (px)

Citation preview

Page 1: Manual Da DLL

Documentação das DLLS de comunicação com MicroterminaisPara que um programa Windows® instalado em um microcomputador PC consiga enviar

comandos e receber dados dos MICROTEMINAIS, se faz necessário o uso de algumas técnicas e de alguns arquivos especiais chamados "DLLs". Dependendo de como foi feita a conexão entre microterminal e PC existirá uma "DLL" mais indicada, segue abaixo uma relação de quais deverão ser usadas em cada caso.

a) Microterminal RS485 conectado ao PC via interface paralela:

"Ger_485.dll" e "Lpt.dll"

b) Microterminal RS485 conectados ao PC via interface USB:

"USB_485.dll"

c) Microterminal TCP-IP conectados ao PC via placa de rede:

"TCPTerm.dll" e "ConfigTCPTerm.ini"

Os 5 arquivos citados deverão estar na mesma pasta do executável que irá controlar os microterminais, este manual apresenta resumidamente todas as funções disponíveis nas "DLLs" Ger_485.dll, USB_485.dll e TCPTerm.dll.

A) FUNÇÃO DE CONFIGURAÇÃO E INICIALIZAÇÃO DA INTERFACE PARALELA.

Esta função somente surtirá efeito na "Ger_485.dll".

ConfigLpt(Endereco, Timeout)Inicializa e configura a INTERFACE PARALELA e informa para a DLL qual é o endereço da porta paralela que o computador PC estará usando para se comunicar com a INTERFACE PARALELA.

Parâmetros:Endereço ( em hexadecimal: LPT1 = 0378; LPT2 = 0278; LPT3 =03BC )nTimeOut ( em decimal deverá ser de 0 a 254 )

Retorno:Integer = 1 se a INTERFACE PARALELA foi inicializada com sucessoInteger = 0 se a INTERFACE PARALELA falhou na inicialização

B) FUNÇÕES ESPECÍFICAS PARA O DISPLAY

Dll_PosCur(Terminal, Lin, Col)Posiciona o cursor do Microterminal na posição indicada por Lin, Col. Onde Lin pode variar de 0 até 1 e Col pode variar de 0 até 39.

Dll_Clear(Terminal)Apaga o Display:

Dll_Echo(Terminal, Dado)Escreve um caracter no Display:

Page 2: Manual Da DLL

Dll_Display(Terminal, Dado)Escreve uma string no Display:

C) FUNÇÃO DE LEITURA DE UM CARACTER DO BUFFER DO MICROTERMINAL

Dll_Get(Terminal)

Retorno: 0 - Caso não haja dados no bufferCódigo ASCII do Dado - Caso haja dado(s) no buffer.

O buffer é uma área de armazenamento de várias entradas do microterminal: teclado, leitor de código de barras, leitor de cartão magnético, porta serial e teclado externo.

D) FUNÇÕES DE ENVIO DE DADOS PARA AS SAÍDAS SERIAL E PARALELA DO MICROTERMINAL

Para enviarmos dados para as interfaces serial ou paralela dos microterminais, deveremos fazê-lo caracter a caracter, efetuando uma checagem do status de envio de cada caracter. O programa deverá verificar o sucesso da execução do comando para cada caracter escrito na porta do microterminal.

Retorno: 1 - Caracter escrito com sucesso0 - Falha na escrita do caracter. Ele deve ser escrito novamente.

Dll_Print(Terminal, Dado)Envia um caracter para a porta Paralela do microterminal desejado.

Dll_Serial(Terminal, Dado)Envia um caracter para a porta Paralela do microterminal desejado.

E) FUNÇÃO DE LEITURA DO ESTADO DE UM DETERMINADO MICROTERMINAL

Dll_Status(Terminal)

Retorno: Byte de status do microterminal

bits: 0 e 1: Modelo do teclado00 - Teclado 16 teclas10 - Teclado QWERTY11 - Teclado Numérico

bit 2: Reservadobit 3: 0 - CTS alto (porta serial livre para escrever)

1 - CTS baixo (porta serial ocupada)bit 4: Reservadobit 5: 0 - Busy baixo (porta paralela livre para escrever)

1 - Busy alto (porta paralela ocupada)bit 6: Reservadobit 7: Reservado

Page 3: Manual Da DLL

FUNÇÕES AVANÇADAS (SOMENTE PARA OS TERMINAIS RS485)

F1) - FUNÇÃO PARA ESCREVER NO PORTO INTERNO DO TERMINAL

Dll_Aciona(Terminal, Dado)Escreve na porta de Acionamento (esta porta está localizada na placa interna do microterminal RS485, não possui nenhum conector externo).

F2) - FUNÇÃO PARA MONITORAR NÚMERO DE RESETS DA INTERFACE PARALELA

Dll_LogReset

F3) - FUNÇÃO QUE INFORMA O NÚMERO DE VEZES QUE UM MICROTERMINAL NÃO RESPONDEU A UM COMANDO OU REQUISIÇÃO DE DADOS.

Esta função somente surtirá efeito se o Terminal RS485 estiver equipado com "WatchDog".

Dll_LogTerminal(Terminal)

F4) - FUNÇÃO QUE INFORMA A VERSÃO DA DLL E O MODO DE FUNCIONAMENTO DA PARALELA DO PC ( EPP ou SPP )

Dll_Versao

F5) - FUNÇÕES PARA LER E ESCREVER DADOS EM MEMÓRIAS EXTERNAS CONECTADAS AOS MICROCONTROLADORES DA PLACA DO MICROTERMINAL. (este recurso existe apenas nos microterminais RS485)

Procedure Dll_EscritaMemExt(Terminal:Byte;Endereco,Dado,Local:Integer)Escreve um byte em numa memória externa conectada em qualquer um dos dois microcontroladores existentes na placa interna do microterminal RS485.

Function Dll_LeituraMemExt(Terminal:Byte;Endereco,Local:Integer):IntegerLê um byte de numa memória externa conectada em qualquer um dos dois microcontroladores existentes na placa interna do microterminal RS485.

Parâmetros:Terminal - Endereço do terminalEndereço - Endereço de escrita na memoriaDado - Dado de escritaLocal - Em qual Memória que será armazenado o dado: MCU A ou MCU B

0 - Para "master" 1 - Para "slave"Obs: O endereço da memória para o "master" pode ser de até um byte ou seja 255 posições

Já o endereço para o "slave" pode ser de dois bytes ou seja 65535 posições.

============================================================

Page 4: Manual Da DLL

EXEMPLOS

Todos os exemplos são para o uso da "Ger_485.dll" ( dll que serve para controlar microterminais RS485 conectados no PC via Interface paralela), para se fazer uso das outras DLLs basta substituir o nome "Ger_485.dll" que aparece nos exemplos abaixo por "TCPTerm.dll" ou "USB_485.dll" dependendo de qual DLL se deseja usar.

Exemplo de Declaração das funções em Delphi

function ConfigLpt(Endereco, Timeout: Word): Boolean; stdcall; external 'Ger_485.dll';procedure Dll_PosCur(Terminal, Lin, Col: Byte); stdcall; external 'Ger_485.dll';procedure Dll_Clear(Terminal: Byte); stdcall; external 'Ger_485.dll';procedure Dll_Echo(Terminal: Byte; Dado: Char); stdcall; external 'Ger_485.dll';procedure Dll_Display(Terminal: Byte; Dado: string); stdcall; external 'Ger_485.dll';procedure Dll_Aciona(Terminal, Dado: Byte); stdcall; external 'Ger_485.dll';function Dll_Get(Terminal: Byte): Char; stdcall; external 'Ger_485.dll';function Dll_Status(Terminal: Byte): Byte; stdcall; external 'Ger_485.dll';function Dll_Print(Terminal: Byte; Dado: Char): Byte; stdcall; external 'Ger_485.dll';function Dll_Serial(Terminal: Byte; Dado: Char): Byte; stdcall; external 'Ger_485.dll';function Dll_Acesso(Cmd: string): Integer; stdcall; external 'Ger_485.dll';procedure Teste_Escrita(Str: string); stdcall; external 'Ger_485.dll';function Teste_Leitura: string; stdcall; external 'Ger_485.dll';Function Dll_Versao:PChar; stdcall; external 'Ger_485.dll';Function Dll_LogTerminal(Terminal:Byte):Integer; stdcall; external 'Ger_485.dll';Function Dll_LogReset:Integer;stdcall; external 'Ger_485.dll';Procedure Dll_EscritaMemExt(Terminal:Byte;Endereco,Dado,Local:Integer);stdcall; external 'Ger_485.dll';Function Dll_LeituraMemExt(Terminal:Byte;Endereco,Local:Integer):Integer;stdcall; external 'Ger_485.dll';

Exemplo de Declaração das funções em VB

Declare Function ConfigLpt Lib "Ger_485.dll" (ByVal Endereco As Integer, ByVal Timeout As Integer) As BooleanDeclare Sub Dll_Echo Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String)Declare Sub Dll_Display Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String)Declare Function Dll_Get Lib "Ger_485.dll" (ByVal Terminal As Byte) As StringDeclare Function Dll_Status Lib "Ger_485.dll" (ByVal Terminal As Byte) As ByteDeclare Function Dll_Print Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String) As ByteDeclare Function Dll_Serial Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String) As ByteDeclare Sub Dll_Aciona Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As Byte)Declare Sub Dll_Clear Lib "Ger_485.dll" (ByVal Terminal As Byte)Declare Sub Dll_PosCur Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Lin As Byte, ByVal Col As Byte)Declare Function Dll_Acesso Lib "Ger_485.dll" (ByVal Cmd As String) As IntegerDeclare Sub Teste_Escrita Lib "Ger_485.dll" (ByVal Str As String)Declare Function Teste_Leitura Lib "Ger_485.dll" ( ) As String

Exemplo de Declaração das funções em C/C++

__declspec(dllimport) Bool ConfigLpt(word Endereco, Timeout); stdcall;__declspec(dllimport) void Dll_PosCur(byte Terminal, Lin, Col); stdcall;__declspec(dllimport) void Dll_Clear(byte Terminal); stdcall;

Page 5: Manual Da DLL

__declspec(dllimport) void Dll_Echo(byte Terminal, char Dado); stdcall;__declspec(dllimport) void Dll_Display(byte Terminal, char* Dado); stdcall;__declspec(dllimport) void Dll_Aciona(byte Terminal, Dado); stdcall;__declspec(dllimport) char Dll_Get(byte Terminal); stdcall;__declspec(dllimport) byte Dll_Status(byte Terminal); stdcall;__declspec(dllimport) byte Dll_Print(byte Terminal, char Dado); stdcall;__declspec(dllimport) byte Dll_Serial(byte Terminal, char Dado); stdcall;__declspec(dllimport) int Dll_Acesso(char* Cmd); stdcall;__declspec(dllimport) Teste_Escrita(char* Str); stdcall;__declspec(dllimport) char* Teste_Leitura(void); stdcall;