Graph7: Actions avec conditions
Graph7: Actions avec conditions
Bonjour,
J'utilise Codesys v3.5 et j'aimerai réaliser le Graph7 suivant dans Codesys:
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.
J'utilise Codesys v3.5 et j'aimerai réaliser le Graph7 suivant dans Codesys:
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
- djé
- Dieu du process
- Messages : 778
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
Re: Graph7: Actions avec conditions
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Graph7: Actions avec conditions
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.
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
- Bernardo59
- Dieu du process
- Messages : 965
- Enregistré le : 20 oct. 2015, 05:48
- Localisation : Nimes
Re: Graph7: Actions avec conditions
Salut,
Si %Q0.0 c'est ta sortie pour "Avancer P1" alors l'équation est la suivante:
%Q0.0 := %X5;
Si %Q0.0 c'est ta sortie pour "Avancer P1" alors l'équation est la suivante:
%Q0.0 := %X5;
Re: Graph7: Actions avec conditions
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.
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.
Re: Graph7: Actions avec conditions
Bonjour,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;
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
Re: Graph7: Actions avec conditions
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 !
Il suffit d'écrire dans ton équation de sortie :
/P1 en arriere ET étape 5 = ta_sortie.
Des Set et reset de bits multiples.
c'est de la je pense que vient l'expression imbitable !
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.
- djé
- Dieu du process
- Messages : 778
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
Re: Graph7: Actions avec conditions
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"
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Graph7: Actions avec conditions
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.
Le SFC ressemble à du Grafcet, mais ne fonctionne pas complètement comme du Grafcet !
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 !
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, ).
Cordialement.
Le "Grafcet" CODESYS, n'est pas du Grafcet mais du SFC. La distinction est subtile mais importante.
Le SFC ressemble à du Grafcet, mais ne fonctionne pas complètement comme du Grafcet !
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 !
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, ).
Cordialement.
Re: Graph7: Actions avec conditions
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.
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.
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.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.
Avec mes meilleures salutations