« パナソニック社Realtime Express のDIO(リモートIO)開発中です。 | トップページ | Windowsリアルタイム性評価「MOS Bench(モスベンチ)」のタスクスイッチング時間 »

2010年5月 5日

Windowsリアルタイム拡張IntervalZero社「RTX」のHAL timerを変更しつつ、DOUT-Portポート制御

Windowsリアルタイム拡張IntervalZero社「RTX」のHAL timerを変更しながら、DOUT-Portポート制御をしてみる。

「HAL timer」の設定は、以下の画面。

Hal_timer

■ハードウェア

・EPSON DIRECTのミニタワーパソコン

Pio

・DOUTポートとしては、CONTEC社のPCI-DIOカード「PIO-16/16-L(PCI)H」

フォトカプラの後では、フォトカプラの遅延時間でパルスが無くなってしまい、波形観測できなかったので、写真のようにPCIインターフェイスのFPGA側で波形観測した。

Pio_2

■ソフトウェア

プライムモーション社のみんなでWindwosリアルタイムIO制御環境「MOS Bench(モスベンチ)」のモータ制御無し版(開発中)

RTX-SDKは使っていません。

RTX-Runtime上で動作するMOS言語リアルタイムインタープリタを使用します。

MOS言語のプログラムは、以下。

void main()
{
   while(1){
       WritePort( 2128, 0 );
       WritePort( 2128, 1 );
    }
}

■実験結果1(HAL timer 周期 = 500us時)

Hal_500us

設定したHAL timer周期、500us毎、バースト状にDOUTポートがトグルする。

トグルのパルス幅は4us。

■実験結果2(HAL timer 周期 = 100us時)

Hal_100us

設定したHAL timer周期、100us毎、バースト状にDOUTポートがトグルする。

トグルのパルス幅は4us。

■実験結果3 (DOUTポートのトグルパルス拡大)

Photo

IntervalZero社のRTX-SDKを使わないで、最小4usの制御ができる。

しかし、先の記事で、波形を掲載したけれど、1msレベルが現実的。

http://robotcontroller.cocolog-nifty.com/blog/2010/05/rtxhal-timerpio.html

参考)

HAL timerの周期で、バースト状パルスが発生する理由:

プライムモーション社のみんなでWindwosリアルタイムIO制御環境「MOS Bench(モスベンチ)」では、リアルタイムの処理が連続して、Windowsがフリーズしないように、MOS言語プログラム10行毎に、WindowsにCPUを解放しています。その周期がHAL timer設定周期に依存しています。そのため、HAL timer周期毎に、MOSプログラム処理が発生しています。

このMOS言語プログラム10行毎という値は、MOS関数の

SetAutomaticSleep();

で変更できます。引数に「0」は、指定しないでください。

Link: 

プライムモーション社(みんなで手軽にWindowsリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

プライムモーション社(RTEXとパルスの16軸マルチタスクコントローラ)

プライムモーション(RTEXとパルス列のマルチプロセスコントローラ)

|

« パナソニック社Realtime Express のDIO(リモートIO)開発中です。 | トップページ | Windowsリアルタイム性評価「MOS Bench(モスベンチ)」のタスクスイッチング時間 »

技術Windowsでリアルタイム制御」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« パナソニック社Realtime Express のDIO(リモートIO)開発中です。 | トップページ | Windowsリアルタイム性評価「MOS Bench(モスベンチ)」のタスクスイッチング時間 »