Comportement fonction IEC 61131-3

Partie du forum pour tout ce qui concerne la partie soft, ou logiciel, dans l'industrie. Forum, conseil, astuce et entraide sur les logiciels d'automatisme ou d'informatique industrielle .
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 780
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Comportement fonction IEC 61131-3

Message par djé »

Bonjour tout le monde,

Petite question sur la norme IEC 61131-3 et le comportement des fonction standard en lien avec EN/ENO.

EN c'est l'entrée de validation du bloc, si EN n'est pas activé le bloc fonction n'est pas lu.
ENO c'est la sortie de validation du bloc, si une erreur interne a eu lieu, cette sortie est False.

Sur une fonction toute bête d'égalité par exemple programmé en LADDER:

Lorsque A passe de Vrai à Faux comment évolue B ?
testIEC.png
testIEC.png (11.44 Kio) Vu 1186 fois
Est-ce que le comportement est définit par IEC ou c'est laissé à l'appréciation du constructeur/éditeur du logiciel de programmation ?

Vrai question.
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 ...
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1042
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Comportement fonction IEC 61131-3

Message par MiGaNuTs »

Bonjour.
Pour moi si A passe a faux le bloc n'est plus exécuté et B conserve la valeur qu'il avait a la fin de l'itération précédente.
Je ne vois pas pourquoi il repasserai a 0 par "magie".
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Comportement fonction IEC 61131-3

Message par itasoft »

MiGaNuTs a écrit : 20 juin 2023, 16:21 Bonjour.
Pour moi si A passe a faux le bloc n'est plus exécuté et B conserve la valeur qu'il avait a la fin de l'itération précédente.
Je ne vois pas pourquoi il repasserai a 0 par "magie".
--------
j'ai pas testé mais si ça marche comme tu dis, ça serait la plus grosse connerie du siècle
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2080
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Comportement fonction IEC 61131-3

Message par philou77 »

Salut !

L’entrée EN conditionne se qui se passe à l’intérieur de la fonction.

Si pas activée il y a des chances que le la sortie OUT soit à zéro.

La bobine étant à l’extérieur de la fonction, l’automate fera l’évaluation de la bobine et donc elle prendra l’état de OUT.

J’ai pas testé mais je vois pas pourquoi ça marcherai autrement.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1042
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: Comportement fonction IEC 61131-3

Message par MiGaNuTs »

itasoft a écrit : 20 juin 2023, 18:25 j'ai pas testé mais si ça marche comme tu dis, ça serait la plus grosse connerie du siècle
Pourquoi donc ?

A partir du moment ou tu n’exécute pas le code d'une fonction ou d'un sous programme y'a aucune raison que ses variables de sortie changent.
Moi c'est le contraire qui m’inquièterai.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Comportement fonction IEC 61131-3

Message par itasoft »

pas testé mais Par défaut sur Unity on as pas les EN/ENO sur ce bloc alors que se passe t'il dans ce cas ?
dire à djé de tester avant de publier son post
Automaticien privé (de tout)
itasoft@free.fr
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2080
Enregistré le : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Comportement fonction IEC 61131-3

Message par philou77 »

Re,

Testé avec Control expert.
La sortie OUT n’est pas modifiée par l’entrée EN.

Si on affiche pas EN/ENO l’entrée EN est forcée à 1
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
steph68
Codeur fou
Codeur fou
Messages : 269
Enregistré le : 21 oct. 2015, 08:23

Re: Comportement fonction IEC 61131-3

Message par steph68 »

Salut,

La norme dit ceci :
2.5.2.1a Use of EN and ENO in function blocks
As shown in table 20 for functions, for function blocks also an additional Boolean EN (Enable)
input or ENO (Enable Out)output, or both, can be provided by the manufacturer or user
according to the declarations
VAR_INPUT EN: BOOL := 1; END_VAR
VAR_OUTPUT ENO: BOOL; END_VAR
When these variables are used, the execution of the operations defined by the function block
shall be controlled according to the following rules:
1) If the value of EN is FALSE (0) when the function block instance is invoked, the
assignments of actual values to the function block inputs may or may not be made in an
implementation-dependent fashion, the operations defined by the function block body
shall not be executed and the value of ENO shall be reset to FALSE (0) by the
programmable controller system.
2) Otherwise, the value of ENO shall be set to TRUE (1) by the programmable controller
system, the assignments of actual values to the function block inputs shall be made and
the operations defined by the function block body shall be executed. These operations
can include the assignment of a Boolean value to ENO.
3) If the ENO output is evaluated to FALSE (0), the values of the function block outputs
(VAR_OUTPUT) keep their states from the previous invocation.
NOTE It is a consequence of these rules that the ENO output of a function block must be explicitly
examined by the invoking entity if necessary to account for possible error conditions.
@+
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 780
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Comportement fonction IEC 61131-3

Message par djé »

Merci Steph68

Donc effectivement c'est le comportement normal d'une fonction de ne pas mettre à jour ses sorties et de garder le dernier résultat lorsque l'entrée EN n'est pas validée.

Ça m'a fait drôle la première fois quand j'ai expérimenté ce comportement en Run. J'ai vraiment cru devenir dingue, comme quoi en automatisme on ne peux jamais être sûr de rien et que même sur des fonctions banales, faut lire la doc.

Comme je bosse essentiellement en SIEMENS depuis plus de 20 ans et que eux on va dire sont plus "user- friendly" au niveau du LADDER ils ont masqués ce comportement en STEP7 et carrément créé un nouvelle représentation contact avec TIA. Cela permet de faire du LADDER à l'ancienne sans trop se poser de question.
D'ailleurs en Schenider c'est un peu pareil, ils ont une boite à deux pattes et tu écris ta comparaison dedans. Pas de soucis.

Maintenant sur les systèmes pur IEC avec cette implémentation du EN/ENO c'est plus chaud en LADDER et il faut un peu plus réflechir pour éviter des comportement imprévu: effectivement on peut masquer EN/ENO, mais du coup on ne peut pas les intégrer dans un ligne classique sinon il faut composer et ca devient infernal:
testIEC_alt2.png
ou
testIEC_alt1.png
testIEC_alt1.png (10.64 Kio) Vu 1082 fois

Pareil pour un Simple MOVE conditionné, ne jamais mettre un bobine à la suite du MOVE, chose que j'ai fait moult fois en SIEMENS.
Faut s'adapter.
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
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7089
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Comportement fonction IEC 61131-3

Message par itasoft »

c'est une fonction logique , les paramètres EN/ENO ça devrait pas exister,(sur Unity ils ni sont pas par défaut) encore une grosse connerie de norme à la con, ceci dit je vois pas dans quels cas j'utiliserais ces paramètres
Automaticien privé (de tout)
itasoft@free.fr
Répondre