Skip to main content

Drapeaux SFC

Les indicateurs SFC sont des variables générées implicitement avec des noms prédéfinis. Ils permettent d'influencer le traitement d'un graphique SFC. Ils permettent, par exemple, d'afficher les délais d'expiration ou de réinitialiser les chaînes d'étapes. De plus, le mode jogging permet d'activer spécifiquement les transitions. Pour y accéder, il est nécessaire de déclarer et d'activer ces variables.

Drapeaux SFC

Nom

Type de données

Description

SFCInit

BOOL

TRUE: CODESYS réinitialise la séquence à l'étape initiale. Les autres indicateurs SFC sont également réinitialisés (initialisation). Tant que la variable est TRUE, l'étape initiale reste active, mais ses actions ne sont pas exécutées. Ce n'est que lorsque vous définissez SFCInit encore une fois à FALSE le POU est-il ensuite traité normalement.

SFCReset

BOOL

Se comporte de manière similaire à SFCInit

Cependant, CODESYS Le traitement se poursuit après l'initialisation de l'étape initiale. Par exemple, lors de l'étape initiale, vous pouvez immédiatement réinitialiser le SFCReset drapeau à FALSE.

SFCError

BOOL

TRUE Si un timeout survient dans un graphe SFC. Si un second timeout survient dans le programme, il n'est pas enregistré, sauf si vous avez préalablement réinitialisé la variable. SFCError. La déclaration de SFCError est une exigence pour que d'autres variables d'indicateur fonctionnent pour contrôler la séquence chronologique (SFCErrorStep, SFCErrorPOU, SFCQuitError).

SFCEnableLimit

BOOL

Utilisé spécifiquement pour activer (TRUE ) et en désactivant (FALSE ) le contrôle du délai d'attente par étapes à l'aide SFCError

Si vous déclarez et activez cette variable (paramètres SFC), vous devez alors la définir sur TRUE pour SFCError pour fonctionner. Sinon, les délais d'expiration sont ignorés. Ceci est utile, par exemple, au démarrage ou en mode manuel. Si vous ne déclarez pas la variable, SFCError fonctionnera automatiquement.

L'exigence est la déclaration de SFCError.

SFCErrorStep

STRING

Stocke le nom de l'étape qui a provoqué un délai d'attente, qui a été enregistré par SFCError

Le nom est conservé jusqu'à ce que l'erreur d'étape enregistrée soit réinitialisée au moyen de SFCQuitError (FAUX -> VRAI).

L'exigence est la déclaration de SFCError.

SFCErrorPOU

STRING

Stocke le nom du bloc dans lequel un délai d'attente s'est produit et a été enregistré par SFCError Le nom est enregistré jusqu'à ce que le délai d'attente soit réinitialisé par SFCQuitError.

L'exigence est la déclaration de SFCError.

SFCQuitError

BOOL

Tant que cette variable booléenne est TRUE, CODESYS met en pause le traitement du graphique SFC et tout délai d'attente, enregistré dans la variable SFCError, est réinitialisé. Si vous réinitialisez la variable à FALSE, puis tous les temps précédents dans les étapes actives sont réinitialisés.

L'exigence est la déclaration de SFCError.

SFCPause

BOOL

Tant que cette variable est TRUE, CODESYS met en pause le traitement du graphique SFC.

SFCTrans

BOOL

TRUE lorsqu'une transition est active

SFCCurrentStep

STRING

Affiche le nom de l'étape active, quelle que soit la surveillance du temps

Dans les branches parallèles, le nom de l'étape de la ligne de branchement la plus à droite est toujours stocké.

,SFCTip

SFCTipMode

BOOL

Contrôle le « mode jogging » du bloc SFC

Si vous activez cet indicateur avec SFCTipMode=TRUE, vous pouvez alors activer l'étape suivante uniquement en définissant SFCTip à TRUE. Alors que SFCTipMode est réglé sur FALSE, les transitions peuvent également être utilisées pour poursuivre l'activation.

,SFCErrorAnalyzation

Contient sous forme de chaîne toutes les variables qui contribuent à la valeur totale TRUE de SFCError (timeout en une étape)

SFCError doit être activé pour cela.

SFCErrorAnalyzation utilise implicitement la fonction du POU AnalyzeExpression de la Analyzation bibliothèque.

