Skip to main content

設計と開発

クラス図でグラフィカルにプログラムする場合、変更により、 POU ビューと デバイス 見る。新しいオブジェクトが基本構造に挿入され、既存のオブジェクトが適応されます。たとえば、クラス図を介してPOUに宣言を挿入できます。

これにより、クラス図でアプリケーションのアーキテクチャを設計し、適切なPOUを同期的に取得できます。次に、POUの実装を補足します。

次の手順では、アプリケーションのクラス図を作成します。

1.プロジェクトの作成

  1. 開ける CODESYS

  2. クリック ファイル→新規プロジェクト

  3. 名前と場所を指定し、 標準プロジェクト テンプレート。

    The 標準プロジェクト ダイアログが開きます。

  4. ために PLC_PRGの、 を選択 構造化テキスト(ST) 実装言語。

    プロジェクトが作成されます。

  5. を選択 申し込み コードをクリックしてクリックします オブジェクトの追加→UMLクラス図

    The UMLクラス図を追加する ダイアログが開きます。

  6. オブジェクト名を指定してください CD_Simple

  7. を選択 プロジェクト構造をアクティブなクラス図にインポートします オプション。

  8. クリック 追加

    _uml_img_cd_simple.png
  9. プロジェクトを名前を付けて保存 SimpleMachine.project

2.インターフェースの識別

インターフェイスは、クラスを実装するために、公開されているメソッドとプロパティを決定します。

  1. クラス図のエディタを開きます CD_Simple

  2. の中に ツールボックス 表示し、インターフェースを選択します。

  3. インターフェイスをエディタにドラッグします。

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

  4. 名前を指定してください IBaseMachine。クリック 追加 ダイアログを終了します。

  5. の中に ツールボックス ビュー、メソッドを選択します。

  6. メソッドをインターフェースにドラッグします。

    The インターフェイスメソッドを追加 ダイアログが開きます。

  7. 名前を指定してください DoIt

  8. 返品タイプを指定します BOOL。クリック 追加 ダイアログを終了します。

  9. の中に ツールボックス ビュー、プロパティを選択します。

  10. プロパティをインターフェイスにドラッグします。

    The インターフェイスプロパティを追加します ダイアログが開きます。

  11. 名前を指定してください StateNumber

  12. 返品タイプを指定します INT。クリック 追加 ダイアログを終了します。

    _uml_img_cd_simple_imachine.png

ヒント

インターフェイスの詳細については、以下を参照してください。 オブジェクト:インターフェースオブジェクト:インターフェイスプロパティ

3.クラスの識別とインターフェースの実装

同じインターフェースを実装する異なるクラスには、同じメソッドとプロパティが含まれています。インターフェースが後で変更または拡張された場合、これはすべての実装クラスに影響します。

  1. クラス図のエディタを開きます CD_Simple

  2. の中に ツールボックス 表示し、クラスを選択します。

  3. クラスをエディタにドラッグします。

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

  4. 名前を指定してください FB_Machine

  5. を選択 ファンクションブロック オプション。

  6. 実装言語については、 UMLステートチャート(SC)。クリック 追加 ダイアログを終了します。

    クラス FB_Machine クラス図に追加されます。

  7. クラスを選択します。

    コマンドアイコンはクラスの上に表示されます。

  8. クリック _uml_icon_realization.png 実現(IMPLEMENTS)コマンドアイコンをクリックし、 IMachine インターフェース。

    The 実装言語を選択 ダイアログが開きます。

  9. 選択する 構造化テキスト(ST)

    クラス FB_Machine インターフェイスのプロパティとメソッドを継承するため、インターフェイスを実装します IMachine

    _uml_img_cd_simple_fbmachine.png

4.一般化

