Skip to main content

コーヒーメーカー

次のアプリケーション例は、コーヒーマシンのステートチャートを示しています。プロセスフローを完全に記述し、実行時のマシンの動作を決定します。

サンプルプロジェクトを見る UML_SC_CoffeeMachine.project インストールサブディレクトリ Projects

ステートチャートを使用したアプリケーションの作成

  1. CODESYS 、で新しいプロジェクトを作成します 標準プロジェクト テンプレート。ために PLC_PRGの、 を選択 UMLステートチャート 実装言語。

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

  2. デバイスツリーで、プログラムをクリックします PLC_PRG

    エディターは、宣言用のウィンドウとグラフィカル実装用のウィンドウで構成されています。の中に ツールボックス ビューには、ステートチャートの作成に使用できる要素が一覧表示されます。

  3. 名前を変更 PLC_PRG なので CoffeeMachine

    _uml_img_sc_coffee_maker_create_app.png

ガード条件の変数の宣言

ユーザー入力は、通常、ユーザーインターフェイスを介してユーザーが外部で設定するブール変数にマップされます。ステートチャートでガード条件として変数を割り当てると、フローロジックが切り替え可能になります。変数は制御変数として機能します。ここでは、ユーザーインターフェイスとしての視覚化については説明しません。

PROGRAM CoffeeMachine
VAR
    bMakeCoffee : BOOL := FALSE;
    bShutDown : BOOL := FALSE;
    bPowerUp : BOOL := FALSE;
END_VAR

ステートチャートとしてのフローロジックの実装

コーヒーが淹れていない限り、コーヒーマシンは状態にあります Idle。コーヒーを作るように要求すると、マシンはアイドル状態から抜け出します。コーヒー醸造は州を通過します GrindBoilHeatFoam (ミルク)直交状態で準平行 CreateCoffee。その後、温かい飲み物が醸造され、提供されます(Pour)。その後、マシンはアイドル状態に戻ります。

電源投入と初期化フェーズの後、アイドル状態になります Init。マシンはアイドル状態からオフになります(Shutdown)。

_uml_img_sc_coffee_maker_design.png

状態 CreateCoffee 複数の直交領域で構成される直交状態です。実行時に、リージョンは優先度に従って準並列で実行されます。ステートチャートは、「直交状態」という用語を示しています。

デバイスツリーで、プログラムをダブルクリックします CoffeeMachine エディターを開き、上記の図を作成します。

メソッドとアクションの追加

フローロジックをステートチャートとして実装したら、状態と遷移に機能を追加します。そうすることで、あなたは追加します ENTRYDO、 と EXIT 州の行動または方法。アクションまたはメソッドを遷移に追加することもできます。これは、状態遷移で1回呼び出されます。

以下に、ステートチャート関数ブロック(プログラム)の下に挿入する必要のあるアクションを示します。 コーヒーメーカー)デバイスツリーのコーヒーマシン用。ここにリストされているコードは、たとえば変数にマップされたI / Oを評価するために後で拡張されるプレースホルダーコードのみです。

ActGrind

nGrind := nGrind + 10;

ActFoam

nFoam := nFoam + 5;;

ActFoam

nFoam := nFoam + 5;;

ActHeat

nFoam := nFoam + 5;;

ActShutdown

bShutDown := FALSE;
bPowerUp := FALSE;

CoffeeReady

bMakeCoffee := FALSE;
iGrind := 0;
iHeat := 20;
iFoam := 0;

次に、次のようにアクションを状態と遷移に割り当てます。

_uml_img_sc_coffee_maker.png

状態にアクションを追加するには、次のいずれかをクリックします。 _uml_icon_sc_action_entry.png_uml_icon_sc_action_do.png、 また _uml_icon_sc_action_exit.pngシンボル。トランジションにアクションを追加するには、 _uml_icon_sc_transition_action.png シンボル。