Affichage Rep trame RS232 / vb excel

Signaler
Messages postés
25
Date d'inscription
vendredi 11 mai 2012
Statut
Membre
Dernière intervention
21 janvier 2015
-
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
-
Bonjour,


suite à mon programme en vb, qui envoi des commandes à une carte de simulation.

j'aimerai pouvoir récupérer la réponse des trames et pouvoir les afficher dans une cellule, ou dans une textbox ect..

Comment faire ? je vous envoie la partie de mon programme qui envoie les commandes sur la carte de simulation. (cela marche )



Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillisenconds As Long)



Private Sub CommandButton1_Click()
If MSComm1.PortOpen True Then MSComm1.PortOpen False         ' si le bouton 1 = true alors on fait appel à la fonction test_liaison
Call test_liaison


End Sub


Sub test_liaison()

Dim trame_recue As String
Dim buffer As String

mouchard = 1


MSComm1.CommPort 3              'Comm1.CommPort Sheets("Test&Réglage & PV").Range("port").Value      'permet de recuperer le numero du port com
MSComm1.Settings = "9600,N,8,1"   'configuration liaison série ( tjrs la même chose ) ' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
MSComm1.PortOpen = True           'ouverture du port pour debuter la communication
MSComm1.SThreshold = 1
MSComm1.InputLen = 0             ' lecture total du buffer



MSComm1.Output = ActiveSheet.Cells(6, 9).Value & vbCrLf       ' envoi la saisie dans la cellule D2

 
Do

  DoEvents                                                    'indispensable sinon ça marche pas ( boucle de reception )
  
  trame_recue = trame_recue & MSComm1.Input

Loop Until InStr(trame_recue, vbCrLf)




fin:

MSComm1.PortOpen = False                                 'on ferme le port afin de terminer la communication
If mouchard = 1 Then                                     'si une trame a bien été envoyée
    MsgBox ("Opération terminée avec succès!")           'alors les caracteres sont bons et la communication est correcte
Else
    MsgBox ("Test échoué... nombre de trame envoyée par le pc :" & mouchard)    'sinon pb dans les caracteres
End If


End Sub 'fin





Ps : je suis en liaison RS232


Merci d'avance

1 réponse

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

Regardes l’événement DataReceive (ou similaire) du MsComm.

Sinon, ton test me semble biaisé, car Mouchard=1 avant même de tester la réception.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site