Présentation

Il existe trois types de valeurs booléennes :

  • Le type BOOL, qui contient uniquement la valeur FALSE (= 0) ou TRUE (= 1).

  • Le type EBOOL, qui contient la valeur FALSE (= 0) ou TRUE (= 1), mais aussi des informations relatives à la gestion des fronts descendants ou montants et au forçage.

  • Le type ANY_BOOL, déclaré uniquement comme type de données référencées qui combine les types BOOL et EBOOL.

Principe du type BOOL

Ce type occupe un octet de mémoire, mais la valeur est stockée sur un seul bit.

Par défaut, de ce type a la valeur FALSE (= 0).

Il est accessible à l'aide d'une adresse contenant le décalage de l'octet correspondant :

Paramètres d'adresse :

Le bit extrait de mot, quant à lui, est accessible à l'aide d'une adresse contenant les informations suivantes :

  • le décalage de l'octet correspondant ;

  • le rang définissant sa position dans le mot.

Paramètres d'adresse :

Principe du type EBOOL

Ce type occupe un octet de mémoire qui contient :

  • le bit de la valeur (V) ;

  • le bit d'historique (H) pour la gestion des fronts montants ou descendants. À chaque changement d'état de l'objet, la valeur est copiée dans ce bit ;

  • le bit contenant l'état de forçage (F). Il est égal à 0 si l'objet n'est pas forcé et à 1 s'il l'est.

Par défaut, la valeur des bits associés au type EBOOL est FALSE (= 0).

Il est accessible à l'aide d'une adresse indiquant le décalage de l'octet correspondant :

Paramètres d'adresse :

Chronogramme historique du type EBOOL

Le chronogramme ci-après illustre les principaux états des bits de valeur et d'historique associés au type EBOOL.

Les fronts montants du bit de valeur (1, 4) sont copiés dans le bit d'historique lors du cycle suivant de l'automate (2, 5). Les fronts descendants du bit de valeur (2, 7) sont copiés dans le bit d'historique lors du cycle suivant de l'automate (3, 8).

Chronogramme et forçage du type EBOOL

Le chronogramme ci-après illustre les principaux états des bits de valeur, d'historique et de forçage associés au type EBOOL.

Les fronts montants du bit de valeur (1, 4) sont copiés dans le bit d'historique lors du cycle suivant de l'automate (2, 5). Les fronts descendants du bit de valeur (2, 7) sont copiés dans le bit d'historique lors du cycle suivant de l'automate (3, 8). Entre (4 et 5), le bit de forçage est égal à 1 et les bits de valeur et d'historique conservent la valeur 1.

Principe du type ANY_BOOL

Les outils de supervision peuvent utiliser le type ANY_BOOL (SCADA, par exemple) pour réserver des variables déclarées comme type de données générique. Le type de données générique est l'élément partagé avec Control Expert.

Une variable de type ANY_BOOL est déclarée comme référence à l'aide du mot clé REF_TO. La rubrique Déclaration du type de données Reference fournit des informations complémentaires sur le référencement et le déréférencement.

NOTE : La conversion implicite est autorisée sur les variables de type ANY_BOOL déréférencées (BOOL_TO_*).

Limitations liées à l'utilisation du type ANY_BOOL :

  • Le type ANY_BOOL ne peut pas être utilisé pour déclarer une variable dans l'application Control Expert. Il est nécessaire de faire référence au type ANY_BOOL avec le mot-clé REF_TO pour déclarer une variable.

  • Le référencement de REF_TO_ANY_BOOL n'est pas autorisé dans un programme.

    MyRefToAnyBoolVar := REF(MyVar); n'est pas autorisé (si MyVar est : BOOL ou EBOOL).

  • Dans un EF ou un EFB, il est impossible d'utiliser le type ANY_BOOL pour déclarer un paramètre ou une variable, même sous forme de référence avec le mot-clé REF_TO.

  • Seul l'historique de front est géré pour le référencement d'un type EBOOL. La fonction de forçage n'est pas prise en charge par le type ANY_BOOL lors du référencement d'un type EBOOL.

  • Dans un système SCADA, la variable de type ANY_BOOL constitue l'élément partagé et le dictionnaire de données fournit le type final de la référence ANY_BOOL (BOOL ou EBOOL).

  • La référence à une référence n'est pas prise en charge.

    Le déréférencement en cascade n'est pas géré (par exemple, MyAnyBool1^MyAnyBool2^.xy n'est pas pris en charge).

