Graph7: Actions avec conditions

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Avatar du membre
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Enregistré le : 27 mars 2021, 17:17

Graph7: Actions avec conditions

Message par Digitrain »

Bonjour,

J'utilise Codesys v3.5 et j'aimerai réaliser le Graph7 suivant dans Codesys:
Graph7_cond_sur_1_action.jpg
Aucun problème pour créer des étapes, des transitions et des actions, par contre je ne trouve pas comment faire pour mettre une condition à une action. Dans l'exemple ci-dessus "Reculer P1" si P1 n'est pas en arrière par exemple.

D'avance merci de votre aide.
Avec mes meilleures salutations
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 778
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Graph7: Actions avec conditions

Message par djé »

Directement sur le pilotage de la sortie !
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Enregistré le : 27 mars 2021, 17:17

Re: Graph7: Actions avec conditions

Message par Digitrain »

Bonjour,

Merci pour la réponse mais pouvez-vous être un peu plus précis je ne comprend pas exactement où... ?
Je précise que je parle des "actions IEC", donc celles qui viennent se placer dans le rectangle en face d'une action Graph7.
Avec mes meilleures salutations
Avatar du membre
Bernardo59
Dieu du process
Dieu du process
Messages : 965
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes

Re: Graph7: Actions avec conditions

Message par Bernardo59 »

Salut,

Si %Q0.0 c'est ta sortie pour "Avancer P1" alors l'équation est la suivante:

%Q0.0 := %X5;
DurandO
Maître du binaire
Maître du binaire
Messages : 402
Enregistré le : 21 mars 2021, 15:31

Re: Graph7: Actions avec conditions

Message par DurandO »

Bonjour,
je ne connais CodeSys, mais je ne peux que te conseiller la règle suivante :
- toujours écrire une sortie qu'une seule fois (cela évitera à celui qui passera après toi de se faire des nœuds au cerveau)
- les Set/Reset de sorties sont à proscrire
- écrire dans le même réseau les Set/Reset de bit est préférable pour la relecture du programme

Donc dans ton cas, tu n'écrit pas ta sortie dans l'action étape, réserve cela à d'autres action genre initialiser un compteur, charger un mot numéro de cycle, etc...
Tu écrit ta sortie dans une section de programme exécutée après le Grafcet et tu la conditionne par le bit d'étape active.
S'il n'existe pas de variable indiquant que ton étape grafcet est active (si qui serait étonnant), dans ce cas tu active un bit dans l'action Grafcet et tu réutilise ce bit au lieu du bit d'étape.
Voila.
Avatar du membre
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Enregistré le : 27 mars 2021, 17:17

Re: Graph7: Actions avec conditions

Message par Digitrain »

Bernardo59 a écrit : 31 mars 2021, 16:26 Salut,

Si %Q0.0 c'est ta sortie pour "Avancer P1" alors l'équation est la suivante:

%Q0.0 := %X5;
Bonjour,

Ce code c'est l'action de l'étape 5, activer la sortie %Q0.0 mais ce n'est pas ça que je demande. Je demande comment dans l'interface graphique du Graph7 de Codesys, on fait pour conditionner une action dans une étape.
Avec mes meilleures salutations
DurandO
Maître du binaire
Maître du binaire
Messages : 402
Enregistré le : 21 mars 2021, 15:31

Re: Graph7: Actions avec conditions

Message par DurandO »

On voit trop de programme écrit par des incompétents.
Des Set et reset de bits multiples.
c'est de la je pense que vient l'expression imbitable !
djé a écrit : 31 mars 2021, 13:58 Directement sur le pilotage de la sortie !
Tout à fait.
Il suffit d'écrire dans ton équation de sortie :
/P1 en arriere ET étape 5 = ta_sortie.
Modifié en dernier par DurandO le 31 mars 2021, 16:43, modifié 1 fois.
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 778
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Graph7: Actions avec conditions

Message par djé »

