LER PESO BALANÇA TOLEDO COM EXEMPLO NÃO ABRE PORTA
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....
'no modulo
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
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
Alterado em 06/12/2023 22:37:38
Utilizo essas dll, não registro, só deixo na mesma pasta do .exe
no modulo
chamada
Abrir Conexão
Pesar
Encerra conexão
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
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
Porta=1
Velocidade=0
DataBits=0
Paridade=0
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!
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!
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
tive uma dificuldade com uma balança que agora não lembro o fabricante, no fim era a pinagem do cabo que era diferente
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
segue
Deu certo, esqueci de fechar o topico... OBg 3SLUIS
Tópico encerrado , respostas não são mais permitidas