Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 17h15   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
Par défaut MODBUS et fonctions ( TSX3721 ) need help

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.
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 20h14   #2
Membre régulier
 
Homme
Inscription : novembre 2007
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 81
Points : 99
Points : 99
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
Poil_dur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 20h31   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
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.
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 20h36   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 779
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 779
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par momol14 Voir le message
D...%Mxxx avec les fonctions de lecture de mots, ou est ce que c'est séparé? ....
pour un tsx37 "c'est séparé"... ...

[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é]
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 19h27   #5
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 898
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 898
Points : 11 911
Points : 11 911
Citation:
Envoyé par bbil Voir le message
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..
Nan dans son cahier des charges il doit écrire aussi

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 :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 18h14   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
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..
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 21h45   #7
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 898
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 898
Points : 11 911
Points : 11 911
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 :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 10h06   #8
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
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.
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2008, 00h08   #9
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 898
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 898
Points : 11 911
Points : 11 911
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 :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 15h02   #10
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
Bonjour!
j'ai du changement.
Alors :
Citation:
01 05 00 05 00 00 dd cb
( je passe l'etat du bit %M5 à 0 ) => ca marche:
01 05 00 05 00 00 dd cb



01 02 00 05 00 01 a9 cb ( je lis l'etat du bit %M5)
Reponse :
01 02 01 00 a1 88
donc ca c'est bon, mais une fois sur 2 je recois ca :
01 02 01 02 20 49
Je ne comprend pas pourquoi ce 02..
et le meme probleme pour le bit à 1 :
Citation:
01 05 00 05 FF 00 9c 3b
( je passe l'etat du bit %M5 à 1 ) => ca marche:
01 05 00 05 FF 00 9c 3b



01 02 00 05 00 01 a9 cb ( je lis l'etat du bit %M5)
Reponse :
01 02 01 01 60 48
donc ca c'est bon, mais 1 fois sur 2 je recois
01 02 01 03 e1 89
Je ne comprend pas pourquoi ce 03 ...
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 16h42   #11
Membre régulier
 
Homme
Inscription : novembre 2007
Messages : 81
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2007
Messages : 81
Points : 99
Points : 99
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.
Poil_dur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 17h04   #12
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
ah donc ce que l'on recoit, ce n'est pas la valeur d'un bit, mais de tout un octet?
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2008, 17h11   #13
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
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.
momol14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web