IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Automation Discussion :

Pb pour l'établissement d'une connection MODBUS entre un TSX NANO et une programme sous delphi


Sujet :

Automation

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Pb pour l'établissement d'une connection MODBUS entre un TSX NANO et une programme sous delphi
    Bonjour,

    Je cherche à établir une communication entre un TSX NANO et un PC avec une application développée sous Delphi via le protocole MODBUS (dans le but de réaliser une supervision de mon programme chargé dans l'API), MAIS SANS SUCCES ...

    Concernant la partie matérielle, celle-ci est opérationnelle. En effet en utilisant le logiciel "MODSCAN32" (logiciel du commerce gérant la communication MODBUS), j'arrive à échanger des données.

    Ma configuration matérielle est la suivante :
    - Convertisseur RS232/485 type : IC-485S de chez ATEN
    - API : type TSX NANO

    Concernant le logiciel que j'ai développé sous DELPHI7, il est basé sur le composant Tcomport. La configuration de celui-ci est :
    - 9600 bauds
    - 8 bits (RTU)
    - 1 bit de stop
    - parité paire (even)
    voir source en pièce jointe.


    Cependant, malgré plusieurs essais la communication ne s'établit pas entre le PC et le TSX NANO lorsque j'utilise l'application sous delphi (la LED "COMM" de l'API ne chg pas d'état) et fonctionne bien avec le logiciel MODBUS.

    Avez-vous des pistes ??

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Points : 126
    Points
    126
    Par défaut
    Hello,

    si j'ai bien compris, la requète Modbus que tu as codée demande la lecture du registre 9 (%MW9 dans le Nano).
    Juste une vérification: cette variable existe bien dans l'API ?

    Comment sont reliés le PC et le Nano ? Tu utilises le même câble de comm que lors des tests avec MODSCAN32 ?
    C'est une liaison RS232 ou RS485 ?

    As-tu la possibilité de voir si la requete Modbus sort bien du port série (avec un autre PC) ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Effectivement la variable %MW9 est bien existante dans le programme du TSX NANO.

    Le PC est raccordé à l'interface ATEN type IC 485S (convertisseur RS232 <-> RS485). Celle-ci est également raccordée à l'automate TSX NANO.

    La partie matériel est commune aux deux logiciels.
    1er logiciel :
    MODSCAN32 => bon fonctionnement de la communication sous protocole MODBUS
    2ème logiciel :
    Application Delphi avec composant Tcomport que j'ai réalisée. Et là, problème. Je pense que ma programmation du Tcomport n'est pas correcte.

    Au vu des différents essais que j'ai pu réaliser, je pense que la requête ne sort pas du PC lorsque j'utilise l'application sous DELPHI. En effet sachant que le dialogue fonctionne avec le logiciel MODSCAN32 et pas avec l'application sous Delphi.
    Mais je ne vois pas comment ctrl le bon fct du composant Tcomport ???

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Points : 126
    Points
    126
    Par défaut
    Hello,

    Nono40 a fait un tutoriel sur TComPort dispo ici: http://nono40.developpez.com/tutorie.../2005/comport/. Ca pourra peut-être t'aider si tu ne l'as pas déjà lu.

    Sur le convertisseur ATEN, y a-t-il des leds indiquant l'activité sur la liaison ?
    Si oui, regarde comment ça clignote avec MODSCAN32, et vois ensuite si ça clignote en émission et en réception avec ton programme Delphi. Ca t'indiquera facilement si une trame est envoyée vers le Nano, et si celui-ci répond.

    Je ne connais pas Delphi, je ne pourrai pas plus t'aider que cela.
    Bon courage, et tiens-nous au courant, on profitera de ton expérience

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Le tutoriel de nono40 est très bien fait (je l'avais déjà lu, merci qd même).

    Concernant mon convertisseur ATEN, il n'est pas équipé de LED.

    Après qq heures de galère, j'ai confectionné un bouchon de test rs232 pour voir si mes données étaient bien émises par le PC. Le résultat est concluant,des données sont émises du PC.

    Par la suite j'ai chargé un logiciel de contrôle liaison RS232 ("Serial Port Monitor" pour ne pas le nommer). L'installation de ce logiciel m'a permis de voir que les données que je pensais émettre du PC n'étaient en réalité pas celles émises.

    En effet la trame théorique est : 01 03 00 09 00 01 54 08 et
    la trame émise en réalité est : 01 03 00 00 08 c6 45 00.

    j'ai modifié les octets '00' par '01', ce qui donne :
    trame théorique : 01 03 01 09 01 01 54 08
    trame émise en réalité: 01 03 01 09 01 01 54 08

    tout ceci me conduit à dire que c'est l'octet '00' qui me pose pb !!!

    Savez-vous dire comment fait-on pour coder l'octet '00' avec le composant Tcomport sous delphi ?

    Merci d'avance

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 34
    Points
    34
    Par défaut
    Il faut utiliser la fonction Write plutôt que WriteStr je pense.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Points : 126
    Points
    126
    Par défaut
    Hello,

    l'octet 00 est probablement interprété comme un marqueur de fin de chaine de caractères.
    Tente la solution de yome3k, ça devrait faire l'affaire.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    l'utilisation de la fonction "write" plutôt que "writestr" n'est pas concluante.
    le problème reste entier.

    Sinon, connaissez-vous une dll gratuite permettant de faire la gestion du protocole MODBUS RS485 ?

    Tout ceci dans le but de faire un essai avec autre chose que le composant TCOMPORT (pour info, j'utilise la version "comport library version 4.0")

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Points : 126
    Points
    126
    Par défaut
    Hello,

    Citation Envoyé par cyval Voir le message
    l'utilisation de la fonction "write" plutôt que "writestr" n'est pas concluante.
    le problème reste entier.
    Quel est exactement le problème ? La requète est-elle envoyée complètement sans modification vers le Nano ?

    Citation Envoyé par cyval Voir le message
    Sinon, connaissez-vous une dll gratuite permettant de faire la gestion du protocole MODBUS RS485 ?
    Non désolé (pour ce que je connais de Delphi, déjà...)
    Il me semble que tu ne dois pas être très loin de la solution... Bon courage !

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 34
    Points
    34

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Après bcp de recherches et essais, j'ai fini par trouver l'origine de mon pb.
    En réalité, le composant Tcomport que j'avais installé sur mon PC n'était pas celui dédié à Delphi7.
    Il existe un composant spécial pour delphi 7 :
    Tcomport2.64-delphi7 (disponible sous http://sourceforge.net/projects/comport/files/).

    Merci pour votre aide

  12. #12
    Futur Membre du Club
    Femme Profil pro
    technicien maintenance
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : technicien maintenance
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 5
    Points
    5
    Par défaut logiciel qui traduit les programmes de allen bradley à siemens
    bjr, est-ce-qu'il est existe un logiciel qui fait la traduction d'un programme réalisé en l'automate allen bradley (logiciel de programmation est rslogix 5000) à siemens ( step 7_400)?
    mrc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wifi]Logiciel pour tester une connection wifi ?
    Par genoud dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 15/08/2005, 13h29
  2. Réponses: 2
    Dernier message: 05/07/2004, 17h50
  3. Octets recus et envoyés pour une connection
    Par portu dans le forum Web & réseau
    Réponses: 8
    Dernier message: 18/11/2003, 12h43
  4. Ports disponibles pour une connection
    Par Walm dans le forum Développement
    Réponses: 7
    Dernier message: 06/10/2003, 22h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo