Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Aide sur Modbus urgent pour le boulot [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (cyrille)

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é 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 " Icones personnalisées dans une barre de commande sous VBA [ par Chouchensb ] Bonjour à tous,Voilà mon (petit) problème : j 'ai crée une macro sous Excel qui charge une commandbar au démarrage, mais les icones sont définies par Lancer une commande DOS en VBS [ par ITALIA ] Comment lancer une commande DOS du type START RUN AS en VBS ?MerciIt@li@ BUG... (keydown et picturebox = incompatibilité) ???? [ par BlackAngel2 ] Bonjour à tous, voici mon problème: Dans l'événement Keydown d'un textbox je veux savoir lorsqu'un usager appuit sur la touche "tab" ou les touches "s Besoin de comprendre L'utilisation des objets avec Set et New [ par codea ] Bonjour, J'ai créé des classes avec lesquelles je crée des objets.  L'application que je suis en train de faire nécessite la référence au même objet à Commande vocale [ par nari ] Salut! SVP pouvez_vous m' aidez à propos de ce sujet. "Commande vocale" .Pouvez vous m' envoyer des docs sur tt ce qui est reconaissance vocale(pgrs,s Envoie commande octet (hexadecimale) par mscomm [ par stolken ] Salut tt le monde, J'ai un probleme avec mon prog de dialogue avec les cartes à puce. En effet, je voudrais envoyer une serie d'octet à la carte mais minuscule accentuée en commande dos [ par pitch ] Bonjour à tous,J'ai un souci avec un répertoire nommé Santé.Je dois, sous vb6, lancer une action par l'intermédiaire d'une commande shell sur ce réper Compilation d'un projet VB par ligne de commande [ par yoggi22 ] BonjourEst il possible de compiler un exe d'un projet vb directement par une ligne de commande et sans avoir à ouvrir le projet dans l'editeur ?Merciy Envoi commande sur carte à puce [ par stolken ] Salut tt le monde, C'est mon premier post ici, je suis en trtain de realiser un ptit programme de dialogue avec une carte à puce avec le composant msc


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.