Interface RS232 en VB6
cneree
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
salam alaykoum
mes amis
J'ai programmé une application en VB6 qui nous permet d'acquérir des données de mesure instrument via l'interface RS232 le programme est exécuté, mais il ne me donne pas les valeurs mesurées (ça me donne des points interogations)
J'ai utilise exécution pas à pas j'ai montré que MSComm1.Input (voir sous-programme ci-dessous) ne reçois rien
S'il vous plaît aidez-moi
merci beaucoup
Private Sub Timer1_Timer()
Dim nval As Double
MSComm1.Output = "read?" & vbCrLf
txtTemps.Text = j
tampon$ = MSComm1.Input
txtMesure.Text = txtMesure.Text & tampon$ & vbCrLf
n = tampon$
If Option2.Value = True Then
' MsgBox M
m1 = Mid(n, 1, 5)
m2 = Mid(n, 18, 23)
m2 = Mid(m2, 1, 4)
m3 = Mid(n, 33, 35)
m3 = Mid(m3, 2, 4)
m4 = Mid(n, 50, 55)
m4 = Mid(m4, 1, 4)
c1.t3 = j
c1.m1 = m1 'voie 102
c1.m2 = m2 ' voie 103
c1.m3 = m3 'voie 104
c1.m4 = m4 'voie 105
ta = Val(c1.m1) * 10 'voie 102: temperature ambiente
Txta.Text = ta
tb = Val(c1.m2) * 10 'voie 103: temperature de la boite
Txtb.Text = tb
tc = Val(c1.m3) * 10 'voie 104: temperature chaude
Txtc.Text = tc
tf = Val(c1.m4) * 10 'voie 105: temperature froide
Txtf.Text = tf
salam alaykoum
mes amis
J'ai programmé une application en VB6 qui nous permet d'acquérir des données de mesure instrument via l'interface RS232 le programme est exécuté, mais il ne me donne pas les valeurs mesurées (ça me donne des points interogations)
J'ai utilise exécution pas à pas j'ai montré que MSComm1.Input (voir sous-programme ci-dessous) ne reçois rien
S'il vous plaît aidez-moi
merci beaucoup
Private Sub Timer1_Timer()
Dim nval As Double
MSComm1.Output = "read?" & vbCrLf
txtTemps.Text = j
tampon$ = MSComm1.Input
txtMesure.Text = txtMesure.Text & tampon$ & vbCrLf
n = tampon$
If Option2.Value = True Then
' MsgBox M
m1 = Mid(n, 1, 5)
m2 = Mid(n, 18, 23)
m2 = Mid(m2, 1, 4)
m3 = Mid(n, 33, 35)
m3 = Mid(m3, 2, 4)
m4 = Mid(n, 50, 55)
m4 = Mid(m4, 1, 4)
c1.t3 = j
c1.m1 = m1 'voie 102
c1.m2 = m2 ' voie 103
c1.m3 = m3 'voie 104
c1.m4 = m4 'voie 105
ta = Val(c1.m1) * 10 'voie 102: temperature ambiente
Txta.Text = ta
tb = Val(c1.m2) * 10 'voie 103: temperature de la boite
Txtb.Text = tb
tc = Val(c1.m3) * 10 'voie 104: temperature chaude
Txtc.Text = tc
tf = Val(c1.m4) * 10 'voie 105: temperature froide
Txtf.Text = tf
A voir également:
- Interface RS232 en VB6
- Vb6 - Télécharger - Divers Utilitaires
- Télécharger driver rs232 gratuit - Télécharger - Utilitaires
- Common interface 5v only - Forum TNT / Satellite / Réception
- Interface netflix - Accueil - Streaming
- Interface gmail - Guide
7 réponses
Bonjour,
Il faudrait utiliser l'Hyperterminal pour verifier qu'il y a bien un echange avec votre boite de mesure.
Un exemple de code pour votre appli. Je vous laisse gerer le depart initial du timer
A+
Il faudrait utiliser l'Hyperterminal pour verifier qu'il y a bien un echange avec votre boite de mesure.
Un exemple de code pour votre appli. Je vous laisse gerer le depart initial du timer
Private Sub UserForm_Initialize() '************************************** 'Initialisation Port COM1: MSComm1.CommPort = 1 'Parametrage ligne COM: (a adapter pour vous) MSComm1.Settings = "4800,N,8,1" 'Ouvre le port de communication. On Error Resume Next MSComm1.PortOpen = True ' Vide le tampon d'entrée. MSComm1.InBufferCount = 0 ' pas d'interruption MSComm1.RThreshold = 0 '************************************** End Sub Private Sub Timer1_Timer() Dim nval As Double 'Stop le timer Timer1.Enabled = False 'Vide le tampon d'entrée. MSComm1.InBufferCount = 0 MSComm1.Output = "read?" & vbCrLf txtTemps.Text = j 'Attente nombre de caracteres prevu: a paramettrer LongueurAttendue = 55 Port = 0 Call AttenteNombreCaracteres(LongueurAttendue, Port) If Port = 0 Then MsgBox "Probleme reception!!!" 'relance le timer Timer1.Enabled = True Exit Sub End If tampon$ = MSComm1.Input txtMesure.Text = txtMesure.Text & tampon$ & vbCrLf n = tampon$ If Option2.Value = True Then ' MsgBox M m1 = Mid(n, 1, 5) m2 = Mid(n, 18, 23) m2 = Mid(m2, 1, 4) m3 = Mid(n, 33, 35) m3 = Mid(m3, 2, 4) m4 = Mid(n, 50, 55) m4 = Mid(m4, 1, 4) c1.t3 = j c1.m1 = m1 'voie 102 c1.m2 = m2 ' voie 103 c1.m3 = m3 'voie 104 c1.m4 = m4 'voie 105 ta = Val(c1.m1) * 10 'voie 102: temperature ambiente Txta.Text = ta tb = Val(c1.m2) * 10 'voie 103: temperature de la boite Txtb.Text = tb tc = Val(c1.m3) * 10 'voie 104: temperature chaude Txtc.Text = tc tf = Val(c1.m4) * 10 'voie 105: temperature froide Txtf.Text = tf End If 'relance le timer Timer1.Enabled = True End Sub 'SubRoutine attente caractere avec tempo: a adapter Sub AttenteNombreCaracteres(LongueurAttendue As Integer, Port As Integer) Dim TemPort As Single Port = 0 TemPort = Timer Do While MSComm1.InBufferCount < LongueurAttendue And Timer - TemPort < 1.6: Loop If MSComm1.InBufferCount = LongueurAttendue Then Port = 1 End Sub
A+
Bonjour, Bonjour fxx
Tu dois initialisé MSComm pour que la communication corresponde à ton instrument.
Bit parité... Baud etc..
A+
Tu dois initialisé MSComm pour que la communication corresponde à ton instrument.
Bit parité... Baud etc..
A+
Bonjour,
Merci pour cette réponse,
j'ai déjà utilisé l'hyperterminal pour vérifier la communication entre le PC et notre instrument de mesure mais ca marche pas.
SVP de m'aider pour l'utiliser la deuxième fois , par ce que peut être je ne sais pas comment l'utiliser.
Merci bcp
Cordialement.
Mustapha.
Merci pour cette réponse,
j'ai déjà utilisé l'hyperterminal pour vérifier la communication entre le PC et notre instrument de mesure mais ca marche pas.
SVP de m'aider pour l'utiliser la deuxième fois , par ce que peut être je ne sais pas comment l'utiliser.
Merci bcp
Cordialement.
Mustapha.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je vois que tu comprend pas...
Tu clic sur le contrôl MSComm sur ta form pour le sélectionner et qu'il y ai des "poingnées" dessus.
Tu tape F1.
Et là je pense que tu comprendras.
A+
Tu clic sur le contrôl MSComm sur ta form pour le sélectionner et qu'il y ai des "poingnées" dessus.
Tu tape F1.
Et là je pense que tu comprendras.
A+
Bonjour a vous deux,
Cneree:
Si vous n'avez pas de communication en hyperterminal, pas le peine de continuer en VB6.0. Comme l'a ecrit lermite, avez-vous paramettrer la communication entre l'hyperterminal et votre boite de mesure avec les memes parametres (port,vitesse,bit de donnees, bits de stop etc...)
Question: PC utilise---->Portable ou Tour??
A+
Cneree:
Si vous n'avez pas de communication en hyperterminal, pas le peine de continuer en VB6.0. Comme l'a ecrit lermite, avez-vous paramettrer la communication entre l'hyperterminal et votre boite de mesure avec les memes parametres (port,vitesse,bit de donnees, bits de stop etc...)
Question: PC utilise---->Portable ou Tour??
A+