コーヒーメーカー
次のアプリケーション例は、コーヒーマシンのステートチャートを示しています。プロセスフローを完全に記述し、実行時のマシンの動作を決定します。
サンプルプロジェクトを見る UML_SC_CoffeeMachine.project
インストールサブディレクトリ Projects
。
ステートチャートを使用したアプリケーションの作成
の CODESYS 、で新しいプロジェクトを作成します 標準プロジェクト テンプレート。ために PLC_PRGの、 を選択 UMLステートチャート 実装言語。
プロジェクトが作成されます。
デバイスツリーで、プログラムをクリックします
PLC_PRG
。エディターは、宣言用のウィンドウとグラフィカル実装用のウィンドウで構成されています。の中に ツールボックス ビューには、ステートチャートの作成に使用できる要素が一覧表示されます。
名前を変更
PLC_PRG
なのでCoffeeMachine
。
ガード条件の変数の宣言
ユーザー入力は、通常、ユーザーインターフェイスを介してユーザーが外部で設定するブール変数にマップされます。ステートチャートでガード条件として変数を割り当てると、フローロジックが切り替え可能になります。変数は制御変数として機能します。ここでは、ユーザーインターフェイスとしての視覚化については説明しません。
PROGRAM CoffeeMachine VAR bMakeCoffee : BOOL := FALSE; bShutDown : BOOL := FALSE; bPowerUp : BOOL := FALSE; END_VAR
ステートチャートとしてのフローロジックの実装
コーヒーが淹れていない限り、コーヒーマシンは状態にあります Idle
。コーヒーを作るように要求すると、マシンはアイドル状態から抜け出します。コーヒー醸造は州を通過します Grind
、 Boil
、 Heat
、 Foam
(ミルク)直交状態で準平行 CreateCoffee
。その後、温かい飲み物が醸造され、提供されます(Pour
)。その後、マシンはアイドル状態に戻ります。
電源投入と初期化フェーズの後、アイドル状態になります Init
。マシンはアイドル状態からオフになります(Shutdown
)。

状態 CreateCoffee
複数の直交領域で構成される直交状態です。実行時に、リージョンは優先度に従って準並列で実行されます。ステートチャートは、「直交状態」という用語を示しています。
デバイスツリーで、プログラムをダブルクリックします CoffeeMachine
エディターを開き、上記の図を作成します。
メソッドとアクションの追加
フローロジックをステートチャートとして実装したら、状態と遷移に機能を追加します。そうすることで、あなたは追加します ENTRY
、 DO
、 と 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;
次に、次のようにアクションを状態と遷移に割り当てます。

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