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 :

Dword et Modbus


Sujet :

Automation

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Dword et Modbus
    Bonjour,

    Dans le cadre de mon projet de stage, j'ai comme objectif de créer un programme pour dialoguer avec un disjoncteur intelligent via ModBus,

    Sur codesys, j'ai utilisé le bloc Com_mod_mast pour envoyer et recevoir des trames.

    Le petit problème c'est que je stocke mes données dans un Dword, je voudrai donc savoirs comment faire pour lire ces données via le Dword.

    Plus précisément comment faire pour éclater mon Dword en 2 word ou en 4 bytes ?

    Merci d'avance pour l'aide !

    Bonne journée

  2. #2
    Membre actif
    Homme Profil pro
    développeur en automation industrielle
    Inscrit en
    Mai 2012
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : développeur en automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 177
    Points : 265
    Points
    265
    Par défaut
    salut

    si tu fixes les adresses, il suffit d adresser le bon %MB / %MW

    sinon tu peux faire , un mask suivi d'un deécalage et une conversion DWORD_TO_WORD ou DWORD_TO_BYTE

    si je ne me trompe pas c'est une librairie codesys lié a abb ?

    alors je pense que tu as mal compris le fonctionnement du bloc
    et surtout le fonctionnement des entrée NB et DATA

    DATA est bien un DWORD , mais celui ci ne contient aucune données provenant du modbus
    c'est un pointeur, pointant vers les variables interne qui elles reçoivent les données modbus

    exemple simple , tu veux récuperer 10 bytes de ton esclave modbus

    pour cela tu crées un tableau de byte : "tableau: ARRAY [0..9] OF BYTE;"

    sur l entrée NB du bloc Com_mod_mast, tu entres 10 ( le nombre de byte que tu veux lire dans l esclave modbus

    a l entrée DATA tu y relie un operateur FBD "ADR" et à l entrée du bloc ADR tu met "tableau[0]"

    tableau[0] correspond au debut du tableau de reception
    ADR lui va aller chercher l adresse memoire physique et la transmettre sous la forme d un pointeur au bloc Com_mod_mast qui lui pourra ecrire les donnée modbus

    Images attachées Images attachées  

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse, par contre hier j'ai trouvé une autre solution

    Finalement j'utilise le tableau et ça marche plutôt bien !

    Merci encore !
    Images attachées Images attachées  

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Par contre j'ai une question en plus je sais pas si on peut la traiter dans la lancée.

    Pour communiquer avec mes différents modules Modmast, je dois pouvoir les traiter chacun leurs tours, du coup j'utilise un module de comptage, le problèmes c'est qu'a partir de deux modules je bloque.

    Il existe une autre solution pour traité tour à tour les modules mod mast ?
    ou es que j'utilise mal le module CTU ?

    Merci d'avance pour vos réponses !

  5. #5
    Membre actif
    Homme Profil pro
    développeur en automation industrielle
    Inscrit en
    Mai 2012
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : développeur en automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 177
    Points : 265
    Points
    265
    Par défaut
    ben il y a plus simple, tu les chaines les sortie DONE sur les entrées EN :o

    et tu initie une communication avec soit un timer soit une fonction blink

    edit : par rapport a tes operation unpack , elle sont pas forcement nécéssaire

    pour avoir accès au bit il suffit de d écrire :

    tableau_status[0].0

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour la piste je me m'est à chercher de suite !

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai mis les différents blocs en chaine et j'ai temporisé avec des blinks pour l'instant pas de problèmes

    J'ai une petite question ( J'abuse peut être de ta sympathie ) avec mes blocs mod mast j'arrive sans problèmes à recevoir des données tel que les statuts ou la tension par exemple le fait étant que je peux commander mon disjoncteur via modbus. Ouvrir et fermer le disjoncteur est donc possible mais je ne sais pas du tout comment faire avec le bloc mod mast.

    En pièce jointe les infos a ma disposition !

    Merci encore pour votre aide !!
    Images attachées Images attachées    

  8. #8
    Membre actif
    Homme Profil pro
    développeur en automation industrielle
    Inscrit en
    Mai 2012
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : développeur en automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 177
    Points : 265
    Points
    265
    Par défaut
    ça ne fonctionne pas comme tu as fait ?

    pouratnt ton premier screenshot me parait correct

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Si ça fonctionne du moins ca ne m'affiche pas d'érreur , Mais la question est comment faire en sorte pour écrire ( ou envoyer une trame) tout ce qui est lecture ca marche nickel mais pour l’écriture je ne sais pas du tout comment faire :S

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Sujet Résolu vous je vous remercie pour le temps que vous m'avez accordé !!

  11. #11
    Membre actif
    Homme Profil pro
    développeur en automation industrielle
    Inscrit en
    Mai 2012
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : développeur en automation industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 177
    Points : 265
    Points
    265
    Par défaut
    pour l ecriture , regarde dans la doc du disjoncteur afin de voir
    si il n y a pas de paramètres a modifier dessus afin de déverrouiller l écriture

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Ouép, C'était juste un paramétre à régler ^^'

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

Discussions similaires

  1. protocol modbus
    Par greatboy dans le forum Développement
    Réponses: 7
    Dernier message: 21/01/2008, 10h58
  2. Profibus DB, Modbus ou unitelway?
    Par Arwamour dans le forum Développement
    Réponses: 2
    Dernier message: 03/07/2004, 23h19
  3. transtyper ^dword en ^byte ?
    Par - Robby - dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2003, 00h58
  4. [SDK ou MFC] Registry ( Binaire et DWORD )
    Par FRATJF dans le forum MFC
    Réponses: 2
    Dernier message: 02/07/2003, 16h56
  5. Fip, modbus and co...
    Par xave dans le forum Développement
    Réponses: 2
    Dernier message: 24/05/2002, 13h25

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