時間付IO

分散制御をスマートに実現するには、必須要素だと妄想して早3年。

嗚呼、せっかく見つけた関連論文のpdfを捨ててしまったようです。

困ったなぁ。

時間付IOとは:

例えば、ある入力接点の状態や、出力を遠隔地で処理するとします。

鉄道の信号機やATCの近接センサをイメージすればよいでしょう。

長~い電線を引っ張るのが最も信頼性および性能の面で優れています。間違いありません。

しかしながら、断線故障の修理も大変ですし、多数あると電線の束地獄になります。そこで分散IOの登場です。

中継箇所にてIOを統合してパラシリ変換した結果を高速シリアル通信などでプロセッサ側へ伝送します。

これで失われるのは、同時性や即時性です。シリアル通信のタイムラグがあります。また信頼性向上のための再送機構などがあると、たとえばポイント切り替えの緊急信号を発したのに間に合わない、などということもあるでしょう。

通信経路によってもラグは変化しますので、信号の中継のさせ方によっては、物理的にすぐとなりの信号機を同時に赤にせっていしたつもりでも、片方が一呼吸遅れて赤になってしまうかもしれません。

さらに、1本にまとめたシリアル通信がコケルと、数十機あるいは数百機の信号機がコケます。えらいことです。シリアル通信区間は最低でも2重化が必要でしょう。

それでも、分散IOは必須の技術です。

マイコンがどんどん小さくなって、ナノコンになってきたので、分散IOの中継器がインテリジェントになってきているのです。

そうして出現するのが、分散IOにおける、大脳小脳モデルです。脊椎動物の神経系のように、大脳でわざわざ処理する必要のないものは小脳、つまり分散IO内蔵のプロセッサで処理してしまえということです。最近はフラッシュマイコンも小さくなりましたから、プログラマブルにしてしまえというわけです。

で、時間付IOに話が戻ってくるわけです。緊急信号の処理は小脳さんがやってくれると、大脳さんはのんびりデータのロギングでもやっておればよろしい、と簡単にはいかないわけです。タイミングがわからないのです。

というわけで、IOのステート(ON/OFF/不明)に、時刻情報を付けてパックすることにしましょう。これで安心です。

この技術、センサフュージョンでは当然必要に技術で、もっと研究されているかと思ったらなかなか検索にひっかかりません。

もしかして、なんでもかんでも高速応答品でサンプルレート上げまくって無理矢理同時性を確保したりしてませんか?

でもまぁいくらごみためまんがここで吠えても、全ての配線を引き回さないと気がすまない連中が多数派なんでしょうな。