Вы находитесь на странице: 1из 5

Documentao das DLLS de comunicao com Microterminais

Para que um programa Windows instalado em um microcomputador PC consiga enviar comandos e receber dados dos MICROTEMINAIS, se faz necessrio o uso de algumas tcnicas e de alguns arquivos especiais chamados "DLLs". Dependendo de como foi feita a conexo entre microterminal e PC existir uma "DLL" mais indicada, segue abaixo uma relao de quais devero 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 devero estar na mesma pasta do executvel que ir controlar os microterminais, este manual apresenta resumidamente todas as funes disponveis nas "DLLs" Ger_485.dll, USB_485.dll e TCPTerm.dll. A) FUNO DE CONFIGURAO E INICIALIZAO DA INTERFACE PARALELA. Esta funo somente surtir efeito na "Ger_485.dll".
ConfigLpt(Endereco, Timeout) Inicializa e configura a INTERFACE PARALELA e informa para a DLL qual o endereo da porta paralela que o computador PC estar usando para se comunicar com a INTERFACE PARALELA. Parmetros: Endereo ( 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 inicializao

B) FUNES ESPECFICAS PARA O DISPLAY Dll_PosCur(Terminal, Lin, Col) Posiciona o cursor do Microterminal na posio 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:

Dll_Display(Terminal, Dado) Escreve uma string no Display: C) FUNO DE LEITURA DE UM CARACTER DO BUFFER DO MICROTERMINAL Dll_Get(Terminal) Retorno: 0 - Caso no haja dados no buffer Cdigo ASCII do Dado - Caso haja dado(s) no buffer.

O buffer uma rea de armazenamento de vrias entradas do microterminal: teclado, leitor de cdigo de barras, leitor de carto magntico, porta serial e teclado externo.

D) FUNES DE ENVIO DE DADOS PARA AS SADAS 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 execuo do comando para cada caracter escrito na porta do microterminal. Retorno: 1 - Caracter escrito com sucesso 0 - 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) FUNO DE LEITURA DO ESTADO DE UM DETERMINADO MICROTERMINAL Dll_Status(Terminal) Retorno: Byte de status do microterminal bits: 0 e 1: Modelo do teclado 00 - Teclado 16 teclas 10 - Teclado QWERTY 11 - Teclado Numrico bit 2: Reservado bit 3: 0 - CTS alto (porta serial livre para escrever) 1 - CTS baixo (porta serial ocupada) bit 4: Reservado bit 5: 0 - Busy baixo (porta paralela livre para escrever) 1 - Busy alto (porta paralela ocupada) bit 6: Reservado bit 7: Reservado

FUNES AVANADAS (SOMENTE PARA OS TERMINAIS RS485)


F1) - FUNO 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, no possui nenhum conector externo). F2) - FUNO PARA MONITORAR NMERO DE RESETS DA INTERFACE PARALELA
Dll_LogReset

F3) - FUNO QUE INFORMA O NMERO DE VEZES QUE UM MICROTERMINAL NO RESPONDEU A UM COMANDO OU REQUISIO DE DADOS. Esta funo somente surtir efeito se o Terminal RS485 estiver equipado com "WatchDog".
Dll_LogTerminal(Terminal)

F4) - FUNO QUE INFORMA A VERSO DA DLL E O MODO DE FUNCIONAMENTO DA PARALELA DO PC ( EPP ou SPP ) Dll_Versao

F5) - FUNES PARA LER E ESCREVER DADOS EM MEMRIAS 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 memria externa conectada em qualquer um dos dois microcontroladores existentes na placa interna do microterminal RS485. Function Dll_LeituraMemExt(Terminal:Byte;Endereco,Local:Integer):Integer L um byte de numa memria externa conectada em qualquer um dos dois microcontroladores existentes na placa interna do microterminal RS485. Parmetros: Terminal - Endereo do terminal Endereo - Endereo de escrita na memoria Dado - Dado de escrita Local - Em qual Memria que ser armazenado o dado: MCU A ou MCU B 0 - Para "master" 1 - Para "slave" Obs: O endereo da memria para o "master" pode ser de at um byte ou seja 255 posies J o endereo para o "slave" pode ser de dois bytes ou seja 65535 posies. ============================================================

EXEMPLOS
Todos os exemplos so 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 Declarao das funes 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 Declarao das funes em VB Declare Function ConfigLpt Lib "Ger_485.dll" (ByVal Endereco As Integer, ByVal Timeout As Integer) As Boolean Declare 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 String Declare Function Dll_Status Lib "Ger_485.dll" (ByVal Terminal As Byte) As Byte Declare Function Dll_Print Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String) As Byte Declare Function Dll_Serial Lib "Ger_485.dll" (ByVal Terminal As Byte, ByVal Dado As String) As Byte Declare 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 Integer Declare Sub Teste_Escrita Lib "Ger_485.dll" (ByVal Str As String) Declare Function Teste_Leitura Lib "Ger_485.dll" ( ) As String Exemplo de Declarao das funes 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;

__declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport) __declspec(dllimport)

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

Вам также может понравиться