Test jbus modbus rtu

Soyez le premier à donner votre avis sur cette source.

Vue 19 523 fois - Téléchargée 2 302 fois

Description

Logiciel de test d'appareils en protocole JBus/ModBus RTU. Utilise les fonctions 3, 6 et 16. Il est possible d'organiser un polling sur plusieurs esclaves, avec une trame définie, de sauvegarder les trames, de les charger, de visualiser la com, de vérifier les CRC de réponse.

C'est bien pratique...

Peut-être intéressant si vous cherchez comment calculer un CRC, construire une trame, gérer un port série, etc...

Merci de votre indulgence: je ne suis pas développeur et c'est mon premier post

Codes Sources

A voir également

Ajouter un commentaire Commentaires
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.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Churchill)