システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

PlantUMLでタイミングチャートを作成する

PlantUML関連が続いてしまっていますが、しばらくチェックしていない間に機能がかなり増えているので紹介しきってしまいたいとお見ます。

今回は新たに追加されたタイミングチャートの紹介です。

タイミングチャートはオブジェクトの状態を時系列で表す図でUMLに規定されています。一般的には機械の制御を表すのによく使われている印象です。

タイミングチャートの例題

題材として以下のシーケンサーのタイミングチャートをPlantUMLで書き直してみます。

f:id:Otepipi:20190425183630p:plain

出典は三菱電機シーケンサー入門テキストからです。 本当はシーケンサーのラダー図もPlantUMLで書けると非常に捗るのですが、それは別の話……

https://www.mitsubishielectric.com/fa/assist/satellite/data/jy997d41501e.pdf

PlantUMLによるタイミングチャート

PlantUMLの日本語ドキュメントは以下です。 plantuml.com

PlantUMLで例題に似せて作成したタイミングチャートは次のようになりました。

f:id:Otepipi:20190425214514p:plain

またコードは以下になります。

@startuml
Title タイミングチャート
robust "スタートスイッチ X001" as x001
robust "ランプ Y000" as y000
robust "ブザー Y001" as y001
robust "MC Y002" as y002
robust "モータ Y003" as y003
robust "電磁弁 Y004" as y004

x001 is 非励磁
y000 is 非励磁
y001 is 非励磁
y002 is 非励磁
y003 is 非励磁
y004 is 非励磁 

@x001
0 is 励磁
+30 is 非励磁
@y000
0 is 励磁
@0 <->  @+20 :{2秒間隔}
100 is 非励磁
@y001
20 is 励磁
100 is 非励磁
@20 <->  @+20 :{2秒間隔}
@y002
40 is 励磁
100 is 非励磁
@40 <->  @+20 :{2秒間隔}
@y003
60 is 励磁
100 is 非励磁
@60 <->  @+20 :{2秒間隔}
@y004
80 is 励磁
100 is 非励磁
@80 <->  @+20 :{2秒間隔}


@0 
x001 -> y000
@20
y000 -> y001
@40
y001 -> y002
@60
y002 -> y003
@80
y003 -> y004
@100
y004 -> y003
y003 -> y002
y002 -> y001
y001 -> x001

@enduml

PlantUMLのタイミングチャートは少し見辛いかもしれません。ただ、作成・修正が容易という大きなメリットがあるので機械制御の設計にかなり有用ではないでしょうか。

今回はここまでにします。