Skip to main content

オブジェクト:インターフェース

シンボル: _cds_icon_interface.png

キーワード: INTERFACE

インターフェイスは、オブジェクト指向プログラミングの手段です。オブジェクト ITF メソッドとプロパティのプロトタイプのセットについて説明します。この文脈では、プロトタイプは、 メソッドプロパティ 宣言のみが含まれ、実装は含まれません。

これにより、共通のプロパティを持つさまざまな機能ブロックを同じように使用できます。アン ITF クリックすると、オブジェクトがアプリケーションまたはプロジェクトに追加されます プロジェクト→オブジェクトの追加→インターフェース

詳細については、以下を参照してください。 インターフェイスを実装する

58. インターフェイスの追加

継承

名前

インターフェイス名

高度

standard icon:入力フィールドまたは入力アシスタントを介して選択したインターフェイスを拡張します _cds_icon_three_dots.png。これは、新しいインターフェイスを拡張するインターフェイスのすべてのメソッドが新しいインターフェイスでも使用できることを意味します。

詳細については、以下を参照してください。 インターフェイスを拡張する



ヒント

インターフェースでは多重継承がサポートされています。

あなたは追加することができます インターフェイスプロパティインターフェイス方式 にオブジェクト ITF 物体。インターフェイスメソッドには、入力変数、出力変数、およびVAR_IN_OUT変数の宣言のみを含めることができますが、実装は含めることができません。

プログラムでインタフェースも使用できるようにするには、このインタフェースを実装する機能ブロックが必要です。

これの意味は:

  • ファンクションブロックには、宣言部分のIMPLEMENTSリストにインターフェイスが含まれています

  • 関数ブロックには、インターフェイスのすべてのメソッドとプロパティのプロトタイプの実装が含まれています

機能ブロックは、1つ以上のインターフェースを実装できます。同じパラメータで同じメソッドを使用できますが、異なる機能ブロックで異なる実装コードを使用できます。

. 次の点に注意してください。
  • インターフェイス内で変数を定義してはなりません。インターフェイスには実装部分もアクションもありません。メソッドのコレクションのみが定義され、入力、出力、およびVAR_IN_OUT変数のみを定義できます。

  • CODESYS インターフェイスの型で宣言された変数を常に参照として扱います。

  • インターフェイスを実装する機能ブロックには、インターフェイスのメソッドの実装コードが含まれている必要があります。インターフェイスとまったく同じようにメソッドに名前を付けました。メソッドには、インターフェイスと同じ入力、出力、およびVAR_IN_OUT変数が含まれています。

インターフェイスの参照とオンラインの変更

コンパイラバージョンが3.4.1.0未満の場合、次のことが発生する可能性があります。

変数が追加または削除されたため、または変数のタイプが変更されたために関数ブロックがデータを変更した場合、 CODESYS 機能ブロックのすべてのインスタンスを新しいメモリ位置にコピーします。ただし、この場合、インターフェイス参照は新しいメモリの場所ではなく、古いメモリの場所を参照します。

コンパイラバージョン> = 3.4.1.0の場合、 CODESYS インターフェイス参照を自動的に再アドレス指定して、 CODESYS また、オンライン変更の場合に正しいインターフェースを参照します。 CODESYS これには追加のコードとより多くの時間が必要であるため、関係するオブジェクトの数によってはジッターの問題が発生する可能性があります。したがって、 CODESYS オンライン変更の実行前に関係する変数とインターフェース参照の数を表示し、オンライン変更を実行するか中止するかを決定できます。

516.

インターフェイスの定義と機能ブロックでのその使用

インターフェイスを挿入しました ITF アプリケーションの下。インターフェイスにはメソッドが含まれています 方法1方法2ITF方法1方法2 実装コードは含まれていません。必要な変数宣言は、メソッドの宣言部分にのみ挿入します。

その後、インターフェイスを実装するデバイスツリーに機能ブロックを挿入する場合 ITFCODESYS メソッドも自動的に挿入します 方法1方法2 機能ブロックの下。ここでは、メソッドに関数ブロック固有のコードを実装できます。

_cds_img_itf_method.png