生産設備などの制御に使用されるプログラム(IEC 61131-3)をUMLから自動生成可能なソフトについてざっくり調査したのでメモで残しておく。
ソフトウェア
以下2つはUMLから自動生成ができるようなので、概要をそれぞれ調べた。
- TwinCAT3 (Beckhoff)
- Cordis SUITE(Cordis)
TwinCAT3
TwinCAT3はUMLを使ったプログラム自動生成が可能。ざっくり調べたことを箇条書きする。
- TwinCAT3.1はクラス図とアクティビティ図からプログラム生成ができる。
- コンパイル実行するとプログラムが生成される。
- 生成されるプログラムがIEC 61131-3のどの言語か不明。IEC 61131-3準拠かどうかも不明。
- エディタは無償利用可能らしいので試すことが可能。但し実行にはライセンス(TF1910)が必要。評価用ライセンスで7日間お試し可能。
- マニュアルがある。詳細は調べていない。 https://download.beckhoff.com/download/Document/automation/twincat3/TF1910_TC3_UML_EN.pdf
Cordis SUITE
Cordisというオランダとスペインにオフィスがある2000年設立のソフトウェア会社の商品。 HP:Cordis SUITE, Low-Code platform for control Software
Cordis SUITEのケーススタディ https://ict.eu/wp-content/uploads/2017/11/Case-Studie-Cordis-Suite-HR-DEF_EN-002.pdfから得られたことを箇条書きする。
- 生産設備アプリケーションをモデル駆動開発するローコード開発環境
- サポートしているPLCメーカは以下。具体的なPLCは不明。
- Siemens
- Beckhoff
- Lenze
- BoschRexroth
- 生産設備を静的な構造・関係性をクラス図で、動的な振る舞いをアクティビティ図でCordis SUITE上で記述し、ボタン1つ押すだけでプログラムが自動生成される
- グラフィカルに生産設備を表現できるためソフトウェアの知識がないステークホルダと生産設備の要件や仕様について正確なコミュニケーションが取れる
- 自動生成だけでなく、テスト機能、シミュレーション、分析機能も持っている
- アクティビティ図で状態モニタができる
- モデル駆動開発だからドキュメントのメンテ漏れがない
- 他のシステムと繋ぐアダプタ的なプログラムは手動で書く必要がある
感想
個人的には全て自動生成されたプログラムはメンテ困難なので、部分的な自動生成(状態遷移とか)と制御プログラム資産の再利用を組み合わせられると、自分好み(組織の品質要求に合った)のプログラム生成ができて良いかなと思う。UMLからプログラムに変換する部分だけオープンにしてくれないかな。