Balance RS232 [RESOLU]

pitufo2804

XLDnaute Junior
Bonjour,
Apres quelques recherches sur google je ne trouve pas de solutions concrètes...
J'essaie de développer une "appli" permettant de récupérer des valeurs issue d'une balance connectée en RS232 au PC.
Ma balance est configurée de la sorte :
- 1200bauds
- 7 bits de données
- 1 bit de parité (paire)
- 1 bit de stop
J'ai ces quelques lignes de code afin de récupérer la valeur :
Code:
Private Sub CommandButton1_Click()

With MSComm1
    .InBufferCount = 0
    .CommPort = 1
    .Handshaking = comNone
    .Settings = "1200,o,7,1"
    .InputLen = 3
    .PortOpen = True
End With

Do While MSComm1.Input <> "   +"
Loop

MSComm1.InputLen = 5
    Label1.Caption = MSComm1.Input
    ActiveCell.Value = CSng(Label1.Caption)
    ActiveCell.Offset(1, 0).Select
    
MSComm1.PortOpen = False

End Sub

Mais j'ai une erreur à la ligne " Do While MSComm1.Input <> " +" "
qui me dit :
" Erreur d'éxécution '8020':
Error reading comm device."
J'ai quand même effectué des test avec l'hyper terminal et la com fonctionne sans soucis.
Enfin, sur la doc de la balance, la trame est comme ça :
123456789101112131415.........
BBBSD7D6D5D4D3D2D1DPD0BU...CRLF

BBlancCaractère blanc (espace)
SSignSigne (+,-,espace)
DPDecimal PointPoint décimal
D0...D7DigitsChiffres
UUnitUnité
CRCarriage ReturnRetour Chariot
LFLine FeedSaut de tr

[entete]Sigle[/entete]
[entete]Signification[/entete]
[entete]Descriptif[/entete]
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Balance RS232 [RESOLU]

re,

veux tu bien essayer ce classeur.
j'ai fait une routine pour saisir plusieurs pesées sans quitter la balance !
donc sans intervention au clavier, excepté, bien entendu,
pour quitter les pesées ou il faudra taper sur echap (en espérant que ça fonctionne !?)

voir le message du départ !

c'est uniquement par curiosité et je ne peut absolument rien garantir
ne pouvant pas faire d'essai moi-même !

si ça bloque, un ctrl+break stoppera tout !
 

Pièces jointes

  • RS232 balance essai auto.xls
    37 KB · Affichages: 43
  • RS232 balance essai auto.xls
    37 KB · Affichages: 42
  • RS232 balance essai auto.xls
    37 KB · Affichages: 43
Dernière édition:

pitufo2804

XLDnaute Junior
Re : Balance RS232 [RESOLU]

