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 :

communication entre deux automates schneider en modbus TCP/IP [Trucs & Astuces]


Sujet :

Automation

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 8
    Points
    8
    Par défaut communication entre deux automates schneider en modbus TCP/IP
    Bonjour,
    j'ai décidé d'écrire ce topic car je n'en ai trouvé aucun parlant du sujet.

    Plusieurs méthodes sont dispo pour échanger des valeurs entre PLC:
    global data
    I/O scanning
    utilisation des requêtes READ_VAR et WRITE_VAR

    I) global data
    aller dans communication=>réseau et choisissez ethernet_1 (celui créé auparavant), activer global data et compléter le comme suit:
    le timeout est suffisant par défaut tout comme la période de scrutation mais vous pouvez les adaptez tout comme l'adresse de groupe. Mettez un nom de groupe comme groupe_1 et allez dans l'editeur de données. Rajoutez les colonnes pour les global data (clic droit sur la barre d'en haut).
    Pour créer une global data, créer une variable normal et rajouté PUB dans donnés globales si vous la publié ou SUB si vous la scrutez.N'oubliez pas le nom du groupe et un ID (de 1 à 64). Dans l'automate qui scrute refaites de même mais remplacer pub par sub! facil

    2)IO scaning
    là il suffit de remplir en sachant que var maitre lecture est la variable où on va écrire le réesultat de la lecture et var maitre ecriture la source de l'écriture.

    3) READ et WRITE VAR
    là attention il faut déclarer l'esclave dans l'xway.
    par exemple l'esclave 100.198.122.1 sera en Xway 1.102
    il est important de mettre une valeur> à 100 pour etre en modbus!
    Le 1 est le réseau et 102 la station.
    l'adresse sera donc {1.102}0.2.0.1
    rack 0
    module à l'emplacement 2
    voie 0 (la voie 1 est la voie pcmcia)
    adresse esclave 1 (par def)
    c'est la difficulté principale
    utilisez le bloc ADDR pour convertir cette chaine en mot compréansible par les blocs read et write.
    Si vous dialoguez avec un quantum sachez que celui ci n'utilise pas les MW, iw etc et commence à 1 et non pas à 0 comme le premium.
    par exemple pour écrire à l'adresse 400001 on va écrire en MW2 !!
    si vous lisez des réels par exemple en MW2 et MW3 alors il faut mettre ces deux int dans un bloc int_to_word puis word_as_real pour reconstituer le réel d'origine.

    Ce post n'est pas ehaustif mais pointe les quelques problèmes récurrents rencontrés
    J'espère qu'il aidera un maximum d'utilisateur
    N'hésitez pas à laisser vos questions ou à compléter

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    J'ai un problème pour utiliser les read_var, j'utilise une carte tsxety110ws.
    Je n'arrive pas à sortir de l'automat. En lisant la doc, il est inscrit qu'il faut 3 DFBs TCP_CNX, TCP_SEND et TCP_RECEIVE ainsi qu'une famille d'EF TCPIP_DFB. Je n'ai pas le Cd "TLXCDUNTCPB33F" fournit avec la carte.

    Si quelqu'un peut m'éclairer sur ce problème.

    Ma ligne de commande est la suivante:

    IF %M10000 AND NOT %MW19550:X0 AND Fr_sec THEN %MW19552:=50;
    READ_VAR (ADR#{2.3}SYS,'%MW',3950,20,%MW19500:20,%MW195550:4);
    END_IF;

    Merci d'avance, Sebastien.

  3. #3
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Est-ce que dans la configuration de la carte de l'automate client (celui ou il y a le code que tu donnes cid-essus ) tu as bien mise le routtage de l'adresse XWay 2.3 avec l'adresse IP du dexième automate ?

    Quelles sont les adresse XWay et IP des deux automates ?
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Bonjour, oui les déclaration sont fait des deux côté.

    L'AP 1: 10.128.0.1, xway 1.1. carte tsxety5103
    L'AP 2: 10.128.0.2, xway 2.3. cartetsxety110ws

    Dans la conf de L'AP 1 j'ai mis comme ci dessous:





    Je viens de découvrir qu'il faut le Cd qui est livré avec la carte TSXETY110ws.
    Son nom "TLXCDUNTCPB33F", il contient la procédure et les DFBs qui servent à dialoger avec l'AP sur un réseau TCPIP.

    Le descriptif du Cd d'après la doc est "DFBs de messagerie libre TCPIP".

    Ca serai super de pouvoir me dépanner, merci d'avance.

    Cordialement, Sebastien.
    Images attachées Images attachées  

  5. #5
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Non pas besoin ni de cd ni de DFB, il faut faire la communication coté ETY5103 car là tu es sur d'avoir accès à tout.

    Je ne comprends pas la configuration de la carte ETY5103 : tu mets en face de l'adresse XWay 2.3 une adresse IP 10.128.23.3. Ainsi qu'une adresse IP de 10.128.23.1. Ce n'est pas ce que tu as dis dans ton message.

    Est-ce toi qui à choisi les adresse XWay ?

    Si tu le peux essaye de faire comme suit :

    AP1 : adresse xxx.xxx.xxx.1 masque 255.255.255.0 xway 1.1 (carte ETY5103)
    AP2 : adresse xxx.xxx.xxx.2 masque 255.255.255.0 xway 1.2 (Carte ETY110WS)
    Dans la config de l'AP1 défini le routage de 1.2 vers xxx.xxx.xxx.2

    Quand tu es en ligne sur l'ap1, va en mise au point sur la carte de ETY et effectue un ping de l'AP2 pour voir déjà que le circuit IP est bon.


    Maintenant si tu n'as besoin que de quelques mots, je serais toi je ne me ferais pas c****, je définirais un échange IOScanning dans la carte ETY5103 et tu n'auras rien à programmer ni te soucier des adresses XWAY (IOScannning utilise MODBUSIP)
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    J'ai eu le service Chorus, équipe commerciale de Schneider Electric.
    Ils ne comprennent pas mes difficultés de com avec la carte tsxety110ws.
    Le commercial me propose de faire un essai sur un automate moins ancien. En faite après une discussion assez long, il m'a dit que le processeur 57402 ne prend pas en charge les services web. Toute les cartes aujourd'hui on le service embarqué. Elles n'ont pas besoin de DFBs.


    Donc pour finir, il faut que je mets tous les AP sur le même réseau xway (2.X, car j'ai déjà un réseau Probus qui est sur le réseau 1), voir si cela fonctionne. Si je ne peux pas me connecter avec XIP ou en Web, mais les échanges fonctionnent en Read en Write_var c'est mieux que rien. Si rien ne fonctionne, changer le processeur ou trouver une carte ety210 sans service web.

    Le problème n'est pas simple, je vous tiens au courant de l'avancement.


    Sebastien

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Bonsoir,

    Le problème est résolu, les read et les write_var fonctionnent.

    Mon problème vient du processeur qui n'est pas compatible avec les services web. Je ne peux donc pas me connecter à distance avec XIP par exemple.

    Le processeur ne permet pas non plus de dialoguer sur des réseau XWAY différents. J'ai donc mis le même réseau sur tous les AP en fesant attention à la configuration des cartes applicom et des réseaux profibus.

    Sébastien

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    à mon avis il y a une erreur dans ton READ_VAR, essaies celui-ci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF %M10000 AND NOT %MW19550:X0 AND Fr_sec THEN 
    %MW19552:=20;
    READ_VAR (ADDR('2.3.SYS'),'%MW',3950,20,%MW19500:20,%MW195550:4);
    
    END_IF;
    ce code est valable pour unity

  9. #9
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF %M10000 AND NOT %MW19550:X0 AND Fr_sec THEN %MW19552:=50;
    READ_VAR (ADR#{2.3}SYS,'%MW',3950,20,%MW19500:20,%MW195550:4);
    END_IF;
    Sous PL7, cette ligne fonctionne.

    Dans l'aide en ligne je n'ai pas trouvé ADDR

    Sébastien

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 4
    Points : 8
    Points
    8
    Par défaut
    sous pl7 pro
    il faut utiliser ADR

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mise en reseau IOScanning
    Bonjour, moi j'ai un probleme:
    je veut mettre en reseau deux automates, un magelis, un tgbt et un pc, la communication a etait effectuer avec la modification de adresses IP, masque de sous reseau et adresse XWAY.
    Mon probleme est que j'ai essayer d'envoyer des information par IOScanning mais cela ne fonctionne pas ( si on peut me donner a marche a suivre ce serais gebnial ) mais par contre je suis obliger d'utiliser IOScanning.

  12. #12
    Membre à l'essai
    Homme Profil pro
    automaticien
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 12
    Points
    12
    Par défaut pb de com
    julien_02]bonjour à tous
    je suis étudiant en automatisme dans le cadre d'un projet je dois utiliser la fonction WRITE et READ VAR

    Le but du projet est de transféré des %MW de l'automate maître dans un autre table de %MW d'un autre automate en communication ethernet
    Pour que quand j'ai une variable ex: %MW15 à 1 je récupère dans %MW200 une valeur à 1
    API maitre : TSX 57 102 avec un carte de com ETY110 IP 192.168.1.3 (XWAY:1.3)
    API distant : TSX 57 2623 avec carte de com ETY intégré IP 192.168.1.1 (XWAY:1.1)

    Les adresses XWAY on été ajouté dans le driver XIP puis l'adresse esclave est mis dans messagerie (config de la carte ETY)

    j'ai donc voulu faire la commande suivante sans succés
    WRITE_VAR(ADR#{1.1}SYS,'%MW',2100,5,%MW900:5,%MW960:4) = Code dans l'api maitre
    READ_VAR(ADR#{1.3}SYS,'%MW',900,5,%MW2100:5,%MW2500:4) = Code dans l'api distant

    la communication dois être établi en éffectuant un ping l'échange est correct
    Merci d'avance

  13. #13
    Membre habitué
    Homme Profil pro
    Automaticien
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 130
    Points
    130
    Par défaut
    Bonjour,

    Personnelement, je préfère faire que des READ_VAR.

    Ensuite pour tes READ_VAR ou tes WRITE_VAR, je pense que c'est ton adresses (ADDM) qui ne doit pas être correcte.
    Lorsque j'avais fait des READ_VAR, voila ce que je renseignait dans l'addm 'Ethernet_A01{192.168.0.201}'. Ethernet_A01 correspond au nom de ta carte réseau, l'ip celle de ton équipement.
    Et ensuite si tes tableaux d'émission et de réception sont identiques, tu ne devrais plus avoir de soucie.

  14. #14
    Membre à l'essai
    Homme Profil pro
    automaticien
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse rapide
    si je fait que des read var je ne pourrais pas écrire mes variables étant donné que ces une fonction qui dois lire ? je me trompe peux être par contre je n'ai pas la fonction ADDM ou ADDR car mes 2 api sont sous PL7 PRO non pas sous unity donc je suppose qu'il fallait utilisé l'adresse XWAY

    Cdlt julien

  15. #15
    Membre habitué
    Homme Profil pro
    Automaticien
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Points : 130
    Points
    130
    Par défaut
    Désolé, je sais pas pourquoi je pensais que tu étais sur du Unity. Surement parce que j'aime pas PL78
    Mais ça doit être la même chose. Dans la table de gestion il te retourne quoi comme code erreur?

    Sinon pour l'histoire de faire que des READ, à mon avis c'est mieux de faire comme ça car tu es sur de savoir où est écrite ta variable.

    API01
    Zone De_API02 %MW1000:5 (Zone mémoire API01)
    Zone Vers_API02 %MW1010:5 (Zone mémoire API01)

    API02
    Zone De_API01 %MW9000:5 (Zone mémoire API02)
    Zone Vers_API01 %MW910:5 (Zone mémoire API02)

    Ensuite tu ne fais un READ_VAR Dans l'API01 pour aller lire la table Vers_API01 dans l'API02. Et inversement tu vas lire la table Vers_API02 dans l'API01.
    Je ne sais pas si je suis assez clair...

    Par contre quand je relis ton message tu as l'air de faire 2 fois le boulot. il faut que tu fasses soit une écriture du maitre vers l'esclave ou alors tu fais une lecture depuis l'esclave. Mais pas les 2.

  16. #16
    Membre à l'essai
    Homme Profil pro
    automaticien
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Dans API distant j'ai :
    erreur d'opération , valeur 0
    reponse incorrect , valeur 0
    taille de la réponse incoherente , valeur 2
    donc tout est ok

    Mon read :
    READ_VAR(ADR#{1.1}SYS,'%MW',491,1,%MW910:1,%MW920:4)
    si je modifie manuellement ma valeur %MW491 je reçoi bien dans %MW910 dans une table d'animation mais je n'arrive pas à lire automatiquement la valeur %MW491 de l'automate distant

    si quelqun peux me débuger sa serais super

    merci d'avance julien

  17. #17
    Membre à l'essai
    Homme Profil pro
    automaticien
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 12
    Points
    12
    Par défaut Pb avec le read var
    Bonjour j'ai un pb avec mon read var il me retourne le code d'érreur 11

    voici mon read
    READ_VAR(ADR#{1.3}SYS,'%MW',750,4,%MW950:4,%MW980:4)

    j'ai réussi à avoir la valeur de l'api distant une fois mais depuis code d'érreur 11 plus rien le bloc operate n'est plus scruté

    Merci d'avance

  18. #18
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Le syntaxe me semble correcte. Que dit l'aide sur l'erreur 11?

  19. #19
    Membre à l'essai
    Homme Profil pro
    automaticien
    Inscrit en
    Avril 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    l'aide dit : absence de ressource systeme (saturation des communications)

  20. #20
    Membre du Club
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2011
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Mai 2011
    Messages : 68
    Points : 64
    Points
    64
    Par défaut
    Je n'ai jamais rencontré ce problème, mais j'ai trouvé ça qui semble correspondre:

    D'après la FAQ de Schneider:
    Citation Envoyé par Support Schneider-Electric
    Comment éviter un code d'erreur 16#0B dans le compte rendu de communication de PL7 ?

    Cette erreur indique une absence de ressource système du processeur.

    Pour éviter cette erreur, il est important de n'envoyer qu'une requête à la fois.
    Pour cela, avant l'envoi d'une seconde requête, il faut vérifier que l'envoi précédent a bien été traité.
    Donc contrôler l'état du bit d'activité du mot de compte rendu de la fonction qui devra être à 0 avant l'envoi d'une requête additionnelle.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Communication entres deux automates scheinder par wifi
    Par Gk_44 dans le forum Automation
    Réponses: 13
    Dernier message: 08/06/2015, 12h15
  2. Communication entre deux Executables ?
    Par QAYS dans le forum Langage
    Réponses: 8
    Dernier message: 11/05/2005, 14h41
  3. communication entre deux executables
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 13/04/2005, 22h19
  4. Communication entre deux Threads
    Par rvzip64 dans le forum Langage
    Réponses: 13
    Dernier message: 28/01/2005, 09h14
  5. Réponses: 5
    Dernier message: 25/03/2003, 19h43

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