goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014
-
12 sept. 2006 à 17:14
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014
-
15 sept. 2006 à 14:55
Bonjour
J'aimerais
communiquer par RS232 avec une balance.
J'ai trouvé ca sur le net
http://cherbe.free.fr/rs232.html Dans la partie "realisation du programme" à l'étape "
posez le contrôle MSCOMM sur le userform"
J'ai ce message "Le controle n'a pas été crée parce qu'il n'est pas correctement licencié".
Quelqu'un sait d'ou vient l'erreur?
Merci de votre aide ou suggestions.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 sept. 2006 à 17:41
Salut
Tu es sous VB6 ? pas un message standard ... je pense que tu bosses sous le VBA de Excel ou Access (dixit ma boule de cristal)
Il faut que tu repères le fichier nommé MSCOMM32.OCX qui devrait se trouver dans le répertoire Windows\System32
Ensuite, tu ouvres une fenêtre DOS : Démarrer, Exécuter, CMD et entrée
Dans la fenêtre noire qui apparait, entre la commande suivante :
RegSvr32 C:\Windows\System32\MSCOMM32.OCX
Normalement, il doit te répondre en affichant une fenêtre qui te dit que ça s'est bien passé.
Cela devrait suffire à 'enregistrer' le composant.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 12 sept. 2006 à 18:14
Après cousultation de ma boule de cristal ......
Ah tiens Jack, aurait-on le même modèle de boule tous les deux ?
En effet goodsayan, ce message est souvent aperçu sous vba (le controle mscomm ne faisant pas partie de vba,je crois bien), alors qu'il est plutot rare sous vb6 (le controle fait partie du pack de base de vb6. C'est pour cela que l'on suppose que tu es sous vba.
Cependant la solution de Jack devrait marché dans tous les cas.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 12 sept. 2006 à 19:05
En effet la boule de cristal a raison... Je travaille sous le VBA d'excell.
Je teste demain au boulot et je vous tiens au courant.
Merci de votre aide.
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 13 sept. 2006 à 14:20
Re
J'ai fait comme m'a conseillé Jack, sous DOS j'ai tapé la commande et une fenetre s'est ouverte disant que ca avait réussi!
Par contre j'ai une nouvelle fois testé et impossible de
poser le contrôle MSCOMM sur le userform. Toujours le même message "Le contrôle n'a pas été crée parce qu'il n'est pas correctement licencié"...
D'autres idées?
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 13 sept. 2006 à 15:46
Ca y est j'ai enfin pu le mettre! Par contre je sais pas comment j'ai fait...
Donc en double cliquant sur commandbutton, j'ai mis le programme que j'avais trouvé.
Par contre j'ai un soucis a cette ligne la:
MSComm1.Settings = "1200,o,7,2" La j'ai changé vu que sur la doc j'ai baud 2400, parité none, 8 bits données, 1 bit d'arret.
MSComm1.Settings = "2400,n,8,1" C'est bien ca qu'il faut mettre car ca marche pas....
Merci
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 13 sept. 2006 à 17:17
Le probleme vient peut etre de la boucle
Do While MSComm1.Input <> "+"
Loop
'lecture sur le port des 5 1ers caractères et stockage dans la boite de dialogue et dans la feuille active
MSComm1.InputLen = 5
Label1.Caption = MSComm1.Input
ActiveCell.Value = CSng(Label1.Caption)
ActiveCell.Offset(1, 0).Select
J'en sais rien moi s'il y a un "+" qui arrive. Et s'il faut lire les 5 1ers caractères...
J'ai pas trouvé cette indication dans la doc. Tout ce qu'il y a c'est caractere: ASCII.
Une idée?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 13 sept. 2006 à 17:24
Alors déja :
MSComm1.InputLen = 1
Do While MSComm1.Input <> "+"
DoEvents
Loop
'lecture sur le port des 5 1ers caractères et stockage dans la boite de dialogue et dans la feuille active
MSComm1.InputLen = 5
Label1.Caption = MSComm1.Input
ActiveCell.Value = CSng(Label1.Caption)
ActiveCell.Offset(1, 0).Select
Quant au + et aux 5 caractères je ne peux pas te dire, c'est spécifique à ta balance, mais ça resemble à quelque chose comme "+45.96" pour 45,96Kg. Ceci pourrait bien expliquer cela.
Tu n'as vraiment rien dans la doc sur le format des données ?
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 13 sept. 2006 à 17:42
Merci pour les corrections. Je suis plus obligé de faire ctrl+alt+suppr pour arreter. Maintenant j'ai ce message "Erreur d'excution '8005' Port already open."
Pour le format la doc est vraiment somaire... J'ai ca par contre:
RS232C Format:
no. 1 2 3 4 5 6 7 8 9 10
SP/- X X X X X X X CR LF
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 13 sept. 2006 à 17:57
"Port already open" : C'est parce ton programme a été arreté avant de fermer le port série (plantage ou Ctrl+Alt+Supp).
Au pire, enregistre tout, ferme VB proprement, puis réouvre VB et ton projet.
Pour le format, ce que je comprend :
C'est une trame de 10 caractères :
n° 1 : SP/- : veux dire je pense "Espace" ou signe "-"
n° 2 à 8 : X : surrement des données, un poid par exemple "45.9647"
n° 9 : CR : caractère "Retour Chariot", vbCR en langage VB
n°10 : LF : caractère "Saut de ligne", vbLF en langage VB
Si on associe les deux ça donne vbCRLF, couple de caractère souvent utilisé pour indiquer un passage à la ligne dans un fichier, ou la fin d'une donnée dans une communication, comme ici.
Si ce format représente le poid que tu dois lire, ça donnerait cela " 45.9647"+vbCRLF ou en négatif "-45.9647"+vbCRLF.
Dans ce cas, pour en revenir à ton code plus haut, c'est le caractère "+" que tu devrais attendre mais le caractère " ", sil s'agit bien de ce format là.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
goodsayan
Messages postés61Date d'inscriptionmardi 15 février 2005StatutMembreDernière intervention 8 décembre 2014 15 sept. 2006 à 14:55
Ok merci de m'aider mais c'est pas encore ca... J'ai remplacé le "+" par " ". Je vais essayer de faire l'acquisition avec Labview si j'arrive deja à l'installer car c'est un très vieux PC et je suis pas sur qu'il le supporte.
Merci encore!