Programmation avec VB 6

cs_moumou84 Messages postés 15 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 21 mai 2012 - 2 avril 2012 à 11:58
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 - 17 mai 2012 à 15:23
salut,
je suis entrain de faire un logiciel en utilisant VB6 qui permet de récupérer les données de module LUCM vers le pc et voici notre environnement de travail:

***un PC ==> RS232 ==> convertisseur RS232/RS485==> module de communication ModBus LULC031 ==>unité de contrôle multifonction LUCM***

les deux unités de travail sont :
***relais de protection = unité de contrôle multifonction LUCM Tesys U
***module de communication ModBus LULC031
j'ai essayer de trouver la trame et un code pour la connexion RS232 mais lors de test j'ai pas trouvé aucune resultat je connais ça depuis le convertisseur car dans ce dernier existe le Tx et Rx
s'il vous est ce que quelqu'un peut m'aider dans le codage j'attend vos reponse et merci d'avance

24 réponses

cs_moumou84 Messages postés 15 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 21 mai 2012
3 mai 2012 à 23:52
bonsoir,

merci pour votre réponse mais mon problème c'est dans le codage
s'il vous plait est ce que tu peux m'envoyer un code avec vb net qui permet de récupérer les données renvoyer par la machine
est ce le port 485 de cette machine a un rôle dans le codage puisque on utilise un convertisseur RS232-485
si tu as besoin au format de trame modbus pour la reponse je suis là

et merci d'avance
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
5 mai 2012 à 20:50
Bonjour,

Le fait qu'il y ait un convertisseur 232/485 n'a pas d'influence.

Regardes cette source :
http://www.vbfrance.com/codes/UTILISATION-PORT-COM-VS2005_42181.aspx

---------------------------------------------------------------------
[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.VisualVasic (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
0
cs_moumou84 Messages postés 15 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 21 mai 2012
15 mai 2012 à 17:57
bonsoir,

je suis entrain de faire une communication pc/ relais numerique en utilisant le protocole modbus serie RTU
j'ai fait une application avec VB 8 lors de test j'ai essayer d'émettre la trame mais il n'y a pas aucune réponse j'ai constaté que l'erreur c'est dans le calcul de crc à ton avis est que le calcul fux pour le crc peut couper la comunication aussi svp est ce que tu peux m'aider dans le codage de crc avec VB8 et j'ai un algorithme pour le faire mais je peux pas le coder et voici:


• Charger un registre CRC 16 bits avec FFFFh.
• Appliquer le OU exclusif entre le premier octet à 8 bits du message et l'octet de poids fort du registre CRC.
Renvoyer le résultat au registre CRC.
• Décaler le registre CRC d'un bit vers la droite.
• Si le bit (ou l'indicateur) de dépassement de capacité est égal à1, appliquer le OU exclusif entre le registre CRC et A001 hex et renvoyer le résultat au registre CRC.
• Si l'indicateur de dépassement de capacité est 0, répéter l'étape3.
• Répéter les étapes 3 et 4 jusqu'à ce qu'il y ait eu 8 décalages.
• Appliquer le OU exclusif entre l'octet à 8 bits suivant du message et l'octet de poids fort du registre CRC.
• Répéter les étapes 3 à 6 jusqu'à ce que le OU exclusif ait été appliqué entre tous les octets du message et le registreCRC et jusqu'à ce qu'il y ait eu 8 décalages.
• Le contenu du registre CRC est le code d'erreur CRC à deux octets, ajouté au message avec les bits de poids fort en premier.


avec le premier octet à 8 bits représente l'adresse de l'esclave
et l'octet à 8 bits suivant du message représente le code fonction de modbus 03 lecture ou 06 écriture ....

svp j'attend votre réponse et merci d'avance
0
NHenry Messages postés 15069 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 29 mai 2023 158
17 mai 2012 à 15:23
Bonjour,

J'ai rien compris à ton message.

"VB 8" ? tu ne fais pas de VB6 (classement de la discussion) ?

Concernant le calcul du CRC, le code serait plus utile que la description en français. (Voir le point 2 de ma signature)

concernant le format d'une trame Modbus, il y a pas mal de doc sur internet (voir Wikipedia).

As-tu un programme tout fait pour interroger un esclave modbus ?
Ensuite, il te faut intercepter les échanges et les reproduire.

Quelques liens :
http://sitelec.org/animations.htm#crc16 (pour le CRC 16)
http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf
https://fr.wikipedia.org/wiki/Modbus

Au besoin, n'hésites pas à remettre à plat la discussion.

---------------------------------------------------------------------
[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.VisualVasic (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
0