Bon je viens de tester et ça marche très bien encore merci !
MAIS (y'a toujours un mais...), y'a un soucis sur la fermeture du port.
Pour quitter il faut cliquer sur la croix et si on relance le script, un message apparait en disant que le port est déja ouvert.

EDIT: Autant pour moi ! j'avais zappé la ligne où il fautcliquer sur ECHAP pour quitter... Donc ça marche super bien !
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Balance RS232 [RESOLU]

re

c'est très bon de savoir que ça fonctionne !

mais ce code, c'est du brut ! c'est seulement pour un essai ! ce qui compte ici c'est le principe !

maintenant, le code avec les tests, l'affichage, les messages ... est à améliorer !
il ne peut pas rester en l'état !
c'est selon ce que l'on souhaite faire !?


t'ayant envoyé le fichier en privé ... je le met sur le forum pour ceux que ça interressent !
 

Pièces jointes

  • RS232 balance essai auto.xls
    37 KB · Affichages: 50
  • RS232 balance essai auto.xls
    37 KB · Affichages: 48
  • RS232 balance essai auto.xls
    37 KB · Affichages: 51
Dernière édition:

pitufo2804

XLDnaute Junior
Re : Balance RS232 [RESOLU]

Honnêtement ça me va très bien !
je l'ai intégré à un classeur qui me sert à relever les pesées, je sélectionne ma cellule et en avant !
La MsgBox que t'as mise est très claire, le code commenté, il est intégré a un projet, tout va pour le mieux !
 

Roland_M

XLDnaute Barbatruc
Re : Balance RS232 [RESOLU]

re

tu peux rajouter ceci (au cas ou on ferme avec la croix !)

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
KeyFinPesee = True
End Sub

EDIT modifié !
 
Dernière édition:

pitufo2804

XLDnaute Junior
Re : Balance RS232 [RESOLU]

ça ferme bien le port, mais ça ne quitte pas la macro donc je perds la main... je ne peux que recliquer sur le bouton pesées...
je ne peux pas modifier la feuille directement..

EDIT: En trichant un peu ça tourne :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error Resume Next
MSComm1.InBufferCount = 0
KeyFinPesee = True
End Sub
 
Dernière édition:

pitufo2804

XLDnaute Junior
Re : Balance RS232 [RESOLU]

Et oui c'est encore moi...
J'ai un nouveau soucis !
jusqu'à présent je fesais mes essais au bureau avec un pc fixe, et maintenant que je passe sur un PC portable ça ne tourne plus...
Je lance la macro, la msgbox me demande d'appuyer sur le bouton print de la balance et quand j'appuie, rien qui s'affiche dans la cellule et la macro se termine comme si j'appuyais sur ESC...
Une idée de pourquoi ?

EDIT: si je mets un point d'arret sur la ligne "MSComm1.PortOpen = False" (en bas du code) et que je regarde la valeur dans "MSComm1.Input", elle affiche " <Error reading comm device> "
J'ai fait un test avec l'hyper terminal et ça marche sans soucis...
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Balance RS232 [RESOLU]

re

je pense à une histoire de port qu'il faut peut être initialiser différemment !?

si tu veux bien essayer cette nouvelle version !? (légèrement différente)
je te l'envoie aussi en privé pour ton boulot !
 

Pièces jointes

  • RS232 balance essai auto.xls
    40 KB · Affichages: 48
  • RS232 balance essai auto.xls
    40 KB · Affichages: 49
  • RS232 balance essai auto.xls
    40 KB · Affichages: 48

pitufo2804

XLDnaute Junior
Re : Balance RS232 [RESOLU]

Merci pour la modif mais là l'erreur s'affiche directement dans une fenêtre dès que j'appuie sur print
"Erreur MSComm No 8020 Error reading comm device"
En fouinant sur le net j'ai cru comprendre que le fait de passer sur windows seven à la place de XP changeait qqch.. c'est vrai ou c'est du pipot ?

EDIT: j'ai fais des captures de trames en héxa pour comparer toutes les valeurs sur 2 poids différents et il n'y a acune différence entre les 2 PC (car 1 est branché directement en RS232 et l'autre avec un convertisseur RS232-USB)
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Balance RS232 [RESOLU]

re

voir mon post #29 concernant cette erreur ! qui n'est autre qu'une histoire de version !
MsComm32.ocx (6.1.98.16)

ci-dessous une partie de mon post29 qui disait ceci:

j'ai trouvé sur le net l'origine de ton erreur Erreur d'éxécution '8020'
ça vient de ta version mscomm32.ocx qui n'est pas bonne !
message de la personne qui à fini par solutionner:
----------------------------------------------------------
Bonjour,

Le nouveau MsComm32.ocx (6.1.98.16) fourni avec la mise à jour que vous citez résoud effectivement mon problème (j'en était resté à la version 6.0.81.69).

Je vous remercie pour cette réponse rapide et pertinente.

Cordialement.
-------------------------------------------------------------------------------
 

Statistiques des forums

Discussions
312 197
Messages
2 086 104
Membres
103 118
dernier inscrit
mlaf4032