La version V1.1 d' EcoStruxure Machine Expert ne prend pas en charge les contrôleurs M258, LMC058 et LMC078.

Variables implicites - Drapeaux SFC

Présentation

Chaque étape SFC et action IEC fournit des variables générées de manière implicite permettant de contrôler l'état des étapes et des actions IEC pendant l'exécution. Vous pouvez également définir des variables pour surveiller et contrôler l'exécution d'un SFC (timeouts, réinitialisation, mode conseil). Ces variables peuvent aussi être générées implicitement par l'objet SFC.

En fait, pour chaque étape et chaque action IEC, une variable implicite est générée. Il s'agit d'une instance de structure, nommée d'après l'élément, par exemple, step1 pour une étape nommée step1. Dans les propriétés de l'élément, vous pouvez définir si, pour ce drapeau, une définition de symbole doit être exportée vers la configuration de symbole, ainsi que le mode d'accès au symbole dans le contrôleur.

Les types de données de ces variables implicites sont définis dans la bibliothèque IecSFC.library. Cette bibliothèque est incluse automatiquement dans le projet dès qu'un objet SFC est ajouté.

État des étapes et des actions et durée des étapes

En fait, pour chaque étape et chaque action IEC, une variable de structure implicite de type SFCStepType ou SFCActionType est créée. Les composants de la structure (drapeaux) décrivent l'état d'une étape ou d'une action, ou bien la durée de traitement en cours d'une étape active.

La syntaxe de la déclaration de variable implicite est la suivante :

<nom de l'étape>: SFCStepType;

ou

_<nom de l'action>:SFCActionType;

NOTE : les variables implicites des actions IEC sont précédées d'un trait de soulignement.

Les drapeaux booléens ci-dessous sont disponibles pour décrire l'état des étapes ou des actions.

Drapeaux booléens pour les étapes :

Drapeau booléen

Description

<nom de l'étape>.x

indique l'état d'activation actuel.

<nom de l'étape>._x

indique l'état d'activation pour le cycle suivant.

Si <nom de l'étape>.x = TRUE, l'étape est exécutée pendant le cycle en cours.

Si <nom de l'étape>._x = TRUE et <nom de l'étape>.x = FALSE, l'étape est exécutée au cycle suivant. Autrement dit, <nom de l'étape>._x est copié dans <nom de l'étape>.x au début d'un cycle.

Drapeaux booléens pour les actions :

Drapeau booléen

Description

_<nom de l'action>.x

a la valeur TRUE si l'action est exécutée.

_<nom de l'action>._x

a la valeur TRUE si l'action est active.

Génération de symboles

Vous pouvez définir dans les propriétés d'élément d'une étape ou d'une action si une définition de symbole doit être ajoutée à une configuration de symbole éventuellement créée et téléchargée, pour le drapeau de l'étape ou de l'action. À cet effet, créez une entrée correspondant au droit d'accès voulu dans la colonne Symbole de la vue des propriétés de l'élément.

NOTE : Si vous forcez la valeur d'état d'une étape (pour activer l'étape) à l'aide du drapeau booléen <nom de l'étape>.x, sachez que cela aura une incidence sur les états non contrôlés du diagramme SFC.

Warning_Color.gifAVERTISSEMENT

COMPORTEMENT IMPRÉVU DE L'ÉQUIPEMENT

N’utilisez pas le drapeau booléen <nom de l'étape>.x pour forcer une valeur d'état afin de d’activer une étape.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

Durée via les variables TIME :

Le drapeau t indique la durée écoulée depuis l'activation de l'étape. Cela s'applique uniquement aux étapes, qu'une durée minimale soit configurée ou non dans les attributs d'étape (voir ci-dessous : SFCError).

Pour les étapes :

<nom de l'étape>.t (<nom de l'étape>._t ne peut pas être utilisé à des fins externes)

Pour les actions :

Les variables de durée implicites ne sont pas utilisées.

Contrôle de l'exécution du SFC (timeouts, réinitialisation, mode conseil)

Vous pouvez utiliser certaines variables disponibles de manière implicite, également nommées drapeaux SFC (voir le tableau ci-dessous) pour contrôler le fonctionnement d'un SFC. Vous pouvez par exemple indiquer les dépassements de temps ou activer le mode conseil pour les changements de transitions.

Pour avoir accès à ces drapeaux, vous devez les déclarer et les activer. Pour ce faire, utilisez la boîte de dialogue Paramètres SFC. Il s'agit d'une sous-boîte de dialogue de la boîte de dialogue Propriétés de l'objet.

La déclaration manuelle, requise dans SoMachine/SoMachine Motion V3.1, n'est nécessaire que pour activer l'accès en écriture à partir d'un autre POU (voir le paragraphe Accès aux drapeaux).

Dans ce cas, tenez compte des points suivants :

Si vous déclarez le drapeau de manière globale, vous devez désactiver l'option Déclarer de la boîte de dialogue Paramètres SFC. Sinon, un drapeau local déclaré implicitement est créé et utilisé à la place du drapeau global. Gardez à l'esprit qu'au départ, les paramètres SFC d'un POU SFC sont déterminés par les définitions figurant dans la boîte de dialogue Options > SFC.