一般化すると、クラスは別のクラスのプロパティとメソッドを継承します。

  1. クラス図のエディタを開きます CD_Simple

  2. の中に ツールボックス 表示し、クラスを選択します。

  3. クラスをエディターにドラッグします。

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

  4. 名前を指定してください FB_Machine_A

  5. を選択 延長 オプションでクラスを指定します FB_Machine 入力フィールドに入力します。

    機能ブロック FB_Machine が拡張されているため、 FB_Machine_A

  6. 実装言語については、 UMLステートチャート(SC)。クリック 追加 ダイアログを終了します。

    クラス FB_Machine_A クラス図で作成されます。クラス間に一般化が存在します FB_MachineFB_Machine_AFB_Machine_A そのプロパティとメソッドをから継承します FB_Machine

  7. の中に ツールボックス ビュー、を選択します 変数宣言 要素をクラスにドラッグします FB_Machine_A

    The 変数の宣言 ダイアログが開きます。

  8. 名前を指定してください iCounter およびデータ型 INT。クリック わかった ダイアログを終了します。

    今クラス FB_Machine_A 継承されたプロパティとメソッドに加えて、独自の変数があります。

  9. クラスで FBMachine_A、方法を選択します DoIt() を押して デル 鍵。

    メソッドは、ダイアグラム内のオブジェクトと同様に、ダイアグラムから削除されます。 デバイス 見る。継承機能ブロック FBMachine_A メソッドに独自の特別な実装は必要ありません。代わりに、メソッドを呼び出します DoIt 基本機能ブロックの FBMachine 必要に応じて。

    注記

    基本機能ブロックに割り当てられて継承されるメソッドを呼び出すときは、ポインターを使用します SUPER

    _uml_img_cd_simple_fbmachine_a.png

ヒント

詳細については、を参照してください。 機能ブロックの拡張ポインター:SUPER

5.インスタンス化

  1. クラス図のエディタを開きます CD_Simple

  2. プログラムを選択します PLC_PRG

    コマンドアイコンはプログラムの上に表示されます。

  3. クリック _uml_icon_composition.png 構成 (VAR)コマンドアイコンをクリックし、 FB_Machine_A クラス。

    The 変数宣言 ダイアログが開きます。

  4. 名前を指定してください fb_A

    オブジェクト fb_A クラスの FBMachine_A インスタンス化されます。これで、具体的な形式のクラスのインスタンスが実行時に生成されます。

    _uml_img_cd_simple_plc_prg.png

クラス図には、アプリケーションコードの生成に関連するすべてのオブジェクトが表示されます。ただし、何よりも、クラス図はオブジェクト間の関係を視覚化します。誰が誰を実装するのか。誰が誰から継承しますか?誰が何をインスタンス化しますか?それ以外の場合、この情報は宣言に隠されており、たとえば、 デバイス 見る。

6.実装

  1. 機能ブロックを開く FBMachine

  2. 関数ブロック変数を宣言します。

    FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine
    VAR
        iState: INT;
        iMachine : INT;
    END_VAR
  3. 機能ブロックを実装します。

    iState := iState + 1; // Dummy for control ID
  4. そのメソッドを実装する DoIt

    METHOD PUBLIC DoIt : BOOL
    iMachine := iMachine + 1; // Dummy
  5. プロパティのGetメソッドを実装します StateNumberFBMachine

    StateNumber := iState;
  6. プロパティのSetメソッドを実装します StateNumberFBMachine

    iState := StateNumber;
  7. 機能ブロックを開く FBMachine_A

  8. 関数ブロック変数を宣言します。

    FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine
    VAR
     iCounter: INT;
    END_VAR
  9. 機能ブロックを実装します。

    iCounter := iCounter + 1;
  10. プロパティのGetメソッドを実装します StateNumberFBMachine_A

    StateNumber := iCounter;
  11. プロパティのSetメソッドを実装します StateNumberFBMachine_A

    iCounter := StateNumber;
  12. クリック ビルド → コードの生成

    アプリケーションはエラーなしでコンパイルされます。

    _uml_img_cd_simple_objects.png
  13. アプリケーションをダウンロードして起動します。

    機能ブロックインスタンスを監視することができます fb_A

    _uml_img_cd_simple_monitoring.png