午前中は実験技術とリアルタイムOSオートマトンについての調べ物。今やっている制御ソフトはインタプリタ(的な仕組み)でシーケンス動作を実現しているが、最近はより複雑な動作が求められるようになってきて、今の実装では対応に限界が見えてきている。何とか抜本的に改良できないものかとヒントを求めてOSやVMのことを少し前から調べ始めている。
それにしても「タスク」とか「コンテキスト」とか、OS用語は抽象的な上にカタカナ語ばかりで直感的に意味を把握しづらい。本やウェブ上の解説を読んでいても、ちょっと気を抜くとすぐに面を追うだけになってしまう。子供向けの勉強のしかたを解説した本に、「意味の分からない用語(不明語)をそのままにしておくことが勉強が分からなくなる第一歩」といったことが書かれていたが、さもありなん。

午後からは動作試験。テスト(の実施)ってのは単純作業で精神的にくたびれる。特に今回のように、機械の動きを精密にフィードバック制御するようなソフトウェアの場合はソフトウェア単体でテストできる範囲が限られているため、動作を調べるには実際に機械をつないで本番同様の作業をしなければならない。機械部分や回路をエミュレータもしくはスタブにしてしまえば、実験系を用意せずにソフトウェアだけをテストすることは原理的は可能かもしれない。けど、今回は機械に非線形な要素が含まれていて、しかもミリ秒程度の時間で高速に動作する必要があるので、この系を模倣するスタブを作るのはそう簡単ではない。

ともかくこのソフトウェアをテストするには装置全体の動作を見る必要があり、必然的に回路や制御系や物理現象まで含めて性能を考えないといけない。ぼちぼち進めていたがそれでも途中でくたびれてきたので、早めに切り上げて夕方からは昨日までに見つけた修正項目をコードに反映させた。