,SFCErrorAnalyzationTable

Contient dans un tableau toutes les variables qui contribuent à la valeur totale TRUE de SFCError (timeout en une étape)

SFCError doit être activé pour cela.

SFCErrorAnalyzationTable utilise implicitement la fonction du POU AnaylzeExpressionTable de la Analyzation bibliothèque.

Génération implicite d'indicateurs SFC

CODESYS déclare automatiquement les indicateurs SFC lorsque vous activez les options correspondantes. Vous pouvez définir cette option dans le Paramètres SFC onglet de la boîte de dialogue des propriétés pour chaque POU, ou dans le SFC boîte de dialogue des paramètres du projet pour chaque POU SFC du projet.

Astuce

Les paramètres SFC pour les indicateurs SFC des POU individuels ne sont effectifs que si vous n'avez pas sélectionné l'option Utiliser les valeurs par défaut option. Lorsque vous sélectionnez cette option, les paramètres définis dans les paramètres du projet s'appliquent.

Astuce

Les indicateurs SFC que vous déclarez dans la boîte de dialogue Paramètres SFC ne sont visibles que dans la vue en ligne du bloc SFC.

Génération explicite d'indicateurs SFC

Déclaration manuelle, qui était nécessaire dans CoDeSys V2.3, n'est désormais requis que pour activer l'accès en écriture depuis un autre bloc. Dans ce cas, il est important de noter que lorsque vous déclarez l'indicateur dans une liste de variables globales, vous devez désactiver son Déclarer dans la boîte de dialogue des paramètres SFC. Si vous ne le faites pas, un indicateur SFC local est implicitement déclaré, ce qui CODESYS utilise à la place de la variable globale.

Exemples d'application pour SFCError

Exemple 2. Exemple

Vous avez créé un bloc SFC nommé sfc1, qui contient le s1 étape. Vous avez défini des délais d'expiration dans les propriétés de l'étape. (Voir « Vue en ligne de sfc1 (SFC POU" ci-dessous.)

Si pour une raison quelconque le s1 l'étape reste active plus longtemps que ses propriétés de temps ne l'ont permis (timeout), puis CODESYS définit le SFCError drapeau pour autoriser l'accès par l'application.

Pour autoriser l'accès, vous devez déclarer et activer l'indicateur SFC dans les paramètres SFC. Si vous l'avez seulement déclaré, l'indicateur SFC n'est affiché que dans la vue en ligne de sfc1 dans la partie déclaration, mais il n'a aucune fonction.

_cds_img_sfc_sfc_flags.png

L'indicateur SFC peut désormais être référencé dans le POU, par exemple dans une action (2) ou en dehors du bloc (1).

_cds_img_sfc_sfcerror_example.png

Vue en ligne du bloc SFC sfc1

_cds_img_sfc_sfcerror_example_online.png

SFCError est TRUE dès qu'un délai d'attente survient dans sfc2.

Notez que vous pouvez utiliser le SFCErrorAnalyzation et SFCErrorAnalyzationTable drapeaux (Analyzation bibliothèque) pour déterminer les composants de l'expression qui contribuent à la valeur TRUE de la SFCError.



Accès aux drapeaux

Syntaxe d'accès

Vous attribuez le drapeau directement dans le POU : <variable name>:=<SFC flag>

Exemple 3. Exemple

checkerror:=SFCerror;



À partir d'un autre POU avec le nom du POU : <variable name>:=<POU name>.<SFC flag>

Exemple 4. Exemple:

checkerror:=SFC_prog.SFCerror;



Si vous avez besoin d'un accès en écriture à partir d'un autre bloc, vous devez également déclarer explicitement l'indicateur SFC en tant que variable VAR_INPUT dans le bloc SFC ou globalement dans un GVL.

Exemple 5. Exemple

Déclaration locale

PROGRAM SFC_prog
VAR_INPUT
  SFCinit:BOOL;
END_VAR

Déclaration globale dans une liste de variables globales

VAR_GLOBAL
  SFCinit:BOOL;
END_VAR
PROGRAM PLC_PRG
VAR
  setinit: BOOL;
END_VAR
SFC_prog.SFCinit:=setinit;  //Write access to SFCinit in SFC_prog