デバイス内同期(ジェネレーティング・サンプリング)


外観

 

概略

1つのデバイス内部で、ジェネレーティング/サンプリングを同期して動作させるサンプルです。

ジェネレーティングをマスター、サンプリングをスレーブとします。

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

同期動作については、イベントコントローラ使用例1の記載内容を参考にしてください。

サンプル仕様

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

プログラム名

./internal_sync_generating_sampling

変換データ転送方式

0(デバイスバッファモード)

開始条件

マスター:0(ソフトウェア)

スレーブ:10(イベントコントローラ出力)

クロック種類

マスター:0(内部クロック)

スレーブ:10(イベントコントローラ出力)

停止条件

マスター:0(設定回数変換終了)

スレーブ:10(イベントコントローラ出力)

メモリタイプ

0(FIFO)

データ保存用バッファサイズ

1MByte

イベント

マスター: デバイス動作停止イベント、オーバーフローイベント、ジェネレーティングクロック周期エラーイベント、DA変換エラーイベント

スレーブ: デバイス動作停止イベント、オーバーフローイベント、サンプリングクロック周期エラーイベント、AD変換エラーイベント

 

使用手順

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

 

2.デバイス初期化処理

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

 

3.アナログ入出力設定

 ・[3 : アナログ入出力設定]をコマンド選択すると、ジェネレーティング(マスター)のレンジを指定できます。
  

 ・ジェネレーティング(マスター)のレンジを指定すると、サンプリング(スレーブ)のレンジを指定できます。
  

 

 ・サンプリング(スレーブ)のレンジを指定すると、サンプリング(スレーブ)の入力方式を指定できます。
  利用するデバイスによっては、デバイス上のジャンパーピンで入出力レンジを変更しないと設定が有効とならない場合があります。
  

 ・サンプリング(スレーブ)の入力方式を指定すると、すべての[アナログ入出力設定]の内容が、デバイスドライバへ通知されます。
  [アナログ入出力設定]が完了すると、CUIメニューが再度表示されます。
  

 

4.ジェネレーティング設定、サンプリング設定

 ・[4 : ジェネレーティング/サンプリング設定]をコマンド選択すると、ジェネレーティング(マスター)のチャネル数が指定できます。
  なお、開始チャネル番号は0ch固定です。例えば、チャネル数 3を指定した場合、0ch~2chからのデータ出力となります。
  

 ・ジェネレーティング(マスター)のチャネル数を指定すると、ジェネレーティング(マスター)のジェネレーティングクロック周期を[μsec]単位で指定できます。
  指定できるジェネレーティングクロック周期の最小値は、利用するデバイスによって異なります。

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

 ・ジェネレーティング(マスター)のジェネレーティングクロック周期を指定すると、ジェネレーティング(マスター)のジェネレーティング回数を指定できます。
  

 ・ジェネレーティング(マスター)のジェネレーティング回数を指定すると、サンプリング(スレーブ)のチャネル数を指定できます。
  なお、開始チャネル番号は0ch固定です。例えば、チャネル数 3を指定した場合、0ch~2chからのデータ入力となります。
  

 ・サンプリング(スレーブ)のチャネル数を指定すると、すべてのジェネレーティング/サンプリング設定の内容が、デバイスドライバへ通知されます。
  [ジェネレーティング/サンプリング設定]が完了すると、CUIメニューが再度表示されます。

 

5.同期動作の設定

 ・[5 : 同期動作設定]をコマンド選択すると、開始条件、クロック種類、停止条件が、デバイスドライバへ通知されます。
  [同期動作設定]が完了すると、CUIメニューが再度表示されます。

 

6.出力データ設定

 ・[6 : 出力データ設定]をコマンド選択すると、ジェネレーティング回数で指定した点数のデータをもつ、ジェネレーティング出力データが生成されます。
  生成した出力データは、デバイスドライバへ通知されます。
  ジェネレーティング出力データが生成されると、CUIメニューが再度表示されます。
  

  生成データ: 指定レンジに応じた正弦波(サイン波)が生成されます。指定したジェネレーティング回数で1周期となります。
         複数チャネルの場合、位相が1/4周期(90度)遅れた正弦波(サイン波)が、各チャネルに対して生成されます。

  生成ファイル例:
  

 

7.ジェネレーティング/サンプリング動作

 ・[7 : ジェネレーティング/サンプリング開始]をコマンド選択すると、デバイスからデータ出力が開始されます。
  ジェネレーティングクロックと同じタイミングで、データサンプリングも行われます。
  ジェネレーティングが開始されると、CUIメニューが再度表示されます。
  

 ・[8 : 状態取得]をコマンド選択すると、ジェネレーティング回数や、サンプリング回数などが表示されます。
  

 ・[9 : ジェネレーティング/サンプリング停止]をコマンド選択すると、ジェネレーティング動作と、サンプリング動作が停止します。
  ジェネレーティング停止すると、デバイス動作停止イベントが発生します。
  イベントが発生すると、サンプリングされたデータ値が、sampling_data.csvに保存されます。
  

 

8.終了処理

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

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

 

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

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