Plate-forme : le type ANY_BOOL est utilisé sur les plates-formes suivantes :

  • Modicon M580 (version de SE ≥ V2.00)

  • Modicon Quantum 140CPU6•••• (version de SE ≥ V3.30)

  • Modicon M340 (version de SE ≥ V2.70)

Horodatage : une variable de référence ANY_BOOL peut être horodatée en mode horodatage système uniquement si la variable référencée est une constante (attribut IsConstant activé). La variable référencée peut être associée aux éléments suivants :

  • Une source BMX ERT 1604 T.

  • Une source BMX CRA 312 10.

  • Une source BME CRA 312 10.

  • Une source d'UC Modicon M580 (version de SE ≥ V2.00).

  • Une variable topologique (par exemple %M100).

Variables d'automate appartenant aux types booléens

Liste des variables

Variable

Type

Bit interne

EBOOL

Bit système

BOOL

Bit extrait de mot

BOOL

Entrées %I

Bit d'erreur de module

BOOL

Bit d'erreur de voie

BOOL

Bit d'entrée

EBOOL

Sorties %Q

Bit de sortie

EBOOL

Compatibilité entre BOOL et EBOOL

Les opérations suivantes sont autorisées entre ces deux types de variables :

  • copie de valeurs ;

  • copie d'adresses.

Copies entre types

 

Destination BOOL

Destination EBOOL

Source BOOL

Oui

Oui

Source EBOOL

Oui

Oui

Compatibilité entre les paramètres des fonctions élémentaires (EF)

Paramètre effectif (externe à l'EF)

Paramètre BOOL formel (interne à l'EF)

Paramètre EBOOL formel (interne à l'EF)

BOOL

Oui

Non

EBOOL

Entrée -> Oui

E-S -> Non

Sortie -> Oui

Oui

Compatibilité entre les paramètres des blocs fonction (EFB\DFB)

Paramètre effectif (externe au FB)

Paramètre BOOL formel (interne au FB)

Paramètre EBOOL formel (interne au FB)

BOOL

Oui

Entrée -> Oui

E-S -> Non

Sortie -> Non

EBOOL

Entrée -> Oui

E-S -> Non

Sortie -> Non

Oui

Compatibilité entre les variables de tableau

 

ARRAY[i...j) OF BOOL destination

ARRAY[i...j) OF EBOOL destination

ARRAY[i..j) OF BOOL source

Oui

Non

ARRAY[i..j) OF EBOOL source

Non

Oui

Compatibilité entre les variables statiques

 

Adressage direct BOOL (%MW:xi)

Adressage direct EBOOL (%Mi)

Variable déclarée BOOL (Var:BOOL)

Oui

Non

Variable déclarée EBOOL (Var:EBOOL)

Non

Oui

Compatibilité

Les types de données EBOOL sont soumis aux règles suivantes :

  • Une variable de type EBOOL ne peut pas être transmise en tant que paramètre d'entrée/de sortie de type BOOL.

  • Les tableaux EBOOL ne peuvent pas être transmis en tant que paramètres de type ANY d'un FFB.

  • Les tableaux BOOL et EBOOL ne sont pas compatibles avec la demande d'affectation (même règle que pour les paramètres FFB).

  • Sur Quantum :

    • Une variable localisée de type EBOOL ne peut pas être transmise en tant que paramètre d'entrée/de sortie de type EBOOL.

    • Les tableaux EBOOL ne peuvent pas être transmis en tant que paramètres d'un DFB.