Interface RS232 en VB6
cneree
Messages postés
7
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 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
- Akamai netsession interface ✓ - Forum Réseaux sociaux
- 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+