Skip to main content

要素:クラス

クラスは、カプセル化されたデータと操作を備えた論理ユニットです。また、インスタンス化できる変数タイプを表します。クラスのインスタンスが変数として別のクラスに割り当てられる場合、これはクラスのロールまたは式と呼ばれます。

クラスはメソッドを提供できます FB_Init これは、インスタンスを初期化するときに呼び出されます。

クラスは別のクラスから継承できます。この関係は一般化と呼ばれます。

クラスは別のクラスをインスタンス化できます。この関係はコンポジションと呼ばれます。

クラスは別のクラスを認識できます。この関係はアソシエーションと呼ばれます。

クラスは、POU、ライブラリPOU(タイプ:プログラム)、機能ブロック、または機能にすることができます。

_uml_img_class_all.png

(1)

コマンドアイコン

ヒント

クラスを選択すると、そのコマンドシンボルが表示されます。

(2)

ヘッダ

  • POUタイプのID

    • <<program>> プログラム(PRG)の場合

    • 機能ブロック(FB)のIDがありません

    • <<function>> 関数の場合(FUN)

    • <<library>> ライブラリPOUの場合

    • <<missing>> ライブラリがプロジェクトに統合されていないライブラリPOUの場合

    • <<compiled>>:コンパイルされたライブラリからのライブラリPOUの場合

      注記

      すべての情報が利用できるわけではありません。

  • POUの名前

(3)

属性のリスト

エントリの形式は次のとおりです。 <attribute name> : <attribute type> <label>

例: fbBase : FB_BaseClass

ID: <label>

  • {input}:の変数の場合 VAR_IN 範囲

  • {output}:の変数の場合 VAR_OUT 範囲

  • なし:内部の非表示変数のID(タイプ: VAR)。

(4)

操作(アクション、メソッド、またはプロパティ)のリスト

例:

ACT_DoIt(){action}

METH_DoIt(...) DWORD

PROP_Counter Set(...)

PROP_Counter Get (...)

メソッドのエントリの形式は次のとおりです。

+ <method name> (<variable name> : < variable type> ) <return type>

のエントリの場合 _cds_icon_interface_property.png インターフェイスプロパティ、特別 SetGet メソッドがリストされています。

アクションのエントリの形式は次のとおりです。

<action name> () {action}

<label>には以下が適用されます。

  • 1つのアクションのみが {action} ID。

  • メソッドまたはインターフェースプロパティ _cds_icon_interface_property.png (特殊な方法)IDがありません。

プロパティ

識別子

クラスの名前

例: Manager_A

ユーザー入力

このクラスには、次のように識別される属性と操作のリストが拡張されています。 _uml_icon_checkbox_minus.png。コマンドアイコンはクラスの上に表示されます。これらを使用して、関係要素を挿入できます。

アクション

結果

の中に BaseClass クラスをクリックします _uml_icon_delete_shallow.png コマンドアイコン。

The BaseClass クラスはクラス図からのみ削除されます。オブジェクト自体はプロジェクトに残ります。

ヒント

削除された後、クラスはに表示されます ツールボックス で見る 着信相互参照 また 発信相互参照。このための要件は、削除されたクラスと関係があるクラス図の要素を選択することです。

クリック _uml_icon_delete_deep.png コマンドアイコン。

The BaseClass クラスはクラス図でのみ削除されます。オブジェクトは削除され、もう存在しません。

  1. クリック _uml_icon_composition.png コマンドアイコン。

  2. 図の空白の領域をクリックします。

    The POUを追加する ダイアログが開きます。

  3. 新しいオブジェクトの名前を指定します。

    NewClass

  4. クリック 追加 ボタンをクリックしてダイアログを終了します。

The NewClass 関数ブロックが生成され、そこで最初のクラスのインスタンスがインスタンス化されます。

構図の矢印は新しいものから指しています NewClass 最初のクラス BaseClass クラス。

このクラスは、最初のクラスの関数ブロックインスタンスの宣言によって拡張されました。

FUNCTION_BLOCK NewClass
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    InstanceBase : BaseClass;
END_VAR
  1. クリック _uml_icon_composition.png コマンドアイコン。

  2. 2番目のクラスをクリックします。

構成矢印は、2番目のクラスから1番目のクラスを指しています。

2番目のクラスは、最初のクラスの関数ブロックインスタンスの宣言によって拡張されています。