Salut,
Je ne connais pas le SFC dans Codesys et s'il existe une Action IEC correspondant à une action conditionnelle.
J'ose espérer que quelque part en LADDER ou autre il y a une ligne de code qui correspond au pilotage proprement dit de la sortie et que le pilotage ne se limite pas à la simple équation "sortie" := "étape active" ce qui serait une hérésie de mon point de vue.
Donc si tu souhaites que l'action ne se fasse pas si le contact est déja activé, tu le programmes sur la sortie (et ce devrait être codé comme çà même si c'était une transition)
"sortie" := "étape active" et pas "fin de course"
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
JAPIB
Aguerri de l'automation
Aguerri de l'automation
Messages : 84
Enregistré le : 20 oct. 2015, 23:32
Localisation : Lyon

Re: Graph7: Actions avec conditions

Message par JAPIB »

En "Grafcet" CODESYS il n'est pas possible de conditionner une action IEC de manière graphique.

Le "Grafcet" CODESYS, n'est pas du Grafcet mais du SFC. La distinction est subtile mais importante. :o
Le SFC ressemble à du Grafcet, mais ne fonctionne pas complètement comme du Grafcet ! :shock:
En Grafcet "pur" on peut faire du parallélisme interprété, pas en SFC.
Quesako le parallélisme interprété ?? : Lors d'une dérivation et OU, si les équations des transitions ne sont pas exclusives, on peut actionner les étapes des différentes branches en parallèle. Bien sur il faut faire très attention à ce qui se passe ensuite, ce peut être dangereux, mais c'est possible avec le Grafcet. C'est d'ailleurs une chose très peu courante, on préfère souvent avoir des équations de transitions exclusives; mais bien géré ce peut être intéressant.
Avec le SFC c'est impossible. Si les transitions sont vraies simultanément, une seul branche est activée. En CODESYS c'est la branche la plus à gauche.
Mais je m'écarte du sujet de la question ! :oops:

Je souscrit en plus au conseil de Durand0 "toujours écrire une sortie qu'une seule fois".
Le plus simple (pour la relecture) et le plus sécurisant, est de dessiner son Grafcet sans associer les sorties aux étapes IEC.
Puis, dans un autre module programme, en langages St ou LD (ou autre), d'écrire les équations des sorties en utilisant les bits d'étapes (du type Nom_Etape.x). Il est alors possible d'inclure des conditions supplémentaires, des sécurité et des modes manuel ou autre. Et surtout de gérer une équation pour piloter une sortie.
C'est une solution ancienne et très utilisée; Télémécanique appelait cela le traitement postérieur (et oui je suis un ancien programmeur de PL7 2 et PL7 3, :D ).

Cordialement.
Avatar du membre
Digitrain
Asservi son premier moteur
Asservi son premier moteur
Messages : 27
Enregistré le : 27 mars 2021, 17:17

Re: Graph7: Actions avec conditions

Message par Digitrain »

Bonjour,

Merci à tous pour vos réponses. J'ai fais ma formation professionelle au début 2000 sur des automates TSX Modicon Télémécanique avec PL7 Pro. Il me semblait que l'on pouvait le faire directement dans le Graph7 mais je vois que c'est un peu différent avec Codesys.
JAPIB a écrit : 31 mars 2021, 23:51 Le plus simple (pour la relecture) et le plus sécurisant, est de dessiner son Grafcet sans associer les sorties aux étapes IEC.
Puis, dans un autre module programme, en langages St ou LD (ou autre), d'écrire les équations des sorties en utilisant les bits d'étapes (du type Nom_Etape.x). Il est alors possible d'inclure des conditions supplémentaires, des sécurité et des modes manuel ou autre. Et surtout de gérer une équation pour piloter une sortie.
Oui c'est ce que je pensais faire mais avant je voulais être sûr qu'il ne soit pas possible de le faire directement dans le Graph7 car ça me semblait plus "naturel" de le faire là, d'où ma question.
Avec mes meilleures salutations
Répondre