|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
Bonjour,
je travaille sur un TSX3721 que j'interroge en C++ pour mon projet de BTS iris. J'arrive à lire et ecrire des mots dans l'automate facilement depuis quelques semaines maintenant, cependant, on m'a egalement demandé dans le cahier des charges d'effectuer la lecture et l'ecriture de bits. Donc, par rapport aux adresses automates : les adresses des mots sont %MWxxx avec xxx correspondant a l'adresse en decimal ou aller interroger l'api, mais les adresses des bits sont %Mxxx avec x correspondant a l'adresse de (bit?) J'hesite egalement a utiliser telle ou telle fonction : 1 ou 2 pour la lecture de N bits ( quel est le format de la trame ) et 5 ou 15 pour l'ecriture d'un ou N bits ( et encore un fois quel est le format de la trame ) Merci de m'aider. Je peux laisser mon adresse email, ou msn par MP si vous pensez que c'est plus simple. Cordialement. Jeremy. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : novembre 2007 Messages : 81 ![]() |
Hello,
Les bits d'adresse MODBUS xxx correspondent aux bits internes %Mxxx. Une chose à faire gaffe: les bits "d'entrée" et les bits "de sortie" MODBUS sont dans la même zone mémoire (le bit %M10 peut être accédé comme bit d'entrée par une requète MODBUS lecture de bits d'entrée, et peut être accédé comme bit de sortie par une requète MODBUS lecture de bits de sortie). Pour le format des trames, voir les spécifications du protocole, librement dispos ici:http://www.modbus.org/docs/Modbus_Ap...ocol_V1_1b.pdf |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
D'accord mais, est ce qu'on peu accéder aux bits %Mxxx avec les fonctions de lecture de mots, ou est ce que c'est séparé?
Car j'avais fais une méthode qui permet de récupérer un bit de rang dans un mot lu avec une fonction de lecture de mots. |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
[solution de facilité] après si tu ne veux pas développer la lecture bit.. tu peu écrire dans ton programme TSX37, un petit bout de code qui copie les bits à lire dans des mots.. [/solution de facilité]
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
|
00
|
|
|
#5 | |
![]() ![]() Bruno GuérangéIngénieur développement logiciels Inscription : mai 2002 Messages : 7 898 ![]() |
Citation:
Avec le lien donné, ecrire/lire des bits %M ce n'est pas plus compliqué que des %MW. Sachant bien sur que les fonction 1 et 2 sont identiques vue que l'on est dans la zone %M. (de même que 3 et 4 donnent le même résultat)
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
Coucou,
Bon alors, a priori, j'arrive à écrire car je reçois une trame correcte en retour. Mais au niveau de la lecture (j'utilise la fonction 1), j'envoie la trame, et l'automate ne répond pas... Bizarre. Pourtant la trame que j'envoie me semble correcte.. |
|
|
00
|
|
|
#7 |
![]() ![]() Bruno GuérangéIngénieur développement logiciels Inscription : mai 2002 Messages : 7 898 ![]() |
Essaye avec le fonction 2 (c'est celle que j'utilise) et si ça ne fonctionne pas donne nous la trame que tu envois.
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
Voila, j'utilise a present la fonction 0x02 mais cela ne fonctionne toujours pas.
Voici ma trame (je le bit %M251) : 01 02 00 fb 00 01 c8 3b Aucune reponse. |
|
|
00
|
|
|
#9 |
![]() ![]() Bruno GuérangéIngénieur développement logiciels Inscription : mai 2002 Messages : 7 898 ![]() |
la trame est bonne.Sur quelle carte tu te connectes sur le tsx ? En mise au point sur la carte de com tu vis bien les "trames reçues" qui sont comptées en erreur ?
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
Bonjour!
j'ai du changement. Alors : Citation:
Citation:
|
||
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : novembre 2007 Messages : 81 ![]() |
Hello,
A vérifier, mais je pense que dans la trame que tu reçois, l'octet de rang 4 contient 8 bits, à partir de %M5... Jette donc un oeil dans le programme API, je parie que %M6 clignote. |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
ah donc ce que l'on recoit, ce n'est pas la valeur d'un bit, mais de tout un octet?
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 7 ![]() |
ok, donc bon, l'octet de rang 4 , je fais un &0x0001 dessus, et si ca vaut 1 c'est que le bit que je veux est a 1, sinon il est à 0.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com