◆ ソフト制御用ソフトウェアー基礎の説明ページ (1/1)
図−1 概略図

 ( Windowsでは、フラッシュ・プレーヤーが必要 )

 制御用ソフト・ウェアーは図に示しますように、そりぞれ役割を分担しおおまかに階層化されており、その内部処理は更に細分化されています。つまり、小さなルーチン(上位プログラムから呼び出される小プログラム)で構成されています、これらのルーチンをタスク、又はプロセス、スレッド、マクロなどと呼びます、小さなプログラムがタスクか、或いはスレッドかを判別することは難しくそれを設計・製作した人だけが知っていることと言えます。

 タスクは資源情報としてのメモリ空間, システムコールベクタなどの情報を管理し複数のスレッドを持つ事ができます、スレッドはCPUでの処理単位であり、並列処理が可能であり、且つマルチプロセッサ上では、マルチスレッド技術による複数のCPUでマイクロカーネルにより並列処理が可能です。

 マルチスレッド・プログラミングについては、こちらのページを参照。

 オペレーティング・システム(OS)は、並列処理ができなければ、制御関係で利用することは無理でしょう。実際には、最新鋭のCPUを除けばCPU内部で順次処理、つまりシーケンシャルな動作をしています、CPUを一つのタスクに独占させた処理をさせないようOS側で管理しているにすぎないのです、100ms程度の間にCPUに多くのタスクを振り分けて処理させれば、人間の目にはあたかも並列に動作しているように見える訳です、制御上でもアナログ制御のように滑らかに動作している訳ではなく、数ミリ秒から数十ミリ秒の間に階段上に動作していると言ったほうがよいでしょう、この点がデジタル式とアナログ式との相違となります。

 左記タスク管理は、非常にソフト・ウェアー技術では重要になり、通常リアルタイムOSがこの処理を担っています。リアルタイムOSは多くのタスクを並列処理させるため、タスクに処理時間を割り当てたり、或いはタスクに優先度を設定したり、つまり、タスクのスケジュール管理が重要になります、これよって制御の渋滞を回避します。

 OA関係の某WindowsなるOSのように一つのタスクにCPUの時間を与えてしまうようなOSがマルチタスクなどと呼ばれていますが、疑問であり、イベント型OSと言うほうが適切でしょう。そもそも、OA関係のOSには、マルチタスクが必要な訳ではなくバック・グラウンド処理があれば殆どのアプリケーションは問題なく利用できるでしょう。

 上記のCPUとリアルタイムOSの概念を理解していない若い技術者が多くツールでユーザー・プログラムの変更だけをやっている人たちを見かけます、安易なOS絡みの設定をした場合、その結果、どうなるでしょうか、大変な事態に至るでしょう。

 このページでのソフト・ウェアー技術の説明は、制御関係に限らず他のコンピュータと共通した技術であり、制御関係の独自の技術はむしろ制御対象の発電プラントの発電機やタービン、ボイラー、或いは化学プラントの機器と言った本体側をプロセス制御する際のノウハウ技術を理解していなければ通用しないと言って過言ではないと思います、これはアナログ式制御と共通な訳でデジタル式制御独自などと言ったノウハウ技術は殆どないと言っても過言ではありません。

 最近、人工知能処理、或いは予測制御、自動チューニング制御方式と言った新しい方式が話題になっています。これらの制御方式で自動的に最適な制御ゲインに変更できてしまうなるものが登場しておりますが、果たしてこのように制御ゲインが自動的に変わってしまうと暴走しないのか疑問があります、本当に実用ベースになったのか未知数であると思います。

   制御トップページへ戻り