Skip to main content

ポインター:SUPER

The SUPER ポインタは、オブジェクト指向プログラミングに使用される特別な変数です。

SUPER は、機能ブロックが生成されたベース機能ブロックインスタンスへの機能ブロックのポインタです。 The SUPER ポインタを使用すると、基本機能ブロック(基本クラス)のメソッドの実装にアクセスすることもできます。 A SUPER ポインタは、機能ブロックごとに自動的に使用可能になります。使用できます SUPER メソッドおよび関連する機能ブロックの実装でのみ。

ポインターの間接参照: SUPER^

を使用して SUPER ポインタ: SUPER キーワードを使用して、基本クラスまたは親クラスのインスタンスで有効なメソッドを呼び出します。

98.

ST

SUPER^.METH_DoIt();

FBD / CFC / LD

_cds_img_pointer_super_fbd.png


99.

の使用 SUPERTHIS ポインタ

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

THIS^.METH_DoIt();  //Call of the methods of FB_1
THIS^.METH_DoAlso();

SUPER^.METH_DoIt();   //Call of the methods of FB_Base
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;


ヒント

THIS 命令リスト(IL)にはまだ実装されていません。