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

Pointeur SUPER

Présentation

Un pointeur nommé SUPER est automatiquement disponible pour chaque bloc fonction qui étend un bloc fonction de base. Il pointe vers les instances de bloc fonction de base.

Ceci répond de manière efficace à cette situation :

oLe pointeur SUPER permet d'accéder aux méthodes de mise en œuvre des blocs fonction de base. Grâce au mot-clé SUPER, il est possible d'appeler une méthode dans l'instance de classe de base (parent). Aucune liaison de nom dynamique n'est ainsi effectuée.

Le pointeur SUPER peut être utilisé uniquement dans les méthodes et dans la mise en œuvre des blocs fonction associés.

SUPER pointant vers le bloc fonction de base, vous devez annuler la référence pour obtenir l'adresse du bloc fonction : SUPER^.METH_DoIt

Appel du pointeur SUPER dans différents langages d'implémentation

Langage d'implémentation

Exemple

ST

SUPER^.METH_DoIt();

FBD/CFC/LD

G-SE-0027226.1.gif-high.gif

 

 

NOTE : la fonctionnalité du pointeur SUPER n'est pas encore mise en œuvre dans la liste d'instructions.

Exemple

Utilisation des pointeurs SUPER et THIS.

FUNCTION_BLOCK FB_Base
VAR_OUTPUT
    iCnt : INT;
END_VAR
    METHOD METH_DoIt : BOOL
    iCnt := -1;
    
    METHOD METH_DoAlso : BOOL
    METH_DoAlso := TRUE;

FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
    iBase: INT;
END_VAR
// Calls the method defined under FB_1
THIS^.METH_DoIt();
THIS^.METH_DoAlso();
// Calls the method defined under FB_Base
SUPER^.METH_DoIt();
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;

    METHOD METH_DoIt : BOOL
    iCnt := 1111;
    METH_DoIt := TRUE;

PROGRAM PLC_PRG
VAR
    myBase: FB_Base;
    myFB_1: FB_1;
    iTHIS: INT;
    iBase: INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;