ユーザーバッファを使用した無限サンプリング


外観

 

概略

ユーザーバッファモードにて、指定サンプリング回数以外の停止条件でサンプリングを行うサンプルです。

指定転送数毎イベントにてサンプリングデータをデータ保存ファイルに追記します。

取得データ回収時にユーザーバッファの上書きが発生した場合はサンプリングを停止します。

このサンプルプログラムは、アナログ入力機能を持ったデバイスの選定が必要です。

サンプル仕様

※サンプルプログラムの初期値です。デバイスドライバの初期値と異なりますので、ご注意ください。

プログラム名

./ai_sampling_infinite_user

変換データ転送方式

1(ユーザーバッファモード)

メモリタイプ

1(メモリへの上書きあり)

イベント

AD変換開始条件成立イベント、デバイス動作停止イベント、指定転送数毎イベント、オーバーフローイベント、サンプリングクロック周期エラーイベント、AD変換エラーイベント

 

使用手順

1.希望するプログラム名を指定し、プログラム実行させると、上記のような外観のCUI(Character User Interface)メニューが表示されます。
  ソフトウェアのバージョンによっては外観が異なることがあります。

 

2.デバイス初期化処理

 ・[1 : AioInit]をコマンド選択すると、デバイス名を指定することができます。
  指定デバイスの利用開始することをデバイスドライバへ通知します。
  デバイス名を指定すると、AioInitが実行され、CUIメニューが再度表示されます。
  

 

3.アナログ入力設定

 ・[3 : AioSetAiRangeAll]をコマンド選択すると、レンジを指定することができます。
  レンジを指定すると、AioSetAiRangeAllが実行され、CUIメニューが再度表示されます。

  利用するデバイスによっては、デバイス上のジャンパーピンで入力レンジを変更しないと設定が有効とならない場合があります。
  

 ・[4 : AioSetAiInputMethod]をコマンド選択すると、入力方式を指定することができます。
  入力方式を指定するとAioSetAiInputMethodが実行され、CUIメニューが再度表示されます。
  

 ・[5 : AioSetAiChannels]をコマンド選択すると、チャネル数を指定することができます。
  チャネル数を指定するとAioSetAiChannelsが実行され、CUIメニューが再度表示されます。

  なお、開始チャネル番号は0ch固定です。例えば、チャネル数 3を指定した場合、0ch~2chのデータ取得となります。
  

 

4.サンプリング条件設定

 ・[6 : 条件設定]をコマンド選択すると、条件設定メニューが表示されます。
  

 ・条件設定メニューから「1 : 開始条件」を選択すると、開始条件メニューが表示されます。
  開始条件メニューから、希望する開始条件を選択します。
  希望する開始条件を指定すると、条件設定メニューが再度表示されます。
  

 ・条件設定メニューから「2 : サンプリングクロック条件」を選択すると、サンプリングクロックタイプ メニューが表示されます。
  サンプリングクロックタイプ メニューから、希望するクロックタイプを選択します。
  

  内部クロックを選択した場合、サンプリングクロック周期を[μsec]単位で入力しします。指定できるサンプリングクロック周期の最小値は、利用するデバイスによって異なります。
  外部クロックを選択した場合、デバイスに接続された外部クロックの周期でデータを取得します。外部クロック入力タイミングも、立ち上がり、立下りから選択できます。

  なお、指定したチャネル数の値も考慮してクロック周期を決める必要があります詳細は、[用語集]サンプリング クロックエラーの項目を参照ください。

  希望するサンプリングクロックを指定すると、条件設定メニューが再度表示されます。

 ・条件設定メニューから「3 : 変換速度条件」を選択すると、変換速度を指定できます。
  希望する「変換速度:」を[μsec]単位で入力します。
  希望する変換速度を指定すると、条件設定メニューが再度表示されます。

  指定できる最小値は、利用するデバイスによって異なります。
  

 ・条件設定メニューから「4 : 停止条件」を選択すると、希望する停止条件を指定できます。
  外部トリガ立ち上がり、外部トリガたち下り、コマンド、レベル比較や、インレンジ/アウトレンジ比較から選択できます。
  希望する停止条件を選択すると、条件設定メニューが再度表示されます。
  

 ・条件設定メニューから「b : 戻る」を選択すると、トップメニューへ戻ります。

 

5.ユーザーバッファ設定

 ・[7 : ユーザーバッファサイズ設定]をコマンド選択すると、ユーザバッファに格納するサンプリング回数を指定することができます。
  プログラムメモリ上にユーザーバッファを確保し、デバイスドライバへバッファメモリの場所を通知します。
  サンプリング回数を指定すると、CUIメニューが再度表示されます。

  サンプリング回数は、データ転送回数よりも大きい値を指定してください。
  

 

6.指定転送数毎イベント設定

 ・[8 : AioSetAiEventSamplingTimes]をコマンド選択すると、サンプリング回数を指定することができます。
  希望するサンプリング回数を入力するとAioSetAiEventSamplingTimesが実行され、CUIメニューが再度表示されます。
  

 

7.サンプリング動作

 ・[9 : サンプリング開始]をコマンド選択すると、サンプリングが開始されます。
  サンプリングが開始すると、CUIメニューが再度表示されます。

  ユーザーバッファに、指定転送毎イベント設定内のテータ転送回数分のサンプリングデータが格納されるとイベントが発生します。
  ユーザーバッファ内のデータは、ストレージメディアへファイル格納します。

  イベントが発生する毎に、画面の最下行に「転送位置」、「上書き回数」や、「ステータス」が表示更新されます。
  

 ・[10 : AioGetAiTransferCount]をコマンド選択すると、転送位置の値が表示されます。
  転送位置の値が表示されると、CUIメニューが再度表示されます。

 ・[11 : AioGetAiTransferLap]をコマンド選択すると、上書回数の値が表示されます。
  上書回数の値が表示されると、CUIメニューが再度表示されます。

 ・[12 : AioGetAiStatus]をコマンド選択すると、ステータスが表示されます。
  ステータスが表示されると、CUIメニューが再度表示されます。
  

 ・[13 : サンプリング停止]をコマンド選択すると、データサンプリングが停止します。
  データサンプリングが停止しすると、CUIメニューが再度表示されます。

 

8.終了処理

 ・[14 : AioExit]をコマンド選択すると、現デバイス利用が完了したことデバイスドライバへ通知します。
  プログラムを終了させることなく、異なるデバイス(例:AIO001など)からデータ取得ができます。
  AioExitが実行されると、CUIメニューが再度表示されます。
  

 ・再び、データ取得処理を行う場合は、[1 : AioInit]をコマンド選択し、新たなデバイス名を指定し、デバイス初期化処理を行ってください。

 

9.プログラムの終了処理

 ・[q : 終了]をコマンド選択すると、プログラムが終了します。