LER PESO BALANÇA TOLEDO COM EXEMPLO NÃO ABRE PORTA

WMR2018 01/12/2023 22:37:15
#501902
Alterado em 01/12/2023 22:41:32 Boa noite pessoal,

Tenho um cliente que comprou uma balança TOLEDO PRIX 8217.
Encontrei na internet um arquivo compactado que possui 3 executáveis e 3 projetos em linguagens VB, Cliper e Delphi.
Vem com as 3 dll da Toledo...

Balança configurada na COM 1 tudo certinho...
No EXE fechado abre a porta normal, ler o peso normal e fecha a porta normal.

No projeto de exemplo que veio, executo ele e dar erro ao abrir a porta... ele não encontra
Não modifiquei nada, só abrir e executei

Código pequeno....
' Exemplo teste em VB 6.0 - É importante lembrar que as duas
' Dlls devem estar localizadas em ..\Windows\System
Dim Retorno As Long
Dim Peso As String * 5

Private Sub btnAbrir_Click(Index As Integer)
'O 1o. parametro e a Porta Com. O 2o. é o BaudRate
Retorno = AbrePorta(1, 0, 0, 2)
If Retorno = 1 Then
Retorno = MsgBox("Abriu!", vbOKOnly, "P05 - VB", 0, 0)
Else
Retorno = MsgBox("Erro!", vbOKOnly, "P05 - VB", 0, 0)
End If
End Sub

Private Sub btnFechar_Click(Index As Integer)
'O parametro passado e a Porta Com
Retorno = FechaPortaP05()
If Retorno = 1 Then
Retorno = MsgBox("Fechou!", vbOKOnly, "P05 - VB", 0, 0)
lbPeso.Caption = ""
Else
Retorno = MsgBox("Erro!", vbOKOnly, "P05 - VB", 0, 0)
End If
End Sub

Private Sub btnPeso_Click(Index As Integer)
'O Parametro passado e o peso lido
Retorno = PegaPeso(0, Peso, "C:\")
If Retorno = 1 Then
lbPeso.Caption = Peso
Else
lbPeso.Caption = "Erro"
End If
End Sub

Private Sub Form_Initialize()
Dim Ver As String * 4
VersaoDLL (Ver)
Caption = "Toledo Easylink - P05_P05A: Exemplo em Visual Basic - V. " & Ver
End Sub

Private Sub Form_Terminate()
Retorno = FechaPorta()
End Sub


'no modulo
Declare Function PegaPeso Lib "P05.DLL" (ByVal OpcaoEscrita As Long, ByVal Peso As String, ByVal Diretorio As String) As Long
Declare Function AbrePorta Lib "P05.DLL" (ByVal Porta As Long, ByVal BaudRate As Long, ByVal DataBits As Long, ByVal Paridade As Long) As Long
Declare Function FechaPorta Lib "P05.DLL" () As Long
Declare Function FechaPortaP05 Lib "P05.DLL" () As Long
Declare Sub VersaoDLL Lib "P05.DLL" (ByVal Versao As String)
Declare Function DeterminaUmStopBit Lib "P05.DLL" () As Long


Coloquei as DLL na pasta do projeto, no System32 e SysWOW64

Porem no projeto fechado EXE tudo funcionando e no mesmo projeto aberto... não abre a porta... retorno = 0 (zero)

as dll que acompanha são: P05.dll, cp3240mt.dll e borlndmm.dll

3SLUIS 06/12/2023 22:35:32
#501932
Alterado em 06/12/2023 22:37:38 Utilizo essas dll, não registro, só deixo na mesma pasta do .exe

no modulo
  Declare Function PegaPeso Lib "P05.DLL" (ByVal OpcaoEscrita As Long, ByVal Peso As String, ByVal Diretorio As String) As Long
Declare Function AbrePorta Lib "P05.DLL" (ByVal Porta As Long, ByVal BaudRate As Long, ByVal DataBits As Long, ByVal Paridade As Long) As Long
Declare Function FechaPorta Lib "P05.DLL" () As Long
Declare Function FechaPortaP05 Lib "P05.DLL" () As Long
Declare Sub VersaoDLL Lib "P05.DLL" (ByVal Versao As String)
Declare Function DeterminaUmStopBit Lib "P05.DLL" () As Long


chamada
 Call AbreConexao
Call Pesar
Call fechaConexao


Abrir Conexão
  Private Function AbreConexao()
On Error Resume Next
Retorno = AbrePorta(Val(strPorta), Val(strVelocidade), Val(strDataBits), Val(strParidade))
If Retorno <> 1 Then
'MsgBox "erro ao abrir comunicação com a balança"
End If
End Function


Pesar

  Private Function Pesar()
On Error Resume Next

Retorno = PegaPeso(0, Peso, "C:")
If Retorno = 1 Then
If Peso = "SSSSS" Then
MsgBox "SOBRE PESO NA BALANÇA", vbInformation
ElseIf Peso = "IIIII" Or Peso = "00000" Then
Pesar
Else
TXTvalor.text = Val(Mid(Peso, 1, 2)) & "," & Mid(Peso, 3)
End If
End If

End Function


Encerra conexão
  Private Function fechaConexao()
On Error Resume Next
Retorno = FechaPorta()

End Function
3SLUIS 06/12/2023 22:39:54
#501933
Alterado em 06/12/2023 22:40:13 a balança que uso é uma prix3 com essa configuração:
Porta=1
Velocidade=0
DataBits=0
Paridade=0
WMR2018 08/12/2023 23:36:57
#501939
Amigo, funcionou perfeitamente... deu tudo certo! me ajudou demais, obg!

Vc tem alguma solução para leitura da balança Balmak... caso precise, posso até lhe pagar pelo codigos/dll para poder ler o peso dela!
3SLUIS 11/12/2023 09:24:10
#501941
acredito que essa mesma solução atenda, verificou se a pinagem do cabo RS-232 está correta?
tive uma dificuldade com uma balança que agora não lembro o fabricante, no fim era a pinagem do cabo que era diferente
LOHANNPELEGRINOMED 07/05/2024 10:22:20
#503317
Olá, eu também gostaria de aplicar esse código, porém consegui. Eu tenho uma balança toledo prix 3Fit, precisaria que o valor da pesagem paracesse em um text box. Eu não consegui conectar com as funções que estão no dll, pode me enviar esses arquivos ? Outra coisa, funciona em windows 64 bits ? Desde já agradeço muito
3SLUIS 17/05/2024 11:50:41
#503334
segue
Faça seu login para responder