Histórico da Página
Homologação Balança Toledo 9091
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Varejo | ||||
Módulo: | Controle de Lojas | ||||
Rotina: |
| ||||
Requisitos do Hardware: |
| ||||
País(es): | Brasil | ||||
Sistema(s) Operacional(is): | Windows | ||||
Fontes do Pacote: | LOJA121.PRW 31/08/2016 14:15:59 LOJXECF.PRX 31/08/2016 14:17:14 p05.dll borlndmm.dll cp3240mt.dll SIGALOJA.DLL - versão 0.3.140.4 testebalancatoledo.exe | ||||
Pacote: | TVVVVF.zip |
Descrição
Implementação no Cadastro de Estação (LOJA121) para seleção e uso da Balança Toledo 9091.
Importante
. Para utilização desse modelo de balança é necessário que a placa da balança seja Unidirecional On-Board (conforme informado em resquisitos de Hardware ) para que a comunicação com a DLL do protheus seja realizada com sucesso
. Utilize as DLLs da balança que estão no pacote desta ficha: P05.dll, Borlndmm.dll e cp3240.dll ; estas devem estar na pasta 'SmartClient' do ambiente
. Versão da DLL Fiscal SIGALOJA.DLL: 0.3.140.4 ; deve estar na pasta 'SmartClient' do ambiente
. Será possível via user function a comunicação com a balança , apenas utilizando a DLL SIGALOJA sem utilizar o módulo Controle de Lojas
. Aplicar o update UPDBALANCA : U_UPDBALANCA (caso necessário)
. Para teste de comunicação e verificação do retorno do peso entre Windows e DLL P05.dll, utilize o executável TesteBalancaToledo.exe (em anexo no pacote desta ficha)
. Configurar o arquivo SIGALOJA.INI:
[TOLEDO]
BaudRate= ____ ( Configurar aqui a velocidade de comunicação da porta de comunicação)
DataBits= __ ( Configurar aqui a quantidade de bits de paridade da porta de comunicação)
Parity= _ ( Configurar a paridade )
ATENÇÃO: Esta configuração é primordial para a comunicação com a balança.
Nome dos modelos presentes ( para customização ):
Toledo 9091
Toledo 9094
Toledo 8217
Sugestão de Configuração dos modelos (de acordo com os modelos testados em ambiente de desenvolvimento):
Modelo Toledo 9091
BaudRate= 9600
DataBits= 7
Parity= 2
Modelo Toledo 9094
BaudRate= 9600
DataBits= 8
Parity= 0
Possíveis tratativas para uso da balança:
1 - Emissão de Mensagem de "Peso Instavel". Como resolver?
Verifique a configuração do arquivo SIGALOJA.INI ( acima ), verificando se a velocidade, a paridade e a quantidade de bits.
Pode efetuar o teste utilizando o executável de teste para a balança. Em anexo nesse chamado : TesteBalancaToledo.exe
Procedimento para Utilização
Exemplo:
1. Insira as dlls desse pacote P05.dll, Borlndmm.dll,cp3240.dl e sigaloja.dll na pasta 'SmartClient' do ambiente
2. No Controle de Lojas (SIGALOJA), acesse Atualizações / Ponto de Venda / Estação (LOJA121).
3. Selecione o modelo de balança Toledo 9091.
4. Efetue venda pela rotina Venda Assistida (LOJA701) dos produtos que usem balança ou use de forma customizada.
5. Verifique que o peso do produto é capturado.
Comunicação Via User Function ( customização )
Atenção!
- Caso utilize o módulo Controle de Lojas e a balança estiver setada no cadastro de Estação (LOJA121) não utilize o trecho da customização que faz a abertura da porta pois ao acessar o Loja a abertura de comunicação com a balança é efetuada.
- Caso utilize o módulo seja diferente de Controle de Lojas ou Frente de Lojas , o parâmetro MV_AUTOCOM deve estar igual a zero ( 0 ).
- Não é necessário efetuar a abertura de comunicação a todo momento, efetua-se uma vez e assim chama-se somente a função de leitura do peso quantas vezes forem necessárias ( exemplo 2 )
Exemplo 1:
#include "protheus.ch"
User Function UsaBalanca()
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9091" //deve ser mandado exatamente este nome
Local cPeso := Space(8) //contem o peso que retorna da balança
Local lUsaBalan := .F.
Local lLeBalan := .T.
Local nRet := -1
Local nTentativa:= 1
Private nHdlBalan := -1
aBalanca := {cModelo,cPorta}
If !Empty(aBalanca[1]).AND. !Empty(aBalanca[2]) .AND. nHdlBalan == -1
//Abertura de comunicação com o equipamento
nHdlBalan := BalancaAbr(aBalanca[1],aBalanca[2])
lUsaBalan := nHdlBalan > 0
EndIf
If !lUsaBalan
Alert("Sem comunicação com a balanca " + aBalanca[1])
Else
Alert("Comunicação efetuada com sucesso")
While lLeBalan
nRet := BalancaPegaPeso(nHdlBalan,@cPeso)
If nRet <> 0
lLeBalan := .F.
EndIf
If lLeBalan
lLeBalan := NoRound(Val(cPeso),3 ) <> 0
EndIf
If !lLeBalan
If nTentativa > 3
Alert("Tentativas de leitura de peso excedidas")
Else
lLeBalan := .T.
nTentativa += 1
EndIf
EndIf
End
EndIf
If lUsaBalan
//Encerra a comunicação com o equipamento
BalancaFec(nHdlBalan,aBalanca[2])
nHdlBalan := -1
EndIf
Return lUsaBalan
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Exemplo 2:
#include "protheus.ch"
//Efetua a abertura de comunicação com o equipamento
User Function AbreComunicacao()
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9094" //deve ser mandado exatamente este nome
Local lUsaBalan := .F.
Local nHdlBalan := -1
PutMV("MV_AUTOCOM",0)
aBalanca := {cModelo,cPorta}
If !Empty(aBalanca[1]).AND. !Empty(aBalanca[2]) .AND. nHdlBalan == -1
//Abertura de comunicação com o equipamento
nHdlBalan := BalancaAbr(aBalanca[1],aBalanca[2])
lUsaBalan := nHdlBalan > 0
WritePProString("TOLEDO", "Conectado", AllTrim(Str(nHdlBalan)), GetClientDir()+"SIGALOJA.INI")
EndIf
If !lUsaBalan
Alert("Sem comunicação com a balanca " + aBalanca[1])
Else
Alert("Comunicação efetuada com sucesso")
EndIf
Return lUsaBalan
//Efetua a captura do peso na balança
User Function CapturaPeso()
Local lLeBalan := .T.
Local nRet := -1
Local nTentativa:= 1
Local cPeso := "" //contem o peso que retorna da balança
Local nPeso := 0
Local nHdlBalan := 0
While lLeBalan
nHdlBalan := Val(GetPvProfString("TOLEDO","Conectado", "-1", GetClientDir()+"SIGALOJA.INI"))
nRet := BalancaPegaPeso(nHdlBalan,@cPeso)
If nRet <> 0
lLeBalan := .F.
EndIf
If lLeBalan
lLeBalan := NoRound(Val(cPeso),3 ) <> 0
EndIf
If !lLeBalan
If nTentativa > 3
Alert("Tentativas de leitura de peso excedidas")
cPeso := "0"
Else
lLeBalan := .T.
nTentativa += 1
EndIf
EndIf
End
Alert("Peso capturado: " + cPeso)
nPeso := Val(cPeso)
Return nPeso
//Efetua o fechamento de comunicação com a balança
User Function FechaComunicacao()
Local nHdlBalan := 0
Local nRet := 0
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9094" //deve ser mandado exatamente este nome
aBalanca := {cModelo,cPorta}
//Encerra a comunicação com o equipamento
nHdlBalan := Val(GetPvProfString("TOLEDO","Conectado", "-1", GetClientDir()+"SIGALOJA.INI"))
nRet := BalancaFec(nHdlBalan,aBalanca[2])
lUsaBalan := nRet > 0
nRet := -1
Return lUsaBalan
Teste realizado em ambiente de desenvolvimento
View file name TVVVVF_Evidencia de Teste_BRA.pdf height 250