Notez qu'une déclaration d'une variable de drapeau effectuée seulement dans la boîte de dialogue Paramètres SFC n'apparaît que dans la vue en ligne du POU SFC.

Les variables implicites (drapeaux) ci-dessous peuvent être utilisées. Vous devez pour cela les déclarer et les activer dans la boîte de dialogue Paramètres SFC.

Variable

Type

Description

SFCInit

BOOL

Si cette variable prend la valeur TRUE, le SFC revient à l'étape initiale. Les étapes, actions et autres drapeaux SFC sont tous réinitialisés (initialisation). L'étape initiale reste active, mais elle n'est pas exécutée tant que la valeur de la variable est TRUE. Rétablissez SFCInit sur FALSE pour revenir au traitement normal.

SFCReset

BOOL

Cette variable se comporte comme SFCInit. La différence réside dans le fait que la suite du traitement a lieu après l'initialisation de l'étape initiale. Ainsi, le rétablissement du drapeau SFCReset sur FALSE peut être effectué lors de l'étape initiale.

SFCError

BOOL

Dès qu'un timeout se produit lors d'une étape du SFC, cette variable prend la valeur TRUE. Condition préalable : SFCEnableLimit doit avoir la valeur TRUE.

Notez qu'aucun autre timeout ne peut être enregistré avant une réinitialisation de SFCError. SFCError doit être défini pour que les autres drapeaux de contrôle de durée (SFCErrorStep, SFCErrorPOU, SFCQuitError) puissent être utilisés.

SFCEnableLimit

BOOL

Vous pouvez utiliser cette variable pour l'activation (TRUE) et la désactivation (FALSE) explicites du contrôle de durée des étapes via SFCError. Cela signifie que, si cette variable est déclarée et activée (Paramètres SFC), elle doit avoir la valeur TRUE pour que SFCError fonctionne. Sinon, les timeouts des étapes ne sont pas enregistrés. L'utilisation peut être raisonnable pendant les démarrages ou le fonctionnement manuel. Si cette variable n'est pas définie, SFCError fonctionne automatiquement.

Condition préalable : SFCError doit être définie.

SFCErrorStep

STRING

Cette variable contient le nom d'une étape à laquelle un timeout a été enregistré par SFCError.timeout.

Condition préalable : SFCError doit être définie.

SFCErrorPOU

STRING

Cette variable contient le nom du POU SFC dans lequel un timeout s'est produit.

Condition préalable : SFCError doit être définie.

SFCQuitError

BOOL

Tant que cette variable a la valeur TRUE, l'exécution du diagramme SFC est interrompue et la variable SFCError est réinitialisée. Une fois la valeur FALSE rétablie, tous les états en cours dans les étapes actives sont réinitialisés.

Condition préalable : SFCError doit être définie.

SFCPause

BOOL

Tant que cette variable a la valeur TRUE, l'exécution du diagramme SFC est interrompue.

SFCTrans

BOOL

Cette variable prend la valeur TRUE dès qu'une transition est déclenchée.

SFCCurrentStep

STRING

Cette variable contient le nom de l'étape actuellement active, indépendamment du contrôle de durée. En cas de séquences simultanées, le nom de l'étape extérieure droite est enregistré.

SFCTipSFCTipMode

BOOL

Ces variables permettent d'utiliser le mode par à-coups dans le diagramme actuel. Une fois ce mode activé via SFCTipMode=TRUE, vous ne pouvez passer à l'étape suivante qu'en définissant SFCTip=TRUE (front montant). Tant que SFCTipMode a la valeur FALSE, il est possible de passer les transitions.

La figure ci-dessous présente des exemples de drapeaux d'erreur détectés par SFC dans le mode en ligne de l'éditeur.

Un timeout a été détecté lors de l'étape s1 de l'objet SFC POU (drapeau SFCError).

G-SE-0025871.2.gif-high.gif

 

 

Accès aux drapeaux

Pour permettre l'accès aux drapeaux de contrôle de l'exécution du SFC (timeouts, réinitialisation, mode conseil), déclarez et activez les variables des drapeaux comme décrit ci-dessus (Contrôle de l'exécution du SFC).

Syntaxe d'accès à partir d'une action ou d'une transition dans le POU SFC :

<nom de l'étape>.<drapeau>

ou

_<nom de l'action>.<drapeau>

Exemples :

status:=step1._x;

checkerror:=SFCerror;

Syntaxe d'accès à partir d'un autre POU :

<POU SFC>.<nom de l'étape>.<drapeau>

ou

<POU SFC>._<nom de l'action>.<drapeau>

Exemples :

status:=SFC_prog.step1._x;

checkerror:=SFC_prog.SFCerror;

Pour l'accès en écriture depuis un autre POU, tenez compte des points suivants :

oLa variable implicite doit également être déclarée explicitement comme variable VAR_INPUT du POU SFC.

oSinon, elle doit être déclarée globalement dans une GVL (liste de variables globale).

Exemple : déclaration locale

PROGRAM SFC_prog
VAR_INPUT
  SFCinit:BOOL;
END_VAR

Exemple : déclaration globale dans une GVL

VAR_GLOBAL
  SFCinit:BOOL;
END_VAR

Accès au drapeau dans PLC_PRG :

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