begin process at 2012 02 15 21:57:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Aide sur Modbus urgent pour le boulot


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Aide sur Modbus urgent pour le boulot

mercredi 11 juillet 2001 à 21:38:02 | Aide sur Modbus urgent pour le boulot

cyrille

Salut et merci de me répondre,


Je développe en ce moment ( urgent pour le boulot ) un petit logiciel en Visual Basic 6.0 pour pouvoir aller lire les mots ( un par un ) d'un automate Télémécanique TSX MICRO.

Cela veut dire, mise en forme de la trame, calcul du CRC16, envoi et réception pour lecture de la valeur.

Je suis avec un protocole Modbus avec une carte PCMCIA dédiée à l'automate.

Je Prends un exemple avec la valeur "7777" en décimal dans le mot %MW20.


La trame envoyée est un tableau de variant/byte ( 0 à 7 )

v_commande_tab(0) = 1 Numéro d'esclave
v_commande_tab(1) = 3 Fonction lecture
v_commande_tab(2) = 0 Mot à lire en hexa sur deux octets
v_commande_tab(3) = 14 Mot à lire en hexa sur deux octets
v_commande_tab(4) = 0 Nombre de mot à lire sur deux octets
v_commande_tab(5) = 1 Nombre de mot à lire sur deux octets
v_commande_tab(6) = CRC16 CRC16 sur deux octets
v_commande_tab(5) = CRC16 CRC16 sur deux octets


La réponse en bonne car l'automate répond avec la recopie de la fonction de lecture.

La trame reçue est un tableau de variant/byte ( 0 à 6 )


V_tampon_recu(0) = 1 Numéro d'esclave
V_tampon_recu(1) = 3 Fonction lecture
V_tampon_recu(2) = 2 Nombre d'octet lu
V_tampon_recu(3) = 30 Erreur sur le bit de poids fort
V_tampon_recu(4) = 97 Erreur sur le bit de poids faible
V_tampon_recu(5) = CRC16 CRC16 sur deux octets
V_tampon_recu(6) = CRC16 CRC16 sur deux octets


En fait je peux compter que si le mot ne dépasse pas 255 en décimal ( 1 octet = 8 bits ), l'octet de poids faible me donne 255 et l'octet de poids fort 0.

Ca c'est bon, mais pourquoi ça ne marche pas lorsque c'est codé sur 2 octets donc supérieur à 255 en décimal.

Je veux bien une réponse SVP.

Ci-joint le code de mon module réception de la trame, si toutefois vous voulez le code complet, je peux l'envoyer.

cyrille.fouchet@caramail.com


Option Explicit ' Déclaration obligatoire des variables

Public Sub reception(v_commande_tab As Variant, s_tab_valeur_identifs As Variant, i_index_env As Integer)

Dim v_tampon_recu As Variant ' Variable pour réception par octet

page_principale.MSComm1.InputMode = comInputModeBinary ' Réception en mode octet

page_principale.MSComm1.InputLen = 0 ' Vidage tampon de reception

page_principale.Timer3.Enabled = True ' Marche du Timer 3

Do

If (page_principale.MSComm1.InBufferCount > 0) Then ' Si réception

page_principale.Timer3.Enabled = False ' Dévalidation du Timer 3

page_principale.infos_txt1.Text = page_principale.infos_txt1.Text & "Réponse de l'automate : Vérification " & Time & vbCrLf

v_tampon_recu = page_principale.MSComm1.Input ' Réception de la reponse

' Call Comparaison_trame.comparaison(v_commande_tab, v_tampon_recu, s_tab_valeur_identifs, i_index_env)

Exit Do ' Sortie de la boucle

End If

If (page_principale.Timer3.Enabled = False) Then ' Temps de réception trop long

Exit Do ' Sortie de la boucle

End If

Loop

End Sub






vendredi 18 avril 2003 à 16:24:55 | Re : Aide sur Modbus urgent pour le boulot

oursours

j'ai pas la reponse a ton probleme mais je tavaille actuellement sur le protocole modbus rtu et je n'arrive pas a me faire comprendre par l'automate.

