« Excelで学ぶ金融市場予測の科学 | トップページ | Windowsリアルタイム制御環境「MOS Bench(モスベンチ)」を試してみたい »

2009年1月18日

CONTEC-DIOカードのWindowsリアルタイム制御波形

Dout_5ms12

プライムモーション社のWindowsで手軽にリアルタイム制御環境「MOS Bench(モスベンチ)」で、CONTECのDIOカードPIO-16/16L(PCI)Hを制御した波形。5ms毎、LowとHighを繰り返している。

上段: リアルタイム制御の「MOS Bench(モスベンチ)」使用。

下段: 普通のWindows上で制御。

大きな違いがわかります。

■使用したプログラムの主要部

while(1){
     if ( (b % 2) == 0 ) {
       WritePort( 2126, 0 );
     }
    else {
       WritePort( 2126, 1 );
     }
    b = b + 1;
    Sleep(5);
}

■プログラムのしくみ

while(1){  }

このなかのプログラムが、ぐるぐる回って、実行されます。

うしろのほうに

   Sleep(5);

と言う命令があります。

これは、5ms休むという命令です。したがって、ほぼ5msごと、

while(1){  }

の中のプログラムが実行されます。

うしろのほうの

   b = b + 1;

は、変数bを1づつ、増やします。

つぎに、前のほうの

   if ( (b % 2) == 0 ) {

と言う命令で、先ほどの変数bを2で割ったあまりが0かどうか判断しています。bが奇数か、偶数か、判断できます。あまりが0、つまり、bが偶数なら、次の命令

   WritePort( 2126, 0 );

を実行します。すなわち、2126番のDOUTポートを0にします。

そうでないとき、すなわち、命令では

    else {

のとき、

       WritePort( 2126, 1 );

2126番のDOUTポートを1にします。

■使用したプログラムはこちら

「motion_oyaji_200Hz_2126.mos.c」をダウンロード

Link:

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

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

|

« Excelで学ぶ金融市場予測の科学 | トップページ | Windowsリアルタイム制御環境「MOS Bench(モスベンチ)」を試してみたい »

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

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: CONTEC-DIOカードのWindowsリアルタイム制御波形:

« Excelで学ぶ金融市場予測の科学 | トップページ | Windowsリアルタイム制御環境「MOS Bench(モスベンチ)」を試してみたい »