Boas Srs....
alguém já conseguiu conectar uma balança toledo atraves da Dll PcLink6 no forms.
Eu escrevi a Pll com as chamadas da Dll, porém não consigo conectar na balança.
Se alguém tiver alguma dica ou a solução, agradeço!
[]'s
DLL PCLINK6 NO FORMS (BALANÇA TOLEDO)
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Ter, 08 Jan 2008 8:33 am
- Localização: SP
Adriano Barone
É a PCLINK6.DLL, foi comprada na Toledo do Brasil, junto com a HardKey para funcionar a leitura.
O programa de testes deles (feito em Delfhi e outro VB) funcionam, eles conseguem conectar e buscar o peso da balança, porém no forms, não consigo nem conectar....
Obrigado.
O programa de testes deles (feito em Delfhi e outro VB) funcionam, eles conseguem conectar e buscar o peso da balança, porém no forms, não consigo nem conectar....
Obrigado.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Tem como você postar aqui, a chamada que você está fazendo desta DLL?
Fica mais fácil pra podermos ajudá-lo.
Tem como você postar aqui, a chamada que você está fazendo desta DLL?
Fica mais fácil pra podermos ajudá-lo.
-
- Rank: Estagiário Sênior
- Mensagens: 9
- Registrado em: Ter, 08 Jan 2008 8:33 am
- Localização: SP
Adriano Barone
Ok, vamos lá...
A function que conecta na balança (segundo o manual) é a W9091Serial, eu passo o número da porta serial, e esta function deveria retornar um outro número (>0) que seria o "canal" (o parâmetro para todas as outras functions).
Este código encontra-se em uma pll.
Muito obrigado.
A function que conecta na balança (segundo o manual) é a W9091Serial, eu passo o número da porta serial, e esta function deveria retornar um outro número (>0) que seria o "canal" (o parâmetro para todas as outras functions).
Este código encontra-se em uma pll.
Muito obrigado.
Package MsvToledo Is
Dll_File$ Ora_Ffi.LibHandleType;
DLL_Name$ VarChar2(2000) := 'PCLINK6.DLL';
DLL_Path$ VarChar2(2000) := 'C:\WINNT\SYSTEM32\';
ErrorNumber$ VarChar2(2000);
ErrorDescription$ VarChar2(2000);
Function W9091Serial(Porta_Com$ In Pls_Integer) Return Number;
Function Select_Canal(Canal$ In Pls_Integer) Return Number;
Function Update_Canal(Canal$ In Pls_Integer) Return Number;
Function Gross_Canal(Canal$ In Pls_Integer) Return Number;
Function Tare_Canal(Canal$ In Pls_Integer) Return Number;
Function Net_Canal(Canal$ In Pls_Integer) Return Number;
End;
Package Body MsvToledo Is
FH_W9091Serial$ Ora_Ffi.FuncHandleType;
FH_Select_Canal$ Ora_Ffi.FuncHandleType;
FH_Update_Canal$ Ora_Ffi.FuncHandleType;
FH_Gross_Canal$ Ora_Ffi.FuncHandleType;
FH_Tare_Canal$ Ora_Ffi.FuncHandleType;
FH_Net_Canal$ Ora_Ffi.FuncHandleType;
DllError$ Exception;
Error01$ VarChar2(3) := '001';
ErrorMessage01$ VarChar2(100):= 'Erro na Abertura de ' || Dll_Path$ || DLL_Name$;
Error02$ VarChar2(3) := '002';
ErrorMessage02$ VarChar2(100):= 'Erro W9091Serial';
Error03$ VarChar2(3) := '003';
ErrorMessage03$ VarChar2(100):= 'Erro Select_Canal';
Error04$ VarChar2(3) := '004';
ErrorMessage04$ VarChar2(100):= 'Erro Update_Canal';
Error05$ VarChar2(3) := '005';
ErrorMessage05$ VarChar2(100):= 'Erro Gross_Canal';
Error06$ VarChar2(3) := '006';
ErrorMessage06$ VarChar2(100):= 'Erro Tare_Canal';
Error07$ VarChar2(3) := '007';
ErrorMessage07$ VarChar2(100):= 'Erro Net_Canal';
------------------------------------------------------------------------------------
--------------------------- Interface com a DLL
------------------------------------------------------------------------------------
Function FF_W9091Serial(FuncHandle$ In Ora_Ffi.FuncHandleType,
Porta_Com$ In Pls_Integer) Return Return Number;
Pragma Interface(C, FF_W9091Serial, 11265);
Function FF_Select_Canal(FuncHandle$ In Ora_Ffi.FuncHandleType,
Canal$ In Pls_Integer) Return Number;
Pragma Interface(C, FF_Select_Canal, 11265);
Function FF_Update_Canal(FuncHandle$ In Ora_Ffi.FuncHandleType,
Canal$ In Pls_Integer) Return Number;
Pragma Interface(C, FF_Update_Canal, 11265);
Function FF_Gross_Canal(FuncHandle$ In Ora_Ffi.FuncHandleType,
Canal$ In Pls_Integer) Return Number;
Pragma Interface(C, FF_Gross_Canal, 11265);
Function FF_Tare_Canal(FuncHandle$ In Ora_Ffi.FuncHandleType,
Canal$ In Pls_Integer) Return Number;
Pragma Interface(C, FF_Tare_Canal, 11265);
Function FF_Net_Canal(FuncHandle$ In Ora_Ffi.FuncHandleType,
Canal$ In Pls_Integer) Return Number;
Pragma Interface(C, FF_Net_Canal, 11265);
------------------------------------------------------------------------------------
--------------------------- Funções para o FORMS
------------------------------------------------------------------------------------
--- W9091Serial
Function W9091Serial(Porta_Com$ In Pls_Integer,
Erro$ Out Varchar2) Return Number
Is
Canal$ Number;
Begin
Canal$ := FF_W9091Serial(FH_W9091Serial$,
Porta_Com$);
Return (Canal$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.W9091Serial - COM ' || Porta_Com$ || ' -> ' || tool_err.message;
Erro$ := ErrorDescription$;
Return Null;
End W9091Serial;
--- Select_Canal
Function Select_Canal(Canal$ In Pls_Integer) Return Number
Is
Retorno$ Number;
Begin
Retorno$ := FF_Select_Canal(FH_Select_Canal$,
Canal$);
Return (Retorno$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.Select_Canal - Canal ' || Canal$ || ' - ' || SqlErrm;
Return Null;
End Select_Canal;
--- Update_Canal
Function Update_Canal(Canal$ In Pls_Integer) Return Number
Is
Retorno$ Number;
Begin
Retorno$ := FF_Update_Canal(FH_Update_Canal$,
Canal$);
Return (Retorno$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.Update_Canal - Canal ' || Canal$ || ' - ' || SqlErrm;
Return Null;
End Update_Canal;
--- Gross_Canal
Function Gross_Canal(Canal$ In Pls_Integer) Return Number
Is
Retorno$ Number;
Begin
Retorno$ := FF_Gross_Canal(FH_Gross_Canal$,
Canal$);
Return (Retorno$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.Gross_Canal - Canal ' || Canal$ || ' - ' || SqlErrm;
Return Null;
End Gross_Canal;
--- Tare_Canal
Function Tare_Canal(Canal$ In Pls_Integer) Return Number
Is
Retorno$ Number;
Begin
Retorno$ := FF_Tare_Canal(FH_Tare_Canal$,
Canal$);
Return (Retorno$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.Tare_Canal - Canal ' || Canal$ || ' - ' || SqlErrm;
Return Null;
End Tare_Canal;
--- Net_Canal
Function Net_Canal(Canal$ In Pls_Integer) Return Number
Is
Retorno$ Number;
Begin
Retorno$ := FF_Net_Canal(FH_Net_Canal$,
Canal$);
Return (Retorno$);
RETURN NULL; Exception
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := 'MsvToledo.Net_Canal - Canal ' || Canal$ || ' - ' || SqlErrm;
Return Null;
End Net_Canal;
------------------------------------------------------------------------------------
--------------------------- Inicializa DLL
------------------------------------------------------------------------------------
Begin
Begin
Dll_File$ := Ora_Ffi.Load_Library(DLL_Path$,DLL_Name$);
Exception
When Others Then
ErrorNumber$ := Error01$;
ErrorDescription$ := ErrorMessage01$;
Raise DllError$;
End;
--FH_W9091Serial
Begin
FH_W9091Serial$ := Ora_Ffi.Register_Function(Dll_File$,'W9091Serial',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_W9091Serial$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_W9091Serial$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error02$;
ErrorDescription$ := ErrorMessage02$;
Raise DllError$;
End;
--FH_Select_Canal
Begin
FH_Select_Canal$ := Ora_Ffi.Register_Function(Dll_File$,'Select_Canal',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Select_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Select_Canal$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error03$;
ErrorDescription$ := ErrorMessage03$;
Raise DllError$;
End;
--FH_Update_Canal
Begin
FH_Update_Canal$ := Ora_Ffi.Register_Function(Dll_File$,'Update_Canal',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Update_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Update_Canal$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error04$;
ErrorDescription$ := ErrorMessage04$;
Raise DllError$;
End;
--FH_Gross_Canal
Begin
FH_Gross_Canal$ := Ora_Ffi.Register_Function(Dll_File$,'Gross_Canal',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Gross_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Gross_Canal$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error05$;
ErrorDescription$ := ErrorMessage05$;
Raise DllError$;
End;
--FH_Tare_Canal
Begin
FH_Tare_Canal$ := Ora_Ffi.Register_Function(Dll_File$,'Tare_Canal',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Tare_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Tare_Canal$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error06$;
ErrorDescription$ := ErrorMessage06$;
Raise DllError$;
End;
--FH_Net_Canal
Begin
FH_Net_Canal$ := Ora_Ffi.Register_Function(Dll_File$,'Net_Canal',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Net_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_LONG);
Exception
When Others Then
ErrorNumber$ := Error07$;
ErrorDescription$ := ErrorMessage07$;
Raise DllError$;
End;
--FirVer
Begin
FH_FirVer$ := Ora_Ffi.Register_Function(Dll_File$,'FirVer',Ora_Ffi.C_STD);
Ora_Ffi.Register_Return(FH_Net_Canal$, Ora_Ffi.C_INT);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_CHAR);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_CHAR);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_CHAR);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_CHAR);
Ora_Ffi.Register_Parameter(FH_Net_Canal$, Ora_Ffi.C_CHAR);
Exception
When Others Then
ErrorNumber$ := Error07$;
ErrorDescription$ := ErrorMessage07$;
Raise DllError$;
End;
Exception
When DllError$ Then
Message(ErrorNumber$ || ' - ' || ErrorDescription$);
Message(ErrorNumber$ || ' - ' || ErrorDescription$);
When Others Then
ErrorNumber$ := SqlCode;
ErrorDescription$ := SqlErrm;
Message(SqlCode || '-' || SqlErrm);
Message(SqlCode || '-' || SqlErrm);
End;
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Qua, 16 Jul 2008 4:52 pm
- Localização: são Paulo - SP
- Contato:
Adriano, bom dia
Você está tentando executar isso localmente? via client/server ?
Te pergunto isso pois aqui na empresa onde trabalho, utilizamos o Oracle Applications e hoje para ler o peso da balança é utilizado o sistema da Toledo, Guardian.
Surgiu a necessidade de integrar a leitura de peso dentro do sistema ERP.
porem o forms no nosso caso é executado pelo servidor, não existe client instalado no computador da balança.
também gostaria de pedir um auxilio para transformar a pclink6.dll em pll
Ou se puder me enviar essa library que você criou, vou fazer funcionar no client/server para depois jogar no servidor.Se isso não fuincionar, como ultimo recurso vamos criar uma classe Java compilada dentro da base de dados para fazer essa integração, mas não gostaria que chegasse a esse ponto.
Desde já Muito Obrigado
Belks
Você está tentando executar isso localmente? via client/server ?
Te pergunto isso pois aqui na empresa onde trabalho, utilizamos o Oracle Applications e hoje para ler o peso da balança é utilizado o sistema da Toledo, Guardian.
Surgiu a necessidade de integrar a leitura de peso dentro do sistema ERP.
porem o forms no nosso caso é executado pelo servidor, não existe client instalado no computador da balança.
também gostaria de pedir um auxilio para transformar a pclink6.dll em pll
Ou se puder me enviar essa library que você criou, vou fazer funcionar no client/server para depois jogar no servidor.Se isso não fuincionar, como ultimo recurso vamos criar uma classe Java compilada dentro da base de dados para fazer essa integração, mas não gostaria que chegasse a esse ponto.
Desde já Muito Obrigado
Belks
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Como não existe um micro ligado diretamente à balança, essa leitura deve obrigatóriamente ser realizada via IP, correto?
Caso seja isso, eu tenho os passos e tenho extrair as informações mais importantes e postar aqui pra vocês.
Como não existe um micro ligado diretamente à balança, essa leitura deve obrigatóriamente ser realizada via IP, correto?
Caso seja isso, eu tenho os passos e tenho extrair as informações mais importantes e postar aqui pra vocês.
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP
São Paulo/SP
Pessoal, beleza?
aproveitando um tópico antigo...
seguinte, vi vários tópicos sobre o assunto de configuração da balança Toledo para ser utilizada no Forms, mas sou leigo total no assunto e preciso agora fazer uma Toledo IND 780 funcionar no Oracle EBS R11!
quais os componentes são necessários para que isso seja possível, é preciso fazer setups no EBS?
o cliente tinha um modelo JundiaiSP2400 que funcionava e foi trocada pela Toledo, agora precisa ser reconfigurada mas não sabem como fazer.
pelas poucas (e confusas) anotações que vi, parece que fazem até referência a classe Java, isso realmente é necessário ou somente a DLL do fabricante?
pra ajudar, a balança está conectada em uma máquina no Mato Grosso (estou em SP), a DLL precisa estar local nessa máquina e somente seria possível realizar testes a partir desse computador?
enfim, se puderem me dar esclarecer melhor será uma boa ajuda.
valeu
aproveitando um tópico antigo...
seguinte, vi vários tópicos sobre o assunto de configuração da balança Toledo para ser utilizada no Forms, mas sou leigo total no assunto e preciso agora fazer uma Toledo IND 780 funcionar no Oracle EBS R11!
quais os componentes são necessários para que isso seja possível, é preciso fazer setups no EBS?
o cliente tinha um modelo JundiaiSP2400 que funcionava e foi trocada pela Toledo, agora precisa ser reconfigurada mas não sabem como fazer.
pelas poucas (e confusas) anotações que vi, parece que fazem até referência a classe Java, isso realmente é necessário ou somente a DLL do fabricante?
pra ajudar, a balança está conectada em uma máquina no Mato Grosso (estou em SP), a DLL precisa estar local nessa máquina e somente seria possível realizar testes a partir desse computador?
enfim, se puderem me dar esclarecer melhor será uma boa ajuda.
valeu
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes