TEST JBUS MODBUS RTU

Signaler
Messages postés
2
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
22 février 2008
-
Messages postés
32
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
18 mai 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45809-test-jbus-modbus-rtu

Messages postés
32
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
18 mai 2012

Salut Churchill,

Ton petit soft m'a bien aidé car j'avais un projet de superviseur utilisant une communication jbus avec un API Schneider.
Aujourd'hui j'ai un autre soucis, je doit récupérer 67 fois 6 mots de 16 Bits à plusieurs adresses de dépard dans un autre API Schneider toujours en Jbus RTU.
Là je séche car cela dépasse la capacité des 126 mots d'une trame jbus.
Il faut faire plusieurs itérations mais en mode synchrone. Mon prog se plante car je ne contrôle pas la réception des données.
Pour illustrer ci dessous la partie dialogue (emission et réception de la trame jbus)

For ind_emis = 10050 To 13400 Step 50 'adresses des mots à lire dans l'esclave
Longueur_trame_jbus = Modbus_Creat_trame_Lecture(Frm_Propriétés.Num_esc_jbus.Text, 3, (ind_emis), 16, Trame_jbus()) 'appel fonction:num d'esclave, fonction, adresse 1er mot, Nb de mot, table de valeur composant la future trame jbus
If Longueur_trame_jbus > 0 Then ' la trame est correcte
Longueur_trame_jbus = Modbus_Ajout_Trame_CRC16(Trame_jbus()) 'appel fonction:finalise la trame par l'ajout du CRC16
snd = Créat_trame_Jbus(Trame_jbus())
Envoi_Trame_RTU (snd) 'sub:envoie la trame d'interrogation jbus sur liaison série
Do While MSComm1.CommEvent <> comEvReceive
'attend une réponse de l'API
Loop
rep = MSComm1.Input
Frm_Dial_JBUS.Text3.Text = Frm_Dial_JBUS.Text3.Text & vbCrLf & " " & Time & " -API >> PC : " 'pour afficher la trame
For i = 0 To Len(rep)
Rep_jbus(i) = Mid(rep, 1, i)
Frm_Dial_JBUS.Text3.Text = Frm_Dial_JBUS.Text3.Text & Hex(Asc(Mid(Réponse, i, 1))) & " " 'pour afficher la trame
Next i
If Modbus_verif_trame_rep(Rep_jbus, Frm_Propriétés.Num_esc_jbus.Text, 3) = 0 Then 'fonction:Trame de la réponse, num d'esclave, fonction
Donnée1 = Val(Rep_jbus(0)) * 256 + Val(Rep_jbus(1))
Donnée2 = Val(Rep_jbus(4)) * 256 + Val(Rep_jbus(5))
Donnée3 = Val(Rep_jbus(6)) * 256 + Val(Rep_jbus(7))
Donnée4 = Val(Rep_jbus(8)) * 256 + Val(Rep_jbus(9))

Else
MsgBox ("Erreur de dialogue avec API refaire un rafraichissement")
Exit Sub
End If
Else 'erreur dans la demande de création de la trame
MsgBox ("erreur dans la création de la trame" & vbCrLf & "code erreur:" & Longueur_trame_jbus)
End If
Next ind_emis

L'émission se passe bien l'API répond correctement (j'ai vérifier sur une itération grâce à ton soft) mais je ne récupére rien dans ma variable Rep malgré le MSComm1.CommEvent = comEvReceive. (j'ai simplifier pour que cela ne soit pas trop long)
Je te remercie par avance pour ton aide.

Phoenix591
Messages postés
29
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
24 août 2012

bonjour,
j'ai essayé d'utiliser vorte application pour communiquer avec un regulateur qui utilise la meme table JBus que vous avez utilisez mais ca marche pas toujours j obtient "NO Answer"
que dois je faire?
meci d'avance
Messages postés
4
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
13 avril 2010

Il est probablement possible de l'utiliser pour cela. Mais il faut connaitre la table JBus du régulateur (que je ne connais pas, définie par le fabricant.
Elle vous donnera quels mots correspondent à quelles fonctions, ainsi que leurs formats.
Messages postés
29
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
24 août 2012

bonjour
svp je ss interesser par votre application, je me demande est ce ke cette appli peut aussi communiquer avec un regulateur de temperature eurotherm ki utilise le protocole modbus RTU
c urgent
merci d'avance
Messages postés
2
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
22 février 2008

super pratique.
félicitations.