next up previous contents index
Next: リアルタイム処理プログラムの作成 Up: リアルタイム処理(RTMATX) Previous: リアルタイム処理(RTMATX)

     
リアルタイム処理

ディジタル制御を行なうには,ある一定の時間(サンプリング時間)毎に   
1.
センサ(ポテンショメータなど)によるプラント出力の取り込み
2.
制御則の計算
3.
アクチュエータ(モータなど)によるプラント入力の操作
の3つのステップを繰り返さなければならない。また,この他にも目標値や 制御停止命令などを処理するので,多重処理のできるプログラムが必要である。    

RTMATXでは,PC9801やIBM PC互換機のインターバルタイマからの割り込み により次の3つの処理を行なう。[23]  

1.
割り込み処理
2.
制御処理
3.
画面表示/コマンド入力処理

プログラムは,まず,処理3(変数の表示,キーボードからの入力待ちなど)を 行なっている。タイマからの割り込みがかかると,処理3を中断して処理1 (RTMATX内部での割り込み処理)を行ない,処理2(センサ処理,制御則の計算, アクチュエータ処理など)が終了しているかどうか調べる。終了していない場合 には,タイマ割り込みを停止し,タイムアウトエラーを発生する。終了している 場合には,処理2を行なう。処理2が終わると処理3の続きを行なう。したがっ て,処理2はサンプリング時間毎に行なわれる。  

注意

  インターバル・タイマによる割り込みは,タイマのカウンタに値を設定することで 実現しているので,カウント・クロックの整数倍以外のサンプリング時間を用い ると$¥mu$secのオーダで誤差が生じるので,注意する必要がある。 後述するサンプリング時間を設定する関数rtSetClock()は実際に行なわれる 割り込みのサンプリング時間を返すので,制御器の離散化などには,この値を 用いる方が良い。 

注意

DJGPPを用いた現在のRTMATXでは,タイムアウトエラーが発生すると システムがハングアップすることがある。したがって,短すぎるサンプリング 時間を設定してはならない。



Masanobu KOGA 平成10年8月19日