HILS構築上の注意点
今回は、HILS構築上の注意点についてご説明します。ちょっとした注意点ではありますが、ここに気をつけるだけで随分とトラブルが減るはずです。
前々回の記事では、HILSの分類法について3つの軸を導入しました。
これらのうち、「表示機能」と「I/Oの種類、数」については、あまりトラブルにはなりません。目に見える部分なので、自然としっかり詰められる部分だからです。
問題は、「なるべく高速に」という部分です。スピードは目に見えません。目に見えない部分については、人間どうしても詰めが甘くなります。場合によっては、まったく考慮されない場合もあるでしょう。
前回の記事で、ステップ毎の処理は「モデル演算」+「I/O処理」であるとご説明しました。今回は、これらの処理時間についてご説明します。
モデル演算時間
「モデル演算時間」について注意することによって、HILSのシステム構成を事前によりよく検討できるようになります。
HILSシステムを組もう、という場合を考えてみます。お客様の頭の中には、だいたい「こんなモデルを」「これくらいのステップサイズで」動かしたい、というイメージがあることでしょう。
ただし、実際に動かすモデルが用意されている事は稀です。だいたい、モデルを作り始めるのは、HILSを購入した後になります。
モデルはまだ存在すらしていません。存在すらしないモデルの、処理時間を知ることはできません。これはHILSベンダーに問い合わせてもなんともなりません。かといって、何も判断材料がないのはつらい所です。
そこで、HILSベンダーからサンプルモデルを2,3個提供してもらうという方法があります。そして、それらのサンプルモデルの実行時間を聞いてみるのです。
頭のなかにうっすらとあるモデルイメージと、サンプルモデルとを比較してみましょう。そうすると、「サンプルでこれくらいの処理時間なら、今からつくるモデルだとこれくらいかな」というイメージがつかめると思います。あまり精度のよい方法ではありませんが、気休め程度にはなるかと思います。
もちろん、サンプルを提供してくれるかどうかはHILSベンダーのポリシー次第です。企業秘密がからんでいて簡単に出せない場合もあります。ただし、ここが問題になるのは、よっぽど重いプラントモデルを動かす時だけです。そうでなければ、まず心配はいらないでしょう。
さて、検討の結果、どうやら演算が間に合わ無いのでは?という場合もあります。そういった場合の道は2つで、「機能を削る」「より高級な構成に乗り換える」のいずれかになります。
演算が間に合わないのは、モデルが大きすぎるからです。モデルが大きすぎるというのは、機能を詰め込みすぎているか、プラントモデルに高すぎる精度を要求しているからです。ですから、ここまでの機能が出来たらいいなというWANT条件と、最低限これを下回っては困るというMUST条件をしっかり決めておくと良いでしょう。
どう考えてもMUST条件すら下回りそうな場合には、費用をかけてより高速なシステムを組むしかありません。
I/O処理時間
「I/O処理時間」については意外な盲点です。ここに気をつけることによって、HILS完成後に「思ったようなパフォーマンスが出ない!」といったトラブルを回避できる可能性があります。
I/Oには、デジタルIO、アナログIO、通信などがあります。
デジタルIO、アナログIOについては、1本あたりの処理時間がわりあい正確に出ます。そしてそれは、たぶんかなり小さいものでしょう。
ですから、よっぽどステップサイズが短い(50マイクロ秒とか)のでなければ、ここを心配する必要はないでしょう。ただし、大量のI/Oを動かすとなると、やはりそれなりの時間がかかりますので、事前に検討しておく必要はあります。
それよりも問題となりうるのは、通信です。通信のテストをする場合、通信バスがいっぱいになるくらいの動作をさせないといけない場合もあります。(もちろん、そうでない場合もありますが。)
データの送受信が大量に発生すると、それだけでかなりの処理時間を取られてしまう場合があります。
また、通信に関しては、「ある特定のタイミングでデータ送信したい」といった要望が出てくる事もあります。たとえば、ステップサイズ=1ミリ秒だったとしましょう。データ送信のタイミング指定が1ミリ秒刻みであれば、問題はあまりありません。しかし、100マイクロ秒刻みで細かくタイミング指定したいと言われたら、普通の手段では困難です。
ここもやはり値段と性能の兼ね合いになります。WANT条件とMUST条件をしっかりと詰めておく必要があるでしょう。
一般的な構成ではどうしても間に合わない、という場合には、HILSベンダーに相談する必要があります。そうすれば、要求を満たせるようなソフト/ハードの制作を提案してくれます。ただし、それがちょっとの改造ですめば安く上がりますが、大改造が必要な場合にはそれなりの費用がかかります。
なお、通信負荷のような非機能要件を定義するとき、実現コストを無視して無茶な設定をしてしまう事がよくあります。既存のHILSでの実現が難しいと分かった時には、「本当に今回のHILSに対する要求には根拠があるのか?」をもう一度検討しなおしてみる事も重要です。
まとめ
事前に次のチェックをしていただくだけで、ずいぶんとトラブルが回避できると思います。
1.大きめのプラントモデルを動かそうとしていますか?
もしもそうなら、モデル演算時間が間に合うかどうか、早めに検討する事をお勧めします。
2.大量のI/Oを動かそうとしていますか?
もしもそうなら、I/O処理時間が間に合うかどうか、早めに検討する事とをお勧めします。
3.通信を使用しますか?
もしもそうなら、通信負荷の上限がどれくらいになるのか、あらかじめ非機能要件として
定義しておく事をお勧めします。それを元に、処理が間に合うかどうか検討する事をお勧めします。
次回
次回は少しだけHILSの話を離れて、モデルベース開発全体の有用性に関するお話をします。