FUNCTION_BLOCK SecondClass
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    InstanceBase : BaseClass;
END_VAR
  1. クリック _uml_icon_association.png コマンドアイコン。

  2. 図の空白の領域をクリックします。

    The POUを追加する ダイアログが開きます。

  3. 新しいオブジェクトの名前を指定します。

    NewClass

  4. クリック 追加 ボタンをクリックしてダイアログを終了します。

新しい NewClass クラスが生成され、そこで最初のクラスのポインタが宣言されます。

関連付けの矢印は、新しいクラスから最初のクラスを指します。最初 BaseClass クラスは新しいものを認識します NewClass クラス。

The NewClass クラスは、へのポインタの宣言によって拡張されました BaseClass クラス。

FUNCTION_BLOCK NewClass
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    ptrBase : POINTER TO BaseClass;
END_VAR
  1. クリック _uml_icon_association.png コマンドアイコン。

  2. 既存の2番目のクラスをクリックします。

関連付けの矢印は、最初のクラスから2番目のクラスを指します。最初のクラスは2番目のクラスを認識します。

最初のクラスは、2番目のクラスへのポインタの宣言によって拡張されました。

FUNCTION_BLOCK SecondClass
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    ptrBase : POINTER TO BaseClass;
END_VAR
  1. クリック _uml_icon_generalization.png コマンドアイコン。

  2. 図の空白の領域をクリックします。

    The POUを追加する ダイアログが開きます。

  3. 新しいオブジェクトの名前を指定します。

    NewClass

  4. クリック 追加 ボタンをクリックしてダイアログを終了します。

最初のクラスから継承する新しいクラスが生成されます。

一般化は、新しいクラスから最初のクラスを指します。新しいクラスは最初のクラスから継承します。

新しいクラスの宣言は、 EXTENDS ファーストクラスの拡張として。

FUNCTION_BLOCK ClassNew EXTENDS BaseClass
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
  1. クリック _uml_icon_association.png コマンドアイコン。

  2. 既存の2番目のクラスをクリックします。

一般化は、ファーストクラスからファーストクラスへのポイントです。

2番目のクラスの宣言は、最初のクラスの拡張で生成されています。

FUNCTION_BLOCK SecondClass EXTENDS BaseClass

  1. クリック _uml_icon_realization.png コマンドアイコン。

  2. 図の空白の領域をクリックします。

    The インターフェイスの追加 ダイアログが開きます。

  3. 新しいオブジェクトの名前を指定します。

    ITF_New

  4. クリック 追加 ボタンをクリックしてダイアログを終了します。

発信クラスから実装されるインターフェースが生成されます。

実装の矢印は、クラスから新しいものを指します ITF_A インターフェース。

これで、クラスは新しいインターフェイスを実装します。クラスの宣言は、実装によって拡張されました。

FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_New
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
  1. クリック _uml_icon_association.png コマンドアイコン。

  2. 既存のインターフェースをクリックします。

インターフェイスはクラスによって実装されます。

実現矢印は、クラスからインターフェースを指しています。

クラスの宣言は、インターフェースの実装によって拡張されました。

FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
  1. クラス名をクリックします。

    最初のクリック後、名前の輪郭が青色で表示されます。

  2. もう一度クリックします。

    2回目にクリックすると、名前を変更するための入力フィールドが開きます。

  3. クラス名を変更します。

オブジェクト名(デバイスツリーまたは POU ビュー)は、宣言に自動的に適合されています。

  1. 属性名または操作名をクリックします。

    最初のクリック後、名前の輪郭が青色で表示されます。

  2. もう一度クリックします。

    2回目にクリックすると、名前を変更するための入力フィールドが開きます。

  3. 名前を変更します。

変更は、プロジェクトに同期的かつ自動的に適用されます。

クラス要素をダブルクリックします。

対応するオブジェクトエディタが開きます。

6. 構成:Fb_DにはFb_Aが含まれています
_uml_img_example_composition.png
FUNCTION_BLOCK Fb_D
VAR
    VarFb_A: Fb_A;
    ...
END_VAR


7. アソシエーション:Fb_AはClass_2を認識します
_uml_img_example_assoziation_class_simple.png
FUNCTION_BLOCK Fb_A
VAR
    Class_2 : POINTER TO Class_2;
END_VAR


8. 一般化:Fb_AはFb_Baseから継承します
_uml_img_example_generalization_function_block.png
FUNCTION_BLOCK Fb_A EXTENDS Fb_Base


9. 実装:Class_AはItf_Aを実装します
_uml_img_example_realization.png
FUNCTION_BLOCK Class_A IMPLEMENTS Itf_A