je suis sur que j'envoie la bonne trame mais surement dans le mauvais format.ce qui fait que l'automate ne me repond pas

pourrais tu m'envoyer ta source a gaelbrush@caramail.com.

merci
mercredi 23 avril 2003 à 01:45:48 | Re : Aide sur Modbus urgent pour le boulot

cyrille

Bonjour,

J'ai fini par trouver assez rapidement et j'ai pu coder mon application sans trop de pb.

Voici le lien sur ce site ou j'ai déposé le calcul du CRC 16 dans un module à l'aide de deux fonctions.

http://www.vbfrance.com/article.aspx?Val=3479

Si vous voulez, j'ai également réalisé et déposé sur ce site un ActiveX capable de calculer également le CRC 16.

Si vous souhaitez d'autre informations et dans la limite de mes compétences, voici mon email : cyrille.demeautis@caramail.com.

Salutations,

Cyrille.
vendredi 17 juin 2005 à 15:15:23 | Re : Aide sur Modbus urgent pour le boulot

sitemo


moi je veux bien que tu menvoyer ta source a karim_aroua@hotmail.com

MK

jeudi 8 décembre 2005 à 18:09:49 | Aide sur modbus RS485

dalimero

Salut je suis nouveau sur le site et en tant que médiocre programmeur je me suis dis que sans doute quelqu'un saurait m'aider.
J'ai en fait besoin de réaliser un Crc16 pour une application MODBUS RS 485 appliqué au module Wago Modbus.
Si quelqu'un a quelque chose ca serait sympas de m'en faire part

 DALiMeRo


Cette discussion est classée dans : commande, tab, tampon, recu, crc16


Répondre à ce message

Sujets en rapport avec ce message

probleme dans le mise a jour [ par Boudchiche ] Voila je saisie des donnes dans un mshflexgrid dans le colonne 7 pour les ajouter dans ma table details_commande mais il me donne le message suivant " [reseau] jouer un wav [ par gollum57320 ] bonjour a tous, désoler pour mon titre peu ordinaire. Voila je suis entrain de concevoir un logiciel de chat utilisant la Tcplibrary et j'aimerai pou dataReader déjà ouvert [ par akuma7 ] Bonjour, j'ai un combobox dans lequel je selectionne un id_commande, aprés je clique sur un linklabel pour afficher les details de cette commande(dans incrementer en vb 6.0 [ par 320C ] Merci Jopop Je veux encore m'expliquer beaucoup plus que je peux J'ai une table Commande, et Client dont la base des données est en Sql Server 2000 problème de tri des données d'un listbox [ par zeusensa ] bonjour, SVP j'ai besoin de votre aide : je suis en train de développer une application sous VB.NEt 2005 express , et je suis bloqué sur un traitemen optimiser une base de données . [ par selmane10 ] pour une base de données qui est vide la commande "select * from Table" s'executera dans 0.5 seconde alors qu'aprés 5 ans la base de données contiendr Probleme Val(Mid(........)) [ par InfoGeo ] Salut, je voudrais obtenir la réponse d'un capteur apres lui avoir envoyé la commande qui me permet d'obtenir son model: syntaxe de la réponse: !AATx commande shell [ par tonyledragon ] Salut voila j'ai un probleme quand je teste chez moi aucune erreur shell lance bien mon programme quand je donnée a une autre personne sa ecrit erreur Stocker la commande de compilation de file.vb dans un file.bat ou .cmd [ par oxy224 ] Bonjour, Quelqu'un saurait comment mettre les commandes de compilation dans un fichier .bat pour qu'au lieu de compiler en passant par le menu démarr [Catégorie modifiée VB6 -> VBA] macro commande : erreur définie par l'application ou par l'objet erreur d'exécution 1004 [ par RAMIRESBROTONS ] Bonjour, j'utilise un classeur excel de base comprenant des macro commandes et des liens hypertexte rattachés à d'autres fichies excel ou pdf. Ce cl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales